@automagik/omni 2.260915.19 → 2.260915.21
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/0074_trigger_logs_cost.sql +13 -0
- package/db/drizzle/meta/_journal.json +7 -0
- package/dist/commands/events.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/sdk/types.generated.d.ts +482 -7
- package/dist/sdk/types.generated.d.ts.map +1 -1
- package/dist/server/index.js +50 -4
- package/package.json +1 -1
|
@@ -79,6 +79,46 @@ export interface paths {
|
|
|
79
79
|
patch?: never;
|
|
80
80
|
trace?: never;
|
|
81
81
|
};
|
|
82
|
+
"/audit": {
|
|
83
|
+
parameters: {
|
|
84
|
+
query?: never;
|
|
85
|
+
header?: never;
|
|
86
|
+
path?: never;
|
|
87
|
+
cookie?: never;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* List config-mutation audit entries
|
|
91
|
+
* @description One entry per POST/PATCH/PUT/DELETE on instances, agents, providers, routes, automations, API keys and settings. Reads are never recorded. Scope: `audit:read`.
|
|
92
|
+
*/
|
|
93
|
+
get: operations["listConfigAudit"];
|
|
94
|
+
put?: never;
|
|
95
|
+
post?: never;
|
|
96
|
+
delete?: never;
|
|
97
|
+
options?: never;
|
|
98
|
+
head?: never;
|
|
99
|
+
patch?: never;
|
|
100
|
+
trace?: never;
|
|
101
|
+
};
|
|
102
|
+
"/audit/{id}": {
|
|
103
|
+
parameters: {
|
|
104
|
+
query?: never;
|
|
105
|
+
header?: never;
|
|
106
|
+
path?: never;
|
|
107
|
+
cookie?: never;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Get one config-mutation audit entry
|
|
111
|
+
* @description Scope: `audit:read`.
|
|
112
|
+
*/
|
|
113
|
+
get: operations["getConfigAudit"];
|
|
114
|
+
put?: never;
|
|
115
|
+
post?: never;
|
|
116
|
+
delete?: never;
|
|
117
|
+
options?: never;
|
|
118
|
+
head?: never;
|
|
119
|
+
patch?: never;
|
|
120
|
+
trace?: never;
|
|
121
|
+
};
|
|
82
122
|
"/auth/validate": {
|
|
83
123
|
parameters: {
|
|
84
124
|
query?: never;
|
|
@@ -1114,7 +1154,7 @@ export interface paths {
|
|
|
1114
1154
|
put?: never;
|
|
1115
1155
|
/**
|
|
1116
1156
|
* Trigger custom event
|
|
1117
|
-
* @description Manually trigger a custom event.
|
|
1157
|
+
* @description Manually trigger a custom event. The effective payload ceiling is the NATS `max_payload` (1 MB by default), not OMNI_API_BODY_LIMIT_MB; larger events are rejected with 413. For large bodies, store the body elsewhere (e.g. object storage) and publish a reference to it.
|
|
1118
1158
|
*/
|
|
1119
1159
|
post: operations["triggerEvent"];
|
|
1120
1160
|
delete?: never;
|
|
@@ -1683,6 +1723,26 @@ export interface paths {
|
|
|
1683
1723
|
patch?: never;
|
|
1684
1724
|
trace?: never;
|
|
1685
1725
|
};
|
|
1726
|
+
"/channels/capabilities": {
|
|
1727
|
+
parameters: {
|
|
1728
|
+
query?: never;
|
|
1729
|
+
header?: never;
|
|
1730
|
+
path?: never;
|
|
1731
|
+
cookie?: never;
|
|
1732
|
+
};
|
|
1733
|
+
/**
|
|
1734
|
+
* Channel capability matrix
|
|
1735
|
+
* @description Event types and guarantees (edits, deletes, idempotency) each loaded channel plugin declares. Declarations are verified against the channel code by a static test.
|
|
1736
|
+
*/
|
|
1737
|
+
get: operations["listChannelCapabilities"];
|
|
1738
|
+
put?: never;
|
|
1739
|
+
post?: never;
|
|
1740
|
+
delete?: never;
|
|
1741
|
+
options?: never;
|
|
1742
|
+
head?: never;
|
|
1743
|
+
patch?: never;
|
|
1744
|
+
trace?: never;
|
|
1745
|
+
};
|
|
1686
1746
|
"/events/schemas": {
|
|
1687
1747
|
parameters: {
|
|
1688
1748
|
query?: never;
|
|
@@ -3030,6 +3090,38 @@ export interface components {
|
|
|
3030
3090
|
/** @description Optional success message */
|
|
3031
3091
|
message?: string;
|
|
3032
3092
|
};
|
|
3093
|
+
ConfigAuditLog: {
|
|
3094
|
+
/** Format: uuid */
|
|
3095
|
+
id: string;
|
|
3096
|
+
/** @description Acting API key id */
|
|
3097
|
+
apiKeyId: string | null;
|
|
3098
|
+
/** @description Acting API key name */
|
|
3099
|
+
apiKeyName: string | null;
|
|
3100
|
+
/** @description X-Omni-Actor header, e.g. cli:alice or claude-session:<id> */
|
|
3101
|
+
actor: string | null;
|
|
3102
|
+
requestId: string | null;
|
|
3103
|
+
/** @description Client IP (X-Forwarded-For / X-Real-IP / socket) */
|
|
3104
|
+
ipAddress: string | null;
|
|
3105
|
+
userAgent: string | null;
|
|
3106
|
+
method: string;
|
|
3107
|
+
path: string;
|
|
3108
|
+
statusCode: number;
|
|
3109
|
+
/** @description e.g. instance.create, instance.update, instance.connect */
|
|
3110
|
+
action: string;
|
|
3111
|
+
/** @description instance | agent | provider | route | automation | api_key | setting */
|
|
3112
|
+
targetType: string;
|
|
3113
|
+
targetId: string | null;
|
|
3114
|
+
changedFields: string[];
|
|
3115
|
+
/** @description Before/after per changed field. Secret-bearing values appear only as sha256:<prefix> fingerprints. */
|
|
3116
|
+
changes: {
|
|
3117
|
+
[key: string]: {
|
|
3118
|
+
before?: unknown;
|
|
3119
|
+
after?: unknown;
|
|
3120
|
+
};
|
|
3121
|
+
};
|
|
3122
|
+
/** Format: date-time */
|
|
3123
|
+
createdAt: string;
|
|
3124
|
+
};
|
|
3033
3125
|
AuthValidateResponse: {
|
|
3034
3126
|
data: {
|
|
3035
3127
|
/** @description Whether the API key is valid */
|
|
@@ -3217,7 +3309,7 @@ export interface components {
|
|
|
3217
3309
|
agentId?: string | null;
|
|
3218
3310
|
/**
|
|
3219
3311
|
* Format: uuid
|
|
3220
|
-
* @description Provider ID (agent
|
|
3312
|
+
* @description Provider ID of the assigned agent (read-only; set via the agent)
|
|
3221
3313
|
*/
|
|
3222
3314
|
agentProviderId?: string | null;
|
|
3223
3315
|
/** @description Agent timeout in seconds */
|
|
@@ -3921,6 +4013,10 @@ export interface components {
|
|
|
3921
4013
|
avgAgentTimeMs: number | null;
|
|
3922
4014
|
/** @description Sum of agent run cost (USD) stamped on events in range */
|
|
3923
4015
|
totalCostUsd: number;
|
|
4016
|
+
/** @description Agent run cost (USD) grouped by event type, for events with a stamped cost */
|
|
4017
|
+
costByEventType: {
|
|
4018
|
+
[key: string]: number;
|
|
4019
|
+
};
|
|
3924
4020
|
/** @description Count by content type */
|
|
3925
4021
|
messageTypes: {
|
|
3926
4022
|
[key: string]: number;
|
|
@@ -4471,6 +4567,8 @@ export interface components {
|
|
|
4471
4567
|
hasSignatureSecret: boolean;
|
|
4472
4568
|
/** @description Idempotency key derivation template */
|
|
4473
4569
|
idempotencyKeyTemplate: string;
|
|
4570
|
+
/** @description Whether custom-template idempotency keys are shared across event types (opt-in collapsing) */
|
|
4571
|
+
idempotencyAcrossEventTypes: boolean;
|
|
4474
4572
|
/** @description Redeliveries acked without creating a second event */
|
|
4475
4573
|
totalDuplicates: number;
|
|
4476
4574
|
/** @description Strict schema mode: deliveries resolving to an event type with no enabled registered schema are refused and dead-lettered with reason schema_not_registered */
|
|
@@ -4554,6 +4652,8 @@ export interface components {
|
|
|
4554
4652
|
signatureSecret?: string | null;
|
|
4555
4653
|
/** @description How the delivery-identity idempotency key is derived for this source. Placeholders: {source}, {sha256(body)}, {headers.<name>}, {payload.<dot.path>}. A delivery whose key is already journaled is acked (200, duplicate: true) without creating a second event. Defaults to "{source}:{sha256(body)}". This dedupes provider REDELIVERY, not semantic identity. */
|
|
4556
4654
|
idempotencyKeyTemplate?: string;
|
|
4655
|
+
/** @description By default a custom idempotency key is prefixed with the resolved event type, so different event types for the same entity never collide. Set true to collapse keys across event types (a second type for the same rendered key is acked as a duplicate). Defaults to false. */
|
|
4656
|
+
idempotencyAcrossEventTypes?: boolean;
|
|
4557
4657
|
/** @description Strict schema mode (RFC #925 G1 policy switch): when true, a delivery resolving to an event type with no enabled registered schema is refused and dead-lettered with reason schema_not_registered (manual retry only) instead of passing through. Defaults to false (opt-in pass-through). Recommended true for NEW sources — they have no legacy emitters to grandfather. */
|
|
4558
4658
|
strictSchemas?: boolean;
|
|
4559
4659
|
/** @description Semantic event-type extraction (e.g. header X-GitHub-Event: push emits custom.{source}.push). Null or absent keeps the legacy collapsed custom.webhook.{source} type for every delivery. */
|
|
@@ -4574,6 +4674,17 @@ export interface components {
|
|
|
4574
4674
|
/** @description Dot-path to the event name in the payload (e.g. "event"); numeric segments index arrays. 1-200 characters */
|
|
4575
4675
|
path: string;
|
|
4576
4676
|
} | unknown;
|
|
4677
|
+
/** @description Supervised pull connector (#1186): run `command` (must live inside OMNI_POLL_COMMAND_DIR) every intervalSeconds; each JSON stdout line becomes an emitType event deduped by dedupKeyTemplate. Null makes the source push-only again. */
|
|
4678
|
+
pollConfig?: {
|
|
4679
|
+
command: string;
|
|
4680
|
+
intervalSeconds: number;
|
|
4681
|
+
emitType: string;
|
|
4682
|
+
/** @default {source}:{sha256(body)} */
|
|
4683
|
+
dedupKeyTemplate: string;
|
|
4684
|
+
env?: {
|
|
4685
|
+
[key: string]: string;
|
|
4686
|
+
};
|
|
4687
|
+
} | null;
|
|
4577
4688
|
/**
|
|
4578
4689
|
* @description Whether enabled
|
|
4579
4690
|
* @default true
|
|
@@ -5591,6 +5702,20 @@ export interface components {
|
|
|
5591
5702
|
deleted: number;
|
|
5592
5703
|
};
|
|
5593
5704
|
};
|
|
5705
|
+
ChannelCapabilities: {
|
|
5706
|
+
/** @description Channel type (e.g. whatsapp-baileys) */
|
|
5707
|
+
id: string;
|
|
5708
|
+
/** @description Human-readable channel name */
|
|
5709
|
+
name: string;
|
|
5710
|
+
/** @description Core event types the channel publishes; null when the plugin declares none */
|
|
5711
|
+
emits: string[] | null;
|
|
5712
|
+
/** @description true/false as established from the channel's code; 'unknown' when undeclared */
|
|
5713
|
+
edits: boolean | "unknown";
|
|
5714
|
+
/** @description true/false as established from the channel's code; 'unknown' when undeclared */
|
|
5715
|
+
deletes: boolean | "unknown";
|
|
5716
|
+
/** @description true/false as established from the channel's code; 'unknown' when undeclared */
|
|
5717
|
+
idempotency: boolean | "unknown";
|
|
5718
|
+
};
|
|
5594
5719
|
EventSchema: {
|
|
5595
5720
|
/**
|
|
5596
5721
|
* Format: uuid
|
|
@@ -5674,6 +5799,8 @@ export interface components {
|
|
|
5674
5799
|
}[] | null;
|
|
5675
5800
|
/** @description Last acked journal_seq; delivery resumes strictly after it */
|
|
5676
5801
|
cursor: number;
|
|
5802
|
+
/** @description true = competing consumers (pullers on this name split the stream); false = own cursor (fan-out) */
|
|
5803
|
+
shared: boolean;
|
|
5677
5804
|
/** @description Highest journal_seq currently in the journal */
|
|
5678
5805
|
head: number;
|
|
5679
5806
|
/** @description head - cursor (all journal rows past the cursor, not only matches) */
|
|
@@ -5715,6 +5842,8 @@ export interface components {
|
|
|
5715
5842
|
* @enum {string}
|
|
5716
5843
|
*/
|
|
5717
5844
|
startFrom?: "now" | "beginning";
|
|
5845
|
+
/** @description Competing consumers (#1188). false (default) = fan-out: every consumer name has its own cursor and sees every event. true = N pullers on THIS name split the stream: each pull leases a page to one puller, ack(leaseId) releases it, an unacked lease is redelivered after leaseMs (at-least-once). */
|
|
5846
|
+
shared?: boolean;
|
|
5718
5847
|
};
|
|
5719
5848
|
ConsumerPullResult: {
|
|
5720
5849
|
/** @description Consumer name */
|
|
@@ -5731,6 +5860,8 @@ export interface components {
|
|
|
5731
5860
|
hasMore: boolean;
|
|
5732
5861
|
/** @description A full scan window matched nothing; the stored cursor was advanced past it (#1128) */
|
|
5733
5862
|
scanExhausted: boolean;
|
|
5863
|
+
/** @description Shared consumers only: ack this lease once the items are handled (absent when nothing delivered) */
|
|
5864
|
+
leaseId?: string;
|
|
5734
5865
|
};
|
|
5735
5866
|
Automation: {
|
|
5736
5867
|
/**
|
|
@@ -5834,6 +5965,8 @@ export interface components {
|
|
|
5834
5965
|
timeoutMs?: number;
|
|
5835
5966
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
5836
5967
|
responseAs?: string;
|
|
5968
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
5969
|
+
waitForResponse?: boolean;
|
|
5837
5970
|
};
|
|
5838
5971
|
})[];
|
|
5839
5972
|
/** @description Debounce config */
|
|
@@ -5855,6 +5988,8 @@ export interface components {
|
|
|
5855
5988
|
priority: number;
|
|
5856
5989
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
5857
5990
|
transactionalEmissions: boolean;
|
|
5991
|
+
/** @description Loop guard opt-in (#1148): act on events sent by one of the tenant’s own instances */
|
|
5992
|
+
allowInstanceSenders: boolean;
|
|
5858
5993
|
/** @description Per-automation concurrency limit (#1108). null = queued per instance with the engine default; set = a queue private to this automation, 1 being strict single-flight */
|
|
5859
5994
|
maxConcurrency: number | null;
|
|
5860
5995
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; null = one queue for the whole automation */
|
|
@@ -5973,6 +6108,8 @@ export interface components {
|
|
|
5973
6108
|
timeoutMs?: number;
|
|
5974
6109
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
5975
6110
|
responseAs?: string;
|
|
6111
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
6112
|
+
waitForResponse?: boolean;
|
|
5976
6113
|
};
|
|
5977
6114
|
})[];
|
|
5978
6115
|
/** @description Debounce config */
|
|
@@ -6003,6 +6140,11 @@ export interface components {
|
|
|
6003
6140
|
* @default false
|
|
6004
6141
|
*/
|
|
6005
6142
|
transactionalEmissions: boolean;
|
|
6143
|
+
/**
|
|
6144
|
+
* @description Loop guard opt-in (#1148): by default events sent by one of the tenant’s own instances (payload.senderInstanceId) are skipped. True = act on them anyway
|
|
6145
|
+
* @default false
|
|
6146
|
+
*/
|
|
6147
|
+
allowInstanceSenders: boolean;
|
|
6006
6148
|
/** @description Per-automation concurrency limit (#1108). Omit/null = today’s per-instance queueing with the engine default; 1 = strict single-flight, which is what a read-before-write action needs */
|
|
6007
6149
|
maxConcurrency?: number | null;
|
|
6008
6150
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; omit/null = one queue for the whole automation */
|
|
@@ -6254,6 +6396,12 @@ export interface components {
|
|
|
6254
6396
|
latencies: {
|
|
6255
6397
|
/** @description T1 - T0 (ms) */
|
|
6256
6398
|
channelProcessing?: number;
|
|
6399
|
+
/** @description T0a - T0 (ms) */
|
|
6400
|
+
platformDelivery?: number;
|
|
6401
|
+
/** @description T0b - T0a (ms) */
|
|
6402
|
+
mediaDownload?: number;
|
|
6403
|
+
/** @description T1 - T0b (ms) */
|
|
6404
|
+
inboundEnrichment?: number;
|
|
6257
6405
|
/** @description T2 - T1 (ms) */
|
|
6258
6406
|
eventPublish?: number;
|
|
6259
6407
|
/** @description T3 - T2 (ms) */
|
|
@@ -6289,6 +6437,11 @@ export interface components {
|
|
|
6289
6437
|
completedJourneys: number;
|
|
6290
6438
|
/** @description Currently active journeys */
|
|
6291
6439
|
activeJourneys: number;
|
|
6440
|
+
/** @description Completed journeys by terminal path: no agent (T4) vs agent dispatch (T5) */
|
|
6441
|
+
completedByPath: {
|
|
6442
|
+
noAgent: number;
|
|
6443
|
+
agent: number;
|
|
6444
|
+
};
|
|
6292
6445
|
/** @description Percentile stats per latency stage */
|
|
6293
6446
|
stages: {
|
|
6294
6447
|
[key: string]: {
|
|
@@ -7714,6 +7867,167 @@ export interface operations {
|
|
|
7714
7867
|
};
|
|
7715
7868
|
};
|
|
7716
7869
|
};
|
|
7870
|
+
listConfigAudit: {
|
|
7871
|
+
parameters: {
|
|
7872
|
+
query?: {
|
|
7873
|
+
targetType?: string;
|
|
7874
|
+
target?: string;
|
|
7875
|
+
actor?: string;
|
|
7876
|
+
since?: string;
|
|
7877
|
+
limit?: number;
|
|
7878
|
+
cursor?: string;
|
|
7879
|
+
};
|
|
7880
|
+
header?: never;
|
|
7881
|
+
path?: never;
|
|
7882
|
+
cookie?: never;
|
|
7883
|
+
};
|
|
7884
|
+
requestBody?: never;
|
|
7885
|
+
responses: {
|
|
7886
|
+
/** @description Audit entries, newest first */
|
|
7887
|
+
200: {
|
|
7888
|
+
headers: {
|
|
7889
|
+
[name: string]: unknown;
|
|
7890
|
+
};
|
|
7891
|
+
content: {
|
|
7892
|
+
"application/json": {
|
|
7893
|
+
items: {
|
|
7894
|
+
/** Format: uuid */
|
|
7895
|
+
id: string;
|
|
7896
|
+
/** @description Acting API key id */
|
|
7897
|
+
apiKeyId: string | null;
|
|
7898
|
+
/** @description Acting API key name */
|
|
7899
|
+
apiKeyName: string | null;
|
|
7900
|
+
/** @description X-Omni-Actor header, e.g. cli:alice or claude-session:<id> */
|
|
7901
|
+
actor: string | null;
|
|
7902
|
+
requestId: string | null;
|
|
7903
|
+
/** @description Client IP (X-Forwarded-For / X-Real-IP / socket) */
|
|
7904
|
+
ipAddress: string | null;
|
|
7905
|
+
userAgent: string | null;
|
|
7906
|
+
method: string;
|
|
7907
|
+
path: string;
|
|
7908
|
+
statusCode: number;
|
|
7909
|
+
/** @description e.g. instance.create, instance.update, instance.connect */
|
|
7910
|
+
action: string;
|
|
7911
|
+
/** @description instance | agent | provider | route | automation | api_key | setting */
|
|
7912
|
+
targetType: string;
|
|
7913
|
+
targetId: string | null;
|
|
7914
|
+
changedFields: string[];
|
|
7915
|
+
/** @description Before/after per changed field. Secret-bearing values appear only as sha256:<prefix> fingerprints. */
|
|
7916
|
+
changes: {
|
|
7917
|
+
[key: string]: {
|
|
7918
|
+
before?: unknown;
|
|
7919
|
+
after?: unknown;
|
|
7920
|
+
};
|
|
7921
|
+
};
|
|
7922
|
+
/** Format: date-time */
|
|
7923
|
+
createdAt: string;
|
|
7924
|
+
}[];
|
|
7925
|
+
meta: {
|
|
7926
|
+
hasMore: boolean;
|
|
7927
|
+
cursor: string | null;
|
|
7928
|
+
};
|
|
7929
|
+
};
|
|
7930
|
+
};
|
|
7931
|
+
};
|
|
7932
|
+
/** @description Invalid query */
|
|
7933
|
+
400: {
|
|
7934
|
+
headers: {
|
|
7935
|
+
[name: string]: unknown;
|
|
7936
|
+
};
|
|
7937
|
+
content: {
|
|
7938
|
+
"application/json": {
|
|
7939
|
+
error: {
|
|
7940
|
+
/**
|
|
7941
|
+
* @description Error code
|
|
7942
|
+
* @example NOT_FOUND
|
|
7943
|
+
*/
|
|
7944
|
+
code: string;
|
|
7945
|
+
/** @description Human-readable error message */
|
|
7946
|
+
message: string;
|
|
7947
|
+
/** @description Additional error details */
|
|
7948
|
+
details?: unknown;
|
|
7949
|
+
};
|
|
7950
|
+
};
|
|
7951
|
+
};
|
|
7952
|
+
};
|
|
7953
|
+
};
|
|
7954
|
+
};
|
|
7955
|
+
getConfigAudit: {
|
|
7956
|
+
parameters: {
|
|
7957
|
+
query?: never;
|
|
7958
|
+
header?: never;
|
|
7959
|
+
path: {
|
|
7960
|
+
id: string;
|
|
7961
|
+
};
|
|
7962
|
+
cookie?: never;
|
|
7963
|
+
};
|
|
7964
|
+
requestBody?: never;
|
|
7965
|
+
responses: {
|
|
7966
|
+
/** @description Audit entry */
|
|
7967
|
+
200: {
|
|
7968
|
+
headers: {
|
|
7969
|
+
[name: string]: unknown;
|
|
7970
|
+
};
|
|
7971
|
+
content: {
|
|
7972
|
+
"application/json": {
|
|
7973
|
+
data: {
|
|
7974
|
+
/** Format: uuid */
|
|
7975
|
+
id: string;
|
|
7976
|
+
/** @description Acting API key id */
|
|
7977
|
+
apiKeyId: string | null;
|
|
7978
|
+
/** @description Acting API key name */
|
|
7979
|
+
apiKeyName: string | null;
|
|
7980
|
+
/** @description X-Omni-Actor header, e.g. cli:alice or claude-session:<id> */
|
|
7981
|
+
actor: string | null;
|
|
7982
|
+
requestId: string | null;
|
|
7983
|
+
/** @description Client IP (X-Forwarded-For / X-Real-IP / socket) */
|
|
7984
|
+
ipAddress: string | null;
|
|
7985
|
+
userAgent: string | null;
|
|
7986
|
+
method: string;
|
|
7987
|
+
path: string;
|
|
7988
|
+
statusCode: number;
|
|
7989
|
+
/** @description e.g. instance.create, instance.update, instance.connect */
|
|
7990
|
+
action: string;
|
|
7991
|
+
/** @description instance | agent | provider | route | automation | api_key | setting */
|
|
7992
|
+
targetType: string;
|
|
7993
|
+
targetId: string | null;
|
|
7994
|
+
changedFields: string[];
|
|
7995
|
+
/** @description Before/after per changed field. Secret-bearing values appear only as sha256:<prefix> fingerprints. */
|
|
7996
|
+
changes: {
|
|
7997
|
+
[key: string]: {
|
|
7998
|
+
before?: unknown;
|
|
7999
|
+
after?: unknown;
|
|
8000
|
+
};
|
|
8001
|
+
};
|
|
8002
|
+
/** Format: date-time */
|
|
8003
|
+
createdAt: string;
|
|
8004
|
+
};
|
|
8005
|
+
};
|
|
8006
|
+
};
|
|
8007
|
+
};
|
|
8008
|
+
/** @description Not found */
|
|
8009
|
+
404: {
|
|
8010
|
+
headers: {
|
|
8011
|
+
[name: string]: unknown;
|
|
8012
|
+
};
|
|
8013
|
+
content: {
|
|
8014
|
+
"application/json": {
|
|
8015
|
+
error: {
|
|
8016
|
+
/**
|
|
8017
|
+
* @description Error code
|
|
8018
|
+
* @example NOT_FOUND
|
|
8019
|
+
*/
|
|
8020
|
+
code: string;
|
|
8021
|
+
/** @description Human-readable error message */
|
|
8022
|
+
message: string;
|
|
8023
|
+
/** @description Additional error details */
|
|
8024
|
+
details?: unknown;
|
|
8025
|
+
};
|
|
8026
|
+
};
|
|
8027
|
+
};
|
|
8028
|
+
};
|
|
8029
|
+
};
|
|
8030
|
+
};
|
|
7717
8031
|
validateApiKey: {
|
|
7718
8032
|
parameters: {
|
|
7719
8033
|
query?: never;
|
|
@@ -8053,7 +8367,7 @@ export interface operations {
|
|
|
8053
8367
|
agentId?: string | null;
|
|
8054
8368
|
/**
|
|
8055
8369
|
* Format: uuid
|
|
8056
|
-
* @description Provider ID (agent
|
|
8370
|
+
* @description Provider ID of the assigned agent (read-only; set via the agent)
|
|
8057
8371
|
*/
|
|
8058
8372
|
agentProviderId?: string | null;
|
|
8059
8373
|
/** @description Agent timeout in seconds */
|
|
@@ -8247,7 +8561,7 @@ export interface operations {
|
|
|
8247
8561
|
agentId?: string | null;
|
|
8248
8562
|
/**
|
|
8249
8563
|
* Format: uuid
|
|
8250
|
-
* @description Provider ID (agent
|
|
8564
|
+
* @description Provider ID of the assigned agent (read-only; set via the agent)
|
|
8251
8565
|
*/
|
|
8252
8566
|
agentProviderId?: string | null;
|
|
8253
8567
|
/** @description Agent timeout in seconds */
|
|
@@ -8381,7 +8695,7 @@ export interface operations {
|
|
|
8381
8695
|
agentId?: string | null;
|
|
8382
8696
|
/**
|
|
8383
8697
|
* Format: uuid
|
|
8384
|
-
* @description Provider ID (agent
|
|
8698
|
+
* @description Provider ID of the assigned agent (read-only; set via the agent)
|
|
8385
8699
|
*/
|
|
8386
8700
|
agentProviderId?: string | null;
|
|
8387
8701
|
/** @description Agent timeout in seconds */
|
|
@@ -8640,7 +8954,7 @@ export interface operations {
|
|
|
8640
8954
|
agentId?: string | null;
|
|
8641
8955
|
/**
|
|
8642
8956
|
* Format: uuid
|
|
8643
|
-
* @description Provider ID (agent
|
|
8957
|
+
* @description Provider ID of the assigned agent (read-only; set via the agent)
|
|
8644
8958
|
*/
|
|
8645
8959
|
agentProviderId?: string | null;
|
|
8646
8960
|
/** @description Agent timeout in seconds */
|
|
@@ -10954,6 +11268,10 @@ export interface operations {
|
|
|
10954
11268
|
avgAgentTimeMs: number | null;
|
|
10955
11269
|
/** @description Sum of agent run cost (USD) stamped on events in range */
|
|
10956
11270
|
totalCostUsd: number;
|
|
11271
|
+
/** @description Agent run cost (USD) grouped by event type, for events with a stamped cost */
|
|
11272
|
+
costByEventType: {
|
|
11273
|
+
[key: string]: number;
|
|
11274
|
+
};
|
|
10957
11275
|
/** @description Count by content type */
|
|
10958
11276
|
messageTypes: {
|
|
10959
11277
|
[key: string]: number;
|
|
@@ -12355,6 +12673,8 @@ export interface operations {
|
|
|
12355
12673
|
hasSignatureSecret: boolean;
|
|
12356
12674
|
/** @description Idempotency key derivation template */
|
|
12357
12675
|
idempotencyKeyTemplate: string;
|
|
12676
|
+
/** @description Whether custom-template idempotency keys are shared across event types (opt-in collapsing) */
|
|
12677
|
+
idempotencyAcrossEventTypes: boolean;
|
|
12358
12678
|
/** @description Redeliveries acked without creating a second event */
|
|
12359
12679
|
totalDuplicates: number;
|
|
12360
12680
|
/** @description Strict schema mode: deliveries resolving to an event type with no enabled registered schema are refused and dead-lettered with reason schema_not_registered */
|
|
@@ -12452,6 +12772,8 @@ export interface operations {
|
|
|
12452
12772
|
signatureSecret?: string | null;
|
|
12453
12773
|
/** @description How the delivery-identity idempotency key is derived for this source. Placeholders: {source}, {sha256(body)}, {headers.<name>}, {payload.<dot.path>}. A delivery whose key is already journaled is acked (200, duplicate: true) without creating a second event. Defaults to "{source}:{sha256(body)}". This dedupes provider REDELIVERY, not semantic identity. */
|
|
12454
12774
|
idempotencyKeyTemplate?: string;
|
|
12775
|
+
/** @description By default a custom idempotency key is prefixed with the resolved event type, so different event types for the same entity never collide. Set true to collapse keys across event types (a second type for the same rendered key is acked as a duplicate). Defaults to false. */
|
|
12776
|
+
idempotencyAcrossEventTypes?: boolean;
|
|
12455
12777
|
/** @description Strict schema mode (RFC #925 G1 policy switch): when true, a delivery resolving to an event type with no enabled registered schema is refused and dead-lettered with reason schema_not_registered (manual retry only) instead of passing through. Defaults to false (opt-in pass-through). Recommended true for NEW sources — they have no legacy emitters to grandfather. */
|
|
12456
12778
|
strictSchemas?: boolean;
|
|
12457
12779
|
/** @description Semantic event-type extraction (e.g. header X-GitHub-Event: push emits custom.{source}.push). Null or absent keeps the legacy collapsed custom.webhook.{source} type for every delivery. */
|
|
@@ -12472,6 +12794,17 @@ export interface operations {
|
|
|
12472
12794
|
/** @description Dot-path to the event name in the payload (e.g. "event"); numeric segments index arrays. 1-200 characters */
|
|
12473
12795
|
path: string;
|
|
12474
12796
|
} | unknown;
|
|
12797
|
+
/** @description Supervised pull connector (#1186): run `command` (must live inside OMNI_POLL_COMMAND_DIR) every intervalSeconds; each JSON stdout line becomes an emitType event deduped by dedupKeyTemplate. Null makes the source push-only again. */
|
|
12798
|
+
pollConfig?: {
|
|
12799
|
+
command: string;
|
|
12800
|
+
intervalSeconds: number;
|
|
12801
|
+
emitType: string;
|
|
12802
|
+
/** @default {source}:{sha256(body)} */
|
|
12803
|
+
dedupKeyTemplate?: string;
|
|
12804
|
+
env?: {
|
|
12805
|
+
[key: string]: string;
|
|
12806
|
+
};
|
|
12807
|
+
} | null;
|
|
12475
12808
|
/**
|
|
12476
12809
|
* @description Whether enabled
|
|
12477
12810
|
* @default true
|
|
@@ -12548,6 +12881,8 @@ export interface operations {
|
|
|
12548
12881
|
hasSignatureSecret: boolean;
|
|
12549
12882
|
/** @description Idempotency key derivation template */
|
|
12550
12883
|
idempotencyKeyTemplate: string;
|
|
12884
|
+
/** @description Whether custom-template idempotency keys are shared across event types (opt-in collapsing) */
|
|
12885
|
+
idempotencyAcrossEventTypes: boolean;
|
|
12551
12886
|
/** @description Redeliveries acked without creating a second event */
|
|
12552
12887
|
totalDuplicates: number;
|
|
12553
12888
|
/** @description Strict schema mode: deliveries resolving to an event type with no enabled registered schema are refused and dead-lettered with reason schema_not_registered */
|
|
@@ -12698,6 +13033,8 @@ export interface operations {
|
|
|
12698
13033
|
hasSignatureSecret: boolean;
|
|
12699
13034
|
/** @description Idempotency key derivation template */
|
|
12700
13035
|
idempotencyKeyTemplate: string;
|
|
13036
|
+
/** @description Whether custom-template idempotency keys are shared across event types (opt-in collapsing) */
|
|
13037
|
+
idempotencyAcrossEventTypes: boolean;
|
|
12701
13038
|
/** @description Redeliveries acked without creating a second event */
|
|
12702
13039
|
totalDuplicates: number;
|
|
12703
13040
|
/** @description Strict schema mode: deliveries resolving to an event type with no enabled registered schema are refused and dead-lettered with reason schema_not_registered */
|
|
@@ -12866,6 +13203,8 @@ export interface operations {
|
|
|
12866
13203
|
signatureSecret?: string | null;
|
|
12867
13204
|
/** @description How the delivery-identity idempotency key is derived for this source. Placeholders: {source}, {sha256(body)}, {headers.<name>}, {payload.<dot.path>}. A delivery whose key is already journaled is acked (200, duplicate: true) without creating a second event. Defaults to "{source}:{sha256(body)}". This dedupes provider REDELIVERY, not semantic identity. */
|
|
12868
13205
|
idempotencyKeyTemplate?: string;
|
|
13206
|
+
/** @description By default a custom idempotency key is prefixed with the resolved event type, so different event types for the same entity never collide. Set true to collapse keys across event types (a second type for the same rendered key is acked as a duplicate). Defaults to false. */
|
|
13207
|
+
idempotencyAcrossEventTypes?: boolean;
|
|
12869
13208
|
/** @description Strict schema mode (RFC #925 G1 policy switch): when true, a delivery resolving to an event type with no enabled registered schema is refused and dead-lettered with reason schema_not_registered (manual retry only) instead of passing through. Defaults to false (opt-in pass-through). Recommended true for NEW sources — they have no legacy emitters to grandfather. */
|
|
12870
13209
|
strictSchemas?: boolean;
|
|
12871
13210
|
/** @description Semantic event-type extraction (e.g. header X-GitHub-Event: push emits custom.{source}.push). Null or absent keeps the legacy collapsed custom.webhook.{source} type for every delivery. */
|
|
@@ -12886,6 +13225,17 @@ export interface operations {
|
|
|
12886
13225
|
/** @description Dot-path to the event name in the payload (e.g. "event"); numeric segments index arrays. 1-200 characters */
|
|
12887
13226
|
path: string;
|
|
12888
13227
|
} | unknown;
|
|
13228
|
+
/** @description Supervised pull connector (#1186): run `command` (must live inside OMNI_POLL_COMMAND_DIR) every intervalSeconds; each JSON stdout line becomes an emitType event deduped by dedupKeyTemplate. Null makes the source push-only again. */
|
|
13229
|
+
pollConfig?: {
|
|
13230
|
+
command: string;
|
|
13231
|
+
intervalSeconds: number;
|
|
13232
|
+
emitType: string;
|
|
13233
|
+
/** @default {source}:{sha256(body)} */
|
|
13234
|
+
dedupKeyTemplate?: string;
|
|
13235
|
+
env?: {
|
|
13236
|
+
[key: string]: string;
|
|
13237
|
+
};
|
|
13238
|
+
} | null;
|
|
12889
13239
|
/**
|
|
12890
13240
|
* @description Whether enabled
|
|
12891
13241
|
* @default true
|
|
@@ -12962,6 +13312,8 @@ export interface operations {
|
|
|
12962
13312
|
hasSignatureSecret: boolean;
|
|
12963
13313
|
/** @description Idempotency key derivation template */
|
|
12964
13314
|
idempotencyKeyTemplate: string;
|
|
13315
|
+
/** @description Whether custom-template idempotency keys are shared across event types (opt-in collapsing) */
|
|
13316
|
+
idempotencyAcrossEventTypes: boolean;
|
|
12965
13317
|
/** @description Redeliveries acked without creating a second event */
|
|
12966
13318
|
totalDuplicates: number;
|
|
12967
13319
|
/** @description Strict schema mode: deliveries resolving to an event type with no enabled registered schema are refused and dead-lettered with reason schema_not_registered */
|
|
@@ -13349,6 +13701,27 @@ export interface operations {
|
|
|
13349
13701
|
};
|
|
13350
13702
|
};
|
|
13351
13703
|
};
|
|
13704
|
+
/** @description Event payload exceeds NATS max_payload */
|
|
13705
|
+
413: {
|
|
13706
|
+
headers: {
|
|
13707
|
+
[name: string]: unknown;
|
|
13708
|
+
};
|
|
13709
|
+
content: {
|
|
13710
|
+
"application/json": {
|
|
13711
|
+
error: {
|
|
13712
|
+
/**
|
|
13713
|
+
* @description Error code
|
|
13714
|
+
* @example NOT_FOUND
|
|
13715
|
+
*/
|
|
13716
|
+
code: string;
|
|
13717
|
+
/** @description Human-readable error message */
|
|
13718
|
+
message: string;
|
|
13719
|
+
/** @description Additional error details */
|
|
13720
|
+
details?: unknown;
|
|
13721
|
+
};
|
|
13722
|
+
};
|
|
13723
|
+
};
|
|
13724
|
+
};
|
|
13352
13725
|
};
|
|
13353
13726
|
};
|
|
13354
13727
|
listAccessRules: {
|
|
@@ -17078,6 +17451,41 @@ export interface operations {
|
|
|
17078
17451
|
};
|
|
17079
17452
|
};
|
|
17080
17453
|
};
|
|
17454
|
+
listChannelCapabilities: {
|
|
17455
|
+
parameters: {
|
|
17456
|
+
query?: never;
|
|
17457
|
+
header?: never;
|
|
17458
|
+
path?: never;
|
|
17459
|
+
cookie?: never;
|
|
17460
|
+
};
|
|
17461
|
+
requestBody?: never;
|
|
17462
|
+
responses: {
|
|
17463
|
+
/** @description Capability matrix */
|
|
17464
|
+
200: {
|
|
17465
|
+
headers: {
|
|
17466
|
+
[name: string]: unknown;
|
|
17467
|
+
};
|
|
17468
|
+
content: {
|
|
17469
|
+
"application/json": {
|
|
17470
|
+
items: {
|
|
17471
|
+
/** @description Channel type (e.g. whatsapp-baileys) */
|
|
17472
|
+
id: string;
|
|
17473
|
+
/** @description Human-readable channel name */
|
|
17474
|
+
name: string;
|
|
17475
|
+
/** @description Core event types the channel publishes; null when the plugin declares none */
|
|
17476
|
+
emits: string[] | null;
|
|
17477
|
+
/** @description true/false as established from the channel's code; 'unknown' when undeclared */
|
|
17478
|
+
edits: boolean | "unknown";
|
|
17479
|
+
/** @description true/false as established from the channel's code; 'unknown' when undeclared */
|
|
17480
|
+
deletes: boolean | "unknown";
|
|
17481
|
+
/** @description true/false as established from the channel's code; 'unknown' when undeclared */
|
|
17482
|
+
idempotency: boolean | "unknown";
|
|
17483
|
+
}[];
|
|
17484
|
+
};
|
|
17485
|
+
};
|
|
17486
|
+
};
|
|
17487
|
+
};
|
|
17488
|
+
};
|
|
17081
17489
|
listEventSchemas: {
|
|
17082
17490
|
parameters: {
|
|
17083
17491
|
query?: {
|
|
@@ -17415,6 +17823,8 @@ export interface operations {
|
|
|
17415
17823
|
}[] | null;
|
|
17416
17824
|
/** @description Last acked journal_seq; delivery resumes strictly after it */
|
|
17417
17825
|
cursor: number;
|
|
17826
|
+
/** @description true = competing consumers (pullers on this name split the stream); false = own cursor (fan-out) */
|
|
17827
|
+
shared: boolean;
|
|
17418
17828
|
/** @description Highest journal_seq currently in the journal */
|
|
17419
17829
|
head: number;
|
|
17420
17830
|
/** @description head - cursor (all journal rows past the cursor, not only matches) */
|
|
@@ -17470,6 +17880,8 @@ export interface operations {
|
|
|
17470
17880
|
* @enum {string}
|
|
17471
17881
|
*/
|
|
17472
17882
|
startFrom?: "now" | "beginning";
|
|
17883
|
+
/** @description Competing consumers (#1188). false (default) = fan-out: every consumer name has its own cursor and sees every event. true = N pullers on THIS name split the stream: each pull leases a page to one puller, ack(leaseId) releases it, an unacked lease is redelivered after leaseMs (at-least-once). */
|
|
17884
|
+
shared?: boolean;
|
|
17473
17885
|
};
|
|
17474
17886
|
};
|
|
17475
17887
|
};
|
|
@@ -17507,6 +17919,8 @@ export interface operations {
|
|
|
17507
17919
|
}[] | null;
|
|
17508
17920
|
/** @description Last acked journal_seq; delivery resumes strictly after it */
|
|
17509
17921
|
cursor: number;
|
|
17922
|
+
/** @description true = competing consumers (pullers on this name split the stream); false = own cursor (fan-out) */
|
|
17923
|
+
shared: boolean;
|
|
17510
17924
|
/** @description Highest journal_seq currently in the journal */
|
|
17511
17925
|
head: number;
|
|
17512
17926
|
/** @description head - cursor (all journal rows past the cursor, not only matches) */
|
|
@@ -17594,6 +18008,8 @@ export interface operations {
|
|
|
17594
18008
|
}[] | null;
|
|
17595
18009
|
/** @description Last acked journal_seq; delivery resumes strictly after it */
|
|
17596
18010
|
cursor: number;
|
|
18011
|
+
/** @description true = competing consumers (pullers on this name split the stream); false = own cursor (fan-out) */
|
|
18012
|
+
shared: boolean;
|
|
17597
18013
|
/** @description Highest journal_seq currently in the journal */
|
|
17598
18014
|
head: number;
|
|
17599
18015
|
/** @description head - cursor (all journal rows past the cursor, not only matches) */
|
|
@@ -17687,6 +18103,7 @@ export interface operations {
|
|
|
17687
18103
|
query?: {
|
|
17688
18104
|
limit?: number;
|
|
17689
18105
|
waitMs?: number | null;
|
|
18106
|
+
leaseMs?: number;
|
|
17690
18107
|
};
|
|
17691
18108
|
header?: never;
|
|
17692
18109
|
path: {
|
|
@@ -17717,6 +18134,8 @@ export interface operations {
|
|
|
17717
18134
|
hasMore: boolean;
|
|
17718
18135
|
/** @description A full scan window matched nothing; the stored cursor was advanced past it (#1128) */
|
|
17719
18136
|
scanExhausted: boolean;
|
|
18137
|
+
/** @description Shared consumers only: ack this lease once the items are handled (absent when nothing delivered) */
|
|
18138
|
+
leaseId?: string;
|
|
17720
18139
|
};
|
|
17721
18140
|
};
|
|
17722
18141
|
};
|
|
@@ -17756,7 +18175,12 @@ export interface operations {
|
|
|
17756
18175
|
content: {
|
|
17757
18176
|
"application/json": {
|
|
17758
18177
|
/** @description The journal_seq to advance to (a pull result's "cursor"). Monotonic: equal = no-op, lower = 400 */
|
|
17759
|
-
cursor
|
|
18178
|
+
cursor?: number | null;
|
|
18179
|
+
/**
|
|
18180
|
+
* Format: uuid
|
|
18181
|
+
* @description Shared consumers: the pull result's leaseId (required instead of cursor)
|
|
18182
|
+
*/
|
|
18183
|
+
leaseId?: string;
|
|
17760
18184
|
};
|
|
17761
18185
|
};
|
|
17762
18186
|
};
|
|
@@ -17794,6 +18218,8 @@ export interface operations {
|
|
|
17794
18218
|
}[] | null;
|
|
17795
18219
|
/** @description Last acked journal_seq; delivery resumes strictly after it */
|
|
17796
18220
|
cursor: number;
|
|
18221
|
+
/** @description true = competing consumers (pullers on this name split the stream); false = own cursor (fan-out) */
|
|
18222
|
+
shared: boolean;
|
|
17797
18223
|
/** @description Highest journal_seq currently in the journal */
|
|
17798
18224
|
head: number;
|
|
17799
18225
|
/** @description head - cursor (all journal rows past the cursor, not only matches) */
|
|
@@ -18009,6 +18435,8 @@ export interface operations {
|
|
|
18009
18435
|
timeoutMs?: number;
|
|
18010
18436
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
18011
18437
|
responseAs?: string;
|
|
18438
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
18439
|
+
waitForResponse?: boolean;
|
|
18012
18440
|
};
|
|
18013
18441
|
})[];
|
|
18014
18442
|
/** @description Debounce config */
|
|
@@ -18030,6 +18458,8 @@ export interface operations {
|
|
|
18030
18458
|
priority: number;
|
|
18031
18459
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
18032
18460
|
transactionalEmissions: boolean;
|
|
18461
|
+
/** @description Loop guard opt-in (#1148): act on events sent by one of the tenant’s own instances */
|
|
18462
|
+
allowInstanceSenders: boolean;
|
|
18033
18463
|
/** @description Per-automation concurrency limit (#1108). null = queued per instance with the engine default; set = a queue private to this automation, 1 being strict single-flight */
|
|
18034
18464
|
maxConcurrency: number | null;
|
|
18035
18465
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; null = one queue for the whole automation */
|
|
@@ -18162,6 +18592,8 @@ export interface operations {
|
|
|
18162
18592
|
timeoutMs?: number;
|
|
18163
18593
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
18164
18594
|
responseAs?: string;
|
|
18595
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
18596
|
+
waitForResponse?: boolean;
|
|
18165
18597
|
};
|
|
18166
18598
|
})[];
|
|
18167
18599
|
/** @description Debounce config */
|
|
@@ -18192,6 +18624,11 @@ export interface operations {
|
|
|
18192
18624
|
* @default false
|
|
18193
18625
|
*/
|
|
18194
18626
|
transactionalEmissions?: boolean;
|
|
18627
|
+
/**
|
|
18628
|
+
* @description Loop guard opt-in (#1148): by default events sent by one of the tenant’s own instances (payload.senderInstanceId) are skipped. True = act on them anyway
|
|
18629
|
+
* @default false
|
|
18630
|
+
*/
|
|
18631
|
+
allowInstanceSenders?: boolean;
|
|
18195
18632
|
/** @description Per-automation concurrency limit (#1108). Omit/null = today’s per-instance queueing with the engine default; 1 = strict single-flight, which is what a read-before-write action needs */
|
|
18196
18633
|
maxConcurrency?: number | null;
|
|
18197
18634
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; omit/null = one queue for the whole automation */
|
|
@@ -18309,6 +18746,8 @@ export interface operations {
|
|
|
18309
18746
|
timeoutMs?: number;
|
|
18310
18747
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
18311
18748
|
responseAs?: string;
|
|
18749
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
18750
|
+
waitForResponse?: boolean;
|
|
18312
18751
|
};
|
|
18313
18752
|
})[];
|
|
18314
18753
|
/** @description Debounce config */
|
|
@@ -18330,6 +18769,8 @@ export interface operations {
|
|
|
18330
18769
|
priority: number;
|
|
18331
18770
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
18332
18771
|
transactionalEmissions: boolean;
|
|
18772
|
+
/** @description Loop guard opt-in (#1148): act on events sent by one of the tenant’s own instances */
|
|
18773
|
+
allowInstanceSenders: boolean;
|
|
18333
18774
|
/** @description Per-automation concurrency limit (#1108). null = queued per instance with the engine default; set = a queue private to this automation, 1 being strict single-flight */
|
|
18334
18775
|
maxConcurrency: number | null;
|
|
18335
18776
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; null = one queue for the whole automation */
|
|
@@ -18496,6 +18937,8 @@ export interface operations {
|
|
|
18496
18937
|
timeoutMs?: number;
|
|
18497
18938
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
18498
18939
|
responseAs?: string;
|
|
18940
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
18941
|
+
waitForResponse?: boolean;
|
|
18499
18942
|
};
|
|
18500
18943
|
})[];
|
|
18501
18944
|
/** @description Debounce config */
|
|
@@ -18517,6 +18960,8 @@ export interface operations {
|
|
|
18517
18960
|
priority: number;
|
|
18518
18961
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
18519
18962
|
transactionalEmissions: boolean;
|
|
18963
|
+
/** @description Loop guard opt-in (#1148): act on events sent by one of the tenant’s own instances */
|
|
18964
|
+
allowInstanceSenders: boolean;
|
|
18520
18965
|
/** @description Per-automation concurrency limit (#1108). null = queued per instance with the engine default; set = a queue private to this automation, 1 being strict single-flight */
|
|
18521
18966
|
maxConcurrency: number | null;
|
|
18522
18967
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; null = one queue for the whole automation */
|
|
@@ -18720,6 +19165,8 @@ export interface operations {
|
|
|
18720
19165
|
timeoutMs?: number;
|
|
18721
19166
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
18722
19167
|
responseAs?: string;
|
|
19168
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
19169
|
+
waitForResponse?: boolean;
|
|
18723
19170
|
};
|
|
18724
19171
|
})[];
|
|
18725
19172
|
/** @description Debounce config */
|
|
@@ -18750,6 +19197,11 @@ export interface operations {
|
|
|
18750
19197
|
* @default false
|
|
18751
19198
|
*/
|
|
18752
19199
|
transactionalEmissions?: boolean;
|
|
19200
|
+
/**
|
|
19201
|
+
* @description Loop guard opt-in (#1148): by default events sent by one of the tenant’s own instances (payload.senderInstanceId) are skipped. True = act on them anyway
|
|
19202
|
+
* @default false
|
|
19203
|
+
*/
|
|
19204
|
+
allowInstanceSenders?: boolean;
|
|
18753
19205
|
/** @description Per-automation concurrency limit (#1108). Omit/null = today’s per-instance queueing with the engine default; 1 = strict single-flight, which is what a read-before-write action needs */
|
|
18754
19206
|
maxConcurrency?: number | null;
|
|
18755
19207
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; omit/null = one queue for the whole automation */
|
|
@@ -18867,6 +19319,8 @@ export interface operations {
|
|
|
18867
19319
|
timeoutMs?: number;
|
|
18868
19320
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
18869
19321
|
responseAs?: string;
|
|
19322
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
19323
|
+
waitForResponse?: boolean;
|
|
18870
19324
|
};
|
|
18871
19325
|
})[];
|
|
18872
19326
|
/** @description Debounce config */
|
|
@@ -18888,6 +19342,8 @@ export interface operations {
|
|
|
18888
19342
|
priority: number;
|
|
18889
19343
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
18890
19344
|
transactionalEmissions: boolean;
|
|
19345
|
+
/** @description Loop guard opt-in (#1148): act on events sent by one of the tenant’s own instances */
|
|
19346
|
+
allowInstanceSenders: boolean;
|
|
18891
19347
|
/** @description Per-automation concurrency limit (#1108). null = queued per instance with the engine default; set = a queue private to this automation, 1 being strict single-flight */
|
|
18892
19348
|
maxConcurrency: number | null;
|
|
18893
19349
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; null = one queue for the whole automation */
|
|
@@ -19056,6 +19512,8 @@ export interface operations {
|
|
|
19056
19512
|
timeoutMs?: number;
|
|
19057
19513
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
19058
19514
|
responseAs?: string;
|
|
19515
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
19516
|
+
waitForResponse?: boolean;
|
|
19059
19517
|
};
|
|
19060
19518
|
})[];
|
|
19061
19519
|
/** @description Debounce config */
|
|
@@ -19077,6 +19535,8 @@ export interface operations {
|
|
|
19077
19535
|
priority: number;
|
|
19078
19536
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
19079
19537
|
transactionalEmissions: boolean;
|
|
19538
|
+
/** @description Loop guard opt-in (#1148): act on events sent by one of the tenant’s own instances */
|
|
19539
|
+
allowInstanceSenders: boolean;
|
|
19080
19540
|
/** @description Per-automation concurrency limit (#1108). null = queued per instance with the engine default; set = a queue private to this automation, 1 being strict single-flight */
|
|
19081
19541
|
maxConcurrency: number | null;
|
|
19082
19542
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; null = one queue for the whole automation */
|
|
@@ -19243,6 +19703,8 @@ export interface operations {
|
|
|
19243
19703
|
timeoutMs?: number;
|
|
19244
19704
|
/** @description Store agent response as variable for chaining (e.g., "agentResponse") */
|
|
19245
19705
|
responseAs?: string;
|
|
19706
|
+
/** @description Await the agent run (default true). False = return the runId once dispatched; outcome published as system.agent.run_completed. Incompatible with responseAs */
|
|
19707
|
+
waitForResponse?: boolean;
|
|
19246
19708
|
};
|
|
19247
19709
|
})[];
|
|
19248
19710
|
/** @description Debounce config */
|
|
@@ -19264,6 +19726,8 @@ export interface operations {
|
|
|
19264
19726
|
priority: number;
|
|
19265
19727
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
19266
19728
|
transactionalEmissions: boolean;
|
|
19729
|
+
/** @description Loop guard opt-in (#1148): act on events sent by one of the tenant’s own instances */
|
|
19730
|
+
allowInstanceSenders: boolean;
|
|
19267
19731
|
/** @description Per-automation concurrency limit (#1108). null = queued per instance with the engine default; set = a queue private to this automation, 1 being strict single-flight */
|
|
19268
19732
|
maxConcurrency: number | null;
|
|
19269
19733
|
/** @description Template over the event payload partitioning this automation’s queue (#1108), e.g. "{{payload.from.id}}" to serialize per chat; null = one queue for the whole automation */
|
|
@@ -19991,6 +20455,11 @@ export interface operations {
|
|
|
19991
20455
|
completedJourneys: number;
|
|
19992
20456
|
/** @description Currently active journeys */
|
|
19993
20457
|
activeJourneys: number;
|
|
20458
|
+
/** @description Completed journeys by terminal path: no agent (T4) vs agent dispatch (T5) */
|
|
20459
|
+
completedByPath: {
|
|
20460
|
+
noAgent: number;
|
|
20461
|
+
agent: number;
|
|
20462
|
+
};
|
|
19994
20463
|
/** @description Percentile stats per latency stage */
|
|
19995
20464
|
stages: {
|
|
19996
20465
|
[key: string]: {
|
|
@@ -20055,6 +20524,12 @@ export interface operations {
|
|
|
20055
20524
|
latencies: {
|
|
20056
20525
|
/** @description T1 - T0 (ms) */
|
|
20057
20526
|
channelProcessing?: number;
|
|
20527
|
+
/** @description T0a - T0 (ms) */
|
|
20528
|
+
platformDelivery?: number;
|
|
20529
|
+
/** @description T0b - T0a (ms) */
|
|
20530
|
+
mediaDownload?: number;
|
|
20531
|
+
/** @description T1 - T0b (ms) */
|
|
20532
|
+
inboundEnrichment?: number;
|
|
20058
20533
|
/** @description T2 - T1 (ms) */
|
|
20059
20534
|
eventPublish?: number;
|
|
20060
20535
|
/** @description T3 - T2 (ms) */
|