@botpress/sdk 0.11.8 → 1.0.0

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 (36) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/dist/bot/client/routes.d.ts +1 -1
  3. package/dist/bot/client/types.d.ts +1 -1
  4. package/dist/bot/definition.d.ts +77 -0
  5. package/dist/bot/implementation.d.ts +9 -68
  6. package/dist/bot/index.d.ts +1 -1
  7. package/dist/bot/server.d.ts +1 -1
  8. package/dist/index.d.ts +3 -3
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +4 -4
  11. package/dist/integration/client/routes.d.ts +1 -1
  12. package/dist/integration/client/types.d.ts +1 -1
  13. package/dist/integration/context.d.ts +1 -1
  14. package/dist/integration/definition/branded-schema.d.ts +3 -1
  15. package/dist/integration/definition/generic.d.ts +1 -1
  16. package/dist/integration/definition/integration-definition.d.ts +17 -11
  17. package/dist/integration/definition/interface-declaration.d.ts +18 -27
  18. package/dist/integration/definition/types.d.ts +22 -11
  19. package/dist/integration/server.d.ts +1 -1
  20. package/dist/package.d.ts +41 -0
  21. package/dist/schema.d.ts +2 -3
  22. package/dist/utils/index.d.ts +2 -0
  23. package/dist/utils/record-utils.d.ts +2 -0
  24. package/dist/{type-utils.d.ts → utils/type-utils.d.ts} +6 -16
  25. package/package.json +3 -4
  26. package/dist/bot/integration-instance.d.ts +0 -9
  27. package/dist/interfaces/hitl.d.ts +0 -67
  28. package/dist/interfaces/index.d.ts +0 -7
  29. package/dist/interfaces/llm.d.ts +0 -856
  30. package/dist/interfaces/schemas/index.d.ts +0 -1
  31. package/dist/interfaces/schemas/speech-to-text.d.ts +0 -68
  32. package/dist/interfaces/speech-to-text.d.ts +0 -168
  33. package/dist/interfaces/sync.d.ts +0 -125
  34. package/dist/interfaces/text-to-image.d.ts +0 -114
  35. package/dist/interfaces/typing-indicator.d.ts +0 -26
  36. package/dist/utils.d.ts +0 -5
@@ -1,8 +1,14 @@
1
+ import { InterfacePackage } from '../../package';
1
2
  import { z } from '../../zui';
2
3
  import { SchemaStore, BrandedSchema } from './branded-schema';
3
4
  import { BaseConfig, BaseEvents, BaseActions, BaseChannels, BaseStates, BaseEntities, BaseConfigs } from './generic';
4
- import { InterfaceDeclaration } from './interface-declaration';
5
- import { ConfigurationDefinition, EventDefinition, ChannelDefinition, ActionDefinition, StateDefinition, UserDefinition, SecretDefinition, EntityDefinition, InterfaceImplementationStatement, AdditionalConfigurationDefinition } from './types';
5
+ import { ConfigurationDefinition, EventDefinition, ChannelDefinition, ActionDefinition, StateDefinition, UserDefinition, SecretDefinition, EntityDefinition, AdditionalConfigurationDefinition } from './types';
6
+ export type InterfaceInstance = InterfacePackage & {
7
+ entities: Record<string, {
8
+ name: string;
9
+ schema: z.AnyZodObject;
10
+ }>;
11
+ };
6
12
  export type IntegrationDefinitionProps<TConfig extends BaseConfig = BaseConfig, TConfigs extends BaseConfigs = BaseConfigs, TEvents extends BaseEvents = BaseEvents, TActions extends BaseActions = BaseActions, TChannels extends BaseChannels = BaseChannels, TStates extends BaseStates = BaseStates, TEntities extends BaseEntities = BaseEntities> = {
7
13
  name: string;
8
14
  version: string;
@@ -35,11 +41,16 @@ export type IntegrationDefinitionProps<TConfig extends BaseConfig = BaseConfig,
35
41
  entities?: {
36
42
  [K in keyof TEntities]: EntityDefinition<TEntities[K]>;
37
43
  };
44
+ interfaces?: Record<string, InterfaceInstance>;
45
+ };
46
+ type EntitiesOfPackage<TPackage extends InterfacePackage> = {
47
+ [K in keyof TPackage['definition']['entities']]: NonNullable<TPackage['definition']['entities']>[K]['schema'];
38
48
  };
