@drax/ai-back 3.29.0 → 3.32.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 (103) hide show
  1. package/dist/agents/ChatbotTaskService.js +143 -0
  2. package/dist/agents/ChatbotTaskTools.js +756 -0
  3. package/dist/agents/DraxAgent.js +450 -0
  4. package/dist/controllers/AgentSessionController.js +18 -0
  5. package/dist/controllers/DraxAgentController.js +114 -0
  6. package/dist/factory/services/AgentSessionServiceFactory.js +30 -0
  7. package/dist/index.js +15 -1
  8. package/dist/interfaces/IAgentSession.js +1 -0
  9. package/dist/interfaces/IAgentSessionRepository.js +1 -0
  10. package/dist/interfaces/IBuilderTool.js +1 -0
  11. package/dist/interfaces/IDraxAgent.js +1 -0
  12. package/dist/interfaces/IDraxAgentController.js +1 -0
  13. package/dist/interfaces/IDraxAgentRoutes.js +1 -0
  14. package/dist/models/AgentSessionModel.js +31 -0
  15. package/dist/permissions/AgentPermissions.js +6 -0
  16. package/dist/permissions/AgentSessionPermissions.js +10 -0
  17. package/dist/repository/mongo/AgentSessionMongoRepository.js +13 -0
  18. package/dist/repository/sqlite/AgentSessionSqliteRepository.js +34 -0
  19. package/dist/routes/AgentSessionRoutes.js +21 -0
  20. package/dist/routes/ChatbotTaskRoutes.js +8 -0
  21. package/dist/routes/DraxAgentRoutes.js +9 -0
  22. package/dist/schemas/AgentSessionSchema.js +25 -0
  23. package/dist/services/AgentSessionService.js +9 -0
  24. package/dist/tools/BuilderTool.js +248 -0
  25. package/dist/tools/ToolBuilder.js +243 -0
  26. package/package.json +4 -4
  27. package/src/agents/DraxAgent.ts +574 -0
  28. package/src/controllers/AgentSessionController.ts +29 -0
  29. package/src/controllers/DraxAgentController.ts +135 -0
  30. package/src/factory/services/AgentSessionServiceFactory.ts +41 -0
  31. package/src/index.ts +58 -1
  32. package/src/interfaces/IAIProvider.ts +8 -0
  33. package/src/interfaces/IAgentSession.ts +44 -0
  34. package/src/interfaces/IAgentSessionRepository.ts +11 -0
  35. package/src/interfaces/IBuilderTool.ts +51 -0
  36. package/src/interfaces/IDraxAgent.ts +108 -0
  37. package/src/interfaces/IDraxAgentController.ts +5 -0
  38. package/src/interfaces/IDraxAgentRoutes.ts +7 -0
  39. package/src/models/AgentSessionModel.ts +46 -0
  40. package/src/permissions/AgentPermissions.ts +10 -0
  41. package/src/permissions/AgentSessionPermissions.ts +14 -0
  42. package/src/repository/mongo/AgentSessionMongoRepository.ts +22 -0
  43. package/src/repository/sqlite/AgentSessionSqliteRepository.ts +42 -0
  44. package/src/routes/AgentSessionRoutes.ts +38 -0
  45. package/src/routes/DraxAgentRoutes.ts +12 -0
  46. package/src/schemas/AgentSessionSchema.ts +30 -0
  47. package/src/services/AgentSessionService.ts +20 -0
  48. package/src/tools/BuilderTool.ts +289 -0
  49. package/test/DraxAgent.test.ts +221 -0
  50. package/test/ToolBuilder.test.ts +90 -0
  51. package/tsconfig.tsbuildinfo +1 -1
  52. package/types/agents/ChatbotTaskService.d.ts +42 -0
  53. package/types/agents/ChatbotTaskService.d.ts.map +1 -0
  54. package/types/agents/ChatbotTaskTools.d.ts +54 -0
  55. package/types/agents/ChatbotTaskTools.d.ts.map +1 -0
  56. package/types/agents/DraxAgent.d.ts +55 -0
  57. package/types/agents/DraxAgent.d.ts.map +1 -0
  58. package/types/controllers/AgentSessionController.d.ts +8 -0
  59. package/types/controllers/AgentSessionController.d.ts.map +1 -0
  60. package/types/controllers/DraxAgentController.d.ts +16 -0
  61. package/types/controllers/DraxAgentController.d.ts.map +1 -0
  62. package/types/factory/services/AgentSessionServiceFactory.d.ts +8 -0
  63. package/types/factory/services/AgentSessionServiceFactory.d.ts.map +1 -0
  64. package/types/index.d.ts +14 -2
  65. package/types/index.d.ts.map +1 -1
  66. package/types/interfaces/IAIProvider.d.ts +7 -1
  67. package/types/interfaces/IAIProvider.d.ts.map +1 -1
  68. package/types/interfaces/IAgentSession.d.ts +39 -0
  69. package/types/interfaces/IAgentSession.d.ts.map +1 -0
  70. package/types/interfaces/IAgentSessionRepository.d.ts +6 -0
  71. package/types/interfaces/IAgentSessionRepository.d.ts.map +1 -0
  72. package/types/interfaces/IBuilderTool.d.ts +26 -0
  73. package/types/interfaces/IBuilderTool.d.ts.map +1 -0
  74. package/types/interfaces/IDraxAgent.d.ts +74 -0
  75. package/types/interfaces/IDraxAgent.d.ts.map +1 -0
  76. package/types/interfaces/IDraxAgentController.d.ts +5 -0
  77. package/types/interfaces/IDraxAgentController.d.ts.map +1 -0
  78. package/types/interfaces/IDraxAgentRoutes.d.ts +6 -0
  79. package/types/interfaces/IDraxAgentRoutes.d.ts.map +1 -0
  80. package/types/models/AgentSessionModel.d.ts +15 -0
  81. package/types/models/AgentSessionModel.d.ts.map +1 -0
  82. package/types/permissions/AgentPermissions.d.ts +6 -0
  83. package/types/permissions/AgentPermissions.d.ts.map +1 -0
  84. package/types/permissions/AgentSessionPermissions.d.ts +10 -0
  85. package/types/permissions/AgentSessionPermissions.d.ts.map +1 -0
  86. package/types/repository/mongo/AgentSessionMongoRepository.d.ts +9 -0
  87. package/types/repository/mongo/AgentSessionMongoRepository.d.ts.map +1 -0
  88. package/types/repository/sqlite/AgentSessionSqliteRepository.d.ts +23 -0
  89. package/types/repository/sqlite/AgentSessionSqliteRepository.d.ts.map +1 -0
  90. package/types/routes/AgentSessionRoutes.d.ts +4 -0
  91. package/types/routes/AgentSessionRoutes.d.ts.map +1 -0
  92. package/types/routes/ChatbotTaskRoutes.d.ts +4 -0
  93. package/types/routes/ChatbotTaskRoutes.d.ts.map +1 -0
  94. package/types/routes/DraxAgentRoutes.d.ts +4 -0
  95. package/types/routes/DraxAgentRoutes.d.ts.map +1 -0
  96. package/types/schemas/AgentSessionSchema.d.ts +51 -0
  97. package/types/schemas/AgentSessionSchema.d.ts.map +1 -0
  98. package/types/services/AgentSessionService.d.ts +10 -0
  99. package/types/services/AgentSessionService.d.ts.map +1 -0
  100. package/types/tools/BuilderTool.d.ts +35 -0
  101. package/types/tools/BuilderTool.d.ts.map +1 -0
  102. package/types/tools/ToolBuilder.d.ts +47 -0
  103. package/types/tools/ToolBuilder.d.ts.map +1 -0
