@automagik/omni 2.260906.2 → 2.260906.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/drizzle/0057_connector_lifecycle_contract.sql +40 -0
- package/db/drizzle/meta/_journal.json +7 -0
- package/dist/commands/webhooks.d.ts.map +1 -1
- package/dist/index.js +223 -8
- package/dist/sdk/client.d.ts +21 -0
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +7 -0
- package/dist/sdk/types.generated.d.ts +376 -10
- package/dist/sdk/types.generated.d.ts.map +1 -1
- package/dist/server/index.js +342 -7
- package/package.json +1 -1
|
@@ -979,6 +979,26 @@ export interface paths {
|
|
|
979
979
|
patch?: never;
|
|
980
980
|
trace?: never;
|
|
981
981
|
};
|
|
982
|
+
"/webhooks/{source}/heartbeat": {
|
|
983
|
+
parameters: {
|
|
984
|
+
query?: never;
|
|
985
|
+
header?: never;
|
|
986
|
+
path?: never;
|
|
987
|
+
cookie?: never;
|
|
988
|
+
};
|
|
989
|
+
get?: never;
|
|
990
|
+
put?: never;
|
|
991
|
+
/**
|
|
992
|
+
* Connector heartbeat
|
|
993
|
+
* @description Record a connector heartbeat: "I ran, zero events found". Resets the liveness window of a supervised source (one declaring expectedIntervalSeconds) so silence-beyond-window detection can tell quiet from dead. Creates NO journal event — only the stalled/recovered transitions are journaled. No request body.
|
|
994
|
+
*/
|
|
995
|
+
post: operations["heartbeatWebhookSource"];
|
|
996
|
+
delete?: never;
|
|
997
|
+
options?: never;
|
|
998
|
+
head?: never;
|
|
999
|
+
patch?: never;
|
|
1000
|
+
trace?: never;
|
|
1001
|
+
};
|
|
982
1002
|
"/webhooks/ingress/{source}": {
|
|
983
1003
|
parameters: {
|
|
984
1004
|
query?: never;
|
|
@@ -2790,7 +2810,7 @@ export interface components {
|
|
|
2790
2810
|
* @description Channel type
|
|
2791
2811
|
* @enum {string}
|
|
2792
2812
|
*/
|
|
2793
|
-
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
2813
|
+
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
2794
2814
|
/** @description Whether instance is active */
|
|
2795
2815
|
isActive: boolean;
|
|
2796
2816
|
/** @description Whether this is the default instance for channel */
|
|
@@ -2835,7 +2855,7 @@ export interface components {
|
|
|
2835
2855
|
* @description Channel type
|
|
2836
2856
|
* @enum {string}
|
|
2837
2857
|
*/
|
|
2838
|
-
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
2858
|
+
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
2839
2859
|
/**
|
|
2840
2860
|
* Format: uuid
|
|
2841
2861
|
* @description Agent UUID (agents table)
|
|
@@ -3013,7 +3033,7 @@ export interface components {
|
|
|
3013
3033
|
* @description Channel type ID
|
|
3014
3034
|
* @enum {string}
|
|
3015
3035
|
*/
|
|
3016
|
-
id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
3036
|
+
id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
3017
3037
|
/** @description Human-readable channel name */
|
|
3018
3038
|
name: string;
|
|
3019
3039
|
/** @description Plugin version */
|
|
@@ -3823,6 +3843,47 @@ export interface components {
|
|
|
3823
3843
|
hasSignatureSecret: boolean;
|
|
3824
3844
|
/** @description Whether enabled */
|
|
3825
3845
|
enabled: boolean;
|
|
3846
|
+
/**
|
|
3847
|
+
* Format: date-time
|
|
3848
|
+
* @description When the last webhook was received
|
|
3849
|
+
*/
|
|
3850
|
+
lastReceivedAt: string | null;
|
|
3851
|
+
/** @description Total webhooks received */
|
|
3852
|
+
totalReceived: number;
|
|
3853
|
+
/** @description Declared cadence: >=1 event or heartbeat per N seconds. Null = unsupervised */
|
|
3854
|
+
expectedIntervalSeconds: number | null;
|
|
3855
|
+
/**
|
|
3856
|
+
* Format: date-time
|
|
3857
|
+
* @description Last heartbeat ("ran, zero events")
|
|
3858
|
+
*/
|
|
3859
|
+
lastHeartbeatAt: string | null;
|
|
3860
|
+
/** @description Total heartbeats received */
|
|
3861
|
+
heartbeatCount: number;
|
|
3862
|
+
/**
|
|
3863
|
+
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
3864
|
+
* @enum {string|null}
|
|
3865
|
+
*/
|
|
3866
|
+
livenessStatus: "healthy" | "stalled" | null;
|
|
3867
|
+
/**
|
|
3868
|
+
* Format: date-time
|
|
3869
|
+
* @description When the cadence was (re)declared
|
|
3870
|
+
*/
|
|
3871
|
+
livenessArmedAt: string | null;
|
|
3872
|
+
/**
|
|
3873
|
+
* Format: date-time
|
|
3874
|
+
* @description When the current stall began
|
|
3875
|
+
*/
|
|
3876
|
+
stalledAt: string | null;
|
|
3877
|
+
/**
|
|
3878
|
+
* @description Declared window semantics; null = undeclared
|
|
3879
|
+
* @enum {string|null}
|
|
3880
|
+
*/
|
|
3881
|
+
windowSemantics: "future_only" | "includes_in_progress" | null;
|
|
3882
|
+
/**
|
|
3883
|
+
* @description Declared upstream-mutation re-emit policy; null = undeclared
|
|
3884
|
+
* @enum {string|null}
|
|
3885
|
+
*/
|
|
3886
|
+
mutationPolicy: "same_id" | "new_id" | null;
|
|
3826
3887
|
/**
|
|
3827
3888
|
* Format: date-time
|
|
3828
3889
|
* @description Creation timestamp
|
|
@@ -3862,6 +3923,18 @@ export interface components {
|
|
|
3862
3923
|
* @default true
|
|
3863
3924
|
*/
|
|
3864
3925
|
enabled: boolean;
|
|
3926
|
+
/** @description Declared cadence: the connector promises >=1 event or heartbeat per N seconds (1s-30d). Declaring it arms liveness supervision (silence beyond the window emits system.connector.stalled and marks the source unhealthy); null disarms it. */
|
|
3927
|
+
expectedIntervalSeconds?: number | null;
|
|
3928
|
+
/**
|
|
3929
|
+
* @description Declared time-window semantics: 'future_only' (only not-yet-started items) or 'includes_in_progress'. Informational contract for consumers; null = undeclared.
|
|
3930
|
+
* @enum {string|null}
|
|
3931
|
+
*/
|
|
3932
|
+
windowSemantics?: "future_only" | "includes_in_progress" | null;
|
|
3933
|
+
/**
|
|
3934
|
+
* @description How the source re-emits a changed upstream item: 'same_id' (reschedule case — consumers must key on id+content) or 'new_id'. Feeds the idempotency key template choice; null = undeclared.
|
|
3935
|
+
* @enum {string|null}
|
|
3936
|
+
*/
|
|
3937
|
+
mutationPolicy?: "same_id" | "new_id" | null;
|
|
3865
3938
|
};
|
|
3866
3939
|
TriggerEventRequest: {
|
|
3867
3940
|
/** @description Event type (must start with custom.) */
|
|
@@ -3889,6 +3962,27 @@ export interface components {
|
|
|
3889
3962
|
/** @description Event type */
|
|
3890
3963
|
eventType: string;
|
|
3891
3964
|
};
|
|
3965
|
+
WebhookHeartbeatResponse: {
|
|
3966
|
+
/**
|
|
3967
|
+
* @description Heartbeat recorded
|
|
3968
|
+
* @enum {boolean}
|
|
3969
|
+
*/
|
|
3970
|
+
ok: true;
|
|
3971
|
+
/** @description Webhook source name */
|
|
3972
|
+
source: string;
|
|
3973
|
+
/**
|
|
3974
|
+
* Format: date-time
|
|
3975
|
+
* @description When the heartbeat was recorded
|
|
3976
|
+
*/
|
|
3977
|
+
heartbeatAt: string;
|
|
3978
|
+
/**
|
|
3979
|
+
* @description Status before this heartbeat (a stalled source recovers on the next sweep tick)
|
|
3980
|
+
* @enum {string|null}
|
|
3981
|
+
*/
|
|
3982
|
+
livenessStatus: "healthy" | "stalled" | null;
|
|
3983
|
+
/** @description Declared cadence, if any */
|
|
3984
|
+
expectedIntervalSeconds: number | null;
|
|
3985
|
+
};
|
|
3892
3986
|
AccessRule: {
|
|
3893
3987
|
/**
|
|
3894
3988
|
* Format: uuid
|
|
@@ -6550,7 +6644,7 @@ export interface operations {
|
|
|
6550
6644
|
* @description Channel type
|
|
6551
6645
|
* @enum {string}
|
|
6552
6646
|
*/
|
|
6553
|
-
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
6647
|
+
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
6554
6648
|
/** @description Whether instance is active */
|
|
6555
6649
|
isActive: boolean;
|
|
6556
6650
|
/** @description Whether this is the default instance for channel */
|
|
@@ -6615,7 +6709,7 @@ export interface operations {
|
|
|
6615
6709
|
* @description Channel type
|
|
6616
6710
|
* @enum {string}
|
|
6617
6711
|
*/
|
|
6618
|
-
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
6712
|
+
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
6619
6713
|
/**
|
|
6620
6714
|
* Format: uuid
|
|
6621
6715
|
* @description Agent UUID (agents table)
|
|
@@ -6744,7 +6838,7 @@ export interface operations {
|
|
|
6744
6838
|
* @description Channel type
|
|
6745
6839
|
* @enum {string}
|
|
6746
6840
|
*/
|
|
6747
|
-
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
6841
|
+
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
6748
6842
|
/** @description Whether instance is active */
|
|
6749
6843
|
isActive: boolean;
|
|
6750
6844
|
/** @description Whether this is the default instance for channel */
|
|
@@ -6829,7 +6923,7 @@ export interface operations {
|
|
|
6829
6923
|
* @description Channel type ID
|
|
6830
6924
|
* @enum {string}
|
|
6831
6925
|
*/
|
|
6832
|
-
id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
6926
|
+
id: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
6833
6927
|
/** @description Human-readable channel name */
|
|
6834
6928
|
name: string;
|
|
6835
6929
|
/** @description Plugin version */
|
|
@@ -6878,7 +6972,7 @@ export interface operations {
|
|
|
6878
6972
|
* @description Channel type
|
|
6879
6973
|
* @enum {string}
|
|
6880
6974
|
*/
|
|
6881
|
-
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
6975
|
+
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
6882
6976
|
/** @description Whether instance is active */
|
|
6883
6977
|
isActive: boolean;
|
|
6884
6978
|
/** @description Whether this is the default instance for channel */
|
|
@@ -7008,7 +7102,7 @@ export interface operations {
|
|
|
7008
7102
|
* @description Channel type
|
|
7009
7103
|
* @enum {string}
|
|
7010
7104
|
*/
|
|
7011
|
-
channel?: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
7105
|
+
channel?: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
7012
7106
|
/**
|
|
7013
7107
|
* Format: uuid
|
|
7014
7108
|
* @description Agent UUID (agents table)
|
|
@@ -7137,7 +7231,7 @@ export interface operations {
|
|
|
7137
7231
|
* @description Channel type
|
|
7138
7232
|
* @enum {string}
|
|
7139
7233
|
*/
|
|
7140
|
-
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "twilio-whatsapp" | "internal";
|
|
7234
|
+
channel: "whatsapp-baileys" | "whatsapp-business" | "discord" | "slack" | "telegram" | "a2a" | "gupshup" | "hermes" | "asc-flow" | "twilio-whatsapp" | "internal";
|
|
7141
7235
|
/** @description Whether instance is active */
|
|
7142
7236
|
isActive: boolean;
|
|
7143
7237
|
/** @description Whether this is the default instance for channel */
|
|
@@ -10479,6 +10573,47 @@ export interface operations {
|
|
|
10479
10573
|
hasSignatureSecret: boolean;
|
|
10480
10574
|
/** @description Whether enabled */
|
|
10481
10575
|
enabled: boolean;
|
|
10576
|
+
/**
|
|
10577
|
+
* Format: date-time
|
|
10578
|
+
* @description When the last webhook was received
|
|
10579
|
+
*/
|
|
10580
|
+
lastReceivedAt: string | null;
|
|
10581
|
+
/** @description Total webhooks received */
|
|
10582
|
+
totalReceived: number;
|
|
10583
|
+
/** @description Declared cadence: >=1 event or heartbeat per N seconds. Null = unsupervised */
|
|
10584
|
+
expectedIntervalSeconds: number | null;
|
|
10585
|
+
/**
|
|
10586
|
+
* Format: date-time
|
|
10587
|
+
* @description Last heartbeat ("ran, zero events")
|
|
10588
|
+
*/
|
|
10589
|
+
lastHeartbeatAt: string | null;
|
|
10590
|
+
/** @description Total heartbeats received */
|
|
10591
|
+
heartbeatCount: number;
|
|
10592
|
+
/**
|
|
10593
|
+
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
10594
|
+
* @enum {string|null}
|
|
10595
|
+
*/
|
|
10596
|
+
livenessStatus: "healthy" | "stalled" | null;
|
|
10597
|
+
/**
|
|
10598
|
+
* Format: date-time
|
|
10599
|
+
* @description When the cadence was (re)declared
|
|
10600
|
+
*/
|
|
10601
|
+
livenessArmedAt: string | null;
|
|
10602
|
+
/**
|
|
10603
|
+
* Format: date-time
|
|
10604
|
+
* @description When the current stall began
|
|
10605
|
+
*/
|
|
10606
|
+
stalledAt: string | null;
|
|
10607
|
+
/**
|
|
10608
|
+
* @description Declared window semantics; null = undeclared
|
|
10609
|
+
* @enum {string|null}
|
|
10610
|
+
*/
|
|
10611
|
+
windowSemantics: "future_only" | "includes_in_progress" | null;
|
|
10612
|
+
/**
|
|
10613
|
+
* @description Declared upstream-mutation re-emit policy; null = undeclared
|
|
10614
|
+
* @enum {string|null}
|
|
10615
|
+
*/
|
|
10616
|
+
mutationPolicy: "same_id" | "new_id" | null;
|
|
10482
10617
|
/**
|
|
10483
10618
|
* Format: date-time
|
|
10484
10619
|
* @description Creation timestamp
|
|
@@ -10532,6 +10667,18 @@ export interface operations {
|
|
|
10532
10667
|
* @default true
|
|
10533
10668
|
*/
|
|
10534
10669
|
enabled?: boolean;
|
|
10670
|
+
/** @description Declared cadence: the connector promises >=1 event or heartbeat per N seconds (1s-30d). Declaring it arms liveness supervision (silence beyond the window emits system.connector.stalled and marks the source unhealthy); null disarms it. */
|
|
10671
|
+
expectedIntervalSeconds?: number | null;
|
|
10672
|
+
/**
|
|
10673
|
+
* @description Declared time-window semantics: 'future_only' (only not-yet-started items) or 'includes_in_progress'. Informational contract for consumers; null = undeclared.
|
|
10674
|
+
* @enum {string|null}
|
|
10675
|
+
*/
|
|
10676
|
+
windowSemantics?: "future_only" | "includes_in_progress" | null;
|
|
10677
|
+
/**
|
|
10678
|
+
* @description How the source re-emits a changed upstream item: 'same_id' (reschedule case — consumers must key on id+content) or 'new_id'. Feeds the idempotency key template choice; null = undeclared.
|
|
10679
|
+
* @enum {string|null}
|
|
10680
|
+
*/
|
|
10681
|
+
mutationPolicy?: "same_id" | "new_id" | null;
|
|
10535
10682
|
};
|
|
10536
10683
|
};
|
|
10537
10684
|
};
|
|
@@ -10573,6 +10720,47 @@ export interface operations {
|
|
|
10573
10720
|
hasSignatureSecret: boolean;
|
|
10574
10721
|
/** @description Whether enabled */
|
|
10575
10722
|
enabled: boolean;
|
|
10723
|
+
/**
|
|
10724
|
+
* Format: date-time
|
|
10725
|
+
* @description When the last webhook was received
|
|
10726
|
+
*/
|
|
10727
|
+
lastReceivedAt: string | null;
|
|
10728
|
+
/** @description Total webhooks received */
|
|
10729
|
+
totalReceived: number;
|
|
10730
|
+
/** @description Declared cadence: >=1 event or heartbeat per N seconds. Null = unsupervised */
|
|
10731
|
+
expectedIntervalSeconds: number | null;
|
|
10732
|
+
/**
|
|
10733
|
+
* Format: date-time
|
|
10734
|
+
* @description Last heartbeat ("ran, zero events")
|
|
10735
|
+
*/
|
|
10736
|
+
lastHeartbeatAt: string | null;
|
|
10737
|
+
/** @description Total heartbeats received */
|
|
10738
|
+
heartbeatCount: number;
|
|
10739
|
+
/**
|
|
10740
|
+
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
10741
|
+
* @enum {string|null}
|
|
10742
|
+
*/
|
|
10743
|
+
livenessStatus: "healthy" | "stalled" | null;
|
|
10744
|
+
/**
|
|
10745
|
+
* Format: date-time
|
|
10746
|
+
* @description When the cadence was (re)declared
|
|
10747
|
+
*/
|
|
10748
|
+
livenessArmedAt: string | null;
|
|
10749
|
+
/**
|
|
10750
|
+
* Format: date-time
|
|
10751
|
+
* @description When the current stall began
|
|
10752
|
+
*/
|
|
10753
|
+
stalledAt: string | null;
|
|
10754
|
+
/**
|
|
10755
|
+
* @description Declared window semantics; null = undeclared
|
|
10756
|
+
* @enum {string|null}
|
|
10757
|
+
*/
|
|
10758
|
+
windowSemantics: "future_only" | "includes_in_progress" | null;
|
|
10759
|
+
/**
|
|
10760
|
+
* @description Declared upstream-mutation re-emit policy; null = undeclared
|
|
10761
|
+
* @enum {string|null}
|
|
10762
|
+
*/
|
|
10763
|
+
mutationPolicy: "same_id" | "new_id" | null;
|
|
10576
10764
|
/**
|
|
10577
10765
|
* Format: date-time
|
|
10578
10766
|
* @description Creation timestamp
|
|
@@ -10658,6 +10846,47 @@ export interface operations {
|
|
|
10658
10846
|
hasSignatureSecret: boolean;
|
|
10659
10847
|
/** @description Whether enabled */
|
|
10660
10848
|
enabled: boolean;
|
|
10849
|
+
/**
|
|
10850
|
+
* Format: date-time
|
|
10851
|
+
* @description When the last webhook was received
|
|
10852
|
+
*/
|
|
10853
|
+
lastReceivedAt: string | null;
|
|
10854
|
+
/** @description Total webhooks received */
|
|
10855
|
+
totalReceived: number;
|
|
10856
|
+
/** @description Declared cadence: >=1 event or heartbeat per N seconds. Null = unsupervised */
|
|
10857
|
+
expectedIntervalSeconds: number | null;
|
|
10858
|
+
/**
|
|
10859
|
+
* Format: date-time
|
|
10860
|
+
* @description Last heartbeat ("ran, zero events")
|
|
10861
|
+
*/
|
|
10862
|
+
lastHeartbeatAt: string | null;
|
|
10863
|
+
/** @description Total heartbeats received */
|
|
10864
|
+
heartbeatCount: number;
|
|
10865
|
+
/**
|
|
10866
|
+
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
10867
|
+
* @enum {string|null}
|
|
10868
|
+
*/
|
|
10869
|
+
livenessStatus: "healthy" | "stalled" | null;
|
|
10870
|
+
/**
|
|
10871
|
+
* Format: date-time
|
|
10872
|
+
* @description When the cadence was (re)declared
|
|
10873
|
+
*/
|
|
10874
|
+
livenessArmedAt: string | null;
|
|
10875
|
+
/**
|
|
10876
|
+
* Format: date-time
|
|
10877
|
+
* @description When the current stall began
|
|
10878
|
+
*/
|
|
10879
|
+
stalledAt: string | null;
|
|
10880
|
+
/**
|
|
10881
|
+
* @description Declared window semantics; null = undeclared
|
|
10882
|
+
* @enum {string|null}
|
|
10883
|
+
*/
|
|
10884
|
+
windowSemantics: "future_only" | "includes_in_progress" | null;
|
|
10885
|
+
/**
|
|
10886
|
+
* @description Declared upstream-mutation re-emit policy; null = undeclared
|
|
10887
|
+
* @enum {string|null}
|
|
10888
|
+
*/
|
|
10889
|
+
mutationPolicy: "same_id" | "new_id" | null;
|
|
10661
10890
|
/**
|
|
10662
10891
|
* Format: date-time
|
|
10663
10892
|
* @description Creation timestamp
|
|
@@ -10782,6 +11011,18 @@ export interface operations {
|
|
|
10782
11011
|
* @default true
|
|
10783
11012
|
*/
|
|
10784
11013
|
enabled?: boolean;
|
|
11014
|
+
/** @description Declared cadence: the connector promises >=1 event or heartbeat per N seconds (1s-30d). Declaring it arms liveness supervision (silence beyond the window emits system.connector.stalled and marks the source unhealthy); null disarms it. */
|
|
11015
|
+
expectedIntervalSeconds?: number | null;
|
|
11016
|
+
/**
|
|
11017
|
+
* @description Declared time-window semantics: 'future_only' (only not-yet-started items) or 'includes_in_progress'. Informational contract for consumers; null = undeclared.
|
|
11018
|
+
* @enum {string|null}
|
|
11019
|
+
*/
|
|
11020
|
+
windowSemantics?: "future_only" | "includes_in_progress" | null;
|
|
11021
|
+
/**
|
|
11022
|
+
* @description How the source re-emits a changed upstream item: 'same_id' (reschedule case — consumers must key on id+content) or 'new_id'. Feeds the idempotency key template choice; null = undeclared.
|
|
11023
|
+
* @enum {string|null}
|
|
11024
|
+
*/
|
|
11025
|
+
mutationPolicy?: "same_id" | "new_id" | null;
|
|
10785
11026
|
};
|
|
10786
11027
|
};
|
|
10787
11028
|
};
|
|
@@ -10823,6 +11064,47 @@ export interface operations {
|
|
|
10823
11064
|
hasSignatureSecret: boolean;
|
|
10824
11065
|
/** @description Whether enabled */
|
|
10825
11066
|
enabled: boolean;
|
|
11067
|
+
/**
|
|
11068
|
+
* Format: date-time
|
|
11069
|
+
* @description When the last webhook was received
|
|
11070
|
+
*/
|
|
11071
|
+
lastReceivedAt: string | null;
|
|
11072
|
+
/** @description Total webhooks received */
|
|
11073
|
+
totalReceived: number;
|
|
11074
|
+
/** @description Declared cadence: >=1 event or heartbeat per N seconds. Null = unsupervised */
|
|
11075
|
+
expectedIntervalSeconds: number | null;
|
|
11076
|
+
/**
|
|
11077
|
+
* Format: date-time
|
|
11078
|
+
* @description Last heartbeat ("ran, zero events")
|
|
11079
|
+
*/
|
|
11080
|
+
lastHeartbeatAt: string | null;
|
|
11081
|
+
/** @description Total heartbeats received */
|
|
11082
|
+
heartbeatCount: number;
|
|
11083
|
+
/**
|
|
11084
|
+
* @description Liveness state; null = unsupervised. Transitions emit system.connector.* events
|
|
11085
|
+
* @enum {string|null}
|
|
11086
|
+
*/
|
|
11087
|
+
livenessStatus: "healthy" | "stalled" | null;
|
|
11088
|
+
/**
|
|
11089
|
+
* Format: date-time
|
|
11090
|
+
* @description When the cadence was (re)declared
|
|
11091
|
+
*/
|
|
11092
|
+
livenessArmedAt: string | null;
|
|
11093
|
+
/**
|
|
11094
|
+
* Format: date-time
|
|
11095
|
+
* @description When the current stall began
|
|
11096
|
+
*/
|
|
11097
|
+
stalledAt: string | null;
|
|
11098
|
+
/**
|
|
11099
|
+
* @description Declared window semantics; null = undeclared
|
|
11100
|
+
* @enum {string|null}
|
|
11101
|
+
*/
|
|
11102
|
+
windowSemantics: "future_only" | "includes_in_progress" | null;
|
|
11103
|
+
/**
|
|
11104
|
+
* @description Declared upstream-mutation re-emit policy; null = undeclared
|
|
11105
|
+
* @enum {string|null}
|
|
11106
|
+
*/
|
|
11107
|
+
mutationPolicy: "same_id" | "new_id" | null;
|
|
10826
11108
|
/**
|
|
10827
11109
|
* Format: date-time
|
|
10828
11110
|
* @description Creation timestamp
|
|
@@ -10919,6 +11201,90 @@ export interface operations {
|
|
|
10919
11201
|
};
|
|
10920
11202
|
};
|
|
10921
11203
|
};
|
|
11204
|
+
heartbeatWebhookSource: {
|
|
11205
|
+
parameters: {
|
|
11206
|
+
query?: never;
|
|
11207
|
+
header?: never;
|
|
11208
|
+
path: {
|
|
11209
|
+
source: string;
|
|
11210
|
+
};
|
|
11211
|
+
cookie?: never;
|
|
11212
|
+
};
|
|
11213
|
+
requestBody?: never;
|
|
11214
|
+
responses: {
|
|
11215
|
+
/** @description Heartbeat recorded */
|
|
11216
|
+
200: {
|
|
11217
|
+
headers: {
|
|
11218
|
+
[name: string]: unknown;
|
|
11219
|
+
};
|
|
11220
|
+
content: {
|
|
11221
|
+
"application/json": {
|
|
11222
|
+
/**
|
|
11223
|
+
* @description Heartbeat recorded
|
|
11224
|
+
* @enum {boolean}
|
|
11225
|
+
*/
|
|
11226
|
+
ok: true;
|
|
11227
|
+
/** @description Webhook source name */
|
|
11228
|
+
source: string;
|
|
11229
|
+
/**
|
|
11230
|
+
* Format: date-time
|
|
11231
|
+
* @description When the heartbeat was recorded
|
|
11232
|
+
*/
|
|
11233
|
+
heartbeatAt: string;
|
|
11234
|
+
/**
|
|
11235
|
+
* @description Status before this heartbeat (a stalled source recovers on the next sweep tick)
|
|
11236
|
+
* @enum {string|null}
|
|
11237
|
+
*/
|
|
11238
|
+
livenessStatus: "healthy" | "stalled" | null;
|
|
11239
|
+
/** @description Declared cadence, if any */
|
|
11240
|
+
expectedIntervalSeconds: number | null;
|
|
11241
|
+
};
|
|
11242
|
+
};
|
|
11243
|
+
};
|
|
11244
|
+
/** @description Source disabled */
|
|
11245
|
+
403: {
|
|
11246
|
+
headers: {
|
|
11247
|
+
[name: string]: unknown;
|
|
11248
|
+
};
|
|
11249
|
+
content: {
|
|
11250
|
+
"application/json": {
|
|
11251
|
+
error: {
|
|
11252
|
+
/**
|
|
11253
|
+
* @description Error code
|
|
11254
|
+
* @example NOT_FOUND
|
|
11255
|
+
*/
|
|
11256
|
+
code: string;
|
|
11257
|
+
/** @description Human-readable error message */
|
|
11258
|
+
message: string;
|
|
11259
|
+
/** @description Additional error details */
|
|
11260
|
+
details?: unknown;
|
|
11261
|
+
};
|
|
11262
|
+
};
|
|
11263
|
+
};
|
|
11264
|
+
};
|
|
11265
|
+
/** @description Source not found */
|
|
11266
|
+
404: {
|
|
11267
|
+
headers: {
|
|
11268
|
+
[name: string]: unknown;
|
|
11269
|
+
};
|
|
11270
|
+
content: {
|
|
11271
|
+
"application/json": {
|
|
11272
|
+
error: {
|
|
11273
|
+
/**
|
|
11274
|
+
* @description Error code
|
|
11275
|
+
* @example NOT_FOUND
|
|
11276
|
+
*/
|
|
11277
|
+
code: string;
|
|
11278
|
+
/** @description Human-readable error message */
|
|
11279
|
+
message: string;
|
|
11280
|
+
/** @description Additional error details */
|
|
11281
|
+
details?: unknown;
|
|
11282
|
+
};
|
|
11283
|
+
};
|
|
11284
|
+
};
|
|
11285
|
+
};
|
|
11286
|
+
};
|
|
11287
|
+
};
|
|
10922
11288
|
receiveWebhookIngress: {
|
|
10923
11289
|
parameters: {
|
|
10924
11290
|
query?: never;
|