39
- type InterfaceTypeArguments<TInterfaceEntities extends BaseEntities> = {
49
+ type ExtensionBuilderInput<TIntegrationEntities extends BaseEntities> = SchemaStore<TIntegrationEntities>;
50
+ type ExtensionBuilderOutput<TInterfaceEntities extends BaseEntities> = {
40
51
  [K in keyof TInterfaceEntities]: BrandedSchema<z.ZodSchema<z.infer<TInterfaceEntities[K]>>>;
41
52
  };
42
- type ExtensionBuilder<TIntegrationEntities extends BaseEntities, TInterfaceEntities extends BaseEntities> = (input: SchemaStore<TIntegrationEntities>) => InterfaceTypeArguments<TInterfaceEntities>;
53
+ type ExtensionBuilder<TIntegrationEntities extends BaseEntities, TInterfaceEntities extends BaseEntities> = (input: ExtensionBuilderInput<TIntegrationEntities>) => ExtensionBuilderOutput<TInterfaceEntities>;
43
54
  export declare class IntegrationDefinition<TConfig extends BaseConfig = BaseConfig, TConfigs extends BaseConfigs = BaseConfigs, TEvents extends BaseEvents = BaseEvents, TActions extends BaseActions = BaseActions, TChannels extends BaseChannels = BaseChannels, TStates extends BaseStates = BaseStates, TEntities extends BaseEntities = BaseEntities> {
44
55
  readonly props: IntegrationDefinitionProps<TConfig, TConfigs, TEvents, TActions, TChannels, TStates, TEntities>;
45
56
  readonly name: this['props']['name'];
@@ -58,13 +69,8 @@ export declare class IntegrationDefinition<TConfig extends BaseConfig = BaseConf
58
69
  readonly secrets: this['props']['secrets'];
59
70
  readonly identifier: this['props']['identifier'];
60
71
  readonly entities: this['props']['entities'];
61
- readonly interfaces: Record<string, InterfaceImplementationStatement>;
72
+ readonly interfaces: this['props']['interfaces'];
62
73
  constructor(props: IntegrationDefinitionProps<TConfig, TConfigs, TEvents, TActions, TChannels, TStates, TEntities>);
63
- clone(props: Partial<IntegrationDefinitionProps<TConfig, TConfigs, TEvents, TActions, TChannels, TStates, TEntities>>): IntegrationDefinition<TConfig, TConfigs, TEvents, TActions, TChannels, TStates, TEntities>;
64
- extend<E extends BaseEntities>(interfaceDeclaration: InterfaceDeclaration<E>, builder: ExtensionBuilder<TEntities, E>): this;
65
- private _mergeActions;
66
- private _mergeEvents;
67
- private _mergeChannels;
68
- private _mergeMessage;
74
+ extend<P extends InterfacePackage>(interfacePkg: P, builder: ExtensionBuilder<TEntities, EntitiesOfPackage<P>>): this;
69
75
  }
70
76
  export {};
@@ -1,6 +1,6 @@
1
1
  import { AnyZodObject, GenericZuiSchema, ZodRef } from '../../zui';
2
2
  import { BaseActions, BaseChannels, BaseEntities, BaseEvents } from './generic';
3
- import { EntityDefinition, InterfaceImplementationStatement, ResolvedInterface } from './types';
3
+ import { ActionDefinition, ChannelDefinition, EntityDefinition, EventDefinition } from './types';
4
4
  type EntityReferences<TEntities extends BaseEntities> = {
5
5
  [K in keyof TEntities]: ZodRef;
6
6
  };
@@ -24,9 +24,6 @@ type GenericActionDefinition<TEntities extends BaseEntities, TAction extends Bas
24
24
  schema: GenericZuiSchema<EntityReferences<TEntities>, AnyZodObject>;
25
25
  };
26
26
  };
27
- export type InterfaceTemplateNameProps<TEntities extends BaseEntities = BaseEntities> = {
28
- [K in keyof TEntities]: string;
29
- };
30
27
  export type InterfaceDeclarationProps<TEntities extends BaseEntities = BaseEntities, TActions extends BaseActions = BaseActions, TEvents extends BaseEntities = BaseEntities, TChannels extends BaseChannels = BaseChannels> = {
31
28
  name: string;
32
29
  version: string;
@@ -42,32 +39,26 @@ export type InterfaceDeclarationProps<TEntities extends BaseEntities = BaseEntit
42
39
  channels?: {
43
40
  [K in keyof TChannels]: GenericChannelDefinition<TEntities, TChannels[K]>;
44
41
  };
45
- templateName?: (name: string, props: InterfaceTemplateNameProps<TEntities>) => string;
46
- };
47
- export type InterfaceResolveInput<TEntities extends BaseEntities = BaseEntities> = {
48
- entities: {
49
- [K in keyof TEntities]: {
50
- name: string;
51
- schema: TEntities[K];
52
- };
53
- };
54
- };
55
- export type InterfaceResolveOutput<TActions extends BaseActions = BaseActions, TEvents extends BaseEvents = BaseEvents> = {
56
- resolved: ResolvedInterface<TActions, TEvents>;
57
- implementStatement: InterfaceImplementationStatement;
42
+ templateName?: string;
58
43
  };
