Api Reference

Ecosistema completo para organización y gestión de contenido con interfaces espaciales

🔧 Singularity API Reference

🚀 COMPLETE API DOCUMENTATION - PRODUCTION READY! 🚀

This comprehensive API reference covers all services, methods, and interfaces in the Singularity Universal Logic Orchestration System.


📚 Table of Contents

  1. Core Services
  2. Cross-App Integration
  3. Universal Logic Registry
  4. AI Services
  5. Performance Monitoring
  6. Event System
  7. Type Definitions

🏗️ Core Services

LogicBuilderService

The main service for creating and managing logic blocks.

@Injectable({ providedIn: 'root' })
export class LogicBuilderService {
  
  // Properties
  readonly canvasBlocks: Signal<CanvasBlock[]>;
  readonly canvasConnections: Signal<CanvasConnection[]>;
  readonly selectedBlocks: Signal<CanvasBlock[]>;
  readonly isExecuting: Signal<boolean>;
  
  // Logic Block Management
  createBlock(blockData: CreateBlockRequest): Promise<CanvasBlock>;
  updateBlock(blockId: string, updates: Partial<CanvasBlock>): Promise<CanvasBlock>;
  deleteBlock(blockId: string): Promise<void>;
  duplicateBlock(blockId: string): Promise<CanvasBlock>;
  
  // Connection Management
  createConnection(connection: CreateConnectionRequest): Promise<CanvasConnection>;
  deleteConnection(connectionId: string): Promise<void>;
  validateConnection(fromId: string, toId: string): Promise<ConnectionValidation>;
  
  // Execution
  executeLogicFlow(flowId?: string): Promise<ExecutionResult>;
  executeBlock(blockId: string, context?: ExecutionContext): Promise<BlockExecutionResult>;
  
  // Canvas Operations
  centerCanvas(): void;
  zoomIn(): void;
  zoomOut(): void;
  resetZoom(): void;
  toggleGrid(): void;
}

// Method Details
interface CreateBlockRequest {
  type: 'trigger' | 'condition' | 'action' | 'output';
  name: string;
  position: { x: number; y: number };
  properties?: Record<string, any>;
  category?: string;
}

interface CreateConnectionRequest {
  from: string;
  to: string;
  fromPort: string;
  toPort: string;
  connectionType?: 'data' | 'execution';
}

interface ExecutionResult {
  flowId: string;
  success: boolean;
  executionTime: number;
  blocksExecuted: number;
  errors: ExecutionError[];
  results: Record<string, any>;
}

interface BlockExecutionResult {
  blockId: string;
  success: boolean;
  executionTime: number;
  result: any;
  error?: ExecutionError;
}

DatabaseIntegrationService

Service for managing database connections and operations.

@Injectable({ providedIn: 'root' })
export class DatabaseIntegrationService {
  
  // Properties
  readonly connections: Signal<DatabaseConnection[]>;
  readonly schemas: Signal<DatabaseSchema[]>;
  readonly isConnected: Signal<boolean>;
  
  // Connection Management
  createConnection(config: DatabaseConnectionConfig): Promise<DatabaseConnection>;
  testConnection(connectionId: string): Promise<ConnectionTestResult>;
  deleteConnection(connectionId: string): Promise<void>;
  
  // Schema Operations
  discoverSchema(connectionId: string): Promise<DatabaseSchema>;
  refreshSchema(connectionId: string): Promise<DatabaseSchema>;
  validateSchema(schema: DatabaseSchema): Promise<SchemaValidation>;
  
  // Query Operations
  executeQuery(connectionId: string, query: DatabaseQuery): Promise<QueryResult>;
  buildQuery(params: QueryBuilderParams): Promise<DatabaseQuery>;
  explainQuery(connectionId: string, query: DatabaseQuery): Promise<QueryExplanation>;
  
  // Real-time Operations
  enableRealTimeSync(connectionId: string, options: SyncOptions): Promise<void>;
  disableRealTimeSync(connectionId: string): Promise<void>;
  getRealtimeMetrics(connectionId: string): Promise<RealtimeMetrics>;
}

interface DatabaseConnectionConfig {
  name: string;
  type: 'postgresql' | 'mysql' | 'mongodb' | 'firestore';
  host: string;
  port: number;
  database: string;
  username: string;
  password: string;
  ssl?: boolean;
  poolSize?: number;
}

