@botpress/runtime 1.11.1 → 1.11.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/dist/_types/conversations.d.ts +6 -1
- package/dist/_types/conversations.d.ts.map +1 -1
- package/dist/definition.js +16 -14
- package/dist/definition.js.map +2 -2
- package/dist/internal.js +16 -14
- package/dist/internal.js.map +2 -2
- package/dist/library.js +16 -14
- package/dist/library.js.map +2 -2
- package/dist/primitives/conversation.d.ts +84 -15
- package/dist/primitives/conversation.d.ts.map +1 -1
- package/dist/primitives/definition.d.ts +6 -0
- package/dist/primitives/definition.d.ts.map +1 -1
- package/dist/runtime/handlers/event.d.ts.map +1 -1
- package/dist/runtime.js +25 -16
- package/dist/runtime.js.map +2 -2
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { type Message as CMessage } from '@botpress/client';
|
|
|
2
2
|
import { z } from '@botpress/sdk';
|
|
3
3
|
import { BotClient } from '@botpress/sdk/dist/bot';
|
|
4
4
|
import type { ChannelSpec, Channels } from '../_types/channels';
|
|
5
|
-
import type { ConversationDefinitions } from '../_types/conversations';
|
|
5
|
+
import type { ConversationDefinitions, ConversationRoutableEvents } from '../_types/conversations';
|
|
6
6
|
import { WorkflowDefinitions } from '../_types/workflows';
|
|
7
7
|
import { Autonomous } from '../runtime/autonomous';
|
|
8
8
|
import { WorkflowCallbackEventType } from '../runtime/events';
|
|
@@ -20,19 +20,54 @@ type WorkflowRequest = {
|
|
|
20
20
|
}[keyof WorkflowDefinitions[WfName]['requests'] & string];
|
|
21
21
|
}[keyof WorkflowDefinitions & string];
|
|
22
22
|
export declare namespace Typings {
|
|
23
|
-
type Message<TChannel extends keyof ConversationDefinitions = keyof ConversationDefinitions, TType extends keyof ConversationDefinitions[TChannel]['messages'] = keyof ConversationDefinitions[TChannel]['messages']> = TChannel extends keyof ConversationDefinitions ? TType extends keyof ConversationDefinitions[TChannel]['messages'] ? Omit<CMessage, 'type' | 'tags' | 'payload'> & {
|
|
23
|
+
export type Message<TChannel extends keyof ConversationDefinitions = keyof ConversationDefinitions, TType extends keyof ConversationDefinitions[TChannel]['messages'] = keyof ConversationDefinitions[TChannel]['messages']> = TChannel extends keyof ConversationDefinitions ? TType extends keyof ConversationDefinitions[TChannel]['messages'] ? Omit<CMessage, 'type' | 'tags' | 'payload'> & {
|
|
24
24
|
type: TType;
|
|
25
25
|
payload: ConversationDefinitions[TChannel]['messages'][TType];
|
|
26
26
|
tags: ConversationDefinitions[TChannel]['messageTags'];
|
|
27
27
|
} : never : never;
|
|
28
|
-
type Event<TChannel extends keyof ConversationDefinitions = keyof ConversationDefinitions> = TChannel extends keyof ConversationDefinitions ? {
|
|
28
|
+
export type Event<TChannel extends keyof ConversationDefinitions = keyof ConversationDefinitions> = TChannel extends keyof ConversationDefinitions ? {
|
|
29
29
|
[EType in keyof ConversationDefinitions[TChannel]['events']]: {
|
|
30
30
|
type: EType;
|
|
31
31
|
payload: ConversationDefinitions[TChannel]['events'][EType];
|
|
32
32
|
};
|
|
33
33
|
}[keyof ConversationDefinitions[TChannel]['events'] & (string | number)] | WorkflowCallbackEventType : never;
|
|
34
|
-
type ExtractChannel<T extends ChannelSpec> = T extends readonly string[] ? T[number] : T extends '*' ? Channels : T;
|
|
35
|
-
|
|
34
|
+
export type ExtractChannel<T extends ChannelSpec> = T extends readonly string[] ? T[number] : T extends '*' ? Channels : T;
|
|
35
|
+
/**
|
|
36
|
+
* Extract event name from "integration:eventName" format.
|
|
37
|
+
* e.g., "webchat:conversationStarted" -> "conversationStarted"
|
|
38
|
+
*/
|
|
39
|
+
type ExtractEventName<T extends string> = T extends `${string}:${infer EventName}` ? EventName : T;
|
|
40
|
+
/**
|
|
41
|
+
* Get the channel for an event based on its integration.
|
|
42
|
+
* e.g., "webchat:conversationStarted" -> "webchat.channel"
|
|
43
|
+
*/
|
|
44
|
+
type EventToChannel<T extends string> = T extends `${infer Integration}:${string}` ? `${Integration}.channel` extends keyof ConversationDefinitions ? `${Integration}.channel` : never : never;
|
|
45
|
+
/**
|
|
46
|
+
* Get event payload from an event type string.
|
|
47
|
+
*/
|
|
48
|
+
type GetEventPayload<T extends string, TChannel extends keyof ConversationDefinitions = EventToChannel<T>> = TChannel extends keyof ConversationDefinitions ? ExtractEventName<T> extends keyof ConversationDefinitions[TChannel]['events'] ? ConversationDefinitions[TChannel]['events'][ExtractEventName<T>] : unknown : unknown;
|
|
49
|
+
/**
|
|
50
|
+
* Create a discriminated union of event handler props for each event type.
|
|
51
|
+
* Each event type narrows to its specific channel and conversation instance.
|
|
52
|
+
*/
|
|
53
|
+
type EventHandlerProps<TEvents extends readonly string[], State extends ZuiType> = TEvents extends readonly [] ? never : {
|
|
54
|
+
[K in TEvents[number]]: EventToChannel<K> extends keyof ConversationDefinitions ? {
|
|
55
|
+
type: 'event';
|
|
56
|
+
channel: EventToChannel<K>;
|
|
57
|
+
conversation: BaseConversationInstance<EventToChannel<K>>;
|
|
58
|
+
event: {
|
|
59
|
+
type: K;
|
|
60
|
+
payload: GetEventPayload<K>;
|
|
61
|
+
} | WorkflowCallbackEventType;
|
|
62
|
+
message?: never;
|
|
63
|
+
workflow?: never;
|
|
64
|
+
request?: never;
|
|
65
|
+
state: z.infer<State>;
|
|
66
|
+
client: BotClient<any>;
|
|
67
|
+
execute: Autonomous.ConvoExecuteFn;
|
|
68
|
+
} : never;
|
|
69
|
+
}[TEvents[number]];
|
|
70
|
+
export type HandlerProps<TChannelSpec extends ChannelSpec = ChannelSpec, State extends ZuiType = ZuiType, TEvents extends readonly string[] = readonly [], Channel extends string = ExtractChannel<TChannelSpec>> = Channel extends keyof ConversationDefinitions ? TEvents extends readonly [] ? {
|
|
36
71
|
type: 'message';
|
|
37
72
|
channel: Channel;
|
|
38
73
|
conversation: BaseConversationInstance<Channel>;
|
|
@@ -44,17 +79,28 @@ export declare namespace Typings {
|
|
|
44
79
|
client: BotClient<any>;
|
|
45
80
|
execute: Autonomous.ConvoExecuteFn;
|
|
46
81
|
} | {
|
|
47
|
-
type: '
|
|
82
|
+
type: 'workflow_request';
|
|
48
83
|
channel: Channel;
|
|
49
84
|
conversation: BaseConversationInstance<Channel>;
|
|
50
|
-
event
|
|
85
|
+
event?: never;
|
|
51
86
|
message?: never;
|
|
52
87
|
workflow?: never;
|
|
88
|
+
request: WorkflowRequest;
|
|
89
|
+
state: z.infer<State>;
|
|
90
|
+
client: BotClient<any>;
|
|
91
|
+
execute: Autonomous.ConvoExecuteFn;
|
|
92
|
+
} : {
|
|
93
|
+
type: 'message';
|
|
94
|
+
channel: Channel;
|
|
95
|
+
conversation: BaseConversationInstance<Channel>;
|
|
96
|
+
message: Message<Channel>;
|
|
97
|
+
event?: never;
|
|
98
|
+
workflow?: never;
|
|
53
99
|
request?: never;
|
|
54
100
|
state: z.infer<State>;
|
|
55
101
|
client: BotClient<any>;
|
|
56
102
|
execute: Autonomous.ConvoExecuteFn;
|
|
57
|
-
} | {
|
|
103
|
+
} | EventHandlerProps<TEvents, State> | {
|
|
58
104
|
type: 'workflow_request';
|
|
59
105
|
channel: Channel;
|
|
60
106
|
conversation: BaseConversationInstance<Channel>;
|
|
@@ -66,15 +112,32 @@ export declare namespace Typings {
|
|
|
66
112
|
client: BotClient<any>;
|
|
67
113
|
execute: Autonomous.ConvoExecuteFn;
|
|
68
114
|
} : never;
|
|
69
|
-
type Handler<TChannelSpec extends ChannelSpec = ChannelSpec, State extends ZuiType = ZuiType> = (props: HandlerProps<TChannelSpec, State>) => Promise<void> | void;
|
|
70
|
-
type StartFromTrigger<State extends ZuiType = ZuiType> = (event: any) => Promise<string | false> | string | false;
|
|
71
|
-
|
|
115
|
+
export type Handler<TChannelSpec extends ChannelSpec = ChannelSpec, State extends ZuiType = ZuiType, TEvents extends readonly string[] = readonly []> = (props: HandlerProps<TChannelSpec, State, TEvents>) => Promise<void> | void;
|
|
116
|
+
export type StartFromTrigger<State extends ZuiType = ZuiType> = (event: any) => Promise<string | false> | string | false;
|
|
117
|
+
/**
|
|
118
|
+
* Get available routable event names for a given channel.
|
|
119
|
+
* These are events that have a conversationId property and can be routed to conversations.
|
|
120
|
+
*/
|
|
121
|
+
export type RoutableEventNames<TChannel extends keyof ConversationDefinitions> = TChannel extends keyof ConversationRoutableEvents ? ConversationRoutableEvents[TChannel][number] : never;
|
|
122
|
+
/**
|
|
123
|
+
* Event specification type for conversations.
|
|
124
|
+
* Must be an array of event names that are routable for the channel(s).
|
|
125
|
+
*/
|
|
126
|
+
export type EventSpec<TChannelSpec extends ChannelSpec> = ExtractChannel<TChannelSpec> extends keyof ConversationRoutableEvents ? readonly ConversationRoutableEvents[ExtractChannel<TChannelSpec>][number][] : readonly string[];
|
|
127
|
+
export type Props<TChannelSpec extends ChannelSpec = ChannelSpec, State extends ZuiType = ZuiType, TEvents extends EventSpec<TChannelSpec> = readonly []> = {
|
|
72
128
|
channel: TChannelSpec;
|
|
73
|
-
handler: Handler<TChannelSpec, State>;
|
|
129
|
+
handler: Handler<TChannelSpec, State, TEvents>;
|
|
74
130
|
state?: State;
|
|
75
131
|
startFromTrigger?: StartFromTrigger<State>;
|
|
132
|
+
/**
|
|
133
|
+
* Array of event names this conversation should listen to.
|
|
134
|
+
* Only events with a conversationId property are allowed.
|
|
135
|
+
* By default, conversations only receive messages, not events.
|
|
136
|
+
*/
|
|
137
|
+
events?: TEvents;
|
|
76
138
|
};
|
|
77
|
-
const Primitive: "conversation";
|
|
139
|
+
export const Primitive: "conversation";
|
|
140
|
+
export {};
|
|
78
141
|
}
|
|
79
142
|
/**
|
|
80
143
|
* Base Conversation definition class.
|
|
@@ -83,10 +146,16 @@ export declare namespace Typings {
|
|
|
83
146
|
*
|
|
84
147
|
* The generated Conversation class in runtime.d.ts provides proper typing.
|
|
85
148
|
*/
|
|
86
|
-
export declare class BaseConversation<TChannelSpec extends ChannelSpec = ChannelSpec, State extends ZuiType = ZuiType> implements Definitions.Primitive {
|
|
149
|
+
export declare class BaseConversation<TChannelSpec extends ChannelSpec = ChannelSpec, State extends ZuiType = ZuiType, TEvents extends Typings.EventSpec<TChannelSpec> = readonly []> implements Definitions.Primitive {
|
|
87
150
|
#private;
|
|
88
151
|
readonly channel: ChannelSpec;
|
|
89
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Array of event names this conversation listens to.
|
|
154
|
+
* Only events with conversationId property are allowed.
|
|
155
|
+
* Empty array means no events (only messages).
|
|
156
|
+
*/
|
|
157
|
+
readonly events: readonly string[];
|
|
158
|
+
constructor(props: Typings.Props<TChannelSpec, State, TEvents>);
|
|
90
159
|
}
|
|
91
160
|
export {};
|
|
92
161
|
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/primitives/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/primitives/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ export declare namespace Definitions {
|
|
|
8
8
|
type ConversationDefinition = {
|
|
9
9
|
type: 'conversation';
|
|
10
10
|
channel: string | string[];
|
|
11
|
+
/**
|
|
12
|
+
* Array of event names this conversation listens to.
|
|
13
|
+
* Only events with conversationId property are routable to conversations.
|
|
14
|
+
* Undefined or empty means no events (only messages).
|
|
15
|
+
*/
|
|
16
|
+
events?: string[];
|
|
11
17
|
};
|
|
12
18
|
type WorkflowDefinition = {
|
|
13
19
|
type: 'workflow';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/primitives/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,yBAAiB,WAAW,CAAC;IAC3B,KAAY,mBAAmB,GAC3B,sBAAsB,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,CAAA;IAEnB,UAAiB,SAAS;QACxB,aAAa,IAAI,mBAAmB,CAAA;KACrC;IAED,KAAY,sBAAsB,GAAG;QACnC,IAAI,EAAE,cAAc,CAAA;QACpB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/primitives/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,yBAAiB,WAAW,CAAC;IAC3B,KAAY,mBAAmB,GAC3B,sBAAsB,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,CAAA;IAEnB,UAAiB,SAAS;QACxB,aAAa,IAAI,mBAAmB,CAAA;KACrC;IAED,KAAY,sBAAsB,GAAG;QACnC,IAAI,EAAE,cAAc,CAAA;QACpB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;QAC1B;;;;WAIG;QACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAClB,CAAA;IAED,KAAY,kBAAkB,GAAG;QAC/B,IAAI,EAAE,UAAU,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,WAAW,CAAA;QACpB,KAAK,CAAC,EAAE,WAAW,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IAED,KAAY,mBAAmB,GAAG;QAChC,IAAI,EAAE,WAAW,CAAA;QACjB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,UAAU,EAAE,CAAA;KACtB,CAAA;IAED,KAAY,iBAAiB,GAAG;QAC9B,IAAI,EAAE,SAAS,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;IAED,KAAY,gBAAgB,GAAG;QAC7B,IAAI,EAAE,QAAQ,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACnC,KAAK,CAAC,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,WAAW,CAAA;QACpB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IAED,KAAY,eAAe,GAAG;QAC5B,IAAI,EAAE,OAAO,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IAuED,SAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAExF;IAED,SAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;IAED,SAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;IAED,SAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;IAED,SAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;IAED,SAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E;IAED,SAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAS9E;IAED;;;;;;;OAOG;IACH,SAAgB,aAAa,CAAC,UAAU,EAAE,OAAO,mCAsBhD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/runtime/handlers/event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAc9E,eAAO,MAAM,KAAK,GAAI,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/runtime/handlers/event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAc9E,eAAO,MAAM,KAAK,GAAI,KAAK,iBAAiB,SAqG3C,CAAA"}
|
package/dist/runtime.js
CHANGED
|
@@ -48,7 +48,7 @@ var init_define_BUILD = __esm({
|
|
|
48
48
|
var define_PACKAGE_VERSIONS_default;
|
|
49
49
|
var init_define_PACKAGE_VERSIONS = __esm({
|
|
50
50
|
"<define:__PACKAGE_VERSIONS__>"() {
|
|
51
|
-
define_PACKAGE_VERSIONS_default = { runtime: "1.11.
|
|
51
|
+
define_PACKAGE_VERSIONS_default = { runtime: "1.11.3", adk: "1.11.3", sdk: "4.20.2", llmz: "0.0.33", zai: "2.5.0", cognitive: "0.2.0" };
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
|
|
@@ -43824,12 +43824,19 @@ var init_conversation = __esm({
|
|
|
43824
43824
|
})(Typings3 || (Typings3 = {}));
|
|
43825
43825
|
BaseConversation = class {
|
|
43826
43826
|
channel;
|
|
43827
|
+
/**
|
|
43828
|
+
* Array of event names this conversation listens to.
|
|
43829
|
+
* Only events with conversationId property are allowed.
|
|
43830
|
+
* Empty array means no events (only messages).
|
|
43831
|
+
*/
|
|
43832
|
+
events;
|
|
43827
43833
|
/** @internal */
|
|
43828
43834
|
schema;
|
|
43829
43835
|
#handler;
|
|
43830
43836
|
#startFromTrigger;
|
|
43831
43837
|
constructor(props) {
|
|
43832
43838
|
this.channel = props.channel;
|
|
43839
|
+
this.events = props.events ?? [];
|
|
43833
43840
|
this.schema = props.state ?? z10.object({}).passthrough();
|
|
43834
43841
|
this.#handler = props.handler;
|
|
43835
43842
|
if (props.startFromTrigger) {
|
|
@@ -43842,22 +43849,17 @@ var init_conversation = __esm({
|
|
|
43842
43849
|
}
|
|
43843
43850
|
/** @internal */
|
|
43844
43851
|
getDefinition() {
|
|
43845
|
-
|
|
43846
|
-
|
|
43847
|
-
|
|
43848
|
-
|
|
43849
|
-
|
|
43850
|
-
} else if (Array.isArray(this.channel)) {
|
|
43851
|
-
return {
|
|
43852
|
-
type: "conversation",
|
|
43853
|
-
channel: this.channel
|
|
43854
|
-
};
|
|
43855
|
-
} else {
|
|
43852
|
+
const base = {
|
|
43853
|
+
type: "conversation",
|
|
43854
|
+
channel: this.channel === "*" ? "*" : Array.isArray(this.channel) ? this.channel : this.channel
|
|
43855
|
+
};
|
|
43856
|
+
if (this.events.length > 0) {
|
|
43856
43857
|
return {
|
|
43857
|
-
|
|
43858
|
-
|
|
43858
|
+
...base,
|
|
43859
|
+
events: [...this.events]
|
|
43859
43860
|
};
|
|
43860
43861
|
}
|
|
43862
|
+
return base;
|
|
43861
43863
|
}
|
|
43862
43864
|
/** @internal */
|
|
43863
43865
|
async [ConversationHandler]() {
|
|
@@ -48297,10 +48299,17 @@ var init_event = __esm({
|
|
|
48297
48299
|
init_adk();
|
|
48298
48300
|
init_conversation_matching();
|
|
48299
48301
|
setup4 = (bot2) => {
|
|
48300
|
-
const
|
|
48302
|
+
const registeredEvents = /* @__PURE__ */ new Set();
|
|
48303
|
+
for (const conversation of adk.project.conversations) {
|
|
48304
|
+
for (const eventName of conversation.events) {
|
|
48305
|
+
registeredEvents.add(eventName);
|
|
48306
|
+
}
|
|
48307
|
+
}
|
|
48308
|
+
const conversationEventTypes = [WorkflowCallbackEvent.name, WorkflowDataRequestEvent2.name, ...registeredEvents];
|
|
48301
48309
|
for (const eventType of conversationEventTypes) {
|
|
48302
48310
|
bot2.on.event(eventType, async ({ event, client, logger, ctx }) => {
|
|
48303
48311
|
const payload = event.payload;
|
|
48312
|
+
const workflowId = payload.workflowId || payload.workflow_id;
|
|
48304
48313
|
const conversation = context2.get("conversation");
|
|
48305
48314
|
if (!conversation) {
|
|
48306
48315
|
logger.warn(`Skipping ${WorkflowCallbackEvent.name} event, conversation not found in context`);
|
|
@@ -48322,7 +48331,7 @@ var init_event = __esm({
|
|
|
48322
48331
|
integration: conversation.integration || "-",
|
|
48323
48332
|
conversationId: conversation.id,
|
|
48324
48333
|
userId: event.userId || "-",
|
|
48325
|
-
workflowId
|
|
48334
|
+
workflowId
|
|
48326
48335
|
},
|
|
48327
48336
|
async () => {
|
|
48328
48337
|
const chat = new BotpressChat(context2.getAll());
|