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
- Core Services
- Cross-App Integration
- Universal Logic Registry
- AI Services
- Performance Monitoring
- Event System
- 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:
- Check the Integration Guide
- Review the troubleshooting documentation
- Contact the development team
- Submit issues on the project repository
🎉 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.