interface QueryResult {
  success: boolean;
  data: any[];
  rowCount: number;
  executionTime: number;
  error?: string;
}

🌐 Cross-App Integration

CrossAppIntegrationService

Core hub for inter-application communication.

@Injectable({ providedIn: 'root' })
export class CrossAppIntegrationService {
  
  // Connection Status
  readonly connections: Signal<AppConnectionMap>;
  readonly healthStatus: Signal<IntegrationHealth>;
  
  // Event Communication
  sendEvent<T>(targetApp: AppName, event: AppEvent<T>): Promise<void>;
  broadcastEvent<T>(event: AppEvent<T>, excludeApps?: AppName[]): Promise<void>;
  subscribeToEvents<T>(eventType: string): Observable<AppEvent<T>>;
  
  // Logic Sharing
  shareLogicBlock(blockId: string, targetApps: AppName[]): Promise<SharingResult>;
  executeRemoteLogic(appName: AppName, blockId: string, context: ExecutionContext): Promise<ExecutionResult>;
  getSharedLogicBlocks(appName: AppName): Promise<LogicBlockExport[]>;
  
  // State Synchronization
  syncState(stateKey: string, value: any, targetApps?: AppName[]): Promise<void>;
  getSharedState<T>(stateKey: string): Promise<T | null>;
  subscribeToStateChanges<T>(stateKey: string): Observable<StateChange<T>>;
  
  // Health Monitoring
  checkAppHealth(appName: AppName): Promise<AppHealthStatus>;
  monitorIntegrationHealth(): Observable<IntegrationHealth>;
  getIntegrationMetrics(): Promise<IntegrationMetrics>;
}

type AppName = 'editor-web' | 'space-map' | 'ux-test' | 'singularity';

interface AppEvent<T = any> {
  id: string;
  type: string;
  source: AppName;
  target?: AppName;
  data: T;
  timestamp: Date;
  priority: 'low' | 'medium' | 'high' | 'critical';
}

interface LogicBlockExport {
  id: string;
  name: string;
  type: string;
  version: string;
  properties: Record<string, any>;
  connections: Array<{
    from: string;
    to: string;
    type: string;
  }>;
  metadata: {
    createdAt: Date;
    updatedAt: Date;
    author: string;
    tags: string[];
  };
}

EditorWebIntegrationService

Specialized service for Editor-Web integration.

@Injectable({ providedIn: 'root' })
export class EditorWebIntegrationService {
  
  // Button Integration
  connectButtonAction(buttonId: string, logicBlock: LogicBlockExport): Promise<void>;
  disconnectButtonAction(buttonId: string): Promise<void>;
  executeButtonLogic(buttonId: string, logicBlockId: string, context: ButtonContext): Promise<ExecutionResult>;
  getButtonConnections(): Promise<ButtonConnection[]>;
  
  // Form Integration
  addFormValidation(formId: string, validationLogic: LogicBlockExport): Promise<void>;
  removeFormValidation(formId: string, fieldName?: string): Promise<void>;
  executeFieldValidation(fieldName: string, logicBlockId: string, context: ValidationContext): Promise<ValidationResult>;
  executeFormSubmission(formId: string, logicBlockId: string, context: SubmissionContext): Promise<SubmissionResult>;
  
  // Component Integration
  mapComponentLogic(componentId: string, logicMapping: ComponentLogicMapping): Promise<void>;
  enableLivePreview(componentId: string, logicFlow: LogicFlow): Promise<void>;
  disableLivePreview(componentId: string): Promise<void>;
  
  // Auto Discovery
  discoverComponents(): Promise<ComponentDiscovery[]>;
  analyzeComponentInteractions(componentId: string): Promise<InteractionAnalysis>;
  suggestLogicMappings(componentId: string): Promise<LogicSuggestion[]>;
}

interface ButtonContext {
  event: MouseEvent;
  buttonElement: HTMLElement;
  formData?: Record<string, any>;
  userContext: UserContext;
}

interface ComponentLogicMapping {
  lifecycle: {
    onInit?: string;
    onDestroy?: string;
    onUpdate?: string;
  };
  interactions: {
    onClick?: string;
    onHover?: string;
    onFocus?: string;
    onInput?: string;
  };
  dataHandling: {
    onDataLoad?: string;
    onDataChange?: string;
    onError?: string;
  };
}

