@botpress/runtime 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/dist/_types/actions.d.ts +3 -0
  2. package/dist/_types/actions.d.ts.map +1 -0
  3. package/dist/_types/events.d.ts +5 -0
  4. package/dist/_types/events.d.ts.map +1 -0
  5. package/dist/_types/integration-actions.d.ts +3 -0
  6. package/dist/_types/integration-actions.d.ts.map +1 -0
  7. package/dist/_types/state.d.ts +4 -0
  8. package/dist/_types/state.d.ts.map +1 -0
  9. package/dist/_types/tables.d.ts +3 -0
  10. package/dist/_types/tables.d.ts.map +1 -0
  11. package/dist/_types/triggers.d.ts +3 -0
  12. package/dist/_types/triggers.d.ts.map +1 -0
  13. package/dist/_types/workflows.d.ts +12 -0
  14. package/dist/_types/workflows.d.ts.map +1 -0
  15. package/dist/constants.d.ts +58 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/consts.d.ts +8 -0
  18. package/dist/consts.d.ts.map +1 -0
  19. package/dist/debugging/node-inspector.d.ts +5 -0
  20. package/dist/debugging/node-inspector.d.ts.map +1 -0
  21. package/dist/define-config.d.ts +70 -0
  22. package/dist/define-config.d.ts.map +1 -0
  23. package/dist/definition.d.ts +10 -0
  24. package/dist/definition.d.ts.map +1 -0
  25. package/dist/definition.js +88 -0
  26. package/dist/definition.js.map +7 -0
  27. package/dist/environment.d.ts +60 -0
  28. package/dist/environment.d.ts.map +1 -0
  29. package/dist/errors.d.ts +36 -0
  30. package/dist/errors.d.ts.map +1 -0
  31. package/dist/globals.d.ts +21 -0
  32. package/dist/globals.d.ts.map +1 -0
  33. package/dist/internal.d.ts +15 -0
  34. package/dist/internal.d.ts.map +1 -0
  35. package/dist/internal.js +46573 -0
  36. package/dist/internal.js.map +7 -0
  37. package/dist/library.d.ts +16 -0
  38. package/dist/library.d.ts.map +1 -0
  39. package/dist/library.js +45943 -0
  40. package/dist/library.js.map +7 -0
  41. package/dist/primitives/action.d.ts +37 -0
  42. package/dist/primitives/action.d.ts.map +1 -0
  43. package/dist/primitives/asset.d.ts +28 -0
  44. package/dist/primitives/asset.d.ts.map +1 -0
  45. package/dist/primitives/conversation.d.ts +104 -0
  46. package/dist/primitives/conversation.d.ts.map +1 -0
  47. package/dist/primitives/data-sources/index.d.ts +7 -0
  48. package/dist/primitives/data-sources/index.d.ts.map +1 -0
  49. package/dist/primitives/data-sources/source-base.d.ts +251 -0
  50. package/dist/primitives/data-sources/source-base.d.ts.map +1 -0
  51. package/dist/primitives/data-sources/source-directory.d.ts +119 -0
  52. package/dist/primitives/data-sources/source-directory.d.ts.map +1 -0
  53. package/dist/primitives/data-sources/source-table.d.ts +135 -0
  54. package/dist/primitives/data-sources/source-table.d.ts.map +1 -0
  55. package/dist/primitives/data-sources/source-website.d.ts +226 -0
  56. package/dist/primitives/data-sources/source-website.d.ts.map +1 -0
  57. package/dist/primitives/definition.d.ts +68 -0
  58. package/dist/primitives/definition.d.ts.map +1 -0
  59. package/dist/primitives/index.d.ts +149 -0
  60. package/dist/primitives/index.d.ts.map +1 -0
  61. package/dist/primitives/knowledge.d.ts +36 -0
  62. package/dist/primitives/knowledge.d.ts.map +1 -0
  63. package/dist/primitives/table.d.ts +153 -0
  64. package/dist/primitives/table.d.ts.map +1 -0
  65. package/dist/primitives/trigger.d.ts +26 -0
  66. package/dist/primitives/trigger.d.ts.map +1 -0
  67. package/dist/primitives/workflow-instance.d.ts +80 -0
  68. package/dist/primitives/workflow-instance.d.ts.map +1 -0
  69. package/dist/primitives/workflow-step.d.ts +184 -0
  70. package/dist/primitives/workflow-step.d.ts.map +1 -0
  71. package/dist/primitives/workflow-utils.d.ts +36 -0
  72. package/dist/primitives/workflow-utils.d.ts.map +1 -0
  73. package/dist/primitives/workflow.d.ts +86 -0
  74. package/dist/primitives/workflow.d.ts.map +1 -0
  75. package/dist/runtime/actions.d.ts +6 -0
  76. package/dist/runtime/actions.d.ts.map +1 -0
  77. package/dist/runtime/adk.d.ts +54 -0
  78. package/dist/runtime/adk.d.ts.map +1 -0
  79. package/dist/runtime/agent-registry.d.ts +33 -0
  80. package/dist/runtime/agent-registry.d.ts.map +1 -0
  81. package/dist/runtime/assets.d.ts +48 -0
  82. package/dist/runtime/assets.d.ts.map +1 -0
  83. package/dist/runtime/autonomous.d.ts +86 -0
  84. package/dist/runtime/autonomous.d.ts.map +1 -0
  85. package/dist/runtime/chat/chat.d.ts +42 -0
  86. package/dist/runtime/chat/chat.d.ts.map +1 -0
  87. package/dist/runtime/chat/citations.d.ts +9 -0
  88. package/dist/runtime/chat/citations.d.ts.map +1 -0
  89. package/dist/runtime/chat/html.d.ts +2 -0
  90. package/dist/runtime/chat/html.d.ts.map +1 -0
  91. package/dist/runtime/chat/index.d.ts +5 -0
  92. package/dist/runtime/chat/index.d.ts.map +1 -0
  93. package/dist/runtime/chat/messages.d.ts +35 -0
  94. package/dist/runtime/chat/messages.d.ts.map +1 -0
  95. package/dist/runtime/chat/transcript.d.ts +75 -0
  96. package/dist/runtime/chat/transcript.d.ts.map +1 -0
  97. package/dist/runtime/chat/truncate-object.d.ts +12 -0
  98. package/dist/runtime/chat/truncate-object.d.ts.map +1 -0
  99. package/dist/runtime/chat/truncate-transcript.d.ts +6 -0
  100. package/dist/runtime/chat/truncate-transcript.d.ts.map +1 -0
  101. package/dist/runtime/config.d.ts +19 -0
  102. package/dist/runtime/config.d.ts.map +1 -0
  103. package/dist/runtime/context/cognitive.d.ts +7 -0
  104. package/dist/runtime/context/cognitive.d.ts.map +1 -0
  105. package/dist/runtime/context/context.d.ts +59 -0
  106. package/dist/runtime/context/context.d.ts.map +1 -0
  107. package/dist/runtime/context/handlers.d.ts +14 -0
  108. package/dist/runtime/context/handlers.d.ts.map +1 -0
  109. package/dist/runtime/context/http.d.ts +38 -0
  110. package/dist/runtime/context/http.d.ts.map +1 -0
  111. package/dist/runtime/context/inspector-handler.d.ts +59 -0
  112. package/dist/runtime/context/inspector-handler.d.ts.map +1 -0
  113. package/dist/runtime/context/promises.d.ts +36 -0
  114. package/dist/runtime/context/promises.d.ts.map +1 -0
  115. package/dist/runtime/events.d.ts +89 -0
  116. package/dist/runtime/events.d.ts.map +1 -0
  117. package/dist/runtime/handlers/conversation.d.ts +3 -0
  118. package/dist/runtime/handlers/conversation.d.ts.map +1 -0
  119. package/dist/runtime/handlers/event.d.ts +3 -0
  120. package/dist/runtime/handlers/event.d.ts.map +1 -0
  121. package/dist/runtime/handlers/index.d.ts +11 -0
  122. package/dist/runtime/handlers/index.d.ts.map +1 -0
  123. package/dist/runtime/handlers/trigger.d.ts +3 -0
  124. package/dist/runtime/handlers/trigger.d.ts.map +1 -0
  125. package/dist/runtime/handlers/workflow.d.ts +3 -0
  126. package/dist/runtime/handlers/workflow.d.ts.map +1 -0
  127. package/dist/runtime/heavy-imports.d.ts +10 -0
  128. package/dist/runtime/heavy-imports.d.ts.map +1 -0
  129. package/dist/runtime/index.d.ts +13 -0
  130. package/dist/runtime/index.d.ts.map +1 -0
  131. package/dist/runtime/interfaces.d.ts +16 -0
  132. package/dist/runtime/interfaces.d.ts.map +1 -0
  133. package/dist/runtime/singletons.d.ts +21 -0
  134. package/dist/runtime/singletons.d.ts.map +1 -0
  135. package/dist/runtime/state.d.ts +8 -0
  136. package/dist/runtime/state.d.ts.map +1 -0
  137. package/dist/runtime/tracked-state-schema.d.ts +36 -0
  138. package/dist/runtime/tracked-state-schema.d.ts.map +1 -0
  139. package/dist/runtime/tracked-state.d.ts +57 -0
  140. package/dist/runtime/tracked-state.d.ts.map +1 -0
  141. package/dist/runtime/workflows/index.d.ts +7 -0
  142. package/dist/runtime/workflows/index.d.ts.map +1 -0
  143. package/dist/runtime/workflows/knowledge-indexing.d.ts +109 -0
  144. package/dist/runtime/workflows/knowledge-indexing.d.ts.map +1 -0
  145. package/dist/runtime.d.ts +22 -0
  146. package/dist/runtime.d.ts.map +1 -0
  147. package/dist/runtime.js +47545 -0
  148. package/dist/runtime.js.map +7 -0
  149. package/dist/telemetry/context-manager.d.ts +16 -0
  150. package/dist/telemetry/context-manager.d.ts.map +1 -0
  151. package/dist/telemetry/file-exporter.d.ts +11 -0
  152. package/dist/telemetry/file-exporter.d.ts.map +1 -0
  153. package/dist/telemetry/instrument-http.d.ts +4 -0
  154. package/dist/telemetry/instrument-http.d.ts.map +1 -0
  155. package/dist/telemetry/live-file-processor.d.ts +13 -0
  156. package/dist/telemetry/live-file-processor.d.ts.map +1 -0
  157. package/dist/telemetry/span-helpers.d.ts +30 -0
  158. package/dist/telemetry/span-helpers.d.ts.map +1 -0
  159. package/dist/telemetry/spans/factory.d.ts +44 -0
  160. package/dist/telemetry/spans/factory.d.ts.map +1 -0
  161. package/dist/telemetry/spans/index.d.ts +1009 -0
  162. package/dist/telemetry/spans/index.d.ts.map +1 -0
  163. package/dist/telemetry/spans/well-known-attributes.d.ts +78 -0
  164. package/dist/telemetry/spans/well-known-attributes.d.ts.map +1 -0
  165. package/dist/telemetry/structured-logging.d.ts +34 -0
  166. package/dist/telemetry/structured-logging.d.ts.map +1 -0
  167. package/dist/telemetry/tracing.d.ts +6 -0
  168. package/dist/telemetry/tracing.d.ts.map +1 -0
  169. package/dist/telemetry/utils.d.ts +3 -0
  170. package/dist/telemetry/utils.d.ts.map +1 -0
  171. package/dist/types.d.ts +17 -0
  172. package/dist/types.d.ts.map +1 -0
  173. package/dist/ui.d.ts +10 -0
  174. package/dist/ui.d.ts.map +1 -0
  175. package/dist/ui.js +749 -0
  176. package/dist/ui.js.map +7 -0
  177. package/dist/utilities/abort-signal.d.ts +41 -0
  178. package/dist/utilities/abort-signal.d.ts.map +1 -0
  179. package/dist/utilities/events.d.ts +10 -0
  180. package/dist/utilities/events.d.ts.map +1 -0
  181. package/dist/utilities/promises.d.ts +3 -0
  182. package/dist/utilities/promises.d.ts.map +1 -0
  183. package/dist/utilities/size.d.ts +12 -0
  184. package/dist/utilities/size.d.ts.map +1 -0
  185. package/dist/utilities/strings.d.ts +18 -0
  186. package/dist/utilities/strings.d.ts.map +1 -0
  187. package/dist/utilities/trigger-tags.d.ts +31 -0
  188. package/dist/utilities/trigger-tags.d.ts.map +1 -0
  189. package/dist/utilities/types.d.ts +2 -0
  190. package/dist/utilities/types.d.ts.map +1 -0
  191. package/dist/workers/dev_worker.d.ts +6 -0
  192. package/dist/workers/dev_worker.d.ts.map +1 -0
  193. package/dist/workers/index.d.ts +5 -0
  194. package/dist/workers/index.d.ts.map +1 -0
  195. package/dist/workers/parent_worker.d.ts +5 -0
  196. package/dist/workers/parent_worker.d.ts.map +1 -0
  197. package/dist/workers/worker_pool.d.ts +109 -0
  198. package/dist/workers/worker_pool.d.ts.map +1 -0
  199. package/package.json +109 -0
