@elevasis/ui 1.7.5 → 1.8.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.
Files changed (43) hide show
  1. package/dist/api/index.js +2 -3
  2. package/dist/auth/index.js +3 -4
  3. package/dist/charts/index.js +6 -8
  4. package/dist/{chunk-SFF5MJEI.js → chunk-2YBPRE6H.js} +1 -2
  5. package/dist/{chunk-U34YGJQB.js → chunk-3I2LOKQU.js} +1 -1
  6. package/dist/{chunk-PVVQTENF.js → chunk-3PURTICE.js} +1 -1
  7. package/dist/{chunk-2JBWPFHF.js → chunk-6TMW6VQ2.js} +1 -1
  8. package/dist/{chunk-6HZAMY6T.js → chunk-ARZM3OTI.js} +6 -2
  9. package/dist/{chunk-OK3XFSJJ.js → chunk-BWZMI4KP.js} +963 -10
  10. package/dist/{chunk-4KPI7YCY.js → chunk-EHXOR5LA.js} +2 -3
  11. package/dist/{chunk-Y7UY3HI4.js → chunk-ESOQEOOX.js} +2 -2
  12. package/dist/{chunk-L2CM2CUA.js → chunk-GZVH423C.js} +26 -3
  13. package/dist/{chunk-Y6DNK5ZD.js → chunk-JRJW2H57.js} +35 -9
  14. package/dist/{chunk-LBPALY25.js → chunk-JUPCUF77.js} +2 -2
  15. package/dist/chunk-QWYJHM3S.js +1068 -0
  16. package/dist/{chunk-NEK6JKPW.js → chunk-WUQWCUCB.js} +1 -1
  17. package/dist/chunk-Z4TPHMRD.js +231 -0
  18. package/dist/components/index.css +65 -0
  19. package/dist/components/index.d.ts +261 -2
  20. package/dist/components/index.js +1136 -80
  21. package/dist/hooks/index.css +452 -0
  22. package/dist/hooks/index.d.ts +1831 -13
  23. package/dist/hooks/index.js +15 -6
  24. package/dist/hooks/published.css +452 -0
  25. package/dist/hooks/published.d.ts +866 -6
  26. package/dist/hooks/published.js +15 -370
  27. package/dist/index.css +3 -0
  28. package/dist/index.d.ts +1665 -2
  29. package/dist/index.js +14 -17
  30. package/dist/initialization/index.js +3 -4
  31. package/dist/organization/index.js +3 -4
  32. package/dist/profile/index.js +1 -2
  33. package/dist/provider/index.css +3 -0
  34. package/dist/provider/index.js +7 -10
  35. package/dist/provider/published.js +6 -9
  36. package/dist/utils/index.d.ts +92 -1
  37. package/dist/utils/index.js +1 -2
  38. package/package.json +7 -3
  39. package/dist/chunk-4VGWQ5AN.js +0 -91
  40. package/dist/chunk-KA7LO7U5.js +0 -28
  41. package/dist/chunk-LFYO3MDC.js +0 -58
  42. package/dist/chunk-TIRMFDM4.js +0 -33
  43. package/dist/chunk-TYV5NJV2.js +0 -1
package/dist/index.d.ts CHANGED
@@ -7,7 +7,9 @@ import { CSSVariablesResolver, MantineThemeOverride } from '@mantine/core';
7
7
  import { Node, Edge, NodeMouseHandler } from '@xyflow/react';
8
8
  import { IconBrain } from '@tabler/icons-react';
9
9
  import { z } from 'zod';
10
+ import * as zustand from 'zustand';
10
11
  import { UseBoundStore, StoreApi } from 'zustand';
12
+ import * as zustand_middleware from 'zustand/middleware';
11
13
 
12
14
  /**
13
15
  * API module types
@@ -545,6 +547,74 @@ interface FormSchema {
545
547
  fields: FormField[];
546
548
  }
547
549
 
550
+ /**
551
+ * Command View Types
552
+ *
553
+ * Unified type definitions for the Command View graph visualization.
554
+ * These types are used by both backend serialization and frontend rendering.
555
+ *
556
+ * Command View shows the resource graph: agents, workflows, triggers, integrations,
557
+ * external resources, and human checkpoints with their relationships.
558
+ */
559
+
560
+ /**
561
+ * Extended agent metadata for Command View
562
+ * Includes model and capability information for graph display
563
+ */
564
+ interface CommandViewAgent extends ResourceDefinition {
565
+ type: 'agent';
566
+ modelProvider: string;
567
+ modelId: string;
568
+ toolCount: number;
569
+ hasKnowledgeMap: boolean;
570
+ hasMemory: boolean;
571
+ sessionCapable: boolean;
572
+ }
573
+ /**
574
+ * Extended workflow metadata for Command View
575
+ * Includes step information for graph display
576
+ */
577
+ interface CommandViewWorkflow extends ResourceDefinition {
578
+ type: 'workflow';
579
+ stepCount: number;
580
+ entryPoint: string;
581
+ }
582
+ /**
583
+ * Relationship types between resources
584
+ *
585
+ * - triggers: Resource initiates/starts another resource (orange)
586
+ * - uses: Resource uses an integration (teal)
587
+ * - approval: Resource requires human approval (yellow)
588
+ */
589
+ type RelationshipType$1 = 'triggers' | 'uses' | 'approval';
590
+ /**
591
+ * Command View edge (relationship between resources)
592
+ */
593
+ interface CommandViewEdge$1 {
594
+ id: string;
595
+ source: string;
596
+ target: string;
597
+ relationship: RelationshipType$1;
598
+ label?: string;
599
+ }
600
+ /**
601
+ * Command View data structure
602
+ * Complete graph data for visualization
603
+ *
604
+ * Backend serializes this once at startup and serves it via /command-view endpoint.
605
+ * Frontend consumes this directly for graph rendering.
606
+ */
607
+ interface CommandViewData {
608
+ workflows: CommandViewWorkflow[];
609
+ agents: CommandViewAgent[];
610
+ triggers: TriggerDefinition[];
611
+ integrations: IntegrationDefinition[];
612
+ externalResources: ExternalResourceDefinition[];
613
+ humanCheckpoints: HumanCheckpointDefinition[];
614
+ edges: CommandViewEdge$1[];
615
+ domainDefinitions?: DomainDefinition[];
616
+ }
617
+
548
618
  /**
549
619
  * Serialized Registry Types
550
620
  *
@@ -3164,6 +3234,9 @@ type Tables<DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables
3164
3234
  } ? R : never : never;
3165
3235
 
3166
3236
  type SupabaseUserProfile = Tables<'users'>;
3237
+ type SupabaseApiKey = Tables<'api_keys'>;
3238
+ /** API response type for API key list items (omits sensitive key_hash) */
3239
+ type ApiKeyListItem = Omit<SupabaseApiKey, 'key_hash'>;
3167
3240
 
3168
3241
  /**
3169
3242
  * Agent timeline and observability types
@@ -3466,6 +3539,7 @@ interface NotificationDTO {
3466
3539
  createdAt: string;
3467
3540
  }
3468
3541
 
3542
+ type MessageType = MessageEvent['type'];
3469
3543
  /**
3470
3544
  * Session Data Transfer Object (DTO)
3471
3545
  * Transform type for API responses (snake_case DB → camelCase frontend)
@@ -3485,6 +3559,31 @@ interface SessionDTO {
3485
3559
  updatedAt: Date;
3486
3560
  endedAt?: Date | null;
3487
3561
  }
3562
+ interface ChatMessage {
3563
+ id: string;
3564
+ role: 'user' | 'assistant';
3565
+ messageType: MessageType;
3566
+ text: string;
3567
+ metadata?: MessageEvent;
3568
+ turnNumber: number;
3569
+ messageIndex?: number;
3570
+ createdAt: Date;
3571
+ }
3572
+ /** Token usage data sent with turn:complete WebSocket events */
3573
+ interface SessionTokenUsage {
3574
+ /** Tokens consumed by this turn's input */
3575
+ turnInputTokens: number;
3576
+ /** Tokens generated by this turn's output */
3577
+ turnOutputTokens: number;
3578
+ /** Total tokens for this turn (turnInputTokens + turnOutputTokens) */
3579
+ turnTotalTokens: number;
3580
+ /** Cumulative input tokens across all turns in this session */
3581
+ cumulativeInputTokens: number;
3582
+ /** Cumulative output tokens across all turns in this session */
3583
+ cumulativeOutputTokens: number;
3584
+ /** The model's context window size for this session (e.g., 200K) */
3585
+ contextWindowSize: number;
3586
+ }
3488
3587
 
3489
3588
  /**
3490
3589
  * Multi-tenancy configuration types
@@ -3537,6 +3636,29 @@ interface UserConfig {
3537
3636
  };
3538
3637
  }
3539
3638
 
3639
+ /**
3640
+ * Memberships Domain - Zod Validation Schemas
3641
+ *
3642
+ * Validation schemas for membership management endpoints.
3643
+ * Includes request bodies, query params, and path params.
3644
+ *
3645
+ * Security:
3646
+ * - All schemas use .strict() to prevent mass assignment attacks
3647
+ * - UUID validation prevents invalid references
3648
+ * - Role enum validation prevents privilege escalation
3649
+ * - organizationId never accepted in body (from JWT when needed)
3650
+ */
3651
+
3652
+ /**
3653
+ * Membership status validation
3654
+ * Note: Database constraint only allows 'active' | 'inactive'
3655
+ */
3656
+ declare const MembershipStatusSchema: z.ZodEnum<{
3657
+ active: "active";
3658
+ inactive: "inactive";
3659
+ }>;
3660
+ type MembershipStatus = z.infer<typeof MembershipStatusSchema>;
3661
+
3540
3662
  /**
3541
3663
  * Organization Membership types based on WorkOS API
3542
3664
  */
@@ -3552,6 +3674,36 @@ interface OrganizationMembership {
3552
3674
  createdAt: string;
3553
3675
  updatedAt: string;
3554
3676
  }
3677
+ /**
3678
+ * Request interfaces for membership operations
3679
+ */
3680
+ interface CreateMembershipRequest {
3681
+ userId: string;
3682
+ organizationId: string;
3683
+ roleSlug?: string;
3684
+ }
3685
+ interface UpdateMembershipRequest {
3686
+ roleSlug: string;
3687
+ }
3688
+ interface ListMembershipsParams {
3689
+ userId?: string;
3690
+ organizationId?: string;
3691
+ statuses?: MembershipStatus[];
3692
+ limit?: number;
3693
+ before?: string;
3694
+ after?: string;
3695
+ order?: 'asc' | 'desc';
3696
+ }
3697
+ /**
3698
+ * Response interfaces
3699
+ */
3700
+ interface ListMembershipsResponse {
3701
+ data: OrganizationMembership[];
3702
+ listMetadata?: {
3703
+ before?: string | null;
3704
+ after?: string | null;
3705
+ };
3706
+ }
3555
3707
  /**
3556
3708
  * Extended membership with user and organization details for UI
3557
3709
  */
@@ -3707,6 +3859,27 @@ interface ErrorTrend {
3707
3859
  warningCount: number;
3708
3860
  infoCount: number;
3709
3861
  }
3862
+ /**
3863
+ * Summary of executions for a single resource
3864
+ * Used by RecentExecutionsByResource dashboard component
3865
+ */
3866
+ interface ResourceExecutionSummary {
3867
+ resourceId: string;
3868
+ resourceType: string;
3869
+ resourceName: string | null;
3870
+ lastExecution: string;
3871
+ totalExecutions: number;
3872
+ successCount: number;
3873
+ failureCount: number;
3874
+ warningCount: number;
3875
+ successRate: number;
3876
+ }
3877
+ /**
3878
+ * Response from getRecentExecutionsByResource endpoint
3879
+ */
3880
+ interface RecentExecutionsByResourceResponse {
3881
+ resources: ResourceExecutionSummary[];
3882
+ }
3710
3883
  /** Resource identifier for health queries */