SpaceMapIntegrationService

Service for Space-Map 3D visualization integration.

@Injectable({ providedIn: 'root' })
export class SpaceMapIntegrationService {
  
  // 3D Visualization
  createLogicVisualization(flowId: string, options: VisualizationOptions): Promise<Visualization3D>;
  updateLogicVisualization(flowId: string, updates: Partial<VisualizationOptions>): Promise<void>;
  deleteLogicVisualization(flowId: string): Promise<void>;
  
  // Galaxy Operations
  deployLogicToGalaxy(galaxyId: string, logicFlow: LogicFlow): Promise<GalaxyDeployment>;
  removeLogicFromGalaxy(galaxyId: string, flowId: string): Promise<void>;
  getGalaxyLogicFlows(galaxyId: string): Promise<LogicFlow[]>;
  
  // Universe Management
  createUniverseLogicOrchestration(orchestrationConfig: UniverseOrchestrationConfig): Promise<UniverseOrchestration>;
  getUniversePerformanceMetrics(): Promise<UniversePerformanceMetrics>;
  optimizeUniversePerformance(): Promise<OptimizationResult>;
  
  // Real-time Monitoring
  monitorLogicExecution(flowId: string): Observable<ExecutionEvent>;
  getCosmicAnalytics(): Promise<CosmicAnalytics>;
  visualizeLogicFlow(flowId: string, options: FlowVisualizationOptions): Promise<FlowVisualization>;
}

interface VisualizationOptions {
  renderMode: '2d' | '3d' | 'vr';
  particleEffects: boolean;
  connectionAnimations: boolean;
  realTimeExecution: boolean;
  colorScheme: 'default' | 'cosmic' | 'matrix' | 'aurora';
  scale: number;
  position: CosmicCoordinates;
}

interface UniverseOrchestrationConfig {
  name: string;
  galaxies: string[];
  logicFlows: string[];
  orchestrationRules: OrchestrationRule[];
  monitoring: {
    enabled: boolean;
    alertThresholds: AlertThresholds;
    reportingFrequency: 'real-time' | 'hourly' | 'daily';
  };
}

UxTestIntegrationService

Service for UX-Test widget testing and automation.

@Injectable({ providedIn: 'root' })
export class UxTestIntegrationService {
  
  // Widget Logic Generation
  generateWidgetLogic(widgetId: string, requirements: LogicRequirements): Promise<WidgetLogicMapping>;
  updateWidgetLogic(widgetId: string, logicUpdates: Partial<WidgetLogicMapping>): Promise<void>;
  deleteWidgetLogic(widgetId: string): Promise<void>;
  
  // Test Automation
  createTestScenario(widgetId: string, scenarioData: TestScenarioData): Promise<WidgetTestScenario>;
  executeTestScenario(scenarioId: string): Promise<TestExecutionResult>;
  createTestFlow(flowData: TestFlowData): Promise<TestAutomationFlow>;
  executeTestFlow(flowId: string): Promise<TestExecutionResult[]>;
  
  // Performance Monitoring
  startPerformanceMonitoring(widgetIds: string[]): void;
  stopPerformanceMonitoring(widgetIds?: string[]): void;
  getWidgetBenchmarks(widgetId: string): WidgetBenchmarks;
  runPerformanceBenchmark(widgetIds: string[], duration?: number): Promise<BenchmarkResults>;
  
  // Widget Management
  registerWidget(widgetData: WidgetRegistrationData): Promise<WidgetDefinition>;
  updateWidget(widgetId: string, updates: Partial<WidgetDefinition>): Promise<WidgetDefinition>;
  getWidgetMetrics(widgetId: string): Promise<WidgetMetrics>;
  generateWidgetReport(widgetId: string): Promise<WidgetReport>;
}

interface LogicRequirements {
  interactions: InteractionRequirement[];
  dataHandling: DataHandlingRequirement[];
  validation: ValidationRequirement[];
  customBehaviors: CustomBehaviorRequirement[];
}

interface TestScenarioData {
  name: string;
  description: string;
  testType: TestType;
  steps: TestStepData[];
  expectations: TestExpectationData[];
  priority: Priority;
  automationLevel: AutomationLevel;
}

