@automagik/omni 2.260906.8 → 2.260907.2

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.
@@ -747,6 +747,26 @@ export interface paths {
747
747
  patch?: never;
748
748
  trace?: never;
749
749
  };
750
+ "/events/{id}/trace": {
751
+ parameters: {
752
+ query?: never;
753
+ header?: never;
754
+ path?: never;
755
+ cookie?: never;
756
+ };
757
+ /**
758
+ * Trace the causality chain around an event
759
+ * @description Walks UP via causationId to the root ingress event and DOWN breadth-first through fan-out (children are events whose causationId equals this id). correlationId groups the flow; causationId gives the tree.
760
+ */
761
+ get: operations["traceEvent"];
762
+ put?: never;
763
+ post?: never;
764
+ delete?: never;
765
+ options?: never;
766
+ head?: never;
767
+ patch?: never;
768
+ trace?: never;
769
+ };
750
770
  "/events/by-sender/{senderId}": {
751
771
  parameters: {
752
772
  query?: never;
@@ -2391,6 +2411,70 @@ export interface paths {
2391
2411
  patch?: never;
2392
2412
  trace?: never;
2393
2413
  };
2414
+ "/channels/harness/{instanceId}/say": {
2415
+ parameters: {
2416
+ query?: never;
2417
+ header?: never;
2418
+ path?: never;
2419
+ cookie?: never;
2420
+ };
2421
+ get?: never;
2422
+ put?: never;
2423
+ /**
2424
+ * Drive an inbound turn
2425
+ * @description Injects an inbound message on a harness instance exactly as a real channel webhook would (message.received → dispatcher → agent: the production path).
2426
+ */
2427
+ post: operations["harnessSay"];
2428
+ delete?: never;
2429
+ options?: never;
2430
+ head?: never;
2431
+ patch?: never;
2432
+ trace?: never;
2433
+ };
2434
+ "/channels/harness/{instanceId}/tap": {
2435
+ parameters: {
2436
+ query?: never;
2437
+ header?: never;
2438
+ path?: never;
2439
+ cookie?: never;
2440
+ };
2441
+ get?: never;
2442
+ put?: never;
2443
+ /**
2444
+ * Simulate a component tap
2445
+ * @description Converts a button/list row of a component the agent actually sent into the inbound a real tap produces (text = the option title).
2446
+ */
2447
+ post: operations["harnessTap"];
2448
+ delete?: never;
2449
+ options?: never;
2450
+ head?: never;
2451
+ patch?: never;
2452
+ trace?: never;
2453
+ };
2454
+ "/channels/harness/{instanceId}/transcript": {
2455
+ parameters: {
2456
+ query?: never;
2457
+ header?: never;
2458
+ path?: never;
2459
+ cookie?: never;
2460
+ };
2461
+ /**
2462
+ * Read a chat transcript
2463
+ * @description Ordered verbatim capture of one chat: every OutgoingMessage handed to sendMessage() (refused sends included, with violations) plus the injected inbounds, and the enforced capability profile.
2464
+ */
2465
+ get: operations["harnessGetTranscript"];
2466
+ put?: never;
2467
+ post?: never;
2468
+ /**
2469
+ * Reset transcripts
2470
+ * @description Drops one chat transcript, or every transcript of the instance when chatId is omitted.
2471
+ */
2472
+ delete: operations["harnessResetTranscript"];
2473
+ options?: never;
2474
+ head?: never;
2475
+ patch?: never;
2476
+ trace?: never;
2477
+ };
2394
2478
  "/platform/tenants": {
2395
2479
  parameters: {
2396
2480
  query?: never;
@@ -2854,7 +2938,7 @@ export interface components {
2854
2938
  * @description Channel type
2855
2939
  * @enum {string}
2856
2940
  */
2857
- channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
2941
+ channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
2858
2942
  /** @description Whether instance is active */
2859
2943
  isActive: boolean;
2860
2944
  /** @description Whether this is the default instance for channel */
@@ -2899,7 +2983,7 @@ export interface components {
2899
2983
  * @description Channel type
2900
2984
  * @enum {string}
2901
2985
  */
2902
- channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
2986
+ channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
2903
2987
  /**
2904
2988
  * Format: uuid
2905
2989
  * @description Agent UUID (agents table)
@@ -3077,7 +3161,7 @@ export interface components {
3077
3161
  * @description Channel type ID
3078
3162
  * @enum {string}
3079
3163
  */
3080
- id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
3164
+ id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
3081
3165
  /** @description Human-readable channel name */
3082
3166
  name: string;
3083
3167
  /** @description Plugin version */
@@ -3537,6 +3621,11 @@ export interface components {
3537
3621
  * @description When event was processed
3538
3622
  */
3539
3623
  processedAt: string | null;
3624
+ /**
3625
+ * Format: uuid
3626
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
3627
+ */
3628
+ causationId: string | null;
3540
3629
  };
3541
3630
  EventSummary: {
3542
3631
  /**
@@ -3648,6 +3737,203 @@ export interface components {
3648
3737
  */
3649
3738
  limit: number;
3650
3739
  };
3740
+ EventTrace: {
3741
+ /** @description The event the trace was requested for */
3742
+ event: {
3743
+ /**
3744
+ * Format: uuid
3745
+ * @description Event UUID
3746
+ */
3747
+ id: string;
3748
+ /** @description Event type */
3749
+ eventType: string;
3750
+ /** @description Content type */
3751
+ contentType: string | null;
3752
+ /**
3753
+ * Format: uuid
3754
+ * @description Instance UUID
3755
+ */
3756
+ instanceId: string;
3757
+ /**
3758
+ * Format: uuid
3759
+ * @description Person UUID
3760
+ */
3761
+ personId: string | null;
3762
+ /**
3763
+ * @description Message direction
3764
+ * @enum {string}
3765
+ */
3766
+ direction: "inbound" | "outbound";
3767
+ /** @description Text content */
3768
+ textContent: string | null;
3769
+ /** @description Audio transcription */
3770
+ transcription: string | null;
3771
+ /** @description Image description */
3772
+ imageDescription: string | null;
3773
+ /**
3774
+ * Format: uuid
3775
+ * @description Chat UUID (FK → chats.id)
3776
+ */
3777
+ chatUuid: string | null;
3778
+ /**
3779
+ * Format: uuid
3780
+ * @description Agent UUID (FK → agents.id)
3781
+ */
3782
+ agentId: string | null;
3783
+ /**
3784
+ * Format: uuid
3785
+ * @description Conversation UUID (FK → conversations.id)
3786
+ */
3787
+ conversationId: string | null;
3788
+ /**
3789
+ * Format: date-time
3790
+ * @description When event was received
3791
+ */
3792
+ receivedAt: string;
3793
+ /**
3794
+ * Format: date-time
3795
+ * @description When event was processed
3796
+ */
3797
+ processedAt: string | null;
3798
+ /**
3799
+ * Format: uuid
3800
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
3801
+ */
3802
+ causationId: string | null;
3803
+ };
3804
+ /** @description Chain above the event via causationId, root first, ending at the immediate parent */
3805
+ ancestors: {
3806
+ /**
3807
+ * Format: uuid
3808
+ * @description Event UUID
3809
+ */
3810
+ id: string;
3811
+ /** @description Event type */
3812
+ eventType: string;
3813
+ /** @description Content type */
3814
+ contentType: string | null;
3815
+ /**
3816
+ * Format: uuid
3817
+ * @description Instance UUID
3818
+ */
3819
+ instanceId: string;
3820
+ /**
3821
+ * Format: uuid
3822
+ * @description Person UUID
3823
+ */
3824
+ personId: string | null;
3825
+ /**
3826
+ * @description Message direction
3827
+ * @enum {string}
3828
+ */
3829
+ direction: "inbound" | "outbound";
3830
+ /** @description Text content */
3831
+ textContent: string | null;
3832
+ /** @description Audio transcription */
3833
+ transcription: string | null;
3834
+ /** @description Image description */
3835
+ imageDescription: string | null;
3836
+ /**
3837
+ * Format: uuid
3838
+ * @description Chat UUID (FK → chats.id)
3839
+ */
3840
+ chatUuid: string | null;
3841
+ /**
3842
+ * Format: uuid
3843
+ * @description Agent UUID (FK → agents.id)
3844
+ */
3845
+ agentId: string | null;
3846
+ /**
3847
+ * Format: uuid
3848
+ * @description Conversation UUID (FK → conversations.id)
3849
+ */
3850
+ conversationId: string | null;
3851
+ /**
3852
+ * Format: date-time
3853
+ * @description When event was received
3854
+ */
3855
+ receivedAt: string;
3856
+ /**
3857
+ * Format: date-time
3858
+ * @description When event was processed
3859
+ */
3860
+ processedAt: string | null;
3861
+ /**
3862
+ * Format: uuid
3863
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
3864
+ */
3865
+ causationId: string | null;
3866
+ }[];
3867
+ /** @description Fan-out below the event, breadth-first */
3868
+ descendants: {
3869
+ event: {
3870
+ /**
3871
+ * Format: uuid
3872
+ * @description Event UUID
3873
+ */
3874
+ id: string;
3875
+ /** @description Event type */
3876
+ eventType: string;
3877
+ /** @description Content type */
3878
+ contentType: string | null;
3879
+ /**
3880
+ * Format: uuid
3881
+ * @description Instance UUID
3882
+ */
3883
+ instanceId: string;
3884
+ /**
3885
+ * Format: uuid
3886
+ * @description Person UUID
3887
+ */
3888
+ personId: string | null;
3889
+ /**
3890
+ * @description Message direction
3891
+ * @enum {string}
3892
+ */
3893
+ direction: "inbound" | "outbound";
3894
+ /** @description Text content */
3895
+ textContent: string | null;
3896
+ /** @description Audio transcription */
3897
+ transcription: string | null;
3898
+ /** @description Image description */
3899
+ imageDescription: string | null;
3900
+ /**
3901
+ * Format: uuid
3902
+ * @description Chat UUID (FK → chats.id)
3903
+ */
3904
+ chatUuid: string | null;
3905
+ /**
3906
+ * Format: uuid
3907
+ * @description Agent UUID (FK → agents.id)
3908
+ */
3909
+ agentId: string | null;
3910
+ /**
3911
+ * Format: uuid
3912
+ * @description Conversation UUID (FK → conversations.id)
3913
+ */
3914
+ conversationId: string | null;
3915
+ /**
3916
+ * Format: date-time
3917
+ * @description When event was received
3918
+ */
3919
+ receivedAt: string;
3920
+ /**
3921
+ * Format: date-time
3922
+ * @description When event was processed
3923
+ */
3924
+ processedAt: string | null;
3925
+ /**
3926
+ * Format: uuid
3927
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
3928
+ */
3929
+ causationId: string | null;
3930
+ };
3931
+ /** @description Distance below the focus event (1 = direct child) */
3932
+ depth: number;
3933
+ }[];
3934
+ /** @description True when a depth/node cap cut the walk short */
3935
+ truncated: boolean;
3936
+ };
3651
3937
  Identity: {
3652
3938
  /**
3653
3939
  * Format: uuid
@@ -5098,6 +5384,8 @@ export interface components {
5098
5384
  /** @default 30000 */
5099
5385
  timeoutMs: number;
5100
5386
  responseAs?: string;
5387
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
5388
+ includeEnvelope?: boolean;
5101
5389
  };
5102
5390
  } | {
5103
5391
  /** @enum {string} */
@@ -5222,6 +5510,8 @@ export interface components {
5222
5510
  /** @default 30000 */
5223
5511
  timeoutMs: number;
5224
5512
  responseAs?: string;
5513
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
5514
+ includeEnvelope?: boolean;
5225
5515
  };
5226
5516
  } | {
5227
5517
  /** @enum {string} */
@@ -5768,6 +6058,92 @@ export interface components {
5768
6058
  */
5769
6059
  flowAction?: "navigate" | "data_exchange";
5770
6060
  };
6061
+ /** @description What the simulated platform renders, per instance. Configured via profileMetadata.harnessProfile on the instance and enforced by the plugin sendMessage(). */
6062
+ HarnessCapabilityProfile: {
6063
+ canSendText: boolean;
6064
+ canSendMedia: boolean;
6065
+ canSendButtons: boolean;
6066
+ canSendList: boolean;
6067
+ maxButtons: number;
6068
+ maxListRows: number;
6069
+ /** @description 0 = unlimited */
6070
+ maxMessageLength: number;
6071
+ };
6072
+ HarnessTranscript: {
6073
+ chatId: string;
6074
+ /** @description What the simulated platform renders, per instance. Configured via profileMetadata.harnessProfile on the instance and enforced by the plugin sendMessage(). */
6075
+ profile: {
6076
+ canSendText: boolean;
6077
+ canSendMedia: boolean;
6078
+ canSendButtons: boolean;
6079
+ canSendList: boolean;
6080
+ maxButtons: number;
6081
+ maxListRows: number;
6082
+ /** @description 0 = unlimited */
6083
+ maxMessageLength: number;
6084
+ };
6085
+ entries: ({
6086
+ /** @description Position in the chat transcript (1-based, per chat) */
6087
+ seq: number;
6088
+ /** @enum {string} */
6089
+ direction: "inbound";
6090
+ /** @description Unix ms timestamp */
6091
+ at: number;
6092
+ /** @enum {string} */
6093
+ kind: "say" | "tap";
6094
+ externalId: string;
6095
+ from: string;
6096
+ content: {
6097
+ type: string;
6098
+ text?: string;
6099
+ };
6100
+ /** @description Present on kind 'tap' */
6101
+ tap?: {
6102
+ /** @description seq of the outbound whose component was tapped */
6103
+ sourceSeq: number;
6104
+ /** @description 1-based index into that outbound buttons */
6105
+ optionIndex: number;
6106
+ /** @description button.data when set */
6107
+ optionId?: string;
6108
+ /** @description button.text — what comes back as the inbound text */
6109
+ optionText: string;
6110
+ };
6111
+ } | {
6112
+ seq: number;
6113
+ /** @enum {string} */
6114
+ direction: "outbound";
6115
+ at: number;
6116
+ /** @description Absent when the send was refused by the profile */
6117
+ externalId?: string;
6118
+ /** @description The FULL OutgoingMessage verbatim — buttons, list, media, metadata included */
6119
+ message: {
6120
+ [key: string]: unknown;
6121
+ };
6122
+ /** @description Capability-profile violations; empty when it rendered */
6123
+ violations: string[];
6124
+ result: {
6125
+ success: boolean;
6126
+ error?: string;
6127
+ };
6128
+ })[];
6129
+ /** @description Oldest entries evicted by the per-chat bound (1000) */
6130
+ droppedEntries: number;
6131
+ };
6132
+ HarnessSayRequest: {
6133
+ /** @description Free-form conversation id — N chats run in parallel */
6134
+ chatId: string;
6135
+ text: string;
6136
+ /** @description Sender id; defaults to user:<chatId> */
6137
+ from?: string;
6138
+ senderName?: string;
6139
+ };
6140
+ HarnessTapRequest: {
6141
+ chatId: string;
6142
+ /** @description 1-based button index, or a string matched against button.data then button.text */
6143
+ option: number | string;
6144
+ /** @description Outbound seq to tap; defaults to the latest rendered outbound with a component */
6145
+ messageSeq?: number;
6146
+ };
5771
6147
  PlatformTenant: {
5772
6148
  /**
5773
6149
  * Format: uuid
@@ -6766,7 +7142,7 @@ export interface operations {
6766
7142
  * @description Channel type
6767
7143
  * @enum {string}
6768
7144
  */
6769
- channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
7145
+ channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
6770
7146
  /** @description Whether instance is active */
6771
7147
  isActive: boolean;
6772
7148
  /** @description Whether this is the default instance for channel */
@@ -6831,7 +7207,7 @@ export interface operations {
6831
7207
  * @description Channel type
6832
7208
  * @enum {string}
6833
7209
  */
6834
- channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
7210
+ channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
6835
7211
  /**
6836
7212
  * Format: uuid
6837
7213
  * @description Agent UUID (agents table)
@@ -6960,7 +7336,7 @@ export interface operations {
6960
7336
  * @description Channel type
6961
7337
  * @enum {string}
6962
7338
  */
6963
- channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
7339
+ channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
6964
7340
  /** @description Whether instance is active */
6965
7341
  isActive: boolean;
6966
7342
  /** @description Whether this is the default instance for channel */
@@ -7045,7 +7421,7 @@ export interface operations {
7045
7421
  * @description Channel type ID
7046
7422
  * @enum {string}
7047
7423
  */
7048
- id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
7424
+ id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
7049
7425
  /** @description Human-readable channel name */
7050
7426
  name: string;
7051
7427
  /** @description Plugin version */
@@ -7094,7 +7470,7 @@ export interface operations {
7094
7470
  * @description Channel type
7095
7471
  * @enum {string}
7096
7472
  */
7097
- channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
7473
+ channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
7098
7474
  /** @description Whether instance is active */
7099
7475
  isActive: boolean;
7100
7476
  /** @description Whether this is the default instance for channel */
@@ -7224,7 +7600,7 @@ export interface operations {
7224
7600
  * @description Channel type
7225
7601
  * @enum {string}
7226
7602
  */
7227
- channel?: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
7603
+ channel?: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
7228
7604
  /**
7229
7605
  * Format: uuid
7230
7606
  * @description Agent UUID (agents table)
@@ -7353,7 +7729,7 @@ export interface operations {
7353
7729
  * @description Channel type
7354
7730
  * @enum {string}
7355
7731
  */
7356
- channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
7732
+ channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal" | "harness";
7357
7733
  /** @description Whether instance is active */
7358
7734
  isActive: boolean;
7359
7735
  /** @description Whether this is the default instance for channel */
@@ -9554,6 +9930,11 @@ export interface operations {
9554
9930
  * @description When event was processed
9555
9931
  */
9556
9932
  processedAt: string | null;
9933
+ /**
9934
+ * Format: uuid
9935
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
9936
+ */
9937
+ causationId: string | null;
9557
9938
  }[];
9558
9939
  meta: {
9559
9940
  /** @description Whether there are more items */
@@ -9718,6 +10099,11 @@ export interface operations {
9718
10099
  * @description When event was processed
9719
10100
  */
9720
10101
  processedAt: string | null;
10102
+ /**
10103
+ * Format: uuid
10104
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
10105
+ */
10106
+ causationId: string | null;
9721
10107
  }[];
9722
10108
  meta: {
9723
10109
  /** @description Whether there are more items */
@@ -9853,6 +10239,11 @@ export interface operations {
9853
10239
  * @description When event was processed
9854
10240
  */
9855
10241
  processedAt: string | null;
10242
+ /**
10243
+ * Format: uuid
10244
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
10245
+ */
10246
+ causationId: string | null;
9856
10247
  }[];
9857
10248
  meta: {
9858
10249
  /** @description Whether there are more items */
@@ -9941,6 +10332,252 @@ export interface operations {
9941
10332
  * @description When event was processed
9942
10333
  */
9943
10334
  processedAt: string | null;
10335
+ /**
10336
+ * Format: uuid
10337
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
10338
+ */
10339
+ causationId: string | null;
10340
+ };
10341
+ };
10342
+ };
10343
+ };
10344
+ /** @description Event not found */
10345
+ 404: {
10346
+ headers: {
10347
+ [name: string]: unknown;
10348
+ };
10349
+ content: {
10350
+ "application/json": {
10351
+ error: {
10352
+ /**
10353
+ * @description Error code
10354
+ * @example NOT_FOUND
10355
+ */
10356
+ code: string;
10357
+ /** @description Human-readable error message */
10358
+ message: string;
10359
+ /** @description Additional error details */
10360
+ details?: unknown;
10361
+ };
10362
+ };
10363
+ };
10364
+ };
10365
+ };
10366
+ };
10367
+ traceEvent: {
10368
+ parameters: {
10369
+ query?: never;
10370
+ header?: never;
10371
+ path: {
10372
+ id: string;
10373
+ };
10374
+ cookie?: never;
10375
+ };
10376
+ requestBody?: never;
10377
+ responses: {
10378
+ /** @description Causality trace */
10379
+ 200: {
10380
+ headers: {
10381
+ [name: string]: unknown;
10382
+ };
10383
+ content: {
10384
+ "application/json": {
10385
+ data: {
10386
+ /** @description The event the trace was requested for */
10387
+ event: {
10388
+ /**
10389
+ * Format: uuid
10390
+ * @description Event UUID
10391
+ */
10392
+ id: string;
10393
+ /** @description Event type */
10394
+ eventType: string;
10395
+ /** @description Content type */
10396
+ contentType: string | null;
10397
+ /**
10398
+ * Format: uuid
10399
+ * @description Instance UUID
10400
+ */
10401
+ instanceId: string;
10402
+ /**
10403
+ * Format: uuid
10404
+ * @description Person UUID
10405
+ */
10406
+ personId: string | null;
10407
+ /**
10408
+ * @description Message direction
10409
+ * @enum {string}
10410
+ */
10411
+ direction: "inbound" | "outbound";
10412
+ /** @description Text content */
10413
+ textContent: string | null;
10414
+ /** @description Audio transcription */
10415
+ transcription: string | null;
10416
+ /** @description Image description */
10417
+ imageDescription: string | null;
10418
+ /**
10419
+ * Format: uuid
10420
+ * @description Chat UUID (FK → chats.id)
10421
+ */
10422
+ chatUuid: string | null;
10423
+ /**
10424
+ * Format: uuid
10425
+ * @description Agent UUID (FK → agents.id)
10426
+ */
10427
+ agentId: string | null;
10428
+ /**
10429
+ * Format: uuid
10430
+ * @description Conversation UUID (FK → conversations.id)
10431
+ */
10432
+ conversationId: string | null;
10433
+ /**
10434
+ * Format: date-time
10435
+ * @description When event was received
10436
+ */
10437
+ receivedAt: string;
10438
+ /**
10439
+ * Format: date-time
10440
+ * @description When event was processed
10441
+ */
10442
+ processedAt: string | null;
10443
+ /**
10444
+ * Format: uuid
10445
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
10446
+ */
10447
+ causationId: string | null;
10448
+ };
10449
+ /** @description Chain above the event via causationId, root first, ending at the immediate parent */
10450
+ ancestors: {
10451
+ /**
10452
+ * Format: uuid
10453
+ * @description Event UUID
10454
+ */
10455
+ id: string;
10456
+ /** @description Event type */
10457
+ eventType: string;
10458
+ /** @description Content type */
10459
+ contentType: string | null;
10460
+ /**
10461
+ * Format: uuid
10462
+ * @description Instance UUID
10463
+ */
10464
+ instanceId: string;
10465
+ /**
10466
+ * Format: uuid
10467
+ * @description Person UUID
10468
+ */
10469
+ personId: string | null;
10470
+ /**
10471
+ * @description Message direction
10472
+ * @enum {string}
10473
+ */
10474
+ direction: "inbound" | "outbound";
10475
+ /** @description Text content */
10476
+ textContent: string | null;
10477
+ /** @description Audio transcription */
10478
+ transcription: string | null;
10479
+ /** @description Image description */
10480
+ imageDescription: string | null;
10481
+ /**
10482
+ * Format: uuid
10483
+ * @description Chat UUID (FK → chats.id)
10484
+ */
10485
+ chatUuid: string | null;
10486
+ /**
10487
+ * Format: uuid
10488
+ * @description Agent UUID (FK → agents.id)
10489
+ */
10490
+ agentId: string | null;
10491
+ /**
10492
+ * Format: uuid
10493
+ * @description Conversation UUID (FK → conversations.id)
10494
+ */
10495
+ conversationId: string | null;
10496
+ /**
10497
+ * Format: date-time
10498
+ * @description When event was received
10499
+ */
10500
+ receivedAt: string;
10501
+ /**
10502
+ * Format: date-time
10503
+ * @description When event was processed
10504
+ */
10505
+ processedAt: string | null;
10506
+ /**
10507
+ * Format: uuid
10508
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
10509
+ */
10510
+ causationId: string | null;
10511
+ }[];
10512
+ /** @description Fan-out below the event, breadth-first */
10513
+ descendants: {
10514
+ event: {
10515
+ /**
10516
+ * Format: uuid
10517
+ * @description Event UUID
10518
+ */
10519
+ id: string;
10520
+ /** @description Event type */
10521
+ eventType: string;
10522
+ /** @description Content type */
10523
+ contentType: string | null;
10524
+ /**
10525
+ * Format: uuid
10526
+ * @description Instance UUID
10527
+ */
10528
+ instanceId: string;
10529
+ /**
10530
+ * Format: uuid
10531
+ * @description Person UUID
10532
+ */
10533
+ personId: string | null;
10534
+ /**
10535
+ * @description Message direction
10536
+ * @enum {string}
10537
+ */
10538
+ direction: "inbound" | "outbound";
10539
+ /** @description Text content */
10540
+ textContent: string | null;
10541
+ /** @description Audio transcription */
10542
+ transcription: string | null;
10543
+ /** @description Image description */
10544
+ imageDescription: string | null;
10545
+ /**
10546
+ * Format: uuid
10547
+ * @description Chat UUID (FK → chats.id)
10548
+ */
10549
+ chatUuid: string | null;
10550
+ /**
10551
+ * Format: uuid
10552
+ * @description Agent UUID (FK → agents.id)
10553
+ */
10554
+ agentId: string | null;
10555
+ /**
10556
+ * Format: uuid
10557
+ * @description Conversation UUID (FK → conversations.id)
10558
+ */
10559
+ conversationId: string | null;
10560
+ /**
10561
+ * Format: date-time
10562
+ * @description When event was received
10563
+ */
10564
+ receivedAt: string;
10565
+ /**
10566
+ * Format: date-time
10567
+ * @description When event was processed
10568
+ */
10569
+ processedAt: string | null;
10570
+ /**
10571
+ * Format: uuid
10572
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
10573
+ */
10574
+ causationId: string | null;
10575
+ };
10576
+ /** @description Distance below the focus event (1 = direct child) */
10577
+ depth: number;
10578
+ }[];
10579
+ /** @description True when a depth/node cap cut the walk short */
10580
+ truncated: boolean;
9944
10581
  };
9945
10582
  };
9946
10583
  };
@@ -10045,6 +10682,11 @@ export interface operations {
10045
10682
  * @description When event was processed
10046
10683
  */
10047
10684
  processedAt: string | null;
10685
+ /**
10686
+ * Format: uuid
10687
+ * @description Id of the immediate parent event (null for roots and pre-#957 rows)
10688
+ */
10689
+ causationId: string | null;
10048
10690
  }[];
10049
10691
  meta: {
10050
10692
  total: number;
@@ -15700,6 +16342,8 @@ export interface operations {
15700
16342
  /** @default 30000 */
15701
16343
  timeoutMs: number;
15702
16344
  responseAs?: string;
16345
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
16346
+ includeEnvelope?: boolean;
15703
16347
  };
15704
16348
  } | {
15705
16349
  /** @enum {string} */
@@ -15838,6 +16482,8 @@ export interface operations {
15838
16482
  /** @default 30000 */
15839
16483
  timeoutMs?: number;
15840
16484
  responseAs?: string;
16485
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
16486
+ includeEnvelope?: boolean;
15841
16487
  };
15842
16488
  } | {
15843
16489
  /** @enum {string} */
@@ -15972,6 +16618,8 @@ export interface operations {
15972
16618
  /** @default 30000 */
15973
16619
  timeoutMs: number;
15974
16620
  responseAs?: string;
16621
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
16622
+ includeEnvelope?: boolean;
15975
16623
  };
15976
16624
  } | {
15977
16625
  /** @enum {string} */
@@ -16144,6 +16792,8 @@ export interface operations {
16144
16792
  /** @default 30000 */
16145
16793
  timeoutMs: number;
16146
16794
  responseAs?: string;
16795
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
16796
+ includeEnvelope?: boolean;
16147
16797
  };
16148
16798
  } | {
16149
16799
  /** @enum {string} */
@@ -16353,6 +17003,8 @@ export interface operations {
16353
17003
  /** @default 30000 */
16354
17004
  timeoutMs?: number;
16355
17005
  responseAs?: string;
17006
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
17007
+ includeEnvelope?: boolean;
16356
17008
  };
16357
17009
  } | {
16358
17010
  /** @enum {string} */
@@ -16487,6 +17139,8 @@ export interface operations {
16487
17139
  /** @default 30000 */
16488
17140
  timeoutMs: number;
16489
17141
  responseAs?: string;
17142
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
17143
+ includeEnvelope?: boolean;
16490
17144
  };
16491
17145
  } | {
16492
17146
  /** @enum {string} */
@@ -16659,6 +17313,8 @@ export interface operations {
16659
17313
  /** @default 30000 */
16660
17314
  timeoutMs: number;
16661
17315
  responseAs?: string;
17316
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
17317
+ includeEnvelope?: boolean;
16662
17318
  };
16663
17319
  } | {
16664
17320
  /** @enum {string} */
@@ -16831,6 +17487,8 @@ export interface operations {
16831
17487
  /** @default 30000 */
16832
17488
  timeoutMs: number;
16833
17489
  responseAs?: string;
17490
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
17491
+ includeEnvelope?: boolean;
16834
17492
  };
16835
17493
  } | {
16836
17494
  /** @enum {string} */
@@ -17001,6 +17659,8 @@ export interface operations {
17001
17659
  /** @default 30000 */
17002
17660
  timeoutMs: number;
17003
17661
  responseAs?: string;
17662
+ /** @description Send the full OmniEvent envelope as the default body (default true) */
17663
+ includeEnvelope?: boolean;
17004
17664
  };
17005
17665
  } | {
17006
17666
  /** @enum {string} */
@@ -19869,6 +20529,347 @@ export interface operations {
19869
20529
  };
19870
20530
  };
19871
20531
  };
20532
+ harnessSay: {
20533
+ parameters: {
20534
+ query?: never;
20535
+ header?: never;
20536
+ path: {
20537
+ instanceId: string;
20538
+ };
20539
+ cookie?: never;
20540
+ };
20541
+ requestBody?: {
20542
+ content: {
20543
+ "application/json": {
20544
+ /** @description Free-form conversation id — N chats run in parallel */
20545
+ chatId: string;
20546
+ text: string;
20547
+ /** @description Sender id; defaults to user:<chatId> */
20548
+ from?: string;
20549
+ senderName?: string;
20550
+ };
20551
+ };
20552
+ };
20553
+ responses: {
20554
+ /** @description Inbound injected */
20555
+ 201: {
20556
+ headers: {
20557
+ [name: string]: unknown;
20558
+ };
20559
+ content: {
20560
+ "application/json": {
20561
+ data: {
20562
+ /** @description Position in the chat transcript (1-based, per chat) */
20563
+ seq: number;
20564
+ /** @enum {string} */
20565
+ direction: "inbound";
20566
+ /** @description Unix ms timestamp */
20567
+ at: number;
20568
+ /** @enum {string} */
20569
+ kind: "say" | "tap";
20570
+ externalId: string;
20571
+ from: string;
20572
+ content: {
20573
+ type: string;
20574
+ text?: string;
20575
+ };
20576
+ /** @description Present on kind 'tap' */
20577
+ tap?: {
20578
+ /** @description seq of the outbound whose component was tapped */
20579
+ sourceSeq: number;
20580
+ /** @description 1-based index into that outbound buttons */
20581
+ optionIndex: number;
20582
+ /** @description button.data when set */
20583
+ optionId?: string;
20584
+ /** @description button.text — what comes back as the inbound text */
20585
+ optionText: string;
20586
+ };
20587
+ };
20588
+ };
20589
+ };
20590
+ };
20591
+ /** @description Not a harness instance */
20592
+ 400: {
20593
+ headers: {
20594
+ [name: string]: unknown;
20595
+ };
20596
+ content: {
20597
+ "application/json": {
20598
+ error: {
20599
+ /**
20600
+ * @description Error code
20601
+ * @example NOT_FOUND
20602
+ */
20603
+ code: string;
20604
+ /** @description Human-readable error message */
20605
+ message: string;
20606
+ /** @description Additional error details */
20607
+ details?: unknown;
20608
+ };
20609
+ };
20610
+ };
20611
+ };
20612
+ };
20613
+ };
20614
+ harnessTap: {
20615
+ parameters: {
20616
+ query?: never;
20617
+ header?: never;
20618
+ path: {
20619
+ instanceId: string;
20620
+ };
20621
+ cookie?: never;
20622
+ };
20623
+ requestBody?: {
20624
+ content: {
20625
+ "application/json": {
20626
+ chatId: string;
20627
+ /** @description 1-based button index, or a string matched against button.data then button.text */
20628
+ option: number | string;
20629
+ /** @description Outbound seq to tap; defaults to the latest rendered outbound with a component */
20630
+ messageSeq?: number;
20631
+ };
20632
+ };
20633
+ };
20634
+ responses: {
20635
+ /** @description Tap injected */
20636
+ 201: {
20637
+ headers: {
20638
+ [name: string]: unknown;
20639
+ };
20640
+ content: {
20641
+ "application/json": {
20642
+ data: {
20643
+ /** @description Position in the chat transcript (1-based, per chat) */
20644
+ seq: number;
20645
+ /** @enum {string} */
20646
+ direction: "inbound";
20647
+ /** @description Unix ms timestamp */
20648
+ at: number;
20649
+ /** @enum {string} */
20650
+ kind: "say" | "tap";
20651
+ externalId: string;
20652
+ from: string;
20653
+ content: {
20654
+ type: string;
20655
+ text?: string;
20656
+ };
20657
+ /** @description Present on kind 'tap' */
20658
+ tap?: {
20659
+ /** @description seq of the outbound whose component was tapped */
20660
+ sourceSeq: number;
20661
+ /** @description 1-based index into that outbound buttons */
20662
+ optionIndex: number;
20663
+ /** @description button.data when set */
20664
+ optionId?: string;
20665
+ /** @description button.text — what comes back as the inbound text */
20666
+ optionText: string;
20667
+ };
20668
+ };
20669
+ };
20670
+ };
20671
+ };
20672
+ /** @description No rendered component / option not found */
20673
+ 404: {
20674
+ headers: {
20675
+ [name: string]: unknown;
20676
+ };
20677
+ content: {
20678
+ "application/json": {
20679
+ error: {
20680
+ /**
20681
+ * @description Error code
20682
+ * @example NOT_FOUND
20683
+ */
20684
+ code: string;
20685
+ /** @description Human-readable error message */
20686
+ message: string;
20687
+ /** @description Additional error details */
20688
+ details?: unknown;
20689
+ };
20690
+ };
20691
+ };
20692
+ };
20693
+ /** @description Targeted outbound was refused by the profile — it never rendered */
20694
+ 409: {
20695
+ headers: {
20696
+ [name: string]: unknown;
20697
+ };
20698
+ content: {
20699
+ "application/json": {
20700
+ error: {
20701
+ /**
20702
+ * @description Error code
20703
+ * @example NOT_FOUND
20704
+ */
20705
+ code: string;
20706
+ /** @description Human-readable error message */
20707
+ message: string;
20708
+ /** @description Additional error details */
20709
+ details?: unknown;
20710
+ };
20711
+ };
20712
+ };
20713
+ };
20714
+ };
20715
+ };
20716
+ harnessGetTranscript: {
20717
+ parameters: {
20718
+ query: {
20719
+ chatId: string;
20720
+ };
20721
+ header?: never;
20722
+ path: {
20723
+ instanceId: string;
20724
+ };
20725
+ cookie?: never;
20726
+ };
20727
+ requestBody?: never;
20728
+ responses: {
20729
+ /** @description Transcript (empty entries for an unknown chatId) */
20730
+ 200: {
20731
+ headers: {
20732
+ [name: string]: unknown;
20733
+ };
20734
+ content: {
20735
+ "application/json": {
20736
+ data: {
20737
+ chatId: string;
20738
+ /** @description What the simulated platform renders, per instance. Configured via profileMetadata.harnessProfile on the instance and enforced by the plugin sendMessage(). */
20739
+ profile: {
20740
+ canSendText: boolean;
20741
+ canSendMedia: boolean;
20742
+ canSendButtons: boolean;
20743
+ canSendList: boolean;
20744
+ maxButtons: number;
20745
+ maxListRows: number;
20746
+ /** @description 0 = unlimited */
20747
+ maxMessageLength: number;
20748
+ };
20749
+ entries: ({
20750
+ /** @description Position in the chat transcript (1-based, per chat) */
20751
+ seq: number;
20752
+ /** @enum {string} */
20753
+ direction: "inbound";
20754
+ /** @description Unix ms timestamp */
20755
+ at: number;
20756
+ /** @enum {string} */
20757
+ kind: "say" | "tap";
20758
+ externalId: string;
20759
+ from: string;
20760
+ content: {
20761
+ type: string;
20762
+ text?: string;
20763
+ };
20764
+ /** @description Present on kind 'tap' */
20765
+ tap?: {
20766
+ /** @description seq of the outbound whose component was tapped */
20767
+ sourceSeq: number;
20768
+ /** @description 1-based index into that outbound buttons */
20769
+ optionIndex: number;
20770
+ /** @description button.data when set */
20771
+ optionId?: string;
20772
+ /** @description button.text — what comes back as the inbound text */
20773
+ optionText: string;
20774
+ };
20775
+ } | {
20776
+ seq: number;
20777
+ /** @enum {string} */
20778
+ direction: "outbound";
20779
+ at: number;
20780
+ /** @description Absent when the send was refused by the profile */
20781
+ externalId?: string;
20782
+ /** @description The FULL OutgoingMessage verbatim — buttons, list, media, metadata included */
20783
+ message: {
20784
+ [key: string]: unknown;
20785
+ };
20786
+ /** @description Capability-profile violations; empty when it rendered */
20787
+ violations: string[];
20788
+ result: {
20789
+ success: boolean;
20790
+ error?: string;
20791
+ };
20792
+ })[];
20793
+ /** @description Oldest entries evicted by the per-chat bound (1000) */
20794
+ droppedEntries: number;
20795
+ };
20796
+ };
20797
+ };
20798
+ };
20799
+ /** @description Not a harness instance */
20800
+ 400: {
20801
+ headers: {
20802
+ [name: string]: unknown;
20803
+ };
20804
+ content: {
20805
+ "application/json": {
20806
+ error: {
20807
+ /**
20808
+ * @description Error code
20809
+ * @example NOT_FOUND
20810
+ */
20811
+ code: string;
20812
+ /** @description Human-readable error message */
20813
+ message: string;
20814
+ /** @description Additional error details */
20815
+ details?: unknown;
20816
+ };
20817
+ };
20818
+ };
20819
+ };
20820
+ };
20821
+ };
20822
+ harnessResetTranscript: {
20823
+ parameters: {
20824
+ query?: {
20825
+ chatId?: string;
20826
+ };
20827
+ header?: never;
20828
+ path: {
20829
+ instanceId: string;
20830
+ };
20831
+ cookie?: never;
20832
+ };
20833
+ requestBody?: never;
20834
+ responses: {
20835
+ /** @description Reset done */
20836
+ 200: {
20837
+ headers: {
20838
+ [name: string]: unknown;
20839
+ };
20840
+ content: {
20841
+ "application/json": {
20842
+ data: {
20843
+ reset: boolean;
20844
+ chatId?: string;
20845
+ scope?: string;
20846
+ };
20847
+ };
20848
+ };
20849
+ };
20850
+ /** @description Not a harness instance */
20851
+ 400: {
20852
+ headers: {
20853
+ [name: string]: unknown;
20854
+ };
20855
+ content: {
20856
+ "application/json": {
20857
+ error: {
20858
+ /**
20859
+ * @description Error code
20860
+ * @example NOT_FOUND
20861
+ */
20862
+ code: string;
20863
+ /** @description Human-readable error message */
20864
+ message: string;
20865
+ /** @description Additional error details */
20866
+ details?: unknown;
20867
+ };
20868
+ };
20869
+ };
20870
+ };
20871
+ };
20872
+ };
19872
20873
  listPlatformTenants: {
19873
20874
  parameters: {
19874
20875
  query?: never;