59
- export declare class InterfaceDeclaration<TEntities extends BaseEntities = BaseEntities, TActions extends BaseActions = BaseActions, TEvents extends BaseEvents = BaseEvents> {
60
- readonly props: InterfaceDeclarationProps<TEntities, TActions, TEvents>;
44
+ export declare class InterfaceDeclaration<TEntities extends BaseEntities = BaseEntities, TActions extends BaseActions = BaseActions, TEvents extends BaseEvents = BaseEvents, TChannels extends BaseChannels = BaseChannels> {
45
+ readonly props: InterfaceDeclarationProps<TEntities, TActions, TEvents, TChannels>;
61
46
  readonly name: this['props']['name'];
62
47
  readonly version: this['props']['version'];
63
- readonly entities: NonNullable<this['props']['entities']>;
64
- readonly events: NonNullable<this['props']['events']>;
65
- readonly actions: NonNullable<this['props']['actions']>;
66
- readonly channels: NonNullable<this['props']['channels']>;
48
+ readonly entities: {
49
+ [K in keyof TEntities]: EntityDefinition<TEntities[K]>;
50
+ };
51
+ readonly events: {
52
+ [K in keyof TEvents]: EventDefinition<TEvents[K]>;
53
+ };
54
+ readonly actions: {
55
+ [K in keyof TActions]: ActionDefinition<TActions[K]>;
56
+ };
57
+ readonly channels: {
58
+ [K in keyof TChannels]: ChannelDefinition<TChannels[K]>;
59
+ };
67
60
  readonly templateName: this['props']['templateName'];
68
- constructor(props: InterfaceDeclarationProps<TEntities, TActions, TEvents>);
69
- resolve(props: InterfaceResolveInput<TEntities>): InterfaceResolveOutput<TActions, TEvents>;
70
- private _dereference;
71
- private _rename;
61
+ constructor(props: InterfaceDeclarationProps<TEntities, TActions, TEvents, TChannels>);
62
+ private _getEntityReference;
72
63
  }
73
64
  export {};
@@ -1,5 +1,5 @@
1
1
  import { SchemaDefinition } from '../../schema';
2
- import { AnyZodObject } from '../../type-utils';
2
+ import { AnyZodObject } from '../../zui';
3
3
  import { BaseConfig, BaseEvents, BaseActions, BaseMessages, BaseChannels, BaseStates, BaseEntities, BaseConfigs } from './generic';
4
4
  export type TagDefinition = {
5
5
  title?: string;
@@ -80,16 +80,27 @@ export type ResolvedInterface<TEvents extends BaseEvents = BaseEvents, TActions
80
80
  [K in keyof TChannels]: ChannelDefinition<TChannels[K]>;
81
81
  };
82
82
  };