interface WidgetBenchmarks {
  current: PerformanceMetrics;
  baseline: PerformanceMetrics;
  historical: HistoricalMetrics[];
  recommendations: string[];
  trends: PerformanceTrend[];
}

📚 Universal Logic Registry

UniversalLogicRegistryService

Central registry for sharing logic blocks across applications.

@Injectable({ providedIn: 'root' })
export class UniversalLogicRegistryService {
  
  // Registry Management
  readonly logicBlocks: Signal<Map<string, LogicBlockDefinition>>;
  readonly categories: Signal<LogicCategory[]>;
  readonly searchResults: Signal<LogicBlockDefinition[]>;
  
  // Block Registration
  registerLogicBlock(blockData: LogicBlockRegistrationData): Promise<LogicBlockDefinition>;
  updateLogicBlock(blockId: string, updates: Partial<LogicBlockDefinition>): Promise<LogicBlockDefinition>;
  deleteLogicBlock(blockId: string): Promise<void>;
  
  // Block Discovery
  searchLogicBlocks(query: SearchQuery): Promise<LogicBlockDefinition[]>;
  getLogicBlock(blockId: string): LogicBlockDefinition | null;
  getLogicBlocksByCategory(category: string): Promise<LogicBlockDefinition[]>;
  getPopularLogicBlocks(limit?: number): Promise<LogicBlockDefinition[]>;
  
  // Version Control
  createBlockVersion(blockId: string, changes: BlockChanges): Promise<BlockVersion>;
  getBlockVersions(blockId: string): Promise<BlockVersion[]>;
  revertToVersion(blockId: string, versionId: string): Promise<LogicBlockDefinition>;
  compareVersions(blockId: string, version1: string, version2: string): Promise<VersionComparison>;
  
  // Usage Analytics
  recordBlockUsage(usage: BlockUsageRecord): Promise<void>;
  getBlockAnalytics(blockId: string): Promise<BlockAnalytics>;
  getTrendingBlocks(): Promise<TrendingBlock[]>;
  getUsageMetrics(): Promise<RegistryMetrics>;
  
  // Synchronization
  syncWithRemoteRegistry(): Promise<SyncResult>;
  pushLocalChanges(): Promise<PushResult>;
  resolveConflicts(conflicts: RegistryConflict[]): Promise<ConflictResolution>;
  
  // Categories
  registerCategory(category: LogicCategory): Promise<void>;
  updateCategory(categoryId: string, updates: Partial<LogicCategory>): Promise<void>;
  deleteCategory(categoryId: string): Promise<void>;
}

interface LogicBlockDefinition {
  id: string;
  name: string;
  description: string;
  type: BlockType;
  category: string;
  version: string;
  properties: BlockProperties;
  inputPorts: Port[];
  outputPorts: Port[];
  logic: BlockLogic;
  metadata: BlockMetadata;
  ratings: BlockRating[];
  usage: UsageStatistics;
}

interface SearchQuery {
  text?: string;
  category?: string;
  type?: BlockType;
  tags?: string[];
  author?: string;
  minRating?: number;
  sortBy?: 'relevance' | 'popularity' | 'rating' | 'recent';
  limit?: number;
  offset?: number;
}

interface BlockAnalytics {
  totalUsage: number;
  uniqueUsers: number;
  averageRating: number;
  usageByApp: Record<string, number>;
  usageOverTime: TimeSeriesData[];
  popularProperties: PropertyUsage[];
  errorRate: number;
  performanceMetrics: BlockPerformanceMetrics;
}

🤖 AI Services

AIAssistantService

AI-powered assistance for logic creation and optimization.

@Injectable({ providedIn: 'root' })
export class AIAssistantService {
  
  // Logic Generation
  generateLogicFromNaturalLanguage(prompt: string): Promise<LogicGenerationResult>;
  optimizeLogicFlow(flowId: string, optimizationOptions: OptimizationOptions): Promise<OptimizationResult>;
  suggestLogicBlocks(context: LogicContext): Promise<BlockSuggestion[]>;
  
  // Code Generation
  generateCode(flowId: string, codeOptions: CodeGenerationOptions): Promise<GeneratedCode>;
  generateTests(flowId: string, testOptions: TestGenerationOptions): Promise<GeneratedTests>;
  generateDocumentation(flowId: string): Promise<GeneratedDocumentation>;
  