@@ -0,0 +1,4 @@
1
+ declare function DraxAgentRoutes(fastify: any, options: any): Promise<void>;
2
+ export default DraxAgentRoutes;
3
+ export { DraxAgentRoutes };
4
+ //# sourceMappingURL=DraxAgentRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DraxAgentRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/DraxAgentRoutes.ts"],"names":[],"mappings":"AAEA,iBAAe,eAAe,CAAC,OAAO,KAAA,EAAE,OAAO,EAAC,GAAG,iBAMlD;AAED,eAAe,eAAe,CAAC;AAC/B,OAAO,EAAC,eAAe,EAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ declare const AgentSessionBaseSchema: z.ZodObject<{
3
+ sessionId: z.ZodString;
4
+ title: z.ZodOptional<z.ZodString>;
5
+ lastMessageAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
6
+ messages: z.ZodOptional<z.ZodArray<z.ZodObject<{
7
+ role: z.ZodEnum<{
8
+ user: "user";
9
+ assistant: "assistant";
10
+ system: "system";
11
+ }>;
12
+ content: z.ZodString;
13
+ createdAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
14
+ }, z.core.$strip>>>;
15
+ messageCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
16
+ inputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
17
+ outputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
18
+ tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
19
+ tenant: z.ZodNullable<z.ZodOptional<z.ZodCoercedString<unknown>>>;
20
+ user: z.ZodNullable<z.ZodOptional<z.ZodCoercedString<unknown>>>;
21
+ }, z.core.$strip>;
22
+ declare const AgentSessionSchema: z.ZodObject<{
23
+ sessionId: z.ZodString;
24
+ title: z.ZodOptional<z.ZodString>;
25
+ lastMessageAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
26
+ messages: z.ZodOptional<z.ZodArray<z.ZodObject<{
27
+ role: z.ZodEnum<{
28
+ user: "user";
29
+ assistant: "assistant";
30
+ system: "system";
31
+ }>;
32
+ content: z.ZodString;
33
+ createdAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
34
+ }, z.core.$strip>>>;
35
+ messageCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
36
+ inputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
37
+ outputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
38
+ tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
39
+ _id: z.ZodCoercedString<unknown>;
40
+ tenant: z.ZodNullable<z.ZodObject<{
41
+ _id: z.ZodCoercedString<unknown>;
42
+ name: z.ZodOptional<z.ZodString>;
43
+ }, z.core.$strip>>;
44
+ user: z.ZodNullable<z.ZodObject<{
45
+ _id: z.ZodCoercedString<unknown>;
46
+ username: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>>;
48
+ }, z.core.$strip>;
49
+ export default AgentSessionSchema;
50
+ export { AgentSessionSchema, AgentSessionBaseSchema };
51
+ //# sourceMappingURL=AgentSessionSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSessionSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/AgentSessionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBAiB1B,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKlB,CAAA;AAEN,eAAe,kBAAkB,CAAC;AAClC,OAAO,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { IAgentSessionRepository } from "../interfaces/IAgentSessionRepository";
2
+ import type { IAgentSessionBase, IAgentSession } from "../interfaces/IAgentSession";
3
+ import { AbstractService } from "@drax/crud-back";
4
+ import type { ZodObject, ZodRawShape } from "zod";
5
+ declare class AgentSessionService extends AbstractService<IAgentSession, IAgentSessionBase, IAgentSessionBase> {
6
+ constructor(AgentSessionRepository: IAgentSessionRepository, baseSchema?: ZodObject<ZodRawShape>, fullSchema?: ZodObject<ZodRawShape>);
7
+ }
8
+ export default AgentSessionService;
9
+ export { AgentSessionService };
10
+ //# sourceMappingURL=AgentSessionService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSessionService.d.ts","sourceRoot":"","sources":["../../src/services/AgentSessionService.ts"],"names":[],"mappings":"AACA,OAAO,KAAI,EAAC,uBAAuB,EAAC,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,KAAK,CAAC;AAEhD,cAAM,mBAAoB,SAAQ,eAAe,CAAC,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;gBAGtF,sBAAsB,EAAE,uBAAuB,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CAOxI;AAED,eAAe,mBAAmB,CAAA;AAClC,OAAO,EAAC,mBAAmB,EAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { z, type ZodObject, type ZodRawShape, type ZodTypeAny } from "zod";
2
+ import type { IPromptTool } from "../interfaces/IAIProvider.js";
3
+ import type { ToolBuilderMethod, ToolBuilderOptions } from "../interfaces/IBuilderTool.js";
4
+ declare class BuilderTool<T = any, C = any, U = any> {
5
+ protected options: ToolBuilderOptions<T, C, U>;
6
+ protected _inputSchema: ZodObject<ZodRawShape>;
7
+ protected _partialInputSchema: ZodObject<ZodRawShape>;
8
+ protected _outputSchema?: ZodObject<ZodRawShape>;
9
+ constructor(options: ToolBuilderOptions<T, C, U>);
10
+ get inputSchema(): z.ZodObject<Readonly<{
11
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
12
+ }>, z.core.$strip>;
13
+ get partialInputSchema(): z.ZodObject<Readonly<{
14
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
15
+ }>, z.core.$strip>;
16
+ get outputSchema(): z.ZodObject<Readonly<{
17
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
18
+ }>, z.core.$strip>;
19
+ getTools(): IPromptTool[];
20
+ getSystemPromptSection(): string;
21
+ objectParameters(schema: ZodObject<ZodRawShape>): z.core.ZodStandardJSONSchemaPayload<z.ZodObject<Readonly<{
22
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
23
+ }>, z.core.$strip>>;
24
+ protected buildTool(method: ToolBuilderMethod): IPromptTool;
25
+ protected getToolName(method: ToolBuilderMethod): string;
26
+ protected toJsonSchema(schema: ZodObject<ZodRawShape>): z.core.ZodStandardJSONSchemaPayload<z.ZodObject<Readonly<{
27
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
28
+ }>, z.core.$strip>>;
29
+ protected getTypeName(field: any): string | undefined;
30
+ protected fieldAdapter(field: unknown): ZodTypeAny;
31
+ protected schemaAdapter<TObj extends ZodObject<ZodRawShape>>(schema: TObj): TObj;
32
+ }
33
+ export default BuilderTool;
34
+ export { BuilderTool };
35
+ //# sourceMappingURL=BuilderTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuilderTool.d.ts","sourceRoot":"","sources":["../../src/tools/BuilderTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAC,MAAM,KAAK,CAAC;AACzE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EACR,iBAAiB,EACjB,kBAAkB,EAGrB,MAAM,+BAA+B,CAAC;AA2JvC,cAAM,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG;IAK3B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAJ1D,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACtD,SAAS,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;gBAE3B,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAM1D,IAAI,WAAW;;uBAEd;IAED,IAAI,kBAAkB;;uBAErB;IAED,IAAI,YAAY;;uBAEf;IAED,QAAQ,IAAI,WAAW,EAAE;IAIzB,sBAAsB,IAAI,MAAM;IAsBhC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC;;;IAI/C,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW;IAqB3D,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB;IAI/C,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC;;;IAIrD,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIrD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU;IA2BlD,SAAS,CAAC,aAAa,CAAC,IAAI,SAAS,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI;CAUnF;AAED,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { z, type ZodObject, type ZodRawShape, type ZodTypeAny } from "zod";
2
+ import type { IPromptTool } from "../interfaces/IAIProvider.js";
3
+ import type { IDraxCrudService } from "@drax/crud-share";
4
+ type ToolBuilderMethod = "create" | "update" | "updatePartial" | "delete" | "findById" | "findByIds" | "findOneBy" | "findOne" | "findBy" | "fetchAll" | "search" | "find" | "paginate" | "groupBy";
5
+ type ToolBuilderService<T = any, C = any, U = any> = IDraxCrudService<T, C, U> & Record<string, any>;
6
+ interface ToolBuilderOptions<T = any, C = any, U = any> {
7
+ entityName: string;
8
+ entityDescription?: string;
9
+ schema: ZodObject<ZodRawShape>;
10
+ outputSchema?: ZodObject<ZodRawShape>;
11
+ service: ToolBuilderService<T, C, U>;
12
+ methods: ToolBuilderMethod[];
13
+ toolNamePrefix?: string;
14
+ }
15
+ declare class ToolBuilder<T = any, C = any, U = any> {
16
+ protected options: ToolBuilderOptions<T, C, U>;
17
+ protected _inputSchema: ZodObject<ZodRawShape>;
18
+ protected _partialInputSchema: ZodObject<ZodRawShape>;
19
+ protected _outputSchema?: ZodObject<ZodRawShape>;
20
+ constructor(options: ToolBuilderOptions<T, C, U>);
21
+ get inputSchema(): z.ZodObject<Readonly<{
22
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
23
+ }>, z.core.$strip>;
24
+ get partialInputSchema(): z.ZodObject<Readonly<{
25
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
26
+ }>, z.core.$strip>;
27
+ get outputSchema(): z.ZodObject<Readonly<{
28
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
29
+ }>, z.core.$strip>;
30
+ getTools(): IPromptTool[];
31
+ getSystemPromptSection(): string;
32
+ objectParameters(schema: ZodObject<ZodRawShape>): z.core.ZodStandardJSONSchemaPayload<z.ZodObject<Readonly<{
33
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
34
+ }>, z.core.$strip>>;
35
+ protected buildTool(method: ToolBuilderMethod): IPromptTool;
36
+ protected getToolName(method: ToolBuilderMethod): string;
37
+ protected toJsonSchema(schema: ZodObject<ZodRawShape>): z.core.ZodStandardJSONSchemaPayload<z.ZodObject<Readonly<{
38
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
39
+ }>, z.core.$strip>>;
40
+ protected getTypeName(field: any): string | undefined;
41
+ protected fieldAdapter(field: unknown): ZodTypeAny;
42
+ protected schemaAdapter<TObj extends ZodObject<ZodRawShape>>(schema: TObj): TObj;
43
+ }
44
+ export default ToolBuilder;
45
+ export { ToolBuilder };
46
+ export type { ToolBuilderMethod, ToolBuilderOptions, ToolBuilderService };
47
+ //# sourceMappingURL=ToolBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolBuilder.d.ts","sourceRoot":"","sources":["../../src/tools/ToolBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAC,MAAM,KAAK,CAAC;AACzE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,KAAK,iBAAiB,GAChB,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,UAAU,GACV,WAAW,GACX,WAAW,GACX,SAAS,GACT,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,MAAM,GACN,UAAU,GACV,SAAS,CAAC;AAEhB,KAAK,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErG,UAAU,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAiKD,cAAM,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG;IAK3B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAJ1D,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACtD,SAAS,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;gBAE3B,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAM1D,IAAI,WAAW;;uBAEd;IAED,IAAI,kBAAkB;;uBAErB;IAED,IAAI,YAAY;;uBAEf;IAED,QAAQ,IAAI,WAAW,EAAE;IAIzB,sBAAsB,IAAI,MAAM;IAsBhC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC;;;IAI/C,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW;IAgB3D,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB;IAI/C,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC;;;IAIrD,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIrD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU;IA2BlD,SAAS,CAAC,aAAa,CAAC,IAAI,SAAS,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI;CAUnF;AAED,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAC,CAAC;AACrB,YAAY,EAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,CAAC"}