83
- export type InterfaceImplementationStatement = {
83
+ export type InterfaceImplementationStatement<TEntities extends BaseEntities = BaseEntities, TActions extends BaseActions = BaseActions, TEvents extends BaseEvents = BaseEvents, TChannels extends BaseChannels = BaseChannels> = {
84
84
  name: string;
85
85
  version: string;
86
- entities: Record<string, {
87
- name: string;
88
- }>;
89
- actions: Record<string, {
90
- name: string;
91
- }>;
92
- events: Record<string, {
93
- name: string;
94
- }>;
86
+ entities: {
87
+ [K in keyof TEntities]: {
88
+ name: string;
89
+ };
90
+ };
91
+ actions: {
92
+ [K in keyof TActions]: {
93
+ name: string;
94
+ };
95
+ };
96
+ events: {
97
+ [K in keyof TEvents]: {
98
+ name: string;
99
+ };
100
+ };
101
+ channels: {
102
+ [K in keyof TChannels]: {
103
+ name: string;
104
+ };
105
+ };
95
106
  };
@@ -1,6 +1,6 @@
1
1
  import { type Conversation, type Message, type User } from '@botpress/client';
2
2
  import { Request, Response } from '../serve';
3
- import { Cast, Merge } from '../type-utils';
3
+ import { Cast, Merge } from '../utils/type-utils';
4
4
  import { IntegrationSpecificClient } from './client';
5
5
  import { ToTags } from './client/types';
6
6
  import { type IntegrationContext } from './context';
@@ -0,0 +1,41 @@
1
+ import * as integration from './integration';
2
+ type PackageReference = {
3
+ id: string;
4
+ } | {
5
+ uri?: string;
6
+ };
7
+ type IntegrationPackageDefinition = {
8
+ name: string;
9
+ version: string;
10
+ configuration?: integration.ConfigurationDefinition;
11
+ configurations?: Record<string, integration.AdditionalConfigurationDefinition>;
12
+ events?: Record<string, integration.EventDefinition>;
13
+ actions?: Record<string, integration.ActionDefinition>;
14
+ channels?: Record<string, integration.ChannelDefinition>;
15
+ states?: Record<string, integration.StateDefinition>;
16
+ user?: integration.UserDefinition;
17
+ secrets?: Record<string, integration.SecretDefinition>;
18
+ entities?: Record<string, integration.EntityDefinition>;
19
+ interfaces?: Record<string, integration.InterfaceInstance>;
20
+ };
21
+ type InterfacePackageDefinition = {
22
+ name: string;
23
+ version: string;
24
+ templateName?: string;
25
+ entities?: Record<string, integration.EntityDefinition>;
26
+ events?: Record<string, integration.EventDefinition>;
27
+ actions?: Record<string, integration.ActionDefinition>;
28
+ channels?: Record<string, integration.ChannelDefinition>;
29
+ };
30
+ export type IntegrationPackage = PackageReference & {
31
+ type: 'integration';
32
+ definition: IntegrationPackageDefinition;
33
+ implementation?: null;
34
+ };
35
+ export type InterfacePackage = PackageReference & {
36
+ type: 'interface';
37
+ definition: InterfacePackageDefinition;
38
+ implementation?: null;
39
+ };
40
+ export type Package = IntegrationPackage | InterfacePackage;
41
+ export {};
package/dist/schema.d.ts CHANGED
@@ -1,14 +1,13 @@
1
- import { AnyZodObject } from './type-utils';
2
1
  import type z from './zui';
3
2
  type SchemaOptions<T> = {
4
3
  title: string;
5
4
  examples: T[];
6
5
  };
7
6
  type IsEmptyObject<T> = keyof T extends never ? true : false;
8
- type UiDefinition<TSchema extends AnyZodObject = AnyZodObject> = IsEmptyObject<z.infer<TSchema>> extends true ? Record<string, never> : {
7
+ type UiDefinition<TSchema extends z.AnyZodObject = z.AnyZodObject> = IsEmptyObject<z.infer<TSchema>> extends true ? Record<string, never> : {
9
8
  [K in keyof z.infer<TSchema>]: Partial<SchemaOptions<z.infer<TSchema>[K]>>;
10
9
  };
11
- export type SchemaDefinition<TSchema extends AnyZodObject = AnyZodObject> = {
10
+ export type SchemaDefinition<TSchema extends z.AnyZodObject = z.AnyZodObject> = {
12
11
  schema: TSchema;
13
12
  /**
14
13
  * @deprecated
@@ -0,0 +1,2 @@
1
+ export * as records from './record-utils';
2
+ export * as types from './type-utils';
@@ -0,0 +1,2 @@
1
+ export declare const pairs: <K extends string, V>(obj: Record<K, V>) => [K, V][];
2
+ export declare const mapValues: <K extends string, V, R>(obj: Record<K, V>, fn: (value: V, key: K) => R) => Record<K, R>;
@@ -1,22 +1,12 @@
1
- import type z from './zui';
2
- export type AnyZodObject = z.ZodObject<any>;
1
+ export type ValueOf<T> = T[keyof T];
3
2
  export type Merge<A extends object, B extends object> = Omit<A, keyof B> & B;
4
3
  export type Cast<T, U> = T extends U ? T : U;
5
- export type Iof<T extends object> = {
6
- [K in keyof T]: T[K];
4
+ export type Writable<T> = {
5
+ -readonly [K in keyof T]: T[K];
7
6
  };
7
+ export type Extends<T, U> = T extends U ? true : false;
8
+ export type IsEqual<T, U> = T extends U ? (U extends T ? true : false) : false;
9
+ export type Expect<T extends true> = T;
8
10
  export type Join<S extends (string | number | symbol)[]> = S extends [infer H, ...infer T] ? `${Cast<H, string>}${Join<Cast<T, string[]>>}` : S extends [infer H] ? Cast<H, string> : '';
9
11
  export type Split<S extends string | number | symbol, D extends string> = S extends `${infer H}${D}${infer T}` ? [H, ...Split<Cast<T, string>, D>] : [S];
10
12
  export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
11
- export type ValueOf<T> = T[keyof T];
12
- export type Writable<T> = {
13
- -readonly [K in keyof T]: T[K];
14
- };
15
- export type Inspect<T> = {
16
- [K in keyof T]: T[K];
17
- };
18
- export type KeyBy<T, Key extends keyof T> = {
19
- [TInstance in Cast<T[Key], string>]: Extract<T, {
20
- [K in Key]: TInstance;
21
- }>;
22
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botpress/sdk",
3
- "version": "0.11.8",
3
+ "version": "1.0.0",
4
4
  "description": "Botpress SDK",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -14,15 +14,14 @@
14
14
  "author": "",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@bpinternal/zui": "0.10.0",
18
- "@botpress/client": "0.33.0"
17
+ "@botpress/client": "0.33.0",
18
+ "@bpinternal/zui": "0.12.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node": "^18.11.17",
22
22
  "esbuild": "^0.16.10",
23
23
  "ts-node": "^10.9.1",
24
24
  "tsup": "^8.0.2",
25
- "type-fest": "^3.4.0",
26
25
  "typescript": "^4.9.4"
27
26
  }
28
27
  }
@@ -1,9 +0,0 @@
1
- import { BaseIntegration } from '../integration/generic';
2
- export type IntegrationInstance<TIntegration extends BaseIntegration> = {
3
- id: string | null;
4
- enabled?: boolean;
5
- configurationType?: string | null;
6
- configuration?: Record<string, any>;
7
- name: TIntegration['name'];
8
- version: TIntegration['version'];
9
- };
@@ -1,67 +0,0 @@
1
- import { InterfaceDeclaration } from '../integration';
2
- import { AnyZodObject } from '../zui';
3
- type Tuple<T> = [T, T, ...T[]];
4
- export declare const hitl: InterfaceDeclaration<import("../integration/definition/generic").BaseEntities, {
5
- createUser: import("@bpinternal/zui").ZodObject<{
6
- name: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
7
- pictureUrl: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
8
- email: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
9
- }, "strip", import("@bpinternal/zui").ZodTypeAny, {
10
- name?: string | undefined;
11
- pictureUrl?: string | undefined;
12
- email?: string | undefined;
13
- }, {
14
- name?: string | undefined;
15
- pictureUrl?: string | undefined;
16
- email?: string | undefined;
17
- }>;
18
- startHitl: import("@bpinternal/zui").ZodObject<{
19
- userId: import("@bpinternal/zui").ZodString;
20
- title: import("@bpinternal/zui").ZodString;
21
- description: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
22
- messageHistory: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodUnion<Tuple<AnyZodObject>>, "many">>;
23
- }, "strip", import("@bpinternal/zui").ZodTypeAny, {
24
- title: string;
25
- userId: string;
26
- description?: string | undefined;
27
- messageHistory?: {
28
- [x: string]: any;
29
- }[] | undefined;
30
- }, {
31
- title: string;
32
- userId: string;
33
- description?: string | undefined;
34
- messageHistory?: {
35
- [x: string]: any;
36
- }[] | undefined;
37
- }>;
38
- stopHitl: import("@bpinternal/zui").ZodObject<{
39
- conversationId: import("@bpinternal/zui").ZodString;
40
- reason: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodEnum<["timeout", "cancel"]>>;
41
- }, "strip", import("@bpinternal/zui").ZodTypeAny, {
42
- conversationId: string;
43
- reason?: "timeout" | "cancel" | undefined;
44
- }, {
45
- conversationId: string;
46
- reason?: "timeout" | "cancel" | undefined;
47
- }>;
48
- }, {
49
- hitlAssigned: import("@bpinternal/zui").ZodObject<{
50
- conversationId: import("@bpinternal/zui").ZodString;
51
- userId: import("@bpinternal/zui").ZodString;
52
- }, "strip", import("@bpinternal/zui").ZodTypeAny, {
53
- conversationId: string;
54
- userId: string;
55
- }, {
56
- conversationId: string;
57
- userId: string;
58
- }>;
59
- hitlStopped: import("@bpinternal/zui").ZodObject<{
60
- conversationId: import("@bpinternal/zui").ZodString;
61
- }, "strip", import("@bpinternal/zui").ZodTypeAny, {
62
- conversationId: string;
63
- }, {
64
- conversationId: string;
65
- }>;
66
- }>;
67
- export {};
@@ -1,7 +0,0 @@
1
- export * as schemas from './schemas';
2
- export * from './hitl';
3
- export * from './llm';
4
- export * from './speech-to-text';
5
- export * from './sync';
6
- export * from './text-to-image';
7
- export * from './typing-indicator';