@objectstack/spec 1.0.11 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -1
- package/dist/ai/index.d.mts +2 -1
- package/dist/ai/index.d.ts +2 -1
- package/dist/ai/index.js +2047 -1944
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/index.mjs +2047 -1944
- package/dist/ai/index.mjs.map +1 -1
- package/dist/api/index.d.mts +3 -1
- package/dist/api/index.d.ts +3 -1
- package/dist/api/index.js +2599 -2292
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +2587 -2292
- package/dist/api/index.mjs.map +1 -1
- package/dist/automation/index.d.mts +2 -1
- package/dist/automation/index.d.ts +2 -1
- package/dist/automation/index.js +83 -0
- package/dist/automation/index.js.map +1 -1
- package/dist/automation/index.mjs +77 -0
- package/dist/automation/index.mjs.map +1 -1
- package/dist/contracts/index.d.mts +3 -2
- package/dist/contracts/index.d.ts +3 -2
- package/dist/data/index.d.mts +3 -2
- package/dist/data/index.d.ts +3 -2
- package/dist/data/index.js +658 -556
- package/dist/data/index.js.map +1 -1
- package/dist/data/index.mjs +656 -556
- package/dist/data/index.mjs.map +1 -1
- package/dist/{driver.zod-lfi00zVT.d.ts → driver.zod-CfGk9GYh.d.ts} +2164 -11
- package/dist/{driver.zod-BOM_Etco.d.mts → driver.zod-y1cX6R3c.d.mts} +2164 -11
- package/dist/hub/index.d.mts +1 -1
- package/dist/hub/index.d.ts +1 -1
- package/dist/hub/index.js +789 -724
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/index.mjs +789 -724
- package/dist/hub/index.mjs.map +1 -1
- package/dist/{index-C67cfwmW.d.ts → index-B0Hf65bV.d.ts} +13 -5
- package/dist/{index-DLcySG7U.d.ts → index-B5pKM0My.d.ts} +335 -4370
- package/dist/{index-Os7lItRe.d.mts → index-BA022mg2.d.ts} +6178 -129
- package/dist/{index-B5-VbOKg.d.mts → index-BGeLoH2z.d.ts} +4251 -74
- package/dist/{index-CH5zloR3.d.ts → index-BwO__aqV.d.ts} +1 -1
- package/dist/{index-Dp7GFJ8V.d.mts → index-Cia3JPQ8.d.mts} +13 -5
- package/dist/{index-D12rNohm.d.mts → index-CpD1q1FP.d.ts} +35 -18
- package/dist/{index-Os7lItRe.d.ts → index-D5RSFPuB.d.mts} +6178 -129
- package/dist/{index-CU4m6noq.d.mts → index-DGjpaj0X.d.mts} +1 -1
- package/dist/{index-D12rNohm.d.ts → index-Dfn5VXl6.d.mts} +35 -18
- package/dist/{index-l6WIlmOD.d.mts → index-Dgybxlky.d.mts} +177 -158
- package/dist/{index-l6WIlmOD.d.ts → index-Dgybxlky.d.ts} +177 -158
- package/dist/{index-DLcySG7U.d.mts → index-Dpsk8PF4.d.mts} +335 -4370
- package/dist/{index-CyognKSZ.d.ts → index-DrNah5E0.d.ts} +1952 -6990
- package/dist/{index-DE_lJ11p.d.mts → index-OO84R20k.d.mts} +1952 -6990
- package/dist/{index-B5-VbOKg.d.ts → index-upA3Xt04.d.mts} +4251 -74
- package/dist/index.d.mts +8072 -1922
- package/dist/index.d.ts +8072 -1922
- package/dist/index.js +8563 -8249
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8563 -8249
- package/dist/index.mjs.map +1 -1
- package/dist/integration/index.d.mts +1 -1
- package/dist/integration/index.d.ts +1 -1
- package/dist/kernel/index.d.mts +2 -1
- package/dist/kernel/index.d.ts +2 -1
- package/dist/kernel/index.js +884 -684
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/index.mjs +870 -684
- package/dist/kernel/index.mjs.map +1 -1
- package/dist/package-registry.zod-JMcOYNxM.d.mts +21119 -0
- package/dist/package-registry.zod-JMcOYNxM.d.ts +21119 -0
- package/dist/state-machine.zod-B-lFFSxQ.d.mts +285 -0
- package/dist/state-machine.zod-B-lFFSxQ.d.ts +285 -0
- package/dist/system/index.d.mts +2 -1
- package/dist/system/index.d.ts +2 -1
- package/dist/system/index.js +749 -651
- package/dist/system/index.js.map +1 -1
- package/dist/system/index.mjs +749 -651
- package/dist/system/index.mjs.map +1 -1
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/json-schema/ai/Agent.json +499 -0
- package/json-schema/ai/DevOpsAgent.json +499 -0
- package/json-schema/ai/FeedbackLoop.json +2188 -186
- package/json-schema/ai/Resolution.json +2188 -186
- package/json-schema/api/ApiRoutes.json +4 -0
- package/json-schema/api/CompileManifestResponse.json +40 -10
- package/json-schema/api/DisablePackageRequest.json +18 -0
- package/json-schema/api/DisablePackageResponse.json +1521 -0
- package/json-schema/api/Discovery.json +4 -0
- package/json-schema/api/EnablePackageRequest.json +18 -0
- package/json-schema/api/EnablePackageResponse.json +1521 -0
- package/json-schema/api/GetDiscoveryResponse.json +4 -0
- package/json-schema/api/GetPackageRequest.json +18 -0
- package/json-schema/api/GetPackageResponse.json +1518 -0
- package/json-schema/api/InstallPackageRequest.json +1483 -0
- package/json-schema/api/InstallPackageResponse.json +1521 -0
- package/json-schema/api/ListPackagesRequest.json +42 -0
- package/json-schema/api/ListPackagesResponse.json +1525 -0
- package/json-schema/api/ObjectDefinitionResponse.json +1001 -0
- package/json-schema/api/ObjectStackProtocol.json +86 -1
- package/json-schema/api/RestApiConfig.json +5 -0
- package/json-schema/api/RestServerConfig.json +5 -0
- package/json-schema/api/UninstallPackageRequest.json +18 -0
- package/json-schema/api/UninstallPackageResponse.json +25 -0
- package/json-schema/automation/ActionRef.json +30 -0
- package/json-schema/automation/Event.json +24 -0
- package/json-schema/automation/Flow.json +1 -0
- package/json-schema/automation/FlowNode.json +1 -0
- package/json-schema/automation/FlowNodeAction.json +1 -0
- package/json-schema/automation/GuardRef.json +30 -0
- package/json-schema/automation/StateMachine.json +504 -0
- package/json-schema/automation/StateNode.json +324 -0
- package/json-schema/automation/Transition.json +73 -0
- package/json-schema/data/Object.json +1001 -0
- package/json-schema/data/ObjectExtension.json +2376 -0
- package/json-schema/data/ObjectOwnershipEnum.json +13 -0
- package/json-schema/hub/ComposerResponse.json +40 -10
- package/json-schema/kernel/DisablePackageRequest.json +18 -0
- package/json-schema/kernel/DisablePackageResponse.json +1521 -0
- package/json-schema/kernel/EnablePackageRequest.json +18 -0
- package/json-schema/kernel/EnablePackageResponse.json +1521 -0
- package/json-schema/kernel/EventBusConfig.json +15 -0
- package/json-schema/kernel/EventHandler.json +6 -0
- package/json-schema/kernel/EventPersistence.json +3 -0
- package/json-schema/kernel/EventRoute.json +3 -0
- package/json-schema/kernel/EventWebhookConfig.json +3 -0
- package/json-schema/kernel/GetPackageRequest.json +18 -0
- package/json-schema/kernel/GetPackageResponse.json +1518 -0
- package/json-schema/kernel/InstallPackageRequest.json +1483 -0
- package/json-schema/kernel/InstallPackageResponse.json +1521 -0
- package/json-schema/kernel/InstalledPackage.json +1509 -0
- package/json-schema/kernel/ListPackagesRequest.json +42 -0
- package/json-schema/kernel/ListPackagesResponse.json +1525 -0
- package/json-schema/kernel/Manifest.json +40 -10
- package/json-schema/kernel/PackageStatusEnum.json +16 -0
- package/json-schema/kernel/Plugin.json +5 -0
- package/json-schema/kernel/PluginContext.json +31 -7
- package/json-schema/kernel/PluginLifecycle.json +7 -1
- package/json-schema/kernel/RealTimeNotificationConfig.json +3 -0
- package/json-schema/kernel/UninstallPackageRequest.json +18 -0
- package/json-schema/kernel/UninstallPackageResponse.json +25 -0
- package/json-schema/system/ChangeSet.json +2188 -186
- package/json-schema/system/CreateObjectOperation.json +1001 -0
- package/json-schema/system/MigrationOperation.json +1001 -0
- package/package.json +29 -15
- package/prompts/create-new-project.md +37 -19
- package/dist/{index-I3piy4U4.d.mts → index-BmU_sD1f.d.mts} +8 -8
- package/dist/{index-CkhpsEUw.d.ts → index-BnXuc_HO.d.ts} +8 -8
- package/dist/{index-CIDI-8zR.d.mts → index-C_NTOcet.d.mts} +98 -98
- package/dist/{index-CIDI-8zR.d.ts → index-C_NTOcet.d.ts} +98 -98
package/dist/ai/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ai/agent.zod.ts","../../src/ai/agent-action.zod.ts","../../src/ai/devops-agent.zod.ts","../../src/ai/plugin-development.zod.ts","../../src/ai/runtime-ops.zod.ts","../../src/kernel/plugin-lifecycle-advanced.zod.ts","../../src/ai/model-registry.zod.ts","../../src/ai/rag-pipeline.zod.ts","../../src/ai/cost.zod.ts","../../src/ai/nlq.zod.ts","../../src/ai/orchestration.zod.ts","../../src/ai/predictive.zod.ts","../../src/ai/conversation.zod.ts","../../src/ai/feedback-loop.zod.ts","../../src/system/migration.zod.ts","../../src/data/field.zod.ts","../../src/shared/identifiers.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/object.zod.ts","../../src/data/validation.zod.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * AI Model Configuration\n */\nexport const AIModelConfigSchema = z.object({\n provider: z.enum(['openai', 'azure_openai', 'anthropic', 'local']).default('openai'),\n model: z.string().describe('Model name (e.g. gpt-4, claude-3-opus)'),\n temperature: z.number().min(0).max(2).default(0.7),\n maxTokens: z.number().optional(),\n topP: z.number().optional(),\n});\n\n/**\n * AI Tool Definition\n * References to Actions, Flows, or Objects available to the Agent.\n */\nexport const AIToolSchema = z.object({\n type: z.enum(['action', 'flow', 'query', 'vector_search']),\n name: z.string().describe('Reference name (Action Name, Flow Name)'),\n description: z.string().optional().describe('Override description for the LLM'),\n});\n\n/**\n * AI Knowledge Base\n * RAG configuration.\n */\nexport const AIKnowledgeSchema = z.object({\n topics: z.array(z.string()).describe('Topics/Tags to recruit knowledge from'),\n indexes: z.array(z.string()).describe('Vector Store Indexes'),\n});\n\n/**\n * AI Agent Schema\n * Definition of an autonomous agent specialized for a domain.\n * \n * @example Customer Support Agent\n * {\n * name: \"support_tier_1\",\n * label: \"First Line Support\",\n * role: \"Help Desk Assistant\",\n * instructions: \"You are a helpful assistant. Always verify user identity first.\",\n * model: {\n * provider: \"openai\",\n * model: \"gpt-4-turbo\",\n * temperature: 0.3\n * },\n * tools: [\n * { type: \"flow\", name: \"reset_password\", description: \"Trigger password reset email\" },\n * { type: \"query\", name: \"get_order_status\", description: \"Check order shipping status\" }\n * ],\n * knowledge: {\n * topics: [\"faq\", \"policies\"],\n * indexes: [\"support_docs\"]\n * }\n * }\n */\nexport const AgentSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Agent unique identifier'),\n label: z.string().describe('Agent display name'),\n avatar: z.string().optional(),\n role: z.string().describe('The persona/role (e.g. \"Senior Support Engineer\")'),\n \n /** Cognition */\n instructions: z.string().describe('System Prompt / Prime Directives'),\n model: AIModelConfigSchema.optional(),\n \n /** Capabilities */\n tools: z.array(AIToolSchema).optional().describe('Available tools'),\n knowledge: AIKnowledgeSchema.optional().describe('RAG access'),\n \n /** Interface */\n active: z.boolean().default(true),\n access: z.array(z.string()).optional().describe('Who can chat with this agent'),\n\n /** Multi-tenancy & Visibility */\n tenantId: z.string().optional().describe('Tenant/Organization ID'),\n visibility: z.enum(['global', 'organization', 'private']).default('organization'),\n});\n\nexport type Agent = z.infer<typeof AgentSchema>;\nexport type AITool = z.infer<typeof AIToolSchema>;\n","import { z } from 'zod';\n\n/**\n * AI Agent Action Protocol\n * \n * Defines how AI agents can interact with the UI by mapping natural language intents\n * to structured UI actions. This enables agents to not only query data but also\n * manipulate the interface, navigate between views, and trigger workflows.\n * \n * Architecture Alignment:\n * - Salesforce Einstein: Action recommendations and automated UI interactions\n * - ServiceNow Virtual Agent: UI action automation\n * - Microsoft Power Virtual Agents: Bot actions and UI integration\n * \n * Use Cases:\n * - \"Open the new account form\" → Navigate to form view\n * - \"Show me all active opportunities\" → Navigate to list view with filter\n * - \"Create a new task for John\" → Open form with pre-filled data\n * - \"Switch to the kanban view\" → Change view mode\n */\n\n// ==========================================\n// UI Action Types\n// ==========================================\n\n/**\n * Navigation Action Types\n * Actions that change the current view or location\n */\nexport const NavigationActionTypeSchema = z.enum([\n 'navigate_to_object_list', // Navigate to object list view\n 'navigate_to_object_form', // Navigate to object form (new/edit)\n 'navigate_to_record_detail', // Navigate to specific record detail page\n 'navigate_to_dashboard', // Navigate to dashboard\n 'navigate_to_report', // Navigate to report view\n 'navigate_to_app', // Switch to different app\n 'navigate_back', // Go back to previous view\n 'navigate_home', // Go to home page\n 'open_tab', // Open new tab\n 'close_tab', // Close current tab\n]);\n\nexport type NavigationActionType = z.infer<typeof NavigationActionTypeSchema>;\n\n/**\n * View Manipulation Action Types\n * Actions that change how data is displayed\n */\nexport const ViewActionTypeSchema = z.enum([\n 'change_view_mode', // Switch between list/kanban/calendar/gantt\n 'apply_filter', // Apply filter to current view\n 'clear_filter', // Clear filters\n 'apply_sort', // Apply sorting\n 'change_grouping', // Change grouping (for kanban/pivot)\n 'show_columns', // Show/hide columns\n 'expand_record', // Expand record in list\n 'collapse_record', // Collapse record in list\n 'refresh_view', // Refresh current view\n 'export_data', // Export view data\n]);\n\nexport type ViewActionType = z.infer<typeof ViewActionTypeSchema>;\n\n/**\n * Form Action Types\n * Actions that interact with forms\n */\nexport const FormActionTypeSchema = z.enum([\n 'create_record', // Create new record (submit form)\n 'update_record', // Update existing record\n 'delete_record', // Delete record\n 'fill_field', // Fill a specific form field\n 'clear_field', // Clear a form field\n 'submit_form', // Submit the form\n 'cancel_form', // Cancel form editing\n 'validate_form', // Validate form data\n 'save_draft', // Save as draft\n]);\n\nexport type FormActionType = z.infer<typeof FormActionTypeSchema>;\n\n/**\n * Data Action Types\n * Actions that perform data operations\n */\nexport const DataActionTypeSchema = z.enum([\n 'select_record', // Select record(s) in list\n 'deselect_record', // Deselect record(s)\n 'select_all', // Select all records\n 'deselect_all', // Deselect all records\n 'bulk_update', // Bulk update selected records\n 'bulk_delete', // Bulk delete selected records\n 'bulk_export', // Bulk export selected records\n]);\n\nexport type DataActionType = z.infer<typeof DataActionTypeSchema>;\n\n/**\n * Workflow Action Types\n * Actions that trigger workflows or automations\n */\nexport const WorkflowActionTypeSchema = z.enum([\n 'trigger_flow', // Trigger a flow/workflow\n 'trigger_approval', // Start approval process\n 'trigger_webhook', // Trigger webhook\n 'run_report', // Run a report\n 'send_email', // Send email\n 'send_notification', // Send notification\n 'schedule_task', // Schedule a task\n]);\n\nexport type WorkflowActionType = z.infer<typeof WorkflowActionTypeSchema>;\n\n/**\n * UI Component Action Types\n * Actions that interact with UI components\n */\nexport const ComponentActionTypeSchema = z.enum([\n 'open_modal', // Open modal dialog\n 'close_modal', // Close modal dialog\n 'open_sidebar', // Open sidebar panel\n 'close_sidebar', // Close sidebar panel\n 'show_notification', // Show toast/notification\n 'hide_notification', // Hide notification\n 'open_dropdown', // Open dropdown menu\n 'close_dropdown', // Close dropdown menu\n 'toggle_section', // Toggle collapsible section\n]);\n\nexport type ComponentActionType = z.infer<typeof ComponentActionTypeSchema>;\n\n/**\n * All UI Action Types Combined\n */\nexport const UIActionTypeSchema = z.union([\n NavigationActionTypeSchema,\n ViewActionTypeSchema,\n FormActionTypeSchema,\n DataActionTypeSchema,\n WorkflowActionTypeSchema,\n ComponentActionTypeSchema,\n]);\n\nexport type UIActionType = z.infer<typeof UIActionTypeSchema>;\n\n// ==========================================\n// Action Parameters\n// ==========================================\n\n/**\n * Navigation Action Parameters\n */\nexport const NavigationActionParamsSchema = z.object({\n object: z.string().optional().describe('Object name (for object-specific navigation)'),\n recordId: z.string().optional().describe('Record ID (for detail page)'),\n viewType: z.enum(['list', 'form', 'detail', 'kanban', 'calendar', 'gantt']).optional(),\n dashboardId: z.string().optional().describe('Dashboard ID'),\n reportId: z.string().optional().describe('Report ID'),\n appName: z.string().optional().describe('App name'),\n mode: z.enum(['new', 'edit', 'view']).optional().describe('Form mode'),\n openInNewTab: z.boolean().optional().describe('Open in new tab'),\n});\n\nexport type NavigationActionParams = z.infer<typeof NavigationActionParamsSchema>;\n\n/**\n * View Action Parameters\n */\nexport const ViewActionParamsSchema = z.object({\n viewMode: z.enum(['list', 'kanban', 'calendar', 'gantt', 'pivot']).optional(),\n filters: z.record(z.string(), z.any()).optional().describe('Filter conditions'),\n sort: z.array(z.object({\n field: z.string(),\n order: z.enum(['asc', 'desc']),\n })).optional(),\n groupBy: z.string().optional().describe('Field to group by'),\n columns: z.array(z.string()).optional().describe('Columns to show/hide'),\n recordId: z.string().optional().describe('Record to expand/collapse'),\n exportFormat: z.enum(['csv', 'xlsx', 'pdf', 'json']).optional(),\n});\n\nexport type ViewActionParams = z.infer<typeof ViewActionParamsSchema>;\n\n/**\n * Form Action Parameters\n */\nexport const FormActionParamsSchema = z.object({\n object: z.string().optional().describe('Object name'),\n recordId: z.string().optional().describe('Record ID (for edit/delete)'),\n fieldValues: z.record(z.string(), z.any()).optional().describe('Field name-value pairs'),\n fieldName: z.string().optional().describe('Specific field to fill/clear'),\n fieldValue: z.any().optional().describe('Value to set'),\n validateOnly: z.boolean().optional().describe('Validate without saving'),\n});\n\nexport type FormActionParams = z.infer<typeof FormActionParamsSchema>;\n\n/**\n * Data Action Parameters\n */\nexport const DataActionParamsSchema = z.object({\n recordIds: z.array(z.string()).optional().describe('Record IDs to select/operate on'),\n filters: z.record(z.string(), z.any()).optional().describe('Filter for bulk operations'),\n updateData: z.record(z.string(), z.any()).optional().describe('Data for bulk update'),\n exportFormat: z.enum(['csv', 'xlsx', 'pdf', 'json']).optional(),\n});\n\nexport type DataActionParams = z.infer<typeof DataActionParamsSchema>;\n\n/**\n * Workflow Action Parameters\n */\nexport const WorkflowActionParamsSchema = z.object({\n flowName: z.string().optional().describe('Flow/workflow name'),\n approvalProcessName: z.string().optional().describe('Approval process name'),\n webhookUrl: z.string().optional().describe('Webhook URL'),\n reportName: z.string().optional().describe('Report name'),\n emailTemplate: z.string().optional().describe('Email template'),\n recipients: z.array(z.string()).optional().describe('Email recipients'),\n subject: z.string().optional().describe('Email subject'),\n message: z.string().optional().describe('Notification/email message'),\n taskData: z.record(z.string(), z.any()).optional().describe('Task creation data'),\n scheduleTime: z.string().optional().describe('Schedule time (ISO 8601)'),\n contextData: z.record(z.string(), z.any()).optional().describe('Additional context data'),\n});\n\nexport type WorkflowActionParams = z.infer<typeof WorkflowActionParamsSchema>;\n\n/**\n * Component Action Parameters\n */\nexport const ComponentActionParamsSchema = z.object({\n componentId: z.string().optional().describe('Component ID'),\n modalConfig: z.object({\n title: z.string().optional(),\n content: z.any().optional(),\n size: z.enum(['small', 'medium', 'large', 'fullscreen']).optional(),\n }).optional(),\n notificationConfig: z.object({\n type: z.enum(['info', 'success', 'warning', 'error']).optional(),\n message: z.string(),\n duration: z.number().optional().describe('Duration in ms'),\n }).optional(),\n sidebarConfig: z.object({\n position: z.enum(['left', 'right']).optional(),\n width: z.string().optional(),\n content: z.any().optional(),\n }).optional(),\n});\n\nexport type ComponentActionParams = z.infer<typeof ComponentActionParamsSchema>;\n\n// ==========================================\n// Agent Action Schema\n// ==========================================\n\n/**\n * Agent UI Action Schema\n * Complete definition of an AI agent's UI action\n */\nexport const AgentActionSchema = z.object({\n /**\n * Action identifier (generated)\n */\n id: z.string().optional().describe('Unique action ID'),\n \n /**\n * Action type\n */\n type: UIActionTypeSchema.describe('Type of UI action to perform'),\n \n /**\n * Action parameters (discriminated union based on type)\n */\n params: z.union([\n NavigationActionParamsSchema,\n ViewActionParamsSchema,\n FormActionParamsSchema,\n DataActionParamsSchema,\n WorkflowActionParamsSchema,\n ComponentActionParamsSchema,\n ]).describe('Action-specific parameters'),\n \n /**\n * Confirmation requirement\n */\n requireConfirmation: z.boolean().default(false).describe('Require user confirmation before executing'),\n \n /**\n * Confirmation message\n */\n confirmationMessage: z.string().optional().describe('Message to show in confirmation dialog'),\n \n /**\n * Success message\n */\n successMessage: z.string().optional().describe('Message to show on success'),\n \n /**\n * Error handling\n */\n onError: z.enum(['retry', 'skip', 'abort']).default('abort').describe('Error handling strategy'),\n \n /**\n * Execution metadata\n */\n metadata: z.object({\n intent: z.string().optional().describe('Original user intent/query'),\n confidence: z.number().min(0).max(1).optional().describe('Confidence score (0-1)'),\n agentName: z.string().optional().describe('Agent that generated this action'),\n timestamp: z.string().datetime().optional().describe('Generation timestamp (ISO 8601)'),\n }).optional(),\n});\n\n/**\n * Agent Action Typed Schemas\n * Bind params to specific action types for type safety\n */\nexport const NavigationAgentActionSchema = AgentActionSchema.extend({\n type: NavigationActionTypeSchema,\n params: NavigationActionParamsSchema,\n});\n\nexport const ViewAgentActionSchema = AgentActionSchema.extend({\n type: ViewActionTypeSchema,\n params: ViewActionParamsSchema,\n});\n\nexport const FormAgentActionSchema = AgentActionSchema.extend({\n type: FormActionTypeSchema,\n params: FormActionParamsSchema,\n});\n\nexport const DataAgentActionSchema = AgentActionSchema.extend({\n type: DataActionTypeSchema,\n params: DataActionParamsSchema,\n});\n\nexport const WorkflowAgentActionSchema = AgentActionSchema.extend({\n type: WorkflowActionTypeSchema,\n params: WorkflowActionParamsSchema,\n});\n\nexport const ComponentAgentActionSchema = AgentActionSchema.extend({\n type: ComponentActionTypeSchema,\n params: ComponentActionParamsSchema,\n});\n\n/**\n * Typed Agent Action Union\n * Replaces the generic AgentActionSchema for stricter typing where possible\n */\nexport const TypedAgentActionSchema = z.union([\n NavigationAgentActionSchema,\n ViewAgentActionSchema,\n FormAgentActionSchema,\n DataAgentActionSchema,\n WorkflowAgentActionSchema,\n ComponentAgentActionSchema,\n]);\n\nexport type AgentAction = z.infer<typeof TypedAgentActionSchema>;\n\n/**\n * Agent Action Sequence Schema\n * Multiple actions to be executed in sequence\n */\nexport const AgentActionSequenceSchema = z.object({\n /**\n * Sequence identifier\n */\n id: z.string().optional().describe('Unique sequence ID'),\n \n /**\n * Actions to execute\n */\n actions: z.array(AgentActionSchema).describe('Ordered list of actions'),\n \n /**\n * Execution mode\n */\n mode: z.enum(['sequential', 'parallel']).default('sequential').describe('Execution mode'),\n \n /**\n * Stop on first error\n */\n stopOnError: z.boolean().default(true).describe('Stop sequence on first error'),\n \n /**\n * Transaction mode (all-or-nothing)\n */\n atomic: z.boolean().default(false).describe('Transaction mode (all-or-nothing)'),\n\n startTime: z.string().datetime().optional().describe('Execution start time (ISO 8601)'),\n\n endTime: z.string().datetime().optional().describe('Execution end time (ISO 8601)'),\n /**\n * Metadata\n */\n metadata: z.object({\n intent: z.string().optional().describe('Original user intent'),\n confidence: z.number().min(0).max(1).optional().describe('Overall confidence score'),\n agentName: z.string().optional().describe('Agent that generated this sequence'),\n }).optional(),\n});\n\nexport type AgentActionSequence = z.infer<typeof AgentActionSequenceSchema>;\n\n/**\n * Agent Action Result Schema\n * Result of executing an agent action\n */\nexport const AgentActionResultSchema = z.object({\n /**\n * Action ID\n */\n actionId: z.string().describe('ID of the executed action'),\n \n /**\n * Execution status\n */\n status: z.enum(['success', 'error', 'cancelled', 'pending']).describe('Execution status'),\n \n /**\n * Result data\n */\n data: z.any().optional().describe('Action result data'),\n \n /**\n * Error information\n */\n error: z.object({\n code: z.string(),\n message: z.string(),\n details: z.any().optional(),\n }).optional().describe('Error details if status is \"error\"'),\n \n /**\n * Execution metadata\n */\n metadata: z.object({\n startTime: z.string().optional().describe('Execution start time (ISO 8601)'),\n endTime: z.string().optional().describe('Execution end time (ISO 8601)'),\n duration: z.number().optional().describe('Execution duration in ms'),\n }).optional(),\n});\n\nexport type AgentActionResult = z.infer<typeof AgentActionResultSchema>;\n\n/**\n * Agent Action Sequence Result Schema\n * Result of executing an action sequence\n */\nexport const AgentActionSequenceResultSchema = z.object({\n /**\n * Sequence ID\n */\n sequenceId: z.string().describe('ID of the executed sequence'),\n \n /**\n * Overall status\n */\n status: z.enum(['success', 'partial_success', 'error', 'cancelled']).describe('Overall execution status'),\n \n /**\n * Individual action results\n */\n results: z.array(AgentActionResultSchema).describe('Results for each action'),\n \n /**\n * Summary\n */\n summary: z.object({\n total: z.number().describe('Total number of actions'),\n successful: z.number().describe('Number of successful actions'),\n failed: z.number().describe('Number of failed actions'),\n cancelled: z.number().describe('Number of cancelled actions'),\n }),\n \n /**\n * Execution metadata\n */\n metadata: z.object({\n startTime: z.string().optional(),\n endTime: z.string().optional(),\n totalDuration: z.number().optional().describe('Total execution time in ms'),\n }).optional(),\n});\n\nexport type AgentActionSequenceResult = z.infer<typeof AgentActionSequenceResultSchema>;\n\n// ==========================================\n// Helper Schemas\n// ==========================================\n\n/**\n * Intent to Action Mapping Schema\n * Maps natural language intent patterns to UI actions\n */\nexport const IntentActionMappingSchema = z.object({\n /**\n * Intent pattern (regex or exact match)\n */\n intent: z.string().describe('Intent pattern (e.g., \"open_new_record_form\")'),\n \n /**\n * Intent examples (for training)\n */\n examples: z.array(z.string()).optional().describe('Example user queries'),\n \n /**\n * Action template\n */\n actionTemplate: AgentActionSchema.describe('Action to execute'),\n \n /**\n * Parameter extraction rules\n */\n paramExtraction: z.record(z.string(), z.object({\n type: z.enum(['entity', 'slot', 'context']),\n required: z.boolean().default(false),\n default: z.any().optional(),\n })).optional().describe('Rules for extracting parameters from user input'),\n \n /**\n * Confidence threshold\n */\n minConfidence: z.number().min(0).max(1).default(0.7).describe('Minimum confidence to execute'),\n});\n\nexport type IntentActionMapping = z.infer<typeof IntentActionMappingSchema>;\n","import { z } from 'zod';\nimport { AgentSchema, AIToolSchema } from './agent.zod';\n\n/**\n * DevOps Agent Protocol\n * \n * Defines autonomous DevOps agents that can self-iterate on enterprise\n * management software development using the ObjectStack specification.\n * \n * This agent integrates with GitHub for version control and Vercel for\n * deployment, enabling fully automated development, testing, and release cycles.\n * \n * Architecture:\n * - Self-iterating development based on ObjectStack specifications\n * - Automated code generation following best practices\n * - Continuous integration and deployment\n * - Version management and release automation\n * - Monitoring and rollback capabilities\n * \n * Use Cases:\n * - Automated feature development from specifications\n * - Self-healing code based on test failures\n * - Automated dependency updates\n * - Continuous optimization and refactoring\n * - Automated documentation generation\n * \n * @example\n * ```typescript\n * import { DevOpsAgent } from '@objectstack/spec/ai';\n * \n * const agent: DevOpsAgent = {\n * name: 'devops_automation_agent',\n * label: 'DevOps Automation Agent',\n * role: 'Senior Full-Stack DevOps Engineer',\n * instructions: '...',\n * developmentConfig: {\n * specificationSource: 'packages/spec',\n * codeGeneration: {\n * enabled: true,\n * targets: ['frontend', 'backend', 'api'],\n * },\n * },\n * integrations: {\n * github: {\n * connector: 'github_production',\n * repository: {\n * owner: 'objectstack-ai',\n * name: 'app',\n * },\n * },\n * vercel: {\n * connector: 'vercel_production',\n * project: 'objectstack-app',\n * },\n * },\n * };\n * ```\n */\n\n/**\n * Code Generation Targets\n */\nexport const CodeGenerationTargetSchema = z.enum([\n 'frontend', // Frontend UI components\n 'backend', // Backend services\n 'api', // API endpoints\n 'database', // Database schemas\n 'tests', // Test suites\n 'documentation', // Documentation\n 'infrastructure', // Infrastructure as code\n]).describe('Code generation target');\n\nexport type CodeGenerationTarget = z.infer<typeof CodeGenerationTargetSchema>;\n\n/**\n * Code Generation Configuration\n */\nexport const CodeGenerationConfigSchema = z.object({\n /**\n * Enable code generation\n */\n enabled: z.boolean().optional().default(true).describe('Enable code generation'),\n \n /**\n * Generation targets\n */\n targets: z.array(CodeGenerationTargetSchema).describe('Code generation targets'),\n \n /**\n * Template repository\n */\n templateRepo: z.string().optional().describe('Template repository for scaffolding'),\n \n /**\n * Code style guide\n */\n styleGuide: z.string().optional().describe('Code style guide to follow'),\n \n /**\n * Include tests\n */\n includeTests: z.boolean().optional().default(true).describe('Generate tests with code'),\n \n /**\n * Include documentation\n */\n includeDocumentation: z.boolean().optional().default(true).describe('Generate documentation'),\n \n /**\n * Validation mode\n */\n validationMode: z.enum(['strict', 'moderate', 'permissive']).optional().default('strict').describe('Code validation strictness'),\n});\n\nexport type CodeGenerationConfig = z.infer<typeof CodeGenerationConfigSchema>;\n\n/**\n * Testing Configuration\n */\nexport const TestingConfigSchema = z.object({\n /**\n * Enable automated testing\n */\n enabled: z.boolean().optional().default(true).describe('Enable automated testing'),\n \n /**\n * Test types to run\n */\n testTypes: z.array(z.enum([\n 'unit',\n 'integration',\n 'e2e',\n 'performance',\n 'security',\n 'accessibility',\n ])).optional().default(['unit', 'integration']).describe('Types of tests to run'),\n \n /**\n * Minimum coverage threshold\n */\n coverageThreshold: z.number().min(0).max(100).optional().default(80).describe('Minimum test coverage percentage'),\n \n /**\n * Test framework\n */\n framework: z.string().optional().describe('Testing framework (e.g., vitest, jest, playwright)'),\n \n /**\n * Run tests before commit\n */\n preCommitTests: z.boolean().optional().default(true).describe('Run tests before committing'),\n \n /**\n * Auto-fix failing tests\n */\n autoFix: z.boolean().optional().default(false).describe('Attempt to auto-fix failing tests'),\n});\n\nexport type TestingConfig = z.infer<typeof TestingConfigSchema>;\n\n/**\n * CI/CD Pipeline Stage\n */\nexport const PipelineStageSchema = z.object({\n /**\n * Stage name\n */\n name: z.string().describe('Pipeline stage name'),\n \n /**\n * Stage type\n */\n type: z.enum([\n 'build',\n 'test',\n 'lint',\n 'security_scan',\n 'deploy',\n 'smoke_test',\n 'rollback',\n ]).describe('Stage type'),\n \n /**\n * Stage order\n */\n order: z.number().int().min(0).describe('Execution order'),\n \n /**\n * Run in parallel\n */\n parallel: z.boolean().optional().default(false).describe('Can run in parallel with other stages'),\n \n /**\n * Commands to execute\n */\n commands: z.array(z.string()).describe('Commands to execute'),\n \n /**\n * Environment variables\n */\n env: z.record(z.string(), z.string()).optional().describe('Stage-specific environment variables'),\n \n /**\n * Timeout in seconds\n */\n timeout: z.number().int().min(60).optional().default(600).describe('Stage timeout in seconds'),\n \n /**\n * Retry on failure\n */\n retryOnFailure: z.boolean().optional().default(false).describe('Retry stage on failure'),\n \n /**\n * Max retry attempts\n */\n maxRetries: z.number().int().min(0).max(5).optional().default(0).describe('Maximum retry attempts'),\n});\n\nexport type PipelineStage = z.infer<typeof PipelineStageSchema>;\n\n/**\n * CI/CD Pipeline Configuration\n */\nexport const CICDPipelineConfigSchema = z.object({\n /**\n * Pipeline name\n */\n name: z.string().describe('Pipeline name'),\n \n /**\n * Pipeline trigger\n */\n trigger: z.enum([\n 'push',\n 'pull_request',\n 'release',\n 'schedule',\n 'manual',\n ]).describe('Pipeline trigger'),\n \n /**\n * Branch filters\n */\n branches: z.array(z.string()).optional().describe('Branches to run pipeline on'),\n \n /**\n * Pipeline stages\n */\n stages: z.array(PipelineStageSchema).describe('Pipeline stages'),\n \n /**\n * Enable notifications\n */\n notifications: z.object({\n onSuccess: z.boolean().optional().default(false),\n onFailure: z.boolean().optional().default(true),\n channels: z.array(z.string()).optional().describe('Notification channels (e.g., slack, email)'),\n }).optional().describe('Pipeline notifications'),\n});\n\nexport type CICDPipelineConfig = z.infer<typeof CICDPipelineConfigSchema>;\n\n/**\n * Version Management Configuration\n */\nexport const VersionManagementSchema = z.object({\n /**\n * Versioning scheme\n */\n scheme: z.enum(['semver', 'calver', 'custom']).optional().default('semver').describe('Versioning scheme'),\n \n /**\n * Auto-increment strategy\n */\n autoIncrement: z.enum(['major', 'minor', 'patch', 'none']).optional().default('patch').describe('Auto-increment strategy'),\n \n /**\n * Version prefix\n */\n prefix: z.string().optional().default('v').describe('Version tag prefix'),\n \n /**\n * Create changelog\n */\n generateChangelog: z.boolean().optional().default(true).describe('Generate changelog automatically'),\n \n /**\n * Changelog format\n */\n changelogFormat: z.enum(['conventional', 'keepachangelog', 'custom']).optional().default('conventional').describe('Changelog format'),\n \n /**\n * Tag releases\n */\n tagReleases: z.boolean().optional().default(true).describe('Create Git tags for releases'),\n});\n\nexport type VersionManagement = z.infer<typeof VersionManagementSchema>;\n\n/**\n * Deployment Strategy Configuration\n */\nexport const DeploymentStrategySchema = z.object({\n /**\n * Strategy type\n */\n type: z.enum([\n 'rolling',\n 'blue_green',\n 'canary',\n 'recreate',\n ]).optional().default('rolling').describe('Deployment strategy'),\n \n /**\n * Canary percentage (for canary deployments)\n */\n canaryPercentage: z.number().min(0).max(100).optional().default(10).describe('Canary deployment percentage'),\n \n /**\n * Health check URL\n */\n healthCheckUrl: z.string().optional().describe('Health check endpoint'),\n \n /**\n * Health check timeout\n */\n healthCheckTimeout: z.number().int().min(10).optional().default(60).describe('Health check timeout in seconds'),\n \n /**\n * Rollback on failure\n */\n autoRollback: z.boolean().optional().default(true).describe('Automatically rollback on failure'),\n \n /**\n * Smoke tests\n */\n smokeTests: z.array(z.string()).optional().describe('Smoke test commands to run post-deployment'),\n});\n\nexport type DeploymentStrategy = z.infer<typeof DeploymentStrategySchema>;\n\n/**\n * Monitoring Configuration\n */\nexport const MonitoringConfigSchema = z.object({\n /**\n * Enable monitoring\n */\n enabled: z.boolean().optional().default(true).describe('Enable monitoring'),\n \n /**\n * Metrics to track\n */\n metrics: z.array(z.enum([\n 'performance',\n 'errors',\n 'usage',\n 'availability',\n 'latency',\n ])).optional().default(['performance', 'errors', 'availability']).describe('Metrics to monitor'),\n \n /**\n * Alert thresholds\n */\n alerts: z.array(z.object({\n name: z.string().describe('Alert name'),\n metric: z.string().describe('Metric to monitor'),\n threshold: z.number().describe('Alert threshold'),\n severity: z.enum(['info', 'warning', 'critical']).describe('Alert severity'),\n })).optional().describe('Alert configurations'),\n \n /**\n * Monitoring integrations\n */\n integrations: z.array(z.string()).optional().describe('Monitoring service integrations'),\n});\n\nexport type MonitoringConfig = z.infer<typeof MonitoringConfigSchema>;\n\n/**\n * Development Configuration\n */\nexport const DevelopmentConfigSchema = z.object({\n /**\n * ObjectStack specification source\n */\n specificationSource: z.string().describe('Path to ObjectStack specification'),\n \n /**\n * Code generation configuration\n */\n codeGeneration: CodeGenerationConfigSchema.describe('Code generation settings'),\n \n /**\n * Testing configuration\n */\n testing: TestingConfigSchema.optional().describe('Testing configuration'),\n \n /**\n * Linting configuration\n */\n linting: z.object({\n enabled: z.boolean().optional().default(true),\n autoFix: z.boolean().optional().default(true),\n rules: z.record(z.string(), z.any()).optional(),\n }).optional().describe('Code linting configuration'),\n \n /**\n * Formatting configuration\n */\n formatting: z.object({\n enabled: z.boolean().optional().default(true),\n autoFormat: z.boolean().optional().default(true),\n config: z.record(z.string(), z.any()).optional(),\n }).optional().describe('Code formatting configuration'),\n});\n\nexport type DevelopmentConfig = z.infer<typeof DevelopmentConfigSchema>;\n\n/**\n * GitHub Integration Configuration\n */\nexport const GitHubIntegrationSchema = z.object({\n /**\n * GitHub connector reference\n */\n connector: z.string().describe('GitHub connector name'),\n \n /**\n * Repository configuration\n */\n repository: z.object({\n owner: z.string().describe('Repository owner'),\n name: z.string().describe('Repository name'),\n }).describe('Repository configuration'),\n \n /**\n * Default branch for features\n */\n featureBranch: z.string().optional().default('develop').describe('Default feature branch'),\n \n /**\n * Pull request configuration\n */\n pullRequest: z.object({\n autoCreate: z.boolean().optional().default(true).describe('Automatically create PRs'),\n autoMerge: z.boolean().optional().default(false).describe('Automatically merge PRs when checks pass'),\n requireReviews: z.boolean().optional().default(true).describe('Require reviews before merge'),\n deleteBranchOnMerge: z.boolean().optional().default(true).describe('Delete feature branch after merge'),\n }).optional().describe('Pull request settings'),\n});\n\nexport type GitHubIntegration = z.infer<typeof GitHubIntegrationSchema>;\n\n/**\n * Vercel Integration Configuration\n */\nexport const VercelIntegrationSchema = z.object({\n /**\n * Vercel connector reference\n */\n connector: z.string().describe('Vercel connector name'),\n \n /**\n * Project name\n */\n project: z.string().describe('Vercel project name'),\n \n /**\n * Environment mapping\n */\n environments: z.object({\n production: z.string().optional().default('main').describe('Production branch'),\n preview: z.array(z.string()).optional().default(['develop', 'feature/*']).describe('Preview branches'),\n }).optional().describe('Environment mapping'),\n \n /**\n * Deployment configuration\n */\n deployment: z.object({\n autoDeployProduction: z.boolean().optional().default(false).describe('Auto-deploy to production'),\n autoDeployPreview: z.boolean().optional().default(true).describe('Auto-deploy preview environments'),\n requireApproval: z.boolean().optional().default(true).describe('Require approval for production deployments'),\n }).optional().describe('Deployment settings'),\n});\n\nexport type VercelIntegration = z.infer<typeof VercelIntegrationSchema>;\n\n/**\n * Integration Configuration\n */\nexport const IntegrationConfigSchema = z.object({\n /**\n * GitHub integration\n */\n github: GitHubIntegrationSchema.describe('GitHub integration configuration'),\n \n /**\n * Vercel integration\n */\n vercel: VercelIntegrationSchema.describe('Vercel integration configuration'),\n \n /**\n * Additional integrations\n */\n additional: z.record(z.string(), z.any()).optional().describe('Additional integration configurations'),\n});\n\nexport type IntegrationConfig = z.infer<typeof IntegrationConfigSchema>;\n\n/**\n * DevOps Agent Schema\n * Complete autonomous DevOps agent configuration\n */\nexport const DevOpsAgentSchema = AgentSchema.extend({\n /**\n * Development configuration\n */\n developmentConfig: DevelopmentConfigSchema.describe('Development configuration'),\n \n /**\n * CI/CD pipelines\n */\n pipelines: z.array(CICDPipelineConfigSchema).optional().describe('CI/CD pipelines'),\n \n /**\n * Version management\n */\n versionManagement: VersionManagementSchema.optional().describe('Version management configuration'),\n \n /**\n * Deployment strategy\n */\n deploymentStrategy: DeploymentStrategySchema.optional().describe('Deployment strategy'),\n \n /**\n * Monitoring configuration\n */\n monitoring: MonitoringConfigSchema.optional().describe('Monitoring configuration'),\n \n /**\n * Integration configuration\n */\n integrations: IntegrationConfigSchema.describe('Integration configurations'),\n \n /**\n * Self-iteration configuration\n */\n selfIteration: z.object({\n enabled: z.boolean().optional().default(true).describe('Enable self-iteration'),\n iterationFrequency: z.string().optional().describe('Iteration frequency (cron expression)'),\n optimizationGoals: z.array(z.enum([\n 'performance',\n 'security',\n 'code_quality',\n 'test_coverage',\n 'documentation',\n ])).optional().describe('Optimization goals'),\n learningMode: z.enum(['conservative', 'balanced', 'aggressive']).optional().default('balanced').describe('Learning mode'),\n }).optional().describe('Self-iteration configuration'),\n});\n\nexport type DevOpsAgent = z.infer<typeof DevOpsAgentSchema>;\n\n/**\n * DevOps Tools Extension\n * Additional tools available to DevOps agents\n */\nexport const DevOpsToolSchema = AIToolSchema.extend({\n type: z.enum([\n 'action',\n 'flow',\n 'query',\n 'vector_search',\n // DevOps-specific tools\n 'git_operation',\n 'code_generation',\n 'test_execution',\n 'deployment',\n 'monitoring',\n ]),\n});\n\nexport type DevOpsTool = z.infer<typeof DevOpsToolSchema>;\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: Full-Stack DevOps Agent\n */\nexport const fullStackDevOpsAgentExample: DevOpsAgent = {\n name: 'devops_automation_agent',\n label: 'DevOps Automation Agent',\n visibility: 'organization',\n avatar: '/avatars/devops-bot.png',\n role: 'Senior Full-Stack DevOps Engineer',\n \n instructions: `You are an autonomous DevOps agent specialized in enterprise management software development.\n\nYour responsibilities:\n1. Generate code based on ObjectStack specifications\n2. Write comprehensive tests for all generated code\n3. Ensure code quality through linting and formatting\n4. Manage Git workflow (commits, branches, PRs)\n5. Deploy applications to Vercel\n6. Monitor deployments and handle rollbacks\n7. Continuously optimize and iterate on the codebase\n\nGuidelines:\n- Follow ObjectStack naming conventions (camelCase for props, snake_case for names)\n- Write clean, maintainable, well-documented code\n- Ensure 80%+ test coverage\n- Use conventional commit messages\n- Create detailed PR descriptions\n- Deploy only after all checks pass\n- Monitor production deployments closely\n- Learn from failures and optimize continuously\n\nAlways prioritize code quality, security, and maintainability.`,\n \n model: {\n provider: 'openai',\n model: 'gpt-4-turbo-preview',\n temperature: 0.3,\n maxTokens: 8192,\n },\n \n tools: [\n {\n type: 'action',\n name: 'generate_from_spec',\n description: 'Generate code from ObjectStack specification',\n },\n {\n type: 'action',\n name: 'run_tests',\n description: 'Execute test suites',\n },\n {\n type: 'action',\n name: 'commit_and_push',\n description: 'Commit changes and push to GitHub',\n },\n {\n type: 'action',\n name: 'create_pull_request',\n description: 'Create pull request on GitHub',\n },\n {\n type: 'action',\n name: 'deploy_to_vercel',\n description: 'Deploy application to Vercel',\n },\n {\n type: 'action',\n name: 'check_deployment_health',\n description: 'Check deployment health status',\n },\n {\n type: 'action',\n name: 'rollback_deployment',\n description: 'Rollback to previous deployment',\n },\n ],\n \n knowledge: {\n topics: [\n 'objectstack_protocol',\n 'typescript_best_practices',\n 'testing_strategies',\n 'ci_cd_patterns',\n 'deployment_strategies',\n ],\n indexes: ['devops_knowledge_base'],\n },\n \n developmentConfig: {\n specificationSource: 'packages/spec',\n \n codeGeneration: {\n enabled: true,\n targets: ['frontend', 'backend', 'api', 'tests', 'documentation'],\n styleGuide: 'objectstack',\n includeTests: true,\n includeDocumentation: true,\n validationMode: 'strict',\n },\n \n testing: {\n enabled: true,\n testTypes: ['unit', 'integration', 'e2e'],\n coverageThreshold: 80,\n framework: 'vitest',\n preCommitTests: true,\n autoFix: false,\n },\n \n linting: {\n enabled: true,\n autoFix: true,\n },\n \n formatting: {\n enabled: true,\n autoFormat: true,\n },\n },\n \n pipelines: [\n {\n name: 'CI Pipeline',\n trigger: 'pull_request',\n branches: ['main', 'develop'],\n stages: [\n {\n name: 'Install Dependencies',\n type: 'build',\n order: 1,\n commands: ['pnpm install'],\n timeout: 300,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Lint',\n type: 'lint',\n order: 2,\n parallel: true,\n commands: ['pnpm run lint'],\n timeout: 180,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Type Check',\n type: 'lint',\n order: 2,\n parallel: true,\n commands: ['pnpm run type-check'],\n timeout: 180,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Test',\n type: 'test',\n order: 3,\n commands: ['pnpm run test:ci'],\n timeout: 600,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Build',\n type: 'build',\n order: 4,\n commands: ['pnpm run build'],\n timeout: 600,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Security Scan',\n type: 'security_scan',\n order: 5,\n commands: ['pnpm audit', 'pnpm run security-scan'],\n timeout: 300,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n ],\n },\n {\n name: 'CD Pipeline',\n trigger: 'push',\n branches: ['main'],\n stages: [\n {\n name: 'Deploy to Production',\n type: 'deploy',\n order: 1,\n commands: ['vercel deploy --prod'],\n timeout: 600,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Smoke Tests',\n type: 'smoke_test',\n order: 2,\n commands: ['pnpm run test:smoke'],\n timeout: 300,\n parallel: false,\n retryOnFailure: true,\n maxRetries: 2,\n },\n ],\n notifications: {\n onSuccess: true,\n onFailure: true,\n channels: ['slack', 'email'],\n },\n },\n ],\n \n versionManagement: {\n scheme: 'semver',\n autoIncrement: 'patch',\n prefix: 'v',\n generateChangelog: true,\n changelogFormat: 'conventional',\n tagReleases: true,\n },\n \n deploymentStrategy: {\n type: 'rolling',\n healthCheckUrl: '/api/health',\n healthCheckTimeout: 60,\n autoRollback: true,\n smokeTests: ['pnpm run test:smoke'],\n canaryPercentage: 10,\n },\n \n monitoring: {\n enabled: true,\n metrics: ['performance', 'errors', 'availability'],\n alerts: [\n {\n name: 'High Error Rate',\n metric: 'error_rate',\n threshold: 0.05,\n severity: 'critical',\n },\n {\n name: 'Slow Response Time',\n metric: 'response_time',\n threshold: 1000,\n severity: 'warning',\n },\n ],\n integrations: ['vercel', 'datadog'],\n },\n \n integrations: {\n github: {\n connector: 'github_production',\n repository: {\n owner: 'objectstack-ai',\n name: 'app',\n },\n featureBranch: 'develop',\n pullRequest: {\n autoCreate: true,\n autoMerge: false,\n requireReviews: true,\n deleteBranchOnMerge: true,\n },\n },\n \n vercel: {\n connector: 'vercel_production',\n project: 'objectstack-app',\n environments: {\n production: 'main',\n preview: ['develop', 'feature/*'],\n },\n deployment: {\n autoDeployProduction: false,\n autoDeployPreview: true,\n requireApproval: true,\n },\n },\n },\n \n selfIteration: {\n enabled: true,\n iterationFrequency: '0 0 * * 0', // Weekly on Sunday\n optimizationGoals: ['code_quality', 'test_coverage', 'performance'],\n learningMode: 'balanced',\n },\n \n active: true,\n};\n","import { z } from 'zod';\n\n/**\n * # AI-Driven Plugin Development Protocol\n * \n * Defines protocols for AI-powered plugin development including:\n * - Natural language to code generation\n * - Intelligent code scaffolding\n * - Automated testing and validation\n * - AI-powered code review and optimization\n * - Plugin composition and recommendation\n */\n\n/**\n * Code Generation Request\n * Request for AI to generate plugin code\n */\nexport const CodeGenerationRequestSchema = z.object({\n /**\n * Natural language description of desired functionality\n */\n description: z.string().describe('What the plugin should do'),\n \n /**\n * Plugin type to generate\n */\n pluginType: z.enum([\n 'driver', // Data driver plugin\n 'app', // Application plugin\n 'widget', // UI widget\n 'integration', // External integration\n 'automation', // Automation/workflow\n 'analytics', // Analytics plugin\n 'ai-agent', // AI agent plugin\n 'custom', // Custom plugin type\n ]),\n \n /**\n * Output format for generated code\n */\n outputFormat: z.enum([\n 'source-code', // Generate TypeScript/JavaScript source code\n 'low-code-schema', // Generate ObjectStack JSON/YAML schema definitions\n 'dsl', // Generate domain-specific language definitions\n ]).default('source-code')\n .describe('Format of the generated output'),\n \n /**\n * Target programming language (for source-code format)\n */\n language: z.enum(['typescript', 'javascript', 'python']).default('typescript'),\n \n /**\n * Framework preferences\n */\n framework: z.object({\n runtime: z.enum(['node', 'browser', 'edge', 'universal']).optional(),\n uiFramework: z.enum(['react', 'vue', 'svelte', 'none']).optional(),\n testing: z.enum(['vitest', 'jest', 'mocha', 'none']).optional(),\n }).optional(),\n \n /**\n * Required capabilities\n */\n capabilities: z.array(z.string()).optional().describe('Protocol IDs to implement'),\n \n /**\n * Dependencies\n */\n dependencies: z.array(z.string()).optional().describe('Required plugin IDs'),\n \n /**\n * Example usage (helps AI understand intent)\n */\n examples: z.array(z.object({\n input: z.string(),\n expectedOutput: z.string(),\n description: z.string().optional(),\n })).optional(),\n \n /**\n * Code style preferences (for source-code format)\n */\n style: z.object({\n indentation: z.enum(['tab', '2spaces', '4spaces']).default('2spaces'),\n quotes: z.enum(['single', 'double']).default('single'),\n semicolons: z.boolean().default(true),\n trailingComma: z.boolean().default(true),\n }).optional(),\n \n /**\n * Low-code schema preferences (for low-code-schema format)\n */\n schemaOptions: z.object({\n /**\n * Schema format\n */\n format: z.enum(['json', 'yaml', 'typescript']).default('typescript')\n .describe('Output schema format'),\n \n /**\n * Include example data\n */\n includeExamples: z.boolean().default(true),\n \n /**\n * Validation strictness\n */\n strictValidation: z.boolean().default(true),\n \n /**\n * Generate UI definitions\n */\n generateUI: z.boolean().default(true)\n .describe('Generate view, dashboard, and page definitions'),\n \n /**\n * Generate data models\n */\n generateDataModels: z.boolean().default(true)\n .describe('Generate object and field definitions'),\n }).optional(),\n \n /**\n * Additional context\n */\n context: z.object({\n /**\n * Existing code to extend\n */\n existingCode: z.string().optional(),\n \n /**\n * Related documentation URLs\n */\n documentationUrls: z.array(z.string()).optional(),\n \n /**\n * Similar plugins for reference\n */\n referencePlugins: z.array(z.string()).optional(),\n }).optional(),\n \n /**\n * Generation options\n */\n options: z.object({\n /**\n * Include tests\n */\n generateTests: z.boolean().default(true),\n \n /**\n * Include documentation\n */\n generateDocs: z.boolean().default(true),\n \n /**\n * Include examples\n */\n generateExamples: z.boolean().default(true),\n \n /**\n * Code coverage target\n */\n targetCoverage: z.number().min(0).max(100).default(80),\n \n /**\n * Optimization level\n */\n optimizationLevel: z.enum(['none', 'basic', 'aggressive']).default('basic'),\n }).optional(),\n});\n\n/**\n * Generated Code\n * Result of code generation\n */\nexport const GeneratedCodeSchema = z.object({\n /**\n * Output format used\n */\n outputFormat: z.enum(['source-code', 'low-code-schema', 'dsl']),\n \n /**\n * Main plugin code (for source-code format)\n */\n code: z.string().optional(),\n \n /**\n * Language used (for source-code format)\n */\n language: z.string().optional(),\n \n /**\n * Low-code schema definitions (for low-code-schema format)\n */\n schemas: z.array(z.object({\n type: z.enum(['object', 'view', 'dashboard', 'app', 'workflow', 'api', 'page']),\n path: z.string().describe('File path for the schema'),\n content: z.string().describe('Schema content (JSON/YAML/TypeScript)'),\n description: z.string().optional(),\n })).optional()\n .describe('Generated low-code schema files'),\n \n /**\n * File structure\n */\n files: z.array(z.object({\n path: z.string(),\n content: z.string(),\n description: z.string().optional(),\n })),\n \n /**\n * Generated tests\n */\n tests: z.array(z.object({\n path: z.string(),\n content: z.string(),\n coverage: z.number().min(0).max(100).optional(),\n })).optional(),\n \n /**\n * Documentation\n */\n documentation: z.object({\n readme: z.string().optional(),\n api: z.string().optional(),\n usage: z.string().optional(),\n }).optional(),\n \n /**\n * Package metadata\n */\n package: z.object({\n name: z.string(),\n version: z.string(),\n dependencies: z.record(z.string(), z.string()).optional(),\n devDependencies: z.record(z.string(), z.string()).optional(),\n }).optional(),\n \n /**\n * Quality metrics\n */\n quality: z.object({\n complexity: z.number().optional().describe('Cyclomatic complexity'),\n maintainability: z.number().min(0).max(100).optional(),\n testCoverage: z.number().min(0).max(100).optional(),\n lintScore: z.number().min(0).max(100).optional(),\n }).optional(),\n \n /**\n * AI confidence score\n */\n confidence: z.number().min(0).max(100).describe('AI confidence in generated code'),\n \n /**\n * Suggestions for improvement\n */\n suggestions: z.array(z.string()).optional(),\n \n /**\n * Warnings or caveats\n */\n warnings: z.array(z.string()).optional(),\n});\n\n/**\n * Plugin Scaffolding Template\n * Template for plugin structure\n */\nexport const PluginScaffoldingTemplateSchema = z.object({\n /**\n * Template identifier\n */\n id: z.string(),\n \n /**\n * Template name\n */\n name: z.string(),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Plugin type\n */\n pluginType: z.string(),\n \n /**\n * File structure\n */\n structure: z.array(z.object({\n type: z.enum(['file', 'directory']),\n path: z.string(),\n template: z.string().optional().describe('Template content with variables'),\n optional: z.boolean().default(false),\n })),\n \n /**\n * Variables to be filled\n */\n variables: z.array(z.object({\n name: z.string(),\n description: z.string(),\n type: z.enum(['string', 'number', 'boolean', 'array', 'object']),\n required: z.boolean().default(true),\n default: z.any().optional(),\n validation: z.string().optional().describe('Validation regex or rule'),\n })),\n \n /**\n * Post-scaffold scripts\n */\n scripts: z.array(z.object({\n name: z.string(),\n command: z.string(),\n description: z.string().optional(),\n optional: z.boolean().default(false),\n })).optional(),\n});\n\n/**\n * AI Code Review Result\n * Result of AI-powered code review\n */\nexport const AICodeReviewResultSchema = z.object({\n /**\n * Overall assessment\n */\n assessment: z.enum(['excellent', 'good', 'acceptable', 'needs-improvement', 'poor']),\n \n /**\n * Overall score (0-100)\n */\n score: z.number().min(0).max(100),\n \n /**\n * Issues found\n */\n issues: z.array(z.object({\n severity: z.enum(['critical', 'error', 'warning', 'info', 'style']),\n category: z.enum([\n 'bug',\n 'security',\n 'performance',\n 'maintainability',\n 'style',\n 'documentation',\n 'testing',\n 'type-safety',\n 'best-practice',\n ]),\n file: z.string(),\n line: z.number().int().optional(),\n column: z.number().int().optional(),\n message: z.string(),\n suggestion: z.string().optional(),\n autoFixable: z.boolean().default(false),\n autoFix: z.string().optional().describe('Automated fix code'),\n })),\n \n /**\n * Positive highlights\n */\n highlights: z.array(z.object({\n category: z.string(),\n description: z.string(),\n file: z.string().optional(),\n })).optional(),\n \n /**\n * Quality metrics\n */\n metrics: z.object({\n complexity: z.number().optional(),\n maintainability: z.number().min(0).max(100).optional(),\n testCoverage: z.number().min(0).max(100).optional(),\n duplicateCode: z.number().min(0).max(100).optional(),\n technicalDebt: z.string().optional().describe('Estimated technical debt'),\n }).optional(),\n \n /**\n * Recommendations\n */\n recommendations: z.array(z.object({\n priority: z.enum(['high', 'medium', 'low']),\n title: z.string(),\n description: z.string(),\n effort: z.enum(['trivial', 'small', 'medium', 'large']).optional(),\n })),\n \n /**\n * Security analysis\n */\n security: z.object({\n vulnerabilities: z.array(z.object({\n severity: z.enum(['critical', 'high', 'medium', 'low']),\n type: z.string(),\n description: z.string(),\n remediation: z.string().optional(),\n })).optional(),\n score: z.number().min(0).max(100).optional(),\n }).optional(),\n});\n\n/**\n * Plugin Composition Request\n * Request for AI to compose multiple plugins together\n */\nexport const PluginCompositionRequestSchema = z.object({\n /**\n * Desired outcome\n */\n goal: z.string().describe('What should the composed plugins achieve'),\n \n /**\n * Available plugins\n */\n availablePlugins: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n capabilities: z.array(z.string()).optional(),\n description: z.string().optional(),\n })),\n \n /**\n * Constraints\n */\n constraints: z.object({\n /**\n * Maximum plugins to use\n */\n maxPlugins: z.number().int().min(1).optional(),\n \n /**\n * Required plugins\n */\n requiredPlugins: z.array(z.string()).optional(),\n \n /**\n * Excluded plugins\n */\n excludedPlugins: z.array(z.string()).optional(),\n \n /**\n * Performance requirements\n */\n performance: z.object({\n maxLatency: z.number().optional().describe('Maximum latency in ms'),\n maxMemory: z.number().optional().describe('Maximum memory in bytes'),\n }).optional(),\n }).optional(),\n \n /**\n * Optimization criteria\n */\n optimize: z.enum([\n 'performance',\n 'reliability',\n 'simplicity',\n 'cost',\n 'security',\n ]).optional(),\n});\n\n/**\n * Plugin Composition Result\n * AI-generated plugin composition\n */\nexport const PluginCompositionResultSchema = z.object({\n /**\n * Selected plugins\n */\n plugins: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n role: z.string().describe('Role in the composition'),\n configuration: z.record(z.string(), z.any()).optional(),\n })),\n \n /**\n * Integration code\n */\n integration: z.object({\n /**\n * Glue code to connect plugins\n */\n code: z.string(),\n \n /**\n * Configuration\n */\n config: z.record(z.string(), z.any()).optional(),\n \n /**\n * Initialization order\n */\n initOrder: z.array(z.string()),\n }),\n \n /**\n * Data flow diagram\n */\n dataFlow: z.array(z.object({\n from: z.string(),\n to: z.string(),\n data: z.string().describe('Data type or description'),\n })),\n \n /**\n * Expected performance\n */\n performance: z.object({\n estimatedLatency: z.number().optional().describe('Estimated latency in ms'),\n estimatedMemory: z.number().optional().describe('Estimated memory in bytes'),\n }).optional(),\n \n /**\n * Confidence score\n */\n confidence: z.number().min(0).max(100),\n \n /**\n * Alternative compositions\n */\n alternatives: z.array(z.object({\n description: z.string(),\n plugins: z.array(z.string()),\n tradeoffs: z.string(),\n })).optional(),\n \n /**\n * Warnings and considerations\n */\n warnings: z.array(z.string()).optional(),\n});\n\n/**\n * Plugin Recommendation Request\n * Request for plugin recommendations\n */\nexport const PluginRecommendationRequestSchema = z.object({\n /**\n * User context\n */\n context: z.object({\n /**\n * Current plugins installed\n */\n installedPlugins: z.array(z.string()).optional(),\n \n /**\n * User's industry\n */\n industry: z.string().optional(),\n \n /**\n * Use cases\n */\n useCases: z.array(z.string()).optional(),\n \n /**\n * Team size\n */\n teamSize: z.number().int().optional(),\n \n /**\n * Budget constraints\n */\n budget: z.enum(['free', 'low', 'medium', 'high', 'unlimited']).optional(),\n }),\n \n /**\n * Recommendation criteria\n */\n criteria: z.object({\n /**\n * Prioritize by\n */\n prioritize: z.enum([\n 'popularity',\n 'rating',\n 'compatibility',\n 'features',\n 'cost',\n 'support',\n ]).optional(),\n \n /**\n * Only certified plugins\n */\n certifiedOnly: z.boolean().default(false),\n \n /**\n * Minimum rating\n */\n minRating: z.number().min(0).max(5).optional(),\n \n /**\n * Maximum results\n */\n maxResults: z.number().int().min(1).max(50).default(10),\n }).optional(),\n});\n\n/**\n * Plugin Recommendation\n * AI-generated plugin recommendation\n */\nexport const PluginRecommendationSchema = z.object({\n /**\n * Recommended plugins\n */\n recommendations: z.array(z.object({\n pluginId: z.string(),\n name: z.string(),\n description: z.string(),\n score: z.number().min(0).max(100).describe('Relevance score'),\n reasons: z.array(z.string()).describe('Why this plugin is recommended'),\n benefits: z.array(z.string()),\n considerations: z.array(z.string()).optional(),\n alternatives: z.array(z.string()).optional(),\n estimatedValue: z.string().optional().describe('Expected value/ROI'),\n })),\n \n /**\n * Recommended combinations\n */\n combinations: z.array(z.object({\n plugins: z.array(z.string()),\n description: z.string(),\n synergies: z.array(z.string()).describe('How these plugins work well together'),\n totalScore: z.number().min(0).max(100),\n })).optional(),\n \n /**\n * Learning path\n */\n learningPath: z.array(z.object({\n step: z.number().int(),\n plugin: z.string(),\n reason: z.string(),\n resources: z.array(z.string()).optional(),\n })).optional(),\n});\n\n// Export types\nexport type CodeGenerationRequest = z.infer<typeof CodeGenerationRequestSchema>;\nexport type GeneratedCode = z.infer<typeof GeneratedCodeSchema>;\nexport type PluginScaffoldingTemplate = z.infer<typeof PluginScaffoldingTemplateSchema>;\nexport type AICodeReviewResult = z.infer<typeof AICodeReviewResultSchema>;\nexport type PluginCompositionRequest = z.infer<typeof PluginCompositionRequestSchema>;\nexport type PluginCompositionResult = z.infer<typeof PluginCompositionResultSchema>;\nexport type PluginRecommendationRequest = z.infer<typeof PluginRecommendationRequestSchema>;\nexport type PluginRecommendation = z.infer<typeof PluginRecommendationSchema>;\n","import { z } from 'zod';\nimport { PluginHealthStatusSchema } from '../kernel/plugin-lifecycle-advanced.zod';\n\n/**\n * # Runtime AI Operations (AIOps) Protocol\n * \n * Defines protocols for AI-powered runtime operations including:\n * - Self-healing and automatic recovery\n * - Intelligent auto-scaling\n * - Anomaly detection and prediction\n * - Performance optimization\n * - Root cause analysis\n */\n\n/**\n * Anomaly Detection Configuration\n * Configuration for detecting anomalies in plugin behavior\n */\nexport const AnomalyDetectionConfigSchema = z.object({\n /**\n * Enable anomaly detection\n */\n enabled: z.boolean().default(true),\n \n /**\n * Metrics to monitor\n */\n metrics: z.array(z.enum([\n 'cpu-usage',\n 'memory-usage',\n 'response-time',\n 'error-rate',\n 'throughput',\n 'latency',\n 'connection-count',\n 'queue-depth',\n ])),\n \n /**\n * Detection algorithm\n */\n algorithm: z.enum([\n 'statistical', // Statistical thresholds\n 'machine-learning', // ML-based detection\n 'heuristic', // Rule-based heuristics\n 'hybrid', // Combination of methods\n ]).default('hybrid'),\n \n /**\n * Sensitivity level\n */\n sensitivity: z.enum(['low', 'medium', 'high']).default('medium')\n .describe('How aggressively to detect anomalies'),\n \n /**\n * Time window for analysis (seconds)\n */\n timeWindow: z.number().int().min(60).default(300)\n .describe('Historical data window for anomaly detection'),\n \n /**\n * Confidence threshold (0-100)\n */\n confidenceThreshold: z.number().min(0).max(100).default(80)\n .describe('Minimum confidence to flag as anomaly'),\n \n /**\n * Alert on detection\n */\n alertOnDetection: z.boolean().default(true),\n});\n\n/**\n * Self-Healing Action\n * Defines an automated recovery action\n */\nexport const SelfHealingActionSchema = z.object({\n /**\n * Action identifier\n */\n id: z.string(),\n \n /**\n * Action type\n */\n type: z.enum([\n 'restart', // Restart the plugin\n 'scale', // Scale resources\n 'rollback', // Rollback to previous version\n 'clear-cache', // Clear caches\n 'adjust-config', // Adjust configuration\n 'execute-script', // Run custom script\n 'notify', // Notify administrators\n ]),\n \n /**\n * Trigger condition\n */\n trigger: z.object({\n /**\n * Health status that triggers this action\n */\n healthStatus: z.array(PluginHealthStatusSchema).optional(),\n \n /**\n * Anomaly types that trigger this action\n */\n anomalyTypes: z.array(z.string()).optional(),\n \n /**\n * Error patterns that trigger this action\n */\n errorPatterns: z.array(z.string()).optional(),\n \n /**\n * Custom condition expression\n */\n customCondition: z.string().optional()\n .describe('Custom trigger condition (e.g., \"errorRate > 0.1\")'),\n }),\n \n /**\n * Action parameters\n */\n parameters: z.record(z.string(), z.any()).optional(),\n \n /**\n * Maximum number of attempts\n */\n maxAttempts: z.number().int().min(1).default(3),\n \n /**\n * Cooldown period between attempts (seconds)\n */\n cooldown: z.number().int().min(0).default(60),\n \n /**\n * Timeout for action execution (seconds)\n */\n timeout: z.number().int().min(1).default(300),\n \n /**\n * Require manual approval\n */\n requireApproval: z.boolean().default(false),\n \n /**\n * Priority\n */\n priority: z.number().int().min(1).default(5)\n .describe('Action priority (lower number = higher priority)'),\n});\n\n/**\n * Self-Healing Configuration\n * Complete configuration for self-healing capabilities\n */\nexport const SelfHealingConfigSchema = z.object({\n /**\n * Enable self-healing\n */\n enabled: z.boolean().default(true),\n \n /**\n * Healing strategy\n */\n strategy: z.enum([\n 'conservative', // Only safe, proven actions\n 'moderate', // Balanced approach\n 'aggressive', // Try more recovery options\n ]).default('moderate'),\n \n /**\n * Recovery actions\n */\n actions: z.array(SelfHealingActionSchema),\n \n /**\n * Anomaly detection\n */\n anomalyDetection: AnomalyDetectionConfigSchema.optional(),\n \n /**\n * Maximum concurrent healing operations\n */\n maxConcurrentHealing: z.number().int().min(1).default(1)\n .describe('Maximum number of simultaneous healing attempts'),\n \n /**\n * Learning mode\n */\n learning: z.object({\n enabled: z.boolean().default(true)\n .describe('Learn from successful/failed healing attempts'),\n \n feedbackLoop: z.boolean().default(true)\n .describe('Adjust strategy based on outcomes'),\n }).optional(),\n});\n\n/**\n * Auto-Scaling Policy\n * Defines how to automatically scale plugin resources\n */\nexport const AutoScalingPolicySchema = z.object({\n /**\n * Enable auto-scaling\n */\n enabled: z.boolean().default(false),\n \n /**\n * Scaling metric\n */\n metric: z.enum([\n 'cpu-usage',\n 'memory-usage',\n 'request-rate',\n 'response-time',\n 'queue-depth',\n 'custom',\n ]),\n \n /**\n * Custom metric query (when metric is \"custom\")\n */\n customMetric: z.string().optional(),\n \n /**\n * Target value for the metric\n */\n targetValue: z.number()\n .describe('Desired metric value (e.g., 70 for 70% CPU)'),\n \n /**\n * Scaling bounds\n */\n bounds: z.object({\n /**\n * Minimum instances\n */\n minInstances: z.number().int().min(1).default(1),\n \n /**\n * Maximum instances\n */\n maxInstances: z.number().int().min(1).default(10),\n \n /**\n * Minimum resources per instance\n */\n minResources: z.object({\n cpu: z.string().optional().describe('CPU limit (e.g., \"0.5\", \"1\")'),\n memory: z.string().optional().describe('Memory limit (e.g., \"512Mi\", \"1Gi\")'),\n }).optional(),\n \n /**\n * Maximum resources per instance\n */\n maxResources: z.object({\n cpu: z.string().optional(),\n memory: z.string().optional(),\n }).optional(),\n }),\n \n /**\n * Scale up behavior\n */\n scaleUp: z.object({\n /**\n * Threshold to trigger scale up\n */\n threshold: z.number()\n .describe('Metric value that triggers scale up'),\n \n /**\n * Stabilization window (seconds)\n */\n stabilizationWindow: z.number().int().min(0).default(60)\n .describe('How long metric must exceed threshold'),\n \n /**\n * Cooldown period (seconds)\n */\n cooldown: z.number().int().min(0).default(300)\n .describe('Minimum time between scale-up operations'),\n \n /**\n * Step size\n */\n stepSize: z.number().int().min(1).default(1)\n .describe('Number of instances to add'),\n }),\n \n /**\n * Scale down behavior\n */\n scaleDown: z.object({\n /**\n * Threshold to trigger scale down\n */\n threshold: z.number()\n .describe('Metric value that triggers scale down'),\n \n /**\n * Stabilization window (seconds)\n */\n stabilizationWindow: z.number().int().min(0).default(300)\n .describe('How long metric must be below threshold'),\n \n /**\n * Cooldown period (seconds)\n */\n cooldown: z.number().int().min(0).default(600)\n .describe('Minimum time between scale-down operations'),\n \n /**\n * Step size\n */\n stepSize: z.number().int().min(1).default(1)\n .describe('Number of instances to remove'),\n }),\n \n /**\n * Predictive scaling\n */\n predictive: z.object({\n enabled: z.boolean().default(false)\n .describe('Use ML to predict future load'),\n \n lookAhead: z.number().int().min(60).default(300)\n .describe('How far ahead to predict (seconds)'),\n \n confidence: z.number().min(0).max(100).default(80)\n .describe('Minimum confidence for prediction-based scaling'),\n }).optional(),\n});\n\n/**\n * Root Cause Analysis Request\n * Request for AI to analyze root cause of issues\n */\nexport const RootCauseAnalysisRequestSchema = z.object({\n /**\n * Incident identifier\n */\n incidentId: z.string(),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Symptoms observed\n */\n symptoms: z.array(z.object({\n type: z.string().describe('Symptom type'),\n description: z.string(),\n severity: z.enum(['low', 'medium', 'high', 'critical']),\n timestamp: z.string().datetime(),\n })),\n \n /**\n * Time range for analysis\n */\n timeRange: z.object({\n start: z.string().datetime(),\n end: z.string().datetime(),\n }),\n \n /**\n * Include log analysis\n */\n analyzeLogs: z.boolean().default(true),\n \n /**\n * Include metric analysis\n */\n analyzeMetrics: z.boolean().default(true),\n \n /**\n * Include dependency analysis\n */\n analyzeDependencies: z.boolean().default(true),\n \n /**\n * Context information\n */\n context: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Root Cause Analysis Result\n * Result of root cause analysis\n */\nexport const RootCauseAnalysisResultSchema = z.object({\n /**\n * Analysis identifier\n */\n analysisId: z.string(),\n \n /**\n * Incident identifier\n */\n incidentId: z.string(),\n \n /**\n * Identified root causes\n */\n rootCauses: z.array(z.object({\n /**\n * Cause identifier\n */\n id: z.string(),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Confidence score (0-100)\n */\n confidence: z.number().min(0).max(100),\n \n /**\n * Category\n */\n category: z.enum([\n 'code-defect',\n 'configuration',\n 'resource-exhaustion',\n 'dependency-failure',\n 'network-issue',\n 'data-corruption',\n 'security-breach',\n 'other',\n ]),\n \n /**\n * Evidence\n */\n evidence: z.array(z.object({\n type: z.enum(['log', 'metric', 'trace', 'event']),\n content: z.string(),\n timestamp: z.string().datetime().optional(),\n })),\n \n /**\n * Impact assessment\n */\n impact: z.enum(['low', 'medium', 'high', 'critical']),\n \n /**\n * Recommended actions\n */\n recommendations: z.array(z.string()),\n })),\n \n /**\n * Contributing factors\n */\n contributingFactors: z.array(z.object({\n description: z.string(),\n confidence: z.number().min(0).max(100),\n })).optional(),\n \n /**\n * Timeline of events\n */\n timeline: z.array(z.object({\n timestamp: z.string().datetime(),\n event: z.string(),\n significance: z.enum(['low', 'medium', 'high']),\n })).optional(),\n \n /**\n * Remediation plan\n */\n remediation: z.object({\n /**\n * Immediate actions\n */\n immediate: z.array(z.string()),\n \n /**\n * Short-term fixes\n */\n shortTerm: z.array(z.string()),\n \n /**\n * Long-term improvements\n */\n longTerm: z.array(z.string()),\n }).optional(),\n \n /**\n * Overall confidence in analysis\n */\n overallConfidence: z.number().min(0).max(100),\n \n /**\n * Analysis timestamp\n */\n timestamp: z.string().datetime(),\n});\n\n/**\n * Performance Optimization Suggestion\n * AI-generated performance optimization suggestion\n */\nexport const PerformanceOptimizationSchema = z.object({\n /**\n * Optimization identifier\n */\n id: z.string(),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Optimization type\n */\n type: z.enum([\n 'caching',\n 'query-optimization',\n 'resource-allocation',\n 'code-refactoring',\n 'architecture-change',\n 'configuration-tuning',\n ]),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Expected impact\n */\n expectedImpact: z.object({\n /**\n * Performance improvement percentage\n */\n performanceGain: z.number().min(0).max(100)\n .describe('Expected performance improvement (%)'),\n \n /**\n * Resource savings\n */\n resourceSavings: z.object({\n cpu: z.number().optional().describe('CPU reduction (%)'),\n memory: z.number().optional().describe('Memory reduction (%)'),\n network: z.number().optional().describe('Network reduction (%)'),\n }).optional(),\n \n /**\n * Cost reduction\n */\n costReduction: z.number().optional()\n .describe('Estimated cost reduction (%)'),\n }),\n \n /**\n * Implementation difficulty\n */\n difficulty: z.enum(['trivial', 'easy', 'moderate', 'complex', 'very-complex']),\n \n /**\n * Implementation steps\n */\n steps: z.array(z.string()),\n \n /**\n * Risks and considerations\n */\n risks: z.array(z.string()).optional(),\n \n /**\n * Confidence score\n */\n confidence: z.number().min(0).max(100),\n \n /**\n * Priority\n */\n priority: z.enum(['low', 'medium', 'high', 'critical']),\n});\n\n/**\n * AIOps Agent Configuration\n * Configuration for AI operations agent\n */\nexport const AIOpsAgentConfigSchema = z.object({\n /**\n * Agent identifier\n */\n agentId: z.string(),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Self-healing configuration\n */\n selfHealing: SelfHealingConfigSchema.optional(),\n \n /**\n * Auto-scaling policies\n */\n autoScaling: z.array(AutoScalingPolicySchema).optional(),\n \n /**\n * Continuous monitoring\n */\n monitoring: z.object({\n enabled: z.boolean().default(true),\n interval: z.number().int().min(1000).default(60000)\n .describe('Monitoring interval in milliseconds'),\n \n /**\n * Metrics to collect\n */\n metrics: z.array(z.string()).optional(),\n }).optional(),\n \n /**\n * Proactive optimization\n */\n optimization: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Scan interval (seconds)\n */\n scanInterval: z.number().int().min(3600).default(86400)\n .describe('How often to scan for optimization opportunities'),\n \n /**\n * Auto-apply optimizations\n */\n autoApply: z.boolean().default(false)\n .describe('Automatically apply low-risk optimizations'),\n }).optional(),\n \n /**\n * Incident response\n */\n incidentResponse: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Auto-trigger root cause analysis\n */\n autoRCA: z.boolean().default(true),\n \n /**\n * Notification channels\n */\n notifications: z.array(z.object({\n channel: z.enum(['email', 'slack', 'webhook', 'sms']),\n config: z.record(z.string(), z.any()),\n })).optional(),\n }).optional(),\n});\n\n// Export types\nexport type AnomalyDetectionConfig = z.infer<typeof AnomalyDetectionConfigSchema>;\nexport type SelfHealingAction = z.infer<typeof SelfHealingActionSchema>;\nexport type SelfHealingConfig = z.infer<typeof SelfHealingConfigSchema>;\nexport type AutoScalingPolicy = z.infer<typeof AutoScalingPolicySchema>;\nexport type RootCauseAnalysisRequest = z.infer<typeof RootCauseAnalysisRequestSchema>;\nexport type RootCauseAnalysisResult = z.infer<typeof RootCauseAnalysisResultSchema>;\nexport type PerformanceOptimization = z.infer<typeof PerformanceOptimizationSchema>;\nexport type AIOpsAgentConfig = z.infer<typeof AIOpsAgentConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Advanced Plugin Lifecycle Protocol\n * \n * Defines advanced lifecycle management capabilities including:\n * - Hot reload and live updates\n * - Graceful degradation and fallback mechanisms\n * - Health monitoring and auto-recovery\n * - State preservation during updates\n * \n * This protocol extends the basic plugin lifecycle with enterprise-grade\n * features for production environments.\n */\n\n/**\n * Plugin Health Status\n * Represents the current operational state of a plugin\n */\nexport const PluginHealthStatusSchema = z.enum([\n 'healthy', // Plugin is operating normally\n 'degraded', // Plugin is operational but with reduced functionality\n 'unhealthy', // Plugin has critical issues but still running\n 'failed', // Plugin has failed and is not operational\n 'recovering', // Plugin is in recovery process\n 'unknown', // Health status cannot be determined\n]).describe('Current health status of the plugin');\n\n/**\n * Plugin Health Check Configuration\n * Defines how to check plugin health\n */\nexport const PluginHealthCheckSchema = z.object({\n /**\n * Health check interval in milliseconds\n */\n interval: z.number().int().min(1000).default(30000)\n .describe('How often to perform health checks (default: 30s)'),\n \n /**\n * Timeout for health check in milliseconds\n */\n timeout: z.number().int().min(100).default(5000)\n .describe('Maximum time to wait for health check response'),\n \n /**\n * Number of consecutive failures before marking as unhealthy\n */\n failureThreshold: z.number().int().min(1).default(3)\n .describe('Consecutive failures needed to mark unhealthy'),\n \n /**\n * Number of consecutive successes to recover from unhealthy state\n */\n successThreshold: z.number().int().min(1).default(1)\n .describe('Consecutive successes needed to mark healthy'),\n \n /**\n * Custom health check function name or endpoint\n */\n checkMethod: z.string().optional()\n .describe('Method name to call for health check'),\n \n /**\n * Enable automatic restart on failure\n */\n autoRestart: z.boolean().default(false)\n .describe('Automatically restart plugin on health check failure'),\n \n /**\n * Maximum number of restart attempts\n */\n maxRestartAttempts: z.number().int().min(0).default(3)\n .describe('Maximum restart attempts before giving up'),\n \n /**\n * Backoff strategy for restarts\n */\n restartBackoff: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy for restart delays'),\n});\n\n/**\n * Plugin Health Report\n * Detailed health information from a plugin\n */\nexport const PluginHealthReportSchema = z.object({\n /**\n * Overall health status\n */\n status: PluginHealthStatusSchema,\n \n /**\n * Timestamp of the health check\n */\n timestamp: z.string().datetime(),\n \n /**\n * Human-readable message about health status\n */\n message: z.string().optional(),\n \n /**\n * Detailed metrics\n */\n metrics: z.object({\n uptime: z.number().describe('Plugin uptime in milliseconds'),\n memoryUsage: z.number().optional().describe('Memory usage in bytes'),\n cpuUsage: z.number().optional().describe('CPU usage percentage'),\n activeConnections: z.number().optional().describe('Number of active connections'),\n errorRate: z.number().optional().describe('Error rate (errors per minute)'),\n responseTime: z.number().optional().describe('Average response time in ms'),\n }).partial().optional(),\n \n /**\n * List of checks performed\n */\n checks: z.array(z.object({\n name: z.string().describe('Check name'),\n status: z.enum(['passed', 'failed', 'warning']),\n message: z.string().optional(),\n data: z.record(z.string(), z.any()).optional(),\n })).optional(),\n \n /**\n * Dependencies health\n */\n dependencies: z.array(z.object({\n pluginId: z.string(),\n status: PluginHealthStatusSchema,\n message: z.string().optional(),\n })).optional(),\n});\n\n/**\n * Distributed State Configuration\n * Configuration for distributed state management in cluster environments\n */\nexport const DistributedStateConfigSchema = z.object({\n /**\n * Distributed cache provider\n */\n provider: z.enum(['redis', 'etcd', 'custom'])\n .describe('Distributed state backend provider'),\n \n /**\n * Connection URL or endpoints\n */\n endpoints: z.array(z.string()).optional()\n .describe('Backend connection endpoints'),\n \n /**\n * Key prefix for namespacing\n */\n keyPrefix: z.string().optional()\n .describe('Prefix for all keys (e.g., \"plugin:my-plugin:\")'),\n \n /**\n * Time to live in seconds\n */\n ttl: z.number().int().min(0).optional()\n .describe('State expiration time in seconds'),\n \n /**\n * Authentication configuration\n */\n auth: z.object({\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n certificate: z.string().optional(),\n }).optional(),\n \n /**\n * Replication settings\n */\n replication: z.object({\n enabled: z.boolean().default(true),\n minReplicas: z.number().int().min(1).default(1),\n }).optional(),\n \n /**\n * Custom provider configuration\n */\n customConfig: z.record(z.string(), z.any()).optional()\n .describe('Provider-specific configuration'),\n});\n\n/**\n * Hot Reload Configuration\n * Controls how plugins handle live updates\n */\nexport const HotReloadConfigSchema = z.object({\n /**\n * Enable hot reload capability\n */\n enabled: z.boolean().default(false),\n \n /**\n * Watch file patterns for auto-reload\n */\n watchPatterns: z.array(z.string()).optional()\n .describe('Glob patterns to watch for changes'),\n \n /**\n * Debounce delay before reloading (milliseconds)\n */\n debounceDelay: z.number().int().min(0).default(1000)\n .describe('Wait time after change detection before reload'),\n \n /**\n * Preserve plugin state during reload\n */\n preserveState: z.boolean().default(true)\n .describe('Keep plugin state across reloads'),\n \n /**\n * State serialization strategy\n */\n stateStrategy: z.enum(['memory', 'disk', 'distributed', 'none']).default('memory')\n .describe('How to preserve state during reload'),\n \n /**\n * Distributed state configuration (required when stateStrategy is \"distributed\")\n */\n distributedConfig: DistributedStateConfigSchema.optional()\n .describe('Configuration for distributed state management'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeout: z.number().int().min(0).default(30000)\n .describe('Maximum time to wait for graceful shutdown'),\n \n /**\n * Pre-reload hooks\n */\n beforeReload: z.array(z.string()).optional()\n .describe('Hook names to call before reload'),\n \n /**\n * Post-reload hooks\n */\n afterReload: z.array(z.string()).optional()\n .describe('Hook names to call after reload'),\n});\n\n/**\n * Graceful Degradation Configuration\n * Defines how plugin degrades when dependencies fail\n */\nexport const GracefulDegradationSchema = z.object({\n /**\n * Enable graceful degradation\n */\n enabled: z.boolean().default(true),\n \n /**\n * Fallback mode when dependencies fail\n */\n fallbackMode: z.enum([\n 'minimal', // Provide minimal functionality\n 'cached', // Use cached data\n 'readonly', // Allow read-only operations\n 'offline', // Offline mode with local data\n 'disabled', // Disable plugin functionality\n ]).default('minimal'),\n \n /**\n * Critical dependencies that must be available\n */\n criticalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are required for operation'),\n \n /**\n * Optional dependencies that can fail\n */\n optionalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are nice to have but not required'),\n \n /**\n * Feature flags for degraded mode\n */\n degradedFeatures: z.array(z.object({\n feature: z.string().describe('Feature name'),\n enabled: z.boolean().describe('Whether feature is available in degraded mode'),\n reason: z.string().optional(),\n })).optional(),\n \n /**\n * Automatic recovery attempts\n */\n autoRecovery: z.object({\n enabled: z.boolean().default(true),\n retryInterval: z.number().int().min(1000).default(60000)\n .describe('Interval between recovery attempts (ms)'),\n maxAttempts: z.number().int().min(0).default(5)\n .describe('Maximum recovery attempts before giving up'),\n }).optional(),\n});\n\n/**\n * Plugin Update Strategy\n * Defines how plugin handles version updates\n */\nexport const PluginUpdateStrategySchema = z.object({\n /**\n * Update mode\n */\n mode: z.enum([\n 'manual', // Manual updates only\n 'automatic', // Automatic updates\n 'scheduled', // Scheduled update windows\n 'rolling', // Rolling updates with zero downtime\n ]).default('manual'),\n \n /**\n * Version constraints for automatic updates\n */\n autoUpdateConstraints: z.object({\n major: z.boolean().default(false).describe('Allow major version updates'),\n minor: z.boolean().default(true).describe('Allow minor version updates'),\n patch: z.boolean().default(true).describe('Allow patch version updates'),\n }).optional(),\n \n /**\n * Update schedule (for scheduled mode)\n */\n schedule: z.object({\n /**\n * Cron expression for update window\n */\n cron: z.string().optional(),\n \n /**\n * Timezone for schedule\n */\n timezone: z.string().default('UTC'),\n \n /**\n * Maintenance window duration in minutes\n */\n maintenanceWindow: z.number().int().min(1).default(60),\n }).optional(),\n \n /**\n * Rollback configuration\n */\n rollback: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Automatic rollback on failure\n */\n automatic: z.boolean().default(true),\n \n /**\n * Keep N previous versions for rollback\n */\n keepVersions: z.number().int().min(1).default(3),\n \n /**\n * Rollback timeout in milliseconds\n */\n timeout: z.number().int().min(1000).default(30000),\n }).optional(),\n \n /**\n * Pre-update validation\n */\n validation: z.object({\n /**\n * Run compatibility checks before update\n */\n checkCompatibility: z.boolean().default(true),\n \n /**\n * Run tests before applying update\n */\n runTests: z.boolean().default(false),\n \n /**\n * Test suite to run\n */\n testSuite: z.string().optional(),\n }).optional(),\n});\n\n/**\n * Plugin State Snapshot\n * Captures plugin state for preservation during updates/reloads\n */\nexport const PluginStateSnapshotSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Version at time of snapshot\n */\n version: z.string(),\n \n /**\n * Snapshot timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Serialized state data\n */\n state: z.record(z.string(), z.any()),\n \n /**\n * State metadata\n */\n metadata: z.object({\n checksum: z.string().optional().describe('State checksum for verification'),\n compressed: z.boolean().default(false),\n encryption: z.string().optional().describe('Encryption algorithm if encrypted'),\n }).optional(),\n});\n\n/**\n * Advanced Plugin Lifecycle Configuration\n * Complete configuration for advanced lifecycle management\n */\nexport const AdvancedPluginLifecycleConfigSchema = z.object({\n /**\n * Health monitoring configuration\n */\n health: PluginHealthCheckSchema.optional(),\n \n /**\n * Hot reload configuration\n */\n hotReload: HotReloadConfigSchema.optional(),\n \n /**\n * Graceful degradation configuration\n */\n degradation: GracefulDegradationSchema.optional(),\n \n /**\n * Update strategy\n */\n updates: PluginUpdateStrategySchema.optional(),\n \n /**\n * Resource limits\n */\n resources: z.object({\n maxMemory: z.number().int().optional().describe('Maximum memory in bytes'),\n maxCpu: z.number().min(0).max(100).optional().describe('Maximum CPU percentage'),\n maxConnections: z.number().int().optional().describe('Maximum concurrent connections'),\n timeout: z.number().int().optional().describe('Operation timeout in milliseconds'),\n }).optional(),\n \n /**\n * Monitoring and observability\n */\n observability: z.object({\n enableMetrics: z.boolean().default(true),\n enableTracing: z.boolean().default(true),\n enableProfiling: z.boolean().default(false),\n metricsInterval: z.number().int().min(1000).default(60000)\n .describe('Metrics collection interval in ms'),\n }).optional(),\n});\n\n// Export types\nexport type PluginHealthStatus = z.infer<typeof PluginHealthStatusSchema>;\nexport type PluginHealthCheck = z.infer<typeof PluginHealthCheckSchema>;\nexport type PluginHealthReport = z.infer<typeof PluginHealthReportSchema>;\nexport type DistributedStateConfig = z.infer<typeof DistributedStateConfigSchema>;\nexport type HotReloadConfig = z.infer<typeof HotReloadConfigSchema>;\nexport type GracefulDegradation = z.infer<typeof GracefulDegradationSchema>;\nexport type PluginUpdateStrategy = z.infer<typeof PluginUpdateStrategySchema>;\nexport type PluginStateSnapshot = z.infer<typeof PluginStateSnapshotSchema>;\nexport type AdvancedPluginLifecycleConfig = z.infer<typeof AdvancedPluginLifecycleConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * AI Model Registry Protocol\n * \n * Centralized registry for managing AI models, prompt templates, and model versioning.\n * Enables AI-powered ObjectStack applications to discover and use LLMs consistently.\n */\n\n/**\n * Model Provider Type\n */\nexport const ModelProviderSchema = z.enum([\n 'openai',\n 'azure_openai',\n 'anthropic',\n 'google',\n 'cohere',\n 'huggingface',\n 'local',\n 'custom',\n]);\n\n/**\n * Model Capability\n */\nexport const ModelCapabilitySchema = z.object({\n textGeneration: z.boolean().optional().default(true).describe('Supports text generation'),\n textEmbedding: z.boolean().optional().default(false).describe('Supports text embedding'),\n imageGeneration: z.boolean().optional().default(false).describe('Supports image generation'),\n imageUnderstanding: z.boolean().optional().default(false).describe('Supports image understanding'),\n functionCalling: z.boolean().optional().default(false).describe('Supports function calling'),\n codeGeneration: z.boolean().optional().default(false).describe('Supports code generation'),\n reasoning: z.boolean().optional().default(false).describe('Supports advanced reasoning'),\n});\n\n/**\n * Model Limits\n */\nexport const ModelLimitsSchema = z.object({\n maxTokens: z.number().int().positive().describe('Maximum tokens per request'),\n contextWindow: z.number().int().positive().describe('Context window size'),\n maxOutputTokens: z.number().int().positive().optional().describe('Maximum output tokens'),\n rateLimit: z.object({\n requestsPerMinute: z.number().int().positive().optional(),\n tokensPerMinute: z.number().int().positive().optional(),\n }).optional(),\n});\n\n/**\n * Model Pricing\n */\nexport const ModelPricingSchema = z.object({\n currency: z.string().optional().default('USD'),\n inputCostPer1kTokens: z.number().optional().describe('Cost per 1K input tokens'),\n outputCostPer1kTokens: z.number().optional().describe('Cost per 1K output tokens'),\n embeddingCostPer1kTokens: z.number().optional().describe('Cost per 1K embedding tokens'),\n});\n\n/**\n * Model Configuration\n */\nexport const ModelConfigSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique model identifier'),\n name: z.string().describe('Model display name'),\n version: z.string().describe('Model version (e.g., \"gpt-4-turbo-2024-04-09\")'),\n provider: ModelProviderSchema,\n \n /** Capabilities */\n capabilities: ModelCapabilitySchema,\n limits: ModelLimitsSchema,\n \n /** Pricing */\n pricing: ModelPricingSchema.optional(),\n \n /** Configuration */\n endpoint: z.string().url().optional().describe('Custom API endpoint'),\n apiKey: z.string().optional().describe('API key (Warning: Prefer secretRef)'),\n secretRef: z.string().optional().describe('Reference to stored secret (e.g. system:openai_api_key)'),\n region: z.string().optional().describe('Deployment region (e.g., \"us-east-1\")'),\n \n /** Metadata */\n description: z.string().optional(),\n tags: z.array(z.string()).optional().describe('Tags for categorization'),\n deprecated: z.boolean().optional().default(false),\n recommendedFor: z.array(z.string()).optional().describe('Use case recommendations'),\n});\n\n/**\n * Prompt Template Variable\n */\nexport const PromptVariableSchema = z.object({\n name: z.string().describe('Variable name (e.g., \"user_name\", \"context\")'),\n type: z.enum(['string', 'number', 'boolean', 'object', 'array']).default('string'),\n required: z.boolean().default(false),\n defaultValue: z.any().optional(),\n description: z.string().optional(),\n validation: z.object({\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n pattern: z.string().optional(),\n enum: z.array(z.any()).optional(),\n }).optional(),\n});\n\n/**\n * Prompt Template\n */\nexport const PromptTemplateSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique template identifier'),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Template name (snake_case)'),\n label: z.string().describe('Display name'),\n \n /** Template Content */\n system: z.string().optional().describe('System prompt'),\n user: z.string().describe('User prompt template with variables'),\n assistant: z.string().optional().describe('Assistant message prefix'),\n \n /** Variables */\n variables: z.array(PromptVariableSchema).optional().describe('Template variables'),\n \n /** Model Configuration */\n modelId: z.string().optional().describe('Recommended model ID'),\n temperature: z.number().min(0).max(2).optional(),\n maxTokens: z.number().optional(),\n topP: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n presencePenalty: z.number().optional(),\n stopSequences: z.array(z.string()).optional(),\n \n /** Metadata */\n version: z.string().optional().default('1.0.0'),\n description: z.string().optional(),\n category: z.string().optional().describe('Template category (e.g., \"code_generation\", \"support\")'),\n tags: z.array(z.string()).optional(),\n examples: z.array(z.object({\n input: z.record(z.string(), z.any()).describe('Example variable values'),\n output: z.string().describe('Expected output'),\n })).optional(),\n});\n\n/**\n * Model Registry Entry\n */\nexport const ModelRegistryEntrySchema = z.object({\n model: ModelConfigSchema,\n status: z.enum(['active', 'deprecated', 'experimental', 'disabled']).default('active'),\n priority: z.number().int().default(0).describe('Priority for model selection'),\n fallbackModels: z.array(z.string()).optional().describe('Fallback model IDs'),\n healthCheck: z.object({\n enabled: z.boolean().default(true),\n intervalSeconds: z.number().int().default(300),\n lastChecked: z.string().optional().describe('ISO timestamp'),\n status: z.enum(['healthy', 'unhealthy', 'unknown']).default('unknown'),\n }).optional(),\n});\n\n/**\n * Model Registry\n */\nexport const ModelRegistrySchema = z.object({\n name: z.string().describe('Registry name'),\n models: z.record(z.string(), ModelRegistryEntrySchema).describe('Model entries by ID'),\n promptTemplates: z.record(z.string(), PromptTemplateSchema).optional().describe('Prompt templates by name'),\n defaultModel: z.string().optional().describe('Default model ID'),\n enableAutoFallback: z.boolean().default(true).describe('Auto-fallback on errors'),\n});\n\n/**\n * Model Selection Criteria\n */\nexport const ModelSelectionCriteriaSchema = z.object({\n capabilities: z.array(z.string()).optional().describe('Required capabilities'),\n maxCostPer1kTokens: z.number().optional().describe('Maximum acceptable cost'),\n minContextWindow: z.number().optional().describe('Minimum context window size'),\n provider: ModelProviderSchema.optional(),\n tags: z.array(z.string()).optional(),\n excludeDeprecated: z.boolean().default(true),\n});\n\n// Type exports\nexport type ModelProvider = z.infer<typeof ModelProviderSchema>;\nexport type ModelCapability = z.infer<typeof ModelCapabilitySchema>;\nexport type ModelLimits = z.infer<typeof ModelLimitsSchema>;\nexport type ModelPricing = z.infer<typeof ModelPricingSchema>;\nexport type ModelConfig = z.infer<typeof ModelConfigSchema>;\nexport type PromptVariable = z.infer<typeof PromptVariableSchema>;\nexport type PromptTemplate = z.infer<typeof PromptTemplateSchema>;\nexport type ModelRegistryEntry = z.infer<typeof ModelRegistryEntrySchema>;\nexport type ModelRegistry = z.infer<typeof ModelRegistrySchema>;\nexport type ModelSelectionCriteria = z.infer<typeof ModelSelectionCriteriaSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * RAG (Retrieval-Augmented Generation) Pipeline Protocol\n * \n * Defines schemas for building context-aware AI assistants using RAG techniques.\n * Enables vector search, document chunking, embeddings, and retrieval configuration.\n */\n\n/**\n * Vector Store Provider\n */\nexport const VectorStoreProviderSchema = z.enum([\n 'pinecone',\n 'weaviate',\n 'qdrant',\n 'milvus',\n 'chroma',\n 'pgvector',\n 'redis',\n 'opensearch',\n 'elasticsearch',\n 'custom',\n]);\n\n/**\n * Embedding Model\n */\nexport const EmbeddingModelSchema = z.object({\n provider: z.enum(['openai', 'cohere', 'huggingface', 'azure_openai', 'local', 'custom']),\n model: z.string().describe('Model name (e.g., \"text-embedding-3-large\")'),\n dimensions: z.number().int().positive().describe('Embedding vector dimensions'),\n maxTokens: z.number().int().positive().optional().describe('Maximum tokens per embedding'),\n batchSize: z.number().int().positive().optional().default(100).describe('Batch size for embedding'),\n endpoint: z.string().url().optional().describe('Custom endpoint URL'),\n apiKey: z.string().optional().describe('API key'),\n secretRef: z.string().optional().describe('Reference to stored secret'),\n});\n\n/**\n * Text Chunking Strategy\n */\nexport const ChunkingStrategySchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('fixed'),\n chunkSize: z.number().int().positive().describe('Fixed chunk size in tokens/chars'),\n chunkOverlap: z.number().int().min(0).default(0).describe('Overlap between chunks'),\n unit: z.enum(['tokens', 'characters']).default('tokens'),\n }),\n z.object({\n type: z.literal('semantic'),\n model: z.string().optional().describe('Model for semantic chunking'),\n minChunkSize: z.number().int().positive().default(100),\n maxChunkSize: z.number().int().positive().default(1000),\n }),\n z.object({\n type: z.literal('recursive'),\n separators: z.array(z.string()).default(['\\n\\n', '\\n', ' ', '']),\n chunkSize: z.number().int().positive(),\n chunkOverlap: z.number().int().min(0).default(0),\n }),\n z.object({\n type: z.literal('markdown'),\n maxChunkSize: z.number().int().positive().default(1000),\n respectHeaders: z.boolean().default(true).describe('Keep headers with content'),\n respectCodeBlocks: z.boolean().default(true).describe('Keep code blocks intact'),\n }),\n]);\n\n/**\n * Document Metadata Schema\n */\nexport const DocumentMetadataSchema = z.object({\n source: z.string().describe('Document source (file path, URL, etc.)'),\n sourceType: z.enum(['file', 'url', 'api', 'database', 'custom']).optional(),\n title: z.string().optional(),\n author: z.string().optional().describe('Document author'),\n createdAt: z.string().datetime().optional().describe('ISO timestamp'),\n updatedAt: z.string().datetime().optional().describe('ISO timestamp'),\n tags: z.array(z.string()).optional(),\n category: z.string().optional(),\n language: z.string().optional().describe('Document language (ISO 639-1 code)'),\n custom: z.record(z.string(), z.any()).optional().describe('Custom metadata fields'),\n});\n\n/**\n * Document Chunk\n */\nexport const DocumentChunkSchema = z.object({\n id: z.string().describe('Unique chunk identifier'),\n content: z.string().describe('Chunk text content'),\n embedding: z.array(z.number()).optional().describe('Embedding vector'),\n metadata: DocumentMetadataSchema,\n chunkIndex: z.number().int().min(0).describe('Chunk position in document'),\n tokens: z.number().int().optional().describe('Token count'),\n});\n\n/**\n * Retrieval Strategy\n */\nexport const RetrievalStrategySchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('similarity'),\n topK: z.number().int().positive().default(5).describe('Number of results to retrieve'),\n scoreThreshold: z.number().min(0).max(1).optional().describe('Minimum similarity score'),\n }),\n z.object({\n type: z.literal('mmr'),\n topK: z.number().int().positive().default(5),\n fetchK: z.number().int().positive().default(20).describe('Initial fetch size'),\n lambda: z.number().min(0).max(1).default(0.5).describe('Diversity vs relevance (0=diverse, 1=relevant)'),\n }),\n z.object({\n type: z.literal('hybrid'),\n topK: z.number().int().positive().default(5),\n vectorWeight: z.number().min(0).max(1).default(0.7).describe('Weight for vector search'),\n keywordWeight: z.number().min(0).max(1).default(0.3).describe('Weight for keyword search'),\n }),\n z.object({\n type: z.literal('parent_document'),\n topK: z.number().int().positive().default(5),\n retrieveParent: z.boolean().default(true).describe('Retrieve full parent document'),\n }),\n]);\n\n/**\n * Reranking Configuration\n */\nexport const RerankingConfigSchema = z.object({\n enabled: z.boolean().default(false),\n model: z.string().optional().describe('Reranking model name'),\n provider: z.enum(['cohere', 'huggingface', 'custom']).optional(),\n topK: z.number().int().positive().default(3).describe('Final number of results after reranking'),\n});\n\n/**\n * Vector Store Configuration\n */\nexport const VectorStoreConfigSchema = z.object({\n provider: VectorStoreProviderSchema,\n indexName: z.string().describe('Index/collection name'),\n namespace: z.string().optional().describe('Namespace for multi-tenancy'),\n \n /** Connection */\n host: z.string().optional().describe('Vector store host'),\n port: z.number().int().optional().describe('Vector store port'),\n secretRef: z.string().optional().describe('Reference to stored secret'),\n apiKey: z.string().optional().describe('API key or reference to secret'),\n \n /** Configuration */\n dimensions: z.number().int().positive().describe('Vector dimensions'),\n metric: z.enum(['cosine', 'euclidean', 'dotproduct']).optional().default('cosine'),\n \n /** Performance */\n batchSize: z.number().int().positive().optional().default(100),\n connectionPoolSize: z.number().int().positive().optional().default(10),\n timeout: z.number().int().positive().optional().default(30000).describe('Timeout in milliseconds'),\n});\n\n/**\n * Document Loader Configuration\n */\nexport const DocumentLoaderConfigSchema = z.object({\n type: z.enum(['file', 'directory', 'url', 'api', 'database', 'custom']),\n \n /** Source */\n source: z.string().describe('Source path, URL, or identifier'),\n \n /** File Types */\n fileTypes: z.array(z.string()).optional().describe('Accepted file extensions (e.g., [\".pdf\", \".md\"])'),\n \n /** Processing */\n recursive: z.boolean().optional().default(false).describe('Process directories recursively'),\n maxFileSize: z.number().int().optional().describe('Maximum file size in bytes'),\n excludePatterns: z.array(z.string()).optional().describe('Patterns to exclude'),\n \n /** Text Extraction */\n extractImages: z.boolean().optional().default(false).describe('Extract text from images (OCR)'),\n extractTables: z.boolean().optional().default(false).describe('Extract and format tables'),\n \n /** Custom Loader */\n loaderConfig: z.record(z.string(), z.any()).optional().describe('Custom loader-specific config'),\n});\n\n/**\n * Filter Expression Schema\n */\nexport const FilterExpressionSchema = z.object({\n field: z.string().describe('Metadata field to filter'),\n operator: z.enum(['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'in', 'nin', 'contains']).default('eq'),\n value: z.union([z.string(), z.number(), z.boolean(), z.array(z.union([z.string(), z.number()]))]).describe('Filter value'),\n});\n\nexport type FilterGroup = {\n logic: 'and' | 'or';\n filters: (z.infer<typeof FilterExpressionSchema> | FilterGroup)[];\n};\n\nexport const FilterGroupSchema: z.ZodType<FilterGroup, z.ZodTypeDef, any> = z.object({\n logic: z.enum(['and', 'or']).default('and'),\n filters: z.array(z.union([FilterExpressionSchema, z.lazy(() => FilterGroupSchema)])),\n});\n\n/**\n * Standardized Metadata Filter\n */\nexport const MetadataFilterSchema = z.union([\n FilterExpressionSchema,\n FilterGroupSchema,\n // Legacy support for simple key-value map\n z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.union([z.string(), z.number()]))]))\n]);\n\n/**\n * RAG Pipeline Configuration\n */\nexport const RAGPipelineConfigSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Pipeline name (snake_case)'),\n label: z.string().describe('Display name'),\n description: z.string().optional(),\n \n /** Components */\n embedding: EmbeddingModelSchema,\n vectorStore: VectorStoreConfigSchema,\n chunking: ChunkingStrategySchema,\n retrieval: RetrievalStrategySchema,\n reranking: RerankingConfigSchema.optional(),\n \n /** Document Loading */\n loaders: z.array(DocumentLoaderConfigSchema).optional().describe('Document loaders'),\n \n /** Context Management */\n maxContextTokens: z.number().int().positive().default(4000).describe('Maximum tokens in context'),\n contextWindow: z.number().int().positive().optional().describe('LLM context window size'),\n \n /** Metadata Filtering */\n metadataFilters: MetadataFilterSchema.optional().describe('Global filters for retrieval'),\n \n /** Caching */\n enableCache: z.boolean().default(true),\n cacheTTL: z.number().int().positive().default(3600).describe('Cache TTL in seconds'),\n cacheInvalidationStrategy: z.enum(['time_based', 'manual', 'on_update']).default('time_based').optional(),\n});\n\n/**\n * RAG Query Request\n */\nexport const RAGQueryRequestSchema = z.object({\n query: z.string().describe('User query'),\n pipelineName: z.string().describe('Pipeline to use'),\n \n /** Override defaults */\n topK: z.number().int().positive().optional(),\n metadataFilters: z.record(z.string(), z.any()).optional(),\n \n /** Context */\n conversationHistory: z.array(z.object({\n role: z.enum(['user', 'assistant', 'system']),\n content: z.string(),\n })).optional(),\n \n /** Options */\n includeMetadata: z.boolean().default(true),\n includeSources: z.boolean().default(true),\n});\n\n/**\n * RAG Query Response\n */\nexport const RAGQueryResponseSchema = z.object({\n query: z.string(),\n results: z.array(z.object({\n content: z.string(),\n score: z.number(),\n metadata: DocumentMetadataSchema.optional(),\n chunkId: z.string().optional(),\n })),\n context: z.string().describe('Assembled context for LLM'),\n tokens: TokenUsageSchema.optional().describe('Token usage for this query'),\n cost: z.number().nonnegative().optional().describe('Cost for this query in USD'),\n retrievalTime: z.number().optional().describe('Retrieval time in milliseconds'),\n});\n\n/**\n * RAG Pipeline Status\n */\nexport const RAGPipelineStatusSchema = z.object({\n name: z.string(),\n status: z.enum(['active', 'indexing', 'error', 'disabled']),\n documentsIndexed: z.number().int().min(0),\n lastIndexed: z.string().datetime().optional().describe('ISO timestamp'),\n errorMessage: z.string().optional(),\n health: z.object({\n vectorStore: z.enum(['healthy', 'unhealthy', 'unknown']),\n embeddingService: z.enum(['healthy', 'unhealthy', 'unknown']),\n }).optional(),\n});\n\n// Type exports\nexport type VectorStoreProvider = z.infer<typeof VectorStoreProviderSchema>;\nexport type EmbeddingModel = z.infer<typeof EmbeddingModelSchema>;\nexport type ChunkingStrategy = z.infer<typeof ChunkingStrategySchema>;\nexport type DocumentMetadata = z.infer<typeof DocumentMetadataSchema>;\nexport type DocumentChunk = z.infer<typeof DocumentChunkSchema>;\nexport type RetrievalStrategy = z.infer<typeof RetrievalStrategySchema>;\nexport type RerankingConfig = z.infer<typeof RerankingConfigSchema>;\nexport type VectorStoreConfig = z.infer<typeof VectorStoreConfigSchema>;\nexport type DocumentLoaderConfig = z.infer<typeof DocumentLoaderConfigSchema>;\nexport type RAGPipelineConfig = z.infer<typeof RAGPipelineConfigSchema>;\nexport type RAGQueryRequest = z.infer<typeof RAGQueryRequestSchema>;\nexport type RAGQueryResponse = z.infer<typeof RAGQueryResponseSchema>;\nexport type RAGPipelineStatus = z.infer<typeof RAGPipelineStatusSchema>;\n","import { z } from 'zod';\n\n/**\n * AI Cost Tracking Protocol\n * \n * Monitor and control AI API costs with budgets, alerts, and analytics.\n * Provides cost optimization, budget enforcement, and financial reporting.\n */\n\n/**\n * Token Usage Schema\n * Standardized across all AI operations\n */\nexport const TokenUsageSchema = z.object({\n prompt: z.number().int().nonnegative().describe('Input tokens'),\n completion: z.number().int().nonnegative().describe('Output tokens'),\n total: z.number().int().nonnegative().describe('Total tokens'),\n});\n\nexport type TokenUsage = z.infer<typeof TokenUsageSchema>;\n\n/**\n * AI Operation Cost Schema\n * Unified cost tracking for all AI operations\n */\nexport const AIOperationCostSchema = z.object({\n operationId: z.string(),\n operationType: z.enum(['conversation', 'orchestration', 'prediction', 'rag', 'nlq']),\n agentName: z.string().optional().describe('Agent that performed the operation'),\n modelId: z.string(),\n tokens: TokenUsageSchema,\n cost: z.number().nonnegative().describe('Cost in USD'),\n timestamp: z.string().datetime(),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport type AIOperationCost = z.infer<typeof AIOperationCostSchema>;\n\n/**\n * Cost Metric Type\n */\nexport const CostMetricTypeSchema = z.enum([\n 'token', // Cost per token\n 'request', // Cost per API request\n 'character', // Cost per character (e.g., TTS)\n 'second', // Cost per second (e.g., speech)\n 'image', // Cost per image\n 'embedding', // Cost per embedding\n]);\n\n/**\n * Billing Period\n */\nexport const BillingPeriodSchema = z.enum([\n 'hourly',\n 'daily',\n 'weekly',\n 'monthly',\n 'quarterly',\n 'yearly',\n 'custom',\n]);\n\n/**\n * Cost Entry\n * Extended from AIOperationCostSchema with additional tracking fields\n */\nexport const CostEntrySchema = z.object({\n /** Identity */\n id: z.string().describe('Unique cost entry ID'),\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Request Details */\n modelId: z.string().describe('AI model used'),\n provider: z.string().describe('AI provider (e.g., \"openai\", \"anthropic\")'),\n operation: z.string().describe('Operation type (e.g., \"chat_completion\", \"embedding\")'),\n \n /** Usage Metrics - Standardized */\n tokens: TokenUsageSchema.optional().describe('Standardized token usage'),\n requestCount: z.number().int().positive().default(1),\n \n /** Cost Calculation */\n promptCost: z.number().nonnegative().optional().describe('Cost of prompt tokens'),\n completionCost: z.number().nonnegative().optional().describe('Cost of completion tokens'),\n totalCost: z.number().nonnegative().describe('Total cost in base currency'),\n currency: z.string().default('USD'),\n \n /** Context */\n sessionId: z.string().optional().describe('Conversation session ID'),\n userId: z.string().optional().describe('User who triggered the request'),\n agentId: z.string().optional().describe('AI agent ID'),\n object: z.string().optional().describe('Related object (e.g., \"case\", \"project\")'),\n recordId: z.string().optional().describe('Related record ID'),\n \n /** Metadata */\n tags: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Budget Type\n */\nexport const BudgetTypeSchema = z.enum([\n 'global', // Organization-wide budget\n 'user', // Per-user budget\n 'agent', // Per-agent budget\n 'object', // Per-object budget (e.g., per case)\n 'project', // Per-project budget\n 'department', // Per-department budget\n]);\n\n/**\n * Budget Limit\n */\nexport const BudgetLimitSchema = z.object({\n /** Limit Configuration */\n type: BudgetTypeSchema,\n scope: z.string().optional().describe('Scope identifier (userId, agentId, etc.)'),\n \n /** Limit Amount */\n maxCost: z.number().nonnegative().describe('Maximum cost limit'),\n currency: z.string().default('USD'),\n \n /** Period */\n period: BillingPeriodSchema,\n customPeriodDays: z.number().int().positive().optional().describe('Custom period in days'),\n \n /** Soft Limits & Warnings */\n softLimit: z.number().nonnegative().optional().describe('Soft limit for warnings'),\n warnThresholds: z.array(z.number().min(0).max(1)).optional().describe('Warning thresholds (e.g., [0.5, 0.8, 0.95])'),\n \n /** Enforcement */\n enforced: z.boolean().default(true).describe('Block requests when exceeded'),\n gracePeriodSeconds: z.number().int().nonnegative().default(0).describe('Grace period after limit exceeded'),\n \n /** Rollover */\n allowRollover: z.boolean().default(false).describe('Allow unused budget to rollover'),\n maxRolloverPercentage: z.number().min(0).max(1).optional().describe('Max rollover as % of limit'),\n \n /** Metadata */\n name: z.string().optional().describe('Budget name'),\n description: z.string().optional(),\n active: z.boolean().default(true),\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Budget Status\n */\nexport const BudgetStatusSchema = z.object({\n /** Budget Reference */\n budgetId: z.string(),\n type: BudgetTypeSchema,\n scope: z.string().optional(),\n \n /** Current Period */\n periodStart: z.string().datetime().describe('ISO 8601 timestamp'),\n periodEnd: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Usage */\n currentCost: z.number().nonnegative().default(0),\n maxCost: z.number().nonnegative(),\n currency: z.string().default('USD'),\n \n /** Status */\n percentageUsed: z.number().nonnegative().describe('Usage as percentage (can exceed 1.0 if over budget)'),\n remainingCost: z.number().describe('Remaining budget (can be negative if exceeded)'),\n isExceeded: z.boolean().default(false),\n isWarning: z.boolean().default(false),\n \n /** Projections */\n projectedCost: z.number().nonnegative().optional().describe('Projected cost for period'),\n projectedOverage: z.number().nonnegative().optional().describe('Projected overage'),\n \n /** Last Update */\n lastUpdated: z.string().datetime().describe('ISO 8601 timestamp'),\n});\n\n/**\n * Cost Alert Type\n */\nexport const CostAlertTypeSchema = z.enum([\n 'threshold_warning', // Warning threshold reached\n 'threshold_critical', // Critical threshold reached\n 'limit_exceeded', // Budget limit exceeded\n 'anomaly_detected', // Unusual spending pattern\n 'projection_exceeded', // Projected to exceed budget\n]);\n\n/**\n * Cost Alert\n */\nexport const CostAlertSchema = z.object({\n /** Alert Details */\n id: z.string(),\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n type: CostAlertTypeSchema,\n severity: z.enum(['info', 'warning', 'critical']),\n \n /** Budget Context */\n budgetId: z.string().optional(),\n budgetType: BudgetTypeSchema.optional(),\n scope: z.string().optional(),\n \n /** Alert Information */\n message: z.string().describe('Alert message'),\n currentCost: z.number().nonnegative(),\n maxCost: z.number().nonnegative().optional(),\n threshold: z.number().min(0).max(1).optional(),\n currency: z.string().default('USD'),\n \n /** Recommendations */\n recommendations: z.array(z.string()).optional(),\n \n /** Status */\n acknowledged: z.boolean().default(false),\n acknowledgedBy: z.string().optional(),\n acknowledgedAt: z.string().datetime().optional(),\n resolved: z.boolean().default(false),\n \n /** Metadata */\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Cost Breakdown Dimension\n */\nexport const CostBreakdownDimensionSchema = z.enum([\n 'model',\n 'provider',\n 'user',\n 'agent',\n 'object',\n 'operation',\n 'date',\n 'hour',\n 'tag',\n]);\n\n/**\n * Cost Breakdown Entry\n */\nexport const CostBreakdownEntrySchema = z.object({\n dimension: CostBreakdownDimensionSchema,\n value: z.string().describe('Dimension value (e.g., model ID, user ID)'),\n \n /** Metrics */\n totalCost: z.number().nonnegative(),\n requestCount: z.number().int().nonnegative(),\n totalTokens: z.number().int().nonnegative().optional(),\n \n /** Share */\n percentageOfTotal: z.number().min(0).max(1),\n \n /** Time Range */\n periodStart: z.string().datetime().optional(),\n periodEnd: z.string().datetime().optional(),\n});\n\n/**\n * Cost Analytics\n */\nexport const CostAnalyticsSchema = z.object({\n /** Time Range */\n periodStart: z.string().datetime().describe('ISO 8601 timestamp'),\n periodEnd: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Summary Metrics */\n totalCost: z.number().nonnegative(),\n totalRequests: z.number().int().nonnegative(),\n totalTokens: z.number().int().nonnegative().optional(),\n currency: z.string().default('USD'),\n \n /** Averages */\n averageCostPerRequest: z.number().nonnegative(),\n averageCostPerToken: z.number().nonnegative().optional(),\n averageRequestsPerDay: z.number().nonnegative(),\n \n /** Trends */\n costTrend: z.enum(['increasing', 'decreasing', 'stable']).optional(),\n trendPercentage: z.number().optional().describe('% change vs previous period'),\n \n /** Breakdowns */\n byModel: z.array(CostBreakdownEntrySchema).optional(),\n byProvider: z.array(CostBreakdownEntrySchema).optional(),\n byUser: z.array(CostBreakdownEntrySchema).optional(),\n byAgent: z.array(CostBreakdownEntrySchema).optional(),\n byOperation: z.array(CostBreakdownEntrySchema).optional(),\n byDate: z.array(CostBreakdownEntrySchema).optional(),\n \n /** Top Consumers */\n topModels: z.array(CostBreakdownEntrySchema).optional(),\n topUsers: z.array(CostBreakdownEntrySchema).optional(),\n topAgents: z.array(CostBreakdownEntrySchema).optional(),\n \n /** Efficiency Metrics */\n tokensPerDollar: z.number().nonnegative().optional(),\n requestsPerDollar: z.number().nonnegative().optional(),\n});\n\n/**\n * Cost Optimization Recommendation\n */\nexport const CostOptimizationRecommendationSchema = z.object({\n /** Recommendation Details */\n id: z.string(),\n type: z.enum([\n 'switch_model',\n 'reduce_tokens',\n 'batch_requests',\n 'cache_results',\n 'adjust_parameters',\n 'limit_usage',\n ]),\n \n /** Impact */\n title: z.string(),\n description: z.string(),\n estimatedSavings: z.number().nonnegative().optional(),\n savingsPercentage: z.number().min(0).max(1).optional(),\n \n /** Implementation */\n priority: z.enum(['low', 'medium', 'high']),\n effort: z.enum(['low', 'medium', 'high']),\n actionable: z.boolean().default(true),\n actionSteps: z.array(z.string()).optional(),\n \n /** Context */\n targetModel: z.string().optional(),\n alternativeModel: z.string().optional(),\n affectedUsers: z.array(z.string()).optional(),\n \n /** Status */\n status: z.enum(['pending', 'accepted', 'rejected', 'implemented']).default('pending'),\n implementedAt: z.string().datetime().optional(),\n});\n\n/**\n * Cost Report\n */\nexport const CostReportSchema = z.object({\n /** Report Metadata */\n id: z.string(),\n name: z.string(),\n generatedAt: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Time Range */\n periodStart: z.string().datetime().describe('ISO 8601 timestamp'),\n periodEnd: z.string().datetime().describe('ISO 8601 timestamp'),\n period: BillingPeriodSchema,\n \n /** Analytics */\n analytics: CostAnalyticsSchema,\n \n /** Budgets */\n budgets: z.array(BudgetStatusSchema).optional(),\n \n /** Alerts */\n alerts: z.array(CostAlertSchema).optional(),\n activeAlertCount: z.number().int().nonnegative().default(0),\n \n /** Recommendations */\n recommendations: z.array(CostOptimizationRecommendationSchema).optional(),\n \n /** Comparisons */\n previousPeriodCost: z.number().nonnegative().optional(),\n costChange: z.number().optional().describe('Change vs previous period'),\n costChangePercentage: z.number().optional(),\n \n /** Forecasting */\n forecastedCost: z.number().nonnegative().optional(),\n forecastedBudgetStatus: z.enum(['under', 'at', 'over']).optional(),\n \n /** Export */\n format: z.enum(['summary', 'detailed', 'executive']).default('summary'),\n currency: z.string().default('USD'),\n});\n\n/**\n * Cost Query Filters\n */\nexport const CostQueryFiltersSchema = z.object({\n /** Time Range */\n startDate: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n endDate: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n \n /** Dimensions */\n modelIds: z.array(z.string()).optional(),\n providers: z.array(z.string()).optional(),\n userIds: z.array(z.string()).optional(),\n agentIds: z.array(z.string()).optional(),\n operations: z.array(z.string()).optional(),\n sessionIds: z.array(z.string()).optional(),\n \n /** Cost Range */\n minCost: z.number().nonnegative().optional(),\n maxCost: z.number().nonnegative().optional(),\n \n /** Tags */\n tags: z.array(z.string()).optional(),\n \n /** Aggregation */\n groupBy: z.array(CostBreakdownDimensionSchema).optional(),\n \n /** Sorting */\n orderBy: z.enum(['timestamp', 'cost', 'tokens']).optional().default('timestamp'),\n orderDirection: z.enum(['asc', 'desc']).optional().default('desc'),\n \n /** Pagination */\n limit: z.number().int().positive().optional(),\n offset: z.number().int().nonnegative().optional(),\n});\n\n// Type exports\nexport type CostMetricType = z.infer<typeof CostMetricTypeSchema>;\nexport type BillingPeriod = z.infer<typeof BillingPeriodSchema>;\nexport type CostEntry = z.infer<typeof CostEntrySchema>;\nexport type BudgetType = z.infer<typeof BudgetTypeSchema>;\nexport type BudgetLimit = z.infer<typeof BudgetLimitSchema>;\nexport type BudgetStatus = z.infer<typeof BudgetStatusSchema>;\nexport type CostAlertType = z.infer<typeof CostAlertTypeSchema>;\nexport type CostAlert = z.infer<typeof CostAlertSchema>;\nexport type CostBreakdownDimension = z.infer<typeof CostBreakdownDimensionSchema>;\nexport type CostBreakdownEntry = z.infer<typeof CostBreakdownEntrySchema>;\nexport type CostAnalytics = z.infer<typeof CostAnalyticsSchema>;\nexport type CostOptimizationRecommendation = z.infer<typeof CostOptimizationRecommendationSchema>;\nexport type CostReport = z.infer<typeof CostReportSchema>;\nexport type CostQueryFilters = z.infer<typeof CostQueryFiltersSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * Natural Language Query (NLQ) Protocol\n * \n * Transforms natural language queries into ObjectQL AST (Abstract Syntax Tree).\n * Enables business users to query data using natural language instead of writing code.\n */\n\n/**\n * Query Intent Type\n */\nexport const QueryIntentSchema = z.enum([\n 'select', // Retrieve data (e.g., \"show me all accounts\")\n 'aggregate', // Aggregation (e.g., \"total revenue by region\")\n 'filter', // Filter data (e.g., \"accounts created last month\")\n 'sort', // Sort data (e.g., \"top 10 opportunities by value\")\n 'compare', // Compare values (e.g., \"compare this quarter vs last quarter\")\n 'trend', // Analyze trends (e.g., \"sales trend over time\")\n 'insight', // Generate insights (e.g., \"what's unusual about this data\")\n 'create', // Create record (e.g., \"create a new task\")\n 'update', // Update record (e.g., \"mark this as complete\")\n 'delete', // Delete record (e.g., \"remove this contact\")\n]);\n\n/**\n * Entity Recognition\n */\nexport const EntitySchema = z.object({\n type: z.enum(['object', 'field', 'value', 'operator', 'function', 'timeframe']),\n text: z.string().describe('Original text from query'),\n value: z.any().describe('Normalized value'),\n confidence: z.number().min(0).max(1).describe('Confidence score'),\n span: z.tuple([z.number(), z.number()]).optional().describe('Character span in query'),\n});\n\n/**\n * Timeframe Detection\n */\nexport const TimeframeSchema = z.object({\n type: z.enum(['absolute', 'relative']),\n start: z.string().optional().describe('Start date (ISO format)'),\n end: z.string().optional().describe('End date (ISO format)'),\n relative: z.object({\n unit: z.enum(['hour', 'day', 'week', 'month', 'quarter', 'year']),\n value: z.number().int(),\n direction: z.enum(['past', 'future', 'current']).default('past'),\n }).optional(),\n text: z.string().describe('Original timeframe text'),\n});\n\n/**\n * NLQ Field Mapping\n * Maps natural language field names to actual object fields\n */\nexport const NLQFieldMappingSchema = z.object({\n naturalLanguage: z.string().describe('NL field name (e.g., \"customer name\")'),\n objectField: z.string().describe('Actual field name (e.g., \"account.name\")'),\n object: z.string().describe('Object name'),\n field: z.string().describe('Field name'),\n confidence: z.number().min(0).max(1),\n});\n\n/**\n * Query Context\n */\nexport const QueryContextSchema = z.object({\n /** User Information */\n userId: z.string().optional(),\n userRole: z.string().optional(),\n \n /** Current Context */\n currentObject: z.string().optional().describe('Current object being viewed'),\n currentRecordId: z.string().optional().describe('Current record ID'),\n \n /** Conversation History */\n conversationHistory: z.array(z.object({\n query: z.string(),\n timestamp: z.string(),\n intent: QueryIntentSchema.optional(),\n })).optional(),\n \n /** Preferences */\n defaultLimit: z.number().int().default(100),\n timezone: z.string().default('UTC'),\n locale: z.string().default('en-US'),\n});\n\n/**\n * NLQ Parse Result\n */\nexport const NLQParseResultSchema = z.object({\n /** Original Query */\n originalQuery: z.string(),\n \n /** Intent Detection */\n intent: QueryIntentSchema,\n intentConfidence: z.number().min(0).max(1),\n \n /** Entity Recognition */\n entities: z.array(EntitySchema),\n \n /** Object & Field Resolution */\n targetObject: z.string().optional().describe('Primary object to query'),\n fields: z.array(NLQFieldMappingSchema).optional(),\n \n /** Temporal Information */\n timeframe: TimeframeSchema.optional(),\n \n /** Query AST */\n ast: z.record(z.string(), z.any()).describe('Generated ObjectQL AST'),\n \n /** Metadata */\n confidence: z.number().min(0).max(1).describe('Overall confidence'),\n ambiguities: z.array(z.object({\n type: z.string(),\n description: z.string(),\n suggestions: z.array(z.string()).optional(),\n })).optional().describe('Detected ambiguities requiring clarification'),\n \n /** Alternative Interpretations */\n alternatives: z.array(z.object({\n interpretation: z.string(),\n confidence: z.number(),\n ast: z.any(),\n })).optional(),\n});\n\n/**\n * NLQ Request\n */\nexport const NLQRequestSchema = z.object({\n /** Query */\n query: z.string().describe('Natural language query'),\n \n /** Context */\n context: QueryContextSchema.optional(),\n \n /** Options */\n includeAlternatives: z.boolean().default(false).describe('Include alternative interpretations'),\n maxAlternatives: z.number().int().default(3),\n minConfidence: z.number().min(0).max(1).default(0.5).describe('Minimum confidence threshold'),\n \n /** Execution */\n executeQuery: z.boolean().default(false).describe('Execute query and return results'),\n maxResults: z.number().int().optional().describe('Maximum results to return'),\n});\n\n/**\n * NLQ Response\n */\nexport const NLQResponseSchema = z.object({\n /** Parse Result */\n parseResult: NLQParseResultSchema,\n \n /** Query Results (if executeQuery = true) */\n results: z.array(z.record(z.string(), z.any())).optional().describe('Query results'),\n totalCount: z.number().int().optional(),\n \n /** Execution Metadata */\n executionTime: z.number().optional().describe('Execution time in milliseconds'),\n needsClarification: z.boolean().describe('Whether query needs clarification'),\n \n /** Cost Tracking */\n tokens: TokenUsageSchema.optional().describe('Token usage for this query'),\n cost: z.number().nonnegative().optional().describe('Cost for this query in USD'),\n \n /** Suggestions */\n suggestions: z.array(z.string()).optional().describe('Query refinement suggestions'),\n});\n\n/**\n * NLQ Training Example\n */\nexport const NLQTrainingExampleSchema = z.object({\n /** Input */\n query: z.string().describe('Natural language query'),\n context: QueryContextSchema.optional(),\n \n /** Expected Output */\n expectedIntent: QueryIntentSchema,\n expectedObject: z.string().optional(),\n expectedAST: z.record(z.string(), z.any()).describe('Expected ObjectQL AST'),\n \n /** Metadata */\n category: z.string().optional().describe('Example category'),\n tags: z.array(z.string()).optional(),\n notes: z.string().optional(),\n});\n\n/**\n * NLQ Model Configuration\n */\nexport const NLQModelConfigSchema = z.object({\n /** Model */\n modelId: z.string().describe('Model from registry'),\n \n /** Prompt Engineering */\n systemPrompt: z.string().optional().describe('System prompt override'),\n includeSchema: z.boolean().default(true).describe('Include object schema in prompt'),\n includeExamples: z.boolean().default(true).describe('Include examples in prompt'),\n \n /** Intent Detection */\n enableIntentDetection: z.boolean().default(true),\n intentThreshold: z.number().min(0).max(1).default(0.7),\n \n /** Entity Recognition */\n enableEntityRecognition: z.boolean().default(true),\n entityRecognitionModel: z.string().optional(),\n \n /** Field Resolution */\n enableFuzzyMatching: z.boolean().default(true).describe('Fuzzy match field names'),\n fuzzyMatchThreshold: z.number().min(0).max(1).default(0.8),\n \n /** Temporal Processing */\n enableTimeframeDetection: z.boolean().default(true),\n defaultTimeframe: z.string().optional().describe('Default timeframe if not specified'),\n \n /** Performance */\n enableCaching: z.boolean().default(true),\n cacheTTL: z.number().int().default(3600).describe('Cache TTL in seconds'),\n});\n\n/**\n * NLQ Analytics\n */\nexport const NLQAnalyticsSchema = z.object({\n /** Query Metrics */\n totalQueries: z.number().int(),\n successfulQueries: z.number().int(),\n failedQueries: z.number().int(),\n averageConfidence: z.number().min(0).max(1),\n \n /** Intent Distribution */\n intentDistribution: z.record(z.string(), z.number().int()).describe('Count by intent type'),\n \n /** Common Patterns */\n topQueries: z.array(z.object({\n query: z.string(),\n count: z.number().int(),\n averageConfidence: z.number(),\n })),\n \n /** Performance */\n averageParseTime: z.number().describe('Average parse time in milliseconds'),\n averageExecutionTime: z.number().optional(),\n \n /** Issues */\n lowConfidenceQueries: z.array(z.object({\n query: z.string(),\n confidence: z.number(),\n timestamp: z.string().datetime(),\n })),\n \n /** Timeframe */\n startDate: z.string().datetime().describe('ISO timestamp'),\n endDate: z.string().datetime().describe('ISO timestamp'),\n});\n\n/**\n * Field Synonym Configuration\n */\nexport const FieldSynonymConfigSchema = z.object({\n object: z.string().describe('Object name'),\n field: z.string().describe('Field name'),\n synonyms: z.array(z.string()).describe('Natural language synonyms'),\n examples: z.array(z.string()).optional().describe('Example queries using synonyms'),\n});\n\n/**\n * Query Template\n */\nexport const QueryTemplateSchema = z.object({\n id: z.string(),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Template name (snake_case)'),\n label: z.string(),\n \n /** Template */\n pattern: z.string().describe('Query pattern with placeholders'),\n variables: z.array(z.object({\n name: z.string(),\n type: z.enum(['object', 'field', 'value', 'timeframe']),\n required: z.boolean().default(false),\n })),\n \n /** Generated AST */\n astTemplate: z.record(z.string(), z.any()).describe('AST template with variable placeholders'),\n \n /** Metadata */\n category: z.string().optional(),\n examples: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n});\n\n// Type exports\nexport type QueryIntent = z.infer<typeof QueryIntentSchema>;\nexport type Entity = z.infer<typeof EntitySchema>;\nexport type Timeframe = z.infer<typeof TimeframeSchema>;\nexport type NLQFieldMapping = z.infer<typeof NLQFieldMappingSchema>;\nexport type QueryContext = z.infer<typeof QueryContextSchema>;\nexport type NLQParseResult = z.infer<typeof NLQParseResultSchema>;\nexport type NLQRequest = z.infer<typeof NLQRequestSchema>;\nexport type NLQResponse = z.infer<typeof NLQResponseSchema>;\nexport type NLQTrainingExample = z.infer<typeof NLQTrainingExampleSchema>;\nexport type NLQModelConfig = z.infer<typeof NLQModelConfigSchema>;\nexport type NLQAnalytics = z.infer<typeof NLQAnalyticsSchema>;\nexport type FieldSynonymConfig = z.infer<typeof FieldSynonymConfigSchema>;\nexport type QueryTemplate = z.infer<typeof QueryTemplateSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * AI Agentic Orchestration Protocol\n * \n * Defines intelligent orchestration flows where AI Agents leverage cognitive skills\n * to automate business processes with dynamic reasoning, planning, and execution.\n * \n * Distinction from Standard Workflows:\n * - Standard Workflow: Deterministic (If X then Y). defined in src/data/workflow.zod.ts\n * - AI Orchestration: Probabilistic & Agentic (Goal -> Plan -> Execute).\n * \n * Use Cases:\n * - Complex Support Triage (Analyze sentiment + intent -> Draft response -> Route)\n * - Intelligent Document Processing (OCR -> Extract Entities -> Validate -> Entry)\n * - Research Agent (Search Web -> Summarize -> Generate Report)\n */\n\n/**\n * Orchestration Trigger Types\n * Defines when an AI Agentic Flow should be initiated\n */\nexport const AIOrchestrationTriggerSchema = z.enum([\n 'record_created', // When a new record is created\n 'record_updated', // When a record is updated\n 'field_changed', // When specific field(s) change\n 'scheduled', // Time-based trigger (cron)\n 'manual', // User-initiated trigger\n 'webhook', // External system trigger\n 'batch', // Batch processing trigger\n]);\n\n/**\n * AI Task Types\n * Cognitive operations that can be performed by AI\n */\nexport const AITaskTypeSchema = z.enum([\n 'classify', // Categorize content into predefined classes\n 'extract', // Extract structured data from unstructured content\n 'summarize', // Generate concise summaries of text\n 'generate', // Generate new content (text, code, etc.)\n 'predict', // Make predictions based on historical data\n 'translate', // Translate text between languages\n 'sentiment', // Analyze sentiment (positive, negative, neutral)\n 'entity_recognition', // Identify named entities (people, places, etc.)\n 'anomaly_detection', // Detect outliers or unusual patterns\n 'recommendation', // Recommend items or actions\n]);\n\n/**\n * AI Task Configuration\n * Individual AI task within a workflow\n */\nexport const AITaskSchema = z.object({\n /** Task Identity */\n id: z.string().optional().describe('Optional task ID for referencing'),\n name: z.string().describe('Human-readable task name'),\n type: AITaskTypeSchema,\n \n /** Model Configuration */\n model: z.string().optional().describe('Model ID from registry (uses default if not specified)'),\n promptTemplate: z.string().optional().describe('Prompt template ID for this task'),\n \n /** Input Configuration */\n inputFields: z.array(z.string()).describe('Source fields to process (e.g., [\"description\", \"comments\"])'),\n inputSchema: z.record(z.string(), z.any()).optional().describe('Validation schema for inputs'),\n inputContext: z.record(z.string(), z.any()).optional().describe('Additional context for the AI model'),\n \n /** Output Configuration */\n outputField: z.string().describe('Target field to store the result'),\n outputSchema: z.record(z.string(), z.any()).optional().describe('Validation schema for output'),\n outputFormat: z.enum(['text', 'json', 'number', 'boolean', 'array']).optional().default('text'),\n \n /** Classification-specific options */\n classes: z.array(z.string()).optional().describe('Valid classes for classification tasks'),\n multiClass: z.boolean().optional().default(false).describe('Allow multiple classes to be selected'),\n \n /** Extraction-specific options */\n extractionSchema: z.record(z.string(), z.any()).optional().describe('JSON schema for structured extraction'),\n \n /** Generation-specific options */\n maxLength: z.number().optional().describe('Maximum length for generated content'),\n temperature: z.number().min(0).max(2).optional().describe('Model temperature override'),\n \n /** Error Handling */\n fallbackValue: z.any().optional().describe('Fallback value if AI task fails'),\n retryAttempts: z.number().int().min(0).max(5).optional().default(1),\n \n /** Conditional Execution */\n condition: z.string().optional().describe('Formula condition - task only runs if TRUE'),\n \n /** Task Metadata */\n description: z.string().optional(),\n active: z.boolean().optional().default(true),\n});\n\n/**\n * Workflow Field Condition\n * Specifies which field changes trigger the workflow\n */\nexport const WorkflowFieldConditionSchema = z.object({\n field: z.string().describe('Field name to monitor'),\n operator: z.enum(['changed', 'changed_to', 'changed_from', 'is', 'is_not']).optional().default('changed'),\n value: z.any().optional().describe('Value to compare against (for changed_to/changed_from/is/is_not)'),\n});\n\n/**\n * Workflow Schedule Configuration\n * For time-based workflow execution\n */\nexport const WorkflowScheduleSchema = z.object({\n type: z.enum(['cron', 'interval', 'daily', 'weekly', 'monthly']).default('cron'),\n cron: z.string().optional().describe('Cron expression (required if type is \"cron\")'),\n interval: z.number().optional().describe('Interval in minutes (required if type is \"interval\")'),\n time: z.string().optional().describe('Time of day for daily schedules (HH:MM format)'),\n dayOfWeek: z.number().int().min(0).max(6).optional().describe('Day of week for weekly (0=Sunday)'),\n dayOfMonth: z.number().int().min(1).max(31).optional().describe('Day of month for monthly'),\n timezone: z.string().optional().default('UTC'),\n});\n\n/**\n * Post-Processing Action\n * Actions to execute after AI tasks complete\n */\nexport const PostProcessingActionSchema = z.object({\n type: z.enum(['field_update', 'send_email', 'create_record', 'update_related', 'trigger_flow', 'webhook']),\n name: z.string().describe('Action name'),\n config: z.record(z.string(), z.any()).describe('Action-specific configuration'),\n condition: z.string().optional().describe('Execute only if condition is TRUE'),\n});\n\n/**\n * AI Agentic Orchestration Schema\n * Complete workflow definition with AI-powered tasks\n */\nexport const AIOrchestrationSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Orchestration unique identifier (snake_case)'),\n label: z.string().describe('Display name'),\n description: z.string().optional(),\n \n /** Target Object */\n objectName: z.string().describe('Target object for this orchestration'),\n \n /** Trigger Configuration */\n trigger: AIOrchestrationTriggerSchema,\n \n /** Trigger-specific configuration */\n fieldConditions: z.array(WorkflowFieldConditionSchema).optional().describe('Fields to monitor (for field_changed trigger)'),\n schedule: WorkflowScheduleSchema.optional().describe('Schedule configuration (for scheduled trigger)'),\n webhookConfig: z.object({\n secret: z.string().optional().describe('Webhook verification secret'),\n headers: z.record(z.string(), z.string()).optional().describe('Expected headers'),\n }).optional().describe('Webhook configuration (for webhook trigger)'),\n \n /** Entry Criteria */\n entryCriteria: z.string().optional().describe('Formula condition - workflow only runs if TRUE'),\n \n /** AI Tasks */\n aiTasks: z.array(AITaskSchema).describe('AI tasks to execute in sequence'),\n \n /** Post-Processing */\n postActions: z.array(PostProcessingActionSchema).optional().describe('Actions after AI tasks complete'),\n \n /** Execution Options */\n executionMode: z.enum(['sequential', 'parallel']).optional().default('sequential').describe('How to execute multiple AI tasks'),\n stopOnError: z.boolean().optional().default(false).describe('Stop workflow if any task fails'),\n \n /** Performance & Limits */\n timeout: z.number().optional().describe('Maximum execution time in seconds'),\n priority: z.enum(['low', 'normal', 'high', 'critical']).optional().default('normal'),\n \n /** Monitoring & Logging */\n enableLogging: z.boolean().optional().default(true),\n enableMetrics: z.boolean().optional().default(true),\n notifyOnFailure: z.array(z.string()).optional().describe('User IDs to notify on failure'),\n \n /** Status */\n active: z.boolean().optional().default(true),\n version: z.string().optional().default('1.0.0'),\n \n /** Metadata */\n tags: z.array(z.string()).optional(),\n category: z.string().optional().describe('Workflow category (e.g., \"support\", \"sales\", \"hr\")'),\n owner: z.string().optional().describe('User ID of workflow owner'),\n createdAt: z.string().datetime().optional().describe('ISO timestamp'),\n updatedAt: z.string().datetime().optional().describe('ISO timestamp'),\n});\n\n/**\n * Batch AI Orchestration Execution Request\n * For processing multiple records at once\n */\nexport const BatchAIOrchestrationExecutionSchema = z.object({\n workflowName: z.string().describe('Orchestration to execute'),\n recordIds: z.array(z.string()).describe('Records to process'),\n batchSize: z.number().int().min(1).max(1000).optional().default(10),\n parallelism: z.number().int().min(1).max(10).optional().default(3),\n priority: z.enum(['low', 'normal', 'high']).optional().default('normal'),\n});\n\n/**\n * AI Orchestration Execution Result\n * Result of a single execution\n */\nexport const AIOrchestrationExecutionResultSchema = z.object({\n workflowName: z.string(),\n recordId: z.string(),\n status: z.enum(['success', 'partial_success', 'failed', 'skipped']),\n executionTime: z.number().describe('Execution time in milliseconds'),\n tasksExecuted: z.number().int().describe('Number of tasks executed'),\n tasksSucceeded: z.number().int().describe('Number of tasks succeeded'),\n tasksFailed: z.number().int().describe('Number of tasks failed'),\n taskResults: z.array(z.object({\n taskId: z.string().optional(),\n taskName: z.string(),\n status: z.enum(['success', 'failed', 'skipped']),\n output: z.any().optional(),\n error: z.string().optional(),\n executionTime: z.number().optional().describe('Task execution time in milliseconds'),\n modelUsed: z.string().optional(),\n tokensUsed: z.number().optional(),\n })).optional(),\n tokens: TokenUsageSchema.optional().describe('Total token usage for this execution'),\n cost: z.number().nonnegative().optional().describe('Total cost for this execution in USD'),\n error: z.string().optional(),\n startedAt: z.string().datetime().describe('ISO timestamp'),\n completedAt: z.string().datetime().optional().describe('ISO timestamp'),\n});\n\n// Type exports\nexport type AIOrchestrationTrigger = z.infer<typeof AIOrchestrationTriggerSchema>;\nexport type AITaskType = z.infer<typeof AITaskTypeSchema>;\nexport type AITask = z.infer<typeof AITaskSchema>;\nexport type WorkflowFieldCondition = z.infer<typeof WorkflowFieldConditionSchema>;\nexport type WorkflowSchedule = z.infer<typeof WorkflowScheduleSchema>;\nexport type PostProcessingAction = z.infer<typeof PostProcessingActionSchema>;\nexport type AIOrchestration = z.infer<typeof AIOrchestrationSchema>;\nexport type BatchAIOrchestrationExecution = z.infer<typeof BatchAIOrchestrationExecutionSchema>;\nexport type AIOrchestrationExecutionResult = z.infer<typeof AIOrchestrationExecutionResultSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * Predictive Analytics Protocol\n * \n * Defines predictive models and machine learning configurations for\n * data-driven decision making and forecasting in ObjectStack applications.\n * \n * Use Cases:\n * - Lead scoring and conversion prediction\n * - Customer churn prediction\n * - Sales forecasting\n * - Demand forecasting\n * - Anomaly detection in operational data\n * - Customer segmentation and clustering\n * - Price optimization\n * - Recommendation systems\n */\n\n/**\n * Predictive Model Types\n */\nexport const PredictiveModelTypeSchema = z.enum([\n 'classification', // Binary or multi-class classification\n 'regression', // Numerical prediction\n 'clustering', // Unsupervised grouping\n 'forecasting', // Time-series prediction\n 'anomaly_detection', // Outlier detection\n 'recommendation', // Item or action recommendation\n 'ranking', // Ordering items by relevance\n]);\n\n/**\n * Model Feature Definition\n * Describes an input feature for a predictive model\n */\nexport const ModelFeatureSchema = z.object({\n /** Feature Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Feature name (snake_case)'),\n label: z.string().optional().describe('Human-readable label'),\n \n /** Data Source */\n field: z.string().describe('Source field name'),\n object: z.string().optional().describe('Source object (if different from target)'),\n \n /** Feature Type */\n dataType: z.enum(['numeric', 'categorical', 'text', 'datetime', 'boolean']).describe('Feature data type'),\n \n /** Feature Engineering */\n transformation: z.enum([\n 'none',\n 'normalize', // Normalize to 0-1 range\n 'standardize', // Z-score standardization\n 'one_hot_encode', // One-hot encoding for categorical\n 'label_encode', // Label encoding for categorical\n 'log_transform', // Logarithmic transformation\n 'binning', // Discretize continuous values\n 'embedding', // Text/categorical embedding\n ]).optional().default('none'),\n \n /** Configuration */\n required: z.boolean().optional().default(true),\n defaultValue: z.any().optional(),\n \n /** Metadata */\n description: z.string().optional(),\n importance: z.number().optional().describe('Feature importance score (0-1)'),\n});\n\n/**\n * Model Hyperparameters\n * Configuration specific to model algorithms\n */\nexport const HyperparametersSchema = z.object({\n /** General Parameters */\n learningRate: z.number().optional().describe('Learning rate for training'),\n epochs: z.number().int().optional().describe('Number of training epochs'),\n batchSize: z.number().int().optional().describe('Training batch size'),\n \n /** Tree-based Models (Random Forest, XGBoost, etc.) */\n maxDepth: z.number().int().optional().describe('Maximum tree depth'),\n numTrees: z.number().int().optional().describe('Number of trees in ensemble'),\n minSamplesSplit: z.number().int().optional().describe('Minimum samples to split node'),\n minSamplesLeaf: z.number().int().optional().describe('Minimum samples in leaf node'),\n \n /** Neural Networks */\n hiddenLayers: z.array(z.number().int()).optional().describe('Hidden layer sizes'),\n activation: z.string().optional().describe('Activation function'),\n dropout: z.number().optional().describe('Dropout rate'),\n \n /** Regularization */\n l1Regularization: z.number().optional().describe('L1 regularization strength'),\n l2Regularization: z.number().optional().describe('L2 regularization strength'),\n \n /** Clustering */\n numClusters: z.number().int().optional().describe('Number of clusters (k-means, etc.)'),\n \n /** Time Series */\n seasonalPeriod: z.number().int().optional().describe('Seasonal period for time series'),\n forecastHorizon: z.number().int().optional().describe('Number of periods to forecast'),\n \n /** Additional custom parameters */\n custom: z.record(z.string(), z.any()).optional().describe('Algorithm-specific parameters'),\n});\n\n/**\n * Model Training Configuration\n */\nexport const TrainingConfigSchema = z.object({\n /** Data Split */\n trainingDataRatio: z.number().min(0).max(1).optional().default(0.8).describe('Proportion of data for training'),\n validationDataRatio: z.number().min(0).max(1).optional().default(0.1).describe('Proportion for validation'),\n testDataRatio: z.number().min(0).max(1).optional().default(0.1).describe('Proportion for testing'),\n \n /** Data Filtering */\n dataFilter: z.string().optional().describe('Formula to filter training data'),\n minRecords: z.number().int().optional().default(100).describe('Minimum records required'),\n maxRecords: z.number().int().optional().describe('Maximum records to use'),\n \n /** Training Strategy */\n strategy: z.enum(['full', 'incremental', 'online', 'transfer_learning']).optional().default('full'),\n crossValidation: z.boolean().optional().default(true),\n folds: z.number().int().min(2).max(10).optional().default(5).describe('Cross-validation folds'),\n \n /** Early Stopping */\n earlyStoppingEnabled: z.boolean().optional().default(true),\n earlyStoppingPatience: z.number().int().optional().default(10).describe('Epochs without improvement before stopping'),\n \n /** Resource Limits */\n maxTrainingTime: z.number().optional().describe('Maximum training time in seconds'),\n gpuEnabled: z.boolean().optional().default(false),\n \n /** Reproducibility */\n randomSeed: z.number().int().optional().describe('Random seed for reproducibility'),\n}).superRefine((data, ctx) => {\n if (data.trainingDataRatio && data.validationDataRatio && data.testDataRatio) {\n const sum = data.trainingDataRatio + data.validationDataRatio + data.testDataRatio;\n if (Math.abs(sum - 1) > 0.01) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Data split ratios must sum to 1. Current sum: ${sum}`,\n path: ['trainingDataRatio'],\n });\n }\n }\n});\n\n/**\n * Model Evaluation Metrics\n */\nexport const EvaluationMetricsSchema = z.object({\n /** Classification Metrics */\n accuracy: z.number().optional(),\n precision: z.number().optional(),\n recall: z.number().optional(),\n f1Score: z.number().optional(),\n auc: z.number().optional().describe('Area Under ROC Curve'),\n \n /** Regression Metrics */\n mse: z.number().optional().describe('Mean Squared Error'),\n rmse: z.number().optional().describe('Root Mean Squared Error'),\n mae: z.number().optional().describe('Mean Absolute Error'),\n r2Score: z.number().optional().describe('R-squared score'),\n \n /** Clustering Metrics */\n silhouetteScore: z.number().optional(),\n daviesBouldinIndex: z.number().optional(),\n \n /** Time Series Metrics */\n mape: z.number().optional().describe('Mean Absolute Percentage Error'),\n smape: z.number().optional().describe('Symmetric MAPE'),\n \n /** Additional Metrics */\n custom: z.record(z.string(), z.number()).optional(),\n});\n\n/**\n * Predictive Model Schema\n * Complete definition of a predictive model\n */\nexport const PredictiveModelSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Model unique identifier (snake_case)'),\n label: z.string().describe('Model display name'),\n description: z.string().optional(),\n \n /** Model Type */\n type: PredictiveModelTypeSchema,\n algorithm: z.string().optional().describe('Specific algorithm (e.g., \"random_forest\", \"xgboost\", \"lstm\")'),\n \n /** Target Object & Field */\n objectName: z.string().describe('Target object for predictions'),\n target: z.string().describe('Target field to predict'),\n targetType: z.enum(['numeric', 'categorical', 'binary']).optional().describe('Target field type'),\n \n /** Features */\n features: z.array(ModelFeatureSchema).describe('Input features for the model'),\n \n /** Hyperparameters */\n hyperparameters: HyperparametersSchema.optional(),\n \n /** Training Configuration */\n training: TrainingConfigSchema.optional(),\n \n /** Model Performance */\n metrics: EvaluationMetricsSchema.optional().describe('Evaluation metrics from last training'),\n \n /** Deployment */\n deploymentStatus: z.enum(['draft', 'training', 'trained', 'deployed', 'deprecated']).optional().default('draft'),\n version: z.string().optional().default('1.0.0'),\n \n /** Prediction Configuration */\n predictionField: z.string().optional().describe('Field to store predictions'),\n confidenceField: z.string().optional().describe('Field to store confidence scores'),\n updateTrigger: z.enum(['on_create', 'on_update', 'manual', 'scheduled']).optional().default('on_create'),\n \n /** Retraining */\n autoRetrain: z.boolean().optional().default(false),\n retrainSchedule: z.string().optional().describe('Cron expression for auto-retraining'),\n retrainThreshold: z.number().optional().describe('Performance threshold to trigger retraining'),\n \n /** Explainability */\n enableExplainability: z.boolean().optional().default(false).describe('Generate feature importance & explanations'),\n \n /** Monitoring */\n enableMonitoring: z.boolean().optional().default(true),\n alertOnDrift: z.boolean().optional().default(true).describe('Alert when model drift is detected'),\n \n /** Access Control */\n active: z.boolean().optional().default(true),\n owner: z.string().optional().describe('User ID of model owner'),\n permissions: z.array(z.string()).optional().describe('User/group IDs with access'),\n \n /** Metadata */\n tags: z.array(z.string()).optional(),\n category: z.string().optional().describe('Model category (e.g., \"sales\", \"marketing\", \"operations\")'),\n lastTrainedAt: z.string().datetime().optional().describe('ISO timestamp'),\n createdAt: z.string().datetime().optional().describe('ISO timestamp'),\n updatedAt: z.string().datetime().optional().describe('ISO timestamp'),\n});\n\n/**\n * Prediction Request\n * Request for making predictions using a trained model\n */\nexport const PredictionRequestSchema = z.object({\n modelName: z.string().describe('Model to use for prediction'),\n recordIds: z.array(z.string()).optional().describe('Specific records to predict (if not provided, uses all)'),\n inputData: z.record(z.string(), z.any()).optional().describe('Direct input data (alternative to recordIds)'),\n returnConfidence: z.boolean().optional().default(true),\n returnExplanation: z.boolean().optional().default(false),\n});\n\n/**\n * Prediction Result\n * Result of a prediction request\n */\nexport const PredictionResultSchema = z.object({\n modelName: z.string(),\n modelVersion: z.string(),\n recordId: z.string().optional(),\n prediction: z.any().describe('The predicted value'),\n confidence: z.number().optional().describe('Confidence score (0-1)'),\n probabilities: z.record(z.string(), z.number()).optional().describe('Class probabilities (for classification)'),\n explanation: z.object({\n topFeatures: z.array(z.object({\n feature: z.string(),\n importance: z.number(),\n value: z.any(),\n })).optional(),\n reasoning: z.string().optional(),\n }).optional(),\n tokens: TokenUsageSchema.optional().describe('Token usage for this prediction (if AI-powered)'),\n cost: z.number().nonnegative().optional().describe('Cost for this prediction in USD'),\n metadata: z.object({\n executionTime: z.number().optional().describe('Execution time in milliseconds'),\n timestamp: z.string().datetime().optional().describe('ISO timestamp'),\n }).optional(),\n});\n\n/**\n * Model Drift Detection\n * Monitoring for model performance degradation\n */\nexport const ModelDriftSchema = z.object({\n modelName: z.string(),\n driftType: z.enum(['feature_drift', 'prediction_drift', 'performance_drift']),\n severity: z.enum(['low', 'medium', 'high', 'critical']),\n detectedAt: z.string().datetime().describe('ISO timestamp'),\n metrics: z.object({\n driftScore: z.number().describe('Drift magnitude (0-1)'),\n affectedFeatures: z.array(z.string()).optional(),\n performanceChange: z.number().optional().describe('Change in performance metric'),\n }),\n recommendation: z.string().optional(),\n autoRetrainTriggered: z.boolean().optional().default(false),\n});\n\n// Type exports\nexport type PredictiveModelType = z.infer<typeof PredictiveModelTypeSchema>;\nexport type ModelFeature = z.infer<typeof ModelFeatureSchema>;\nexport type Hyperparameters = z.infer<typeof HyperparametersSchema>;\nexport type TrainingConfig = z.infer<typeof TrainingConfigSchema>;\nexport type EvaluationMetrics = z.infer<typeof EvaluationMetricsSchema>;\nexport type PredictiveModel = z.infer<typeof PredictiveModelSchema>;\nexport type PredictionRequest = z.infer<typeof PredictionRequestSchema>;\nexport type PredictionResult = z.infer<typeof PredictionResultSchema>;\nexport type ModelDrift = z.infer<typeof ModelDriftSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * AI Conversation Memory Protocol\n * \n * Multi-turn AI conversations with token budget management.\n * Enables context preservation, conversation history, and token optimization.\n */\n\n/**\n * Message Role\n */\nexport const MessageRoleSchema = z.enum([\n 'system',\n 'user',\n 'assistant',\n 'function',\n 'tool',\n]);\n\n/**\n * Message Content Type\n */\nexport const MessageContentTypeSchema = z.enum([\n 'text',\n 'image',\n 'file',\n 'code',\n 'structured',\n]);\n\n/**\n * Message Content - Discriminated Union\n */\nexport const TextContentSchema = z.object({\n type: z.literal('text'),\n text: z.string().describe('Text content'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const ImageContentSchema = z.object({\n type: z.literal('image'),\n imageUrl: z.string().url().describe('Image URL'),\n detail: z.enum(['low', 'high', 'auto']).optional().default('auto'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const FileContentSchema = z.object({\n type: z.literal('file'),\n fileUrl: z.string().url().describe('File attachment URL'),\n mimeType: z.string().describe('MIME type'),\n fileName: z.string().optional(),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const CodeContentSchema = z.object({\n type: z.literal('code'),\n text: z.string().describe('Code snippet'),\n language: z.string().optional().default('text'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const MessageContentSchema = z.union([\n TextContentSchema,\n ImageContentSchema,\n FileContentSchema,\n CodeContentSchema\n]);\n\n/**\n * Function Call\n */\nexport const FunctionCallSchema = z.object({\n name: z.string().describe('Function name'),\n arguments: z.string().describe('JSON string of function arguments'),\n result: z.string().optional().describe('Function execution result'),\n});\n\n/**\n * Tool Call\n */\nexport const ToolCallSchema = z.object({\n id: z.string().describe('Tool call ID'),\n type: z.enum(['function']).default('function'),\n function: FunctionCallSchema,\n});\n\n/**\n * Conversation Message\n */\nexport const ConversationMessageSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique message ID'),\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Content */\n role: MessageRoleSchema,\n content: z.array(MessageContentSchema).describe('Message content (multimodal array)'),\n \n /** Function/Tool Calls */\n functionCall: FunctionCallSchema.optional().describe('Legacy function call'),\n toolCalls: z.array(ToolCallSchema).optional().describe('Tool calls'),\n toolCallId: z.string().optional().describe('Tool call ID this message responds to'),\n \n /** Metadata */\n name: z.string().optional().describe('Name of the function/user'),\n tokens: TokenUsageSchema.optional().describe('Token usage for this message'),\n cost: z.number().nonnegative().optional().describe('Cost for this message in USD'),\n \n /** Context Management */\n pinned: z.boolean().optional().default(false).describe('Prevent removal during pruning'),\n importance: z.number().min(0).max(1).optional().describe('Importance score for pruning'),\n embedding: z.array(z.number()).optional().describe('Vector embedding for semantic search'),\n \n /** Annotations */\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Token Budget Strategy\n */\nexport const TokenBudgetStrategySchema = z.enum([\n 'fifo', // First-in-first-out (oldest messages dropped)\n 'importance', // Drop by importance score\n 'semantic', // Keep semantically relevant messages\n 'sliding_window', // Fixed window of recent messages\n 'summary', // Summarize old context\n]);\n\n/**\n * Token Budget Configuration\n */\nexport const TokenBudgetConfigSchema = z.object({\n /** Budget Limits */\n maxTokens: z.number().int().positive().describe('Maximum total tokens'),\n maxPromptTokens: z.number().int().positive().optional().describe('Max tokens for prompt'),\n maxCompletionTokens: z.number().int().positive().optional().describe('Max tokens for completion'),\n \n /** Buffer & Reserves */\n reserveTokens: z.number().int().nonnegative().default(500).describe('Reserve tokens for system messages'),\n bufferPercentage: z.number().min(0).max(1).default(0.1).describe('Buffer percentage (0.1 = 10%)'),\n \n /** Pruning Strategy */\n strategy: TokenBudgetStrategySchema.default('sliding_window'),\n \n /** Strategy-Specific Options */\n slidingWindowSize: z.number().int().positive().optional().describe('Number of recent messages to keep'),\n minImportanceScore: z.number().min(0).max(1).optional().describe('Minimum importance to keep'),\n semanticThreshold: z.number().min(0).max(1).optional().describe('Semantic similarity threshold'),\n \n /** Summarization */\n enableSummarization: z.boolean().default(false).describe('Enable context summarization'),\n summarizationThreshold: z.number().int().positive().optional().describe('Trigger summarization at N tokens'),\n summaryModel: z.string().optional().describe('Model ID for summarization'),\n \n /** Monitoring */\n warnThreshold: z.number().min(0).max(1).default(0.8).describe('Warn at % of budget (0.8 = 80%)'),\n});\n\n/**\n * Token Usage Stats\n */\nexport const TokenUsageStatsSchema = z.object({\n promptTokens: z.number().int().nonnegative().default(0),\n completionTokens: z.number().int().nonnegative().default(0),\n totalTokens: z.number().int().nonnegative().default(0),\n \n /** Budget Status */\n budgetLimit: z.number().int().positive(),\n budgetUsed: z.number().int().nonnegative().default(0),\n budgetRemaining: z.number().int().nonnegative(),\n budgetPercentage: z.number().min(0).max(1).describe('Usage as percentage of budget'),\n \n /** Message Stats */\n messageCount: z.number().int().nonnegative().default(0),\n prunedMessageCount: z.number().int().nonnegative().default(0),\n summarizedMessageCount: z.number().int().nonnegative().default(0),\n});\n\n/**\n * Conversation Context\n */\nexport const ConversationContextSchema = z.object({\n /** Identity */\n sessionId: z.string().describe('Conversation session ID'),\n userId: z.string().optional().describe('User identifier'),\n agentId: z.string().optional().describe('AI agent identifier'),\n \n /** Context Data */\n object: z.string().optional().describe('Related object (e.g., \"case\", \"project\")'),\n recordId: z.string().optional().describe('Related record ID'),\n scope: z.record(z.string(), z.any()).optional().describe('Additional context scope'),\n \n /** System Instructions */\n systemMessage: z.string().optional().describe('System prompt/instructions'),\n \n /** Metadata */\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Conversation Session\n */\nexport const ConversationSessionSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique session ID'),\n name: z.string().optional().describe('Session name/title'),\n \n /** Configuration */\n context: ConversationContextSchema,\n modelId: z.string().optional().describe('AI model ID'),\n tokenBudget: TokenBudgetConfigSchema,\n \n /** Messages */\n messages: z.array(ConversationMessageSchema).default([]),\n \n /** Token Tracking */\n tokens: TokenUsageStatsSchema.optional(),\n totalTokens: TokenUsageSchema.optional().describe('Total tokens across all messages'),\n totalCost: z.number().nonnegative().optional().describe('Total cost for this session in USD'),\n \n /** Session Status */\n status: z.enum(['active', 'paused', 'completed', 'archived']).default('active'),\n \n /** Timestamps */\n createdAt: z.string().datetime().describe('ISO 8601 timestamp'),\n updatedAt: z.string().datetime().describe('ISO 8601 timestamp'),\n expiresAt: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Conversation Summary\n */\nexport const ConversationSummarySchema = z.object({\n /** Summary Content */\n summary: z.string().describe('Conversation summary'),\n keyPoints: z.array(z.string()).optional().describe('Key discussion points'),\n \n /** Token Savings */\n originalTokens: z.number().int().nonnegative().describe('Original token count'),\n summaryTokens: z.number().int().nonnegative().describe('Summary token count'),\n tokensSaved: z.number().int().nonnegative().describe('Tokens saved'),\n \n /** Source Messages */\n messageRange: z.object({\n startIndex: z.number().int().nonnegative(),\n endIndex: z.number().int().nonnegative(),\n }).describe('Range of messages summarized'),\n \n /** Metadata */\n generatedAt: z.string().datetime().describe('ISO 8601 timestamp'),\n modelId: z.string().optional().describe('Model used for summarization'),\n});\n\n/**\n * Message Pruning Event\n */\nexport const MessagePruningEventSchema = z.object({\n /** Event Details */\n timestamp: z.string().datetime().describe('Event timestamp'),\n /** Pruned Messages */\n prunedMessages: z.array(z.object({\n messageId: z.string(),\n role: MessageRoleSchema,\n tokens: z.number().int().nonnegative(),\n importance: z.number().min(0).max(1).optional(),\n })),\n \n /** Impact */\n tokensFreed: z.number().int().nonnegative(),\n messagesRemoved: z.number().int().nonnegative(),\n \n /** Post-Pruning State */\n remainingTokens: z.number().int().nonnegative(),\n remainingMessages: z.number().int().nonnegative(),\n});\n\n/**\n * Conversation Analytics\n */\nexport const ConversationAnalyticsSchema = z.object({\n /** Session Info */\n sessionId: z.string(),\n \n /** Message Statistics */\n totalMessages: z.number().int().nonnegative(),\n userMessages: z.number().int().nonnegative(),\n assistantMessages: z.number().int().nonnegative(),\n systemMessages: z.number().int().nonnegative(),\n \n /** Token Statistics */\n totalTokens: z.number().int().nonnegative(),\n averageTokensPerMessage: z.number().nonnegative(),\n peakTokenUsage: z.number().int().nonnegative(),\n \n /** Efficiency Metrics */\n pruningEvents: z.number().int().nonnegative().default(0),\n summarizationEvents: z.number().int().nonnegative().default(0),\n tokensSavedByPruning: z.number().int().nonnegative().default(0),\n tokensSavedBySummarization: z.number().int().nonnegative().default(0),\n \n /** Duration */\n duration: z.number().nonnegative().optional().describe('Session duration in seconds'),\n firstMessageAt: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n lastMessageAt: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n});\n\nexport type MessageRole = z.infer<typeof MessageRoleSchema>;\nexport type MessageContentType = z.infer<typeof MessageContentTypeSchema>;\nexport type MessageContent = z.infer<typeof MessageContentSchema>;\nexport type FunctionCall = z.infer<typeof FunctionCallSchema>;\nexport type ToolCall = z.infer<typeof ToolCallSchema>;\nexport type ConversationMessage = z.infer<typeof ConversationMessageSchema>;\nexport type TokenBudgetStrategy = z.infer<typeof TokenBudgetStrategySchema>;\nexport type TokenBudgetConfig = z.infer<typeof TokenBudgetConfigSchema>;\nexport type TokenUsageStats = z.infer<typeof TokenUsageStatsSchema>;\nexport type ConversationContext = z.infer<typeof ConversationContextSchema>;\nexport type ConversationSession = z.infer<typeof ConversationSessionSchema>;\nexport type ConversationSummary = z.infer<typeof ConversationSummarySchema>;\nexport type MessagePruningEvent = z.infer<typeof MessagePruningEventSchema>;\nexport type ConversationAnalytics = z.infer<typeof ConversationAnalyticsSchema>;\n","import { z } from 'zod';\nimport { ChangeSetSchema } from '../system/migration.zod';\n\n// Identifying the source of truth\nexport const MetadataSourceSchema = z.object({\n file: z.string().optional(),\n line: z.number().optional(),\n column: z.number().optional(),\n // Logic references\n package: z.string().optional(),\n object: z.string().optional(),\n field: z.string().optional(),\n component: z.string().optional() // specific UI component or flow node\n});\n\n// The Runtime Issue\nexport const IssueSchema = z.object({\n id: z.string(),\n severity: z.enum(['critical', 'error', 'warning', 'info']),\n message: z.string(),\n stackTrace: z.string().optional(),\n timestamp: z.string().datetime(),\n userId: z.string().optional(),\n \n // Context snapshot\n context: z.record(z.string(), z.unknown()).optional(),\n \n // The suspected metadata culprit\n source: MetadataSourceSchema.optional()\n});\n\n// The AI's proposed resolution\nexport const ResolutionSchema = z.object({\n issueId: z.string(),\n reasoning: z.string().describe('Explanation of why this fix is needed'),\n confidence: z.number().min(0).max(1),\n \n // Actionable change to fix the issue\n fix: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('metadata_change'),\n changeSet: ChangeSetSchema\n }),\n z.object({\n type: z.literal('manual_intervention'),\n instructions: z.string()\n })\n ])\n});\n\n// Complete Feedback Loop Record\nexport const FeedbackLoopSchema = z.object({\n issue: IssueSchema,\n analysis: z.string().optional().describe('AI analysis of the root cause'),\n resolutions: z.array(ResolutionSchema).optional(),\n status: z.enum(['open', 'analyzing', 'resolved', 'ignored']).default('open')\n});\n\nexport type FeedbackLoop = z.infer<typeof FeedbackLoopSchema>;\nexport type Issue = z.infer<typeof IssueSchema>;\nexport type Resolution = z.infer<typeof ResolutionSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from '../data/field.zod';\nimport { ObjectSchema } from '../data/object.zod';\n\n// --- Atomic Operations ---\n\nexport const AddFieldOperation = z.object({\n type: z.literal('add_field'),\n objectName: z.string(),\n fieldName: z.string(),\n field: FieldSchema\n});\n\nexport const ModifyFieldOperation = z.object({\n type: z.literal('modify_field'),\n objectName: z.string(),\n fieldName: z.string(),\n changes: z.record(z.string(), z.unknown()) // Partial field definition updates\n});\n\nexport const RemoveFieldOperation = z.object({\n type: z.literal('remove_field'),\n objectName: z.string(),\n fieldName: z.string()\n});\n\nexport const CreateObjectOperation = z.object({\n type: z.literal('create_object'),\n object: ObjectSchema\n});\n\nexport const RenameObjectOperation = z.object({\n type: z.literal('rename_object'),\n oldName: z.string(),\n newName: z.string()\n});\n\nexport const DeleteObjectOperation = z.object({\n type: z.literal('delete_object'),\n objectName: z.string()\n});\n\nexport const ExecuteSqlOperation = z.object({\n type: z.literal('execute_sql'),\n sql: z.string(),\n description: z.string().optional()\n});\n\n// Union of all possible operations\nexport const MigrationOperationSchema = z.discriminatedUnion('type', [\n AddFieldOperation,\n ModifyFieldOperation,\n RemoveFieldOperation,\n CreateObjectOperation,\n RenameObjectOperation,\n DeleteObjectOperation,\n ExecuteSqlOperation\n]);\n\n// --- Migration & ChangeSet ---\n\nexport const MigrationDependencySchema = z.object({\n migrationId: z.string(),\n package: z.string().optional()\n});\n\nexport const ChangeSetSchema = z.object({\n id: z.string().uuid().describe('Unique identifier for this change set'),\n name: z.string().describe('Human readable name for the migration'),\n description: z.string().optional(),\n author: z.string().optional(),\n createdAt: z.string().datetime().optional(),\n \n // Dependencies ensure migrations run in order\n dependencies: z.array(MigrationDependencySchema).optional(),\n \n // The actual atomic operations\n operations: z.array(MigrationOperationSchema),\n \n // Rollback operations (AI should generate these too)\n rollback: z.array(MigrationOperationSchema).optional()\n});\n\nexport type ChangeSet = z.infer<typeof ChangeSetSchema>;\nexport type MigrationOperation = z.infer<typeof MigrationOperationSchema>;\n","import { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n});\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n});\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n});\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n});\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n});\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n});\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n});\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n});\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n});\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.any().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /** Relationship Config */\n reference: z.string().optional().describe('Target Object Name'),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation */\n expression: z.string().optional().describe('Formula expression'),\n formula: z.string().optional().describe('Deprecated: Use expression'),\n summaryOperations: z.object({\n object: z.string(),\n field: z.string(),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg'])\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n qrErrorCorrection: z.enum(['L', 'M', 'Q', 'H']).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n encryption: z.boolean().default(false).describe('Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility.'),\n \n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n});\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","import { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nexport const SystemIdentifierSchema = z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)');\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)');\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)');\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","import { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nexport const EncryptionAlgorithmSchema = z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]);\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]);\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = z.object({\n enabled: z.boolean().default(false),\n frequencyDays: z.number().min(1).default(90),\n retainOldVersions: z.number().default(3),\n autoRotate: z.boolean().default(true),\n});\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = z.object({\n enabled: z.boolean().default(false),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema,\n keyId: z.string().optional(),\n rotationPolicy: KeyRotationPolicySchema.optional(),\n }),\n scope: z.enum(['field', 'record', 'table', 'database']),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n});\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = z.object({\n fieldName: z.string(),\n encryptionConfig: EncryptionConfigSchema,\n indexable: z.boolean().default(false),\n});\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\n","import { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nexport const MaskingStrategySchema = z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]);\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = z.object({\n field: z.string(),\n strategy: MaskingStrategySchema,\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true),\n preserveLength: z.boolean().default(true),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n});\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = z.object({\n enabled: z.boolean().default(false),\n rules: z.array(MaskingRuleSchema),\n auditUnmasking: z.boolean().default(true),\n});\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from './field.zod';\nimport { ValidationRuleSchema } from './validation.zod';\n\n/**\n * API Operations Enum\n */\nexport const ApiMethod = z.enum([\n 'get', 'list', // Read\n 'create', 'update', 'delete', // Write\n 'upsert', // Idempotent Write\n 'bulk', // Batch operations\n 'aggregate', // Analytics (count, sum)\n 'history', // Audit access\n 'search', // Search access\n 'restore', 'purge', // Trash management\n 'import', 'export', // Data portability\n]);\nexport type ApiMethod = z.infer<typeof ApiMethod>;\n\n/**\n * Capability Flags\n * Defines what system features are enabled for this object.\n * \n * Optimized based on industry standards (Salesforce, ServiceNow):\n * - Added `activities` (Tasks/Events)\n * - Added `mru` (Recent Items)\n * - Added `feeds` (Social/Chatter)\n * - Grouped API permissions\n * \n * @example\n * {\n * trackHistory: true,\n * searchable: true,\n * apiEnabled: true,\n * files: true\n * }\n */\nexport const ObjectCapabilities = z.object({\n /** Enable history tracking (Audit Trail) */\n trackHistory: z.boolean().default(false).describe('Enable field history tracking for audit compliance'),\n \n /** Enable global search indexing */\n searchable: z.boolean().default(true).describe('Index records for global search'),\n \n /** Enable REST/GraphQL API access */\n apiEnabled: z.boolean().default(true).describe('Expose object via automatic APIs'),\n\n /** \n * API Supported Operations\n * Granular control over API exposure.\n */\n apiMethods: z.array(ApiMethod).optional().describe('Whitelist of allowed API operations'),\n \n /** Enable standard attachments/files engine */\n files: z.boolean().default(false).describe('Enable file attachments and document management'),\n \n /** Enable social collaboration (Comments, Mentions, Feeds) */\n feeds: z.boolean().default(false).describe('Enable social feed, comments, and mentions (Chatter-like)'),\n \n /** Enable standard Activity suite (Tasks, Calendars, Events) */\n activities: z.boolean().default(false).describe('Enable standard tasks and events tracking'),\n \n /** Enable Recycle Bin / Soft Delete */\n trash: z.boolean().default(true).describe('Enable soft-delete with restore capability'),\n\n /** Enable \"Recently Viewed\" tracking */\n mru: z.boolean().default(true).describe('Track Most Recently Used (MRU) list for users'),\n \n /** Allow cloning records */\n clone: z.boolean().default(true).describe('Allow record deep cloning'),\n});\n\n/**\n * Schema for database indexes.\n * Enhanced with additional index types and configuration options\n * \n * @example\n * {\n * name: \"idx_account_name\",\n * fields: [\"name\"],\n * type: \"btree\",\n * unique: true\n * }\n */\nexport const IndexSchema = z.object({\n name: z.string().optional().describe('Index name (auto-generated if not provided)'),\n fields: z.array(z.string()).describe('Fields included in the index'),\n type: z.enum(['btree', 'hash', 'gin', 'gist', 'fulltext']).optional().default('btree').describe('Index algorithm type'),\n unique: z.boolean().optional().default(false).describe('Whether the index enforces uniqueness'),\n partial: z.string().optional().describe('Partial index condition (SQL WHERE clause for conditional indexes)'),\n});\n\n/**\n * Search Configuration\n * Defines how this object behaves in search results.\n * \n * @example\n * {\n * fields: [\"name\", \"email\", \"phone\"],\n * displayFields: [\"name\", \"title\"],\n * filters: [\"status = 'active'\"]\n * }\n */\nexport const SearchConfigSchema = z.object({\n fields: z.array(z.string()).describe('Fields to index for full-text search weighting'),\n displayFields: z.array(z.string()).optional().describe('Fields to display in search result cards'),\n filters: z.array(z.string()).optional().describe('Default filters for search results'),\n});\n\n/**\n * Multi-Tenancy Configuration Schema\n * Configures tenant isolation strategy for SaaS applications\n * \n * @example Shared database with tenant_id isolation\n * {\n * enabled: true,\n * strategy: 'shared',\n * tenantField: 'tenant_id',\n * crossTenantAccess: false\n * }\n */\nexport const TenancyConfigSchema = z.object({\n enabled: z.boolean().describe('Enable multi-tenancy for this object'),\n strategy: z.enum(['shared', 'isolated', 'hybrid']).describe('Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)'),\n tenantField: z.string().default('tenant_id').describe('Field name for tenant identifier'),\n crossTenantAccess: z.boolean().default(false).describe('Allow cross-tenant data access (with explicit permission)'),\n});\n\n/**\n * Soft Delete Configuration Schema\n * Implements recycle bin / trash functionality\n * \n * @example Standard soft delete with cascade\n * {\n * enabled: true,\n * field: 'deleted_at',\n * cascadeDelete: true\n * }\n */\nexport const SoftDeleteConfigSchema = z.object({\n enabled: z.boolean().describe('Enable soft delete (trash/recycle bin)'),\n field: z.string().default('deleted_at').describe('Field name for soft delete timestamp'),\n cascadeDelete: z.boolean().default(false).describe('Cascade soft delete to related records'),\n});\n\n/**\n * Versioning Configuration Schema\n * Implements record versioning and history tracking\n * \n * @example Snapshot versioning with 90-day retention\n * {\n * enabled: true,\n * strategy: 'snapshot',\n * retentionDays: 90,\n * versionField: 'version'\n * }\n */\nexport const VersioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable record versioning'),\n strategy: z.enum(['snapshot', 'delta', 'event-sourcing']).describe('Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)'),\n retentionDays: z.number().min(1).optional().describe('Number of days to retain old versions (undefined = infinite)'),\n versionField: z.string().default('version').describe('Field name for version number/timestamp'),\n});\n\n/**\n * Partitioning Strategy Schema\n * Configures table partitioning for performance at scale\n * \n * @example Range partitioning by date (monthly)\n * {\n * enabled: true,\n * strategy: 'range',\n * key: 'created_at',\n * interval: '1 month'\n * }\n */\nexport const PartitioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable table partitioning'),\n strategy: z.enum(['range', 'hash', 'list']).describe('Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)'),\n key: z.string().describe('Field name to partition by'),\n interval: z.string().optional().describe('Partition interval for range strategy (e.g., \"1 month\", \"1 year\")'),\n}).refine((data) => {\n // If strategy is 'range', interval must be provided\n if (data.strategy === 'range' && !data.interval) {\n return false;\n }\n return true;\n}, {\n message: 'interval is required when strategy is \"range\"',\n});\n\n/**\n * Change Data Capture (CDC) Configuration Schema\n * Enables real-time data streaming to external systems\n * \n * @example Stream all changes to Kafka\n * {\n * enabled: true,\n * events: ['insert', 'update', 'delete'],\n * destination: 'kafka://events.objectstack'\n * }\n */\nexport const CDCConfigSchema = z.object({\n enabled: z.boolean().describe('Enable Change Data Capture'),\n events: z.array(z.enum(['insert', 'update', 'delete'])).describe('Event types to capture'),\n destination: z.string().describe('Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")'),\n});\n\n/**\n * Base Object Schema Definition\n * \n * The Blueprint of a Business Object.\n * Represents a table, a collection, or a virtual entity.\n * \n * @example\n * ```yaml\n * name: project_task\n * label: Project Task\n * icon: task\n * fields:\n * project:\n * type: lookup\n * reference: project\n * status:\n * type: select\n * options: [todo, in_progress, done]\n * enable:\n * trackHistory: true\n * files: true\n * ```\n */\nconst ObjectSchemaBase = z.object({\n /** \n * Identity & Metadata \n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine unique key (snake_case). Immutable.'),\n label: z.string().optional().describe('Human readable singular label (e.g. \"Account\")'),\n pluralLabel: z.string().optional().describe('Human readable plural label (e.g. \"Accounts\")'),\n description: z.string().optional().describe('Developer documentation / description'),\n icon: z.string().optional().describe('Icon name (Lucide/Material) for UI representation'),\n \n /**\n * Taxonomy & Organization\n */\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g. \"sales\", \"system\", \"reference\")'),\n active: z.boolean().optional().default(true).describe('Is the object active and usable'),\n isSystem: z.boolean().optional().default(false).describe('Is system object (protected from deletion)'),\n abstract: z.boolean().optional().default(false).describe('Is abstract base object (cannot be instantiated)'),\n\n /** \n * Storage & Virtualization \n */\n datasource: z.string().optional().default('default').describe('Target Datasource ID. \"default\" is the primary DB.'),\n tableName: z.string().optional().describe('Physical table/collection name in the target datasource'),\n \n /** \n * Data Model \n */\n fields: z.record(z.string().regex(/^[a-z_][a-z0-9_]*$/, {\n message: 'Field names must be lowercase snake_case (e.g., \"first_name\", \"company\", \"annual_revenue\")',\n }), FieldSchema).describe('Field definitions map. Keys must be snake_case identifiers.'),\n indexes: z.array(IndexSchema).optional().describe('Database performance indexes'),\n \n /**\n * Advanced Data Management\n */\n \n // Multi-tenancy configuration\n tenancy: TenancyConfigSchema.optional().describe('Multi-tenancy configuration for SaaS applications'),\n \n // Soft delete configuration\n softDelete: SoftDeleteConfigSchema.optional().describe('Soft delete (trash/recycle bin) configuration'),\n \n // Versioning configuration\n versioning: VersioningConfigSchema.optional().describe('Record versioning and history tracking configuration'),\n \n // Partitioning strategy\n partitioning: PartitioningConfigSchema.optional().describe('Table partitioning configuration for performance'),\n \n // Change Data Capture\n cdc: CDCConfigSchema.optional().describe('Change Data Capture (CDC) configuration for real-time data streaming'),\n \n /**\n * Logic & Validation (Co-located)\n * Best Practice: Define rules close to data.\n */\n validations: z.array(ValidationRuleSchema).optional().describe('Object-level validation rules'),\n\n /** \n * Display & UI Hints (Data-Layer)\n */\n titleFormat: z.string().optional().describe('Title expression (e.g. \"{name} - {code}\"). Overrides nameField.'),\n compactLayout: z.array(z.string()).optional().describe('Primary fields for hover/cards/lookups'),\n \n /** \n * Search Engine Config \n */\n search: SearchConfigSchema.optional().describe('Search engine configuration'),\n \n /** \n * System Capabilities \n */\n enable: ObjectCapabilities.optional().describe('Enabled system features modules'),\n});\n\n/**\n * Enhanced ObjectSchema with Factory\n */\nexport const ObjectSchema = Object.assign(ObjectSchemaBase, {\n create: <T extends z.input<typeof ObjectSchemaBase>>(config: T) => config,\n});\n\nexport type ServiceObject = z.infer<typeof ObjectSchemaBase>;\nexport type ObjectCapabilities = z.infer<typeof ObjectCapabilities>;\nexport type ObjectIndex = z.infer<typeof IndexSchema>;\nexport type TenancyConfig = z.infer<typeof TenancyConfigSchema>;\nexport type SoftDeleteConfig = z.infer<typeof SoftDeleteConfigSchema>;\nexport type VersioningConfig = z.infer<typeof VersioningConfigSchema>;\nexport type PartitioningConfig = z.infer<typeof PartitioningConfigSchema>;\nexport type CDCConfig = z.infer<typeof CDCConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # ObjectStack Validation Protocol\n * \n * This module defines the validation schema protocol for ObjectStack, providing a comprehensive\n * type-safe validation system similar to Salesforce's validation rules but with enhanced capabilities.\n * \n * ## Overview\n * \n * Validation rules are applied at the data layer to ensure data integrity and enforce business logic.\n * The system supports multiple validation types:\n * \n * 1. **Script Validation**: Formula-based validation using expressions\n * 2. **Uniqueness Validation**: Enforce unique constraints across fields\n * 3. **State Machine Validation**: Control allowed state transitions\n * 4. **Format Validation**: Validate field formats (email, URL, regex, etc.)\n * 5. **Cross-Field Validation**: Validate relationships between multiple fields\n * 6. **Async Validation**: Remote validation via API calls\n * 7. **Custom Validation**: User-defined validation functions\n * 8. **Conditional Validation**: Apply validations based on conditions\n * \n * ## Salesforce Comparison\n * \n * ObjectStack validation rules are inspired by Salesforce validation rules but enhanced:\n * - Salesforce: Formula-based validation with `Error Condition Formula`\n * - ObjectStack: Multiple validation types with composable rules\n * \n * Example Salesforce validation rule:\n * ```\n * Rule Name: Discount_Cannot_Exceed_40_Percent\n * Error Condition Formula: Discount_Percent__c > 0.40\n * Error Message: Discount cannot exceed 40%.\n * ```\n * \n * Equivalent ObjectStack rule:\n * ```typescript\n * {\n * type: 'script',\n * name: 'discount_cannot_exceed_40_percent',\n * condition: 'discount_percent > 0.40',\n * message: 'Discount cannot exceed 40%',\n * severity: 'error'\n * }\n * ```\n */\n\n/**\n * Base Validation Rule\n * \n * All validation rules extend from this base schema with common properties.\n * \n * ## Industry Standard Enhancements\n * - **Label/Description**: Essential for governance in large systems with thousands of rules.\n * - **Events**: granular control over validation timing (Context-aware validation).\n * - **Tags**: categorization for reporting and management.\n */\nconst BaseValidationSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label for the rule listing'),\n description: z.string().optional().describe('Administrative notes explaining the business reason'),\n \n // Execution Control\n active: z.boolean().default(true),\n events: z.array(z.enum(['insert', 'update', 'delete'])).default(['insert', 'update']).describe('Validation contexts'),\n \n // Classification\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g., \"compliance\", \"billing\")'),\n \n // Feedback\n severity: z.enum(['error', 'warning', 'info']).default('error'),\n message: z.string().describe('Error message to display to the user'),\n});\n\n/**\n * 1. Script/Expression Validation\n * Generic formula-based validation.\n */\nexport const ScriptValidationSchema = BaseValidationSchema.extend({\n type: z.literal('script'),\n condition: z.string().describe('Formula expression. If TRUE, validation fails. (e.g. amount < 0)'),\n});\n\n/**\n * 2. Uniqueness Validation\n * specialized optimized check for unique constraints.\n */\nexport const UniquenessValidationSchema = BaseValidationSchema.extend({\n type: z.literal('unique'),\n fields: z.array(z.string()).describe('Fields that must be combined unique'),\n scope: z.string().optional().describe('Formula condition for scope (e.g. active = true)'),\n caseSensitive: z.boolean().default(true),\n});\n\n/**\n * 3. State Machine Validation\n * State transition logic.\n */\nexport const StateMachineValidationSchema = BaseValidationSchema.extend({\n type: z.literal('state_machine'),\n field: z.string().describe('State field (e.g. status)'),\n transitions: z.record(z.string(), z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'),\n});\n\n/**\n * 4. Value Format Validation\n * Regex or specialized formats.\n */\nexport const FormatValidationSchema = BaseValidationSchema.extend({\n type: z.literal('format'),\n field: z.string(),\n regex: z.string().optional(),\n format: z.enum(['email', 'url', 'phone', 'json']).optional(),\n});\n\n/**\n * 5. Cross-Field Validation\n * Validates relationships between multiple fields.\n * \n * ## Use Cases\n * - Date range validations (end_date > start_date)\n * - Amount comparisons (discount < total)\n * - Complex business rules involving multiple fields\n * \n * ## Salesforce Examples\n * \n * ### Example 1: Close Date Must Be In Current or Future Month\n * **Salesforce Formula:**\n * ```\n * MONTH(CloseDate) < MONTH(TODAY()) ||\n * YEAR(CloseDate) < YEAR(TODAY())\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'close_date_future',\n * condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',\n * fields: ['close_date'],\n * message: 'Close Date must be in the current or a future month'\n * }\n * ```\n * \n * ### Example 2: Discount Validation\n * **Salesforce Formula:**\n * ```\n * Discount__c > (Amount__c * 0.40)\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'discount_limit',\n * condition: 'discount > (amount * 0.40)',\n * fields: ['discount', 'amount'],\n * message: 'Discount cannot exceed 40% of the amount'\n * }\n * ```\n * \n * ### Example 3: Opportunity Must Have Products\n * **Salesforce Formula:**\n * ```\n * ISBLANK(Products__c) && ISPICKVAL(StageName, \"Closed Won\")\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'products_required_for_won',\n * condition: 'products = null AND stage = \"closed_won\"',\n * fields: ['products', 'stage'],\n * message: 'Opportunity must have products to be marked as Closed Won'\n * }\n * ```\n */\nexport const CrossFieldValidationSchema = BaseValidationSchema.extend({\n type: z.literal('cross_field'),\n condition: z.string().describe('Formula expression comparing fields (e.g. \"end_date > start_date\")'),\n fields: z.array(z.string()).describe('Fields involved in the validation'),\n});\n\n/**\n * 6. JSON Structure Validation\n * Validates JSON fields against a JSON Schema.\n * \n * ## Use Cases\n * - Validating configuration objects stored in JSON fields\n * - Enforcing API payload structures\n * - Complex nested data validation\n */\nexport const JSONValidationSchema = BaseValidationSchema.extend({\n type: z.literal('json_schema'),\n field: z.string().describe('JSON field to validate'),\n schema: z.record(z.string(), z.any()).describe('JSON Schema object definition'),\n});\n\n/**\n * 7. Async Validation\n * Remote validation via API call or database query.\n * \n * ## Use Cases\n * \n * ### 1. Email Uniqueness Check\n * Check if an email address is already registered in the system.\n * ```typescript\n * {\n * type: 'async',\n * name: 'unique_email',\n * field: 'email',\n * validatorUrl: '/api/users/check-email',\n * message: 'This email address is already registered',\n * debounce: 500, // Wait 500ms after user stops typing\n * timeout: 3000\n * }\n * ```\n * \n * ### 2. Username Availability\n * Verify username is available before form submission.\n * ```typescript\n * {\n * type: 'async',\n * name: 'username_available',\n * field: 'username',\n * validatorUrl: '/api/users/check-username',\n * message: 'This username is already taken',\n * debounce: 300,\n * timeout: 2000\n * }\n * ```\n * \n * ### 3. Tax ID Validation\n * Validate tax ID with government API (e.g., IRS, HMRC).\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_tax_id',\n * field: 'tax_id',\n * validatorFunction: 'validateTaxIdWithIRS',\n * message: 'Invalid Tax ID number',\n * timeout: 10000, // Government APIs may be slow\n * params: { country: 'US', format: 'EIN' }\n * }\n * ```\n * \n * ### 4. Credit Card Validation\n * Verify credit card with payment gateway without charging.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_card',\n * field: 'card_number',\n * validatorUrl: 'https://api.stripe.com/v1/tokens/validate',\n * message: 'Invalid credit card number',\n * timeout: 5000,\n * params: { \n * mode: 'validate_only',\n * checkFunds: false \n * }\n * }\n * ```\n * \n * ### 5. Address Validation\n * Validate and standardize addresses using geocoding services.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_address',\n * field: 'street_address',\n * validatorFunction: 'validateAddressWithGoogleMaps',\n * message: 'Unable to verify address',\n * timeout: 4000,\n * params: {\n * includeFields: ['city', 'state', 'zip'],\n * strictMode: true,\n * country: 'US'\n * }\n * }\n * ```\n * \n * ### 6. Domain Name Availability\n * Check if domain name is available for registration.\n * ```typescript\n * {\n * type: 'async',\n * name: 'domain_available',\n * field: 'domain_name',\n * validatorUrl: '/api/domains/check-availability',\n * message: 'This domain is already taken or reserved',\n * debounce: 500,\n * timeout: 2000\n * }\n * ```\n * \n * ### 7. Coupon Code Validation\n * Verify coupon code is valid and not expired.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_coupon',\n * field: 'coupon_code',\n * validatorUrl: '/api/coupons/validate',\n * message: 'Invalid or expired coupon code',\n * timeout: 2000,\n * params: {\n * checkExpiration: true,\n * checkUsageLimit: true,\n * userId: '{{current_user_id}}'\n * }\n * }\n * ```\n */\nexport const AsyncValidationSchema = BaseValidationSchema.extend({\n type: z.literal('async'),\n field: z.string().describe('Field to validate'),\n validatorUrl: z.string().optional().describe('External API endpoint for validation'),\n method: z.enum(['GET', 'POST']).default('GET').describe('HTTP method for external call'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom headers for the request'),\n validatorFunction: z.string().optional().describe('Reference to custom validator function'),\n timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'),\n debounce: z.number().optional().describe('Debounce delay in milliseconds'),\n params: z.record(z.string(), z.any()).optional().describe('Additional parameters to pass to validator'),\n});\n\n/**\n * 8. Custom Validator Function\n * User-defined validation logic with code reference.\n */\nexport const CustomValidatorSchema = BaseValidationSchema.extend({\n type: z.literal('custom'),\n handler: z.string().describe('Name of the custom validation function registered in the system'),\n params: z.record(z.string(), z.any()).optional().describe('Parameters passed to the custom handler'),\n});\n\n/**\n * 9. Master Validation Rule Schema\n */\nexport const ValidationRuleSchema: z.ZodType<any> = z.lazy(() =>\n z.discriminatedUnion('type', [\n ScriptValidationSchema,\n UniquenessValidationSchema,\n StateMachineValidationSchema,\n FormatValidationSchema,\n CrossFieldValidationSchema,\n JSONValidationSchema,\n AsyncValidationSchema,\n CustomValidatorSchema,\n ConditionalValidationSchema,\n ])\n);\n\n/**\n * 8. Conditional Validation\n * Validation that only applies when a condition is met.\n * \n * ## Overview\n * Conditional validations follow the pattern: \"Validate X only if Y is true\"\n * This allows for context-aware validation rules that adapt to different scenarios.\n * \n * ## Use Cases\n * \n * ### 1. Validate Based on Record Type\n * Apply different validation rules based on the type of record.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_approval_required',\n * when: 'account_type = \"enterprise\"',\n * message: 'Enterprise validation',\n * then: {\n * type: 'script',\n * name: 'require_approval',\n * message: 'Enterprise accounts require manager approval',\n * condition: 'approval_status = null'\n * }\n * }\n * ```\n * \n * ### 2. Conditional Field Requirements\n * Require certain fields only when specific conditions are met.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'shipping_address_when_required',\n * when: 'requires_shipping = true',\n * message: 'Shipping validation',\n * then: {\n * type: 'script',\n * name: 'shipping_address_required',\n * message: 'Shipping address is required for physical products',\n * condition: 'shipping_address = null OR shipping_address = \"\"'\n * }\n * }\n * ```\n * \n * ### 3. Amount-Based Validation\n * Apply different rules based on transaction amount.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'high_value_approval',\n * when: 'order_total > 10000',\n * message: 'High value order validation',\n * then: {\n * type: 'script',\n * name: 'manager_approval_required',\n * message: 'Orders over $10,000 require manager approval',\n * condition: 'manager_approval_id = null'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'standard_validation',\n * message: 'Payment method is required',\n * condition: 'payment_method = null'\n * }\n * }\n * ```\n * \n * ### 4. Regional Compliance\n * Apply region-specific validation rules.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'regional_compliance',\n * when: 'region = \"EU\"',\n * message: 'EU compliance validation',\n * then: {\n * type: 'script',\n * name: 'gdpr_consent',\n * message: 'GDPR consent is required for EU customers',\n * condition: 'gdpr_consent_given = false'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'tos_acceptance',\n * message: 'Terms of Service acceptance required',\n * condition: 'tos_accepted = false'\n * }\n * }\n * ```\n * \n * ### 5. Nested Conditional Validation\n * Create complex validation logic with nested conditions.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'country_state_validation',\n * when: 'country = \"US\"',\n * message: 'US-specific validation',\n * then: {\n * type: 'conditional',\n * name: 'california_validation',\n * when: 'state = \"CA\"',\n * message: 'California-specific validation',\n * then: {\n * type: 'script',\n * name: 'ca_tax_id_required',\n * message: 'California requires a valid tax ID',\n * condition: 'tax_id = null OR NOT(REGEX(tax_id, \"^\\\\d{2}-\\\\d{7}$\"))'\n * }\n * }\n * }\n * ```\n * \n * ### 6. Tax Validation for Taxable Items\n * Only validate tax fields when the item is taxable.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'tax_field_validation',\n * when: 'is_taxable = true',\n * message: 'Tax validation',\n * then: {\n * type: 'script',\n * name: 'tax_code_required',\n * message: 'Tax code is required for taxable items',\n * condition: 'tax_code = null OR tax_code = \"\"'\n * }\n * }\n * ```\n * \n * ### 7. Role-Based Validation\n * Apply validation based on user role.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'role_based_approval_limit',\n * when: 'user_role = \"manager\"',\n * message: 'Manager approval limits',\n * then: {\n * type: 'script',\n * name: 'manager_limit',\n * message: 'Managers can approve up to $50,000',\n * condition: 'approval_amount > 50000'\n * }\n * }\n * ```\n * \n * ## Salesforce Pattern Comparison\n * \n * Salesforce doesn't have explicit \"conditional validation\" rules but achieves similar\n * behavior using formula logic. ObjectStack makes this pattern explicit and composable.\n * \n * **Salesforce Approach:**\n * ```\n * IF(\n * ISPICKVAL(Type, \"Enterprise\"),\n * AND(Amount > 100000, ISBLANK(Approval__c)),\n * FALSE\n * )\n * ```\n * \n * **ObjectStack Approach:**\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_high_value',\n * when: 'type = \"enterprise\"',\n * then: {\n * type: 'cross_field',\n * name: 'amount_approval',\n * condition: 'amount > 100000 AND approval = null',\n * fields: ['amount', 'approval']\n * }\n * }\n * ```\n */\nexport const ConditionalValidationSchema = BaseValidationSchema.extend({\n type: z.literal('conditional'),\n when: z.string().describe('Condition formula (e.g. \"type = \\'enterprise\\'\")'),\n then: ValidationRuleSchema.describe('Validation rule to apply when condition is true'),\n otherwise: ValidationRuleSchema.optional().describe('Validation rule to apply when condition is false'),\n});\n\nexport type ValidationRule = z.infer<typeof ValidationRuleSchema>;\nexport type ScriptValidation = z.infer<typeof ScriptValidationSchema>;\nexport type UniquenessValidation = z.infer<typeof UniquenessValidationSchema>;\nexport type StateMachineValidation = z.infer<typeof StateMachineValidationSchema>;\nexport type FormatValidation = z.infer<typeof FormatValidationSchema>;\nexport type CrossFieldValidation = z.infer<typeof CrossFieldValidationSchema>;\nexport type JSONValidation = z.infer<typeof JSONValidationSchema>;\nexport type AsyncValidation = z.infer<typeof AsyncValidationSchema>;\nexport type CustomValidation = z.infer<typeof CustomValidatorSchema>;\nexport type ConditionalValidation = z.infer<typeof ConditionalValidationSchema>;"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ai/agent.zod.ts","../../src/automation/state-machine.zod.ts","../../src/shared/identifiers.zod.ts","../../src/ai/agent-action.zod.ts","../../src/ai/devops-agent.zod.ts","../../src/ai/plugin-development.zod.ts","../../src/ai/runtime-ops.zod.ts","../../src/kernel/plugin-lifecycle-advanced.zod.ts","../../src/ai/model-registry.zod.ts","../../src/ai/rag-pipeline.zod.ts","../../src/ai/cost.zod.ts","../../src/ai/nlq.zod.ts","../../src/ai/orchestration.zod.ts","../../src/ai/predictive.zod.ts","../../src/ai/conversation.zod.ts","../../src/ai/feedback-loop.zod.ts","../../src/system/migration.zod.ts","../../src/data/field.zod.ts","../../src/system/encryption.zod.ts","../../src/system/masking.zod.ts","../../src/data/object.zod.ts","../../src/data/validation.zod.ts"],"sourcesContent":["import { z } from 'zod';\nimport { StateMachineSchema } from '../automation/state-machine.zod';\n\n/**\n * AI Model Configuration\n */\nexport const AIModelConfigSchema = z.object({\n provider: z.enum(['openai', 'azure_openai', 'anthropic', 'local']).default('openai'),\n model: z.string().describe('Model name (e.g. gpt-4, claude-3-opus)'),\n temperature: z.number().min(0).max(2).default(0.7),\n maxTokens: z.number().optional(),\n topP: z.number().optional(),\n});\n\n/**\n * AI Tool Definition\n * References to Actions, Flows, or Objects available to the Agent.\n */\nexport const AIToolSchema = z.object({\n type: z.enum(['action', 'flow', 'query', 'vector_search']),\n name: z.string().describe('Reference name (Action Name, Flow Name)'),\n description: z.string().optional().describe('Override description for the LLM'),\n});\n\n/**\n * AI Knowledge Base\n * RAG configuration.\n */\nexport const AIKnowledgeSchema = z.object({\n topics: z.array(z.string()).describe('Topics/Tags to recruit knowledge from'),\n indexes: z.array(z.string()).describe('Vector Store Indexes'),\n});\n\n/**\n * AI Agent Schema\n * Definition of an autonomous agent specialized for a domain.\n * \n * @example Customer Support Agent\n * {\n * name: \"support_tier_1\",\n * label: \"First Line Support\",\n * role: \"Help Desk Assistant\",\n * instructions: \"You are a helpful assistant. Always verify user identity first.\",\n * model: {\n * provider: \"openai\",\n * model: \"gpt-4-turbo\",\n * temperature: 0.3\n * },\n * tools: [\n * { type: \"flow\", name: \"reset_password\", description: \"Trigger password reset email\" },\n * { type: \"query\", name: \"get_order_status\", description: \"Check order shipping status\" }\n * ],\n * knowledge: {\n * topics: [\"faq\", \"policies\"],\n * indexes: [\"support_docs\"]\n * }\n * }\n */\nexport const AgentSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Agent unique identifier'),\n label: z.string().describe('Agent display name'),\n avatar: z.string().optional(),\n role: z.string().describe('The persona/role (e.g. \"Senior Support Engineer\")'),\n \n /** Cognition */\n instructions: z.string().describe('System Prompt / Prime Directives'),\n model: AIModelConfigSchema.optional(),\n lifecycle: StateMachineSchema.optional().describe('State machine defining the agent conversation follow and constraints'),\n \n /** Capabilities */\n tools: z.array(AIToolSchema).optional().describe('Available tools'),\n knowledge: AIKnowledgeSchema.optional().describe('RAG access'),\n \n /** Interface */\n active: z.boolean().default(true),\n access: z.array(z.string()).optional().describe('Who can chat with this agent'),\n\n /** Multi-tenancy & Visibility */\n tenantId: z.string().optional().describe('Tenant/Organization ID'),\n visibility: z.enum(['global', 'organization', 'private']).default('organization'),\n});\n\nexport type Agent = z.infer<typeof AgentSchema>;\nexport type AITool = z.infer<typeof AIToolSchema>;\n","import { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * XState-inspired State Machine Protocol\n * Used to define strict business logic constraints and lifecycle management.\n * Prevent AI \"hallucinations\" by enforcing valid valid transitions.\n */\n\n// --- Primitives ---\n\n/**\n * References a named action (side effect)\n * Can be a script, a webhook, or a field update.\n */\nexport const ActionRefSchema = z.union([\n z.string().describe('Action Name'),\n z.object({\n type: z.string(), // e.g., 'xstate.assign', 'log', 'email'\n params: z.record(z.string(), z.any()).optional()\n })\n]);\n\n/**\n * References a named condition (guard)\n * Must evaluate to true for the transition to occur.\n */\nexport const GuardRefSchema = z.union([\n z.string().describe('Guard Name (e.g., \"isManager\", \"amountGT1000\")'),\n z.object({\n type: z.string(),\n params: z.record(z.string(), z.any()).optional()\n })\n]);\n\n// --- Core Structure ---\n\n/**\n * State Transition Definition\n * \"When EVENT happens, if GUARD is true, go to TARGET and run ACTIONS\"\n */\nexport const TransitionSchema = z.object({\n target: z.string().optional().describe('Target State ID'),\n cond: GuardRefSchema.optional().describe('Condition (Guard) required to take this path'),\n actions: z.array(ActionRefSchema).optional().describe('Actions to execute during transition'),\n description: z.string().optional().describe('Human readable description of this rule'),\n});\n\n/**\n * Event Definition (Signals)\n */\nexport const EventSchema = z.object({\n type: z.string().describe('Event Type (e.g. \"APPROVE\", \"REJECT\", \"Submit\")'),\n // Payload validation schema could go here if we want deep validation\n schema: z.record(z.string(), z.any()).optional().describe('Expected event payload structure'),\n});\n\nexport type ActionRef = z.infer<typeof ActionRefSchema>;\nexport type Transition = z.infer<typeof TransitionSchema>;\n\nexport type StateNodeConfig = {\n type?: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';\n entry?: ActionRef[];\n exit?: ActionRef[];\n on?: Record<string, string | Transition | Transition[]>;\n always?: Transition[];\n initial?: string;\n states?: Record<string, StateNodeConfig>;\n meta?: {\n label?: string;\n description?: string;\n color?: string;\n aiInstructions?: string;\n };\n};\n\n/**\n * State Node Definition\n */\nexport const StateNodeSchema: z.ZodType<StateNodeConfig> = z.lazy(() => z.object({\n /** Type of state */\n type: z.enum(['atomic', 'compound', 'parallel', 'final', 'history']).default('atomic'),\n \n /** Entry/Exit Actions */\n entry: z.array(ActionRefSchema).optional().describe('Actions to run when entering this state'),\n exit: z.array(ActionRefSchema).optional().describe('Actions to run when leaving this state'),\n \n /** Transitions (Events) */\n on: z.record(z.string(), z.union([\n z.string(), // Shorthand target\n TransitionSchema, \n z.array(TransitionSchema)\n ])).optional().describe('Map of Event Type -> Transition Definition'),\n \n /** Always Transitions (Eventless) */\n always: z.array(TransitionSchema).optional(),\n\n /** Nesting (Hierarchical States) */\n initial: z.string().optional().describe('Initial child state (if compound)'),\n states: z.record(z.string(), StateNodeSchema).optional(),\n \n /** Metadata for UI/AI */\n meta: z.object({\n label: z.string().optional(),\n description: z.string().optional(),\n color: z.string().optional(), // For UI diagrams\n // Instructions for AI Agent when in this state\n aiInstructions: z.string().optional().describe('Specific instructions for AI when in this state'),\n }).optional(),\n}));\n\n/**\n * Top-Level State Machine Definition\n */\nexport const StateMachineSchema = z.object({\n id: SnakeCaseIdentifierSchema.describe('Unique Machine ID'),\n description: z.string().optional(),\n \n /** Context (Memory) Schema */\n contextSchema: z.record(z.string(), z.any()).optional().describe('Zod Schema for the machine context/memory'),\n \n /** Initial State */\n initial: z.string().describe('Initial State ID'),\n \n /** State Definitions */\n states: z.record(z.string(), StateNodeSchema).describe('State Nodes'),\n \n /** Global Listeners */\n on: z.record(z.string(), z.union([z.string(), TransitionSchema, z.array(TransitionSchema)])).optional(),\n});\n\nexport type StateMachineConfig = z.infer<typeof StateMachineSchema>;\n","import { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nexport const SystemIdentifierSchema = z\n .string()\n .min(2, { message: 'System identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n })\n .describe('System identifier (lowercase with underscores or dots)');\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = z\n .string()\n .min(2, { message: 'Identifier must be at least 2 characters' })\n .regex(/^[a-z][a-z0-9_]*$/, {\n message:\n 'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n })\n .describe('Snake case identifier (lowercase with underscores only)');\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = z\n .string()\n .min(3, { message: 'Event name must be at least 3 characters' })\n .regex(/^[a-z][a-z0-9_.]*$/, {\n message:\n 'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n })\n .describe('Event name (lowercase with dot notation for namespacing)');\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","import { z } from 'zod';\n\n/**\n * AI Agent Action Protocol\n * \n * Defines how AI agents can interact with the UI by mapping natural language intents\n * to structured UI actions. This enables agents to not only query data but also\n * manipulate the interface, navigate between views, and trigger workflows.\n * \n * Architecture Alignment:\n * - Salesforce Einstein: Action recommendations and automated UI interactions\n * - ServiceNow Virtual Agent: UI action automation\n * - Microsoft Power Virtual Agents: Bot actions and UI integration\n * \n * Use Cases:\n * - \"Open the new account form\" → Navigate to form view\n * - \"Show me all active opportunities\" → Navigate to list view with filter\n * - \"Create a new task for John\" → Open form with pre-filled data\n * - \"Switch to the kanban view\" → Change view mode\n */\n\n// ==========================================\n// UI Action Types\n// ==========================================\n\n/**\n * Navigation Action Types\n * Actions that change the current view or location\n */\nexport const NavigationActionTypeSchema = z.enum([\n 'navigate_to_object_list', // Navigate to object list view\n 'navigate_to_object_form', // Navigate to object form (new/edit)\n 'navigate_to_record_detail', // Navigate to specific record detail page\n 'navigate_to_dashboard', // Navigate to dashboard\n 'navigate_to_report', // Navigate to report view\n 'navigate_to_app', // Switch to different app\n 'navigate_back', // Go back to previous view\n 'navigate_home', // Go to home page\n 'open_tab', // Open new tab\n 'close_tab', // Close current tab\n]);\n\nexport type NavigationActionType = z.infer<typeof NavigationActionTypeSchema>;\n\n/**\n * View Manipulation Action Types\n * Actions that change how data is displayed\n */\nexport const ViewActionTypeSchema = z.enum([\n 'change_view_mode', // Switch between list/kanban/calendar/gantt\n 'apply_filter', // Apply filter to current view\n 'clear_filter', // Clear filters\n 'apply_sort', // Apply sorting\n 'change_grouping', // Change grouping (for kanban/pivot)\n 'show_columns', // Show/hide columns\n 'expand_record', // Expand record in list\n 'collapse_record', // Collapse record in list\n 'refresh_view', // Refresh current view\n 'export_data', // Export view data\n]);\n\nexport type ViewActionType = z.infer<typeof ViewActionTypeSchema>;\n\n/**\n * Form Action Types\n * Actions that interact with forms\n */\nexport const FormActionTypeSchema = z.enum([\n 'create_record', // Create new record (submit form)\n 'update_record', // Update existing record\n 'delete_record', // Delete record\n 'fill_field', // Fill a specific form field\n 'clear_field', // Clear a form field\n 'submit_form', // Submit the form\n 'cancel_form', // Cancel form editing\n 'validate_form', // Validate form data\n 'save_draft', // Save as draft\n]);\n\nexport type FormActionType = z.infer<typeof FormActionTypeSchema>;\n\n/**\n * Data Action Types\n * Actions that perform data operations\n */\nexport const DataActionTypeSchema = z.enum([\n 'select_record', // Select record(s) in list\n 'deselect_record', // Deselect record(s)\n 'select_all', // Select all records\n 'deselect_all', // Deselect all records\n 'bulk_update', // Bulk update selected records\n 'bulk_delete', // Bulk delete selected records\n 'bulk_export', // Bulk export selected records\n]);\n\nexport type DataActionType = z.infer<typeof DataActionTypeSchema>;\n\n/**\n * Workflow Action Types\n * Actions that trigger workflows or automations\n */\nexport const WorkflowActionTypeSchema = z.enum([\n 'trigger_flow', // Trigger a flow/workflow\n 'trigger_approval', // Start approval process\n 'trigger_webhook', // Trigger webhook\n 'run_report', // Run a report\n 'send_email', // Send email\n 'send_notification', // Send notification\n 'schedule_task', // Schedule a task\n]);\n\nexport type WorkflowActionType = z.infer<typeof WorkflowActionTypeSchema>;\n\n/**\n * UI Component Action Types\n * Actions that interact with UI components\n */\nexport const ComponentActionTypeSchema = z.enum([\n 'open_modal', // Open modal dialog\n 'close_modal', // Close modal dialog\n 'open_sidebar', // Open sidebar panel\n 'close_sidebar', // Close sidebar panel\n 'show_notification', // Show toast/notification\n 'hide_notification', // Hide notification\n 'open_dropdown', // Open dropdown menu\n 'close_dropdown', // Close dropdown menu\n 'toggle_section', // Toggle collapsible section\n]);\n\nexport type ComponentActionType = z.infer<typeof ComponentActionTypeSchema>;\n\n/**\n * All UI Action Types Combined\n */\nexport const UIActionTypeSchema = z.union([\n NavigationActionTypeSchema,\n ViewActionTypeSchema,\n FormActionTypeSchema,\n DataActionTypeSchema,\n WorkflowActionTypeSchema,\n ComponentActionTypeSchema,\n]);\n\nexport type UIActionType = z.infer<typeof UIActionTypeSchema>;\n\n// ==========================================\n// Action Parameters\n// ==========================================\n\n/**\n * Navigation Action Parameters\n */\nexport const NavigationActionParamsSchema = z.object({\n object: z.string().optional().describe('Object name (for object-specific navigation)'),\n recordId: z.string().optional().describe('Record ID (for detail page)'),\n viewType: z.enum(['list', 'form', 'detail', 'kanban', 'calendar', 'gantt']).optional(),\n dashboardId: z.string().optional().describe('Dashboard ID'),\n reportId: z.string().optional().describe('Report ID'),\n appName: z.string().optional().describe('App name'),\n mode: z.enum(['new', 'edit', 'view']).optional().describe('Form mode'),\n openInNewTab: z.boolean().optional().describe('Open in new tab'),\n});\n\nexport type NavigationActionParams = z.infer<typeof NavigationActionParamsSchema>;\n\n/**\n * View Action Parameters\n */\nexport const ViewActionParamsSchema = z.object({\n viewMode: z.enum(['list', 'kanban', 'calendar', 'gantt', 'pivot']).optional(),\n filters: z.record(z.string(), z.any()).optional().describe('Filter conditions'),\n sort: z.array(z.object({\n field: z.string(),\n order: z.enum(['asc', 'desc']),\n })).optional(),\n groupBy: z.string().optional().describe('Field to group by'),\n columns: z.array(z.string()).optional().describe('Columns to show/hide'),\n recordId: z.string().optional().describe('Record to expand/collapse'),\n exportFormat: z.enum(['csv', 'xlsx', 'pdf', 'json']).optional(),\n});\n\nexport type ViewActionParams = z.infer<typeof ViewActionParamsSchema>;\n\n/**\n * Form Action Parameters\n */\nexport const FormActionParamsSchema = z.object({\n object: z.string().optional().describe('Object name'),\n recordId: z.string().optional().describe('Record ID (for edit/delete)'),\n fieldValues: z.record(z.string(), z.any()).optional().describe('Field name-value pairs'),\n fieldName: z.string().optional().describe('Specific field to fill/clear'),\n fieldValue: z.any().optional().describe('Value to set'),\n validateOnly: z.boolean().optional().describe('Validate without saving'),\n});\n\nexport type FormActionParams = z.infer<typeof FormActionParamsSchema>;\n\n/**\n * Data Action Parameters\n */\nexport const DataActionParamsSchema = z.object({\n recordIds: z.array(z.string()).optional().describe('Record IDs to select/operate on'),\n filters: z.record(z.string(), z.any()).optional().describe('Filter for bulk operations'),\n updateData: z.record(z.string(), z.any()).optional().describe('Data for bulk update'),\n exportFormat: z.enum(['csv', 'xlsx', 'pdf', 'json']).optional(),\n});\n\nexport type DataActionParams = z.infer<typeof DataActionParamsSchema>;\n\n/**\n * Workflow Action Parameters\n */\nexport const WorkflowActionParamsSchema = z.object({\n flowName: z.string().optional().describe('Flow/workflow name'),\n approvalProcessName: z.string().optional().describe('Approval process name'),\n webhookUrl: z.string().optional().describe('Webhook URL'),\n reportName: z.string().optional().describe('Report name'),\n emailTemplate: z.string().optional().describe('Email template'),\n recipients: z.array(z.string()).optional().describe('Email recipients'),\n subject: z.string().optional().describe('Email subject'),\n message: z.string().optional().describe('Notification/email message'),\n taskData: z.record(z.string(), z.any()).optional().describe('Task creation data'),\n scheduleTime: z.string().optional().describe('Schedule time (ISO 8601)'),\n contextData: z.record(z.string(), z.any()).optional().describe('Additional context data'),\n});\n\nexport type WorkflowActionParams = z.infer<typeof WorkflowActionParamsSchema>;\n\n/**\n * Component Action Parameters\n */\nexport const ComponentActionParamsSchema = z.object({\n componentId: z.string().optional().describe('Component ID'),\n modalConfig: z.object({\n title: z.string().optional(),\n content: z.any().optional(),\n size: z.enum(['small', 'medium', 'large', 'fullscreen']).optional(),\n }).optional(),\n notificationConfig: z.object({\n type: z.enum(['info', 'success', 'warning', 'error']).optional(),\n message: z.string(),\n duration: z.number().optional().describe('Duration in ms'),\n }).optional(),\n sidebarConfig: z.object({\n position: z.enum(['left', 'right']).optional(),\n width: z.string().optional(),\n content: z.any().optional(),\n }).optional(),\n});\n\nexport type ComponentActionParams = z.infer<typeof ComponentActionParamsSchema>;\n\n// ==========================================\n// Agent Action Schema\n// ==========================================\n\n/**\n * Agent UI Action Schema\n * Complete definition of an AI agent's UI action\n */\nexport const AgentActionSchema = z.object({\n /**\n * Action identifier (generated)\n */\n id: z.string().optional().describe('Unique action ID'),\n \n /**\n * Action type\n */\n type: UIActionTypeSchema.describe('Type of UI action to perform'),\n \n /**\n * Action parameters (discriminated union based on type)\n */\n params: z.union([\n NavigationActionParamsSchema,\n ViewActionParamsSchema,\n FormActionParamsSchema,\n DataActionParamsSchema,\n WorkflowActionParamsSchema,\n ComponentActionParamsSchema,\n ]).describe('Action-specific parameters'),\n \n /**\n * Confirmation requirement\n */\n requireConfirmation: z.boolean().default(false).describe('Require user confirmation before executing'),\n \n /**\n * Confirmation message\n */\n confirmationMessage: z.string().optional().describe('Message to show in confirmation dialog'),\n \n /**\n * Success message\n */\n successMessage: z.string().optional().describe('Message to show on success'),\n \n /**\n * Error handling\n */\n onError: z.enum(['retry', 'skip', 'abort']).default('abort').describe('Error handling strategy'),\n \n /**\n * Execution metadata\n */\n metadata: z.object({\n intent: z.string().optional().describe('Original user intent/query'),\n confidence: z.number().min(0).max(1).optional().describe('Confidence score (0-1)'),\n agentName: z.string().optional().describe('Agent that generated this action'),\n timestamp: z.string().datetime().optional().describe('Generation timestamp (ISO 8601)'),\n }).optional(),\n});\n\n/**\n * Agent Action Typed Schemas\n * Bind params to specific action types for type safety\n */\nexport const NavigationAgentActionSchema = AgentActionSchema.extend({\n type: NavigationActionTypeSchema,\n params: NavigationActionParamsSchema,\n});\n\nexport const ViewAgentActionSchema = AgentActionSchema.extend({\n type: ViewActionTypeSchema,\n params: ViewActionParamsSchema,\n});\n\nexport const FormAgentActionSchema = AgentActionSchema.extend({\n type: FormActionTypeSchema,\n params: FormActionParamsSchema,\n});\n\nexport const DataAgentActionSchema = AgentActionSchema.extend({\n type: DataActionTypeSchema,\n params: DataActionParamsSchema,\n});\n\nexport const WorkflowAgentActionSchema = AgentActionSchema.extend({\n type: WorkflowActionTypeSchema,\n params: WorkflowActionParamsSchema,\n});\n\nexport const ComponentAgentActionSchema = AgentActionSchema.extend({\n type: ComponentActionTypeSchema,\n params: ComponentActionParamsSchema,\n});\n\n/**\n * Typed Agent Action Union\n * Replaces the generic AgentActionSchema for stricter typing where possible\n */\nexport const TypedAgentActionSchema = z.union([\n NavigationAgentActionSchema,\n ViewAgentActionSchema,\n FormAgentActionSchema,\n DataAgentActionSchema,\n WorkflowAgentActionSchema,\n ComponentAgentActionSchema,\n]);\n\nexport type AgentAction = z.infer<typeof TypedAgentActionSchema>;\n\n/**\n * Agent Action Sequence Schema\n * Multiple actions to be executed in sequence\n */\nexport const AgentActionSequenceSchema = z.object({\n /**\n * Sequence identifier\n */\n id: z.string().optional().describe('Unique sequence ID'),\n \n /**\n * Actions to execute\n */\n actions: z.array(AgentActionSchema).describe('Ordered list of actions'),\n \n /**\n * Execution mode\n */\n mode: z.enum(['sequential', 'parallel']).default('sequential').describe('Execution mode'),\n \n /**\n * Stop on first error\n */\n stopOnError: z.boolean().default(true).describe('Stop sequence on first error'),\n \n /**\n * Transaction mode (all-or-nothing)\n */\n atomic: z.boolean().default(false).describe('Transaction mode (all-or-nothing)'),\n\n startTime: z.string().datetime().optional().describe('Execution start time (ISO 8601)'),\n\n endTime: z.string().datetime().optional().describe('Execution end time (ISO 8601)'),\n /**\n * Metadata\n */\n metadata: z.object({\n intent: z.string().optional().describe('Original user intent'),\n confidence: z.number().min(0).max(1).optional().describe('Overall confidence score'),\n agentName: z.string().optional().describe('Agent that generated this sequence'),\n }).optional(),\n});\n\nexport type AgentActionSequence = z.infer<typeof AgentActionSequenceSchema>;\n\n/**\n * Agent Action Result Schema\n * Result of executing an agent action\n */\nexport const AgentActionResultSchema = z.object({\n /**\n * Action ID\n */\n actionId: z.string().describe('ID of the executed action'),\n \n /**\n * Execution status\n */\n status: z.enum(['success', 'error', 'cancelled', 'pending']).describe('Execution status'),\n \n /**\n * Result data\n */\n data: z.any().optional().describe('Action result data'),\n \n /**\n * Error information\n */\n error: z.object({\n code: z.string(),\n message: z.string(),\n details: z.any().optional(),\n }).optional().describe('Error details if status is \"error\"'),\n \n /**\n * Execution metadata\n */\n metadata: z.object({\n startTime: z.string().optional().describe('Execution start time (ISO 8601)'),\n endTime: z.string().optional().describe('Execution end time (ISO 8601)'),\n duration: z.number().optional().describe('Execution duration in ms'),\n }).optional(),\n});\n\nexport type AgentActionResult = z.infer<typeof AgentActionResultSchema>;\n\n/**\n * Agent Action Sequence Result Schema\n * Result of executing an action sequence\n */\nexport const AgentActionSequenceResultSchema = z.object({\n /**\n * Sequence ID\n */\n sequenceId: z.string().describe('ID of the executed sequence'),\n \n /**\n * Overall status\n */\n status: z.enum(['success', 'partial_success', 'error', 'cancelled']).describe('Overall execution status'),\n \n /**\n * Individual action results\n */\n results: z.array(AgentActionResultSchema).describe('Results for each action'),\n \n /**\n * Summary\n */\n summary: z.object({\n total: z.number().describe('Total number of actions'),\n successful: z.number().describe('Number of successful actions'),\n failed: z.number().describe('Number of failed actions'),\n cancelled: z.number().describe('Number of cancelled actions'),\n }),\n \n /**\n * Execution metadata\n */\n metadata: z.object({\n startTime: z.string().optional(),\n endTime: z.string().optional(),\n totalDuration: z.number().optional().describe('Total execution time in ms'),\n }).optional(),\n});\n\nexport type AgentActionSequenceResult = z.infer<typeof AgentActionSequenceResultSchema>;\n\n// ==========================================\n// Helper Schemas\n// ==========================================\n\n/**\n * Intent to Action Mapping Schema\n * Maps natural language intent patterns to UI actions\n */\nexport const IntentActionMappingSchema = z.object({\n /**\n * Intent pattern (regex or exact match)\n */\n intent: z.string().describe('Intent pattern (e.g., \"open_new_record_form\")'),\n \n /**\n * Intent examples (for training)\n */\n examples: z.array(z.string()).optional().describe('Example user queries'),\n \n /**\n * Action template\n */\n actionTemplate: AgentActionSchema.describe('Action to execute'),\n \n /**\n * Parameter extraction rules\n */\n paramExtraction: z.record(z.string(), z.object({\n type: z.enum(['entity', 'slot', 'context']),\n required: z.boolean().default(false),\n default: z.any().optional(),\n })).optional().describe('Rules for extracting parameters from user input'),\n \n /**\n * Confidence threshold\n */\n minConfidence: z.number().min(0).max(1).default(0.7).describe('Minimum confidence to execute'),\n});\n\nexport type IntentActionMapping = z.infer<typeof IntentActionMappingSchema>;\n","import { z } from 'zod';\nimport { AgentSchema, AIToolSchema } from './agent.zod';\n\n/**\n * DevOps Agent Protocol\n * \n * Defines autonomous DevOps agents that can self-iterate on enterprise\n * management software development using the ObjectStack specification.\n * \n * This agent integrates with GitHub for version control and Vercel for\n * deployment, enabling fully automated development, testing, and release cycles.\n * \n * Architecture:\n * - Self-iterating development based on ObjectStack specifications\n * - Automated code generation following best practices\n * - Continuous integration and deployment\n * - Version management and release automation\n * - Monitoring and rollback capabilities\n * \n * Use Cases:\n * - Automated feature development from specifications\n * - Self-healing code based on test failures\n * - Automated dependency updates\n * - Continuous optimization and refactoring\n * - Automated documentation generation\n * \n * @example\n * ```typescript\n * import { DevOpsAgent } from '@objectstack/spec/ai';\n * \n * const agent: DevOpsAgent = {\n * name: 'devops_automation_agent',\n * label: 'DevOps Automation Agent',\n * role: 'Senior Full-Stack DevOps Engineer',\n * instructions: '...',\n * developmentConfig: {\n * specificationSource: 'packages/spec',\n * codeGeneration: {\n * enabled: true,\n * targets: ['frontend', 'backend', 'api'],\n * },\n * },\n * integrations: {\n * github: {\n * connector: 'github_production',\n * repository: {\n * owner: 'objectstack-ai',\n * name: 'app',\n * },\n * },\n * vercel: {\n * connector: 'vercel_production',\n * project: 'objectstack-app',\n * },\n * },\n * };\n * ```\n */\n\n/**\n * Code Generation Targets\n */\nexport const CodeGenerationTargetSchema = z.enum([\n 'frontend', // Frontend UI components\n 'backend', // Backend services\n 'api', // API endpoints\n 'database', // Database schemas\n 'tests', // Test suites\n 'documentation', // Documentation\n 'infrastructure', // Infrastructure as code\n]).describe('Code generation target');\n\nexport type CodeGenerationTarget = z.infer<typeof CodeGenerationTargetSchema>;\n\n/**\n * Code Generation Configuration\n */\nexport const CodeGenerationConfigSchema = z.object({\n /**\n * Enable code generation\n */\n enabled: z.boolean().optional().default(true).describe('Enable code generation'),\n \n /**\n * Generation targets\n */\n targets: z.array(CodeGenerationTargetSchema).describe('Code generation targets'),\n \n /**\n * Template repository\n */\n templateRepo: z.string().optional().describe('Template repository for scaffolding'),\n \n /**\n * Code style guide\n */\n styleGuide: z.string().optional().describe('Code style guide to follow'),\n \n /**\n * Include tests\n */\n includeTests: z.boolean().optional().default(true).describe('Generate tests with code'),\n \n /**\n * Include documentation\n */\n includeDocumentation: z.boolean().optional().default(true).describe('Generate documentation'),\n \n /**\n * Validation mode\n */\n validationMode: z.enum(['strict', 'moderate', 'permissive']).optional().default('strict').describe('Code validation strictness'),\n});\n\nexport type CodeGenerationConfig = z.infer<typeof CodeGenerationConfigSchema>;\n\n/**\n * Testing Configuration\n */\nexport const TestingConfigSchema = z.object({\n /**\n * Enable automated testing\n */\n enabled: z.boolean().optional().default(true).describe('Enable automated testing'),\n \n /**\n * Test types to run\n */\n testTypes: z.array(z.enum([\n 'unit',\n 'integration',\n 'e2e',\n 'performance',\n 'security',\n 'accessibility',\n ])).optional().default(['unit', 'integration']).describe('Types of tests to run'),\n \n /**\n * Minimum coverage threshold\n */\n coverageThreshold: z.number().min(0).max(100).optional().default(80).describe('Minimum test coverage percentage'),\n \n /**\n * Test framework\n */\n framework: z.string().optional().describe('Testing framework (e.g., vitest, jest, playwright)'),\n \n /**\n * Run tests before commit\n */\n preCommitTests: z.boolean().optional().default(true).describe('Run tests before committing'),\n \n /**\n * Auto-fix failing tests\n */\n autoFix: z.boolean().optional().default(false).describe('Attempt to auto-fix failing tests'),\n});\n\nexport type TestingConfig = z.infer<typeof TestingConfigSchema>;\n\n/**\n * CI/CD Pipeline Stage\n */\nexport const PipelineStageSchema = z.object({\n /**\n * Stage name\n */\n name: z.string().describe('Pipeline stage name'),\n \n /**\n * Stage type\n */\n type: z.enum([\n 'build',\n 'test',\n 'lint',\n 'security_scan',\n 'deploy',\n 'smoke_test',\n 'rollback',\n ]).describe('Stage type'),\n \n /**\n * Stage order\n */\n order: z.number().int().min(0).describe('Execution order'),\n \n /**\n * Run in parallel\n */\n parallel: z.boolean().optional().default(false).describe('Can run in parallel with other stages'),\n \n /**\n * Commands to execute\n */\n commands: z.array(z.string()).describe('Commands to execute'),\n \n /**\n * Environment variables\n */\n env: z.record(z.string(), z.string()).optional().describe('Stage-specific environment variables'),\n \n /**\n * Timeout in seconds\n */\n timeout: z.number().int().min(60).optional().default(600).describe('Stage timeout in seconds'),\n \n /**\n * Retry on failure\n */\n retryOnFailure: z.boolean().optional().default(false).describe('Retry stage on failure'),\n \n /**\n * Max retry attempts\n */\n maxRetries: z.number().int().min(0).max(5).optional().default(0).describe('Maximum retry attempts'),\n});\n\nexport type PipelineStage = z.infer<typeof PipelineStageSchema>;\n\n/**\n * CI/CD Pipeline Configuration\n */\nexport const CICDPipelineConfigSchema = z.object({\n /**\n * Pipeline name\n */\n name: z.string().describe('Pipeline name'),\n \n /**\n * Pipeline trigger\n */\n trigger: z.enum([\n 'push',\n 'pull_request',\n 'release',\n 'schedule',\n 'manual',\n ]).describe('Pipeline trigger'),\n \n /**\n * Branch filters\n */\n branches: z.array(z.string()).optional().describe('Branches to run pipeline on'),\n \n /**\n * Pipeline stages\n */\n stages: z.array(PipelineStageSchema).describe('Pipeline stages'),\n \n /**\n * Enable notifications\n */\n notifications: z.object({\n onSuccess: z.boolean().optional().default(false),\n onFailure: z.boolean().optional().default(true),\n channels: z.array(z.string()).optional().describe('Notification channels (e.g., slack, email)'),\n }).optional().describe('Pipeline notifications'),\n});\n\nexport type CICDPipelineConfig = z.infer<typeof CICDPipelineConfigSchema>;\n\n/**\n * Version Management Configuration\n */\nexport const VersionManagementSchema = z.object({\n /**\n * Versioning scheme\n */\n scheme: z.enum(['semver', 'calver', 'custom']).optional().default('semver').describe('Versioning scheme'),\n \n /**\n * Auto-increment strategy\n */\n autoIncrement: z.enum(['major', 'minor', 'patch', 'none']).optional().default('patch').describe('Auto-increment strategy'),\n \n /**\n * Version prefix\n */\n prefix: z.string().optional().default('v').describe('Version tag prefix'),\n \n /**\n * Create changelog\n */\n generateChangelog: z.boolean().optional().default(true).describe('Generate changelog automatically'),\n \n /**\n * Changelog format\n */\n changelogFormat: z.enum(['conventional', 'keepachangelog', 'custom']).optional().default('conventional').describe('Changelog format'),\n \n /**\n * Tag releases\n */\n tagReleases: z.boolean().optional().default(true).describe('Create Git tags for releases'),\n});\n\nexport type VersionManagement = z.infer<typeof VersionManagementSchema>;\n\n/**\n * Deployment Strategy Configuration\n */\nexport const DeploymentStrategySchema = z.object({\n /**\n * Strategy type\n */\n type: z.enum([\n 'rolling',\n 'blue_green',\n 'canary',\n 'recreate',\n ]).optional().default('rolling').describe('Deployment strategy'),\n \n /**\n * Canary percentage (for canary deployments)\n */\n canaryPercentage: z.number().min(0).max(100).optional().default(10).describe('Canary deployment percentage'),\n \n /**\n * Health check URL\n */\n healthCheckUrl: z.string().optional().describe('Health check endpoint'),\n \n /**\n * Health check timeout\n */\n healthCheckTimeout: z.number().int().min(10).optional().default(60).describe('Health check timeout in seconds'),\n \n /**\n * Rollback on failure\n */\n autoRollback: z.boolean().optional().default(true).describe('Automatically rollback on failure'),\n \n /**\n * Smoke tests\n */\n smokeTests: z.array(z.string()).optional().describe('Smoke test commands to run post-deployment'),\n});\n\nexport type DeploymentStrategy = z.infer<typeof DeploymentStrategySchema>;\n\n/**\n * Monitoring Configuration\n */\nexport const MonitoringConfigSchema = z.object({\n /**\n * Enable monitoring\n */\n enabled: z.boolean().optional().default(true).describe('Enable monitoring'),\n \n /**\n * Metrics to track\n */\n metrics: z.array(z.enum([\n 'performance',\n 'errors',\n 'usage',\n 'availability',\n 'latency',\n ])).optional().default(['performance', 'errors', 'availability']).describe('Metrics to monitor'),\n \n /**\n * Alert thresholds\n */\n alerts: z.array(z.object({\n name: z.string().describe('Alert name'),\n metric: z.string().describe('Metric to monitor'),\n threshold: z.number().describe('Alert threshold'),\n severity: z.enum(['info', 'warning', 'critical']).describe('Alert severity'),\n })).optional().describe('Alert configurations'),\n \n /**\n * Monitoring integrations\n */\n integrations: z.array(z.string()).optional().describe('Monitoring service integrations'),\n});\n\nexport type MonitoringConfig = z.infer<typeof MonitoringConfigSchema>;\n\n/**\n * Development Configuration\n */\nexport const DevelopmentConfigSchema = z.object({\n /**\n * ObjectStack specification source\n */\n specificationSource: z.string().describe('Path to ObjectStack specification'),\n \n /**\n * Code generation configuration\n */\n codeGeneration: CodeGenerationConfigSchema.describe('Code generation settings'),\n \n /**\n * Testing configuration\n */\n testing: TestingConfigSchema.optional().describe('Testing configuration'),\n \n /**\n * Linting configuration\n */\n linting: z.object({\n enabled: z.boolean().optional().default(true),\n autoFix: z.boolean().optional().default(true),\n rules: z.record(z.string(), z.any()).optional(),\n }).optional().describe('Code linting configuration'),\n \n /**\n * Formatting configuration\n */\n formatting: z.object({\n enabled: z.boolean().optional().default(true),\n autoFormat: z.boolean().optional().default(true),\n config: z.record(z.string(), z.any()).optional(),\n }).optional().describe('Code formatting configuration'),\n});\n\nexport type DevelopmentConfig = z.infer<typeof DevelopmentConfigSchema>;\n\n/**\n * GitHub Integration Configuration\n */\nexport const GitHubIntegrationSchema = z.object({\n /**\n * GitHub connector reference\n */\n connector: z.string().describe('GitHub connector name'),\n \n /**\n * Repository configuration\n */\n repository: z.object({\n owner: z.string().describe('Repository owner'),\n name: z.string().describe('Repository name'),\n }).describe('Repository configuration'),\n \n /**\n * Default branch for features\n */\n featureBranch: z.string().optional().default('develop').describe('Default feature branch'),\n \n /**\n * Pull request configuration\n */\n pullRequest: z.object({\n autoCreate: z.boolean().optional().default(true).describe('Automatically create PRs'),\n autoMerge: z.boolean().optional().default(false).describe('Automatically merge PRs when checks pass'),\n requireReviews: z.boolean().optional().default(true).describe('Require reviews before merge'),\n deleteBranchOnMerge: z.boolean().optional().default(true).describe('Delete feature branch after merge'),\n }).optional().describe('Pull request settings'),\n});\n\nexport type GitHubIntegration = z.infer<typeof GitHubIntegrationSchema>;\n\n/**\n * Vercel Integration Configuration\n */\nexport const VercelIntegrationSchema = z.object({\n /**\n * Vercel connector reference\n */\n connector: z.string().describe('Vercel connector name'),\n \n /**\n * Project name\n */\n project: z.string().describe('Vercel project name'),\n \n /**\n * Environment mapping\n */\n environments: z.object({\n production: z.string().optional().default('main').describe('Production branch'),\n preview: z.array(z.string()).optional().default(['develop', 'feature/*']).describe('Preview branches'),\n }).optional().describe('Environment mapping'),\n \n /**\n * Deployment configuration\n */\n deployment: z.object({\n autoDeployProduction: z.boolean().optional().default(false).describe('Auto-deploy to production'),\n autoDeployPreview: z.boolean().optional().default(true).describe('Auto-deploy preview environments'),\n requireApproval: z.boolean().optional().default(true).describe('Require approval for production deployments'),\n }).optional().describe('Deployment settings'),\n});\n\nexport type VercelIntegration = z.infer<typeof VercelIntegrationSchema>;\n\n/**\n * Integration Configuration\n */\nexport const IntegrationConfigSchema = z.object({\n /**\n * GitHub integration\n */\n github: GitHubIntegrationSchema.describe('GitHub integration configuration'),\n \n /**\n * Vercel integration\n */\n vercel: VercelIntegrationSchema.describe('Vercel integration configuration'),\n \n /**\n * Additional integrations\n */\n additional: z.record(z.string(), z.any()).optional().describe('Additional integration configurations'),\n});\n\nexport type IntegrationConfig = z.infer<typeof IntegrationConfigSchema>;\n\n/**\n * DevOps Agent Schema\n * Complete autonomous DevOps agent configuration\n */\nexport const DevOpsAgentSchema = AgentSchema.extend({\n /**\n * Development configuration\n */\n developmentConfig: DevelopmentConfigSchema.describe('Development configuration'),\n \n /**\n * CI/CD pipelines\n */\n pipelines: z.array(CICDPipelineConfigSchema).optional().describe('CI/CD pipelines'),\n \n /**\n * Version management\n */\n versionManagement: VersionManagementSchema.optional().describe('Version management configuration'),\n \n /**\n * Deployment strategy\n */\n deploymentStrategy: DeploymentStrategySchema.optional().describe('Deployment strategy'),\n \n /**\n * Monitoring configuration\n */\n monitoring: MonitoringConfigSchema.optional().describe('Monitoring configuration'),\n \n /**\n * Integration configuration\n */\n integrations: IntegrationConfigSchema.describe('Integration configurations'),\n \n /**\n * Self-iteration configuration\n */\n selfIteration: z.object({\n enabled: z.boolean().optional().default(true).describe('Enable self-iteration'),\n iterationFrequency: z.string().optional().describe('Iteration frequency (cron expression)'),\n optimizationGoals: z.array(z.enum([\n 'performance',\n 'security',\n 'code_quality',\n 'test_coverage',\n 'documentation',\n ])).optional().describe('Optimization goals'),\n learningMode: z.enum(['conservative', 'balanced', 'aggressive']).optional().default('balanced').describe('Learning mode'),\n }).optional().describe('Self-iteration configuration'),\n});\n\nexport type DevOpsAgent = z.infer<typeof DevOpsAgentSchema>;\n\n/**\n * DevOps Tools Extension\n * Additional tools available to DevOps agents\n */\nexport const DevOpsToolSchema = AIToolSchema.extend({\n type: z.enum([\n 'action',\n 'flow',\n 'query',\n 'vector_search',\n // DevOps-specific tools\n 'git_operation',\n 'code_generation',\n 'test_execution',\n 'deployment',\n 'monitoring',\n ]),\n});\n\nexport type DevOpsTool = z.infer<typeof DevOpsToolSchema>;\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: Full-Stack DevOps Agent\n */\nexport const fullStackDevOpsAgentExample: DevOpsAgent = {\n name: 'devops_automation_agent',\n label: 'DevOps Automation Agent',\n visibility: 'organization',\n avatar: '/avatars/devops-bot.png',\n role: 'Senior Full-Stack DevOps Engineer',\n \n instructions: `You are an autonomous DevOps agent specialized in enterprise management software development.\n\nYour responsibilities:\n1. Generate code based on ObjectStack specifications\n2. Write comprehensive tests for all generated code\n3. Ensure code quality through linting and formatting\n4. Manage Git workflow (commits, branches, PRs)\n5. Deploy applications to Vercel\n6. Monitor deployments and handle rollbacks\n7. Continuously optimize and iterate on the codebase\n\nGuidelines:\n- Follow ObjectStack naming conventions (camelCase for props, snake_case for names)\n- Write clean, maintainable, well-documented code\n- Ensure 80%+ test coverage\n- Use conventional commit messages\n- Create detailed PR descriptions\n- Deploy only after all checks pass\n- Monitor production deployments closely\n- Learn from failures and optimize continuously\n\nAlways prioritize code quality, security, and maintainability.`,\n \n model: {\n provider: 'openai',\n model: 'gpt-4-turbo-preview',\n temperature: 0.3,\n maxTokens: 8192,\n },\n \n tools: [\n {\n type: 'action',\n name: 'generate_from_spec',\n description: 'Generate code from ObjectStack specification',\n },\n {\n type: 'action',\n name: 'run_tests',\n description: 'Execute test suites',\n },\n {\n type: 'action',\n name: 'commit_and_push',\n description: 'Commit changes and push to GitHub',\n },\n {\n type: 'action',\n name: 'create_pull_request',\n description: 'Create pull request on GitHub',\n },\n {\n type: 'action',\n name: 'deploy_to_vercel',\n description: 'Deploy application to Vercel',\n },\n {\n type: 'action',\n name: 'check_deployment_health',\n description: 'Check deployment health status',\n },\n {\n type: 'action',\n name: 'rollback_deployment',\n description: 'Rollback to previous deployment',\n },\n ],\n \n knowledge: {\n topics: [\n 'objectstack_protocol',\n 'typescript_best_practices',\n 'testing_strategies',\n 'ci_cd_patterns',\n 'deployment_strategies',\n ],\n indexes: ['devops_knowledge_base'],\n },\n \n developmentConfig: {\n specificationSource: 'packages/spec',\n \n codeGeneration: {\n enabled: true,\n targets: ['frontend', 'backend', 'api', 'tests', 'documentation'],\n styleGuide: 'objectstack',\n includeTests: true,\n includeDocumentation: true,\n validationMode: 'strict',\n },\n \n testing: {\n enabled: true,\n testTypes: ['unit', 'integration', 'e2e'],\n coverageThreshold: 80,\n framework: 'vitest',\n preCommitTests: true,\n autoFix: false,\n },\n \n linting: {\n enabled: true,\n autoFix: true,\n },\n \n formatting: {\n enabled: true,\n autoFormat: true,\n },\n },\n \n pipelines: [\n {\n name: 'CI Pipeline',\n trigger: 'pull_request',\n branches: ['main', 'develop'],\n stages: [\n {\n name: 'Install Dependencies',\n type: 'build',\n order: 1,\n commands: ['pnpm install'],\n timeout: 300,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Lint',\n type: 'lint',\n order: 2,\n parallel: true,\n commands: ['pnpm run lint'],\n timeout: 180,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Type Check',\n type: 'lint',\n order: 2,\n parallel: true,\n commands: ['pnpm run type-check'],\n timeout: 180,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Test',\n type: 'test',\n order: 3,\n commands: ['pnpm run test:ci'],\n timeout: 600,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Build',\n type: 'build',\n order: 4,\n commands: ['pnpm run build'],\n timeout: 600,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Security Scan',\n type: 'security_scan',\n order: 5,\n commands: ['pnpm audit', 'pnpm run security-scan'],\n timeout: 300,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n ],\n },\n {\n name: 'CD Pipeline',\n trigger: 'push',\n branches: ['main'],\n stages: [\n {\n name: 'Deploy to Production',\n type: 'deploy',\n order: 1,\n commands: ['vercel deploy --prod'],\n timeout: 600,\n parallel: false,\n retryOnFailure: false,\n maxRetries: 0,\n },\n {\n name: 'Smoke Tests',\n type: 'smoke_test',\n order: 2,\n commands: ['pnpm run test:smoke'],\n timeout: 300,\n parallel: false,\n retryOnFailure: true,\n maxRetries: 2,\n },\n ],\n notifications: {\n onSuccess: true,\n onFailure: true,\n channels: ['slack', 'email'],\n },\n },\n ],\n \n versionManagement: {\n scheme: 'semver',\n autoIncrement: 'patch',\n prefix: 'v',\n generateChangelog: true,\n changelogFormat: 'conventional',\n tagReleases: true,\n },\n \n deploymentStrategy: {\n type: 'rolling',\n healthCheckUrl: '/api/health',\n healthCheckTimeout: 60,\n autoRollback: true,\n smokeTests: ['pnpm run test:smoke'],\n canaryPercentage: 10,\n },\n \n monitoring: {\n enabled: true,\n metrics: ['performance', 'errors', 'availability'],\n alerts: [\n {\n name: 'High Error Rate',\n metric: 'error_rate',\n threshold: 0.05,\n severity: 'critical',\n },\n {\n name: 'Slow Response Time',\n metric: 'response_time',\n threshold: 1000,\n severity: 'warning',\n },\n ],\n integrations: ['vercel', 'datadog'],\n },\n \n integrations: {\n github: {\n connector: 'github_production',\n repository: {\n owner: 'objectstack-ai',\n name: 'app',\n },\n featureBranch: 'develop',\n pullRequest: {\n autoCreate: true,\n autoMerge: false,\n requireReviews: true,\n deleteBranchOnMerge: true,\n },\n },\n \n vercel: {\n connector: 'vercel_production',\n project: 'objectstack-app',\n environments: {\n production: 'main',\n preview: ['develop', 'feature/*'],\n },\n deployment: {\n autoDeployProduction: false,\n autoDeployPreview: true,\n requireApproval: true,\n },\n },\n },\n \n selfIteration: {\n enabled: true,\n iterationFrequency: '0 0 * * 0', // Weekly on Sunday\n optimizationGoals: ['code_quality', 'test_coverage', 'performance'],\n learningMode: 'balanced',\n },\n \n active: true,\n};\n","import { z } from 'zod';\n\n/**\n * # AI-Driven Plugin Development Protocol\n * \n * Defines protocols for AI-powered plugin development including:\n * - Natural language to code generation\n * - Intelligent code scaffolding\n * - Automated testing and validation\n * - AI-powered code review and optimization\n * - Plugin composition and recommendation\n */\n\n/**\n * Code Generation Request\n * Request for AI to generate plugin code\n */\nexport const CodeGenerationRequestSchema = z.object({\n /**\n * Natural language description of desired functionality\n */\n description: z.string().describe('What the plugin should do'),\n \n /**\n * Plugin type to generate\n */\n pluginType: z.enum([\n 'driver', // Data driver plugin\n 'app', // Application plugin\n 'widget', // UI widget\n 'integration', // External integration\n 'automation', // Automation/workflow\n 'analytics', // Analytics plugin\n 'ai-agent', // AI agent plugin\n 'custom', // Custom plugin type\n ]),\n \n /**\n * Output format for generated code\n */\n outputFormat: z.enum([\n 'source-code', // Generate TypeScript/JavaScript source code\n 'low-code-schema', // Generate ObjectStack JSON/YAML schema definitions\n 'dsl', // Generate domain-specific language definitions\n ]).default('source-code')\n .describe('Format of the generated output'),\n \n /**\n * Target programming language (for source-code format)\n */\n language: z.enum(['typescript', 'javascript', 'python']).default('typescript'),\n \n /**\n * Framework preferences\n */\n framework: z.object({\n runtime: z.enum(['node', 'browser', 'edge', 'universal']).optional(),\n uiFramework: z.enum(['react', 'vue', 'svelte', 'none']).optional(),\n testing: z.enum(['vitest', 'jest', 'mocha', 'none']).optional(),\n }).optional(),\n \n /**\n * Required capabilities\n */\n capabilities: z.array(z.string()).optional().describe('Protocol IDs to implement'),\n \n /**\n * Dependencies\n */\n dependencies: z.array(z.string()).optional().describe('Required plugin IDs'),\n \n /**\n * Example usage (helps AI understand intent)\n */\n examples: z.array(z.object({\n input: z.string(),\n expectedOutput: z.string(),\n description: z.string().optional(),\n })).optional(),\n \n /**\n * Code style preferences (for source-code format)\n */\n style: z.object({\n indentation: z.enum(['tab', '2spaces', '4spaces']).default('2spaces'),\n quotes: z.enum(['single', 'double']).default('single'),\n semicolons: z.boolean().default(true),\n trailingComma: z.boolean().default(true),\n }).optional(),\n \n /**\n * Low-code schema preferences (for low-code-schema format)\n */\n schemaOptions: z.object({\n /**\n * Schema format\n */\n format: z.enum(['json', 'yaml', 'typescript']).default('typescript')\n .describe('Output schema format'),\n \n /**\n * Include example data\n */\n includeExamples: z.boolean().default(true),\n \n /**\n * Validation strictness\n */\n strictValidation: z.boolean().default(true),\n \n /**\n * Generate UI definitions\n */\n generateUI: z.boolean().default(true)\n .describe('Generate view, dashboard, and page definitions'),\n \n /**\n * Generate data models\n */\n generateDataModels: z.boolean().default(true)\n .describe('Generate object and field definitions'),\n }).optional(),\n \n /**\n * Additional context\n */\n context: z.object({\n /**\n * Existing code to extend\n */\n existingCode: z.string().optional(),\n \n /**\n * Related documentation URLs\n */\n documentationUrls: z.array(z.string()).optional(),\n \n /**\n * Similar plugins for reference\n */\n referencePlugins: z.array(z.string()).optional(),\n }).optional(),\n \n /**\n * Generation options\n */\n options: z.object({\n /**\n * Include tests\n */\n generateTests: z.boolean().default(true),\n \n /**\n * Include documentation\n */\n generateDocs: z.boolean().default(true),\n \n /**\n * Include examples\n */\n generateExamples: z.boolean().default(true),\n \n /**\n * Code coverage target\n */\n targetCoverage: z.number().min(0).max(100).default(80),\n \n /**\n * Optimization level\n */\n optimizationLevel: z.enum(['none', 'basic', 'aggressive']).default('basic'),\n }).optional(),\n});\n\n/**\n * Generated Code\n * Result of code generation\n */\nexport const GeneratedCodeSchema = z.object({\n /**\n * Output format used\n */\n outputFormat: z.enum(['source-code', 'low-code-schema', 'dsl']),\n \n /**\n * Main plugin code (for source-code format)\n */\n code: z.string().optional(),\n \n /**\n * Language used (for source-code format)\n */\n language: z.string().optional(),\n \n /**\n * Low-code schema definitions (for low-code-schema format)\n */\n schemas: z.array(z.object({\n type: z.enum(['object', 'view', 'dashboard', 'app', 'workflow', 'api', 'page']),\n path: z.string().describe('File path for the schema'),\n content: z.string().describe('Schema content (JSON/YAML/TypeScript)'),\n description: z.string().optional(),\n })).optional()\n .describe('Generated low-code schema files'),\n \n /**\n * File structure\n */\n files: z.array(z.object({\n path: z.string(),\n content: z.string(),\n description: z.string().optional(),\n })),\n \n /**\n * Generated tests\n */\n tests: z.array(z.object({\n path: z.string(),\n content: z.string(),\n coverage: z.number().min(0).max(100).optional(),\n })).optional(),\n \n /**\n * Documentation\n */\n documentation: z.object({\n readme: z.string().optional(),\n api: z.string().optional(),\n usage: z.string().optional(),\n }).optional(),\n \n /**\n * Package metadata\n */\n package: z.object({\n name: z.string(),\n version: z.string(),\n dependencies: z.record(z.string(), z.string()).optional(),\n devDependencies: z.record(z.string(), z.string()).optional(),\n }).optional(),\n \n /**\n * Quality metrics\n */\n quality: z.object({\n complexity: z.number().optional().describe('Cyclomatic complexity'),\n maintainability: z.number().min(0).max(100).optional(),\n testCoverage: z.number().min(0).max(100).optional(),\n lintScore: z.number().min(0).max(100).optional(),\n }).optional(),\n \n /**\n * AI confidence score\n */\n confidence: z.number().min(0).max(100).describe('AI confidence in generated code'),\n \n /**\n * Suggestions for improvement\n */\n suggestions: z.array(z.string()).optional(),\n \n /**\n * Warnings or caveats\n */\n warnings: z.array(z.string()).optional(),\n});\n\n/**\n * Plugin Scaffolding Template\n * Template for plugin structure\n */\nexport const PluginScaffoldingTemplateSchema = z.object({\n /**\n * Template identifier\n */\n id: z.string(),\n \n /**\n * Template name\n */\n name: z.string(),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Plugin type\n */\n pluginType: z.string(),\n \n /**\n * File structure\n */\n structure: z.array(z.object({\n type: z.enum(['file', 'directory']),\n path: z.string(),\n template: z.string().optional().describe('Template content with variables'),\n optional: z.boolean().default(false),\n })),\n \n /**\n * Variables to be filled\n */\n variables: z.array(z.object({\n name: z.string(),\n description: z.string(),\n type: z.enum(['string', 'number', 'boolean', 'array', 'object']),\n required: z.boolean().default(true),\n default: z.any().optional(),\n validation: z.string().optional().describe('Validation regex or rule'),\n })),\n \n /**\n * Post-scaffold scripts\n */\n scripts: z.array(z.object({\n name: z.string(),\n command: z.string(),\n description: z.string().optional(),\n optional: z.boolean().default(false),\n })).optional(),\n});\n\n/**\n * AI Code Review Result\n * Result of AI-powered code review\n */\nexport const AICodeReviewResultSchema = z.object({\n /**\n * Overall assessment\n */\n assessment: z.enum(['excellent', 'good', 'acceptable', 'needs-improvement', 'poor']),\n \n /**\n * Overall score (0-100)\n */\n score: z.number().min(0).max(100),\n \n /**\n * Issues found\n */\n issues: z.array(z.object({\n severity: z.enum(['critical', 'error', 'warning', 'info', 'style']),\n category: z.enum([\n 'bug',\n 'security',\n 'performance',\n 'maintainability',\n 'style',\n 'documentation',\n 'testing',\n 'type-safety',\n 'best-practice',\n ]),\n file: z.string(),\n line: z.number().int().optional(),\n column: z.number().int().optional(),\n message: z.string(),\n suggestion: z.string().optional(),\n autoFixable: z.boolean().default(false),\n autoFix: z.string().optional().describe('Automated fix code'),\n })),\n \n /**\n * Positive highlights\n */\n highlights: z.array(z.object({\n category: z.string(),\n description: z.string(),\n file: z.string().optional(),\n })).optional(),\n \n /**\n * Quality metrics\n */\n metrics: z.object({\n complexity: z.number().optional(),\n maintainability: z.number().min(0).max(100).optional(),\n testCoverage: z.number().min(0).max(100).optional(),\n duplicateCode: z.number().min(0).max(100).optional(),\n technicalDebt: z.string().optional().describe('Estimated technical debt'),\n }).optional(),\n \n /**\n * Recommendations\n */\n recommendations: z.array(z.object({\n priority: z.enum(['high', 'medium', 'low']),\n title: z.string(),\n description: z.string(),\n effort: z.enum(['trivial', 'small', 'medium', 'large']).optional(),\n })),\n \n /**\n * Security analysis\n */\n security: z.object({\n vulnerabilities: z.array(z.object({\n severity: z.enum(['critical', 'high', 'medium', 'low']),\n type: z.string(),\n description: z.string(),\n remediation: z.string().optional(),\n })).optional(),\n score: z.number().min(0).max(100).optional(),\n }).optional(),\n});\n\n/**\n * Plugin Composition Request\n * Request for AI to compose multiple plugins together\n */\nexport const PluginCompositionRequestSchema = z.object({\n /**\n * Desired outcome\n */\n goal: z.string().describe('What should the composed plugins achieve'),\n \n /**\n * Available plugins\n */\n availablePlugins: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n capabilities: z.array(z.string()).optional(),\n description: z.string().optional(),\n })),\n \n /**\n * Constraints\n */\n constraints: z.object({\n /**\n * Maximum plugins to use\n */\n maxPlugins: z.number().int().min(1).optional(),\n \n /**\n * Required plugins\n */\n requiredPlugins: z.array(z.string()).optional(),\n \n /**\n * Excluded plugins\n */\n excludedPlugins: z.array(z.string()).optional(),\n \n /**\n * Performance requirements\n */\n performance: z.object({\n maxLatency: z.number().optional().describe('Maximum latency in ms'),\n maxMemory: z.number().optional().describe('Maximum memory in bytes'),\n }).optional(),\n }).optional(),\n \n /**\n * Optimization criteria\n */\n optimize: z.enum([\n 'performance',\n 'reliability',\n 'simplicity',\n 'cost',\n 'security',\n ]).optional(),\n});\n\n/**\n * Plugin Composition Result\n * AI-generated plugin composition\n */\nexport const PluginCompositionResultSchema = z.object({\n /**\n * Selected plugins\n */\n plugins: z.array(z.object({\n pluginId: z.string(),\n version: z.string(),\n role: z.string().describe('Role in the composition'),\n configuration: z.record(z.string(), z.any()).optional(),\n })),\n \n /**\n * Integration code\n */\n integration: z.object({\n /**\n * Glue code to connect plugins\n */\n code: z.string(),\n \n /**\n * Configuration\n */\n config: z.record(z.string(), z.any()).optional(),\n \n /**\n * Initialization order\n */\n initOrder: z.array(z.string()),\n }),\n \n /**\n * Data flow diagram\n */\n dataFlow: z.array(z.object({\n from: z.string(),\n to: z.string(),\n data: z.string().describe('Data type or description'),\n })),\n \n /**\n * Expected performance\n */\n performance: z.object({\n estimatedLatency: z.number().optional().describe('Estimated latency in ms'),\n estimatedMemory: z.number().optional().describe('Estimated memory in bytes'),\n }).optional(),\n \n /**\n * Confidence score\n */\n confidence: z.number().min(0).max(100),\n \n /**\n * Alternative compositions\n */\n alternatives: z.array(z.object({\n description: z.string(),\n plugins: z.array(z.string()),\n tradeoffs: z.string(),\n })).optional(),\n \n /**\n * Warnings and considerations\n */\n warnings: z.array(z.string()).optional(),\n});\n\n/**\n * Plugin Recommendation Request\n * Request for plugin recommendations\n */\nexport const PluginRecommendationRequestSchema = z.object({\n /**\n * User context\n */\n context: z.object({\n /**\n * Current plugins installed\n */\n installedPlugins: z.array(z.string()).optional(),\n \n /**\n * User's industry\n */\n industry: z.string().optional(),\n \n /**\n * Use cases\n */\n useCases: z.array(z.string()).optional(),\n \n /**\n * Team size\n */\n teamSize: z.number().int().optional(),\n \n /**\n * Budget constraints\n */\n budget: z.enum(['free', 'low', 'medium', 'high', 'unlimited']).optional(),\n }),\n \n /**\n * Recommendation criteria\n */\n criteria: z.object({\n /**\n * Prioritize by\n */\n prioritize: z.enum([\n 'popularity',\n 'rating',\n 'compatibility',\n 'features',\n 'cost',\n 'support',\n ]).optional(),\n \n /**\n * Only certified plugins\n */\n certifiedOnly: z.boolean().default(false),\n \n /**\n * Minimum rating\n */\n minRating: z.number().min(0).max(5).optional(),\n \n /**\n * Maximum results\n */\n maxResults: z.number().int().min(1).max(50).default(10),\n }).optional(),\n});\n\n/**\n * Plugin Recommendation\n * AI-generated plugin recommendation\n */\nexport const PluginRecommendationSchema = z.object({\n /**\n * Recommended plugins\n */\n recommendations: z.array(z.object({\n pluginId: z.string(),\n name: z.string(),\n description: z.string(),\n score: z.number().min(0).max(100).describe('Relevance score'),\n reasons: z.array(z.string()).describe('Why this plugin is recommended'),\n benefits: z.array(z.string()),\n considerations: z.array(z.string()).optional(),\n alternatives: z.array(z.string()).optional(),\n estimatedValue: z.string().optional().describe('Expected value/ROI'),\n })),\n \n /**\n * Recommended combinations\n */\n combinations: z.array(z.object({\n plugins: z.array(z.string()),\n description: z.string(),\n synergies: z.array(z.string()).describe('How these plugins work well together'),\n totalScore: z.number().min(0).max(100),\n })).optional(),\n \n /**\n * Learning path\n */\n learningPath: z.array(z.object({\n step: z.number().int(),\n plugin: z.string(),\n reason: z.string(),\n resources: z.array(z.string()).optional(),\n })).optional(),\n});\n\n// Export types\nexport type CodeGenerationRequest = z.infer<typeof CodeGenerationRequestSchema>;\nexport type GeneratedCode = z.infer<typeof GeneratedCodeSchema>;\nexport type PluginScaffoldingTemplate = z.infer<typeof PluginScaffoldingTemplateSchema>;\nexport type AICodeReviewResult = z.infer<typeof AICodeReviewResultSchema>;\nexport type PluginCompositionRequest = z.infer<typeof PluginCompositionRequestSchema>;\nexport type PluginCompositionResult = z.infer<typeof PluginCompositionResultSchema>;\nexport type PluginRecommendationRequest = z.infer<typeof PluginRecommendationRequestSchema>;\nexport type PluginRecommendation = z.infer<typeof PluginRecommendationSchema>;\n","import { z } from 'zod';\nimport { PluginHealthStatusSchema } from '../kernel/plugin-lifecycle-advanced.zod';\n\n/**\n * # Runtime AI Operations (AIOps) Protocol\n * \n * Defines protocols for AI-powered runtime operations including:\n * - Self-healing and automatic recovery\n * - Intelligent auto-scaling\n * - Anomaly detection and prediction\n * - Performance optimization\n * - Root cause analysis\n */\n\n/**\n * Anomaly Detection Configuration\n * Configuration for detecting anomalies in plugin behavior\n */\nexport const AnomalyDetectionConfigSchema = z.object({\n /**\n * Enable anomaly detection\n */\n enabled: z.boolean().default(true),\n \n /**\n * Metrics to monitor\n */\n metrics: z.array(z.enum([\n 'cpu-usage',\n 'memory-usage',\n 'response-time',\n 'error-rate',\n 'throughput',\n 'latency',\n 'connection-count',\n 'queue-depth',\n ])),\n \n /**\n * Detection algorithm\n */\n algorithm: z.enum([\n 'statistical', // Statistical thresholds\n 'machine-learning', // ML-based detection\n 'heuristic', // Rule-based heuristics\n 'hybrid', // Combination of methods\n ]).default('hybrid'),\n \n /**\n * Sensitivity level\n */\n sensitivity: z.enum(['low', 'medium', 'high']).default('medium')\n .describe('How aggressively to detect anomalies'),\n \n /**\n * Time window for analysis (seconds)\n */\n timeWindow: z.number().int().min(60).default(300)\n .describe('Historical data window for anomaly detection'),\n \n /**\n * Confidence threshold (0-100)\n */\n confidenceThreshold: z.number().min(0).max(100).default(80)\n .describe('Minimum confidence to flag as anomaly'),\n \n /**\n * Alert on detection\n */\n alertOnDetection: z.boolean().default(true),\n});\n\n/**\n * Self-Healing Action\n * Defines an automated recovery action\n */\nexport const SelfHealingActionSchema = z.object({\n /**\n * Action identifier\n */\n id: z.string(),\n \n /**\n * Action type\n */\n type: z.enum([\n 'restart', // Restart the plugin\n 'scale', // Scale resources\n 'rollback', // Rollback to previous version\n 'clear-cache', // Clear caches\n 'adjust-config', // Adjust configuration\n 'execute-script', // Run custom script\n 'notify', // Notify administrators\n ]),\n \n /**\n * Trigger condition\n */\n trigger: z.object({\n /**\n * Health status that triggers this action\n */\n healthStatus: z.array(PluginHealthStatusSchema).optional(),\n \n /**\n * Anomaly types that trigger this action\n */\n anomalyTypes: z.array(z.string()).optional(),\n \n /**\n * Error patterns that trigger this action\n */\n errorPatterns: z.array(z.string()).optional(),\n \n /**\n * Custom condition expression\n */\n customCondition: z.string().optional()\n .describe('Custom trigger condition (e.g., \"errorRate > 0.1\")'),\n }),\n \n /**\n * Action parameters\n */\n parameters: z.record(z.string(), z.any()).optional(),\n \n /**\n * Maximum number of attempts\n */\n maxAttempts: z.number().int().min(1).default(3),\n \n /**\n * Cooldown period between attempts (seconds)\n */\n cooldown: z.number().int().min(0).default(60),\n \n /**\n * Timeout for action execution (seconds)\n */\n timeout: z.number().int().min(1).default(300),\n \n /**\n * Require manual approval\n */\n requireApproval: z.boolean().default(false),\n \n /**\n * Priority\n */\n priority: z.number().int().min(1).default(5)\n .describe('Action priority (lower number = higher priority)'),\n});\n\n/**\n * Self-Healing Configuration\n * Complete configuration for self-healing capabilities\n */\nexport const SelfHealingConfigSchema = z.object({\n /**\n * Enable self-healing\n */\n enabled: z.boolean().default(true),\n \n /**\n * Healing strategy\n */\n strategy: z.enum([\n 'conservative', // Only safe, proven actions\n 'moderate', // Balanced approach\n 'aggressive', // Try more recovery options\n ]).default('moderate'),\n \n /**\n * Recovery actions\n */\n actions: z.array(SelfHealingActionSchema),\n \n /**\n * Anomaly detection\n */\n anomalyDetection: AnomalyDetectionConfigSchema.optional(),\n \n /**\n * Maximum concurrent healing operations\n */\n maxConcurrentHealing: z.number().int().min(1).default(1)\n .describe('Maximum number of simultaneous healing attempts'),\n \n /**\n * Learning mode\n */\n learning: z.object({\n enabled: z.boolean().default(true)\n .describe('Learn from successful/failed healing attempts'),\n \n feedbackLoop: z.boolean().default(true)\n .describe('Adjust strategy based on outcomes'),\n }).optional(),\n});\n\n/**\n * Auto-Scaling Policy\n * Defines how to automatically scale plugin resources\n */\nexport const AutoScalingPolicySchema = z.object({\n /**\n * Enable auto-scaling\n */\n enabled: z.boolean().default(false),\n \n /**\n * Scaling metric\n */\n metric: z.enum([\n 'cpu-usage',\n 'memory-usage',\n 'request-rate',\n 'response-time',\n 'queue-depth',\n 'custom',\n ]),\n \n /**\n * Custom metric query (when metric is \"custom\")\n */\n customMetric: z.string().optional(),\n \n /**\n * Target value for the metric\n */\n targetValue: z.number()\n .describe('Desired metric value (e.g., 70 for 70% CPU)'),\n \n /**\n * Scaling bounds\n */\n bounds: z.object({\n /**\n * Minimum instances\n */\n minInstances: z.number().int().min(1).default(1),\n \n /**\n * Maximum instances\n */\n maxInstances: z.number().int().min(1).default(10),\n \n /**\n * Minimum resources per instance\n */\n minResources: z.object({\n cpu: z.string().optional().describe('CPU limit (e.g., \"0.5\", \"1\")'),\n memory: z.string().optional().describe('Memory limit (e.g., \"512Mi\", \"1Gi\")'),\n }).optional(),\n \n /**\n * Maximum resources per instance\n */\n maxResources: z.object({\n cpu: z.string().optional(),\n memory: z.string().optional(),\n }).optional(),\n }),\n \n /**\n * Scale up behavior\n */\n scaleUp: z.object({\n /**\n * Threshold to trigger scale up\n */\n threshold: z.number()\n .describe('Metric value that triggers scale up'),\n \n /**\n * Stabilization window (seconds)\n */\n stabilizationWindow: z.number().int().min(0).default(60)\n .describe('How long metric must exceed threshold'),\n \n /**\n * Cooldown period (seconds)\n */\n cooldown: z.number().int().min(0).default(300)\n .describe('Minimum time between scale-up operations'),\n \n /**\n * Step size\n */\n stepSize: z.number().int().min(1).default(1)\n .describe('Number of instances to add'),\n }),\n \n /**\n * Scale down behavior\n */\n scaleDown: z.object({\n /**\n * Threshold to trigger scale down\n */\n threshold: z.number()\n .describe('Metric value that triggers scale down'),\n \n /**\n * Stabilization window (seconds)\n */\n stabilizationWindow: z.number().int().min(0).default(300)\n .describe('How long metric must be below threshold'),\n \n /**\n * Cooldown period (seconds)\n */\n cooldown: z.number().int().min(0).default(600)\n .describe('Minimum time between scale-down operations'),\n \n /**\n * Step size\n */\n stepSize: z.number().int().min(1).default(1)\n .describe('Number of instances to remove'),\n }),\n \n /**\n * Predictive scaling\n */\n predictive: z.object({\n enabled: z.boolean().default(false)\n .describe('Use ML to predict future load'),\n \n lookAhead: z.number().int().min(60).default(300)\n .describe('How far ahead to predict (seconds)'),\n \n confidence: z.number().min(0).max(100).default(80)\n .describe('Minimum confidence for prediction-based scaling'),\n }).optional(),\n});\n\n/**\n * Root Cause Analysis Request\n * Request for AI to analyze root cause of issues\n */\nexport const RootCauseAnalysisRequestSchema = z.object({\n /**\n * Incident identifier\n */\n incidentId: z.string(),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Symptoms observed\n */\n symptoms: z.array(z.object({\n type: z.string().describe('Symptom type'),\n description: z.string(),\n severity: z.enum(['low', 'medium', 'high', 'critical']),\n timestamp: z.string().datetime(),\n })),\n \n /**\n * Time range for analysis\n */\n timeRange: z.object({\n start: z.string().datetime(),\n end: z.string().datetime(),\n }),\n \n /**\n * Include log analysis\n */\n analyzeLogs: z.boolean().default(true),\n \n /**\n * Include metric analysis\n */\n analyzeMetrics: z.boolean().default(true),\n \n /**\n * Include dependency analysis\n */\n analyzeDependencies: z.boolean().default(true),\n \n /**\n * Context information\n */\n context: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Root Cause Analysis Result\n * Result of root cause analysis\n */\nexport const RootCauseAnalysisResultSchema = z.object({\n /**\n * Analysis identifier\n */\n analysisId: z.string(),\n \n /**\n * Incident identifier\n */\n incidentId: z.string(),\n \n /**\n * Identified root causes\n */\n rootCauses: z.array(z.object({\n /**\n * Cause identifier\n */\n id: z.string(),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Confidence score (0-100)\n */\n confidence: z.number().min(0).max(100),\n \n /**\n * Category\n */\n category: z.enum([\n 'code-defect',\n 'configuration',\n 'resource-exhaustion',\n 'dependency-failure',\n 'network-issue',\n 'data-corruption',\n 'security-breach',\n 'other',\n ]),\n \n /**\n * Evidence\n */\n evidence: z.array(z.object({\n type: z.enum(['log', 'metric', 'trace', 'event']),\n content: z.string(),\n timestamp: z.string().datetime().optional(),\n })),\n \n /**\n * Impact assessment\n */\n impact: z.enum(['low', 'medium', 'high', 'critical']),\n \n /**\n * Recommended actions\n */\n recommendations: z.array(z.string()),\n })),\n \n /**\n * Contributing factors\n */\n contributingFactors: z.array(z.object({\n description: z.string(),\n confidence: z.number().min(0).max(100),\n })).optional(),\n \n /**\n * Timeline of events\n */\n timeline: z.array(z.object({\n timestamp: z.string().datetime(),\n event: z.string(),\n significance: z.enum(['low', 'medium', 'high']),\n })).optional(),\n \n /**\n * Remediation plan\n */\n remediation: z.object({\n /**\n * Immediate actions\n */\n immediate: z.array(z.string()),\n \n /**\n * Short-term fixes\n */\n shortTerm: z.array(z.string()),\n \n /**\n * Long-term improvements\n */\n longTerm: z.array(z.string()),\n }).optional(),\n \n /**\n * Overall confidence in analysis\n */\n overallConfidence: z.number().min(0).max(100),\n \n /**\n * Analysis timestamp\n */\n timestamp: z.string().datetime(),\n});\n\n/**\n * Performance Optimization Suggestion\n * AI-generated performance optimization suggestion\n */\nexport const PerformanceOptimizationSchema = z.object({\n /**\n * Optimization identifier\n */\n id: z.string(),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Optimization type\n */\n type: z.enum([\n 'caching',\n 'query-optimization',\n 'resource-allocation',\n 'code-refactoring',\n 'architecture-change',\n 'configuration-tuning',\n ]),\n \n /**\n * Description\n */\n description: z.string(),\n \n /**\n * Expected impact\n */\n expectedImpact: z.object({\n /**\n * Performance improvement percentage\n */\n performanceGain: z.number().min(0).max(100)\n .describe('Expected performance improvement (%)'),\n \n /**\n * Resource savings\n */\n resourceSavings: z.object({\n cpu: z.number().optional().describe('CPU reduction (%)'),\n memory: z.number().optional().describe('Memory reduction (%)'),\n network: z.number().optional().describe('Network reduction (%)'),\n }).optional(),\n \n /**\n * Cost reduction\n */\n costReduction: z.number().optional()\n .describe('Estimated cost reduction (%)'),\n }),\n \n /**\n * Implementation difficulty\n */\n difficulty: z.enum(['trivial', 'easy', 'moderate', 'complex', 'very-complex']),\n \n /**\n * Implementation steps\n */\n steps: z.array(z.string()),\n \n /**\n * Risks and considerations\n */\n risks: z.array(z.string()).optional(),\n \n /**\n * Confidence score\n */\n confidence: z.number().min(0).max(100),\n \n /**\n * Priority\n */\n priority: z.enum(['low', 'medium', 'high', 'critical']),\n});\n\n/**\n * AIOps Agent Configuration\n * Configuration for AI operations agent\n */\nexport const AIOpsAgentConfigSchema = z.object({\n /**\n * Agent identifier\n */\n agentId: z.string(),\n \n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Self-healing configuration\n */\n selfHealing: SelfHealingConfigSchema.optional(),\n \n /**\n * Auto-scaling policies\n */\n autoScaling: z.array(AutoScalingPolicySchema).optional(),\n \n /**\n * Continuous monitoring\n */\n monitoring: z.object({\n enabled: z.boolean().default(true),\n interval: z.number().int().min(1000).default(60000)\n .describe('Monitoring interval in milliseconds'),\n \n /**\n * Metrics to collect\n */\n metrics: z.array(z.string()).optional(),\n }).optional(),\n \n /**\n * Proactive optimization\n */\n optimization: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Scan interval (seconds)\n */\n scanInterval: z.number().int().min(3600).default(86400)\n .describe('How often to scan for optimization opportunities'),\n \n /**\n * Auto-apply optimizations\n */\n autoApply: z.boolean().default(false)\n .describe('Automatically apply low-risk optimizations'),\n }).optional(),\n \n /**\n * Incident response\n */\n incidentResponse: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Auto-trigger root cause analysis\n */\n autoRCA: z.boolean().default(true),\n \n /**\n * Notification channels\n */\n notifications: z.array(z.object({\n channel: z.enum(['email', 'slack', 'webhook', 'sms']),\n config: z.record(z.string(), z.any()),\n })).optional(),\n }).optional(),\n});\n\n// Export types\nexport type AnomalyDetectionConfig = z.infer<typeof AnomalyDetectionConfigSchema>;\nexport type SelfHealingAction = z.infer<typeof SelfHealingActionSchema>;\nexport type SelfHealingConfig = z.infer<typeof SelfHealingConfigSchema>;\nexport type AutoScalingPolicy = z.infer<typeof AutoScalingPolicySchema>;\nexport type RootCauseAnalysisRequest = z.infer<typeof RootCauseAnalysisRequestSchema>;\nexport type RootCauseAnalysisResult = z.infer<typeof RootCauseAnalysisResultSchema>;\nexport type PerformanceOptimization = z.infer<typeof PerformanceOptimizationSchema>;\nexport type AIOpsAgentConfig = z.infer<typeof AIOpsAgentConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * # Advanced Plugin Lifecycle Protocol\n * \n * Defines advanced lifecycle management capabilities including:\n * - Hot reload and live updates\n * - Graceful degradation and fallback mechanisms\n * - Health monitoring and auto-recovery\n * - State preservation during updates\n * \n * This protocol extends the basic plugin lifecycle with enterprise-grade\n * features for production environments.\n */\n\n/**\n * Plugin Health Status\n * Represents the current operational state of a plugin\n */\nexport const PluginHealthStatusSchema = z.enum([\n 'healthy', // Plugin is operating normally\n 'degraded', // Plugin is operational but with reduced functionality\n 'unhealthy', // Plugin has critical issues but still running\n 'failed', // Plugin has failed and is not operational\n 'recovering', // Plugin is in recovery process\n 'unknown', // Health status cannot be determined\n]).describe('Current health status of the plugin');\n\n/**\n * Plugin Health Check Configuration\n * Defines how to check plugin health\n */\nexport const PluginHealthCheckSchema = z.object({\n /**\n * Health check interval in milliseconds\n */\n interval: z.number().int().min(1000).default(30000)\n .describe('How often to perform health checks (default: 30s)'),\n \n /**\n * Timeout for health check in milliseconds\n */\n timeout: z.number().int().min(100).default(5000)\n .describe('Maximum time to wait for health check response'),\n \n /**\n * Number of consecutive failures before marking as unhealthy\n */\n failureThreshold: z.number().int().min(1).default(3)\n .describe('Consecutive failures needed to mark unhealthy'),\n \n /**\n * Number of consecutive successes to recover from unhealthy state\n */\n successThreshold: z.number().int().min(1).default(1)\n .describe('Consecutive successes needed to mark healthy'),\n \n /**\n * Custom health check function name or endpoint\n */\n checkMethod: z.string().optional()\n .describe('Method name to call for health check'),\n \n /**\n * Enable automatic restart on failure\n */\n autoRestart: z.boolean().default(false)\n .describe('Automatically restart plugin on health check failure'),\n \n /**\n * Maximum number of restart attempts\n */\n maxRestartAttempts: z.number().int().min(0).default(3)\n .describe('Maximum restart attempts before giving up'),\n \n /**\n * Backoff strategy for restarts\n */\n restartBackoff: z.enum(['fixed', 'linear', 'exponential']).default('exponential')\n .describe('Backoff strategy for restart delays'),\n});\n\n/**\n * Plugin Health Report\n * Detailed health information from a plugin\n */\nexport const PluginHealthReportSchema = z.object({\n /**\n * Overall health status\n */\n status: PluginHealthStatusSchema,\n \n /**\n * Timestamp of the health check\n */\n timestamp: z.string().datetime(),\n \n /**\n * Human-readable message about health status\n */\n message: z.string().optional(),\n \n /**\n * Detailed metrics\n */\n metrics: z.object({\n uptime: z.number().describe('Plugin uptime in milliseconds'),\n memoryUsage: z.number().optional().describe('Memory usage in bytes'),\n cpuUsage: z.number().optional().describe('CPU usage percentage'),\n activeConnections: z.number().optional().describe('Number of active connections'),\n errorRate: z.number().optional().describe('Error rate (errors per minute)'),\n responseTime: z.number().optional().describe('Average response time in ms'),\n }).partial().optional(),\n \n /**\n * List of checks performed\n */\n checks: z.array(z.object({\n name: z.string().describe('Check name'),\n status: z.enum(['passed', 'failed', 'warning']),\n message: z.string().optional(),\n data: z.record(z.string(), z.any()).optional(),\n })).optional(),\n \n /**\n * Dependencies health\n */\n dependencies: z.array(z.object({\n pluginId: z.string(),\n status: PluginHealthStatusSchema,\n message: z.string().optional(),\n })).optional(),\n});\n\n/**\n * Distributed State Configuration\n * Configuration for distributed state management in cluster environments\n */\nexport const DistributedStateConfigSchema = z.object({\n /**\n * Distributed cache provider\n */\n provider: z.enum(['redis', 'etcd', 'custom'])\n .describe('Distributed state backend provider'),\n \n /**\n * Connection URL or endpoints\n */\n endpoints: z.array(z.string()).optional()\n .describe('Backend connection endpoints'),\n \n /**\n * Key prefix for namespacing\n */\n keyPrefix: z.string().optional()\n .describe('Prefix for all keys (e.g., \"plugin:my-plugin:\")'),\n \n /**\n * Time to live in seconds\n */\n ttl: z.number().int().min(0).optional()\n .describe('State expiration time in seconds'),\n \n /**\n * Authentication configuration\n */\n auth: z.object({\n username: z.string().optional(),\n password: z.string().optional(),\n token: z.string().optional(),\n certificate: z.string().optional(),\n }).optional(),\n \n /**\n * Replication settings\n */\n replication: z.object({\n enabled: z.boolean().default(true),\n minReplicas: z.number().int().min(1).default(1),\n }).optional(),\n \n /**\n * Custom provider configuration\n */\n customConfig: z.record(z.string(), z.any()).optional()\n .describe('Provider-specific configuration'),\n});\n\n/**\n * Hot Reload Configuration\n * Controls how plugins handle live updates\n */\nexport const HotReloadConfigSchema = z.object({\n /**\n * Enable hot reload capability\n */\n enabled: z.boolean().default(false),\n \n /**\n * Watch file patterns for auto-reload\n */\n watchPatterns: z.array(z.string()).optional()\n .describe('Glob patterns to watch for changes'),\n \n /**\n * Debounce delay before reloading (milliseconds)\n */\n debounceDelay: z.number().int().min(0).default(1000)\n .describe('Wait time after change detection before reload'),\n \n /**\n * Preserve plugin state during reload\n */\n preserveState: z.boolean().default(true)\n .describe('Keep plugin state across reloads'),\n \n /**\n * State serialization strategy\n */\n stateStrategy: z.enum(['memory', 'disk', 'distributed', 'none']).default('memory')\n .describe('How to preserve state during reload'),\n \n /**\n * Distributed state configuration (required when stateStrategy is \"distributed\")\n */\n distributedConfig: DistributedStateConfigSchema.optional()\n .describe('Configuration for distributed state management'),\n \n /**\n * Graceful shutdown timeout\n */\n shutdownTimeout: z.number().int().min(0).default(30000)\n .describe('Maximum time to wait for graceful shutdown'),\n \n /**\n * Pre-reload hooks\n */\n beforeReload: z.array(z.string()).optional()\n .describe('Hook names to call before reload'),\n \n /**\n * Post-reload hooks\n */\n afterReload: z.array(z.string()).optional()\n .describe('Hook names to call after reload'),\n});\n\n/**\n * Graceful Degradation Configuration\n * Defines how plugin degrades when dependencies fail\n */\nexport const GracefulDegradationSchema = z.object({\n /**\n * Enable graceful degradation\n */\n enabled: z.boolean().default(true),\n \n /**\n * Fallback mode when dependencies fail\n */\n fallbackMode: z.enum([\n 'minimal', // Provide minimal functionality\n 'cached', // Use cached data\n 'readonly', // Allow read-only operations\n 'offline', // Offline mode with local data\n 'disabled', // Disable plugin functionality\n ]).default('minimal'),\n \n /**\n * Critical dependencies that must be available\n */\n criticalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are required for operation'),\n \n /**\n * Optional dependencies that can fail\n */\n optionalDependencies: z.array(z.string()).optional()\n .describe('Plugin IDs that are nice to have but not required'),\n \n /**\n * Feature flags for degraded mode\n */\n degradedFeatures: z.array(z.object({\n feature: z.string().describe('Feature name'),\n enabled: z.boolean().describe('Whether feature is available in degraded mode'),\n reason: z.string().optional(),\n })).optional(),\n \n /**\n * Automatic recovery attempts\n */\n autoRecovery: z.object({\n enabled: z.boolean().default(true),\n retryInterval: z.number().int().min(1000).default(60000)\n .describe('Interval between recovery attempts (ms)'),\n maxAttempts: z.number().int().min(0).default(5)\n .describe('Maximum recovery attempts before giving up'),\n }).optional(),\n});\n\n/**\n * Plugin Update Strategy\n * Defines how plugin handles version updates\n */\nexport const PluginUpdateStrategySchema = z.object({\n /**\n * Update mode\n */\n mode: z.enum([\n 'manual', // Manual updates only\n 'automatic', // Automatic updates\n 'scheduled', // Scheduled update windows\n 'rolling', // Rolling updates with zero downtime\n ]).default('manual'),\n \n /**\n * Version constraints for automatic updates\n */\n autoUpdateConstraints: z.object({\n major: z.boolean().default(false).describe('Allow major version updates'),\n minor: z.boolean().default(true).describe('Allow minor version updates'),\n patch: z.boolean().default(true).describe('Allow patch version updates'),\n }).optional(),\n \n /**\n * Update schedule (for scheduled mode)\n */\n schedule: z.object({\n /**\n * Cron expression for update window\n */\n cron: z.string().optional(),\n \n /**\n * Timezone for schedule\n */\n timezone: z.string().default('UTC'),\n \n /**\n * Maintenance window duration in minutes\n */\n maintenanceWindow: z.number().int().min(1).default(60),\n }).optional(),\n \n /**\n * Rollback configuration\n */\n rollback: z.object({\n enabled: z.boolean().default(true),\n \n /**\n * Automatic rollback on failure\n */\n automatic: z.boolean().default(true),\n \n /**\n * Keep N previous versions for rollback\n */\n keepVersions: z.number().int().min(1).default(3),\n \n /**\n * Rollback timeout in milliseconds\n */\n timeout: z.number().int().min(1000).default(30000),\n }).optional(),\n \n /**\n * Pre-update validation\n */\n validation: z.object({\n /**\n * Run compatibility checks before update\n */\n checkCompatibility: z.boolean().default(true),\n \n /**\n * Run tests before applying update\n */\n runTests: z.boolean().default(false),\n \n /**\n * Test suite to run\n */\n testSuite: z.string().optional(),\n }).optional(),\n});\n\n/**\n * Plugin State Snapshot\n * Captures plugin state for preservation during updates/reloads\n */\nexport const PluginStateSnapshotSchema = z.object({\n /**\n * Plugin identifier\n */\n pluginId: z.string(),\n \n /**\n * Version at time of snapshot\n */\n version: z.string(),\n \n /**\n * Snapshot timestamp\n */\n timestamp: z.string().datetime(),\n \n /**\n * Serialized state data\n */\n state: z.record(z.string(), z.any()),\n \n /**\n * State metadata\n */\n metadata: z.object({\n checksum: z.string().optional().describe('State checksum for verification'),\n compressed: z.boolean().default(false),\n encryption: z.string().optional().describe('Encryption algorithm if encrypted'),\n }).optional(),\n});\n\n/**\n * Advanced Plugin Lifecycle Configuration\n * Complete configuration for advanced lifecycle management\n */\nexport const AdvancedPluginLifecycleConfigSchema = z.object({\n /**\n * Health monitoring configuration\n */\n health: PluginHealthCheckSchema.optional(),\n \n /**\n * Hot reload configuration\n */\n hotReload: HotReloadConfigSchema.optional(),\n \n /**\n * Graceful degradation configuration\n */\n degradation: GracefulDegradationSchema.optional(),\n \n /**\n * Update strategy\n */\n updates: PluginUpdateStrategySchema.optional(),\n \n /**\n * Resource limits\n */\n resources: z.object({\n maxMemory: z.number().int().optional().describe('Maximum memory in bytes'),\n maxCpu: z.number().min(0).max(100).optional().describe('Maximum CPU percentage'),\n maxConnections: z.number().int().optional().describe('Maximum concurrent connections'),\n timeout: z.number().int().optional().describe('Operation timeout in milliseconds'),\n }).optional(),\n \n /**\n * Monitoring and observability\n */\n observability: z.object({\n enableMetrics: z.boolean().default(true),\n enableTracing: z.boolean().default(true),\n enableProfiling: z.boolean().default(false),\n metricsInterval: z.number().int().min(1000).default(60000)\n .describe('Metrics collection interval in ms'),\n }).optional(),\n});\n\n// Export types\nexport type PluginHealthStatus = z.infer<typeof PluginHealthStatusSchema>;\nexport type PluginHealthCheck = z.infer<typeof PluginHealthCheckSchema>;\nexport type PluginHealthReport = z.infer<typeof PluginHealthReportSchema>;\nexport type DistributedStateConfig = z.infer<typeof DistributedStateConfigSchema>;\nexport type HotReloadConfig = z.infer<typeof HotReloadConfigSchema>;\nexport type GracefulDegradation = z.infer<typeof GracefulDegradationSchema>;\nexport type PluginUpdateStrategy = z.infer<typeof PluginUpdateStrategySchema>;\nexport type PluginStateSnapshot = z.infer<typeof PluginStateSnapshotSchema>;\nexport type AdvancedPluginLifecycleConfig = z.infer<typeof AdvancedPluginLifecycleConfigSchema>;\n","import { z } from 'zod';\n\n/**\n * AI Model Registry Protocol\n * \n * Centralized registry for managing AI models, prompt templates, and model versioning.\n * Enables AI-powered ObjectStack applications to discover and use LLMs consistently.\n */\n\n/**\n * Model Provider Type\n */\nexport const ModelProviderSchema = z.enum([\n 'openai',\n 'azure_openai',\n 'anthropic',\n 'google',\n 'cohere',\n 'huggingface',\n 'local',\n 'custom',\n]);\n\n/**\n * Model Capability\n */\nexport const ModelCapabilitySchema = z.object({\n textGeneration: z.boolean().optional().default(true).describe('Supports text generation'),\n textEmbedding: z.boolean().optional().default(false).describe('Supports text embedding'),\n imageGeneration: z.boolean().optional().default(false).describe('Supports image generation'),\n imageUnderstanding: z.boolean().optional().default(false).describe('Supports image understanding'),\n functionCalling: z.boolean().optional().default(false).describe('Supports function calling'),\n codeGeneration: z.boolean().optional().default(false).describe('Supports code generation'),\n reasoning: z.boolean().optional().default(false).describe('Supports advanced reasoning'),\n});\n\n/**\n * Model Limits\n */\nexport const ModelLimitsSchema = z.object({\n maxTokens: z.number().int().positive().describe('Maximum tokens per request'),\n contextWindow: z.number().int().positive().describe('Context window size'),\n maxOutputTokens: z.number().int().positive().optional().describe('Maximum output tokens'),\n rateLimit: z.object({\n requestsPerMinute: z.number().int().positive().optional(),\n tokensPerMinute: z.number().int().positive().optional(),\n }).optional(),\n});\n\n/**\n * Model Pricing\n */\nexport const ModelPricingSchema = z.object({\n currency: z.string().optional().default('USD'),\n inputCostPer1kTokens: z.number().optional().describe('Cost per 1K input tokens'),\n outputCostPer1kTokens: z.number().optional().describe('Cost per 1K output tokens'),\n embeddingCostPer1kTokens: z.number().optional().describe('Cost per 1K embedding tokens'),\n});\n\n/**\n * Model Configuration\n */\nexport const ModelConfigSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique model identifier'),\n name: z.string().describe('Model display name'),\n version: z.string().describe('Model version (e.g., \"gpt-4-turbo-2024-04-09\")'),\n provider: ModelProviderSchema,\n \n /** Capabilities */\n capabilities: ModelCapabilitySchema,\n limits: ModelLimitsSchema,\n \n /** Pricing */\n pricing: ModelPricingSchema.optional(),\n \n /** Configuration */\n endpoint: z.string().url().optional().describe('Custom API endpoint'),\n apiKey: z.string().optional().describe('API key (Warning: Prefer secretRef)'),\n secretRef: z.string().optional().describe('Reference to stored secret (e.g. system:openai_api_key)'),\n region: z.string().optional().describe('Deployment region (e.g., \"us-east-1\")'),\n \n /** Metadata */\n description: z.string().optional(),\n tags: z.array(z.string()).optional().describe('Tags for categorization'),\n deprecated: z.boolean().optional().default(false),\n recommendedFor: z.array(z.string()).optional().describe('Use case recommendations'),\n});\n\n/**\n * Prompt Template Variable\n */\nexport const PromptVariableSchema = z.object({\n name: z.string().describe('Variable name (e.g., \"user_name\", \"context\")'),\n type: z.enum(['string', 'number', 'boolean', 'object', 'array']).default('string'),\n required: z.boolean().default(false),\n defaultValue: z.any().optional(),\n description: z.string().optional(),\n validation: z.object({\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n pattern: z.string().optional(),\n enum: z.array(z.any()).optional(),\n }).optional(),\n});\n\n/**\n * Prompt Template\n */\nexport const PromptTemplateSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique template identifier'),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Template name (snake_case)'),\n label: z.string().describe('Display name'),\n \n /** Template Content */\n system: z.string().optional().describe('System prompt'),\n user: z.string().describe('User prompt template with variables'),\n assistant: z.string().optional().describe('Assistant message prefix'),\n \n /** Variables */\n variables: z.array(PromptVariableSchema).optional().describe('Template variables'),\n \n /** Model Configuration */\n modelId: z.string().optional().describe('Recommended model ID'),\n temperature: z.number().min(0).max(2).optional(),\n maxTokens: z.number().optional(),\n topP: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n presencePenalty: z.number().optional(),\n stopSequences: z.array(z.string()).optional(),\n \n /** Metadata */\n version: z.string().optional().default('1.0.0'),\n description: z.string().optional(),\n category: z.string().optional().describe('Template category (e.g., \"code_generation\", \"support\")'),\n tags: z.array(z.string()).optional(),\n examples: z.array(z.object({\n input: z.record(z.string(), z.any()).describe('Example variable values'),\n output: z.string().describe('Expected output'),\n })).optional(),\n});\n\n/**\n * Model Registry Entry\n */\nexport const ModelRegistryEntrySchema = z.object({\n model: ModelConfigSchema,\n status: z.enum(['active', 'deprecated', 'experimental', 'disabled']).default('active'),\n priority: z.number().int().default(0).describe('Priority for model selection'),\n fallbackModels: z.array(z.string()).optional().describe('Fallback model IDs'),\n healthCheck: z.object({\n enabled: z.boolean().default(true),\n intervalSeconds: z.number().int().default(300),\n lastChecked: z.string().optional().describe('ISO timestamp'),\n status: z.enum(['healthy', 'unhealthy', 'unknown']).default('unknown'),\n }).optional(),\n});\n\n/**\n * Model Registry\n */\nexport const ModelRegistrySchema = z.object({\n name: z.string().describe('Registry name'),\n models: z.record(z.string(), ModelRegistryEntrySchema).describe('Model entries by ID'),\n promptTemplates: z.record(z.string(), PromptTemplateSchema).optional().describe('Prompt templates by name'),\n defaultModel: z.string().optional().describe('Default model ID'),\n enableAutoFallback: z.boolean().default(true).describe('Auto-fallback on errors'),\n});\n\n/**\n * Model Selection Criteria\n */\nexport const ModelSelectionCriteriaSchema = z.object({\n capabilities: z.array(z.string()).optional().describe('Required capabilities'),\n maxCostPer1kTokens: z.number().optional().describe('Maximum acceptable cost'),\n minContextWindow: z.number().optional().describe('Minimum context window size'),\n provider: ModelProviderSchema.optional(),\n tags: z.array(z.string()).optional(),\n excludeDeprecated: z.boolean().default(true),\n});\n\n// Type exports\nexport type ModelProvider = z.infer<typeof ModelProviderSchema>;\nexport type ModelCapability = z.infer<typeof ModelCapabilitySchema>;\nexport type ModelLimits = z.infer<typeof ModelLimitsSchema>;\nexport type ModelPricing = z.infer<typeof ModelPricingSchema>;\nexport type ModelConfig = z.infer<typeof ModelConfigSchema>;\nexport type PromptVariable = z.infer<typeof PromptVariableSchema>;\nexport type PromptTemplate = z.infer<typeof PromptTemplateSchema>;\nexport type ModelRegistryEntry = z.infer<typeof ModelRegistryEntrySchema>;\nexport type ModelRegistry = z.infer<typeof ModelRegistrySchema>;\nexport type ModelSelectionCriteria = z.infer<typeof ModelSelectionCriteriaSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * RAG (Retrieval-Augmented Generation) Pipeline Protocol\n * \n * Defines schemas for building context-aware AI assistants using RAG techniques.\n * Enables vector search, document chunking, embeddings, and retrieval configuration.\n */\n\n/**\n * Vector Store Provider\n */\nexport const VectorStoreProviderSchema = z.enum([\n 'pinecone',\n 'weaviate',\n 'qdrant',\n 'milvus',\n 'chroma',\n 'pgvector',\n 'redis',\n 'opensearch',\n 'elasticsearch',\n 'custom',\n]);\n\n/**\n * Embedding Model\n */\nexport const EmbeddingModelSchema = z.object({\n provider: z.enum(['openai', 'cohere', 'huggingface', 'azure_openai', 'local', 'custom']),\n model: z.string().describe('Model name (e.g., \"text-embedding-3-large\")'),\n dimensions: z.number().int().positive().describe('Embedding vector dimensions'),\n maxTokens: z.number().int().positive().optional().describe('Maximum tokens per embedding'),\n batchSize: z.number().int().positive().optional().default(100).describe('Batch size for embedding'),\n endpoint: z.string().url().optional().describe('Custom endpoint URL'),\n apiKey: z.string().optional().describe('API key'),\n secretRef: z.string().optional().describe('Reference to stored secret'),\n});\n\n/**\n * Text Chunking Strategy\n */\nexport const ChunkingStrategySchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('fixed'),\n chunkSize: z.number().int().positive().describe('Fixed chunk size in tokens/chars'),\n chunkOverlap: z.number().int().min(0).default(0).describe('Overlap between chunks'),\n unit: z.enum(['tokens', 'characters']).default('tokens'),\n }),\n z.object({\n type: z.literal('semantic'),\n model: z.string().optional().describe('Model for semantic chunking'),\n minChunkSize: z.number().int().positive().default(100),\n maxChunkSize: z.number().int().positive().default(1000),\n }),\n z.object({\n type: z.literal('recursive'),\n separators: z.array(z.string()).default(['\\n\\n', '\\n', ' ', '']),\n chunkSize: z.number().int().positive(),\n chunkOverlap: z.number().int().min(0).default(0),\n }),\n z.object({\n type: z.literal('markdown'),\n maxChunkSize: z.number().int().positive().default(1000),\n respectHeaders: z.boolean().default(true).describe('Keep headers with content'),\n respectCodeBlocks: z.boolean().default(true).describe('Keep code blocks intact'),\n }),\n]);\n\n/**\n * Document Metadata Schema\n */\nexport const DocumentMetadataSchema = z.object({\n source: z.string().describe('Document source (file path, URL, etc.)'),\n sourceType: z.enum(['file', 'url', 'api', 'database', 'custom']).optional(),\n title: z.string().optional(),\n author: z.string().optional().describe('Document author'),\n createdAt: z.string().datetime().optional().describe('ISO timestamp'),\n updatedAt: z.string().datetime().optional().describe('ISO timestamp'),\n tags: z.array(z.string()).optional(),\n category: z.string().optional(),\n language: z.string().optional().describe('Document language (ISO 639-1 code)'),\n custom: z.record(z.string(), z.any()).optional().describe('Custom metadata fields'),\n});\n\n/**\n * Document Chunk\n */\nexport const DocumentChunkSchema = z.object({\n id: z.string().describe('Unique chunk identifier'),\n content: z.string().describe('Chunk text content'),\n embedding: z.array(z.number()).optional().describe('Embedding vector'),\n metadata: DocumentMetadataSchema,\n chunkIndex: z.number().int().min(0).describe('Chunk position in document'),\n tokens: z.number().int().optional().describe('Token count'),\n});\n\n/**\n * Retrieval Strategy\n */\nexport const RetrievalStrategySchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('similarity'),\n topK: z.number().int().positive().default(5).describe('Number of results to retrieve'),\n scoreThreshold: z.number().min(0).max(1).optional().describe('Minimum similarity score'),\n }),\n z.object({\n type: z.literal('mmr'),\n topK: z.number().int().positive().default(5),\n fetchK: z.number().int().positive().default(20).describe('Initial fetch size'),\n lambda: z.number().min(0).max(1).default(0.5).describe('Diversity vs relevance (0=diverse, 1=relevant)'),\n }),\n z.object({\n type: z.literal('hybrid'),\n topK: z.number().int().positive().default(5),\n vectorWeight: z.number().min(0).max(1).default(0.7).describe('Weight for vector search'),\n keywordWeight: z.number().min(0).max(1).default(0.3).describe('Weight for keyword search'),\n }),\n z.object({\n type: z.literal('parent_document'),\n topK: z.number().int().positive().default(5),\n retrieveParent: z.boolean().default(true).describe('Retrieve full parent document'),\n }),\n]);\n\n/**\n * Reranking Configuration\n */\nexport const RerankingConfigSchema = z.object({\n enabled: z.boolean().default(false),\n model: z.string().optional().describe('Reranking model name'),\n provider: z.enum(['cohere', 'huggingface', 'custom']).optional(),\n topK: z.number().int().positive().default(3).describe('Final number of results after reranking'),\n});\n\n/**\n * Vector Store Configuration\n */\nexport const VectorStoreConfigSchema = z.object({\n provider: VectorStoreProviderSchema,\n indexName: z.string().describe('Index/collection name'),\n namespace: z.string().optional().describe('Namespace for multi-tenancy'),\n \n /** Connection */\n host: z.string().optional().describe('Vector store host'),\n port: z.number().int().optional().describe('Vector store port'),\n secretRef: z.string().optional().describe('Reference to stored secret'),\n apiKey: z.string().optional().describe('API key or reference to secret'),\n \n /** Configuration */\n dimensions: z.number().int().positive().describe('Vector dimensions'),\n metric: z.enum(['cosine', 'euclidean', 'dotproduct']).optional().default('cosine'),\n \n /** Performance */\n batchSize: z.number().int().positive().optional().default(100),\n connectionPoolSize: z.number().int().positive().optional().default(10),\n timeout: z.number().int().positive().optional().default(30000).describe('Timeout in milliseconds'),\n});\n\n/**\n * Document Loader Configuration\n */\nexport const DocumentLoaderConfigSchema = z.object({\n type: z.enum(['file', 'directory', 'url', 'api', 'database', 'custom']),\n \n /** Source */\n source: z.string().describe('Source path, URL, or identifier'),\n \n /** File Types */\n fileTypes: z.array(z.string()).optional().describe('Accepted file extensions (e.g., [\".pdf\", \".md\"])'),\n \n /** Processing */\n recursive: z.boolean().optional().default(false).describe('Process directories recursively'),\n maxFileSize: z.number().int().optional().describe('Maximum file size in bytes'),\n excludePatterns: z.array(z.string()).optional().describe('Patterns to exclude'),\n \n /** Text Extraction */\n extractImages: z.boolean().optional().default(false).describe('Extract text from images (OCR)'),\n extractTables: z.boolean().optional().default(false).describe('Extract and format tables'),\n \n /** Custom Loader */\n loaderConfig: z.record(z.string(), z.any()).optional().describe('Custom loader-specific config'),\n});\n\n/**\n * Filter Expression Schema\n */\nexport const FilterExpressionSchema = z.object({\n field: z.string().describe('Metadata field to filter'),\n operator: z.enum(['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'in', 'nin', 'contains']).default('eq'),\n value: z.union([z.string(), z.number(), z.boolean(), z.array(z.union([z.string(), z.number()]))]).describe('Filter value'),\n});\n\nexport type FilterGroup = {\n logic: 'and' | 'or';\n filters: (z.infer<typeof FilterExpressionSchema> | FilterGroup)[];\n};\n\nexport const FilterGroupSchema: z.ZodType<FilterGroup, z.ZodTypeDef, any> = z.object({\n logic: z.enum(['and', 'or']).default('and'),\n filters: z.array(z.union([FilterExpressionSchema, z.lazy(() => FilterGroupSchema)])),\n});\n\n/**\n * Standardized Metadata Filter\n */\nexport const MetadataFilterSchema = z.union([\n FilterExpressionSchema,\n FilterGroupSchema,\n // Legacy support for simple key-value map\n z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.union([z.string(), z.number()]))]))\n]);\n\n/**\n * RAG Pipeline Configuration\n */\nexport const RAGPipelineConfigSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Pipeline name (snake_case)'),\n label: z.string().describe('Display name'),\n description: z.string().optional(),\n \n /** Components */\n embedding: EmbeddingModelSchema,\n vectorStore: VectorStoreConfigSchema,\n chunking: ChunkingStrategySchema,\n retrieval: RetrievalStrategySchema,\n reranking: RerankingConfigSchema.optional(),\n \n /** Document Loading */\n loaders: z.array(DocumentLoaderConfigSchema).optional().describe('Document loaders'),\n \n /** Context Management */\n maxContextTokens: z.number().int().positive().default(4000).describe('Maximum tokens in context'),\n contextWindow: z.number().int().positive().optional().describe('LLM context window size'),\n \n /** Metadata Filtering */\n metadataFilters: MetadataFilterSchema.optional().describe('Global filters for retrieval'),\n \n /** Caching */\n enableCache: z.boolean().default(true),\n cacheTTL: z.number().int().positive().default(3600).describe('Cache TTL in seconds'),\n cacheInvalidationStrategy: z.enum(['time_based', 'manual', 'on_update']).default('time_based').optional(),\n});\n\n/**\n * RAG Query Request\n */\nexport const RAGQueryRequestSchema = z.object({\n query: z.string().describe('User query'),\n pipelineName: z.string().describe('Pipeline to use'),\n \n /** Override defaults */\n topK: z.number().int().positive().optional(),\n metadataFilters: z.record(z.string(), z.any()).optional(),\n \n /** Context */\n conversationHistory: z.array(z.object({\n role: z.enum(['user', 'assistant', 'system']),\n content: z.string(),\n })).optional(),\n \n /** Options */\n includeMetadata: z.boolean().default(true),\n includeSources: z.boolean().default(true),\n});\n\n/**\n * RAG Query Response\n */\nexport const RAGQueryResponseSchema = z.object({\n query: z.string(),\n results: z.array(z.object({\n content: z.string(),\n score: z.number(),\n metadata: DocumentMetadataSchema.optional(),\n chunkId: z.string().optional(),\n })),\n context: z.string().describe('Assembled context for LLM'),\n tokens: TokenUsageSchema.optional().describe('Token usage for this query'),\n cost: z.number().nonnegative().optional().describe('Cost for this query in USD'),\n retrievalTime: z.number().optional().describe('Retrieval time in milliseconds'),\n});\n\n/**\n * RAG Pipeline Status\n */\nexport const RAGPipelineStatusSchema = z.object({\n name: z.string(),\n status: z.enum(['active', 'indexing', 'error', 'disabled']),\n documentsIndexed: z.number().int().min(0),\n lastIndexed: z.string().datetime().optional().describe('ISO timestamp'),\n errorMessage: z.string().optional(),\n health: z.object({\n vectorStore: z.enum(['healthy', 'unhealthy', 'unknown']),\n embeddingService: z.enum(['healthy', 'unhealthy', 'unknown']),\n }).optional(),\n});\n\n// Type exports\nexport type VectorStoreProvider = z.infer<typeof VectorStoreProviderSchema>;\nexport type EmbeddingModel = z.infer<typeof EmbeddingModelSchema>;\nexport type ChunkingStrategy = z.infer<typeof ChunkingStrategySchema>;\nexport type DocumentMetadata = z.infer<typeof DocumentMetadataSchema>;\nexport type DocumentChunk = z.infer<typeof DocumentChunkSchema>;\nexport type RetrievalStrategy = z.infer<typeof RetrievalStrategySchema>;\nexport type RerankingConfig = z.infer<typeof RerankingConfigSchema>;\nexport type VectorStoreConfig = z.infer<typeof VectorStoreConfigSchema>;\nexport type DocumentLoaderConfig = z.infer<typeof DocumentLoaderConfigSchema>;\nexport type RAGPipelineConfig = z.infer<typeof RAGPipelineConfigSchema>;\nexport type RAGQueryRequest = z.infer<typeof RAGQueryRequestSchema>;\nexport type RAGQueryResponse = z.infer<typeof RAGQueryResponseSchema>;\nexport type RAGPipelineStatus = z.infer<typeof RAGPipelineStatusSchema>;\n","import { z } from 'zod';\n\n/**\n * AI Cost Tracking Protocol\n * \n * Monitor and control AI API costs with budgets, alerts, and analytics.\n * Provides cost optimization, budget enforcement, and financial reporting.\n */\n\n/**\n * Token Usage Schema\n * Standardized across all AI operations\n */\nexport const TokenUsageSchema = z.object({\n prompt: z.number().int().nonnegative().describe('Input tokens'),\n completion: z.number().int().nonnegative().describe('Output tokens'),\n total: z.number().int().nonnegative().describe('Total tokens'),\n});\n\nexport type TokenUsage = z.infer<typeof TokenUsageSchema>;\n\n/**\n * AI Operation Cost Schema\n * Unified cost tracking for all AI operations\n */\nexport const AIOperationCostSchema = z.object({\n operationId: z.string(),\n operationType: z.enum(['conversation', 'orchestration', 'prediction', 'rag', 'nlq']),\n agentName: z.string().optional().describe('Agent that performed the operation'),\n modelId: z.string(),\n tokens: TokenUsageSchema,\n cost: z.number().nonnegative().describe('Cost in USD'),\n timestamp: z.string().datetime(),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport type AIOperationCost = z.infer<typeof AIOperationCostSchema>;\n\n/**\n * Cost Metric Type\n */\nexport const CostMetricTypeSchema = z.enum([\n 'token', // Cost per token\n 'request', // Cost per API request\n 'character', // Cost per character (e.g., TTS)\n 'second', // Cost per second (e.g., speech)\n 'image', // Cost per image\n 'embedding', // Cost per embedding\n]);\n\n/**\n * Billing Period\n */\nexport const BillingPeriodSchema = z.enum([\n 'hourly',\n 'daily',\n 'weekly',\n 'monthly',\n 'quarterly',\n 'yearly',\n 'custom',\n]);\n\n/**\n * Cost Entry\n * Extended from AIOperationCostSchema with additional tracking fields\n */\nexport const CostEntrySchema = z.object({\n /** Identity */\n id: z.string().describe('Unique cost entry ID'),\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Request Details */\n modelId: z.string().describe('AI model used'),\n provider: z.string().describe('AI provider (e.g., \"openai\", \"anthropic\")'),\n operation: z.string().describe('Operation type (e.g., \"chat_completion\", \"embedding\")'),\n \n /** Usage Metrics - Standardized */\n tokens: TokenUsageSchema.optional().describe('Standardized token usage'),\n requestCount: z.number().int().positive().default(1),\n \n /** Cost Calculation */\n promptCost: z.number().nonnegative().optional().describe('Cost of prompt tokens'),\n completionCost: z.number().nonnegative().optional().describe('Cost of completion tokens'),\n totalCost: z.number().nonnegative().describe('Total cost in base currency'),\n currency: z.string().default('USD'),\n \n /** Context */\n sessionId: z.string().optional().describe('Conversation session ID'),\n userId: z.string().optional().describe('User who triggered the request'),\n agentId: z.string().optional().describe('AI agent ID'),\n object: z.string().optional().describe('Related object (e.g., \"case\", \"project\")'),\n recordId: z.string().optional().describe('Related record ID'),\n \n /** Metadata */\n tags: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Budget Type\n */\nexport const BudgetTypeSchema = z.enum([\n 'global', // Organization-wide budget\n 'user', // Per-user budget\n 'agent', // Per-agent budget\n 'object', // Per-object budget (e.g., per case)\n 'project', // Per-project budget\n 'department', // Per-department budget\n]);\n\n/**\n * Budget Limit\n */\nexport const BudgetLimitSchema = z.object({\n /** Limit Configuration */\n type: BudgetTypeSchema,\n scope: z.string().optional().describe('Scope identifier (userId, agentId, etc.)'),\n \n /** Limit Amount */\n maxCost: z.number().nonnegative().describe('Maximum cost limit'),\n currency: z.string().default('USD'),\n \n /** Period */\n period: BillingPeriodSchema,\n customPeriodDays: z.number().int().positive().optional().describe('Custom period in days'),\n \n /** Soft Limits & Warnings */\n softLimit: z.number().nonnegative().optional().describe('Soft limit for warnings'),\n warnThresholds: z.array(z.number().min(0).max(1)).optional().describe('Warning thresholds (e.g., [0.5, 0.8, 0.95])'),\n \n /** Enforcement */\n enforced: z.boolean().default(true).describe('Block requests when exceeded'),\n gracePeriodSeconds: z.number().int().nonnegative().default(0).describe('Grace period after limit exceeded'),\n \n /** Rollover */\n allowRollover: z.boolean().default(false).describe('Allow unused budget to rollover'),\n maxRolloverPercentage: z.number().min(0).max(1).optional().describe('Max rollover as % of limit'),\n \n /** Metadata */\n name: z.string().optional().describe('Budget name'),\n description: z.string().optional(),\n active: z.boolean().default(true),\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Budget Status\n */\nexport const BudgetStatusSchema = z.object({\n /** Budget Reference */\n budgetId: z.string(),\n type: BudgetTypeSchema,\n scope: z.string().optional(),\n \n /** Current Period */\n periodStart: z.string().datetime().describe('ISO 8601 timestamp'),\n periodEnd: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Usage */\n currentCost: z.number().nonnegative().default(0),\n maxCost: z.number().nonnegative(),\n currency: z.string().default('USD'),\n \n /** Status */\n percentageUsed: z.number().nonnegative().describe('Usage as percentage (can exceed 1.0 if over budget)'),\n remainingCost: z.number().describe('Remaining budget (can be negative if exceeded)'),\n isExceeded: z.boolean().default(false),\n isWarning: z.boolean().default(false),\n \n /** Projections */\n projectedCost: z.number().nonnegative().optional().describe('Projected cost for period'),\n projectedOverage: z.number().nonnegative().optional().describe('Projected overage'),\n \n /** Last Update */\n lastUpdated: z.string().datetime().describe('ISO 8601 timestamp'),\n});\n\n/**\n * Cost Alert Type\n */\nexport const CostAlertTypeSchema = z.enum([\n 'threshold_warning', // Warning threshold reached\n 'threshold_critical', // Critical threshold reached\n 'limit_exceeded', // Budget limit exceeded\n 'anomaly_detected', // Unusual spending pattern\n 'projection_exceeded', // Projected to exceed budget\n]);\n\n/**\n * Cost Alert\n */\nexport const CostAlertSchema = z.object({\n /** Alert Details */\n id: z.string(),\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n type: CostAlertTypeSchema,\n severity: z.enum(['info', 'warning', 'critical']),\n \n /** Budget Context */\n budgetId: z.string().optional(),\n budgetType: BudgetTypeSchema.optional(),\n scope: z.string().optional(),\n \n /** Alert Information */\n message: z.string().describe('Alert message'),\n currentCost: z.number().nonnegative(),\n maxCost: z.number().nonnegative().optional(),\n threshold: z.number().min(0).max(1).optional(),\n currency: z.string().default('USD'),\n \n /** Recommendations */\n recommendations: z.array(z.string()).optional(),\n \n /** Status */\n acknowledged: z.boolean().default(false),\n acknowledgedBy: z.string().optional(),\n acknowledgedAt: z.string().datetime().optional(),\n resolved: z.boolean().default(false),\n \n /** Metadata */\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Cost Breakdown Dimension\n */\nexport const CostBreakdownDimensionSchema = z.enum([\n 'model',\n 'provider',\n 'user',\n 'agent',\n 'object',\n 'operation',\n 'date',\n 'hour',\n 'tag',\n]);\n\n/**\n * Cost Breakdown Entry\n */\nexport const CostBreakdownEntrySchema = z.object({\n dimension: CostBreakdownDimensionSchema,\n value: z.string().describe('Dimension value (e.g., model ID, user ID)'),\n \n /** Metrics */\n totalCost: z.number().nonnegative(),\n requestCount: z.number().int().nonnegative(),\n totalTokens: z.number().int().nonnegative().optional(),\n \n /** Share */\n percentageOfTotal: z.number().min(0).max(1),\n \n /** Time Range */\n periodStart: z.string().datetime().optional(),\n periodEnd: z.string().datetime().optional(),\n});\n\n/**\n * Cost Analytics\n */\nexport const CostAnalyticsSchema = z.object({\n /** Time Range */\n periodStart: z.string().datetime().describe('ISO 8601 timestamp'),\n periodEnd: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Summary Metrics */\n totalCost: z.number().nonnegative(),\n totalRequests: z.number().int().nonnegative(),\n totalTokens: z.number().int().nonnegative().optional(),\n currency: z.string().default('USD'),\n \n /** Averages */\n averageCostPerRequest: z.number().nonnegative(),\n averageCostPerToken: z.number().nonnegative().optional(),\n averageRequestsPerDay: z.number().nonnegative(),\n \n /** Trends */\n costTrend: z.enum(['increasing', 'decreasing', 'stable']).optional(),\n trendPercentage: z.number().optional().describe('% change vs previous period'),\n \n /** Breakdowns */\n byModel: z.array(CostBreakdownEntrySchema).optional(),\n byProvider: z.array(CostBreakdownEntrySchema).optional(),\n byUser: z.array(CostBreakdownEntrySchema).optional(),\n byAgent: z.array(CostBreakdownEntrySchema).optional(),\n byOperation: z.array(CostBreakdownEntrySchema).optional(),\n byDate: z.array(CostBreakdownEntrySchema).optional(),\n \n /** Top Consumers */\n topModels: z.array(CostBreakdownEntrySchema).optional(),\n topUsers: z.array(CostBreakdownEntrySchema).optional(),\n topAgents: z.array(CostBreakdownEntrySchema).optional(),\n \n /** Efficiency Metrics */\n tokensPerDollar: z.number().nonnegative().optional(),\n requestsPerDollar: z.number().nonnegative().optional(),\n});\n\n/**\n * Cost Optimization Recommendation\n */\nexport const CostOptimizationRecommendationSchema = z.object({\n /** Recommendation Details */\n id: z.string(),\n type: z.enum([\n 'switch_model',\n 'reduce_tokens',\n 'batch_requests',\n 'cache_results',\n 'adjust_parameters',\n 'limit_usage',\n ]),\n \n /** Impact */\n title: z.string(),\n description: z.string(),\n estimatedSavings: z.number().nonnegative().optional(),\n savingsPercentage: z.number().min(0).max(1).optional(),\n \n /** Implementation */\n priority: z.enum(['low', 'medium', 'high']),\n effort: z.enum(['low', 'medium', 'high']),\n actionable: z.boolean().default(true),\n actionSteps: z.array(z.string()).optional(),\n \n /** Context */\n targetModel: z.string().optional(),\n alternativeModel: z.string().optional(),\n affectedUsers: z.array(z.string()).optional(),\n \n /** Status */\n status: z.enum(['pending', 'accepted', 'rejected', 'implemented']).default('pending'),\n implementedAt: z.string().datetime().optional(),\n});\n\n/**\n * Cost Report\n */\nexport const CostReportSchema = z.object({\n /** Report Metadata */\n id: z.string(),\n name: z.string(),\n generatedAt: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Time Range */\n periodStart: z.string().datetime().describe('ISO 8601 timestamp'),\n periodEnd: z.string().datetime().describe('ISO 8601 timestamp'),\n period: BillingPeriodSchema,\n \n /** Analytics */\n analytics: CostAnalyticsSchema,\n \n /** Budgets */\n budgets: z.array(BudgetStatusSchema).optional(),\n \n /** Alerts */\n alerts: z.array(CostAlertSchema).optional(),\n activeAlertCount: z.number().int().nonnegative().default(0),\n \n /** Recommendations */\n recommendations: z.array(CostOptimizationRecommendationSchema).optional(),\n \n /** Comparisons */\n previousPeriodCost: z.number().nonnegative().optional(),\n costChange: z.number().optional().describe('Change vs previous period'),\n costChangePercentage: z.number().optional(),\n \n /** Forecasting */\n forecastedCost: z.number().nonnegative().optional(),\n forecastedBudgetStatus: z.enum(['under', 'at', 'over']).optional(),\n \n /** Export */\n format: z.enum(['summary', 'detailed', 'executive']).default('summary'),\n currency: z.string().default('USD'),\n});\n\n/**\n * Cost Query Filters\n */\nexport const CostQueryFiltersSchema = z.object({\n /** Time Range */\n startDate: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n endDate: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n \n /** Dimensions */\n modelIds: z.array(z.string()).optional(),\n providers: z.array(z.string()).optional(),\n userIds: z.array(z.string()).optional(),\n agentIds: z.array(z.string()).optional(),\n operations: z.array(z.string()).optional(),\n sessionIds: z.array(z.string()).optional(),\n \n /** Cost Range */\n minCost: z.number().nonnegative().optional(),\n maxCost: z.number().nonnegative().optional(),\n \n /** Tags */\n tags: z.array(z.string()).optional(),\n \n /** Aggregation */\n groupBy: z.array(CostBreakdownDimensionSchema).optional(),\n \n /** Sorting */\n orderBy: z.enum(['timestamp', 'cost', 'tokens']).optional().default('timestamp'),\n orderDirection: z.enum(['asc', 'desc']).optional().default('desc'),\n \n /** Pagination */\n limit: z.number().int().positive().optional(),\n offset: z.number().int().nonnegative().optional(),\n});\n\n// Type exports\nexport type CostMetricType = z.infer<typeof CostMetricTypeSchema>;\nexport type BillingPeriod = z.infer<typeof BillingPeriodSchema>;\nexport type CostEntry = z.infer<typeof CostEntrySchema>;\nexport type BudgetType = z.infer<typeof BudgetTypeSchema>;\nexport type BudgetLimit = z.infer<typeof BudgetLimitSchema>;\nexport type BudgetStatus = z.infer<typeof BudgetStatusSchema>;\nexport type CostAlertType = z.infer<typeof CostAlertTypeSchema>;\nexport type CostAlert = z.infer<typeof CostAlertSchema>;\nexport type CostBreakdownDimension = z.infer<typeof CostBreakdownDimensionSchema>;\nexport type CostBreakdownEntry = z.infer<typeof CostBreakdownEntrySchema>;\nexport type CostAnalytics = z.infer<typeof CostAnalyticsSchema>;\nexport type CostOptimizationRecommendation = z.infer<typeof CostOptimizationRecommendationSchema>;\nexport type CostReport = z.infer<typeof CostReportSchema>;\nexport type CostQueryFilters = z.infer<typeof CostQueryFiltersSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * Natural Language Query (NLQ) Protocol\n * \n * Transforms natural language queries into ObjectQL AST (Abstract Syntax Tree).\n * Enables business users to query data using natural language instead of writing code.\n */\n\n/**\n * Query Intent Type\n */\nexport const QueryIntentSchema = z.enum([\n 'select', // Retrieve data (e.g., \"show me all accounts\")\n 'aggregate', // Aggregation (e.g., \"total revenue by region\")\n 'filter', // Filter data (e.g., \"accounts created last month\")\n 'sort', // Sort data (e.g., \"top 10 opportunities by value\")\n 'compare', // Compare values (e.g., \"compare this quarter vs last quarter\")\n 'trend', // Analyze trends (e.g., \"sales trend over time\")\n 'insight', // Generate insights (e.g., \"what's unusual about this data\")\n 'create', // Create record (e.g., \"create a new task\")\n 'update', // Update record (e.g., \"mark this as complete\")\n 'delete', // Delete record (e.g., \"remove this contact\")\n]);\n\n/**\n * Entity Recognition\n */\nexport const EntitySchema = z.object({\n type: z.enum(['object', 'field', 'value', 'operator', 'function', 'timeframe']),\n text: z.string().describe('Original text from query'),\n value: z.any().describe('Normalized value'),\n confidence: z.number().min(0).max(1).describe('Confidence score'),\n span: z.tuple([z.number(), z.number()]).optional().describe('Character span in query'),\n});\n\n/**\n * Timeframe Detection\n */\nexport const TimeframeSchema = z.object({\n type: z.enum(['absolute', 'relative']),\n start: z.string().optional().describe('Start date (ISO format)'),\n end: z.string().optional().describe('End date (ISO format)'),\n relative: z.object({\n unit: z.enum(['hour', 'day', 'week', 'month', 'quarter', 'year']),\n value: z.number().int(),\n direction: z.enum(['past', 'future', 'current']).default('past'),\n }).optional(),\n text: z.string().describe('Original timeframe text'),\n});\n\n/**\n * NLQ Field Mapping\n * Maps natural language field names to actual object fields\n */\nexport const NLQFieldMappingSchema = z.object({\n naturalLanguage: z.string().describe('NL field name (e.g., \"customer name\")'),\n objectField: z.string().describe('Actual field name (e.g., \"account.name\")'),\n object: z.string().describe('Object name'),\n field: z.string().describe('Field name'),\n confidence: z.number().min(0).max(1),\n});\n\n/**\n * Query Context\n */\nexport const QueryContextSchema = z.object({\n /** User Information */\n userId: z.string().optional(),\n userRole: z.string().optional(),\n \n /** Current Context */\n currentObject: z.string().optional().describe('Current object being viewed'),\n currentRecordId: z.string().optional().describe('Current record ID'),\n \n /** Conversation History */\n conversationHistory: z.array(z.object({\n query: z.string(),\n timestamp: z.string(),\n intent: QueryIntentSchema.optional(),\n })).optional(),\n \n /** Preferences */\n defaultLimit: z.number().int().default(100),\n timezone: z.string().default('UTC'),\n locale: z.string().default('en-US'),\n});\n\n/**\n * NLQ Parse Result\n */\nexport const NLQParseResultSchema = z.object({\n /** Original Query */\n originalQuery: z.string(),\n \n /** Intent Detection */\n intent: QueryIntentSchema,\n intentConfidence: z.number().min(0).max(1),\n \n /** Entity Recognition */\n entities: z.array(EntitySchema),\n \n /** Object & Field Resolution */\n targetObject: z.string().optional().describe('Primary object to query'),\n fields: z.array(NLQFieldMappingSchema).optional(),\n \n /** Temporal Information */\n timeframe: TimeframeSchema.optional(),\n \n /** Query AST */\n ast: z.record(z.string(), z.any()).describe('Generated ObjectQL AST'),\n \n /** Metadata */\n confidence: z.number().min(0).max(1).describe('Overall confidence'),\n ambiguities: z.array(z.object({\n type: z.string(),\n description: z.string(),\n suggestions: z.array(z.string()).optional(),\n })).optional().describe('Detected ambiguities requiring clarification'),\n \n /** Alternative Interpretations */\n alternatives: z.array(z.object({\n interpretation: z.string(),\n confidence: z.number(),\n ast: z.any(),\n })).optional(),\n});\n\n/**\n * NLQ Request\n */\nexport const NLQRequestSchema = z.object({\n /** Query */\n query: z.string().describe('Natural language query'),\n \n /** Context */\n context: QueryContextSchema.optional(),\n \n /** Options */\n includeAlternatives: z.boolean().default(false).describe('Include alternative interpretations'),\n maxAlternatives: z.number().int().default(3),\n minConfidence: z.number().min(0).max(1).default(0.5).describe('Minimum confidence threshold'),\n \n /** Execution */\n executeQuery: z.boolean().default(false).describe('Execute query and return results'),\n maxResults: z.number().int().optional().describe('Maximum results to return'),\n});\n\n/**\n * NLQ Response\n */\nexport const NLQResponseSchema = z.object({\n /** Parse Result */\n parseResult: NLQParseResultSchema,\n \n /** Query Results (if executeQuery = true) */\n results: z.array(z.record(z.string(), z.any())).optional().describe('Query results'),\n totalCount: z.number().int().optional(),\n \n /** Execution Metadata */\n executionTime: z.number().optional().describe('Execution time in milliseconds'),\n needsClarification: z.boolean().describe('Whether query needs clarification'),\n \n /** Cost Tracking */\n tokens: TokenUsageSchema.optional().describe('Token usage for this query'),\n cost: z.number().nonnegative().optional().describe('Cost for this query in USD'),\n \n /** Suggestions */\n suggestions: z.array(z.string()).optional().describe('Query refinement suggestions'),\n});\n\n/**\n * NLQ Training Example\n */\nexport const NLQTrainingExampleSchema = z.object({\n /** Input */\n query: z.string().describe('Natural language query'),\n context: QueryContextSchema.optional(),\n \n /** Expected Output */\n expectedIntent: QueryIntentSchema,\n expectedObject: z.string().optional(),\n expectedAST: z.record(z.string(), z.any()).describe('Expected ObjectQL AST'),\n \n /** Metadata */\n category: z.string().optional().describe('Example category'),\n tags: z.array(z.string()).optional(),\n notes: z.string().optional(),\n});\n\n/**\n * NLQ Model Configuration\n */\nexport const NLQModelConfigSchema = z.object({\n /** Model */\n modelId: z.string().describe('Model from registry'),\n \n /** Prompt Engineering */\n systemPrompt: z.string().optional().describe('System prompt override'),\n includeSchema: z.boolean().default(true).describe('Include object schema in prompt'),\n includeExamples: z.boolean().default(true).describe('Include examples in prompt'),\n \n /** Intent Detection */\n enableIntentDetection: z.boolean().default(true),\n intentThreshold: z.number().min(0).max(1).default(0.7),\n \n /** Entity Recognition */\n enableEntityRecognition: z.boolean().default(true),\n entityRecognitionModel: z.string().optional(),\n \n /** Field Resolution */\n enableFuzzyMatching: z.boolean().default(true).describe('Fuzzy match field names'),\n fuzzyMatchThreshold: z.number().min(0).max(1).default(0.8),\n \n /** Temporal Processing */\n enableTimeframeDetection: z.boolean().default(true),\n defaultTimeframe: z.string().optional().describe('Default timeframe if not specified'),\n \n /** Performance */\n enableCaching: z.boolean().default(true),\n cacheTTL: z.number().int().default(3600).describe('Cache TTL in seconds'),\n});\n\n/**\n * NLQ Analytics\n */\nexport const NLQAnalyticsSchema = z.object({\n /** Query Metrics */\n totalQueries: z.number().int(),\n successfulQueries: z.number().int(),\n failedQueries: z.number().int(),\n averageConfidence: z.number().min(0).max(1),\n \n /** Intent Distribution */\n intentDistribution: z.record(z.string(), z.number().int()).describe('Count by intent type'),\n \n /** Common Patterns */\n topQueries: z.array(z.object({\n query: z.string(),\n count: z.number().int(),\n averageConfidence: z.number(),\n })),\n \n /** Performance */\n averageParseTime: z.number().describe('Average parse time in milliseconds'),\n averageExecutionTime: z.number().optional(),\n \n /** Issues */\n lowConfidenceQueries: z.array(z.object({\n query: z.string(),\n confidence: z.number(),\n timestamp: z.string().datetime(),\n })),\n \n /** Timeframe */\n startDate: z.string().datetime().describe('ISO timestamp'),\n endDate: z.string().datetime().describe('ISO timestamp'),\n});\n\n/**\n * Field Synonym Configuration\n */\nexport const FieldSynonymConfigSchema = z.object({\n object: z.string().describe('Object name'),\n field: z.string().describe('Field name'),\n synonyms: z.array(z.string()).describe('Natural language synonyms'),\n examples: z.array(z.string()).optional().describe('Example queries using synonyms'),\n});\n\n/**\n * Query Template\n */\nexport const QueryTemplateSchema = z.object({\n id: z.string(),\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Template name (snake_case)'),\n label: z.string(),\n \n /** Template */\n pattern: z.string().describe('Query pattern with placeholders'),\n variables: z.array(z.object({\n name: z.string(),\n type: z.enum(['object', 'field', 'value', 'timeframe']),\n required: z.boolean().default(false),\n })),\n \n /** Generated AST */\n astTemplate: z.record(z.string(), z.any()).describe('AST template with variable placeholders'),\n \n /** Metadata */\n category: z.string().optional(),\n examples: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n});\n\n// Type exports\nexport type QueryIntent = z.infer<typeof QueryIntentSchema>;\nexport type Entity = z.infer<typeof EntitySchema>;\nexport type Timeframe = z.infer<typeof TimeframeSchema>;\nexport type NLQFieldMapping = z.infer<typeof NLQFieldMappingSchema>;\nexport type QueryContext = z.infer<typeof QueryContextSchema>;\nexport type NLQParseResult = z.infer<typeof NLQParseResultSchema>;\nexport type NLQRequest = z.infer<typeof NLQRequestSchema>;\nexport type NLQResponse = z.infer<typeof NLQResponseSchema>;\nexport type NLQTrainingExample = z.infer<typeof NLQTrainingExampleSchema>;\nexport type NLQModelConfig = z.infer<typeof NLQModelConfigSchema>;\nexport type NLQAnalytics = z.infer<typeof NLQAnalyticsSchema>;\nexport type FieldSynonymConfig = z.infer<typeof FieldSynonymConfigSchema>;\nexport type QueryTemplate = z.infer<typeof QueryTemplateSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * AI Agentic Orchestration Protocol\n * \n * Defines intelligent orchestration flows where AI Agents leverage cognitive skills\n * to automate business processes with dynamic reasoning, planning, and execution.\n * \n * Distinction from Standard Workflows:\n * - Standard Workflow: Deterministic (If X then Y). defined in src/data/workflow.zod.ts\n * - AI Orchestration: Probabilistic & Agentic (Goal -> Plan -> Execute).\n * \n * Use Cases:\n * - Complex Support Triage (Analyze sentiment + intent -> Draft response -> Route)\n * - Intelligent Document Processing (OCR -> Extract Entities -> Validate -> Entry)\n * - Research Agent (Search Web -> Summarize -> Generate Report)\n */\n\n/**\n * Orchestration Trigger Types\n * Defines when an AI Agentic Flow should be initiated\n */\nexport const AIOrchestrationTriggerSchema = z.enum([\n 'record_created', // When a new record is created\n 'record_updated', // When a record is updated\n 'field_changed', // When specific field(s) change\n 'scheduled', // Time-based trigger (cron)\n 'manual', // User-initiated trigger\n 'webhook', // External system trigger\n 'batch', // Batch processing trigger\n]);\n\n/**\n * AI Task Types\n * Cognitive operations that can be performed by AI\n */\nexport const AITaskTypeSchema = z.enum([\n 'classify', // Categorize content into predefined classes\n 'extract', // Extract structured data from unstructured content\n 'summarize', // Generate concise summaries of text\n 'generate', // Generate new content (text, code, etc.)\n 'predict', // Make predictions based on historical data\n 'translate', // Translate text between languages\n 'sentiment', // Analyze sentiment (positive, negative, neutral)\n 'entity_recognition', // Identify named entities (people, places, etc.)\n 'anomaly_detection', // Detect outliers or unusual patterns\n 'recommendation', // Recommend items or actions\n]);\n\n/**\n * AI Task Configuration\n * Individual AI task within a workflow\n */\nexport const AITaskSchema = z.object({\n /** Task Identity */\n id: z.string().optional().describe('Optional task ID for referencing'),\n name: z.string().describe('Human-readable task name'),\n type: AITaskTypeSchema,\n \n /** Model Configuration */\n model: z.string().optional().describe('Model ID from registry (uses default if not specified)'),\n promptTemplate: z.string().optional().describe('Prompt template ID for this task'),\n \n /** Input Configuration */\n inputFields: z.array(z.string()).describe('Source fields to process (e.g., [\"description\", \"comments\"])'),\n inputSchema: z.record(z.string(), z.any()).optional().describe('Validation schema for inputs'),\n inputContext: z.record(z.string(), z.any()).optional().describe('Additional context for the AI model'),\n \n /** Output Configuration */\n outputField: z.string().describe('Target field to store the result'),\n outputSchema: z.record(z.string(), z.any()).optional().describe('Validation schema for output'),\n outputFormat: z.enum(['text', 'json', 'number', 'boolean', 'array']).optional().default('text'),\n \n /** Classification-specific options */\n classes: z.array(z.string()).optional().describe('Valid classes for classification tasks'),\n multiClass: z.boolean().optional().default(false).describe('Allow multiple classes to be selected'),\n \n /** Extraction-specific options */\n extractionSchema: z.record(z.string(), z.any()).optional().describe('JSON schema for structured extraction'),\n \n /** Generation-specific options */\n maxLength: z.number().optional().describe('Maximum length for generated content'),\n temperature: z.number().min(0).max(2).optional().describe('Model temperature override'),\n \n /** Error Handling */\n fallbackValue: z.any().optional().describe('Fallback value if AI task fails'),\n retryAttempts: z.number().int().min(0).max(5).optional().default(1),\n \n /** Conditional Execution */\n condition: z.string().optional().describe('Formula condition - task only runs if TRUE'),\n \n /** Task Metadata */\n description: z.string().optional(),\n active: z.boolean().optional().default(true),\n});\n\n/**\n * Workflow Field Condition\n * Specifies which field changes trigger the workflow\n */\nexport const WorkflowFieldConditionSchema = z.object({\n field: z.string().describe('Field name to monitor'),\n operator: z.enum(['changed', 'changed_to', 'changed_from', 'is', 'is_not']).optional().default('changed'),\n value: z.any().optional().describe('Value to compare against (for changed_to/changed_from/is/is_not)'),\n});\n\n/**\n * Workflow Schedule Configuration\n * For time-based workflow execution\n */\nexport const WorkflowScheduleSchema = z.object({\n type: z.enum(['cron', 'interval', 'daily', 'weekly', 'monthly']).default('cron'),\n cron: z.string().optional().describe('Cron expression (required if type is \"cron\")'),\n interval: z.number().optional().describe('Interval in minutes (required if type is \"interval\")'),\n time: z.string().optional().describe('Time of day for daily schedules (HH:MM format)'),\n dayOfWeek: z.number().int().min(0).max(6).optional().describe('Day of week for weekly (0=Sunday)'),\n dayOfMonth: z.number().int().min(1).max(31).optional().describe('Day of month for monthly'),\n timezone: z.string().optional().default('UTC'),\n});\n\n/**\n * Post-Processing Action\n * Actions to execute after AI tasks complete\n */\nexport const PostProcessingActionSchema = z.object({\n type: z.enum(['field_update', 'send_email', 'create_record', 'update_related', 'trigger_flow', 'webhook']),\n name: z.string().describe('Action name'),\n config: z.record(z.string(), z.any()).describe('Action-specific configuration'),\n condition: z.string().optional().describe('Execute only if condition is TRUE'),\n});\n\n/**\n * AI Agentic Orchestration Schema\n * Complete workflow definition with AI-powered tasks\n */\nexport const AIOrchestrationSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Orchestration unique identifier (snake_case)'),\n label: z.string().describe('Display name'),\n description: z.string().optional(),\n \n /** Target Object */\n objectName: z.string().describe('Target object for this orchestration'),\n \n /** Trigger Configuration */\n trigger: AIOrchestrationTriggerSchema,\n \n /** Trigger-specific configuration */\n fieldConditions: z.array(WorkflowFieldConditionSchema).optional().describe('Fields to monitor (for field_changed trigger)'),\n schedule: WorkflowScheduleSchema.optional().describe('Schedule configuration (for scheduled trigger)'),\n webhookConfig: z.object({\n secret: z.string().optional().describe('Webhook verification secret'),\n headers: z.record(z.string(), z.string()).optional().describe('Expected headers'),\n }).optional().describe('Webhook configuration (for webhook trigger)'),\n \n /** Entry Criteria */\n entryCriteria: z.string().optional().describe('Formula condition - workflow only runs if TRUE'),\n \n /** AI Tasks */\n aiTasks: z.array(AITaskSchema).describe('AI tasks to execute in sequence'),\n \n /** Post-Processing */\n postActions: z.array(PostProcessingActionSchema).optional().describe('Actions after AI tasks complete'),\n \n /** Execution Options */\n executionMode: z.enum(['sequential', 'parallel']).optional().default('sequential').describe('How to execute multiple AI tasks'),\n stopOnError: z.boolean().optional().default(false).describe('Stop workflow if any task fails'),\n \n /** Performance & Limits */\n timeout: z.number().optional().describe('Maximum execution time in seconds'),\n priority: z.enum(['low', 'normal', 'high', 'critical']).optional().default('normal'),\n \n /** Monitoring & Logging */\n enableLogging: z.boolean().optional().default(true),\n enableMetrics: z.boolean().optional().default(true),\n notifyOnFailure: z.array(z.string()).optional().describe('User IDs to notify on failure'),\n \n /** Status */\n active: z.boolean().optional().default(true),\n version: z.string().optional().default('1.0.0'),\n \n /** Metadata */\n tags: z.array(z.string()).optional(),\n category: z.string().optional().describe('Workflow category (e.g., \"support\", \"sales\", \"hr\")'),\n owner: z.string().optional().describe('User ID of workflow owner'),\n createdAt: z.string().datetime().optional().describe('ISO timestamp'),\n updatedAt: z.string().datetime().optional().describe('ISO timestamp'),\n});\n\n/**\n * Batch AI Orchestration Execution Request\n * For processing multiple records at once\n */\nexport const BatchAIOrchestrationExecutionSchema = z.object({\n workflowName: z.string().describe('Orchestration to execute'),\n recordIds: z.array(z.string()).describe('Records to process'),\n batchSize: z.number().int().min(1).max(1000).optional().default(10),\n parallelism: z.number().int().min(1).max(10).optional().default(3),\n priority: z.enum(['low', 'normal', 'high']).optional().default('normal'),\n});\n\n/**\n * AI Orchestration Execution Result\n * Result of a single execution\n */\nexport const AIOrchestrationExecutionResultSchema = z.object({\n workflowName: z.string(),\n recordId: z.string(),\n status: z.enum(['success', 'partial_success', 'failed', 'skipped']),\n executionTime: z.number().describe('Execution time in milliseconds'),\n tasksExecuted: z.number().int().describe('Number of tasks executed'),\n tasksSucceeded: z.number().int().describe('Number of tasks succeeded'),\n tasksFailed: z.number().int().describe('Number of tasks failed'),\n taskResults: z.array(z.object({\n taskId: z.string().optional(),\n taskName: z.string(),\n status: z.enum(['success', 'failed', 'skipped']),\n output: z.any().optional(),\n error: z.string().optional(),\n executionTime: z.number().optional().describe('Task execution time in milliseconds'),\n modelUsed: z.string().optional(),\n tokensUsed: z.number().optional(),\n })).optional(),\n tokens: TokenUsageSchema.optional().describe('Total token usage for this execution'),\n cost: z.number().nonnegative().optional().describe('Total cost for this execution in USD'),\n error: z.string().optional(),\n startedAt: z.string().datetime().describe('ISO timestamp'),\n completedAt: z.string().datetime().optional().describe('ISO timestamp'),\n});\n\n// Type exports\nexport type AIOrchestrationTrigger = z.infer<typeof AIOrchestrationTriggerSchema>;\nexport type AITaskType = z.infer<typeof AITaskTypeSchema>;\nexport type AITask = z.infer<typeof AITaskSchema>;\nexport type WorkflowFieldCondition = z.infer<typeof WorkflowFieldConditionSchema>;\nexport type WorkflowSchedule = z.infer<typeof WorkflowScheduleSchema>;\nexport type PostProcessingAction = z.infer<typeof PostProcessingActionSchema>;\nexport type AIOrchestration = z.infer<typeof AIOrchestrationSchema>;\nexport type BatchAIOrchestrationExecution = z.infer<typeof BatchAIOrchestrationExecutionSchema>;\nexport type AIOrchestrationExecutionResult = z.infer<typeof AIOrchestrationExecutionResultSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * Predictive Analytics Protocol\n * \n * Defines predictive models and machine learning configurations for\n * data-driven decision making and forecasting in ObjectStack applications.\n * \n * Use Cases:\n * - Lead scoring and conversion prediction\n * - Customer churn prediction\n * - Sales forecasting\n * - Demand forecasting\n * - Anomaly detection in operational data\n * - Customer segmentation and clustering\n * - Price optimization\n * - Recommendation systems\n */\n\n/**\n * Predictive Model Types\n */\nexport const PredictiveModelTypeSchema = z.enum([\n 'classification', // Binary or multi-class classification\n 'regression', // Numerical prediction\n 'clustering', // Unsupervised grouping\n 'forecasting', // Time-series prediction\n 'anomaly_detection', // Outlier detection\n 'recommendation', // Item or action recommendation\n 'ranking', // Ordering items by relevance\n]);\n\n/**\n * Model Feature Definition\n * Describes an input feature for a predictive model\n */\nexport const ModelFeatureSchema = z.object({\n /** Feature Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Feature name (snake_case)'),\n label: z.string().optional().describe('Human-readable label'),\n \n /** Data Source */\n field: z.string().describe('Source field name'),\n object: z.string().optional().describe('Source object (if different from target)'),\n \n /** Feature Type */\n dataType: z.enum(['numeric', 'categorical', 'text', 'datetime', 'boolean']).describe('Feature data type'),\n \n /** Feature Engineering */\n transformation: z.enum([\n 'none',\n 'normalize', // Normalize to 0-1 range\n 'standardize', // Z-score standardization\n 'one_hot_encode', // One-hot encoding for categorical\n 'label_encode', // Label encoding for categorical\n 'log_transform', // Logarithmic transformation\n 'binning', // Discretize continuous values\n 'embedding', // Text/categorical embedding\n ]).optional().default('none'),\n \n /** Configuration */\n required: z.boolean().optional().default(true),\n defaultValue: z.any().optional(),\n \n /** Metadata */\n description: z.string().optional(),\n importance: z.number().optional().describe('Feature importance score (0-1)'),\n});\n\n/**\n * Model Hyperparameters\n * Configuration specific to model algorithms\n */\nexport const HyperparametersSchema = z.object({\n /** General Parameters */\n learningRate: z.number().optional().describe('Learning rate for training'),\n epochs: z.number().int().optional().describe('Number of training epochs'),\n batchSize: z.number().int().optional().describe('Training batch size'),\n \n /** Tree-based Models (Random Forest, XGBoost, etc.) */\n maxDepth: z.number().int().optional().describe('Maximum tree depth'),\n numTrees: z.number().int().optional().describe('Number of trees in ensemble'),\n minSamplesSplit: z.number().int().optional().describe('Minimum samples to split node'),\n minSamplesLeaf: z.number().int().optional().describe('Minimum samples in leaf node'),\n \n /** Neural Networks */\n hiddenLayers: z.array(z.number().int()).optional().describe('Hidden layer sizes'),\n activation: z.string().optional().describe('Activation function'),\n dropout: z.number().optional().describe('Dropout rate'),\n \n /** Regularization */\n l1Regularization: z.number().optional().describe('L1 regularization strength'),\n l2Regularization: z.number().optional().describe('L2 regularization strength'),\n \n /** Clustering */\n numClusters: z.number().int().optional().describe('Number of clusters (k-means, etc.)'),\n \n /** Time Series */\n seasonalPeriod: z.number().int().optional().describe('Seasonal period for time series'),\n forecastHorizon: z.number().int().optional().describe('Number of periods to forecast'),\n \n /** Additional custom parameters */\n custom: z.record(z.string(), z.any()).optional().describe('Algorithm-specific parameters'),\n});\n\n/**\n * Model Training Configuration\n */\nexport const TrainingConfigSchema = z.object({\n /** Data Split */\n trainingDataRatio: z.number().min(0).max(1).optional().default(0.8).describe('Proportion of data for training'),\n validationDataRatio: z.number().min(0).max(1).optional().default(0.1).describe('Proportion for validation'),\n testDataRatio: z.number().min(0).max(1).optional().default(0.1).describe('Proportion for testing'),\n \n /** Data Filtering */\n dataFilter: z.string().optional().describe('Formula to filter training data'),\n minRecords: z.number().int().optional().default(100).describe('Minimum records required'),\n maxRecords: z.number().int().optional().describe('Maximum records to use'),\n \n /** Training Strategy */\n strategy: z.enum(['full', 'incremental', 'online', 'transfer_learning']).optional().default('full'),\n crossValidation: z.boolean().optional().default(true),\n folds: z.number().int().min(2).max(10).optional().default(5).describe('Cross-validation folds'),\n \n /** Early Stopping */\n earlyStoppingEnabled: z.boolean().optional().default(true),\n earlyStoppingPatience: z.number().int().optional().default(10).describe('Epochs without improvement before stopping'),\n \n /** Resource Limits */\n maxTrainingTime: z.number().optional().describe('Maximum training time in seconds'),\n gpuEnabled: z.boolean().optional().default(false),\n \n /** Reproducibility */\n randomSeed: z.number().int().optional().describe('Random seed for reproducibility'),\n}).superRefine((data, ctx) => {\n if (data.trainingDataRatio && data.validationDataRatio && data.testDataRatio) {\n const sum = data.trainingDataRatio + data.validationDataRatio + data.testDataRatio;\n if (Math.abs(sum - 1) > 0.01) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Data split ratios must sum to 1. Current sum: ${sum}`,\n path: ['trainingDataRatio'],\n });\n }\n }\n});\n\n/**\n * Model Evaluation Metrics\n */\nexport const EvaluationMetricsSchema = z.object({\n /** Classification Metrics */\n accuracy: z.number().optional(),\n precision: z.number().optional(),\n recall: z.number().optional(),\n f1Score: z.number().optional(),\n auc: z.number().optional().describe('Area Under ROC Curve'),\n \n /** Regression Metrics */\n mse: z.number().optional().describe('Mean Squared Error'),\n rmse: z.number().optional().describe('Root Mean Squared Error'),\n mae: z.number().optional().describe('Mean Absolute Error'),\n r2Score: z.number().optional().describe('R-squared score'),\n \n /** Clustering Metrics */\n silhouetteScore: z.number().optional(),\n daviesBouldinIndex: z.number().optional(),\n \n /** Time Series Metrics */\n mape: z.number().optional().describe('Mean Absolute Percentage Error'),\n smape: z.number().optional().describe('Symmetric MAPE'),\n \n /** Additional Metrics */\n custom: z.record(z.string(), z.number()).optional(),\n});\n\n/**\n * Predictive Model Schema\n * Complete definition of a predictive model\n */\nexport const PredictiveModelSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Model unique identifier (snake_case)'),\n label: z.string().describe('Model display name'),\n description: z.string().optional(),\n \n /** Model Type */\n type: PredictiveModelTypeSchema,\n algorithm: z.string().optional().describe('Specific algorithm (e.g., \"random_forest\", \"xgboost\", \"lstm\")'),\n \n /** Target Object & Field */\n objectName: z.string().describe('Target object for predictions'),\n target: z.string().describe('Target field to predict'),\n targetType: z.enum(['numeric', 'categorical', 'binary']).optional().describe('Target field type'),\n \n /** Features */\n features: z.array(ModelFeatureSchema).describe('Input features for the model'),\n \n /** Hyperparameters */\n hyperparameters: HyperparametersSchema.optional(),\n \n /** Training Configuration */\n training: TrainingConfigSchema.optional(),\n \n /** Model Performance */\n metrics: EvaluationMetricsSchema.optional().describe('Evaluation metrics from last training'),\n \n /** Deployment */\n deploymentStatus: z.enum(['draft', 'training', 'trained', 'deployed', 'deprecated']).optional().default('draft'),\n version: z.string().optional().default('1.0.0'),\n \n /** Prediction Configuration */\n predictionField: z.string().optional().describe('Field to store predictions'),\n confidenceField: z.string().optional().describe('Field to store confidence scores'),\n updateTrigger: z.enum(['on_create', 'on_update', 'manual', 'scheduled']).optional().default('on_create'),\n \n /** Retraining */\n autoRetrain: z.boolean().optional().default(false),\n retrainSchedule: z.string().optional().describe('Cron expression for auto-retraining'),\n retrainThreshold: z.number().optional().describe('Performance threshold to trigger retraining'),\n \n /** Explainability */\n enableExplainability: z.boolean().optional().default(false).describe('Generate feature importance & explanations'),\n \n /** Monitoring */\n enableMonitoring: z.boolean().optional().default(true),\n alertOnDrift: z.boolean().optional().default(true).describe('Alert when model drift is detected'),\n \n /** Access Control */\n active: z.boolean().optional().default(true),\n owner: z.string().optional().describe('User ID of model owner'),\n permissions: z.array(z.string()).optional().describe('User/group IDs with access'),\n \n /** Metadata */\n tags: z.array(z.string()).optional(),\n category: z.string().optional().describe('Model category (e.g., \"sales\", \"marketing\", \"operations\")'),\n lastTrainedAt: z.string().datetime().optional().describe('ISO timestamp'),\n createdAt: z.string().datetime().optional().describe('ISO timestamp'),\n updatedAt: z.string().datetime().optional().describe('ISO timestamp'),\n});\n\n/**\n * Prediction Request\n * Request for making predictions using a trained model\n */\nexport const PredictionRequestSchema = z.object({\n modelName: z.string().describe('Model to use for prediction'),\n recordIds: z.array(z.string()).optional().describe('Specific records to predict (if not provided, uses all)'),\n inputData: z.record(z.string(), z.any()).optional().describe('Direct input data (alternative to recordIds)'),\n returnConfidence: z.boolean().optional().default(true),\n returnExplanation: z.boolean().optional().default(false),\n});\n\n/**\n * Prediction Result\n * Result of a prediction request\n */\nexport const PredictionResultSchema = z.object({\n modelName: z.string(),\n modelVersion: z.string(),\n recordId: z.string().optional(),\n prediction: z.any().describe('The predicted value'),\n confidence: z.number().optional().describe('Confidence score (0-1)'),\n probabilities: z.record(z.string(), z.number()).optional().describe('Class probabilities (for classification)'),\n explanation: z.object({\n topFeatures: z.array(z.object({\n feature: z.string(),\n importance: z.number(),\n value: z.any(),\n })).optional(),\n reasoning: z.string().optional(),\n }).optional(),\n tokens: TokenUsageSchema.optional().describe('Token usage for this prediction (if AI-powered)'),\n cost: z.number().nonnegative().optional().describe('Cost for this prediction in USD'),\n metadata: z.object({\n executionTime: z.number().optional().describe('Execution time in milliseconds'),\n timestamp: z.string().datetime().optional().describe('ISO timestamp'),\n }).optional(),\n});\n\n/**\n * Model Drift Detection\n * Monitoring for model performance degradation\n */\nexport const ModelDriftSchema = z.object({\n modelName: z.string(),\n driftType: z.enum(['feature_drift', 'prediction_drift', 'performance_drift']),\n severity: z.enum(['low', 'medium', 'high', 'critical']),\n detectedAt: z.string().datetime().describe('ISO timestamp'),\n metrics: z.object({\n driftScore: z.number().describe('Drift magnitude (0-1)'),\n affectedFeatures: z.array(z.string()).optional(),\n performanceChange: z.number().optional().describe('Change in performance metric'),\n }),\n recommendation: z.string().optional(),\n autoRetrainTriggered: z.boolean().optional().default(false),\n});\n\n// Type exports\nexport type PredictiveModelType = z.infer<typeof PredictiveModelTypeSchema>;\nexport type ModelFeature = z.infer<typeof ModelFeatureSchema>;\nexport type Hyperparameters = z.infer<typeof HyperparametersSchema>;\nexport type TrainingConfig = z.infer<typeof TrainingConfigSchema>;\nexport type EvaluationMetrics = z.infer<typeof EvaluationMetricsSchema>;\nexport type PredictiveModel = z.infer<typeof PredictiveModelSchema>;\nexport type PredictionRequest = z.infer<typeof PredictionRequestSchema>;\nexport type PredictionResult = z.infer<typeof PredictionResultSchema>;\nexport type ModelDrift = z.infer<typeof ModelDriftSchema>;\n","import { z } from 'zod';\nimport { TokenUsageSchema } from './cost.zod';\n\n/**\n * AI Conversation Memory Protocol\n * \n * Multi-turn AI conversations with token budget management.\n * Enables context preservation, conversation history, and token optimization.\n */\n\n/**\n * Message Role\n */\nexport const MessageRoleSchema = z.enum([\n 'system',\n 'user',\n 'assistant',\n 'function',\n 'tool',\n]);\n\n/**\n * Message Content Type\n */\nexport const MessageContentTypeSchema = z.enum([\n 'text',\n 'image',\n 'file',\n 'code',\n 'structured',\n]);\n\n/**\n * Message Content - Discriminated Union\n */\nexport const TextContentSchema = z.object({\n type: z.literal('text'),\n text: z.string().describe('Text content'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const ImageContentSchema = z.object({\n type: z.literal('image'),\n imageUrl: z.string().url().describe('Image URL'),\n detail: z.enum(['low', 'high', 'auto']).optional().default('auto'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const FileContentSchema = z.object({\n type: z.literal('file'),\n fileUrl: z.string().url().describe('File attachment URL'),\n mimeType: z.string().describe('MIME type'),\n fileName: z.string().optional(),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const CodeContentSchema = z.object({\n type: z.literal('code'),\n text: z.string().describe('Code snippet'),\n language: z.string().optional().default('text'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\nexport const MessageContentSchema = z.union([\n TextContentSchema,\n ImageContentSchema,\n FileContentSchema,\n CodeContentSchema\n]);\n\n/**\n * Function Call\n */\nexport const FunctionCallSchema = z.object({\n name: z.string().describe('Function name'),\n arguments: z.string().describe('JSON string of function arguments'),\n result: z.string().optional().describe('Function execution result'),\n});\n\n/**\n * Tool Call\n */\nexport const ToolCallSchema = z.object({\n id: z.string().describe('Tool call ID'),\n type: z.enum(['function']).default('function'),\n function: FunctionCallSchema,\n});\n\n/**\n * Conversation Message\n */\nexport const ConversationMessageSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique message ID'),\n timestamp: z.string().datetime().describe('ISO 8601 timestamp'),\n \n /** Content */\n role: MessageRoleSchema,\n content: z.array(MessageContentSchema).describe('Message content (multimodal array)'),\n \n /** Function/Tool Calls */\n functionCall: FunctionCallSchema.optional().describe('Legacy function call'),\n toolCalls: z.array(ToolCallSchema).optional().describe('Tool calls'),\n toolCallId: z.string().optional().describe('Tool call ID this message responds to'),\n \n /** Metadata */\n name: z.string().optional().describe('Name of the function/user'),\n tokens: TokenUsageSchema.optional().describe('Token usage for this message'),\n cost: z.number().nonnegative().optional().describe('Cost for this message in USD'),\n \n /** Context Management */\n pinned: z.boolean().optional().default(false).describe('Prevent removal during pruning'),\n importance: z.number().min(0).max(1).optional().describe('Importance score for pruning'),\n embedding: z.array(z.number()).optional().describe('Vector embedding for semantic search'),\n \n /** Annotations */\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Token Budget Strategy\n */\nexport const TokenBudgetStrategySchema = z.enum([\n 'fifo', // First-in-first-out (oldest messages dropped)\n 'importance', // Drop by importance score\n 'semantic', // Keep semantically relevant messages\n 'sliding_window', // Fixed window of recent messages\n 'summary', // Summarize old context\n]);\n\n/**\n * Token Budget Configuration\n */\nexport const TokenBudgetConfigSchema = z.object({\n /** Budget Limits */\n maxTokens: z.number().int().positive().describe('Maximum total tokens'),\n maxPromptTokens: z.number().int().positive().optional().describe('Max tokens for prompt'),\n maxCompletionTokens: z.number().int().positive().optional().describe('Max tokens for completion'),\n \n /** Buffer & Reserves */\n reserveTokens: z.number().int().nonnegative().default(500).describe('Reserve tokens for system messages'),\n bufferPercentage: z.number().min(0).max(1).default(0.1).describe('Buffer percentage (0.1 = 10%)'),\n \n /** Pruning Strategy */\n strategy: TokenBudgetStrategySchema.default('sliding_window'),\n \n /** Strategy-Specific Options */\n slidingWindowSize: z.number().int().positive().optional().describe('Number of recent messages to keep'),\n minImportanceScore: z.number().min(0).max(1).optional().describe('Minimum importance to keep'),\n semanticThreshold: z.number().min(0).max(1).optional().describe('Semantic similarity threshold'),\n \n /** Summarization */\n enableSummarization: z.boolean().default(false).describe('Enable context summarization'),\n summarizationThreshold: z.number().int().positive().optional().describe('Trigger summarization at N tokens'),\n summaryModel: z.string().optional().describe('Model ID for summarization'),\n \n /** Monitoring */\n warnThreshold: z.number().min(0).max(1).default(0.8).describe('Warn at % of budget (0.8 = 80%)'),\n});\n\n/**\n * Token Usage Stats\n */\nexport const TokenUsageStatsSchema = z.object({\n promptTokens: z.number().int().nonnegative().default(0),\n completionTokens: z.number().int().nonnegative().default(0),\n totalTokens: z.number().int().nonnegative().default(0),\n \n /** Budget Status */\n budgetLimit: z.number().int().positive(),\n budgetUsed: z.number().int().nonnegative().default(0),\n budgetRemaining: z.number().int().nonnegative(),\n budgetPercentage: z.number().min(0).max(1).describe('Usage as percentage of budget'),\n \n /** Message Stats */\n messageCount: z.number().int().nonnegative().default(0),\n prunedMessageCount: z.number().int().nonnegative().default(0),\n summarizedMessageCount: z.number().int().nonnegative().default(0),\n});\n\n/**\n * Conversation Context\n */\nexport const ConversationContextSchema = z.object({\n /** Identity */\n sessionId: z.string().describe('Conversation session ID'),\n userId: z.string().optional().describe('User identifier'),\n agentId: z.string().optional().describe('AI agent identifier'),\n \n /** Context Data */\n object: z.string().optional().describe('Related object (e.g., \"case\", \"project\")'),\n recordId: z.string().optional().describe('Related record ID'),\n scope: z.record(z.string(), z.any()).optional().describe('Additional context scope'),\n \n /** System Instructions */\n systemMessage: z.string().optional().describe('System prompt/instructions'),\n \n /** Metadata */\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Conversation Session\n */\nexport const ConversationSessionSchema = z.object({\n /** Identity */\n id: z.string().describe('Unique session ID'),\n name: z.string().optional().describe('Session name/title'),\n \n /** Configuration */\n context: ConversationContextSchema,\n modelId: z.string().optional().describe('AI model ID'),\n tokenBudget: TokenBudgetConfigSchema,\n \n /** Messages */\n messages: z.array(ConversationMessageSchema).default([]),\n \n /** Token Tracking */\n tokens: TokenUsageStatsSchema.optional(),\n totalTokens: TokenUsageSchema.optional().describe('Total tokens across all messages'),\n totalCost: z.number().nonnegative().optional().describe('Total cost for this session in USD'),\n \n /** Session Status */\n status: z.enum(['active', 'paused', 'completed', 'archived']).default('active'),\n \n /** Timestamps */\n createdAt: z.string().datetime().describe('ISO 8601 timestamp'),\n updatedAt: z.string().datetime().describe('ISO 8601 timestamp'),\n expiresAt: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n metadata: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Conversation Summary\n */\nexport const ConversationSummarySchema = z.object({\n /** Summary Content */\n summary: z.string().describe('Conversation summary'),\n keyPoints: z.array(z.string()).optional().describe('Key discussion points'),\n \n /** Token Savings */\n originalTokens: z.number().int().nonnegative().describe('Original token count'),\n summaryTokens: z.number().int().nonnegative().describe('Summary token count'),\n tokensSaved: z.number().int().nonnegative().describe('Tokens saved'),\n \n /** Source Messages */\n messageRange: z.object({\n startIndex: z.number().int().nonnegative(),\n endIndex: z.number().int().nonnegative(),\n }).describe('Range of messages summarized'),\n \n /** Metadata */\n generatedAt: z.string().datetime().describe('ISO 8601 timestamp'),\n modelId: z.string().optional().describe('Model used for summarization'),\n});\n\n/**\n * Message Pruning Event\n */\nexport const MessagePruningEventSchema = z.object({\n /** Event Details */\n timestamp: z.string().datetime().describe('Event timestamp'),\n /** Pruned Messages */\n prunedMessages: z.array(z.object({\n messageId: z.string(),\n role: MessageRoleSchema,\n tokens: z.number().int().nonnegative(),\n importance: z.number().min(0).max(1).optional(),\n })),\n \n /** Impact */\n tokensFreed: z.number().int().nonnegative(),\n messagesRemoved: z.number().int().nonnegative(),\n \n /** Post-Pruning State */\n remainingTokens: z.number().int().nonnegative(),\n remainingMessages: z.number().int().nonnegative(),\n});\n\n/**\n * Conversation Analytics\n */\nexport const ConversationAnalyticsSchema = z.object({\n /** Session Info */\n sessionId: z.string(),\n \n /** Message Statistics */\n totalMessages: z.number().int().nonnegative(),\n userMessages: z.number().int().nonnegative(),\n assistantMessages: z.number().int().nonnegative(),\n systemMessages: z.number().int().nonnegative(),\n \n /** Token Statistics */\n totalTokens: z.number().int().nonnegative(),\n averageTokensPerMessage: z.number().nonnegative(),\n peakTokenUsage: z.number().int().nonnegative(),\n \n /** Efficiency Metrics */\n pruningEvents: z.number().int().nonnegative().default(0),\n summarizationEvents: z.number().int().nonnegative().default(0),\n tokensSavedByPruning: z.number().int().nonnegative().default(0),\n tokensSavedBySummarization: z.number().int().nonnegative().default(0),\n \n /** Duration */\n duration: z.number().nonnegative().optional().describe('Session duration in seconds'),\n firstMessageAt: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n lastMessageAt: z.string().datetime().optional().describe('ISO 8601 timestamp'),\n});\n\nexport type MessageRole = z.infer<typeof MessageRoleSchema>;\nexport type MessageContentType = z.infer<typeof MessageContentTypeSchema>;\nexport type MessageContent = z.infer<typeof MessageContentSchema>;\nexport type FunctionCall = z.infer<typeof FunctionCallSchema>;\nexport type ToolCall = z.infer<typeof ToolCallSchema>;\nexport type ConversationMessage = z.infer<typeof ConversationMessageSchema>;\nexport type TokenBudgetStrategy = z.infer<typeof TokenBudgetStrategySchema>;\nexport type TokenBudgetConfig = z.infer<typeof TokenBudgetConfigSchema>;\nexport type TokenUsageStats = z.infer<typeof TokenUsageStatsSchema>;\nexport type ConversationContext = z.infer<typeof ConversationContextSchema>;\nexport type ConversationSession = z.infer<typeof ConversationSessionSchema>;\nexport type ConversationSummary = z.infer<typeof ConversationSummarySchema>;\nexport type MessagePruningEvent = z.infer<typeof MessagePruningEventSchema>;\nexport type ConversationAnalytics = z.infer<typeof ConversationAnalyticsSchema>;\n","import { z } from 'zod';\nimport { ChangeSetSchema } from '../system/migration.zod';\n\n// Identifying the source of truth\nexport const MetadataSourceSchema = z.object({\n file: z.string().optional(),\n line: z.number().optional(),\n column: z.number().optional(),\n // Logic references\n package: z.string().optional(),\n object: z.string().optional(),\n field: z.string().optional(),\n component: z.string().optional() // specific UI component or flow node\n});\n\n// The Runtime Issue\nexport const IssueSchema = z.object({\n id: z.string(),\n severity: z.enum(['critical', 'error', 'warning', 'info']),\n message: z.string(),\n stackTrace: z.string().optional(),\n timestamp: z.string().datetime(),\n userId: z.string().optional(),\n \n // Context snapshot\n context: z.record(z.string(), z.unknown()).optional(),\n \n // The suspected metadata culprit\n source: MetadataSourceSchema.optional()\n});\n\n// The AI's proposed resolution\nexport const ResolutionSchema = z.object({\n issueId: z.string(),\n reasoning: z.string().describe('Explanation of why this fix is needed'),\n confidence: z.number().min(0).max(1),\n \n // Actionable change to fix the issue\n fix: z.discriminatedUnion('type', [\n z.object({\n type: z.literal('metadata_change'),\n changeSet: ChangeSetSchema\n }),\n z.object({\n type: z.literal('manual_intervention'),\n instructions: z.string()\n })\n ])\n});\n\n// Complete Feedback Loop Record\nexport const FeedbackLoopSchema = z.object({\n issue: IssueSchema,\n analysis: z.string().optional().describe('AI analysis of the root cause'),\n resolutions: z.array(ResolutionSchema).optional(),\n status: z.enum(['open', 'analyzing', 'resolved', 'ignored']).default('open')\n});\n\nexport type FeedbackLoop = z.infer<typeof FeedbackLoopSchema>;\nexport type Issue = z.infer<typeof IssueSchema>;\nexport type Resolution = z.infer<typeof ResolutionSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from '../data/field.zod';\nimport { ObjectSchema } from '../data/object.zod';\n\n// --- Atomic Operations ---\n\nexport const AddFieldOperation = z.object({\n type: z.literal('add_field'),\n objectName: z.string(),\n fieldName: z.string(),\n field: FieldSchema\n});\n\nexport const ModifyFieldOperation = z.object({\n type: z.literal('modify_field'),\n objectName: z.string(),\n fieldName: z.string(),\n changes: z.record(z.string(), z.unknown()) // Partial field definition updates\n});\n\nexport const RemoveFieldOperation = z.object({\n type: z.literal('remove_field'),\n objectName: z.string(),\n fieldName: z.string()\n});\n\nexport const CreateObjectOperation = z.object({\n type: z.literal('create_object'),\n object: ObjectSchema\n});\n\nexport const RenameObjectOperation = z.object({\n type: z.literal('rename_object'),\n oldName: z.string(),\n newName: z.string()\n});\n\nexport const DeleteObjectOperation = z.object({\n type: z.literal('delete_object'),\n objectName: z.string()\n});\n\nexport const ExecuteSqlOperation = z.object({\n type: z.literal('execute_sql'),\n sql: z.string(),\n description: z.string().optional()\n});\n\n// Union of all possible operations\nexport const MigrationOperationSchema = z.discriminatedUnion('type', [\n AddFieldOperation,\n ModifyFieldOperation,\n RemoveFieldOperation,\n CreateObjectOperation,\n RenameObjectOperation,\n DeleteObjectOperation,\n ExecuteSqlOperation\n]);\n\n// --- Migration & ChangeSet ---\n\nexport const MigrationDependencySchema = z.object({\n migrationId: z.string(),\n package: z.string().optional()\n});\n\nexport const ChangeSetSchema = z.object({\n id: z.string().uuid().describe('Unique identifier for this change set'),\n name: z.string().describe('Human readable name for the migration'),\n description: z.string().optional(),\n author: z.string().optional(),\n createdAt: z.string().datetime().optional(),\n \n // Dependencies ensure migrations run in order\n dependencies: z.array(MigrationDependencySchema).optional(),\n \n // The actual atomic operations\n operations: z.array(MigrationOperationSchema),\n \n // Rollback operations (AI should generate these too)\n rollback: z.array(MigrationOperationSchema).optional()\n});\n\nexport type ChangeSet = z.infer<typeof ChangeSetSchema>;\nexport type MigrationOperation = z.infer<typeof MigrationOperationSchema>;\n","import { z } from 'zod';\nimport { SystemIdentifierSchema } from '../shared/identifiers.zod';\nimport { EncryptionConfigSchema } from '../system/encryption.zod';\nimport { MaskingRuleSchema } from '../system/masking.zod';\n\n/**\n * Field Type Enum\n */\nexport const FieldType = z.enum([\n // Core Text\n 'text', 'textarea', 'email', 'url', 'phone', 'password',\n // Rich Content\n 'markdown', 'html', 'richtext',\n // Numbers\n 'number', 'currency', 'percent', \n // Date & Time\n 'date', 'datetime', 'time',\n // Logic\n 'boolean', 'toggle', // Toggle is a distinct UI from checkbox\n // Selection\n 'select', // Single select dropdown\n 'multiselect', // Multi select (often tags)\n 'radio', // Radio group\n 'checkboxes', // Checkbox group\n // Relational\n 'lookup', 'master_detail', // Dynamic reference\n 'tree', // Hierarchical reference\n // Media\n 'image', 'file', 'avatar', 'video', 'audio',\n // Calculated / System\n 'formula', 'summary', 'autonumber',\n // Enhanced Types\n 'location', // GPS coordinates\n 'address', // Structured address\n 'code', // Code editor (JSON/SQL/JS)\n 'json', // Structured JSON data\n 'color', // Color picker\n 'rating', // Star rating\n 'slider', // Numeric slider\n 'signature', // Digital signature\n 'qrcode', // QR code / Barcode\n 'progress', // Progress bar\n 'tags', // Simple tag list\n // AI/ML Types\n 'vector', // Vector embeddings for AI/ML (semantic search, RAG)\n]);\n\nexport type FieldType = z.infer<typeof FieldType>;\n\n/**\n * Select Option Schema\n * \n * Defines option values for select/picklist fields.\n * \n * **CRITICAL RULE**: The `value` field is a machine identifier that gets stored in the database.\n * It MUST be lowercase to avoid case-sensitivity issues in queries and comparisons.\n * \n * @example Good\n * { label: 'New', value: 'new' }\n * { label: 'In Progress', value: 'in_progress' }\n * { label: 'Closed Won', value: 'closed_won' }\n * \n * @example Bad (will be rejected)\n * { label: 'New', value: 'New' } // uppercase\n * { label: 'In Progress', value: 'In Progress' } // spaces and uppercase\n * { label: 'Closed Won', value: 'Closed_Won' } // mixed case\n */\nexport const SelectOptionSchema = z.object({\n label: z.string().describe('Display label (human-readable, any case allowed)'),\n value: SystemIdentifierSchema.describe('Stored value (lowercase machine identifier)'),\n color: z.string().optional().describe('Color code for badges/charts'),\n default: z.boolean().optional().describe('Is default option'),\n});\n\n/**\n * Location Coordinates Schema\n * GPS coordinates for location field type\n */\nexport const LocationCoordinatesSchema = z.object({\n latitude: z.number().min(-90).max(90).describe('Latitude coordinate'),\n longitude: z.number().min(-180).max(180).describe('Longitude coordinate'),\n altitude: z.number().optional().describe('Altitude in meters'),\n accuracy: z.number().optional().describe('Accuracy in meters'),\n});\n\n/**\n * Currency Configuration Schema\n * Configuration for currency field type supporting multi-currency\n * \n * Note: Currency codes are validated by length only (3 characters) to support:\n * - Standard ISO 4217 codes (USD, EUR, CNY, etc.)\n * - Cryptocurrency codes (BTC, ETH, etc.)\n * - Custom business-specific codes\n * Stricter validation can be implemented at the application layer based on business requirements.\n */\nexport const CurrencyConfigSchema = z.object({\n precision: z.number().int().min(0).max(10).default(2).describe('Decimal precision (default: 2)'),\n currencyMode: z.enum(['dynamic', 'fixed']).default('dynamic').describe('Currency mode: dynamic (user selectable) or fixed (single currency)'),\n defaultCurrency: z.string().length(3).default('CNY').describe('Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)'),\n});\n\n/**\n * Currency Value Schema\n * Runtime value structure for currency fields\n * \n * Note: Currency codes are validated by length only (3 characters) to support flexibility.\n * See CurrencyConfigSchema for details on currency code validation strategy.\n */\nexport const CurrencyValueSchema = z.object({\n value: z.number().describe('Monetary amount'),\n currency: z.string().length(3).describe('Currency code (ISO 4217)'),\n});\n\n/**\n * Address Schema\n * Structured address for address field type\n */\nexport const AddressSchema = z.object({\n street: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City name'),\n state: z.string().optional().describe('State/Province'),\n postalCode: z.string().optional().describe('Postal/ZIP code'),\n country: z.string().optional().describe('Country name or code'),\n countryCode: z.string().optional().describe('ISO country code (e.g., US, GB)'),\n formatted: z.string().optional().describe('Formatted address string'),\n});\n\n/**\n * Vector Configuration Schema\n * Configuration for vector field type supporting AI/ML embeddings\n * \n * Vector fields store numerical embeddings for semantic search, similarity matching,\n * and Retrieval-Augmented Generation (RAG) workflows.\n * \n * @example\n * // Text embeddings for semantic search\n * {\n * dimensions: 1536, // OpenAI text-embedding-ada-002\n * distanceMetric: 'cosine',\n * indexed: true\n * }\n * \n * @example\n * // Image embeddings with normalization\n * {\n * dimensions: 512, // ResNet-50\n * distanceMetric: 'euclidean',\n * normalized: true,\n * indexed: true\n * }\n */\nexport const VectorConfigSchema = z.object({\n dimensions: z.number().int().min(1).max(10000).describe('Vector dimensionality (e.g., 1536 for OpenAI embeddings)'),\n distanceMetric: z.enum(['cosine', 'euclidean', 'dotProduct', 'manhattan']).default('cosine').describe('Distance/similarity metric for vector search'),\n normalized: z.boolean().default(false).describe('Whether vectors are normalized (unit length)'),\n indexed: z.boolean().default(true).describe('Whether to create a vector index for fast similarity search'),\n indexType: z.enum(['hnsw', 'ivfflat', 'flat']).optional().describe('Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)'),\n});\n\n/**\n * File Attachment Configuration Schema\n * Configuration for file and attachment field types\n * \n * Provides comprehensive file upload capabilities with:\n * - File type restrictions (allowed/blocked)\n * - File size limits (min/max)\n * - Virus scanning integration\n * - Storage provider integration\n * - Image-specific features (dimensions, thumbnails)\n * \n * @example Basic file upload with size limit\n * {\n * maxSize: 10485760, // 10MB\n * allowedTypes: ['.pdf', '.docx', '.xlsx'],\n * virusScan: true\n * }\n * \n * @example Image upload with validation\n * {\n * maxSize: 5242880, // 5MB\n * allowedTypes: ['.jpg', '.jpeg', '.png', '.webp'],\n * imageValidation: {\n * maxWidth: 4096,\n * maxHeight: 4096,\n * generateThumbnails: true\n * }\n * }\n */\nexport const FileAttachmentConfigSchema = z.object({\n /** File Size Limits */\n minSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n maxSize: z.number().min(1).optional().describe('Maximum file size in bytes (e.g., 10485760 = 10MB)'),\n \n /** File Type Restrictions */\n allowedTypes: z.array(z.string()).optional().describe('Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])'),\n blockedTypes: z.array(z.string()).optional().describe('Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])'),\n allowedMimeTypes: z.array(z.string()).optional().describe('Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])'),\n blockedMimeTypes: z.array(z.string()).optional().describe('Blocked MIME types'),\n \n /** Virus Scanning */\n virusScan: z.boolean().default(false).describe('Enable virus scanning for uploaded files'),\n virusScanProvider: z.enum(['clamav', 'virustotal', 'metadefender', 'custom']).optional().describe('Virus scanning service provider'),\n virusScanOnUpload: z.boolean().default(true).describe('Scan files immediately on upload'),\n quarantineOnThreat: z.boolean().default(true).describe('Quarantine files if threat detected'),\n \n /** Storage Configuration */\n storageProvider: z.string().optional().describe('Object storage provider name (references ObjectStorageConfig)'),\n storageBucket: z.string().optional().describe('Target bucket name'),\n storagePrefix: z.string().optional().describe('Storage path prefix (e.g., \"uploads/documents/\")'),\n \n /** Image-Specific Validation */\n imageValidation: z.object({\n minWidth: z.number().min(1).optional().describe('Minimum image width in pixels'),\n maxWidth: z.number().min(1).optional().describe('Maximum image width in pixels'),\n minHeight: z.number().min(1).optional().describe('Minimum image height in pixels'),\n maxHeight: z.number().min(1).optional().describe('Maximum image height in pixels'),\n aspectRatio: z.string().optional().describe('Required aspect ratio (e.g., \"16:9\", \"1:1\")'),\n generateThumbnails: z.boolean().default(false).describe('Auto-generate thumbnails'),\n thumbnailSizes: z.array(z.object({\n name: z.string().describe('Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")'),\n width: z.number().min(1).describe('Thumbnail width in pixels'),\n height: z.number().min(1).describe('Thumbnail height in pixels'),\n crop: z.boolean().default(false).describe('Crop to exact dimensions'),\n })).optional().describe('Thumbnail size configurations'),\n preserveMetadata: z.boolean().default(false).describe('Preserve EXIF metadata'),\n autoRotate: z.boolean().default(true).describe('Auto-rotate based on EXIF orientation'),\n }).optional().describe('Image-specific validation rules'),\n \n /** Upload Behavior */\n allowMultiple: z.boolean().default(false).describe('Allow multiple file uploads (overrides field.multiple)'),\n allowReplace: z.boolean().default(true).describe('Allow replacing existing files'),\n allowDelete: z.boolean().default(true).describe('Allow deleting uploaded files'),\n requireUpload: z.boolean().default(false).describe('Require at least one file when field is required'),\n \n /** Metadata Extraction */\n extractMetadata: z.boolean().default(true).describe('Extract file metadata (name, size, type, etc.)'),\n extractText: z.boolean().default(false).describe('Extract text content from documents (OCR/parsing)'),\n \n /** Versioning */\n versioningEnabled: z.boolean().default(false).describe('Keep previous versions of replaced files'),\n maxVersions: z.number().min(1).optional().describe('Maximum number of versions to retain'),\n \n /** Access Control */\n publicRead: z.boolean().default(false).describe('Allow public read access to uploaded files'),\n presignedUrlExpiry: z.number().min(60).max(604800).default(3600).describe('Presigned URL expiration in seconds (default: 1 hour)'),\n}).refine((data) => {\n // Validate minSize is less than or equal to maxSize\n if (data.minSize !== undefined && data.maxSize !== undefined && data.minSize > data.maxSize) {\n return false;\n }\n return true;\n}, {\n message: 'minSize must be less than or equal to maxSize',\n}).refine((data) => {\n // Validate virusScanProvider requires virusScan to be enabled\n if (data.virusScanProvider !== undefined && data.virusScan !== true) {\n return false;\n }\n return true;\n}, {\n message: 'virusScanProvider requires virusScan to be enabled',\n});\n\n/**\n * Data Quality Rules Schema\n * Defines data quality validation and monitoring for fields\n * \n * @example Unique SSN field with completeness requirement\n * {\n * uniqueness: true,\n * completeness: 0.95, // 95% of records must have this field\n * accuracy: {\n * source: 'government_db',\n * threshold: 0.98\n * }\n * }\n */\nexport const DataQualityRulesSchema = z.object({\n /** Enforce uniqueness constraint */\n uniqueness: z.boolean().default(false).describe('Enforce unique values across all records'),\n \n /** Completeness ratio (0-1) indicating minimum percentage of non-null values */\n completeness: z.number().min(0).max(1).default(0).describe('Minimum ratio of non-null values (0-1, default: 0 = no requirement)'),\n \n /** Accuracy validation against authoritative source */\n accuracy: z.object({\n source: z.string().describe('Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")'),\n threshold: z.number().min(0).max(1).describe('Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)'),\n }).optional().describe('Accuracy validation configuration'),\n});\n\n/**\n * Computed Field Caching Schema\n * Configuration for caching computed/formula field results\n * \n * @example Cache product price with 1-hour TTL, invalidate on inventory changes\n * {\n * enabled: true,\n * ttl: 3600,\n * invalidateOn: ['inventory.quantity', 'pricing.discount']\n * }\n */\nexport const ComputedFieldCacheSchema = z.object({\n /** Enable caching for this computed field */\n enabled: z.boolean().describe('Enable caching for computed field results'),\n \n /** Time-to-live in seconds */\n ttl: z.number().min(0).describe('Cache TTL in seconds (0 = no expiration)'),\n \n /** Array of field paths that trigger cache invalidation when changed */\n invalidateOn: z.array(z.string()).describe('Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])'),\n});\n\n/**\n * Field Schema - Best Practice Enterprise Pattern\n */\n/**\n * Field Definition Schema\n * Defines the properties, type, and behavior of a single field (column) on an object.\n * \n * @example Lookup Field\n * {\n * name: \"account_id\",\n * label: \"Account\",\n * type: \"lookup\",\n * reference: \"accounts\",\n * required: true\n * }\n * \n * @example Select Field\n * {\n * name: \"status\",\n * label: \"Status\",\n * type: \"select\",\n * options: [\n * { label: \"Open\", value: \"open\" },\n * { label: \"Closed\", value: \"closed\" }\n * ],\n * defaultValue: \"open\"\n * }\n */\nexport const FieldSchema = z.object({\n /** Identity */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),\n label: z.string().optional().describe('Human readable label'),\n type: FieldType.describe('Field Data Type'),\n description: z.string().optional().describe('Tooltip/Help text'),\n format: z.string().optional().describe('Format string (e.g. email, phone)'),\n\n /** Database Constraints */\n required: z.boolean().default(false).describe('Is required'),\n searchable: z.boolean().default(false).describe('Is searchable'),\n multiple: z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),\n unique: z.boolean().default(false).describe('Is unique constraint'),\n defaultValue: z.any().optional().describe('Default value'),\n \n /** Text/String Constraints */\n maxLength: z.number().optional().describe('Max character length'),\n minLength: z.number().optional().describe('Min character length'),\n \n /** Number Constraints */\n precision: z.number().optional().describe('Total digits'),\n scale: z.number().optional().describe('Decimal places'),\n min: z.number().optional().describe('Minimum value'),\n max: z.number().optional().describe('Maximum value'),\n\n /** Selection Options */\n options: z.array(SelectOptionSchema).optional().describe('Static options for select/multiselect'),\n\n /** Relationship Config */\n reference: z.string().optional().describe('Target Object Name'),\n referenceFilters: z.array(z.string()).optional().describe('Filters applied to lookup dialogs (e.g. \"active = true\")'),\n writeRequiresMasterRead: z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),\n deleteBehavior: z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),\n\n /** Calculation */\n expression: z.string().optional().describe('Formula expression'),\n formula: z.string().optional().describe('Deprecated: Use expression'),\n summaryOperations: z.object({\n object: z.string(),\n field: z.string(),\n function: z.enum(['count', 'sum', 'min', 'max', 'avg'])\n }).optional().describe('Roll-up summary definition'),\n\n /** Enhanced Field Type Configurations */\n // Code field config\n language: z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),\n theme: z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),\n lineNumbers: z.boolean().optional().describe('Show line numbers in code editor'),\n \n // Rating field config\n maxRating: z.number().optional().describe('Maximum rating value (default: 5)'),\n allowHalf: z.boolean().optional().describe('Allow half-star ratings'),\n \n // Location field config\n displayMap: z.boolean().optional().describe('Display map widget for location field'),\n allowGeocoding: z.boolean().optional().describe('Allow address-to-coordinate conversion'),\n \n // Address field config\n addressFormat: z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),\n \n // Color field config\n colorFormat: z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),\n allowAlpha: z.boolean().optional().describe('Allow transparency/alpha channel'),\n presetColors: z.array(z.string()).optional().describe('Preset color options'),\n \n // Slider field config\n step: z.number().optional().describe('Step increment for slider (default: 1)'),\n showValue: z.boolean().optional().describe('Display current value on slider'),\n marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})'),\n \n // QR Code / Barcode field config\n // Note: qrErrorCorrection is only applicable when barcodeFormat='qr'\n // Runtime validation should enforce this constraint\n barcodeFormat: z.enum(['qr', 'ean13', 'ean8', 'code128', 'code39', 'upca', 'upce']).optional().describe('Barcode format type'),\n qrErrorCorrection: z.enum(['L', 'M', 'Q', 'H']).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"'),\n displayValue: z.boolean().optional().describe('Display human-readable value below barcode/QR code'),\n allowScanning: z.boolean().optional().describe('Enable camera scanning for barcode/QR code input'),\n\n // Currency field config\n currencyConfig: CurrencyConfigSchema.optional().describe('Configuration for currency field type'),\n\n // Vector field config\n vectorConfig: VectorConfigSchema.optional().describe('Configuration for vector field type (AI/ML embeddings)'),\n\n // File attachment field config\n fileAttachmentConfig: FileAttachmentConfigSchema.optional().describe('Configuration for file and attachment field types'),\n\n /** Enhanced Security & Compliance */\n // Encryption configuration\n encryptionConfig: EncryptionConfigSchema.optional().describe('Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)'),\n \n // Data masking rules\n maskingRule: MaskingRuleSchema.optional().describe('Data masking rules for PII protection'),\n \n // Audit trail\n auditTrail: z.boolean().default(false).describe('Enable detailed audit trail for this field (tracks all changes with user and timestamp)'),\n \n /** Field Dependencies & Relationships */\n // Field dependencies\n dependencies: z.array(z.string()).optional().describe('Array of field names that this field depends on (for formulas, visibility rules, etc.)'),\n \n /** Computed Field Optimization */\n // Computed field caching\n cached: ComputedFieldCacheSchema.optional().describe('Caching configuration for computed/formula fields'),\n \n /** Data Quality & Governance */\n // Data quality rules\n dataQuality: DataQualityRulesSchema.optional().describe('Data quality validation and monitoring rules'),\n\n /** Security & Visibility */\n hidden: z.boolean().default(false).describe('Hidden from default UI'),\n readonly: z.boolean().default(false).describe('Read-only in UI'),\n encryption: z.boolean().default(false).describe('Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility.'),\n \n /** Indexing */\n index: z.boolean().default(false).describe('Create standard database index'),\n externalId: z.boolean().default(false).describe('Is external ID for upsert operations'),\n});\n\nexport type Field = z.infer<typeof FieldSchema>;\nexport type SelectOption = z.infer<typeof SelectOptionSchema>;\nexport type LocationCoordinates = z.infer<typeof LocationCoordinatesSchema>;\nexport type Address = z.infer<typeof AddressSchema>;\nexport type CurrencyConfig = z.infer<typeof CurrencyConfigSchema>;\nexport type CurrencyValue = z.infer<typeof CurrencyValueSchema>;\nexport type VectorConfig = z.infer<typeof VectorConfigSchema>;\nexport type FileAttachmentConfig = z.infer<typeof FileAttachmentConfigSchema>;\nexport type DataQualityRules = z.infer<typeof DataQualityRulesSchema>;\nexport type ComputedFieldCache = z.infer<typeof ComputedFieldCacheSchema>;\n\n/**\n * Field Factory Helper\n */\nexport type FieldInput = Omit<Partial<Field>, 'type'>;\n\nexport const Field = {\n text: (config: FieldInput = {}) => ({ type: 'text', ...config } as const),\n textarea: (config: FieldInput = {}) => ({ type: 'textarea', ...config } as const),\n number: (config: FieldInput = {}) => ({ type: 'number', ...config } as const),\n boolean: (config: FieldInput = {}) => ({ type: 'boolean', ...config } as const),\n date: (config: FieldInput = {}) => ({ type: 'date', ...config } as const),\n datetime: (config: FieldInput = {}) => ({ type: 'datetime', ...config } as const),\n currency: (config: FieldInput = {}) => ({ type: 'currency', ...config } as const),\n percent: (config: FieldInput = {}) => ({ type: 'percent', ...config } as const),\n url: (config: FieldInput = {}) => ({ type: 'url', ...config } as const),\n email: (config: FieldInput = {}) => ({ type: 'email', ...config } as const),\n phone: (config: FieldInput = {}) => ({ type: 'phone', ...config } as const),\n image: (config: FieldInput = {}) => ({ type: 'image', ...config } as const),\n file: (config: FieldInput = {}) => ({ type: 'file', ...config } as const),\n avatar: (config: FieldInput = {}) => ({ type: 'avatar', ...config } as const),\n formula: (config: FieldInput = {}) => ({ type: 'formula', ...config } as const),\n summary: (config: FieldInput = {}) => ({ type: 'summary', ...config } as const),\n autonumber: (config: FieldInput = {}) => ({ type: 'autonumber', ...config } as const),\n markdown: (config: FieldInput = {}) => ({ type: 'markdown', ...config } as const),\n html: (config: FieldInput = {}) => ({ type: 'html', ...config } as const),\n password: (config: FieldInput = {}) => ({ type: 'password', ...config } as const),\n \n /**\n * Select field helper with backward-compatible API\n * \n * Automatically converts option values to lowercase to enforce naming conventions.\n * \n * @example Old API (array first) - auto-converts to lowercase\n * Field.select(['High', 'Low'], { label: 'Priority' })\n * // Results in: [{ label: 'High', value: 'high' }, { label: 'Low', value: 'low' }]\n * \n * @example New API (config object) - enforces lowercase\n * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })\n * \n * @example Multi-word values - converts to snake_case\n * Field.select(['In Progress', 'Closed Won'], { label: 'Status' })\n * // Results in: [{ label: 'In Progress', value: 'in_progress' }, { label: 'Closed Won', value: 'closed_won' }]\n */\n select: (optionsOrConfig: SelectOption[] | string[] | FieldInput & { options: SelectOption[] | string[] }, config?: FieldInput) => {\n // Helper function to convert string to lowercase snake_case\n const toSnakeCase = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '_') // Replace spaces with underscores\n .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters (keeping underscores only)\n };\n\n // Support both old and new signatures:\n // Old: Field.select(['a', 'b'], { label: 'X' })\n // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })\n let options: SelectOption[];\n let finalConfig: FieldInput;\n \n if (Array.isArray(optionsOrConfig)) {\n // Old signature: array as first param\n options = optionsOrConfig.map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n finalConfig = config || {};\n } else {\n // New signature: config object with options\n options = (optionsOrConfig.options || []).map(o => \n typeof o === 'string' \n ? { label: o, value: toSnakeCase(o) } // Auto-convert string to snake_case\n : { ...o, value: o.value.toLowerCase() } // Ensure value is lowercase\n );\n // Remove options from config to avoid confusion\n const { options: _, ...restConfig } = optionsOrConfig;\n finalConfig = restConfig;\n }\n \n return { type: 'select', options, ...finalConfig } as const;\n },\n\n \n lookup: (reference: string, config: FieldInput = {}) => ({ \n type: 'lookup', \n reference, \n ...config \n } as const),\n \n masterDetail: (reference: string, config: FieldInput = {}) => ({ \n type: 'master_detail', \n reference, \n ...config \n } as const),\n\n // Enhanced Field Type Helpers\n location: (config: FieldInput = {}) => ({ \n type: 'location', \n ...config \n } as const),\n \n address: (config: FieldInput = {}) => ({ \n type: 'address', \n ...config \n } as const),\n \n richtext: (config: FieldInput = {}) => ({ \n type: 'richtext', \n ...config \n } as const),\n \n code: (language?: string, config: FieldInput = {}) => ({ \n type: 'code', \n language,\n ...config \n } as const),\n \n color: (config: FieldInput = {}) => ({ \n type: 'color', \n ...config \n } as const),\n \n rating: (maxRating: number = 5, config: FieldInput = {}) => ({ \n type: 'rating', \n maxRating,\n ...config \n } as const),\n \n signature: (config: FieldInput = {}) => ({ \n type: 'signature', \n ...config \n } as const),\n \n slider: (config: FieldInput = {}) => ({ \n type: 'slider', \n ...config \n } as const),\n \n qrcode: (config: FieldInput = {}) => ({ \n type: 'qrcode', \n ...config \n } as const),\n \n vector: (dimensions: number, config: FieldInput = {}) => ({ \n type: 'vector', \n vectorConfig: {\n dimensions,\n distanceMetric: 'cosine' as const,\n normalized: false,\n indexed: true,\n ...config.vectorConfig\n },\n ...config \n } as const),\n};\n","import { z } from 'zod';\n\n/**\n * Field-level encryption protocol\n * GDPR/HIPAA/PCI-DSS compliant\n */\nexport const EncryptionAlgorithmSchema = z.enum([\n 'aes-256-gcm',\n 'aes-256-cbc',\n 'chacha20-poly1305',\n]);\n\nexport type EncryptionAlgorithm = z.infer<typeof EncryptionAlgorithmSchema>;\n\nexport const KeyManagementProviderSchema = z.enum([\n 'local',\n 'aws-kms',\n 'azure-key-vault',\n 'gcp-kms',\n 'hashicorp-vault',\n]);\n\nexport type KeyManagementProvider = z.infer<typeof KeyManagementProviderSchema>;\n\nexport const KeyRotationPolicySchema = z.object({\n enabled: z.boolean().default(false),\n frequencyDays: z.number().min(1).default(90),\n retainOldVersions: z.number().default(3),\n autoRotate: z.boolean().default(true),\n});\n\nexport type KeyRotationPolicy = z.infer<typeof KeyRotationPolicySchema>;\n\nexport const EncryptionConfigSchema = z.object({\n enabled: z.boolean().default(false),\n algorithm: EncryptionAlgorithmSchema.default('aes-256-gcm'),\n keyManagement: z.object({\n provider: KeyManagementProviderSchema,\n keyId: z.string().optional(),\n rotationPolicy: KeyRotationPolicySchema.optional(),\n }),\n scope: z.enum(['field', 'record', 'table', 'database']),\n deterministicEncryption: z.boolean().default(false).describe('Allows equality queries on encrypted data'),\n searchableEncryption: z.boolean().default(false).describe('Allows search on encrypted data'),\n});\n\nexport type EncryptionConfig = z.infer<typeof EncryptionConfigSchema>;\n\nexport const FieldEncryptionSchema = z.object({\n fieldName: z.string(),\n encryptionConfig: EncryptionConfigSchema,\n indexable: z.boolean().default(false),\n});\n\nexport type FieldEncryption = z.infer<typeof FieldEncryptionSchema>;\n","import { z } from 'zod';\n\n/**\n * Data masking protocol for PII protection\n */\nexport const MaskingStrategySchema = z.enum([\n 'redact', // Complete redaction: ****\n 'partial', // Partial masking: 138****5678\n 'hash', // Hash value: sha256(value)\n 'tokenize', // Tokenization: token-12345\n 'randomize', // Randomize: generate random value\n 'nullify', // Null value: null\n 'substitute', // Substitute with dummy data\n]);\n\nexport type MaskingStrategy = z.infer<typeof MaskingStrategySchema>;\n\nexport const MaskingRuleSchema = z.object({\n field: z.string(),\n strategy: MaskingStrategySchema,\n pattern: z.string().optional().describe('Regex pattern for partial masking'),\n preserveFormat: z.boolean().default(true),\n preserveLength: z.boolean().default(true),\n roles: z.array(z.string()).optional().describe('Roles that see masked data'),\n exemptRoles: z.array(z.string()).optional().describe('Roles that see unmasked data'),\n});\n\nexport type MaskingRule = z.infer<typeof MaskingRuleSchema>;\n\nexport const MaskingConfigSchema = z.object({\n enabled: z.boolean().default(false),\n rules: z.array(MaskingRuleSchema),\n auditUnmasking: z.boolean().default(true),\n});\n\nexport type MaskingConfig = z.infer<typeof MaskingConfigSchema>;\n","import { z } from 'zod';\nimport { FieldSchema } from './field.zod';\nimport { ValidationRuleSchema } from './validation.zod';\nimport { StateMachineSchema } from '../automation/state-machine.zod';\n\n/**\n * API Operations Enum\n */\nexport const ApiMethod = z.enum([\n 'get', 'list', // Read\n 'create', 'update', 'delete', // Write\n 'upsert', // Idempotent Write\n 'bulk', // Batch operations\n 'aggregate', // Analytics (count, sum)\n 'history', // Audit access\n 'search', // Search access\n 'restore', 'purge', // Trash management\n 'import', 'export', // Data portability\n]);\nexport type ApiMethod = z.infer<typeof ApiMethod>;\n\n/**\n * Capability Flags\n * Defines what system features are enabled for this object.\n * \n * Optimized based on industry standards (Salesforce, ServiceNow):\n * - Added `activities` (Tasks/Events)\n * - Added `mru` (Recent Items)\n * - Added `feeds` (Social/Chatter)\n * - Grouped API permissions\n * \n * @example\n * {\n * trackHistory: true,\n * searchable: true,\n * apiEnabled: true,\n * files: true\n * }\n */\nexport const ObjectCapabilities = z.object({\n /** Enable history tracking (Audit Trail) */\n trackHistory: z.boolean().default(false).describe('Enable field history tracking for audit compliance'),\n \n /** Enable global search indexing */\n searchable: z.boolean().default(true).describe('Index records for global search'),\n \n /** Enable REST/GraphQL API access */\n apiEnabled: z.boolean().default(true).describe('Expose object via automatic APIs'),\n\n /** \n * API Supported Operations\n * Granular control over API exposure.\n */\n apiMethods: z.array(ApiMethod).optional().describe('Whitelist of allowed API operations'),\n \n /** Enable standard attachments/files engine */\n files: z.boolean().default(false).describe('Enable file attachments and document management'),\n \n /** Enable social collaboration (Comments, Mentions, Feeds) */\n feeds: z.boolean().default(false).describe('Enable social feed, comments, and mentions (Chatter-like)'),\n \n /** Enable standard Activity suite (Tasks, Calendars, Events) */\n activities: z.boolean().default(false).describe('Enable standard tasks and events tracking'),\n \n /** Enable Recycle Bin / Soft Delete */\n trash: z.boolean().default(true).describe('Enable soft-delete with restore capability'),\n\n /** Enable \"Recently Viewed\" tracking */\n mru: z.boolean().default(true).describe('Track Most Recently Used (MRU) list for users'),\n \n /** Allow cloning records */\n clone: z.boolean().default(true).describe('Allow record deep cloning'),\n});\n\n/**\n * Schema for database indexes.\n * Enhanced with additional index types and configuration options\n * \n * @example\n * {\n * name: \"idx_account_name\",\n * fields: [\"name\"],\n * type: \"btree\",\n * unique: true\n * }\n */\nexport const IndexSchema = z.object({\n name: z.string().optional().describe('Index name (auto-generated if not provided)'),\n fields: z.array(z.string()).describe('Fields included in the index'),\n type: z.enum(['btree', 'hash', 'gin', 'gist', 'fulltext']).optional().default('btree').describe('Index algorithm type'),\n unique: z.boolean().optional().default(false).describe('Whether the index enforces uniqueness'),\n partial: z.string().optional().describe('Partial index condition (SQL WHERE clause for conditional indexes)'),\n});\n\n/**\n * Search Configuration\n * Defines how this object behaves in search results.\n * \n * @example\n * {\n * fields: [\"name\", \"email\", \"phone\"],\n * displayFields: [\"name\", \"title\"],\n * filters: [\"status = 'active'\"]\n * }\n */\nexport const SearchConfigSchema = z.object({\n fields: z.array(z.string()).describe('Fields to index for full-text search weighting'),\n displayFields: z.array(z.string()).optional().describe('Fields to display in search result cards'),\n filters: z.array(z.string()).optional().describe('Default filters for search results'),\n});\n\n/**\n * Multi-Tenancy Configuration Schema\n * Configures tenant isolation strategy for SaaS applications\n * \n * @example Shared database with tenant_id isolation\n * {\n * enabled: true,\n * strategy: 'shared',\n * tenantField: 'tenant_id',\n * crossTenantAccess: false\n * }\n */\nexport const TenancyConfigSchema = z.object({\n enabled: z.boolean().describe('Enable multi-tenancy for this object'),\n strategy: z.enum(['shared', 'isolated', 'hybrid']).describe('Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)'),\n tenantField: z.string().default('tenant_id').describe('Field name for tenant identifier'),\n crossTenantAccess: z.boolean().default(false).describe('Allow cross-tenant data access (with explicit permission)'),\n});\n\n/**\n * Soft Delete Configuration Schema\n * Implements recycle bin / trash functionality\n * \n * @example Standard soft delete with cascade\n * {\n * enabled: true,\n * field: 'deleted_at',\n * cascadeDelete: true\n * }\n */\nexport const SoftDeleteConfigSchema = z.object({\n enabled: z.boolean().describe('Enable soft delete (trash/recycle bin)'),\n field: z.string().default('deleted_at').describe('Field name for soft delete timestamp'),\n cascadeDelete: z.boolean().default(false).describe('Cascade soft delete to related records'),\n});\n\n/**\n * Versioning Configuration Schema\n * Implements record versioning and history tracking\n * \n * @example Snapshot versioning with 90-day retention\n * {\n * enabled: true,\n * strategy: 'snapshot',\n * retentionDays: 90,\n * versionField: 'version'\n * }\n */\nexport const VersioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable record versioning'),\n strategy: z.enum(['snapshot', 'delta', 'event-sourcing']).describe('Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)'),\n retentionDays: z.number().min(1).optional().describe('Number of days to retain old versions (undefined = infinite)'),\n versionField: z.string().default('version').describe('Field name for version number/timestamp'),\n});\n\n/**\n * Partitioning Strategy Schema\n * Configures table partitioning for performance at scale\n * \n * @example Range partitioning by date (monthly)\n * {\n * enabled: true,\n * strategy: 'range',\n * key: 'created_at',\n * interval: '1 month'\n * }\n */\nexport const PartitioningConfigSchema = z.object({\n enabled: z.boolean().describe('Enable table partitioning'),\n strategy: z.enum(['range', 'hash', 'list']).describe('Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)'),\n key: z.string().describe('Field name to partition by'),\n interval: z.string().optional().describe('Partition interval for range strategy (e.g., \"1 month\", \"1 year\")'),\n}).refine((data) => {\n // If strategy is 'range', interval must be provided\n if (data.strategy === 'range' && !data.interval) {\n return false;\n }\n return true;\n}, {\n message: 'interval is required when strategy is \"range\"',\n});\n\n/**\n * Change Data Capture (CDC) Configuration Schema\n * Enables real-time data streaming to external systems\n * \n * @example Stream all changes to Kafka\n * {\n * enabled: true,\n * events: ['insert', 'update', 'delete'],\n * destination: 'kafka://events.objectstack'\n * }\n */\nexport const CDCConfigSchema = z.object({\n enabled: z.boolean().describe('Enable Change Data Capture'),\n events: z.array(z.enum(['insert', 'update', 'delete'])).describe('Event types to capture'),\n destination: z.string().describe('Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")'),\n});\n\n/**\n * Base Object Schema Definition\n * \n * The Blueprint of a Business Object.\n * Represents a table, a collection, or a virtual entity.\n * \n * @example\n * ```yaml\n * name: project_task\n * label: Project Task\n * icon: task\n * fields:\n * project:\n * type: lookup\n * reference: project\n * status:\n * type: select\n * options: [todo, in_progress, done]\n * enable:\n * trackHistory: true\n * files: true\n * ```\n */\nconst ObjectSchemaBase = z.object({\n /** \n * Identity & Metadata \n */\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine unique key (snake_case). Immutable.'),\n label: z.string().optional().describe('Human readable singular label (e.g. \"Account\")'),\n pluralLabel: z.string().optional().describe('Human readable plural label (e.g. \"Accounts\")'),\n description: z.string().optional().describe('Developer documentation / description'),\n icon: z.string().optional().describe('Icon name (Lucide/Material) for UI representation'),\n \n /**\n * Taxonomy & Organization\n */\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g. \"sales\", \"system\", \"reference\")'),\n active: z.boolean().optional().default(true).describe('Is the object active and usable'),\n isSystem: z.boolean().optional().default(false).describe('Is system object (protected from deletion)'),\n abstract: z.boolean().optional().default(false).describe('Is abstract base object (cannot be instantiated)'),\n\n /** \n * Storage & Virtualization \n */\n datasource: z.string().optional().default('default').describe('Target Datasource ID. \"default\" is the primary DB.'),\n tableName: z.string().optional().describe('Physical table/collection name in the target datasource'),\n \n /** \n * Data Model \n */\n fields: z.record(z.string().regex(/^[a-z_][a-z0-9_]*$/, {\n message: 'Field names must be lowercase snake_case (e.g., \"first_name\", \"company\", \"annual_revenue\")',\n }), FieldSchema).describe('Field definitions map. Keys must be snake_case identifiers.'),\n indexes: z.array(IndexSchema).optional().describe('Database performance indexes'),\n \n /**\n * Advanced Data Management\n */\n \n // Multi-tenancy configuration\n tenancy: TenancyConfigSchema.optional().describe('Multi-tenancy configuration for SaaS applications'),\n \n // Soft delete configuration\n softDelete: SoftDeleteConfigSchema.optional().describe('Soft delete (trash/recycle bin) configuration'),\n \n // Versioning configuration\n versioning: VersioningConfigSchema.optional().describe('Record versioning and history tracking configuration'),\n \n // Partitioning strategy\n partitioning: PartitioningConfigSchema.optional().describe('Table partitioning configuration for performance'),\n \n // Change Data Capture\n cdc: CDCConfigSchema.optional().describe('Change Data Capture (CDC) configuration for real-time data streaming'),\n \n /**\n * Logic & Validation (Co-located)\n * Best Practice: Define rules close to data.\n */\n validations: z.array(ValidationRuleSchema).optional().describe('Object-level validation rules'),\n \n /**\n * State Machine(s)\n * Supports a single machine (legacy) or a named record of machines.\n * Multiple machines allow parallel lifecycles (e.g., status + payment_status + approval_status).\n * \n * @example Single: stateMachine: { id: 'lifecycle', initial: 'draft', states: {...} }\n * @example Multiple: stateMachines: { lifecycle: {...}, payment: {...}, approval: {...} }\n */\n stateMachine: StateMachineSchema.optional().describe('Single state machine for record lifecycle (shorthand)'),\n stateMachines: z.record(z.string(), StateMachineSchema).optional().describe('Named state machines for parallel lifecycles (e.g., status, payment, approval)'),\n\n /** \n * Display & UI Hints (Data-Layer)\n */\n titleFormat: z.string().optional().describe('Title expression (e.g. \"{name} - {code}\"). Overrides nameField.'),\n compactLayout: z.array(z.string()).optional().describe('Primary fields for hover/cards/lookups'),\n \n /** \n * Search Engine Config \n */\n search: SearchConfigSchema.optional().describe('Search engine configuration'),\n \n /** \n * System Capabilities \n */\n enable: ObjectCapabilities.optional().describe('Enabled system features modules'),\n});\n\n/**\n * Enhanced ObjectSchema with Factory\n */\nexport const ObjectSchema = Object.assign(ObjectSchemaBase, {\n create: <T extends z.input<typeof ObjectSchemaBase>>(config: T) => config,\n});\n\nexport type ServiceObject = z.infer<typeof ObjectSchemaBase>;\nexport type ObjectCapabilities = z.infer<typeof ObjectCapabilities>;\nexport type ObjectIndex = z.infer<typeof IndexSchema>;\nexport type TenancyConfig = z.infer<typeof TenancyConfigSchema>;\nexport type SoftDeleteConfig = z.infer<typeof SoftDeleteConfigSchema>;\nexport type VersioningConfig = z.infer<typeof VersioningConfigSchema>;\nexport type PartitioningConfig = z.infer<typeof PartitioningConfigSchema>;\nexport type CDCConfig = z.infer<typeof CDCConfigSchema>;\n\n// =================================================================\n// Object Ownership Model\n// =================================================================\n\n/**\n * How a package relates to an object it references.\n * \n * - `own`: This package is the original author/owner of the object.\n * Only one package may own a given object name. The owner defines\n * the base schema (table name, primary key, core fields).\n * \n * - `extend`: This package adds fields, views, or actions to an\n * existing object owned by another package. Multiple packages\n * may extend the same object. Extensions are merged at boot time.\n * \n * Follows Salesforce/ServiceNow patterns:\n * object name = database table name, globally unique, no namespace prefix.\n */\nexport const ObjectOwnershipEnum = z.enum(['own', 'extend']);\nexport type ObjectOwnership = z.infer<typeof ObjectOwnershipEnum>;\n\n/**\n * Object Extension Entry — used in `objectExtensions` array.\n * Declares fields/config to merge into an existing object owned by another package.\n * \n * @example\n * ```ts\n * objectExtensions: [{\n * extend: 'contact', // target object FQN\n * fields: { sales_stage: Field.select([...]) },\n * }]\n * ```\n */\nexport const ObjectExtensionSchema = z.object({\n /** The target object name (FQN) to extend */\n extend: z.string().describe('Target object name (FQN) to extend'),\n \n /** Fields to merge into the target object (additive) */\n fields: z.record(z.string(), FieldSchema).optional().describe('Fields to add/override'),\n \n /** Override label */\n label: z.string().optional(),\n \n /** Override plural label */\n pluralLabel: z.string().optional(),\n \n /** Override description */\n description: z.string().optional(),\n \n /** Additional validation rules to add */\n validations: z.array(ValidationRuleSchema).optional(),\n \n /** Additional indexes to add */\n indexes: z.array(IndexSchema).optional(),\n \n /** Merge priority. Higher number applied later (wins on conflict). Default: 200 */\n priority: z.number().int().min(0).max(999).default(200).describe('Merge priority (higher = applied later)'),\n});\n\nexport type ObjectExtension = z.infer<typeof ObjectExtensionSchema>;\n","import { z } from 'zod';\n\n/**\n * # ObjectStack Validation Protocol\n * \n * This module defines the validation schema protocol for ObjectStack, providing a comprehensive\n * type-safe validation system similar to Salesforce's validation rules but with enhanced capabilities.\n * \n * ## Overview\n * \n * Validation rules are applied at the data layer to ensure data integrity and enforce business logic.\n * The system supports multiple validation types:\n * \n * 1. **Script Validation**: Formula-based validation using expressions\n * 2. **Uniqueness Validation**: Enforce unique constraints across fields\n * 3. **State Machine Validation**: Control allowed state transitions\n * 4. **Format Validation**: Validate field formats (email, URL, regex, etc.)\n * 5. **Cross-Field Validation**: Validate relationships between multiple fields\n * 6. **Async Validation**: Remote validation via API calls\n * 7. **Custom Validation**: User-defined validation functions\n * 8. **Conditional Validation**: Apply validations based on conditions\n * \n * ## Salesforce Comparison\n * \n * ObjectStack validation rules are inspired by Salesforce validation rules but enhanced:\n * - Salesforce: Formula-based validation with `Error Condition Formula`\n * - ObjectStack: Multiple validation types with composable rules\n * \n * Example Salesforce validation rule:\n * ```\n * Rule Name: Discount_Cannot_Exceed_40_Percent\n * Error Condition Formula: Discount_Percent__c > 0.40\n * Error Message: Discount cannot exceed 40%.\n * ```\n * \n * Equivalent ObjectStack rule:\n * ```typescript\n * {\n * type: 'script',\n * name: 'discount_cannot_exceed_40_percent',\n * condition: 'discount_percent > 0.40',\n * message: 'Discount cannot exceed 40%',\n * severity: 'error'\n * }\n * ```\n */\n\n/**\n * Base Validation Rule\n * \n * All validation rules extend from this base schema with common properties.\n * \n * ## Industry Standard Enhancements\n * - **Label/Description**: Essential for governance in large systems with thousands of rules.\n * - **Events**: granular control over validation timing (Context-aware validation).\n * - **Tags**: categorization for reporting and management.\n */\nconst BaseValidationSchema = z.object({\n // Identification\n name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name (snake_case)'),\n label: z.string().optional().describe('Human-readable label for the rule listing'),\n description: z.string().optional().describe('Administrative notes explaining the business reason'),\n \n // Execution Control\n active: z.boolean().default(true),\n events: z.array(z.enum(['insert', 'update', 'delete'])).default(['insert', 'update']).describe('Validation contexts'),\n \n // Classification\n tags: z.array(z.string()).optional().describe('Categorization tags (e.g., \"compliance\", \"billing\")'),\n \n // Feedback\n severity: z.enum(['error', 'warning', 'info']).default('error'),\n message: z.string().describe('Error message to display to the user'),\n});\n\n/**\n * 1. Script/Expression Validation\n * Generic formula-based validation.\n */\nexport const ScriptValidationSchema = BaseValidationSchema.extend({\n type: z.literal('script'),\n condition: z.string().describe('Formula expression. If TRUE, validation fails. (e.g. amount < 0)'),\n});\n\n/**\n * 2. Uniqueness Validation\n * specialized optimized check for unique constraints.\n */\nexport const UniquenessValidationSchema = BaseValidationSchema.extend({\n type: z.literal('unique'),\n fields: z.array(z.string()).describe('Fields that must be combined unique'),\n scope: z.string().optional().describe('Formula condition for scope (e.g. active = true)'),\n caseSensitive: z.boolean().default(true),\n});\n\n/**\n * 3. State Machine Validation\n * State transition logic.\n */\nexport const StateMachineValidationSchema = BaseValidationSchema.extend({\n type: z.literal('state_machine'),\n field: z.string().describe('State field (e.g. status)'),\n transitions: z.record(z.string(), z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'),\n});\n\n/**\n * 4. Value Format Validation\n * Regex or specialized formats.\n */\nexport const FormatValidationSchema = BaseValidationSchema.extend({\n type: z.literal('format'),\n field: z.string(),\n regex: z.string().optional(),\n format: z.enum(['email', 'url', 'phone', 'json']).optional(),\n});\n\n/**\n * 5. Cross-Field Validation\n * Validates relationships between multiple fields.\n * \n * ## Use Cases\n * - Date range validations (end_date > start_date)\n * - Amount comparisons (discount < total)\n * - Complex business rules involving multiple fields\n * \n * ## Salesforce Examples\n * \n * ### Example 1: Close Date Must Be In Current or Future Month\n * **Salesforce Formula:**\n * ```\n * MONTH(CloseDate) < MONTH(TODAY()) ||\n * YEAR(CloseDate) < YEAR(TODAY())\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'close_date_future',\n * condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',\n * fields: ['close_date'],\n * message: 'Close Date must be in the current or a future month'\n * }\n * ```\n * \n * ### Example 2: Discount Validation\n * **Salesforce Formula:**\n * ```\n * Discount__c > (Amount__c * 0.40)\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'discount_limit',\n * condition: 'discount > (amount * 0.40)',\n * fields: ['discount', 'amount'],\n * message: 'Discount cannot exceed 40% of the amount'\n * }\n * ```\n * \n * ### Example 3: Opportunity Must Have Products\n * **Salesforce Formula:**\n * ```\n * ISBLANK(Products__c) && ISPICKVAL(StageName, \"Closed Won\")\n * ```\n * \n * **ObjectStack Equivalent:**\n * ```typescript\n * {\n * type: 'cross_field',\n * name: 'products_required_for_won',\n * condition: 'products = null AND stage = \"closed_won\"',\n * fields: ['products', 'stage'],\n * message: 'Opportunity must have products to be marked as Closed Won'\n * }\n * ```\n */\nexport const CrossFieldValidationSchema = BaseValidationSchema.extend({\n type: z.literal('cross_field'),\n condition: z.string().describe('Formula expression comparing fields (e.g. \"end_date > start_date\")'),\n fields: z.array(z.string()).describe('Fields involved in the validation'),\n});\n\n/**\n * 6. JSON Structure Validation\n * Validates JSON fields against a JSON Schema.\n * \n * ## Use Cases\n * - Validating configuration objects stored in JSON fields\n * - Enforcing API payload structures\n * - Complex nested data validation\n */\nexport const JSONValidationSchema = BaseValidationSchema.extend({\n type: z.literal('json_schema'),\n field: z.string().describe('JSON field to validate'),\n schema: z.record(z.string(), z.any()).describe('JSON Schema object definition'),\n});\n\n/**\n * 7. Async Validation\n * Remote validation via API call or database query.\n * \n * ## Use Cases\n * \n * ### 1. Email Uniqueness Check\n * Check if an email address is already registered in the system.\n * ```typescript\n * {\n * type: 'async',\n * name: 'unique_email',\n * field: 'email',\n * validatorUrl: '/api/users/check-email',\n * message: 'This email address is already registered',\n * debounce: 500, // Wait 500ms after user stops typing\n * timeout: 3000\n * }\n * ```\n * \n * ### 2. Username Availability\n * Verify username is available before form submission.\n * ```typescript\n * {\n * type: 'async',\n * name: 'username_available',\n * field: 'username',\n * validatorUrl: '/api/users/check-username',\n * message: 'This username is already taken',\n * debounce: 300,\n * timeout: 2000\n * }\n * ```\n * \n * ### 3. Tax ID Validation\n * Validate tax ID with government API (e.g., IRS, HMRC).\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_tax_id',\n * field: 'tax_id',\n * validatorFunction: 'validateTaxIdWithIRS',\n * message: 'Invalid Tax ID number',\n * timeout: 10000, // Government APIs may be slow\n * params: { country: 'US', format: 'EIN' }\n * }\n * ```\n * \n * ### 4. Credit Card Validation\n * Verify credit card with payment gateway without charging.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_card',\n * field: 'card_number',\n * validatorUrl: 'https://api.stripe.com/v1/tokens/validate',\n * message: 'Invalid credit card number',\n * timeout: 5000,\n * params: { \n * mode: 'validate_only',\n * checkFunds: false \n * }\n * }\n * ```\n * \n * ### 5. Address Validation\n * Validate and standardize addresses using geocoding services.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_address',\n * field: 'street_address',\n * validatorFunction: 'validateAddressWithGoogleMaps',\n * message: 'Unable to verify address',\n * timeout: 4000,\n * params: {\n * includeFields: ['city', 'state', 'zip'],\n * strictMode: true,\n * country: 'US'\n * }\n * }\n * ```\n * \n * ### 6. Domain Name Availability\n * Check if domain name is available for registration.\n * ```typescript\n * {\n * type: 'async',\n * name: 'domain_available',\n * field: 'domain_name',\n * validatorUrl: '/api/domains/check-availability',\n * message: 'This domain is already taken or reserved',\n * debounce: 500,\n * timeout: 2000\n * }\n * ```\n * \n * ### 7. Coupon Code Validation\n * Verify coupon code is valid and not expired.\n * ```typescript\n * {\n * type: 'async',\n * name: 'validate_coupon',\n * field: 'coupon_code',\n * validatorUrl: '/api/coupons/validate',\n * message: 'Invalid or expired coupon code',\n * timeout: 2000,\n * params: {\n * checkExpiration: true,\n * checkUsageLimit: true,\n * userId: '{{current_user_id}}'\n * }\n * }\n * ```\n */\nexport const AsyncValidationSchema = BaseValidationSchema.extend({\n type: z.literal('async'),\n field: z.string().describe('Field to validate'),\n validatorUrl: z.string().optional().describe('External API endpoint for validation'),\n method: z.enum(['GET', 'POST']).default('GET').describe('HTTP method for external call'),\n headers: z.record(z.string(), z.string()).optional().describe('Custom headers for the request'),\n validatorFunction: z.string().optional().describe('Reference to custom validator function'),\n timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'),\n debounce: z.number().optional().describe('Debounce delay in milliseconds'),\n params: z.record(z.string(), z.any()).optional().describe('Additional parameters to pass to validator'),\n});\n\n/**\n * 8. Custom Validator Function\n * User-defined validation logic with code reference.\n */\nexport const CustomValidatorSchema = BaseValidationSchema.extend({\n type: z.literal('custom'),\n handler: z.string().describe('Name of the custom validation function registered in the system'),\n params: z.record(z.string(), z.any()).optional().describe('Parameters passed to the custom handler'),\n});\n\n/**\n * 9. Master Validation Rule Schema\n */\nexport const ValidationRuleSchema: z.ZodType<any> = z.lazy(() =>\n z.discriminatedUnion('type', [\n ScriptValidationSchema,\n UniquenessValidationSchema,\n StateMachineValidationSchema,\n FormatValidationSchema,\n CrossFieldValidationSchema,\n JSONValidationSchema,\n AsyncValidationSchema,\n CustomValidatorSchema,\n ConditionalValidationSchema,\n ])\n);\n\n/**\n * 8. Conditional Validation\n * Validation that only applies when a condition is met.\n * \n * ## Overview\n * Conditional validations follow the pattern: \"Validate X only if Y is true\"\n * This allows for context-aware validation rules that adapt to different scenarios.\n * \n * ## Use Cases\n * \n * ### 1. Validate Based on Record Type\n * Apply different validation rules based on the type of record.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_approval_required',\n * when: 'account_type = \"enterprise\"',\n * message: 'Enterprise validation',\n * then: {\n * type: 'script',\n * name: 'require_approval',\n * message: 'Enterprise accounts require manager approval',\n * condition: 'approval_status = null'\n * }\n * }\n * ```\n * \n * ### 2. Conditional Field Requirements\n * Require certain fields only when specific conditions are met.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'shipping_address_when_required',\n * when: 'requires_shipping = true',\n * message: 'Shipping validation',\n * then: {\n * type: 'script',\n * name: 'shipping_address_required',\n * message: 'Shipping address is required for physical products',\n * condition: 'shipping_address = null OR shipping_address = \"\"'\n * }\n * }\n * ```\n * \n * ### 3. Amount-Based Validation\n * Apply different rules based on transaction amount.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'high_value_approval',\n * when: 'order_total > 10000',\n * message: 'High value order validation',\n * then: {\n * type: 'script',\n * name: 'manager_approval_required',\n * message: 'Orders over $10,000 require manager approval',\n * condition: 'manager_approval_id = null'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'standard_validation',\n * message: 'Payment method is required',\n * condition: 'payment_method = null'\n * }\n * }\n * ```\n * \n * ### 4. Regional Compliance\n * Apply region-specific validation rules.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'regional_compliance',\n * when: 'region = \"EU\"',\n * message: 'EU compliance validation',\n * then: {\n * type: 'script',\n * name: 'gdpr_consent',\n * message: 'GDPR consent is required for EU customers',\n * condition: 'gdpr_consent_given = false'\n * },\n * otherwise: {\n * type: 'script',\n * name: 'tos_acceptance',\n * message: 'Terms of Service acceptance required',\n * condition: 'tos_accepted = false'\n * }\n * }\n * ```\n * \n * ### 5. Nested Conditional Validation\n * Create complex validation logic with nested conditions.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'country_state_validation',\n * when: 'country = \"US\"',\n * message: 'US-specific validation',\n * then: {\n * type: 'conditional',\n * name: 'california_validation',\n * when: 'state = \"CA\"',\n * message: 'California-specific validation',\n * then: {\n * type: 'script',\n * name: 'ca_tax_id_required',\n * message: 'California requires a valid tax ID',\n * condition: 'tax_id = null OR NOT(REGEX(tax_id, \"^\\\\d{2}-\\\\d{7}$\"))'\n * }\n * }\n * }\n * ```\n * \n * ### 6. Tax Validation for Taxable Items\n * Only validate tax fields when the item is taxable.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'tax_field_validation',\n * when: 'is_taxable = true',\n * message: 'Tax validation',\n * then: {\n * type: 'script',\n * name: 'tax_code_required',\n * message: 'Tax code is required for taxable items',\n * condition: 'tax_code = null OR tax_code = \"\"'\n * }\n * }\n * ```\n * \n * ### 7. Role-Based Validation\n * Apply validation based on user role.\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'role_based_approval_limit',\n * when: 'user_role = \"manager\"',\n * message: 'Manager approval limits',\n * then: {\n * type: 'script',\n * name: 'manager_limit',\n * message: 'Managers can approve up to $50,000',\n * condition: 'approval_amount > 50000'\n * }\n * }\n * ```\n * \n * ## Salesforce Pattern Comparison\n * \n * Salesforce doesn't have explicit \"conditional validation\" rules but achieves similar\n * behavior using formula logic. ObjectStack makes this pattern explicit and composable.\n * \n * **Salesforce Approach:**\n * ```\n * IF(\n * ISPICKVAL(Type, \"Enterprise\"),\n * AND(Amount > 100000, ISBLANK(Approval__c)),\n * FALSE\n * )\n * ```\n * \n * **ObjectStack Approach:**\n * ```typescript\n * {\n * type: 'conditional',\n * name: 'enterprise_high_value',\n * when: 'type = \"enterprise\"',\n * then: {\n * type: 'cross_field',\n * name: 'amount_approval',\n * condition: 'amount > 100000 AND approval = null',\n * fields: ['amount', 'approval']\n * }\n * }\n * ```\n */\nexport const ConditionalValidationSchema = BaseValidationSchema.extend({\n type: z.literal('conditional'),\n when: z.string().describe('Condition formula (e.g. \"type = \\'enterprise\\'\")'),\n then: ValidationRuleSchema.describe('Validation rule to apply when condition is true'),\n otherwise: ValidationRuleSchema.optional().describe('Validation rule to apply when condition is false'),\n});\n\nexport type ValidationRule = z.infer<typeof ValidationRuleSchema>;\nexport type ScriptValidation = z.infer<typeof ScriptValidationSchema>;\nexport type UniquenessValidation = z.infer<typeof UniquenessValidationSchema>;\nexport type StateMachineValidation = z.infer<typeof StateMachineValidationSchema>;\nexport type FormatValidation = z.infer<typeof FormatValidationSchema>;\nexport type CrossFieldValidation = z.infer<typeof CrossFieldValidationSchema>;\nexport type JSONValidation = z.infer<typeof JSONValidationSchema>;\nexport type AsyncValidation = z.infer<typeof AsyncValidationSchema>;\nexport type CustomValidation = z.infer<typeof CustomValidatorSchema>;\nexport type ConditionalValidation = z.infer<typeof ConditionalValidationSchema>;"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z"]}
|