  // Analysis & Recommendations
  analyzeLogicFlow(flowId: string): Promise<FlowAnalysis>;
  findPotentialIssues(flowId: string): Promise<IssueReport[]>;
  suggestImprovements(flowId: string): Promise<ImprovementSuggestion[]>;
  
  // Interactive Chat
  startChatSession(sessionType: ChatSessionType): Promise<ChatSession>;
  sendMessage(sessionId: string, message: string): Promise<ChatResponse>;
  endChatSession(sessionId: string): Promise<void>;
  
  // Learning & Adaptation
  provideFeedback(suggestionId: string, feedback: Feedback): Promise<void>;
  trainOnUserPatterns(patterns: UserPattern[]): Promise<void>;
  getPersonalizedSuggestions(userId: string): Promise<PersonalizedSuggestion[]>;
}

interface LogicGenerationResult {
  success: boolean;
  logicBlocks: GeneratedLogicBlock[];
  connections: GeneratedConnection[];
  explanation: string;
  confidence: number;
  alternativeApproaches?: AlternativeApproach[];
}

interface OptimizationOptions {
  focusArea: 'performance' | 'readability' | 'maintainability' | 'all';
  preserveLogic: boolean;
  allowBreakingChanges: boolean;
  targetMetrics?: PerformanceTargets;
}

interface GeneratedCode {
  language: string;
  framework: string;
  files: GeneratedFile[];
  dependencies: string[];
  buildInstructions: string;
  deploymentGuide: string;
}

📊 Performance Monitoring

PerformanceMonitoringService

Real-time performance tracking and analytics.

@Injectable({ providedIn: 'root' })
export class PerformanceMonitoringService {
  
  // Monitoring Control
  startMonitoring(targets: MonitoringTarget[]): void;
  stopMonitoring(targetIds?: string[]): void;
  pauseMonitoring(): void;
  resumeMonitoring(): void;
  
  // Metrics Collection
  readonly realTimeMetrics: Signal<PerformanceMetrics>;
  readonly historicalMetrics: Signal<HistoricalMetrics[]>;
  readonly alerts: Signal<PerformanceAlert[]>;
  
  // Performance Analysis
  analyzePerformance(timeRange: TimeRange): Promise<PerformanceAnalysis>;
  detectAnomalies(metricType: MetricType): Promise<Anomaly[]>;
  generatePerformanceReport(reportOptions: ReportOptions): Promise<PerformanceReport>;
  
  // Alerting
  setAlert(alertConfig: AlertConfig): Promise<AlertRule>;
  updateAlert(alertId: string, updates: Partial<AlertConfig>): Promise<AlertRule>;
  deleteAlert(alertId: string): Promise<void>;
  getActiveAlerts(): Promise<PerformanceAlert[]>;
  
  // Optimization Suggestions
  getOptimizationSuggestions(): Promise<OptimizationSuggestion[]>;
  applyOptimization(suggestionId: string): Promise<OptimizationResult>;
  scheduleOptimization(suggestionId: string, schedule: OptimizationSchedule): Promise<void>;
}

interface PerformanceMetrics {
  timestamp: Date;
  cpu: CPUMetrics;
  memory: MemoryMetrics;
  network: NetworkMetrics;
  logicExecution: LogicExecutionMetrics;
  userExperience: UXMetrics;
  errors: ErrorMetrics;
}

interface CPUMetrics {
  usage: number; // Percentage
  load: number[];
  processes: ProcessMetric[];
}

interface MemoryMetrics {
  used: number; // MB
  available: number; // MB
  heapSize: number; // MB
  gcEvents: GCEvent[];
}

interface NetworkMetrics {
  requests: number;
  responseTime: number; // ms
  throughput: number; // requests/second
  errors: number;
}

interface LogicExecutionMetrics {
  totalExecutions: number;
  averageExecutionTime: number; // ms
  successRate: number; // percentage
  concurrentExecutions: number;
  queueLength: number;
}

🔔 Event System

EventBusService

Centralized event management system.

@Injectable({ providedIn: 'root' })
export class EventBusService {
  
  // Event Publishing
  publish<T>(event: Event<T>): void;
  publishAsync<T>(event: Event<T>): Promise<void>;
  schedule<T>(event: Event<T>, delay: number): void;
  