3711
3884
  interface ResourceIdentifier {
3712
3885
  entityType: string;
@@ -3804,6 +3977,53 @@ interface CostByModelResponse {
3804
3977
  * Core types shared across all Execution Engine resources
3805
3978
  */
3806
3979
 
3980
+ /**
3981
+ * Unified message event type - covers all message types in sessions
3982
+ * Replaces separate SessionTurnMessages and AgentActivityEvent mechanisms
3983
+ */
3984
+ /**
3985
+ * Structured action metadata attached to assistant messages.
3986
+ * Frontend reads this instead of parsing text prefixes.
3987
+ */
3988
+ type AssistantAction = {
3989
+ kind: 'navigate';
3990
+ path: string;
3991
+ reason: string;
3992
+ } | {
3993
+ kind: 'update_filters';
3994
+ timeRange: string | null;
3995
+ statusFilter: string | null;
3996
+ searchQuery: string | null;
3997
+ };
3998
+ type MessageEvent = {
3999
+ type: 'user_message';
4000
+ text: string;
4001
+ } | {
4002
+ type: 'assistant_message';
4003
+ text: string;
4004
+ _action?: AssistantAction;
4005
+ } | {
4006
+ type: 'agent:started';
4007
+ } | {
4008
+ type: 'agent:completed';
4009
+ } | {
4010
+ type: 'agent:error';
4011
+ error: string;
4012
+ } | {
4013
+ type: 'agent:reasoning';
4014
+ iteration: number;
4015
+ reasoning: string;
4016
+ } | {
4017
+ type: 'agent:tool_call';
4018
+ toolName: string;
4019
+ args: Record<string, unknown>;
4020
+ } | {
4021
+ type: 'agent:tool_result';
4022
+ toolName: string;
4023
+ success: boolean;
4024
+ result?: unknown;
4025
+ error?: string;
4026
+ };
3807
4027
  /**
3808
4028
  * NOTE: AIResource interface has been removed and replaced with ResourceDefinition
3809
4029
  * from registry/types.ts. All resources (executable and non-executable) now extend
@@ -3814,6 +4034,17 @@ interface CostByModelResponse {
3814
4034
  */
3815
4035
  type AIResourceDefinition = SerializedWorkflowDefinition | SerializedAgentDefinition;
3816
4036
 
4037
+ /**
4038
+ * Supported integration types
4039
+ *
4040
+ * These represent the available integration adapters that can be used with tools.
4041
+ * Each integration type corresponds to an adapter implementation.
4042
+ *
4043
+ * Note: Concrete adapter implementations are deferred until needed.
4044
+ * This type provides compile-time safety and auto-completion for tool definitions.
4045
+ */
4046
+ type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'attio' | 'airtable' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'anymailfinder' | 'tomba' | 'millionverifier';
4047
+
3817
4048
  /**
3818
4049
  * Resource Registry type definitions
3819
4050
  */
@@ -3853,6 +4084,240 @@ interface ResourceDefinition {
3853
4084
  /** Whether this resource is archived and should be excluded from registration and deployment */
3854
4085
  archived?: boolean;
3855
4086
  }
4087
+ /**
4088
+ * Domain definition for Command View filtering
4089
+ *
4090
+ * Domains are organizational metadata for UI filtering/grouping.
4091
+ * No execution impact - purely for visualization.
4092
+ *
4093
+ * @example
4094
+ * {
4095
+ * id: 'support',
4096
+ * name: 'Customer Support',
4097
+ * description: 'Ticket triage, knowledge base, escalations',
4098
+ * color: 'green',
4099
+ * icon: 'IconHeadset'
4100
+ * }
4101
+ */
4102
+ interface DomainDefinition {
4103
+ /** Unique identifier (e.g., 'support') */
4104
+ id: string;
4105
+ /** Display name (e.g., 'Customer Support') */
4106
+ name: string;
4107
+ /** Purpose description */
4108
+ description: string;
4109
+ /** Optional Mantine color for UI (e.g., 'blue', 'green', 'orange') */
4110
+ color?: string;
4111
+ /** Optional Tabler icon name (e.g., 'IconHeadset') */
4112
+ icon?: string;
4113
+ }
4114
+ /** Webhook provider identifiers */
4115
+ type WebhookProviderType = 'cal-com' | 'stripe' | 'signature-api' | 'instantly' | 'apify';
4116
+ /** Webhook trigger configuration */
4117
+ interface WebhookTriggerConfig {
4118
+ /** Provider identifier */
4119
+ provider: WebhookProviderType;
4120
+ /** Event type for documentation (not used for matching - workflow handles routing) */
4121
+ event?: string;
4122
+ /** Optional filtering (e.g., specific form ID for Fillout) */
4123
+ filter?: Record<string, string>;
4124
+ /** References credential in credentials table for per-org webhook secrets */
4125
+ credentialName?: string;
4126
+ }
4127
+ /** Schedule trigger configuration */
4128
+ interface ScheduleTriggerConfig {
4129
+ /** Cron expression (e.g., '0 6 * * *') */
4130
+ cron: string;
4131
+ /** Optional timezone (default: UTC) */
4132
+ timezone?: string;
4133
+ }
4134
+ /** Event trigger configuration */
4135
+ interface EventTriggerConfig {
4136
+ /** Internal event type */
4137
+ eventType: string;
4138
+ /** Event source */
4139
+ source?: string;
4140
+ }
4141
+ /** Union of all trigger configs */
4142
+ type TriggerConfig = WebhookTriggerConfig | ScheduleTriggerConfig | EventTriggerConfig;
4143
+ /**
4144
+ * Trigger metadata - entry points that initiate resource execution
4145
+ *
4146
+ * Triggers represent how executions start: webhooks from external services,
4147
+ * scheduled cron jobs, platform events, or manual user actions.
4148
+ *
4149
+ * BREAKING CHANGES (2025-11-30):
4150
+ * - Now extends ResourceDefinition (inherits: resourceId, name, description, version, type, status, domains)
4151
+ * - Field renames: `id` -> `resourceId` (inherited), `type` -> `triggerType`
4152
+ * - Relationship rename: `invokes` -> `triggers` (unified vocabulary)
4153
+ * - New required fields: `version` (inherited), `type: 'trigger'` (inherited)
4154
+ * - triggers object now includes `externalResources` option
4155
+ *
4156
+ * @example
4157
+ * // TriggerDefinition - metadata only
4158
+ * {
4159
+ * resourceId: 'trigger-new-order',
4160
+ * type: 'trigger',
4161
+ * triggerType: 'webhook',
4162
+ * name: 'New Order',
4163
+ * description: 'Webhook from Shopify on new orders',
4164
+ * version: '1.0.0',
4165
+ * status: 'prod',
4166
+ * webhookPath: '/webhooks/shopify/orders'
4167
+ * }
4168
+ *
4169
+ * // Relationships declared in ResourceRelationships (not on TriggerDefinition):
4170
+ * // relationships: {
4171
+ * // 'trigger-new-order': { triggers: { workflows: ['order-fulfillment-workflow'] } }
4172
+ * // }
4173
+ */
4174
+ interface TriggerDefinition extends ResourceDefinition {
4175
+ /** Resource type discriminator (narrowed from base union) */
4176
+ type: 'trigger';
4177
+ /** Trigger mechanism type (renamed from 'type' to avoid collision with base type discriminator) */
4178
+ triggerType: 'webhook' | 'schedule' | 'manual' | 'event';
4179
+ /** Type-specific configuration */
4180
+ config?: TriggerConfig;
4181
+ /** For webhook triggers: path like '/webhooks/shopify/orders' */
4182
+ webhookPath?: string;
4183
+ /** For schedule triggers: cron expression like '0 6 * * *' */
4184
+ schedule?: string;
4185
+ /** For event triggers: event type like 'low-stock-alert' */
4186
+ eventType?: string;
4187
+ }
4188
+ /**
4189
+ * Integration metadata - external service connections
4190
+ *
4191
+ * References credentials table for actual connection. No connection status
4192
+ * stored here (queried at runtime from credentials table).
4193
+ *
4194
+ * BREAKING CHANGES (2025-11-30):
4195
+ * - Now extends ResourceDefinition (inherits: resourceId, name, description, version, type, status, domains)
4196
+ * - Field renames: `id` -> `resourceId` (inherited)
4197
+ * - New required field: `status` (inherited) - organizations must add status to all integrations
4198
+ * - New required field: `version` (inherited) - organizations must add version to all integrations
4199
+ * - New required field: `type: 'integration'` (inherited) - resource type discriminator
4200
+ *
4201
+ * @example
4202
+ * {
4203
+ * resourceId: 'integration-shopify-prod',
4204
+ * type: 'integration',
4205
+ * provider: 'shopify',
4206
+ * credentialName: 'shopify-prod',
4207
+ * name: 'Shopify Production',
4208
+ * description: 'E-commerce platform',
4209
+ * version: '1.0.0',
4210
+ * status: 'prod'
4211
+ * }
4212
+ */
4213
+ interface IntegrationDefinition extends ResourceDefinition {
4214
+ /** Resource type discriminator (narrowed from base union) */
4215
+ type: 'integration';
4216
+ /** Integration provider type */
4217
+ provider: IntegrationType;
4218
+ /** References credentials table (e.g., 'shopify-prod', 'zendesk-api') */
4219
+ credentialName: string;
4220
+ }
4221
+ /**
4222
+ * External platform type
4223
+ * Supported third-party automation platforms
4224
+ */
4225
+ type ExternalPlatform = 'n8n' | 'make' | 'zapier' | 'other';
4226
+ /**
4227
+ * External automation resource metadata
4228
+ *
4229
+ * Represents workflows/automations running on third-party platforms
4230
+ * (n8n, Make, Zapier, etc.) for visualization in Command View.
4231
+ *
4232
+ * NOTE: This is metadata ONLY for visualization. No execution logic,
4233
+ * no API integration with external platforms, no status syncing.
4234
+ *
4235
+ * BREAKING CHANGES (2025-11-30):
4236
+ * - Now extends ResourceDefinition (inherits: resourceId, name, description, version, type, status, domains)
4237
+ * - Field renames: `id` -> `resourceId` (inherited)
4238
+ * - New required field: `version` (inherited) - organizations must add version to all external resources
4239
+ * - New required field: `type: 'external'` (inherited) - resource type discriminator
4240
+ * - REMOVED FIELD: `triggeredBy` - per relationship-consolidation design, all relationships are forward-only declarations
4241
+ *
4242
+ * @example
4243
+ * {
4244
+ * resourceId: 'external-n8n-order-sync',
4245
+ * type: 'external',
4246
+ * version: '1.0.0',
4247
+ * platform: 'n8n',
4248
+ * name: 'Shopify Order Sync',
4249
+ * description: 'Legacy n8n workflow for syncing Shopify orders',
4250
+ * status: 'prod',
4251
+ * platformUrl: 'https://n8n.client.com/workflow/123',
4252
+ * triggers: { workflows: ['order-fulfillment-workflow'] },
4253
+ * uses: { integrations: ['integration-shopify-prod'] }
4254
+ * }
4255
+ */
4256
+ interface ExternalResourceDefinition extends ResourceDefinition {
4257
+ /** Resource type discriminator (narrowed from base union) */
4258
+ type: 'external';
4259
+ /** Platform type */
4260
+ platform: ExternalPlatform;
4261
+ /** Link to external platform (e.g., n8n workflow editor URL) */
4262
+ platformUrl?: string;
4263
+ /** Platform's internal ID/reference */
4264
+ externalId?: string;
4265
+ /** What this external resource triggers (external -> internal) */
4266
+ triggers?: {
4267
+ /** Elevasis workflow resourceIds this external automation triggers */
4268
+ workflows?: string[];
4269
+ /** Elevasis agent resourceIds this external automation triggers */
4270
+ agents?: string[];
4271
+ };
4272
+ /** Integrations this external resource uses (shared credentials) */
4273
+ uses?: {
4274
+ /** Integration IDs this external automation uses */
4275
+ integrations?: string[];
4276
+ };
4277
+ }
4278
+ /**
4279
+ * Human Checkpoint definition - human decision points in automation
4280
+ *
4281
+ * Represents where human judgment is deployed in the automation landscape.
4282
+ * Tasks with matching command_queue_group are routed to this checkpoint.
4283
+ *
4284
+ * BREAKING CHANGES (2025-11-30):
4285
+ * - Now extends ResourceDefinition (inherits: resourceId, name, description, version, type, status, domains)
4286
+ * - Field renames: `id` -> `resourceId` (inherited)
4287
+ * - description is now REQUIRED (was optional) - organizations must add description to all human checkpoints
4288
+ * - New required field: `version` (inherited) - organizations must add version to all human checkpoints
4289
+ * - New required field: `type: 'human'` (inherited) - resource type discriminator
4290
+ *
4291
+ * @example
4292
+ * {
4293
+ * resourceId: 'sales-approval',
4294
+ * type: 'human',
4295
+ * name: 'Sales Approval Queue',
4296
+ * description: 'High-value order approvals for sales team',
4297
+ * version: '1.0.0',
4298
+ * status: 'prod',
4299
+ * requestedBy: { agents: ['order-processor-agent'] },
4300
+ * routesTo: { agents: ['order-fulfillment-agent'] }
4301
+ * }
4302
+ */
4303
+ interface HumanCheckpointDefinition extends ResourceDefinition {
4304
+ /** Resource type discriminator (narrowed from base union) */
4305
+ type: 'human';
4306
+ /** Resources that create tasks for this checkpoint */
4307
+ requestedBy?: {
4308
+ /** Agent resourceIds that request approval here */
4309
+ agents?: string[];
4310
+ /** Workflow resourceIds that request approval here */
4311
+ workflows?: string[];
4312
+ };
4313
+ /** Resources that receive approved decisions */
4314
+ routesTo?: {
4315
+ /** Agent resourceIds that handle approved tasks */
4316
+ agents?: string[];
4317
+ /** Workflow resourceIds that handle approved tasks */
4318
+ workflows?: string[];
4319
+ };
4320
+ }
3856
4321
 
3857
4322
  /**
3858
4323
  * Standard Domain Definitions
@@ -3900,6 +4365,62 @@ interface APIExecutionDetail$1 extends APIExecutionSummary$1 {
3900
4365
  sdkVersion?: string | null;
3901
4366
  }
3902
4367
 
4368
+ /**
4369
+ * @deprecated Use TimeRange from '@repo/core' directly. Kept as alias for backward compatibility.
4370
+ */
4371
+ type StatsTimeRange = TimeRange;
4372
+ /** Stats returned by /command-view/stats (counts only, no error details) */
4373
+ interface ResourceStats {
4374
+ resourceId: string;
4375
+ totalRuns: number;
4376
+ successCount: number;
4377
+ failureCount: number;
4378
+ warningCount: number;
4379
+ lastRunAt: string | null;
4380
+ }
4381
+ /** Response from /command-view/resource-errors (on-demand) */
4382
+ interface ResourceErrorsResponse {
4383
+ resourceId: string;
4384
+ errors: ErrorSummary[];
4385
+ totalErrors: number;
4386
+ timeRange: StatsTimeRange;
4387
+ }
4388
+ interface ErrorSummary {
4389
+ executionId: string;
4390
+ errorType: string;
4391
+ errorMessage: string;
4392
+ occurredAt: string;
4393
+ }
4394
+ /** Single execution summary for Recent Executions list in command view */
4395
+ interface CommandViewExecution {
4396
+ executionId: string;
4397
+ status: ExecutionStatus$1;
4398
+ startedAt: string;
4399
+ completedAt: string | null;
4400
+ errorMessage: string | null;
4401
+ }
4402
+ /** Response from /command-view/resource-executions (on-demand) */
4403
+ interface ResourceExecutionsResponse {
4404
+ resourceId: string;
4405
+ executions: CommandViewExecution[];
4406
+ totalExecutions: number;
4407
+ timeRange: StatsTimeRange;
4408
+ }
4409
+ interface HumanCheckpointStats {
4410
+ checkpointId: string;
4411
+ pendingCount: number;
4412
+ completedCount: number;
4413
+ expiredCount: number;
4414
+ lastDecisionAt: string | null;
4415
+ }
4416
+ /** Response from /command-view/stats */
4417
+ interface CommandViewStatsResponse {
4418
+ resources: Record<string, ResourceStats>;
4419
+ humanCheckpoints: Record<string, HumanCheckpointStats>;
4420
+ timeRange: StatsTimeRange;
4421
+ generatedAt: string;
4422
+ }
4423
+
3903
4424
  /**
3904
4425
  * Resource Type Metadata
3905
4426
  *
@@ -3991,6 +4512,27 @@ declare const ExecutionHistoryResponseSchema: z.ZodObject<{
3991
4512
  type ExecutionHistoryItem = z.infer<typeof ExecutionHistoryItemSchema>;
3992
4513
  type ExecutionHistoryResponse = z.infer<typeof ExecutionHistoryResponseSchema>;
3993
4514
 
4515
+ /**
4516
+ * Deployment types — browser-safe
4517
+ *
4518
+ * Canonical API response types for the deployment resource.
4519
+ * The API's transformRow converts snake_case DB columns to these camelCase fields.
4520
+ */
4521
+ type DeploymentStatus = 'deploying' | 'active' | 'failed' | 'rolled_back' | 'stopped';
4522
+ interface Deployment {
4523
+ id: string;
4524
+ organizationId: string;
4525
+ status: DeploymentStatus;
4526
+ sdkVersion: string;
4527
+ deploymentVersion: string | null;
4528
+ port: number | null;
4529
+ pid: number | null;
4530
+ tarballPath: string | null;
4531
+ errorMessage: string | null;
4532
+ createdAt: string;
4533
+ updatedAt: string;
4534
+ }
4535
+
3994
4536
  /**
3995
4537
  * Merges SSE-streamed logs with fetched execution data for instant log display.
3996
4538
  * Deduplicates by composite key (timestamp + message) to avoid showing the same
@@ -4445,6 +4987,97 @@ type TablerIcon = typeof IconBrain;
4445
4987
  */
4446
4988
  declare function getResourceIcon(type: ResourceDefinitionType): TablerIcon;
4447
4989
 
4990
+ /** Monitoring and analytics stale time (30s). */
4991
+ declare const STALE_TIME_MONITORING = 30000;
4992
+ /** Admin data stale time (1 min). */
4993
+ declare const STALE_TIME_ADMIN = 60000;
4994
+ /** Global default and static data stale time (5 min). Matches queryClient default. */
4995
+ declare const STALE_TIME_DEFAULT = 300000;
4996
+ /** Short-lived cache garbage collection for admin/resource hooks (5 min). */
4997
+ declare const GC_TIME_SHORT = 300000;
4998
+ /** Medium-lived cache garbage collection for resource detail hooks (10 min). */
4999
+ declare const GC_TIME_MEDIUM = 600000;
5000
+ /** Long-lived cache garbage collection for resource definitions (30 min). Matches queryClient default. */
5001
+ declare const GC_TIME_LONG = 1800000;
5002
+
5003
+ /** Dashboard and monitoring data polling interval (60s). */
5004
+ declare const REFETCH_INTERVAL_DASHBOARD = 60000;
5005
+ /** Near-real-time data polling for logs and activities (30s). */
5006
+ declare const REFETCH_INTERVAL_REALTIME = 30000;
5007
+ /** Active execution detail polling when status is 'running' (2s). */
5008
+ declare const REFETCH_INTERVAL_RUNNING = 2000;
5009
+ /** Execution runner list polling when executions are active (1s). */
5010
+ declare const REFETCH_INTERVAL_RUNNING_FAST = 1000;
5011
+
5012
+ /** SSE reconnect delay after token refresh (2s). */
5013
+ declare const SSE_TOKEN_REFRESH_DELAY = 2000;
5014
+ /** SSE unsubscribe grace period for tab switching (5s). */
5015
+ declare const SSE_CLOSE_GRACE_PERIOD = 5000;
5016
+ /** WebSocket exponential backoff base delay (1s). */
5017
+ declare const WS_RECONNECT_BASE_DELAY = 1000;
5018
+ /** WebSocket reconnect delay cap (30s). */
5019
+ declare const WS_RECONNECT_MAX_DELAY = 30000;
5020
+ /** WebSocket retries before showing error state. */
5021
+ declare const WS_MAX_RETRIES_BEFORE_ERROR = 3;
5022
+
5023
+ /** Standard page size for lists (command queue, notifications). */
5024
+ declare const PAGE_SIZE_DEFAULT = 20;
5025
+ /** Activity feed page size and load-more increment. */
5026
+ declare const LIMIT_ACTIVITY_FEED = 50;
5027
+ /** Search/filter input debounce delay (150ms). */
5028
+ declare const DEBOUNCE_FILTER = 150;
5029
+ /** Slider input debounce delay (500ms). */
5030
+ declare const DEBOUNCE_SLIDER = 500;
5031
+ /** OAuth popup closed-check polling interval (500ms). */
5032
+ declare const OAUTH_POPUP_CHECK_INTERVAL = 500;
5033
+ /** OAuth flow maximum duration before timeout (5 min). */
5034
+ declare const OAUTH_FLOW_TIMEOUT = 300000;
5035
+
5036
+ /**
5037
+ * Date formatting utilities for consistent date display across the application
5038
+ */
5039
+ /**
5040
+ * Format a date string for display with date and time
5041
+ *
5042
+ * @param dateString - ISO date string or null
5043
+ * @returns Formatted date string (e.g., "Dec 9, 2025, 10:30 AM") or "Never" if null
5044
+ *
5045
+ * @example
5046
+ * formatDateTime('2025-12-09T10:30:00Z') // "Dec 9, 2025, 10:30 AM"
5047
+ * formatDateTime(null) // "Never"
5048
+ */
5049
+ declare function formatDateTime(dateString: string | null): string;
5050
+ /**
5051
+ * Format a date string for chart axis labels (compact format)
5052
+ *
5053
+ * @param dateString - ISO date string or null
5054
+ * @returns Compact formatted string (e.g., "12/8, 9PM") or empty string if null
5055
+ *
5056
+ * @example
5057
+ * formatChartAxisDate('2025-12-08T21:00:00.000Z') // "12/8, 9PM"
5058
+ * formatChartAxisDate('2025-12-09T13:00:00.000Z') // "12/9, 1PM"
5059
+ */
5060
+ declare function formatChartAxisDate(dateString: string | null): string;
5061
+
5062
+ /**
5063
+ * Suppresses known non-critical console warnings in development
5064
+ *
5065
+ * This utility filters out warnings that are:
5066
+ * - Coming from third-party libraries (e.g., Mantine deprecation warnings)
5067
+ * - Non-breaking and do not affect functionality
5068
+ * - Expected to be fixed in future library updates
5069
+ */
5070
+ /**
5071
+ * Initializes warning suppression by intercepting console.error and console.warn
5072
+ * Call this once at application startup
5073
+ */
5074
+ declare function suppressKnownWarnings(): void;
5075
+ /**
5076
+ * Restores original console.error and console.warn behavior
5077
+ * Useful for testing
5078
+ */
5079
+ declare function restoreConsole(): void;
5080
+
4448
5081
  /**
4449
5082
  * Graph Component Constants
4450
5083
  *
@@ -5501,6 +6134,22 @@ declare function useWarningNotification(): (title: string, message: string) => v
5501
6134
  */
5502
6135
  declare function useBatchDelete(tableName: string, invalidateQueryKeys: readonly (readonly unknown[])[]): _tanstack_react_query.UseMutationResult<void, Error, string[], unknown>;
5503
6136
 
6137
+ /**
6138
+ * Mutation hook to send a test notification.
6139
+ * On success, invalidates the notifications query cache.
6140
+ * On error, shows an API error notification via the notification adapter.
6141
+ *
6142
+ * @returns TanStack Mutation for triggering test notifications
6143
+ *
6144
+ * @example
6145
+ * ```tsx
6146
+ * const testNotification = useTestNotification()
6147
+ *
6148
+ * testNotification.mutate()
6149
+ * ```
6150
+ */
6151
+ declare function useTestNotification(): _tanstack_react_query.UseMutationResult<void, Error, void, unknown>;
6152
+
5504
6153
  /**
5505
6154
  * Query key factories for observability hooks.
5506
6155
  * Scoped by organizationId for cache isolation between tenants.
@@ -5519,6 +6168,8 @@ declare const observabilityKeys: {
5519
6168
  dashboardMetrics: (organizationId: string | null, timeRange: string) => readonly ["observability", "dashboard-metrics", string | null, string];
5520
6169
  businessImpact: (organizationId: string | null, timeRange: string) => readonly ["observability", "business-impact", string | null, string];
5521
6170
  resourcesHealth: (organizationId: string | null, resources: string, startDate: string, endDate: string, granularity: string) => readonly ["observability", "resources-health", string | null, string, string, string, string];
6171
+ unresolvedErrors: (organizationId: string | null, startDate: string, endDate: string) => readonly ["observability", "unresolved-errors", string | null, string, string];
6172
+ recentExecutionsByResource: (organizationId: string | null, timeRange: string, limit: number | undefined) => readonly ["observability", "recent-executions-by-resource", string | null, string, number | undefined];
5522
6173
  };
5523
6174
 
5524
6175
  declare function useErrorAnalysis(timeRange: TimeRange): _tanstack_react_query.UseQueryResult<ErrorAnalysisMetrics, Error>;
@@ -5632,6 +6283,49 @@ declare function useBatchedResourcesHealth(params: UseBatchedResourcesHealthPara
5632
6283
  healthLookup: Map<string, ResourceHealth>;
5633
6284
  };
5634
6285
 
6286
+ interface UseUnresolvedErrorsParams {
6287
+ startDate: string;
6288
+ endDate: string;
6289
+ }
6290
+ /**
6291
+ * Fetches the most recent unresolved errors for the dashboard operational overview.
6292
+ */
6293
+ declare function useUnresolvedErrors({ startDate, endDate }: UseUnresolvedErrorsParams): _tanstack_react_query.UseQueryResult<ErrorDetailResponse, Error>;
6294
+
6295
+ interface UseRecentExecutionsByResourceParams {
6296
+ timeRange: TimeRange;
6297
+ limit?: number;
6298
+ }
6299
+ /**
6300
+ * Fetch recent executions grouped by resource.
6301
+ * Single source of truth from execution_logs (includes session-based executions).
6302
+ *
6303
+ * @example
6304
+ * const { data, isLoading } = useRecentExecutionsByResource({
6305
+ * timeRange: '24h',
6306
+ * limit: 5
6307
+ * })
6308
+ */
6309
+ declare function useRecentExecutionsByResource({ timeRange, limit }: UseRecentExecutionsByResourceParams): _tanstack_react_query.UseQueryResult<RecentExecutionsByResourceResponse, Error>;
6310
+
6311
+ interface UseScheduledTasksOptions {
6312
+ status?: 'active' | 'paused' | 'completed' | 'cancelled';
6313
+ targetResourceType?: 'agent' | 'workflow';
6314
+ }
6315
+ /**
6316
+ * Dashboard hook for fetching scheduled tasks.
6317
+ * Simplified read-only hook that returns the schedules array directly.
6318
+ *
6319
+ * @param options - Optional filters for status and target resource type
6320
+ * @returns TanStack Query result with schedules array
6321
+ *
6322
+ * @example
6323
+ * ```tsx
6324
+ * const { data: schedules, isLoading } = useScheduledTasks({ status: 'active' })
6325
+ * ```
6326
+ */
6327
+ declare function useScheduledTasks(options?: UseScheduledTasksOptions): _tanstack_react_query.UseQueryResult<TaskSchedule[], Error>;
6328
+
5635
6329
  /**
5636
6330
  * Query key factory for schedule cache management.
5637
6331
  * Provides type-safe, hierarchical keys for TanStack Query.
@@ -5911,6 +6605,113 @@ declare class OperationsService {
5911
6605
  archiveSession(sessionId: string): Promise<void>;
5912
6606
  }
5913
6607
 
6608
+ /**
6609
+ * Session-scoped query key factory.
6610
+ * Organization identifier is always included for cache isolation.
6611
+ */
6612
+ declare const sessionsKeys: {
6613
+ all: readonly ["sessions"];
6614
+ sessions: (org: string, params?: {
6615
+ resourceId?: string;
6616
+ }) => readonly ["sessions", "list", string, {
6617
+ resourceId?: string;
6618
+ } | undefined];
6619
+ session: (org: string, sessionId: string) => readonly ["sessions", "detail", string, string];
6620
+ executions: (org: string, sessionId: string) => readonly ["sessions", string, string, "executions"];
6621
+ execution: (org: string, sessionId: string, executionId: string) => readonly ["sessions", string, string, "executions", string];
6622
+ messages: (org: string, sessionId: string) => readonly ["sessions", string, string, "messages"];
6623
+ };
6624
+
6625
+ interface SessionExecution {
6626
+ executionId: string;
6627
+ turnNumber: number;
6628
+ status: string;
6629
+ startedAt: string;
6630
+ completedAt?: string;
6631
+ duration?: number;
6632
+ }
6633
+ interface SessionExecutionsResponse {
6634
+ sessionId: string;
6635
+ executions: SessionExecution[];
6636
+ }
6637
+ interface GetMessagesResponse {
6638
+ sessionId: string;
6639
+ messages: Array<{
6640
+ id: string;
6641
+ role: 'user' | 'assistant';
6642
+ messageType: MessageType;
6643
+ text: string;
6644
+ metadata?: MessageEvent;
6645
+ turnNumber: number;
6646
+ messageIndex?: number;
6647
+ createdAt: string;
6648
+ }>;
6649
+ }
6650
+ interface WebSocketState {
6651
+ isConnected: boolean;
6652
+ isProcessing: boolean;
6653
+ error: string | null;
6654
+ }
6655
+
6656
+ /**
6657
+ * Hook to fetch sessions list with optional filtering.
6658
+ */
6659
+ declare function useSessions(params?: {
6660
+ resourceId?: string;
6661
+ }, options?: {
6662
+ enabled?: boolean;
6663
+ }): _tanstack_react_query.UseQueryResult<SessionListItem[], Error>;
6664
+ /**
6665
+ * Hook to fetch a single session by ID.
6666
+ */
6667
+ declare function useSession(sessionId: string): _tanstack_react_query.UseQueryResult<SessionDTO, Error>;
6668
+ /**
6669
+ * Hook to create a new session.
6670
+ */
6671
+ declare function useCreateSession(): _tanstack_react_query.UseMutationResult<CreateSessionResponse, Error, string, unknown>;
6672
+ /**
6673
+ * Hook to delete a session.
6674
+ */
6675
+ declare function useDeleteSession(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
6676
+ /**
6677
+ * Hook to archive a session.
6678
+ */
6679
+ declare function useArchiveSession(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
6680
+
6681
+ /**
6682
+ * Hook to fetch all executions for a session, grouped by turn.
6683
+ * Each turn creates one execution.
6684
+ */
6685
+ declare function useSessionExecutions(sessionId: string): _tanstack_react_query.UseQueryResult<SessionExecutionsResponse, Error>;
6686
+ /**
6687
+ * Hook to fetch a single execution detail for a session turn.
6688
+ * Auto-refetches every 2 seconds while the execution is still running.
6689
+ */
6690
+ declare function useSessionExecution(sessionId: string, executionId: string): _tanstack_react_query.UseQueryResult<APIExecutionDetail$1, Error>;
6691
+
6692
+ /**
6693
+ * Hook to fetch message history for a session.
6694
+ * Transforms ISO date strings to Date objects on the returned messages.
6695
+ */
6696
+ declare function useSessionMessages(sessionId: string): _tanstack_react_query.UseQueryResult<ChatMessage[], Error>;
6697
+
6698
+ /**
6699
+ * WebSocket hook for real-time agent chat sessions.
6700
+ * Connects to backend WebSocket endpoint with authentication.
6701
+ * Auto-reconnects with exponential backoff.
6702
+ *
6703
+ * @param sessionId - The session to connect to.
6704
+ * @param apiUrl - Base URL of the API server (e.g. "https://api.example.com").
6705
+ * Callers typically obtain this from their service configuration.
6706
+ */
6707
+ declare function useSessionWebSocket(sessionId: string, apiUrl: string): {
6708
+ messages: ChatMessage[];
6709
+ state: WebSocketState;
6710
+ sendMessage: (text: string, pageContext?: Record<string, unknown>) => void;
6711
+ clearError: () => void;
6712
+ lastTokenUsage: SessionTokenUsage | null;
6713
+ };
6714
+
5914
6715
  /**
5915
6716
  * Shared hook for pagination state management.
5916
6717
  * Encapsulates page state, offset calculation, and reset-on-filter-change.
@@ -6259,6 +7060,868 @@ declare function useSSEConnection({ manager, connectionKey, url, enabled, header
6259
7060
  error: string | null;
6260
7061
  };
6261
7062
 
7063
+ interface ResourceSearchStore {
7064
+ query: string;
7065
+ set: (query: string) => void;
7066
+ }
7067
+ declare const useResourceSearch: zustand.UseBoundStore<zustand.StoreApi<ResourceSearchStore>>;
7068
+
7069
+ type StatusFilter$1 = 'all' | 'dev' | 'prod';
7070
+ interface StatusFilterStore {
7071
+ value: StatusFilter$1;
7072
+ set: (value: StatusFilter$1) => void;
7073
+ }
7074
+ declare const useStatusFilter: zustand.UseBoundStore<zustand.StoreApi<StatusFilterStore>>;
7075
+
7076
+ /**
7077
+ * Tracks which resource cards are visible in the viewport using Intersection Observer.
7078
+ * Returns a Set of visible resource IDs and a ref callback to attach to card elements.
7079
+ *
7080
+ * Cards must have a `data-resource-id` attribute to be tracked.
7081
+ */
7082
+ declare function useVisibleResources(): {
7083
+ visibleIds: Set<string>;
7084
+ setContainerRef: (node: HTMLDivElement | null) => void;
7085
+ };
7086
+
7087
+ type DomainFilterState = 'neutral' | 'include' | 'exclude';
7088
+ interface DomainFiltersStore {
7089
+ filters: Record<string, DomainFilterState>;
7090
+ cycle: (domainId: string) => void;
7091
+ reset: () => void;
7092
+ }
7093
+ declare const useResourcesDomainFilters: zustand.UseBoundStore<Omit<zustand.StoreApi<DomainFiltersStore>, "setState" | "persist"> & {
7094
+ setState(partial: DomainFiltersStore | Partial<DomainFiltersStore> | ((state: DomainFiltersStore) => DomainFiltersStore | Partial<DomainFiltersStore>), replace?: false | undefined): unknown;
7095
+ setState(state: DomainFiltersStore | ((state: DomainFiltersStore) => DomainFiltersStore), replace: true): unknown;
7096
+ persist: {
7097
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<DomainFiltersStore, DomainFiltersStore, unknown>>) => void;
7098
+ clearStorage: () => void;
7099
+ rehydrate: () => Promise<void> | void;
7100
+ hasHydrated: () => boolean;
7101
+ onHydrate: (fn: (state: DomainFiltersStore) => void) => () => void;
7102
+ onFinishHydration: (fn: (state: DomainFiltersStore) => void) => () => void;
7103
+ getOptions: () => Partial<zustand_middleware.PersistOptions<DomainFiltersStore, DomainFiltersStore, unknown>>;
7104
+ };
7105
+ }>;
7106
+ declare const useCommandViewDomainFilters: zustand.UseBoundStore<Omit<zustand.StoreApi<DomainFiltersStore>, "setState" | "persist"> & {
7107
+ setState(partial: DomainFiltersStore | Partial<DomainFiltersStore> | ((state: DomainFiltersStore) => DomainFiltersStore | Partial<DomainFiltersStore>), replace?: false | undefined): unknown;
7108
+ setState(state: DomainFiltersStore | ((state: DomainFiltersStore) => DomainFiltersStore), replace: true): unknown;
7109
+ persist: {
7110
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<DomainFiltersStore, DomainFiltersStore, unknown>>) => void;
7111
+ clearStorage: () => void;
7112
+ rehydrate: () => Promise<void> | void;
7113
+ hasHydrated: () => boolean;
7114
+ onHydrate: (fn: (state: DomainFiltersStore) => void) => () => void;
7115
+ onFinishHydration: (fn: (state: DomainFiltersStore) => void) => () => void;
7116
+ getOptions: () => Partial<zustand_middleware.PersistOptions<DomainFiltersStore, DomainFiltersStore, unknown>>;
7117
+ };
7118
+ }>;
7119
+ declare function filterByDomainFilters(items: ResourceDefinition[], filters: Record<string, DomainFilterState>): ResourceDefinition[];
7120
+
7121
+ /**
7122
+ * Converts the global time range setting into startDate/endDate strings
7123
+ * for use in data guide suggested params.
7124
+ */
7125
+ declare function useTimeRangeDates(timeRange: TimeRange): {
7126
+ startDate: string;
7127
+ endDate: string;
7128
+ };
7129
+
7130
+ interface ActivityFilters {
7131
+ activityType?: ActivityType | 'all';
7132
+ status?: ActivityStatus | 'all';
7133
+ search?: string;
7134
+ }
7135
+ declare function useActivityFilters(timeRange: TimeRange): {
7136
+ filters: ActivityFilters;
7137
+ updateFilter: <K extends keyof ActivityFilters>(key: K, value: ActivityFilters[K]) => void;
7138
+ resetFilters: () => void;
7139
+ getApiParams: () => {
7140
+ activityType?: ActivityType;
7141
+ startDate?: string;
7142
+ status?: string;
7143
+ search?: string;
7144
+ };
7145
+ };
7146
+
7147
+ interface ExecutionLogsFilters {
7148
+ resourceId: string | undefined;
7149
+ status: 'all' | ExecutionStatus$1;
7150
+ resourceStatus: 'all' | 'dev' | 'prod';
7151
+ }
7152
+ /**
7153
+ * Pure client-side state hook for execution log filtering.
7154
+ * No data fetching -- manages filter state with reset capability.
7155
+ *
7156
+ * @param _timeRange - Time range context (reserved for future use)
7157
+ * @returns filters state, updateFilter setter, and resetFilters utility
7158
+ *
7159
+ * @example
7160
+ * ```tsx
7161
+ * const { filters, updateFilter, resetFilters } = useExecutionLogsFilters(timeRange)
7162
+ *
7163
+ * updateFilter('status', 'failed')
7164
+ * updateFilter('resourceId', 'wf-123')
7165
+ * resetFilters()
7166
+ * ```
7167
+ */
7168
+ declare function useExecutionLogsFilters(_timeRange: TimeRange): {
7169
+ filters: ExecutionLogsFilters;
7170
+ updateFilter: <K extends keyof ExecutionLogsFilters>(key: K, value: ExecutionLogsFilters[K]) => void;
7171
+ resetFilters: () => void;
7172
+ };
7173
+
7174
+ /**
7175
+ * Fetch organization members with membership details.
7176
+ *
7177
+ * Note: `organizationId` is passed as a parameter (not read from context)
7178
+ * so consumers can query for a specific organization independently.
7179
+ *
7180
+ * @param organizationId - The organization to fetch members for
7181
+ * @param params - Optional additional filters (reserved for future use)
7182
+ * @returns TanStack Query result with MembershipWithDetails array
7183
+ *
7184
+ * @example
7185
+ * ```tsx
7186
+ * const { data: members, isLoading } = useOrganizationMembers(organizationId)
7187
+ * ```
7188
+ */
7189
+ declare function useOrganizationMembers(organizationId: string, params?: Omit<ListMembershipsParams, 'organizationId'>): _tanstack_react_query.UseQueryResult<MembershipWithDetails[], Error>;
7190
+
7191
+ interface CreateApiKeyRequest {
7192
+ name: string;
7193
+ }
7194
+ interface CreateApiKeyResponse {
7195
+ id: string;
7196
+ key: string;
7197
+ message: string;
7198
+ }
7199
+ interface ListApiKeysResponse {
7200
+ keys: ApiKeyListItem[];
7201
+ }
7202
+ type ApiRequest$3 = <T>(endpoint: string, options?: RequestInit) => Promise<T>;
7203
+ declare class ApiKeyService {
7204
+ private apiRequest;
7205
+ constructor(apiRequest: ApiRequest$3);
7206
+ /**
7207
+ * List API keys for the current organization
7208
+ */
7209
+ listApiKeys(): Promise<ApiKeyListItem[]>;
7210
+ /**
7211
+ * Create a new API key
7212
+ */
7213
+ createApiKey(data: CreateApiKeyRequest): Promise<CreateApiKeyResponse>;
7214
+ /**
7215
+ * Update an API key's name
7216
+ */
7217
+ updateApiKey(keyId: string, data: {
7218
+ name: string;
7219
+ }): Promise<void>;
7220
+ /**
7221
+ * Delete an API key
7222
+ */
7223
+ deleteApiKey(keyId: string): Promise<void>;
7224
+ }
7225
+
7226
+ declare function useListApiKeys(): _tanstack_react_query.UseQueryResult<ApiKeyListItem[], Error>;
7227
+
7228
+ declare function useCreateApiKey(): _tanstack_react_query.UseMutationResult<CreateApiKeyResponse, Error, CreateApiKeyRequest, unknown>;
7229
+
7230
+ declare function useDeleteApiKey(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
7231
+
7232
+ declare function useUpdateApiKey(): _tanstack_react_query.UseMutationResult<void, Error, {
7233
+ keyId: string;
7234
+ name: string;
7235
+ }, unknown>;
7236
+
7237
+ /**
7238
+ * GET /api/credentials - List credentials
7239
+ */
7240
+ declare const ListCredentialsResponseSchema = z.object({
7241
+ credentials: z.array(
7242
+ z.object({
7243
+ id: UuidSchema,
7244
+ name: z.string(),
7245
+ type: z.string(),
7246
+ provider: z.string().nullable(), // OAuth provider or null for non-OAuth
7247
+ createdAt: z.string().datetime()
7248
+ })
7249
+ )
7250
+ })
7251
+
7252
+ /** API response type for a single credential list item */
7253
+ type CredentialListItem = z.infer<typeof ListCredentialsResponseSchema>['credentials'][number]
7254
+
7255
+ interface CreateCredentialRequest {
7256
+ name: string;
7257
+ type: string;
7258
+ value: Record<string, unknown>;
7259
+ }
7260
+ interface CreateCredentialResponse {
7261
+ id: string;
7262
+ name: string;
7263
+ type: string;
7264
+ }
7265
+ interface ListCredentialsResponse {
7266
+ credentials: CredentialListItem[];
7267
+ }
7268
+ type ApiRequest$2 = <T>(endpoint: string, options?: RequestInit) => Promise<T>;
7269
+ declare class CredentialService {
7270
+ private apiRequest;
7271
+ constructor(apiRequest: ApiRequest$2);
7272
+ /**
7273
+ * List credentials for the current organization
7274
+ * Organization context is provided via workos-organization-id header
7275
+ */
7276
+ listCredentials(): Promise<CredentialListItem[]>;
7277
+ /**
7278
+ * Create a new credential
7279
+ * Organization context is provided via workos-organization-id header
7280
+ */
7281
+ createCredential(data: CreateCredentialRequest): Promise<CreateCredentialResponse>;
7282
+ /**
7283
+ * Update a credential value or metadata
7284
+ * Organization context is provided via workos-organization-id header
7285
+ */
7286
+ updateCredential(credentialId: string, updates: {
7287
+ value?: Record<string, unknown>;
7288
+ name?: string;
7289
+ }): Promise<void>;
7290
+ /**
7291
+ * Delete a credential
7292
+ * Organization context is provided via workos-organization-id header
7293
+ */
7294
+ deleteCredential(credentialId: string): Promise<void>;
7295
+ }
7296
+
7297
+ declare function useCredentials(): _tanstack_react_query.UseQueryResult<{
7298
+ id: string;
7299
+ name: string;
7300
+ type: string;
7301
+ provider: string | null;
7302
+ createdAt: string;
7303
+ }[], Error>;
7304
+
7305
+ declare function useCreateCredential(): _tanstack_react_query.UseMutationResult<CreateCredentialResponse, Error, CreateCredentialRequest, unknown>;
7306
+
7307
+ declare function useDeleteCredential(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
7308
+
7309
+ interface UpdateCredentialParams {
7310
+ credentialId: string;
7311
+ updates: {
7312
+ value?: Record<string, unknown>;
7313
+ name?: string;
7314
+ };
7315
+ }
7316
+ declare function useUpdateCredential(): _tanstack_react_query.UseMutationResult<void, Error, UpdateCredentialParams, unknown>;
7317
+
7318
+ type ApiRequest$1 = <T>(endpoint: string, options?: RequestInit) => Promise<T>;
7319
+ declare class DeploymentService {
7320
+ private apiRequest;
7321
+ constructor(apiRequest: ApiRequest$1);
7322
+ listDeployments(): Promise<Deployment[]>;
7323
+ getDeployment(id: string): Promise<Deployment>;
7324
+ activateDeployment(id: string): Promise<Deployment>;
7325
+ deactivateDeployment(id: string): Promise<Deployment>;
7326
+ deleteDeployment(id: string): Promise<void>;
7327
+ }
7328
+
7329
+ declare function useListDeployments(): _tanstack_react_query.UseQueryResult<Deployment[], Error>;
7330
+
7331
+ declare function useActivateDeployment(): _tanstack_react_query.UseMutationResult<Deployment, Error, string, unknown>;
7332
+ declare function useDeactivateDeployment(): _tanstack_react_query.UseMutationResult<Deployment, Error, string, unknown>;
7333
+ declare function useDeleteDeployment(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
7334
+
7335
+ type ApiRequest = <T>(endpoint: string, options?: RequestInit) => Promise<T>;
7336
+ declare class OrganizationMembershipService {
7337
+ private apiRequest;
7338
+ constructor(apiRequest: ApiRequest);
7339
+ /**
7340
+ * Get user's organization memberships
7341
+ */
7342
+ getUserMemberships(userId: string): Promise<MembershipWithDetails[]>;
7343
+ /**
7344
+ * Get organization members
7345
+ */
7346
+ getOrganizationMembers(organizationId: string): Promise<MembershipWithDetails[]>;
7347
+ /**
7348
+ * List memberships with filtering
7349
+ */
7350
+ listMemberships(params?: ListMembershipsParams): Promise<ListMembershipsResponse>;
7351
+ /**
7352
+ * Get a single membership by ID
7353
+ */
7354
+ getMembership(membershipId: string): Promise<MembershipWithDetails>;
7355
+ /**
7356
+ * Create a new organization membership
7357
+ */
7358
+ createMembership(data: CreateMembershipRequest): Promise<MembershipWithDetails>;
7359
+ /**
7360
+ * Update an existing membership
7361
+ */
7362
+ updateMembership(membershipId: string, data: UpdateMembershipRequest): Promise<MembershipWithDetails>;
7363
+ /**
7364
+ * Delete a membership
7365
+ */
7366
+ deleteMembership(membershipId: string): Promise<void>;
7367
+ /**
7368
+ * Deactivate a membership (soft delete)
7369
+ */
7370
+ deactivateMembership(membershipId: string): Promise<MembershipWithDetails>;
7371
+ /**
7372
+ * Reactivate a membership
7373
+ */
7374
+ reactivateMembership(membershipId: string): Promise<MembershipWithDetails>;
7375
+ }
7376
+
7377
+ declare function useUserMemberships(userId: string, params?: Omit<ListMembershipsParams, 'userId'>): _tanstack_react_query.UseQueryResult<MembershipWithDetails[], Error>;
7378
+
7379
+ interface UpdateMemberConfigParams {
7380
+ membershipId: string;
7381
+ config: MembershipFeatureConfig;
7382
+ }
7383
+ declare function useUpdateMemberConfig(): _tanstack_react_query.UseMutationResult<unknown, Error, UpdateMemberConfigParams, unknown>;
7384
+
7385
+ interface DeactivateMembershipMutationData {
7386
+ membershipId: string;
7387
+ userId?: string;
7388
+ organizationId?: string;
7389
+ }
7390
+ declare function useDeactivateMembership(): _tanstack_react_query.UseMutationResult<MembershipWithDetails, Error, DeactivateMembershipMutationData, {
7391
+ previousData: unknown;
7392
+ }>;
7393
+
7394
+ interface ReactivateMembershipMutationData {
7395
+ membershipId: string;
7396
+ userId?: string;
7397
+ organizationId?: string;
7398
+ }
7399
+ declare function useReactivateMembership(): _tanstack_react_query.UseMutationResult<MembershipWithDetails, Error, ReactivateMembershipMutationData, {
7400
+ previousData: unknown;
7401
+ }>;
7402
+
7403
+ declare function useListWebhookEndpoints(): _tanstack_react_query.UseQueryResult<{
7404
+ id: string;
7405
+ organizationId: string;
7406
+ key: string;
7407
+ name: string;
7408
+ description: string | null;
7409
+ resourceId: string | null;
7410
+ status: "active" | "paused";
7411
+ lastTriggeredAt: string | null;
7412
+ requestCount: number;
7413
+ createdAt: string;
7414
+ updatedAt: string;
7415
+ }[], Error>;
7416
+
7417
+ declare function useCreateWebhookEndpoint(): _tanstack_react_query.UseMutationResult<{
7418
+ id: string;
7419
+ organizationId: string;
7420
+ key: string;
7421
+ name: string;
7422
+ description: string | null;
7423
+ resourceId: string | null;
7424
+ status: "active" | "paused";
7425
+ lastTriggeredAt: string | null;
7426
+ requestCount: number;
7427
+ createdAt: string;
7428
+ updatedAt: string;
7429
+ }, Error, {
7430
+ name: string;
7431
+ resourceId?: string | undefined;
7432
+ description?: string | undefined;
7433
+ }, unknown>;
7434
+
7435
+ declare function useDeleteWebhookEndpoint(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
7436
+
7437
+ /**
7438
+ * POST /api/webhook-endpoints - Create a new webhook endpoint
7439
+ *
7440
+ * The `key` and `id` are generated server-side and not accepted in the request.
7441
+ */
7442
+ declare const CreateWebhookEndpointRequestSchema = z
7443
+ .object({
7444
+ /** User-facing label for the endpoint */
7445
+ name: NonEmptyStringSchema,
7446
+ /** Target workflow resourceId to invoke on inbound requests (can be set later) */
7447
+ resourceId: NonEmptyStringSchema.optional(),
7448
+ /** Optional description */
7449
+ description: z.string().optional()
7450
+ })
7451
+ .strict()
7452
+
7453
+ type CreateWebhookEndpointRequest = z.infer<typeof CreateWebhookEndpointRequestSchema>
7454
+
7455
+ /**
7456
+ * PATCH /api/webhook-endpoints/:id - Update an existing webhook endpoint
7457
+ *
7458
+ * At least one field must be provided.
7459
+ */
7460
+ declare const UpdateWebhookEndpointRequestSchema = z
7461
+ .object({
7462
+ name: NonEmptyStringSchema.optional(),
7463
+ description: z.string().optional(),
7464
+ resourceId: NonEmptyStringSchema.optional(),
7465
+ status: WebhookEndpointStatusSchema.optional()
7466
+ })
7467
+ .strict()
7468
+ .refine(
7469
+ (data) =>
7470
+ data.name !== undefined ||
7471
+ data.description !== undefined ||
7472
+ data.resourceId !== undefined ||
7473
+ data.status !== undefined,
7474
+ { message: 'At least one field (name, description, resourceId, or status) must be provided' }
7475
+ )
7476
+
7477
+ type UpdateWebhookEndpointRequest = z.infer<typeof UpdateWebhookEndpointRequestSchema>
7478
+
7479
+ /**
7480
+ * Response shape for a single webhook endpoint.
7481
+ * NOT strict — response schemas allow extra fields for forward compatibility.
7482
+ */
7483
+ declare const WebhookEndpointResponseSchema = z.object({
7484
+ id: UuidSchema,
7485
+ organizationId: UuidSchema,
7486
+ key: z.string(),
7487
+ name: z.string(),
7488
+ description: z.string().nullable(),
7489
+ resourceId: z.string().nullable(),
7490
+ status: WebhookEndpointStatusSchema,
7491
+ lastTriggeredAt: z.string().datetime().nullable(),
7492
+ requestCount: z.number().int().min(0),
7493
+ createdAt: z.string().datetime(),
7494
+ updatedAt: z.string().datetime()
7495
+ })
7496
+
7497
+ type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>
7498
+
7499
+ declare function useUpdateWebhookEndpoint(): _tanstack_react_query.UseMutationResult<{
7500
+ id: string;
7501
+ organizationId: string;
7502
+ key: string;
7503
+ name: string;
7504
+ description: string | null;
7505
+ resourceId: string | null;
7506
+ status: "active" | "paused";
7507
+ lastTriggeredAt: string | null;
7508
+ requestCount: number;
7509
+ createdAt: string;
7510
+ updatedAt: string;
7511
+ }, Error, {
7512
+ endpointId: string;
7513
+ data: UpdateWebhookEndpointRequest;
7514
+ }, unknown>;
7515
+
7516
+ interface ListWebhookEndpointsResponse {
7517
+ data: WebhookEndpointResponse[];
7518
+ count: number;
7519
+ }
7520
+ declare class WebhookEndpointService {
7521
+ private apiRequest;
7522
+ constructor(apiRequest: ReturnType<typeof useElevasisServices>['apiRequest']);
7523
+ /**
7524
+ * List webhook endpoints for the current organization
7525
+ */
7526
+ listEndpoints(): Promise<WebhookEndpointResponse[]>;
7527
+ /**
7528
+ * Create a new webhook endpoint
7529
+ */
7530
+ createEndpoint(data: CreateWebhookEndpointRequest): Promise<WebhookEndpointResponse>;
7531
+ /**
7532
+ * Update an existing webhook endpoint (e.g., toggle status, rename)
7533
+ */
7534
+ updateEndpoint(endpointId: string, data: UpdateWebhookEndpointRequest): Promise<WebhookEndpointResponse>;
7535
+ /**
7536
+ * Delete a webhook endpoint
7537
+ */
7538
+ deleteEndpoint(endpointId: string): Promise<void>;
7539
+ }
7540
+
7541
+ /**
7542
+ * Query key factories for Operations TanStack Query hooks.
7543
+ *
7544
+ * Execution-related keys (executions, resources, definitions) use executionsKeys from @repo/ui.
7545
+ * Non-execution keys (workflows, agents, sessions) stay local in operationsKeys.
7546
+ */
7547
+
7548
+ declare const operationsKeys: {
7549
+ all: readonly ["operations"];
7550
+ workflows: (org?: string) => readonly ["operations", "workflows", string | undefined];
7551
+ workflowDetails: (org?: string) => readonly ["operations", "workflows", string | undefined, "details"];
7552
+ workflow: (id: string, org?: string) => readonly ["operations", "workflows", string | undefined, string];
7553
+ agents: (org?: string) => readonly ["operations", "agents", string | undefined];
7554
+ agentDetails: (org?: string) => readonly ["operations", "agents", string | undefined, "details"];
7555
+ agent: (id: string, org?: string) => readonly ["operations", "agents", string | undefined, string];
7556
+ sessions: (org: string, params?: {
7557
+ resourceId?: string;
7558
+ }) => readonly ["operations", "sessions", string, {
7559
+ resourceId?: string;
7560
+ } | undefined];
7561
+ session: (org: string, sessionId: string) => readonly ["operations", "session", string, string];
7562
+ };
7563
+
7564
+ declare function useExecutionLogSSE(resourceId: string, manager: SSEConnectionManager): {
7565
+ liveExecutions: Set<string>;
7566
+ connected: boolean;
7567
+ error: string | null;
7568
+ runningCount: number;
7569
+ isLive: (executionId: string) => boolean;
7570
+ streamingLogs: Map<string, ExecutionLogMessage$1[]>;
7571
+ };
7572
+
7573
+ interface UseExecutionPanelStateOptions {
7574
+ resourceId: string;
7575
+ manager: SSEConnectionManager;
7576
+ limit?: number;
7577
+ onConnectionStatus?: (connected: boolean, runningCount: number) => void;
7578
+ }
7579
+ interface UseExecutionPanelStateReturn {
7580
+ executions: APIExecutionSummary$1[];
7581
+ isLoading: boolean;
7582
+ isFetched: boolean;
7583
+ selectedId: string | undefined;
7584
+ setSelectedId: (id: string | undefined) => void;
7585
+ resourceStatusFilter: ResourceStatus$1 | 'all';
7586
+ setResourceStatusFilter: (filter: ResourceStatus$1 | 'all') => void;
7587
+ liveExecutions: Set<string>;
7588
+ connected: boolean;
7589
+ runningCount: number;
7590
+ streamingLogs: Map<string, ExecutionLogMessage$1[]>;
7591
+ }
7592
+ /**
7593
+ * Shared execution panel state management hook
7594
+ * Handles execution list fetching, selection, auto-selection logic, and SSE integration
7595
+ *
7596
+ * @param options - Hook configuration options
7597
+ * @returns Execution panel state and controls
7598
+ *
7599
+ * @example
7600
+ * ```tsx
7601
+ * const {
7602
+ * executions,
7603
+ * selectedId,
7604
+ * setSelectedId,
7605
+ * liveExecutions,
7606
+ * connected
7607
+ * } = useExecutionPanelState({ resourceId, manager, onConnectionStatus })
7608
+ * ```
7609
+ */
7610
+ declare function useExecutionPanelState({ resourceId, manager, limit, onConnectionStatus }: UseExecutionPanelStateOptions): UseExecutionPanelStateReturn;
7611
+
7612
+ /**
7613
+ * Utilities for extracting typed properties from resource definitions
7614
+ */
7615
+
7616
+ /**
7617
+ * Extract sessionCapable from agent definition config
7618
+ * Returns true only for agents with explicit sessionCapable: true
7619
+ */
7620
+ declare function isSessionCapable(type: ResourceType$1, resourceDefinition: AIResourceDefinition | undefined): boolean;
7621
+
7622
+ interface DocFile {
7623
+ path: string;
7624
+ frontmatter: {
7625
+ title: string;
7626
+ order?: number;
7627
+ [key: string]: unknown;
7628
+ };
7629
+ compiledSource: string;
7630
+ }
7631
+ /**
7632
+ * Fetches deployment documentation for the current organization.
7633
+ *
7634
+ * 1. Fetches all deployments via GET /api/deployments
7635
+ * 2. Auto-selects the latest active deployment (most recent by createdAt)
7636
+ * 3. Fetches docs for the selected deployment via GET /api/deployments/:id/docs
7637
+ *
7638
+ * @returns { files, isLoading, error, activeDeployment, activeDeployments }
7639
+ */
7640
+ declare function useDeploymentDocs(selectedDeploymentId?: string): {
7641
+ files: DocFile[];
7642
+ isLoading: boolean;
7643
+ error: Error | null;
7644
+ activeDeployment: Deployment;
7645
+ activeDeployments: Deployment[];
7646
+ };
7647
+
7648
+ /**
7649
+ * Fetches Command View data for the current organization
7650
+ *
7651
+ * Uses pre-serialized data from the backend for instant responses.
7652
+ * Data includes workflows, agents, triggers, integrations, and relationship edges.
7653
+ *
7654
+ * @returns TanStack Query result with CommandViewData
7655
+ */
7656
+ declare function useCommandViewData(): _tanstack_react_query.UseQueryResult<CommandViewData, Error>;
7657
+
7658
+ /**
7659
+ * Fetches Command View stats for the current organization
7660
+ *
7661
+ * Returns execution statistics (counts only, no error details) for all resources
7662
+ * within the specified time range. Error details are fetched on-demand via useResourceErrors.
7663
+ *
7664
+ * @param timeRange - Time range for stats aggregation ('24h' or '7d')
7665
+ * @returns TanStack Query result with CommandViewStatsResponse
7666
+ */
7667
+ declare function useCommandViewStats(timeRange?: StatsTimeRange): _tanstack_react_query.UseQueryResult<CommandViewStatsResponse, Error>;
7668
+
7669
+ /**
7670
+ * Command View Types
7671
+ *
7672
+ * Frontend graph types for React Flow rendering.
7673
+ *
7674
+ * Backend API returns CommandViewData with separate arrays (workflows[], agents[], etc.)
7675
+ * Frontend transforms this to CommandViewGraph with unified nodes[] array.
7676
+ *
7677
+ * @see transformCommandViewData for the mapping logic
7678
+ * @see CommandViewData from @repo/core for backend type
7679
+ */
7680
+
7681
+ /**
7682
+ * Base resource node - common fields for all resources
7683
+ */
7684
+ interface BaseResourceNode {
7685
+ id: string;
7686
+ name: string;
7687
+ description: string;
7688
+ status: ResourceStatus$1;
7689
+ stats?: {
7690
+ totalRuns: number;
7691
+ successCount: number;
7692
+ failureCount: number;
7693
+ warningCount: number;
7694
+ lastRunAt: string | null;
7695
+ } | null;
7696
+ }
7697
+ /**
7698
+ * Agent node - autonomous AI agents
7699
+ */
7700
+ interface AgentNode extends BaseResourceNode {
7701
+ type: 'agent';
7702
+ modelProvider: string;
7703
+ modelId: string;
7704
+ toolCount: number;
7705
+ hasKnowledgeMap: boolean;
7706
+ hasMemory: boolean;
7707
+ }
7708
+ /**
7709
+ * Workflow node - multi-step orchestrations
7710
+ */
7711
+ interface WorkflowNode extends BaseResourceNode {
7712
+ type: 'workflow';
7713
+ stepCount: number;
7714
+ entryPoint: string;
7715
+ }
7716
+ /**
7717
+ * Integration node - external service connections
7718
+ */
7719
+ interface IntegrationNode extends BaseResourceNode {
7720
+ type: 'integration';
7721
+ provider: string;
7722
+ connectionStatus: 'connected' | 'disconnected' | 'error';
7723
+ credentialName?: string;
7724
+ }
7725
+ /**
7726
+ * Trigger node - what initiates executions
7727
+ */
7728
+ interface TriggerNode extends BaseResourceNode {
7729
+ type: 'trigger';
7730
+ triggerType: 'webhook' | 'schedule' | 'manual' | 'event';
7731
+ schedule?: string;
7732
+ webhookPath?: string;
7733
+ }
7734
+ /**
7735
+ * External resource node - third-party automation platforms
7736
+ */
7737
+ interface ExternalResourceNode extends BaseResourceNode {
7738
+ type: 'external';
7739
+ platform: 'n8n' | 'make' | 'zapier' | 'other';
7740
+ platformUrl?: string;
7741
+ externalId?: string;
7742
+ }
7743
+ /**
7744
+ * Human node - approval points requiring human decisions
7745
+ */
7746
+ interface HumanNode extends Omit<BaseResourceNode, 'stats'> {
7747
+ type: 'human';
7748
+ stats?: {
7749
+ pendingCount: number;
7750
+ completedCount: number;
7751
+ expiredCount: number;
7752
+ lastDecisionAt: string | null;
7753
+ } | null;
7754
+ }
7755
+ /**
7756
+ * Union type for all node types
7757
+ */
7758
+ type CommandViewNode = AgentNode | WorkflowNode | IntegrationNode | TriggerNode | ExternalResourceNode | HumanNode;
7759
+ /**
7760
+ * Relationship types between resources
7761
+ */
7762
+ type RelationshipType = 'triggers' | 'uses' | 'approval';
7763
+ /**
7764
+ * Edge representing a relationship
7765
+ */
7766
+ interface CommandViewEdge {
7767
+ id: string;
7768
+ source: string;
7769
+ target: string;
7770
+ relationship: RelationshipType;
7771
+ label?: string;
7772
+ }
7773
+ /**
7774
+ * Complete graph data for visualization
7775
+ */
7776
+ interface CommandViewGraph {
7777
+ nodes: CommandViewNode[];
7778
+ edges: CommandViewEdge[];
7779
+ }
7780
+
7781
+ type StatusFilter = ResourceStatus$1 | 'all';
7782
+
7783
+ interface CommandViewStore {
7784
+ statusFilter: StatusFilter;
7785
+ setStatusFilter: (v: StatusFilter) => void;
7786
+ showIntegrations: boolean;
7787
+ setShowIntegrations: (v: boolean) => void;
7788
+ fitViewOnFilter: boolean;
7789
+ setFitViewOnFilter: (v: boolean) => void;
7790
+ selectedNodeId: string | null;
7791
+ setSelectedNodeId: (id: string | null) => void;
7792
+ }
7793
+ /**
7794
+ * Shared store for Command View filter/settings state.
7795
+ * Allows CommandViewPage (graph) and CommandViewSidebarContent (sidebar) to share state.
7796
+ *
7797
+ * Persisted to localStorage: showIntegrations, fitViewOnFilter
7798
+ * Not persisted (reset on reload): statusFilter, selectedNodeId
7799
+ */
7800
+ declare const useCommandViewStore: zustand.UseBoundStore<Omit<zustand.StoreApi<CommandViewStore>, "setState" | "persist"> & {
7801
+ setState(partial: CommandViewStore | Partial<CommandViewStore> | ((state: CommandViewStore) => CommandViewStore | Partial<CommandViewStore>), replace?: false | undefined): unknown;
7802
+ setState(state: CommandViewStore | ((state: CommandViewStore) => CommandViewStore), replace: true): unknown;
7803
+ persist: {
7804
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<CommandViewStore, {
7805
+ showIntegrations: boolean;
7806
+ fitViewOnFilter: boolean;
7807
+ }, unknown>>) => void;
7808
+ clearStorage: () => void;
7809
+ rehydrate: () => Promise<void> | void;
7810
+ hasHydrated: () => boolean;
7811
+ onHydrate: (fn: (state: CommandViewStore) => void) => () => void;
7812
+ onFinishHydration: (fn: (state: CommandViewStore) => void) => () => void;
7813
+ getOptions: () => Partial<zustand_middleware.PersistOptions<CommandViewStore, {
7814
+ showIntegrations: boolean;
7815
+ fitViewOnFilter: boolean;
7816
+ }, unknown>>;
7817
+ };
7818
+ }>;
7819
+
7820
+ /**
7821
+ * useCommandViewLayout - Hook to convert CommandViewGraph to ReactFlow nodes/edges
7822
+ *
7823
+ * Uses Dagre for automatic graph layout:
7824
+ * - Left-to-right flow (LR)
7825
+ * - Minimizes edge crossings
7826
+ * - Keeps connected nodes closer together
7827
+ *
7828
+ * Post-processes Dagre output to sort workflow chains by their minimum name prefix
7829
+ * (e.g., INB-01 chain above INB-02 chain, above INB-04 chain). Uses Union-Find
7830
+ * to identify connected components based on 'triggers' and 'approval' edges
7831
+ * (not 'uses' edges, which would connect everything through shared integrations).
7832
+ */
7833
+
7834
+ /**
7835
+ * Convert CommandViewGraph to ReactFlow nodes and edges with Dagre layout
7836
+ */
7837
+ declare function useCommandViewLayout(graph: CommandViewGraph): {
7838
+ nodes: {
7839
+ id: string;
7840
+ type: string;
7841
+ position: {
7842
+ x: number;
7843
+ y: number;
7844
+ };
7845
+ data: Record<string, unknown>;
7846
+ }[];
7847
+ edges: Edge[];
7848
+ };
7849
+ /**
7850
+ * Get graph statistics
7851
+ */
7852
+ declare function useGraphStats(graph: CommandViewGraph): {
7853
+ agents: number;
7854
+ workflows: number;
7855
+ integrations: number;
7856
+ triggers: number;
7857
+ prodResources: number;
7858
+ devResources: number;
7859
+ connectedIntegrations: number;
7860
+ errorIntegrations: number;
7861
+ };
7862
+
7863
+ interface UseCheckpointTasksOptions {
7864
+ checkpointId: string | null;
7865
+ enabled?: boolean;
7866
+ }
7867
+ interface CheckpointTasksResponse {
7868
+ tasks: Task[];
7869
+ }
7870
+ /**
7871
+ * Fetches pending tasks for a specific human checkpoint (on-demand)
7872
+ *
7873
+ * Only fetches when:
7874
+ * - Organization is ready
7875
+ * - Checkpoint is selected
7876
+ * - enabled is true (default: true when checkpointId is set)
7877
+ *
7878
+ * Returns top 10 pending tasks ordered by priority and creation date
7879
+ *
7880
+ * @param options - Checkpoint ID and enabled flag
7881
+ * @returns TanStack Query result with pending tasks
7882
+ */
7883
+ declare function useCheckpointTasks({ checkpointId, enabled }: UseCheckpointTasksOptions): _tanstack_react_query.UseQueryResult<CheckpointTasksResponse, Error>;
7884
+
7885
+ interface UseResourceErrorsOptions {
7886
+ resourceId: string | null;
7887
+ timeRange: StatsTimeRange;
7888
+ hasFailures: boolean;
7889
+ }
7890
+ /**
7891
+ * Fetches error details for a specific resource (on-demand)
7892
+ *
7893
+ * Only fetches when:
7894
+ * - Organization is ready
7895
+ * - Resource is selected
7896
+ * - Resource has failures (lazy loading pattern)
7897
+ *
7898
+ * Returns top 10 errors + total count for "showing X of Y" display
7899
+ *
7900
+ * @param options - Resource ID, time range, and failure flag
7901
+ * @returns TanStack Query result with ResourceErrorsResponse
7902
+ */
7903
+ declare function useResourceErrors({ resourceId, timeRange, hasFailures }: UseResourceErrorsOptions): _tanstack_react_query.UseQueryResult<ResourceErrorsResponse, Error>;
7904
+
7905
+ interface UseResourceExecutionsOptions {
7906
+ resourceId: string | null;
7907
+ timeRange: StatsTimeRange;
7908
+ enabled?: boolean;
7909
+ }
7910
+ /**
7911
+ * Fetches recent executions for a specific resource (on-demand)
7912
+ *
7913
+ * Only fetches when:
7914
+ * - Organization is ready
7915
+ * - Resource is selected
7916
+ * - enabled is true (default: true when resourceId is set)
7917
+ *
7918
+ * Returns top 10 executions + total count for "showing X of Y" display
7919
+ *
7920
+ * @param options - Resource ID, time range, and enabled flag
7921
+ * @returns TanStack Query result with ResourceExecutionsResponse
7922
+ */
7923
+ declare function useResourceExecutions({ resourceId, timeRange, enabled }: UseResourceExecutionsOptions): _tanstack_react_query.UseQueryResult<ResourceExecutionsResponse, Error>;
7924
+
6262
7925
  interface AuthContextValue {
6263
7926
  user: {
6264
7927
  id: string;
@@ -6711,5 +8374,5 @@ declare function InitializationProvider({ children }: {
6711
8374
  children: ReactNode;
6712
8375
  }): react.FunctionComponentElement<react.ProviderProps<AppInitializationState | null>>;
6713
8376
 
6714
- export { AGENT_CONSTANTS, APIClientError, AdminGuard, ApiClientProvider, AuthProvider, CONTAINER_CONSTANTS, ElevasisCoreProvider, ElevasisProvider, ElevasisServiceProvider, ElevasisUIProvider, GRAPH_CONSTANTS, InitializationContext, InitializationProvider, NotificationProvider, OperationsService, OrganizationProvider, ProfileProvider, ProtectedRoute, RouterProvider, SHARED_VIZ_CONSTANTS, STATUS_COLORS, TIMELINE_CONSTANTS, TOKEN_VAR_MAP, TanStackRouterBridge, UserProfileService, WORKFLOW_CONSTANTS, calculateBarPosition, calculateGraphHeight, componentThemes, createCssVariablesResolver, createOrganizationsSlice, createUseAppInitialization, createUseFeatureAccess, createUseOrgInitialization, createUseOrganizations, executionsKeys, formatDate, formatDuration, formatErrorMessage, generateShades, getEdgeColor, getEdgeOpacity, getErrorInfo, getErrorTitle, getPreset, getResourceColor, getResourceIcon, getResourceStatusColor, getStatusColors, getStatusIcon, isAPIClientError, mantineNotificationAdapter, mantineThemeOverride, observabilityKeys, scheduleKeys, shouldAnimateEdge, sortData, useActivities, useActivityTrend, useAgentIterationData, useApiClient, useApiClientContext, useAuthContext, useBatchDelete, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCommandQueue, useCommandQueueTotals, useConnectionHighlight, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateSchedule, useDashboardMetrics, useDeleteExecution, useDeleteSchedule, useDeleteTask, useDirectedChainHighlighting, useElevasisServices, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAsync, useExecution, useExecutionHealth, useExecutionLogs, useExecutionPath, useExecutions, useFitViewTrigger, useGetExecutionHistory, useGetSchedule, useGraphHighlighting, useInitialization, useListSchedules, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useNodeSelection, useNotificationAdapter, useNotificationCount, useNotifications, useOrganization, usePaginationState, usePatchTask, usePauseSchedule, useProfile, useReactFlowAgent, useSessionCheck as useRefocusSessionCheck, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResources, useResourcesHealth, useResumeSchedule, useRetryExecution, useRouterContext, useSSEConnection, useSessionCheck, useSortedData, useStableAccessToken, useSubmitAction, useSuccessNotification, useTableSelection, useTableSort, useTimelineData, useTopFailingResources, useUnifiedWorkflowLayout, useUnresolveError, useUpdateAnchor, useUpdateSchedule, useUserProfile, useWarningNotification, useWorkflowStepsLayout, validateEmail };
6715
- export type { ActivityTrendResponse, AdminGuardProps, AgentIterationEdgeData, AgentIterationNodeData, AgentStatus, ApiClientContextValue, ApiClientProviderProps, ApiErrorDetails, ApiKeyConfig, AppInitializationState, AuthConfig, AuthContextValue, AuthKitConfig, BulkDeleteExecutionsParams, BulkDeleteExecutionsResult, BusinessImpactMetrics, CancelExecutionParams, CancelExecutionResult, ColorShadesTuple, CostBreakdownItem, CreateScheduleInput, CreateSessionResponse, DeleteExecutionParams, DirectedChainHighlightingOptions, DirectedChainHighlightingResult, EdgeColorOptions, EdgeOpacityOptions, ElevasisCoreProviderProps, ElevasisCoreThemeConfig, ElevasisServiceContextValue, ElevasisServiceProviderProps, ElevasisThemeConfig, ElevasisTokenOverrides, ErrorDistributionItem, ErrorDistributionParams, ErrorFilters, ErrorTrendsParams, ExecuteAsyncParams, ExecuteAsyncResult, ExecutionErrorDetails, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogsPageResponse, ExecutionPathState, ExecutionStatus$1 as ExecutionStatus, FailingResource, FrameworkThemeOverrides, GlowIntensity, GraphHeightOptions, GraphHighlightingResult, GraphMode, GraphThemeColors, InitializationError, LinkProps, ListActivitiesResponse, ListSchedulesFilters, ListSchedulesResponse, MembershipWithDetails, NodeColorType, NotificationAdapter, OrganizationContextValue, OrganizationsActions, OrganizationsSlice, OrganizationsState, PresetName, ProfileContextValue, ProtectedRouteProps, ResourcesResponse, RetryExecutionParams, RouterAdapter, SessionListItem, SortDirection, SortState, StatusColorScheme, StatusIconColors, StepExecutionData, SubmitActionRequest, SubmitActionResponse, SupabaseUserProfile, TablerIcon, TaskSchedule, ThemePreset, TimelineBarProps, TimelineContainerProps, TimelineRowProps, TopFailingResourcesParams, UnifiedWorkflowEdgeData, UnifiedWorkflowNodeData, UpdateScheduleInput, UseActivitiesParams, UseActivityTrendParams, UseApiClientReturn, UseBatchedResourcesHealthParams, UseExecutionHealthParams, UseExecutionLogsParams, UseOrgInitializationReturn, UseOrganizationsReturn, UseResourcesHealthParams, UseSSEConnectionOptions, UseUserProfileReturn, WithSchemes, WorkflowEdgeType, WorkflowStepEdgeData, WorkflowStepNodeData, WorkflowStepsLayoutInput };
8377
+ export { AGENT_CONSTANTS, APIClientError, AdminGuard, ApiClientProvider, ApiKeyService, AuthProvider, CONTAINER_CONSTANTS, CredentialService, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, DeploymentService, ElevasisCoreProvider, ElevasisProvider, ElevasisServiceProvider, ElevasisUIProvider, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, GRAPH_CONSTANTS, InitializationContext, InitializationProvider, LIMIT_ACTIVITY_FEED, NotificationProvider, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, OperationsService, OrganizationMembershipService, OrganizationProvider, PAGE_SIZE_DEFAULT, ProfileProvider, ProtectedRoute, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, RouterProvider, SHARED_VIZ_CONSTANTS, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, STATUS_COLORS, TIMELINE_CONSTANTS, TOKEN_VAR_MAP, TanStackRouterBridge, UserProfileService, WORKFLOW_CONSTANTS, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, WebhookEndpointService, calculateBarPosition, calculateGraphHeight, componentThemes, createCssVariablesResolver, createOrganizationsSlice, createUseAppInitialization, createUseFeatureAccess, createUseOrgInitialization, createUseOrganizations, executionsKeys, filterByDomainFilters, formatChartAxisDate, formatDate, formatDateTime, formatDuration, formatErrorMessage, generateShades, getEdgeColor, getEdgeOpacity, getErrorInfo, getErrorTitle, getPreset, getResourceColor, getResourceIcon, getResourceStatusColor, getStatusColors, getStatusIcon, isAPIClientError, isSessionCapable, mantineNotificationAdapter, mantineThemeOverride, observabilityKeys, operationsKeys, restoreConsole, scheduleKeys, sessionsKeys, shouldAnimateEdge, sortData, suppressKnownWarnings, useActivateDeployment, useActivities, useActivityFilters, useActivityTrend, useAgentIterationData, useApiClient, useApiClientContext, useArchiveSession, useAuthContext, useBatchDelete, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewLayout, useCommandViewStats, useCommandViewStore, useConnectionHighlight, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateCredential, useCreateSchedule, useCreateSession, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDeleteApiKey, useDeleteCredential, useDeleteDeployment, useDeleteExecution, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, useDeploymentDocs, useDirectedChainHighlighting, useElevasisServices, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAsync, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionPath, useExecutions, useFitViewTrigger, useGetExecutionHistory, useGetSchedule, useGraphHighlighting, useGraphStats, useInitialization, useListApiKeys, useListDeployments, useListSchedules, useListWebhookEndpoints, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useNodeSelection, useNotificationAdapter, useNotificationCount, useNotifications, useOrganization, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, useProfile, useReactFlowAgent, useReactivateMembership, useRecentExecutionsByResource, useSessionCheck as useRefocusSessionCheck, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRouterContext, useSSEConnection, useScheduledTasks, useSession, useSessionCheck, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStableAccessToken, useStatusFilter, useSubmitAction, useSuccessNotification, useTableSelection, useTableSort, useTestNotification, useTimeRangeDates, useTimelineData, useTopFailingResources, useUnifiedWorkflowLayout, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateCredential, useUpdateMemberConfig, useUpdateSchedule, useUpdateWebhookEndpoint, useUserMemberships, useUserProfile, useVisibleResources, useWarningNotification, useWorkflowStepsLayout, validateEmail };
8378
+ export type { ActivityFilters, ActivityTrendResponse, AdminGuardProps, AgentIterationEdgeData, AgentIterationNodeData, AgentStatus, ApiClientContextValue, ApiClientProviderProps, ApiErrorDetails, ApiKeyConfig, AppInitializationState, AuthConfig, AuthContextValue, AuthKitConfig, BulkDeleteExecutionsParams, BulkDeleteExecutionsResult, BusinessImpactMetrics, CancelExecutionParams, CancelExecutionResult, ChatMessage, ColorShadesTuple, CostBreakdownItem, CreateApiKeyRequest, CreateApiKeyResponse, CreateCredentialRequest, CreateCredentialResponse, CreateScheduleInput, CreateSessionResponse, CredentialListItem, DeleteExecutionParams, Deployment, DirectedChainHighlightingOptions, DirectedChainHighlightingResult, DocFile, EdgeColorOptions, EdgeOpacityOptions, ElevasisCoreProviderProps, ElevasisCoreThemeConfig, ElevasisServiceContextValue, ElevasisServiceProviderProps, ElevasisThemeConfig, ElevasisTokenOverrides, ErrorDistributionItem, ErrorDistributionParams, ErrorFilters, ErrorTrendsParams, ExecuteAsyncParams, ExecuteAsyncResult, ExecutionErrorDetails, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogsFilters, ExecutionLogsPageResponse, ExecutionPathState, ExecutionStatus$1 as ExecutionStatus, FailingResource, FrameworkThemeOverrides, GetMessagesResponse, GlowIntensity, GraphHeightOptions, GraphHighlightingResult, GraphMode, GraphThemeColors, InitializationError, LinkProps, ListActivitiesResponse, ListApiKeysResponse, ListCredentialsResponse, ListSchedulesFilters, ListSchedulesResponse, ListWebhookEndpointsResponse, MembershipWithDetails, MessageEvent, MessageType, NodeColorType, NotificationAdapter, OrganizationContextValue, OrganizationsActions, OrganizationsSlice, OrganizationsState, PresetName, ProfileContextValue, ProtectedRouteProps, ResourcesResponse, RetryExecutionParams, RouterAdapter, SessionDTO, SessionExecution, SessionExecutionsResponse, SessionListItem, SessionTokenUsage, SortDirection, SortState, StatusColorScheme, StatusFilter$1 as StatusFilter, StatusIconColors, StepExecutionData, SubmitActionRequest, SubmitActionResponse, SupabaseUserProfile, TablerIcon, TaskSchedule, ThemePreset, TimelineBarProps, TimelineContainerProps, TimelineRowProps, TopFailingResourcesParams, UnifiedWorkflowEdgeData, UnifiedWorkflowNodeData, UpdateScheduleInput, UseActivitiesParams, UseActivityTrendParams, UseApiClientReturn, UseBatchedResourcesHealthParams, UseExecutionHealthParams, UseExecutionLogsParams, UseExecutionPanelStateOptions, UseExecutionPanelStateReturn, UseOrgInitializationReturn, UseOrganizationsReturn, UseResourcesHealthParams, UseSSEConnectionOptions, UseScheduledTasksOptions, UseUserProfileReturn, WebSocketState, WithSchemes, WorkflowEdgeType, WorkflowStepEdgeData, WorkflowStepNodeData, WorkflowStepsLayoutInput };