UNPKG

@wearesage/schema

Version:

A flexible schema definition and validation system for TypeScript with multi-database support

68 lines (60 loc) 1.49 kB
import { Affordance } from '../entities/Affordance'; import { Space } from '../entities/Space'; import { User } from '../entities/User'; import type { EntityContext } from '@wearesage/schema'; export interface ExecutionContext { user: EntityContext['user']; space: Space; requestId?: string; metadata?: Record<string, any>; } export interface ActionResult { success: boolean; error?: string; data?: any; affordanceId: string; createdSpaces?: Space[]; modifiedSpaces?: Space[]; nextAffordances?: string[]; context?: Record<string, any>; } export interface ActionHandler { execute( affordance: Affordance, parameters: Record<string, any>, context: ExecutionContext ): Promise<ActionResult>; } export interface PreconditionResult { valid: boolean; reason?: string; details?: Record<string, any>; } export interface ParameterValidationResult { valid: boolean; errors: string[]; sanitizedParams?: Record<string, any>; } export interface ContextData { events?: any[]; childSpaces?: Space[]; parentSpaces?: Space[]; relatedSpaces?: Space[]; metadata?: Record<string, any>; customData?: any; } export interface ContextRule { id: string; name: string; conditions: any; injectionRules: any; filters?: any; priority: number; isActive: boolean; } export interface AffordanceDiscoveryOptions { includeDisabled?: boolean; filterByPermissions?: boolean; evaluatePreconditions?: boolean; maxResults?: number; }