  // Event Subscription
  subscribe<T>(eventType: string): Observable<Event<T>>;
  subscribeOnce<T>(eventType: string): Promise<Event<T>>;
  subscribeToPattern<T>(pattern: string): Observable<Event<T>>;
  
  // Event Filtering
  filter<T>(eventType: string, predicate: (event: Event<T>) => boolean): Observable<Event<T>>;
  debounce<T>(eventType: string, delay: number): Observable<Event<T>>;
  throttle<T>(eventType: string, interval: number): Observable<Event<T>>;
  
  // Event History
  getEventHistory(eventType?: string, limit?: number): Event<any>[];
  replayEvents(eventType: string, fromTimestamp: Date): Observable<Event<any>>;
  clearEventHistory(eventType?: string): void;
  
  // Event Middleware
  addMiddleware(middleware: EventMiddleware): void;
  removeMiddleware(middlewareId: string): void;
  getMiddleware(): EventMiddleware[];
}

interface Event<T = any> {
  id: string;
  type: string;
  data: T;
  timestamp: Date;
  source: string;
  metadata?: Record<string, any>;
}

interface EventMiddleware {
  id: string;
  name: string;
  priority: number;
  beforePublish?: (event: Event<any>) => Event<any> | Promise<Event<any>>;
  beforeSubscription?: (event: Event<any>) => boolean | Promise<boolean>;
  onError?: (error: Error, event: Event<any>) => void;
}

// Common Event Types
namespace EventTypes {
  export const LOGIC_BLOCK_CREATED = 'logic:block:created';
  export const LOGIC_BLOCK_UPDATED = 'logic:block:updated';
  export const LOGIC_BLOCK_DELETED = 'logic:block:deleted';
  export const LOGIC_FLOW_EXECUTED = 'logic:flow:executed';
  export const CROSS_APP_EVENT = 'cross-app:event';
  export const PERFORMANCE_ALERT = 'performance:alert';
  export const AI_SUGGESTION = 'ai:suggestion';
  export const USER_ACTION = 'user:action';
}

📋 Type Definitions

Core Types

// Block Types
type BlockType = 'trigger' | 'condition' | 'action' | 'output' | 'custom';
type ConnectionType = 'data' | 'execution' | 'control';
type Priority = 'low' | 'medium' | 'high' | 'critical';
type AutomationLevel = 'manual' | 'semi-auto' | 'full-auto';
type TestType = 'unit' | 'integration' | 'e2e' | 'performance' | 'accessibility' | 'visual';

// Base Interfaces
interface BaseEntity {
  id: string;
  createdAt: Date;
  updatedAt: Date;
  createdBy?: string;
  updatedBy?: string;
}

interface Port {
  id: string;
  label: string;
  dataType: string;
  required: boolean;
  defaultValue?: any;
  validation?: ValidationRule[];
}

interface ValidationRule {
  type: 'required' | 'min' | 'max' | 'pattern' | 'custom';
  value?: any;
  message: string;
  customValidator?: string; // Logic block ID
}

// Error Types
interface ExecutionError {
  code: string;
  message: string;
  blockId?: string;
  stackTrace?: string;
  context?: Record<string, any>;
  timestamp: Date;
}

interface ValidationError {
  field: string;
  message: string;
  code: string;
  value?: any;
}

// Metrics Types
interface MetricValue {
  value: number;
  unit: string;
  timestamp: Date;
  metadata?: Record<string, any>;
}

interface TimeSeriesData {
  timestamp: Date;
  value: number;
  metadata?: Record<string, any>;
}

// Configuration Types
interface Configuration {
  version: string;
  environment: 'development' | 'staging' | 'production';
  features: FeatureFlags;
  integrations: IntegrationConfig;
  monitoring: MonitoringConfig;
  ai: AIConfig;
}

interface FeatureFlags {
  [featureName: string]: boolean;
}

interface IntegrationConfig {
  editorWeb: AppIntegrationConfig;
  spaceMap: AppIntegrationConfig;
  uxTest: AppIntegrationConfig;
}

interface AppIntegrationConfig {
  enabled: boolean;
  endpoint: string;
  apiKey?: string;
  timeout: number;
  retryAttempts: number;
  features: string[];
}

Response Types

// API Response Wrappers
interface APIResponse<T> {
  success: boolean;
  data?: T;
  error?: APIError;
  metadata?: ResponseMetadata;
}