@@ -0,0 +1,153 @@
1
+ import { Definitions } from "./definition";
2
+ import { z } from "@bpinternal/zui";
3
+ import { Table } from "@botpress/client";
4
+ import { ZuiObjectSchema } from "@botpress/sdk";
5
+ import { TableDefinitions } from "../_types/tables";
6
+ export declare namespace Typings {
7
+ type ColumnDefinition<TName extends string = string> = {
8
+ computed?: boolean;
9
+ searchable?: boolean;
10
+ schema: z.ZodTypeAny;
11
+ dependencies?: ReadonlyArray<keyof TableDefinitions[TName]["Output"]>;
12
+ value?: (row: any) => Promise<any>;
13
+ };
14
+ type Props<TName extends string = string> = {
15
+ name: TName;
16
+ description?: string;
17
+ factor?: number;
18
+ columns: Record<string, z.ZodTypeAny | ColumnDefinition<TName>>;
19
+ };
20
+ const Primitive: "table";
21
+ }
22
+ type NestedKeyOf<T> = T extends object ? {
23
+ [K in keyof T & string]: K | (T[K] extends (infer U)[] ? K | `${K}.${number}` | (U extends object ? `${K}.${number}.${NestedKeyOf<U>}` : never) : T[K] extends object ? K | `${K}.${NestedKeyOf<T[K]>}` : K);
24
+ }[keyof T & string] : never;
25
+ export type PrimitiveFilter<T> = {
26
+ $eq?: T;
27
+ $gt?: T;
28
+ $gte?: T;
29
+ $lt?: T;
30
+ $lte?: T;
31
+ $ne?: T;
32
+ $in?: T[];
33
+ $nin?: T[];
34
+ $exists?: boolean;
35
+ $regex?: string;
36
+ $options?: "i" | "c";
37
+ };
38
+ export type LogicalFilter<TColumns, TName extends string = string> = {
39
+ $and?: TableFilter<TColumns, TName>[];
40
+ $or?: TableFilter<TColumns, TName>[];
41
+ $not?: TableFilter<TColumns, TName>;
42
+ };
43
+ export type TableFilter<TColumns, TName extends string = string> = {
44
+ [K in keyof TColumns]?: TColumns[K] | PrimitiveFilter<TColumns[K]>;
45
+ } & {
46
+ [K in NestedKeyOf<TColumns>]?: any | PrimitiveFilter<any>;
47
+ } & LogicalFilter<TColumns, TName>;
48
+ export type OrderDirection = "asc" | "desc";
49
+ type NumberAggregations = "key" | "count" | "sum" | "avg" | "max" | "min" | "unique";
50
+ type StringAggregations = "key" | "count" | "max" | "min" | "unique";
51
+ type DateAggregations = "key" | "count" | "max" | "min" | "unique";
52
+ type BooleanAggregations = "key" | "count" | "unique";
53
+ type ArrayAggregations = "key" | "count" | "unique";
54
+ type ObjectAggregations = "key" | "count" | "unique";
55
+ type GetAggregations<T> = T extends number ? NumberAggregations : T extends string ? StringAggregations : T extends Date ? DateAggregations : T extends boolean ? BooleanAggregations : T extends any[] ? ArrayAggregations : T extends object ? ObjectAggregations : "key" | "count" | "unique";
56
+ type GetTypeAtPath<T, Path> = Path extends `${infer K}.${infer Rest}` ? K extends keyof T ? GetTypeAtPath<T[K], Rest> : any : Path extends keyof T ? T[Path] : any;
57
+ export type TableGroup<TColumns> = {
58
+ [K in NestedKeyOf<TColumns>]?: GetAggregations<GetTypeAtPath<TColumns, K>> | GetAggregations<GetTypeAtPath<TColumns, K>>[];
59
+ };
60
+ type CamelCasePath<S extends string> = S extends `${infer A}.${infer B}` ? `${A}${Capitalize<CamelCasePath<B>>}` : S;
61
+ type AggregatedFieldName<Path extends string, Op extends string> = Op extends "key" ? `${CamelCasePath<Path>}Key` : `${CamelCasePath<Path>}${Capitalize<Op>}`;
62
+ type AggregationResultType<T, Op extends string> = Op extends "count" ? number : Op extends "sum" ? number : Op extends "avg" ? number : Op extends "max" ? T : Op extends "min" ? T : Op extends "unique" ? T[] : Op extends "key" ? T : never;
63
+ type GroupResultShape<TColumns, TGroup> = TGroup extends TableGroup<TColumns> ? {
64
+ [K in keyof TGroup as TGroup[K] extends string ? AggregatedFieldName<K & string, TGroup[K]> : TGroup[K] extends readonly string[] ? TGroup[K][number] extends string ? AggregatedFieldName<K & string, TGroup[K][number]> : never : never]: TGroup[K] extends string ? AggregationResultType<GetTypeAtPath<TColumns, K & string>, TGroup[K]> : TGroup[K] extends readonly string[] ? TGroup[K][number] extends string ? AggregationResultType<GetTypeAtPath<TColumns, K & string>, TGroup[K][number]> : never : never;
65
+ } : never;
66
+ export interface FindRowsOptions<TName extends string> {
67
+ filter?: TableFilter<TableDefinitions[TName]["Input"], TName>;
68
+ orderBy?: keyof TableDefinitions[TName]["Output"];
69
+ orderDirection?: OrderDirection;
70
+ limit?: number;
71
+ offset?: number;
72
+ search?: string;
73
+ group?: TableGroup<TableDefinitions[TName]["Output"]>;
74
+ }
75
+ type Row<Shape> = {
76
+ id: number;
77
+ createdAt: string;
78
+ updatedAt: string;
79
+ } & Shape;
80
+ type SearchResult<Shape> = {
81
+ id: number;
82
+ createdAt: string;
83
+ updatedAt: string;
84
+ similarity: number;
85
+ } & Shape;
86
+ export declare class BaseTable<TName extends string = string> implements Definitions.Primitive {
87
+ readonly name: TName;
88
+ readonly description?: string;
89
+ readonly factor: number;
90
+ readonly columns: Record<string, Typings.ColumnDefinition<TName>>;
91
+ readonly schema: ZuiObjectSchema;
92
+ readonly nullableColumns: Set<string>;
93
+ readonly searchableColumns: Set<string>;
94
+ readonly computedColumns: Set<string>;
95
+ private get client();
96
+ constructor(props: Typings.Props<TName>);
97
+ getRow(props: {
98
+ id: number;
99
+ }): Promise<Row<TableDefinitions[TName]["Output"]>>;
100
+ findRows<TOptions extends FindRowsOptions<TName>>(options?: TOptions): Promise<{
101
+ rows: TOptions["group"] extends TableGroup<TableDefinitions[TName]["Output"]> ? GroupResultShape<TableDefinitions[TName]["Output"], TOptions["group"]>[] : SearchResult<TableDefinitions[TName]["Output"]>[];
102
+ hasMore: boolean;
103
+ limit: number;
104
+ offset: number;
105
+ }>;
106
+ createRows({ rows, waitComputed, }: {
107
+ rows: TableDefinitions[TName]["Input"][];
108
+ waitComputed?: boolean;
109
+ }): Promise<{
110
+ rows: Row<TableDefinitions[TName]["Output"]>[];
111
+ errors?: string[];
112
+ warnings?: string[];
113
+ }>;
114
+ deleteAllRows(): Promise<{
115
+ deletedRows: number;
116
+ }>;
117
+ deleteRowIds(ids: number[]): Promise<{
118
+ deletedRows: number;
119
+ }>;
120
+ deleteRows(filter: FindRowsOptions<TName>["filter"]): Promise<{
121
+ deletedRows: number;
122
+ }>;
123
+ updateRows(props: {
124
+ rows: (Partial<TableDefinitions[TName]["Input"]> & {
125
+ id: number;
126
+ })[];
127
+ waitComputed?: boolean;
128
+ }): Promise<{
129
+ rows: Row<TableDefinitions[TName]["Output"]>[];
130
+ errors?: string[];
131
+ warnings?: string[];
132
+ }>;
133
+ upsertRows(props: {
134
+ rows: (Partial<TableDefinitions[TName]["Input"]> & {
135
+ id?: number;
136
+ })[];
137
+ waitComputed?: boolean;
138
+ keyColumn?: keyof TableDefinitions[TName]["Input"];
139
+ }): Promise<{
140
+ updated: Row<TableDefinitions[TName]["Output"]>[];
141
+ inserted: Row<TableDefinitions[TName]["Output"]>[];
142
+ errors?: string[];
143
+ warnings?: string[];
144
+ }>;
145
+ getTable(): Promise<{
146
+ rows: number;
147
+ stale: number;
148
+ indexing: number;
149
+ table: Table;
150
+ }>;
151
+ }
152
+ export { BaseTable as Table };
153
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/primitives/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Definitions } from "./definition";
2
+ import { EventName } from "../_types/events";
3
+ import { Triggers } from "../_types/triggers";
4
+ export declare namespace Typings {
5
+ type TriggerHandlerProps<TName extends keyof Triggers> = {
6
+ event: TName extends keyof Triggers ? Triggers[TName]["event"] : any;
7
+ };
8
+ type Props<TName extends keyof Triggers = keyof Triggers> = {
9
+ name: TName;
10
+ description?: string;
11
+ events: EventName[];
12
+ /**
13
+ * Handler function that receives the matched event
14
+ */
15
+ handler: (props: TriggerHandlerProps<TName>) => Promise<void> | void;
16
+ };
17
+ const Primitive: "trigger";
18
+ }
19
+ export declare class Trigger<TName extends keyof Triggers> implements Definitions.Primitive {
20
+ readonly name: TName;
21
+ readonly description: string | undefined;
22
+ readonly events: EventName[];
23
+ readonly handler: Typings.Props<TName>["handler"];
24
+ constructor(props: Typings.Props<TName>);
25
+ }
26
+ //# sourceMappingURL=trigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/primitives/trigger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,yBAAiB,OAAO,CAAC;IACvB,KAAY,mBAAmB,CAAC,KAAK,SAAS,MAAM,QAAQ,IAAI;QAC9D,KAAK,EAAE,KAAK,SAAS,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;KACtE,CAAC;IAEF,KAAY,KAAK,CAAC,KAAK,SAAS,MAAM,QAAQ,GAAG,MAAM,QAAQ,IAAI;QACjE,IAAI,EAAE,KAAK,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,SAAS,EAAE,CAAC;QACpB;;WAEG;QACH,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KACtE,CAAC;IAEK,MAAM,SAAS,EAAG,SAAkB,CAAC;CAC7C;AAmBD,qBAAa,OAAO,CAAC,KAAK,SAAS,MAAM,QAAQ,CAC/C,YAAW,WAAW,CAAC,SAAS;IAEhC,SAAgB,IAAI,EAAE,KAAK,CAAC;IAC5B,SAAgB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,SAAgB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpC,SAAgB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;gBAE7C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;CAwBxC"}
@@ -0,0 +1,80 @@
1
+ import { Workflow, type Client } from "@botpress/client";
2
+ import { z } from "@botpress/sdk";
3
+ import { BotClient } from "@botpress/sdk/dist/bot";
4
+ import { WorkflowDefinitions } from "../_types/workflows";
5
+ import { Autonomous } from "../runtime/autonomous";
6
+ import { TrackedState } from "../runtime/index";
7
+ export type WorkflowStepContext = {
8
+ output?: unknown;
9
+ attempts: number;
10
+ startedAt: string;
11
+ finishedAt?: string;
12
+ steps?: Record<string, WorkflowStepContext>;
13
+ };
14
+ declare const StepSymbol: unique symbol;
15
+ type StepExecutionSignal = {
16
+ [StepSymbol]: true;
17
+ };
18
+ export declare function isStepSignal(e: unknown): e is StepExecutionSignal;
19
+ export declare function createStepSignal(): StepExecutionSignal;
20
+ /**
21
+ * Base class for all workflow instances
22
+ */
23
+ export declare class BaseWorkflowInstance<TName extends keyof WorkflowDefinitions> {
24
+ readonly id: string;
25
+ readonly name: TName;
26
+ readonly key?: string | undefined;
27
+ readonly input: WorkflowDefinitions[TName]["input"];
28
+ readonly createdAt: Date;
29
+ readonly updatedAt: Date;
30
+ readonly client: BotClient<any>;
31
+ readonly status: string;
32
+ readonly workflow: Workflow;
33
+ set state(state: WorkflowDefinitions[TName]["state"]);
34
+ get state(): WorkflowDefinitions[TName]["state"];
35
+ constructor(workflow: Workflow, client: BotClient<any>);
36
+ static readonly Primitive: "workflow_instance";
37
+ static load<TName extends keyof WorkflowDefinitions>(props: {
38
+ id: string;
39
+ workflow?: Workflow;
40
+ }): Promise<BaseWorkflowInstance<TName>>;
41
+ /**
42
+ * Executes the workflow with the provided autonomous engine configuration.
43
+ * Workflows always run in "worker" mode (no chat capabilities).
44
+ */
45
+ execute(props: Autonomous.Props): Promise<import("llmz").ExecutionResult>;
46
+ /**
47
+ * Provide data in response to a workflow data request (instance method).
48
+ * Call this method from a conversation handler when you receive a WorkflowDataRequestEvent.
49
+ * @param request - The name of the request being responded to
50
+ * @param data - The data to provide to the workflow
51
+ * @example
52
+ * if (type === 'workflow_request') {
53
+ * await workflow.provide('topic', { topic: "Hello" });
54
+ * }
55
+ */
56
+ provide<TRequest extends keyof WorkflowDefinitions[TName]["requests"] & string>(request: TRequest, data: WorkflowDefinitions[TName]["requests"][TRequest]): Promise<void>;
57
+ /**
58
+ * Returns a string representation for console.log
59
+ */
60
+ toString(): string;
61
+ /**
62
+ * Returns a JSON representation for serialization
63
+ */
64
+ toJSON(): any;
65
+ }
66
+ export declare function createWorkflowExecutionState(client: Client, workflowId: string): TrackedState<import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodObject<{
67
+ executionCount: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodNumber>;
68
+ revision: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodNumber>;
69
+ steps: import("@bpinternal/zui").ZodRecord<import("@bpinternal/zui").ZodString, z.ZodType<WorkflowStepContext>>;
70
+ }, "strip", {
71
+ executionCount: number;
72
+ revision: number;
73
+ steps: Record<string, WorkflowStepContext>;
74
+ }, {
75
+ steps: Record<string, WorkflowStepContext>;
76
+ executionCount?: number | undefined;
77
+ revision?: number | undefined;
78
+ }>>>;
79
+ export {};
80
+ //# sourceMappingURL=workflow-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-instance.d.ts","sourceRoot":"","sources":["../../src/primitives/workflow-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAmB,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAEL,YAAY,EAGb,MAAM,kBAAkB,CAAC;AAK1B,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC7C,CAAC;AAwBF,QAAA,MAAM,UAAU,eAA2B,CAAC;AAE5C,KAAK,mBAAmB,GAAG;IACzB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,mBAAmB,CAEjE;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,CAItD;AAED;;GAEG;AACH,qBAAa,oBAAoB,CAAC,KAAK,SAAS,MAAM,mBAAmB;IACvE,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,KAAK,CAAC;IAC5B,SAAgB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAgB,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3D,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAKnC,IAAI,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAEnD;IAED,IAAI,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAE/C;gBAEW,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;IAwBtD,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAG,mBAAmB,CAAU;WAE5C,IAAI,CAAC,KAAK,SAAS,MAAM,mBAAmB,EAAE,KAAK,EAAE;QAChE,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAgBxC;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK;IAQrC;;;;;;;;;OASG;IACG,OAAO,CAAC,QAAQ,SAAS,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,EAClF,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GACrD,OAAO,CAAC,IAAI,CAAC;IAyKhB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAKlB;;OAEG;IACH,MAAM,IAAI,GAAG;CAkBd;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM;;;;;;;;;;;;KASnB"}
@@ -0,0 +1,184 @@
1
+ import type { Workflow } from "@botpress/client";
2
+ import type { BaseWorkflow } from "./workflow";
3
+ import type { ZuiType } from "../types";
4
+ import { z, type ZodType } from "@botpress/sdk";
5
+ type WorkflowStepOptions = {
6
+ maxAttempts?: number;
7
+ };
8
+ type MapOptions = {
9
+ maxAttempts?: number;
10
+ concurrency?: number;
11
+ };
12
+ /**
13
+ * Workflow step execution API. Steps are the building blocks of workflows with automatic retry logic and state persistence.
14
+ */
15
+ export interface WorkflowStep {
16
+ /**
17
+ * Execute a workflow step with automatic retry logic and state persistence.
18
+ * Steps are idempotent and resumable - if a step has already been executed, its cached result is returned immediately.
19
+ * @param name - Unique identifier for this step within the workflow
20
+ * @param run - Function to execute, receives the current attempt number
21
+ * @param options - Configuration options
22
+ * @param options.maxAttempts - Maximum number of retry attempts (default: 5)
23
+ * @returns The result of the step execution
24
+ * @example
25
+ * const data = await step("fetch-user", async () => {
26
+ * return await fetchUser(userId);
27
+ * });
28
+ */
29
+ <T>(name: string, run: ({ attempt }: {
30
+ attempt: number;
31
+ }) => T | Promise<T>, options?: WorkflowStepOptions): Promise<T>;
32
+ /**
33
+ * Put the workflow into listening mode, waiting for external events to resume.
34
+ * The workflow will pause at this step and can be resumed by triggering it with an event.
35
+ * @param name - The name of the step
36
+ * @example
37
+ * await step.listen("wait-for-approval");
38
+ * // Workflow pauses here until an event triggers it to continue
39
+ */
40
+ listen(name: string): Promise<void>;
41
+ /**
42
+ * Mark the workflow as failed with a specific reason and stop execution.
43
+ * This immediately terminates the workflow and sets its status to "failed".
44
+ * @param reason - Description of why the workflow failed
45
+ * @example
46
+ * if (!user.isVerified) {
47
+ * await step.fail("User verification required");
48
+ * }
49
+ */
50
+ fail(reason: string): Promise<void>;
51
+ /**
52
+ * Record a progress checkpoint in the workflow without performing any action.
53
+ * Useful for tracking workflow execution stages and creating audit trails.
54
+ * @param name - The name of the progress checkpoint
55
+ * @example
56
+ * await step.progress("Started processing");
57
+ * // ... do work ...
58
+ * await step.progress("Finished processing");
59
+ */
60
+ progress(name: string): Promise<void>;
61
+ /**
62
+ * Immediately abort the workflow execution without marking it as failed.
63
+ * The workflow status remains unchanged and can potentially be resumed later.
64
+ * This is different from step.fail() which marks the workflow as failed.
65
+ * @example
66
+ * if (shouldPause) {
67
+ * step.abort(); // Stop execution but keep workflow in current state
68
+ * }
69
+ */
70
+ abort(): void;
71
+ /**
72
+ * Pause workflow execution for the specified duration in milliseconds.
73
+ * For delays >= 10 seconds, the workflow enters listening mode to save resources.
74
+ * For shorter delays, uses an in-memory timeout.
75
+ * @param name - The name of the step
76
+ * @param ms - Duration to sleep in milliseconds
77
+ * @example
78
+ * await step.sleep("wait-5-min", 5 * 60 * 1000);
79
+ * await step.sleep("short-delay", 1000);
80
+ */
81
+ sleep(name: string, ms: number): Promise<void>;
82
+ /**
83
+ * Sleep until the specified date, minus a buffer to ensure the step can complete before the workflow times out.
84
+ * If the date is in the past, the step will return immediately.
85
+ * @param name - The name of the step
86
+ * @param date - The date to sleep until
87
+ * @example
88
+ * await step.sleepUntil("wait-until-noon", new Date("2025-01-15T12:00:00Z"));
89
+ */
90
+ sleepUntil(name: string, date: Date | string): Promise<void>;
91
+ /**
92
+ * Wait for another workflow to complete before continuing.
93
+ * The current workflow will pause and poll until the target workflow finishes.
94
+ * @param name - The name of the step
95
+ * @param workflowId - ID of the workflow to wait for
96
+ * @returns The completed workflow object
97
+ * @throws Error if attempting to wait for the same workflow (would cause deadlock)
98
+ * @example
99
+ * const childWorkflow = await childWorkflowInstance.start({});
100
+ * const result = await step.waitForWorkflow("wait-for-child", childWorkflow.id);
101
+ */
102
+ waitForWorkflow(name: string, workflowId: string): Promise<Workflow>;
103
+ /**
104
+ * Start another workflow and wait for it to complete, returning its output.
105
+ * This is a convenience method that combines workflow.start() and step.waitForWorkflow().
106
+ * @param name - The name of the step
107
+ * @param workflow - The workflow instance to execute
108
+ * @returns The output of the completed workflow
109
+ * @example
110
+ * const processedData = await step.executeWorkflow(
111
+ * "process-data",
112
+ * dataProcessingWorkflow
113
+ * );
114
+ */
115
+ executeWorkflow<TName extends string, TInput extends ZuiType, TOutput extends ZodType>(name: string, workflow: BaseWorkflow<TName, TInput, TOutput>, input?: z.infer<TInput>): Promise<z.infer<TOutput>>;
116
+ /**
117
+ * Process an array of items in parallel with controlled concurrency, collecting results.
118
+ * Each item is processed in its own step with automatic retry logic.
119
+ * @param name - The name of the map operation
120
+ * @param items - Array of items to process
121
+ * @param run - Function to process each item, receives the item and its index
122
+ * @param opts - Configuration options
123
+ * @param opts.maxAttempts - Maximum retry attempts per item (default: 5)
124
+ * @param opts.concurrency - Maximum number of concurrent operations (default: 1)
125
+ * @returns Array of results in the same order as input items
126
+ * @example
127
+ * const results = await step.map(
128
+ * "process-users",
129
+ * users,
130
+ * async (user, { i }) => processUser(user),
131
+ * { concurrency: 5 }
132
+ * );
133
+ */
134
+ map<T, U>(name: string, items: T[], run: (input: T, opts: {
135
+ i: number;
136
+ }) => Promise<U>, opts?: MapOptions): Promise<U[]>;
137
+ /**
138
+ * Process an array of items in parallel without collecting results.
139
+ * Similar to step.map but doesn't return an array of results (for side effects only).
140
+ * @param name - The name of the forEach operation
141
+ * @param items - Array of items to process
142
+ * @param run - Function to process each item, receives the item and its index
143
+ * @param opts - Configuration options
144
+ * @param opts.maxAttempts - Maximum retry attempts per item (default: 5)
145
+ * @param opts.concurrency - Maximum number of concurrent operations (default: 1)
146
+ * @example
147
+ * await step.forEach(
148
+ * "notify-users",
149
+ * users,
150
+ * async (user) => sendNotification(user),
151
+ * { concurrency: 10 }
152
+ * );
153
+ */
154
+ forEach<T>(name: string, items: T[], run: (input: T, opts: {
155
+ i: number;
156
+ }) => Promise<void>, opts?: MapOptions): Promise<void>;
157
+ /**
158
+ * Process an array of items in sequential batches.
159
+ * Items are grouped into batches and each batch is processed as a single step.
160
+ * Useful for bulk operations with external APIs that accept multiple items.
161
+ * @param name - The name of the batch operation
162
+ * @param items - Array of items to process
163
+ * @param run - Function to process each batch, receives the batch array and starting index
164
+ * @param opts - Configuration options
165
+ * @param opts.batchSize - Number of items per batch (default: 20)
166
+ * @param opts.maxAttempts - Maximum retry attempts per batch (default: 5)
167
+ * @example
168
+ * await step.batch(
169
+ * "bulk-insert",
170
+ * records,
171
+ * async (batch) => database.bulkInsert(batch),
172
+ * { batchSize: 100 }
173
+ * );
174
+ */
175
+ batch<T>(name: string, items: T[], run: (input: T[], opts: {
176
+ i: number;
177
+ }) => Promise<void>, opts?: {
178
+ batchSize?: number;
179
+ maxAttempts?: number;
180
+ }): Promise<void>;
181
+ }
182
+ export declare const step: WorkflowStep;
183
+ export {};
184
+ //# sourceMappingURL=workflow-step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-step.d.ts","sourceRoot":"","sources":["../../src/primitives/workflow-step.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { Client } from "@botpress/client";
2
+ import { z } from "../library";
3
+ import { WorkflowDataRequestEvent } from "../runtime";
4
+ type UpdateWorkflowInput = Client["updateWorkflow"];
5
+ export declare const updateWorkflow: UpdateWorkflowInput;
6
+ /**
7
+ * Type guard to check if an event is a workflow data request.
8
+ * Use this in conversation handlers to detect when a workflow needs data.
9
+ * @param event - The event to check
10
+ * @returns True if the event is a WorkflowDataRequestEvent
11
+ * @example
12
+ * if (isWorkflowDataRequest(event)) {
13
+ * await MyWorkflow.provide(event, { orderId: "12345" });
14
+ * }
15
+ */
16
+ export declare function isWorkflowDataRequest(event: unknown): event is {
17
+ type: typeof WorkflowDataRequestEvent.name;
18
+ payload: z.infer<typeof WorkflowDataRequestEvent.schema>;
19
+ };
20
+ /**
21
+ * Type guard to narrow workflow instance by name.
22
+ * Use this in conversation handlers to get properly typed workflow instances.
23
+ * @param workflow - The workflow instance to check
24
+ * @param name - The workflow name to check against
25
+ * @returns True if the workflow matches the given name
26
+ * @example
27
+ * if (type === 'workflow_request' && isWorkflow(workflow, 'test3')) {
28
+ * // workflow is now typed as BaseWorkflowInstance<'test3'>
29
+ * await workflow.provide('topic', { topic: "Hello" });
30
+ * }
31
+ */
32
+ export declare function isWorkflow<TName extends string>(workflow: {
33
+ name: string;
34
+ } | undefined, name: TName): workflow is import("./workflow-instance").BaseWorkflowInstance<TName extends keyof import("../_types/workflows").WorkflowDefinitions ? TName : never>;
35
+ export {};
36
+ //# sourceMappingURL=workflow-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-utils.d.ts","sourceRoot":"","sources":["../../src/primitives/workflow-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAW,CAAC,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGtD,KAAK,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACpD,eAAO,MAAM,cAAc,EAAE,mBAqC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAC9D,IAAI,EAAE,OAAO,wBAAwB,CAAC,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;CAC1D,CAEA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,EAC7C,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACtC,IAAI,EAAE,KAAK,GACV,QAAQ,IAAI,OAAO,qBAAqB,EAAE,oBAAoB,CAAC,KAAK,SAAS,MAAM,OAAO,qBAAqB,EAAE,mBAAmB,GAAG,KAAK,GAAG,KAAK,CAAC,CAEvJ"}
@@ -0,0 +1,86 @@
1
+ import { z, ZodType } from "@botpress/sdk";
2
+ import { ZuiType } from "../types";
3
+ import { WorkflowDefinitions } from "../_types/workflows";
4
+ import { BaseWorkflowInstance } from "./workflow-instance";
5
+ import type { WorkflowStep } from "./workflow-step";
6
+ import type { BaseBot, BotClient } from "@botpress/sdk/dist/bot";
7
+ import { Workflow } from "@botpress/client";
8
+ import { Autonomous, WorkflowDataRequestEvent } from "../runtime";
9
+ export declare namespace Typings {
10
+ type StepCallSignature = <T>(name: string, run: ({ attempt }: {
11
+ attempt: number;
12
+ }) => T | Promise<T>, options?: {
13
+ maxAttempts?: number;
14
+ }) => Promise<T>;
15
+ type StepMethods = Pick<WorkflowStep, "listen" | "fail" | "progress" | "abort" | "sleep" | "sleepUntil" | "waitForWorkflow" | "executeWorkflow" | "map" | "forEach" | "batch">;
16
+ export type TypedWorkflowStep<Requests extends Record<string, ZuiType>> = StepCallSignature & StepMethods & {
17
+ /**
18
+ * Request data from the conversation and wait for a response.
19
+ * The workflow will pause and send a data request event to the conversation.
20
+ * Use WorkflowInstance.provide() in the conversation handler to respond.
21
+ * @param request - The name of the request (must be defined in workflow requests)
22
+ * @param message - Message to display to the user describing what data is needed
23
+ * @param stepName - Optional custom name for the step (defaults to request)
24
+ * @returns The provided data validated against the request schema
25
+ * @throws Error if workflow has no conversationId or request not found
26
+ */
27
+ request<TRequest extends keyof Requests & string>(request: TRequest, message: string, stepName?: string): Promise<z.infer<Requests[TRequest]>>;
28
+ };
29
+ export type HandlerProps<Input extends ZuiType = ZuiType, _Output extends ZuiType = ZuiType, State extends ZuiType = ZuiType, Requests extends Record<string, ZuiType> = Record<string, ZuiType>, TBot extends BaseBot = BaseBot> = {
30
+ input: z.infer<Input>;
31
+ state: z.infer<State>;
32
+ step: TypedWorkflowStep<Requests>;
33
+ client: BotClient<TBot>;
34
+ execute: Autonomous.ExecuteFn;
35
+ };
36
+ export type Handler<TName extends string = string, Input extends ZuiType = ZuiType, Output extends ZuiType = ZuiType, State extends ZuiType = ZuiType, Requests extends Record<string, ZuiType> = Record<string, ZuiType>> = (this: BaseWorkflowInstance<TName>, props: HandlerProps<Input, Output, State, Requests>) => Promise<z.infer<Output>> | z.infer<Output>;
37
+ export type Props<TName extends string = string, Input extends ZuiType = ZuiType, Output extends ZuiType = ZuiType, State extends ZuiType = ZuiType, Requests extends Record<string, ZuiType> = Record<string, ZuiType>> = {
38
+ name: TName;
39
+ description?: string;
40
+ input?: Input;
41
+ output?: Output;
42
+ state?: State;
43
+ requests?: Requests;
44
+ handler: Handler<TName, Input, Output, State, Requests>;
45
+ schedule?: string;
46
+ timeout?: `${number}s` | `${number}m` | `${number}h`;
47
+ };
48
+ export const Primitive: "workflow";
49
+ export {};
50
+ }
51
+ export declare class BaseWorkflow<TName extends string = string, Input extends ZuiType = WorkflowDefinitions[TName] extends never ? ZuiType : WorkflowDefinitions[TName]["input"] extends ZodType ? WorkflowDefinitions[TName]["input"] : ZuiType, Output extends ZuiType = WorkflowDefinitions[TName] extends never ? ZuiType : WorkflowDefinitions[TName]["output"] extends ZodType ? WorkflowDefinitions[TName]["output"] : ZuiType, State extends ZuiType = WorkflowDefinitions[TName] extends never ? ZuiType : WorkflowDefinitions[TName]["state"] extends ZodType ? WorkflowDefinitions[TName]["state"] : ZuiType, Requests extends Record<string, ZuiType> = Record<string, ZuiType>> {
52
+ readonly name: TName;
53
+ readonly description?: string;
54
+ readonly timeout: number;
55
+ state: z.infer<State>;
56
+ constructor(props: Typings.Props<TName, Input, Output, State, Requests>);
57
+ /**
58
+ * Get or create a workflow instance with the given key and input
59
+ *
60
+ * @param props.key - Optional unique key for workflow deduplication
61
+ * @param props.start - Whether to start the workflow immediately (default: true)
62
+ * @param props.input - The input data for the workflow
63
+ * @returns The workflow instance
64
+ */
65
+ getOrCreate(props: {
66
+ key?: string;
67
+ statuses?: Workflow["status"][];
68
+ input: WorkflowDefinitions[TName] extends never ? z.infer<Input> : WorkflowDefinitions[TName]["input"];
69
+ }): Promise<BaseWorkflowInstance<TName>>;
70
+ /**
71
+ * Provide data in response to a workflow data request.
72
+ * Call this method from a conversation handler when you receive a WorkflowDataRequestEvent.
73
+ * @param event - The event object from the conversation handler
74
+ * @param data - The data to provide to the workflow
75
+ * @example
76
+ * if (isWorkflowDataRequest(event)) {
77
+ * await SomeWorkflow.provide(event, { orderId: "12345" });
78
+ * }
79
+ */
80
+ provide(event: {
81
+ type: string;
82
+ payload: z.infer<typeof WorkflowDataRequestEvent.schema>;
83
+ }, data: any): Promise<void>;
84
+ start(input: z.infer<Input>): Promise<BaseWorkflowInstance<TName>>;
85
+ }
86
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/primitives/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,oBAAoB,EAErB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAU,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,UAAU,EAEV,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAKpB,yBAAiB,OAAO,CAAC;IAEvB,KAAK,iBAAiB,GAAG,CAAC,CAAC,EACzB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACzD,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAC/B,OAAO,CAAC,CAAC,CAAC,CAAC;IAGhB,KAAK,WAAW,GAAG,IAAI,CACrB,YAAY,EACV,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,OAAO,GACP,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,KAAK,GACL,SAAS,GACT,OAAO,CACV,CAAC;IAEF,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACpE,iBAAiB,GACf,WAAW,GAAG;QACZ;;;;;;;;;WASG;QACH,OAAO,CAAC,QAAQ,SAAS,MAAM,QAAQ,GAAG,MAAM,EAC9C,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KACzC,CAAC;IAEN,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,OAAO,SAAS,OAAO,GAAG,OAAO,EACjC,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,SAAS,OAAO,GAAG,OAAO,IAC5B;QACF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC;KAC/B,CAAC;IAEF,MAAM,MAAM,OAAO,CACjB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,OAAO,GAAG,OAAO,EAChC,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAChE,CACF,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAChD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,MAAM,KAAK,CACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,OAAO,GAAG,OAAO,EAChC,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAChE;QACF,IAAI,EAAE,KAAK,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,CAAC;KACtD,CAAC;IAEF,MAAM,CAAC,MAAM,SAAS,EAAG,UAAmB,CAAC;;CAC9C;AAED,qBAAa,YAAY,CACvB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,KAAK,SAAS,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,KAAK,GAC5D,OAAO,GACP,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,OAAO,GACjD,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GACnC,OAAO,EACb,MAAM,SAAS,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,KAAK,GAC7D,OAAO,GACP,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,OAAO,GAClD,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GACpC,OAAO,EACb,KAAK,SAAS,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,KAAK,GAC5D,OAAO,GACP,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,OAAO,GACjD,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GACnC,OAAO,EACb,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElE,SAAgB,IAAI,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAe9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAY;IAGpC,KAAK,EAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEX,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;IAuDvE;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,EAAE;QACvB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,SAAS,KAAK,GAC3C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GACd,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;KACzC,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAoDxC;;;;;;;;;OASG;IACG,OAAO,CACX,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;KAC1D,EACD,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC;IAkDV,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;CAwBzE"}
@@ -0,0 +1,6 @@
1
+ import { BotActions } from "../_types/actions";
2
+ import { IntegrationActions } from "../_types/integration-actions";
3
+ type ActionsProxy = IntegrationActions & BotActions;
4
+ export declare const actions: ActionsProxy;
5
+ export {};
6
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/runtime/actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAKnE,KAAK,YAAY,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAEpD,eAAO,MAAM,OAAO,EAAE,YA6LpB,CAAC"}