interface APIError {
  code: string;
  message: string;
  details?: Record<string, any>;
  timestamp: Date;
}

interface ResponseMetadata {
  requestId: string;
  timestamp: Date;
  executionTime: number;
  version: string;
}

// Pagination
interface PaginatedResponse<T> {
  items: T[];
  total: number;
  page: number;
  pageSize: number;
  hasNext: boolean;
  hasPrevious: boolean;
}

interface PaginationOptions {
  page?: number;
  pageSize?: number;
  sortBy?: string;
  sortOrder?: 'asc' | 'desc';
}

🔍 Usage Examples

Creating a Logic Block

import { inject, Component } from '@angular/core';
import { LogicBuilderService } from '@singularity/core';

@Component({...})
export class MyComponent {
  private logicBuilder = inject(LogicBuilderService);
  
  async createUserValidationBlock() {
    const block = await this.logicBuilder.createBlock({
      type: 'condition',
      name: 'User Email Validation',
      position: { x: 100, y: 100 },
      properties: {
        validationRule: 'email',
        errorMessage: 'Please enter a valid email address'
      },
      category: 'validation'
    });
    
    console.log('Created block:', block.id);
  }
}

Cross-App Integration

import { inject, Component } from '@angular/core';
import { EditorWebIntegrationService } from '@singularity/integration';

@Component({...})
export class ButtonComponent {
  private editorWebService = inject(EditorWebIntegrationService);
  
  async connectButtonToLogic() {
    await this.editorWebService.connectButtonAction('submit-btn', {
      id: 'user-validation-flow',
      name: 'User Validation',
      type: 'flow',
      version: '1.0.0',
      properties: {},
      connections: [],
      metadata: {
        createdAt: new Date(),
        updatedAt: new Date(),
        author: 'system',
        tags: ['validation', 'user']
      }
    });
  }
}

Performance Monitoring

import { inject, Component, OnInit } from '@angular/core';
import { PerformanceMonitoringService } from '@singularity/monitoring';

@Component({...})
export class DashboardComponent implements OnInit {
  private performanceService = inject(PerformanceMonitoringService);
  
  ngOnInit() {
    // Start monitoring
    this.performanceService.startMonitoring([
      { type: 'logic-execution', id: 'all' },
      { type: 'cross-app-communication', id: 'all' },
      { type: 'database-operations', id: 'all' }
    ]);
    
    // Subscribe to real-time metrics
    this.performanceService.realTimeMetrics.subscribe(metrics => {
      console.log('Performance metrics:', metrics);
    });
  }
}

🚀 Getting Started

Installation

# Install Singularity packages
npm install @singularity/core @singularity/integration @singularity/monitoring

# Or with yarn
yarn add @singularity/core @singularity/integration @singularity/monitoring

Basic Setup

// app.config.ts
import { ApplicationConfig } from '@angular/core';
import { provideSingularity } from '@singularity/core';

export const appConfig: ApplicationConfig = {
  providers: [
    // ... other providers
    provideSingularity({
      apiEndpoint: 'http://localhost:5400/api',
      enableCrossAppIntegration: true,
      enableAI: true,
      enableMonitoring: true
    })
  ]
};

Environment Configuration

// environments/environment.ts
export const environment = {
  singularity: {
    apiEndpoint: 'http://localhost:5400/api',
    websocketUrl: 'ws://localhost:5400/ws',
    features: {
      crossAppIntegration: true,
      aiAssistance: true,
      performanceMonitoring: true,
      realTimeSync: true
    }
  }
};

❓ FAQ & Troubleshooting

Common Issues

Q: Service injection fails with NullInjectorError A: Ensure you've added provideSingularity() to your app config.

Q: Cross-app integration not working A: Check that all apps are running and have the integration services configured.

Q: Performance metrics showing as 0 A: Start monitoring explicitly using PerformanceMonitoringService.startMonitoring().

Q: AI suggestions not appearing A: Verify your AI provider API keys are configured in the environment.

Support

For additional support:


🎉 API Reference Complete!

This comprehensive API reference covers all services, methods, and types in the Singularity Universal Logic Orchestration System. Use this as your definitive guide for integrating and extending Singularity across your applications.

Happy coding! 🚀


API Reference v1.0 - Production Ready Last Updated: [Current Date] For updates and changes, see the changelog.