@hed-hog/core 0.0.364 → 0.0.365

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 (185) hide show
  1. package/dist/ai/ai.controller.d.ts +4 -4
  2. package/dist/ai/ai.module.d.ts.map +1 -1
  3. package/dist/ai/ai.module.js +2 -0
  4. package/dist/ai/ai.module.js.map +1 -1
  5. package/dist/ai/ai.service.d.ts +7 -5
  6. package/dist/ai/ai.service.d.ts.map +1 -1
  7. package/dist/ai/ai.service.js +63 -31
  8. package/dist/ai/ai.service.js.map +1 -1
  9. package/dist/ai-instruction/ai-execution.service.d.ts +45 -0
  10. package/dist/ai-instruction/ai-execution.service.d.ts.map +1 -0
  11. package/dist/ai-instruction/ai-execution.service.js +203 -0
  12. package/dist/ai-instruction/ai-execution.service.js.map +1 -0
  13. package/dist/ai-instruction/ai-instruction.controller.d.ts +25 -0
  14. package/dist/ai-instruction/ai-instruction.controller.d.ts.map +1 -0
  15. package/dist/ai-instruction/ai-instruction.controller.js +117 -0
  16. package/dist/ai-instruction/ai-instruction.controller.js.map +1 -0
  17. package/dist/ai-instruction/ai-instruction.module.d.ts +3 -0
  18. package/dist/ai-instruction/ai-instruction.module.d.ts.map +1 -0
  19. package/dist/ai-instruction/ai-instruction.module.js +27 -0
  20. package/dist/ai-instruction/ai-instruction.module.js.map +1 -0
  21. package/dist/ai-instruction/ai-instruction.service.d.ts +38 -0
  22. package/dist/ai-instruction/ai-instruction.service.d.ts.map +1 -0
  23. package/dist/ai-instruction/ai-instruction.service.js +289 -0
  24. package/dist/ai-instruction/ai-instruction.service.js.map +1 -0
  25. package/dist/ai-instruction/ai-prompt-builder.service.d.ts +53 -0
  26. package/dist/ai-instruction/ai-prompt-builder.service.d.ts.map +1 -0
  27. package/dist/ai-instruction/ai-prompt-builder.service.js +132 -0
  28. package/dist/ai-instruction/ai-prompt-builder.service.js.map +1 -0
  29. package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts +12 -0
  30. package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts.map +1 -0
  31. package/dist/ai-instruction/dto/create-ai-instruction.dto.js +57 -0
  32. package/dist/ai-instruction/dto/create-ai-instruction.dto.js.map +1 -0
  33. package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts +10 -0
  34. package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts.map +1 -0
  35. package/dist/ai-instruction/dto/update-ai-instruction.dto.js +56 -0
  36. package/dist/ai-instruction/dto/update-ai-instruction.dto.js.map +1 -0
  37. package/dist/ai-instruction/types/ai-instruction.types.d.ts +78 -0
  38. package/dist/ai-instruction/types/ai-instruction.types.d.ts.map +1 -0
  39. package/dist/ai-instruction/types/ai-instruction.types.js +3 -0
  40. package/dist/ai-instruction/types/ai-instruction.types.js.map +1 -0
  41. package/dist/auth/auth.controller.d.ts +13 -5
  42. package/dist/auth/auth.controller.d.ts.map +1 -1
  43. package/dist/auth/auth.controller.js +39 -20
  44. package/dist/auth/auth.controller.js.map +1 -1
  45. package/dist/auth/auth.service.d.ts +18 -7
  46. package/dist/auth/auth.service.d.ts.map +1 -1
  47. package/dist/auth/auth.service.js +20 -16
  48. package/dist/auth/auth.service.js.map +1 -1
  49. package/dist/core.module.d.ts.map +1 -1
  50. package/dist/core.module.js +3 -0
  51. package/dist/core.module.js.map +1 -1
  52. package/dist/file/file.service.d.ts +37 -0
  53. package/dist/file/file.service.d.ts.map +1 -1
  54. package/dist/file/file.service.js +94 -4
  55. package/dist/file/file.service.js.map +1 -1
  56. package/dist/file/provider/abstract.provider.d.ts +6 -2
  57. package/dist/file/provider/abstract.provider.d.ts.map +1 -1
  58. package/dist/file/provider/abstract.provider.js.map +1 -1
  59. package/dist/file/provider/azure.provider.d.ts +4 -1
  60. package/dist/file/provider/azure.provider.d.ts.map +1 -1
  61. package/dist/file/provider/azure.provider.js +7 -2
  62. package/dist/file/provider/azure.provider.js.map +1 -1
  63. package/dist/file/provider/gcs.provider.d.ts +4 -1
  64. package/dist/file/provider/gcs.provider.d.ts.map +1 -1
  65. package/dist/file/provider/gcs.provider.js +7 -2
  66. package/dist/file/provider/gcs.provider.js.map +1 -1
  67. package/dist/file/provider/local.provider.d.ts +2 -2
  68. package/dist/file/provider/local.provider.d.ts.map +1 -1
  69. package/dist/file/provider/local.provider.js +7 -2
  70. package/dist/file/provider/local.provider.js.map +1 -1
  71. package/dist/file/provider/s3.provider.d.ts +4 -1
  72. package/dist/file/provider/s3.provider.d.ts.map +1 -1
  73. package/dist/file/provider/s3.provider.js +9 -6
  74. package/dist/file/provider/s3.provider.js.map +1 -1
  75. package/dist/file/provider/spaces.provider.d.ts +4 -1
  76. package/dist/file/provider/spaces.provider.d.ts.map +1 -1
  77. package/dist/file/provider/spaces.provider.js +9 -5
  78. package/dist/file/provider/spaces.provider.js.map +1 -1
  79. package/dist/integration-profile/integration-profile.controller.d.ts +3 -3
  80. package/dist/integration-profile/integration-profile.service.d.ts +3 -3
  81. package/dist/mcp-chat/mcp-chat.controller.d.ts +2 -2
  82. package/dist/mcp-chat/mcp-chat.module.d.ts.map +1 -1
  83. package/dist/mcp-chat/mcp-chat.module.js +2 -0
  84. package/dist/mcp-chat/mcp-chat.module.js.map +1 -1
  85. package/dist/mcp-chat/mcp-chat.service.d.ts +8 -3
  86. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
  87. package/dist/mcp-chat/mcp-chat.service.js +100 -20
  88. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  89. package/dist/notification/notification.service.d.ts +1 -0
  90. package/dist/notification/notification.service.d.ts.map +1 -1
  91. package/dist/notification/notification.service.js +29 -1
  92. package/dist/notification/notification.service.js.map +1 -1
  93. package/dist/oauth/oauth.service.d.ts +1 -0
  94. package/dist/oauth/oauth.service.d.ts.map +1 -1
  95. package/dist/oauth/oauth.service.js +55 -1
  96. package/dist/oauth/oauth.service.js.map +1 -1
  97. package/dist/profile/events/profile-avatar-updated.event.d.ts +7 -0
  98. package/dist/profile/events/profile-avatar-updated.event.d.ts.map +1 -0
  99. package/dist/profile/events/profile-avatar-updated.event.js +12 -0
  100. package/dist/profile/events/profile-avatar-updated.event.js.map +1 -0
  101. package/dist/profile/events/profile-email-changed.event.d.ts +7 -0
  102. package/dist/profile/events/profile-email-changed.event.d.ts.map +1 -0
  103. package/dist/profile/events/profile-email-changed.event.js +12 -0
  104. package/dist/profile/events/profile-email-changed.event.js.map +1 -0
  105. package/dist/profile/events/profile-updated.event.d.ts +7 -0
  106. package/dist/profile/events/profile-updated.event.d.ts.map +1 -0
  107. package/dist/profile/events/profile-updated.event.js +12 -0
  108. package/dist/profile/events/profile-updated.event.js.map +1 -0
  109. package/dist/profile/profile.service.d.ts +3 -1
  110. package/dist/profile/profile.service.d.ts.map +1 -1
  111. package/dist/profile/profile.service.js +28 -17
  112. package/dist/profile/profile.service.js.map +1 -1
  113. package/dist/session/session.controller.d.ts +1 -0
  114. package/dist/session/session.controller.d.ts.map +1 -1
  115. package/dist/session/session.service.d.ts +9 -4
  116. package/dist/session/session.service.d.ts.map +1 -1
  117. package/dist/session/session.service.js +61 -51
  118. package/dist/session/session.service.js.map +1 -1
  119. package/dist/setting/setting.controller.d.ts +5 -5
  120. package/dist/setting/setting.service.d.ts +5 -5
  121. package/dist/setting/setting.service.d.ts.map +1 -1
  122. package/dist/setting/setting.service.js +2 -0
  123. package/dist/setting/setting.service.js.map +1 -1
  124. package/dist/task/task.service.d.ts +8 -11
  125. package/dist/task/task.service.d.ts.map +1 -1
  126. package/dist/task/task.service.js +10 -16
  127. package/dist/task/task.service.js.map +1 -1
  128. package/dist/user/user.controller.d.ts +1 -0
  129. package/dist/user/user.controller.d.ts.map +1 -1
  130. package/dist/user/user.service.d.ts +3 -0
  131. package/dist/user/user.service.d.ts.map +1 -1
  132. package/dist/webhook-integration/webhook-command.registry.d.ts +9 -2
  133. package/dist/webhook-integration/webhook-command.registry.d.ts.map +1 -1
  134. package/dist/webhook-integration/webhook-command.registry.js.map +1 -1
  135. package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
  136. package/dist/webhook-integration/webhook-integration.service.js +13 -4
  137. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  138. package/hedhog/data/integration_provider.yaml +17 -0
  139. package/hedhog/data/integration_type.yaml +6 -0
  140. package/hedhog/data/route.yaml +86 -2
  141. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +109 -0
  142. package/hedhog/frontend/app/configurations/layout.tsx.ejs +6 -6
  143. package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +169 -14
  144. package/hedhog/frontend/messages/en.json +11 -2
  145. package/hedhog/frontend/messages/pt.json +11 -2
  146. package/hedhog/table/ai_execution.yaml +79 -0
  147. package/hedhog/table/ai_execution_step.yaml +65 -0
  148. package/hedhog/table/ai_instruction.yaml +43 -0
  149. package/hedhog/table/ai_instruction_version.yaml +30 -0
  150. package/hedhog/table/ai_model_pricing.yaml +35 -0
  151. package/hedhog/table/user_session.yaml +2 -0
  152. package/package.json +5 -4
  153. package/src/ai/ai.module.ts +2 -0
  154. package/src/ai/ai.service.ts +64 -31
  155. package/src/ai-instruction/ai-execution.service.ts +244 -0
  156. package/src/ai-instruction/ai-instruction.controller.ts +73 -0
  157. package/src/ai-instruction/ai-instruction.module.ts +14 -0
  158. package/src/ai-instruction/ai-instruction.service.ts +343 -0
  159. package/src/ai-instruction/ai-prompt-builder.service.ts +142 -0
  160. package/src/ai-instruction/dto/create-ai-instruction.dto.ts +36 -0
  161. package/src/ai-instruction/dto/update-ai-instruction.dto.ts +35 -0
  162. package/src/ai-instruction/types/ai-instruction.types.ts +90 -0
  163. package/src/auth/auth.controller.ts +23 -5
  164. package/src/auth/auth.service.ts +26 -15
  165. package/src/core.module.ts +3 -0
  166. package/src/file/file.service.ts +136 -4
  167. package/src/file/provider/abstract.provider.ts +4 -2
  168. package/src/file/provider/azure.provider.ts +6 -3
  169. package/src/file/provider/gcs.provider.ts +5 -3
  170. package/src/file/provider/local.provider.ts +7 -3
  171. package/src/file/provider/s3.provider.ts +8 -6
  172. package/src/file/provider/spaces.provider.ts +8 -7
  173. package/src/mcp-chat/mcp-chat.module.ts +19 -17
  174. package/src/mcp-chat/mcp-chat.service.ts +95 -9
  175. package/src/notification/notification.service.ts +32 -1
  176. package/src/oauth/oauth.service.ts +74 -1
  177. package/src/profile/events/profile-avatar-updated.event.ts +8 -0
  178. package/src/profile/events/profile-email-changed.event.ts +8 -0
  179. package/src/profile/events/profile-updated.event.ts +8 -0
  180. package/src/profile/profile.service.ts +25 -16
  181. package/src/session/session.service.ts +70 -52
  182. package/src/setting/setting.service.ts +10 -8
  183. package/src/task/task.service.ts +10 -16
  184. package/src/webhook-integration/webhook-command.registry.ts +10 -2
  185. package/src/webhook-integration/webhook-integration.service.ts +31 -4
@@ -10,11 +10,11 @@ export declare class AiController {
10
10
  chat(data: ChatDTO, file?: MulterFile): Promise<{
11
11
  provider: "openai";
12
12
  model: string;
13
- content: any;
13
+ content: string;
14
14
  } | {
15
15
  provider: "gemini";
16
16
  model: string;
17
- content: any;
17
+ content: string;
18
18
  }>;
19
19
  createAgent(data: CreateAgentDTO): Promise<{
20
20
  id: number;
@@ -79,12 +79,12 @@ export declare class AiController {
79
79
  slug: string;
80
80
  provider: "openai";
81
81
  model: string;
82
- content: any;
82
+ content: string;
83
83
  } | {
84
84
  slug: string;
85
85
  provider: "gemini";
86
86
  model: string;
87
- content: any;
87
+ content: string;
88
88
  }>;
89
89
  }
90
90
  //# sourceMappingURL=ai.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.module.d.ts","sourceRoot":"","sources":["../../src/ai/ai.module.ts"],"names":[],"mappings":"AAOA,qBAUa,QAAQ;CAAG"}
1
+ {"version":3,"file":"ai.module.d.ts","sourceRoot":"","sources":["../../src/ai/ai.module.ts"],"names":[],"mappings":"AAQA,qBAWa,QAAQ;CAAG"}
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.AiModule = void 0;
10
10
  const api_prisma_1 = require("@hed-hog/api-prisma");
11
11
  const common_1 = require("@nestjs/common");
12
+ const ai_instruction_module_1 = require("../ai-instruction/ai-instruction.module");
12
13
  const file_module_1 = require("../file/file.module");
13
14
  const setting_module_1 = require("../setting/setting.module");
14
15
  const ai_controller_1 = require("./ai.controller");
@@ -22,6 +23,7 @@ exports.AiModule = AiModule = __decorate([
22
23
  (0, common_1.forwardRef)(() => api_prisma_1.PrismaModule),
23
24
  (0, common_1.forwardRef)(() => setting_module_1.SettingModule),
24
25
  (0, common_1.forwardRef)(() => file_module_1.FileModule),
26
+ (0, common_1.forwardRef)(() => ai_instruction_module_1.AiInstructionModule),
25
27
  ],
26
28
  controllers: [ai_controller_1.AiController],
27
29
  providers: [ai_service_1.AiService],
@@ -1 +1 @@
1
- {"version":3,"file":"ai.module.js","sourceRoot":"","sources":["../../src/ai/ai.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,qDAAiD;AACjD,8DAA0D;AAC1D,mDAA+C;AAC/C,6CAAyC;AAYlC,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAAG,CAAA;AAAX,4BAAQ;mBAAR,QAAQ;IAVpB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yBAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;YAC/B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;SAC7B;QACD,WAAW,EAAE,CAAC,4BAAY,CAAC;QAC3B,SAAS,EAAE,CAAC,sBAAS,CAAC;QACtB,OAAO,EAAE,CAAC,sBAAS,CAAC;KACrB,CAAC;GACW,QAAQ,CAAG"}
1
+ {"version":3,"file":"ai.module.js","sourceRoot":"","sources":["../../src/ai/ai.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,mFAA8E;AAC9E,qDAAiD;AACjD,8DAA0D;AAC1D,mDAA+C;AAC/C,6CAAyC;AAalC,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAAG,CAAA;AAAX,4BAAQ;mBAAR,QAAQ;IAXpB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yBAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;YAC/B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;SACtC;QACD,WAAW,EAAE,CAAC,4BAAY,CAAC;QAC3B,SAAS,EAAE,CAAC,sBAAS,CAAC;QACtB,OAAO,EAAE,CAAC,sBAAS,CAAC;KACrB,CAAC;GACW,QAAQ,CAAG"}
@@ -1,6 +1,7 @@
1
1
  import { PaginationDTO } from '@hed-hog/api-pagination';
2
2
  import { PrismaService } from '@hed-hog/api-prisma';
3
3
  import { OnModuleInit } from '@nestjs/common';
4
+ import { AiExecutionService } from '../ai-instruction/ai-execution.service';
4
5
  import { DeleteDTO } from '../dto/delete.dto';
5
6
  import { FileService } from '../file/file.service';
6
7
  import { SettingService } from '../setting/setting.service';
@@ -23,17 +24,18 @@ export declare class AiService implements OnModuleInit {
23
24
  private readonly prismaService;
24
25
  private readonly settingService;
25
26
  private readonly fileService;
27
+ private readonly aiExecution;
26
28
  private readonly logger;
27
- constructor(prismaService: PrismaService, settingService: SettingService, fileService: FileService);
29
+ constructor(prismaService: PrismaService, settingService: SettingService, fileService: FileService, aiExecution: AiExecutionService);
28
30
  onModuleInit(): Promise<void>;
29
31
  chat(data: ChatDTO, file?: MulterFile): Promise<{
30
32
  provider: "openai";
31
33
  model: string;
32
- content: any;
34
+ content: string;
33
35
  } | {
34
36
  provider: "gemini";
35
37
  model: string;
36
- content: any;
38
+ content: string;
37
39
  }>;
38
40
  createAgent(data: CreateAgentDTO): Promise<AiAgentRecord>;
39
41
  listAgents(paginationParams: PaginationDTO): Promise<{
@@ -52,12 +54,12 @@ export declare class AiService implements OnModuleInit {
52
54
  slug: string;
53
55
  provider: "openai";
54
56
  model: string;
55
- content: any;
57
+ content: string;
56
58
  } | {
57
59
  slug: string;
58
60
  provider: "gemini";
59
61
  model: string;
60
- content: any;
62
+ content: string;
61
63
  }>;
62
64
  getAgentBySlug(slug: string): Promise<AiAgentRecord>;
63
65
  extractAttachmentText(file?: MulterFile, fileId?: number): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"ai.service.d.ts","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAU,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAOH,YAAY,EACf,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtC,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAQF,qBACa,SAAU,YAAW,YAAY;IAK1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAIlC,aAAa,EAAE,aAAa,EAE5B,cAAc,EAAE,cAAc,EAE9B,WAAW,EAAE,WAAW;IAGrC,YAAY;IAYZ,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;;;;;IAmCrC,WAAW,CAAC,IAAI,EAAE,cAAc;IAmChC,UAAU,CAAC,gBAAgB,EAAE,aAAa;;;;;;;IAuC1C,YAAY,CAAC,OAAO,EAAE,MAAM;IAU5B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc;IA6CjD,YAAY,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS;;;IAyB/B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;IAqDjE,cAAc,CAAC,IAAI,EAAE,MAAM;IAU3B,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB1E,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;YA+ChD,eAAe;YAWf,aAAa;IAW3B,OAAO,CAAC,eAAe;YAQT,WAAW;YAgCX,cAAc;YAuCd,qBAAqB;YAoCrB,uBAAuB;YA2FvB,cAAc;YAkEd,KAAK;YAIL,iBAAiB;YAgCjB,sBAAsB;IA+BpC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,2BAA2B;YAmBrB,cAAc;IAkB5B,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"ai.service.d.ts","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAU,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAOH,YAAY,EACf,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtC,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAQF,qBACa,SAAU,YAAW,YAAY;IAK1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAIlC,aAAa,EAAE,aAAa,EAE5B,cAAc,EAAE,cAAc,EAE9B,WAAW,EAAE,WAAW,EAExB,WAAW,EAAE,kBAAkB;IAG5C,YAAY;IAYZ,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;;;;;IA2DrC,WAAW,CAAC,IAAI,EAAE,cAAc;IAmChC,UAAU,CAAC,gBAAgB,EAAE,aAAa;;;;;;;IAuC1C,YAAY,CAAC,OAAO,EAAE,MAAM;IAU5B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc;IA6CjD,YAAY,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS;;;IAyB/B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;IAqDjE,cAAc,CAAC,IAAI,EAAE,MAAM;IAU3B,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB1E,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;YA+ChD,eAAe;YAWf,aAAa;IAW3B,OAAO,CAAC,eAAe;YAQT,WAAW;YAgCX,cAAc;YAwCd,qBAAqB;YAoCrB,uBAAuB;YA2FvB,cAAc;YAuEd,KAAK;YAIL,iBAAiB;YAgCjB,sBAAsB;IA+BpC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,2BAA2B;YAmBrB,cAAc;IAkB5B,OAAO,CAAC,UAAU;CAGnB"}
@@ -22,14 +22,16 @@ const common_1 = require("@nestjs/common");
22
22
  const axios_1 = __importDefault(require("axios"));
23
23
  const crypto_1 = require("crypto");
24
24
  const pdf_parse_1 = __importDefault(require("pdf-parse"));
25
+ const ai_execution_service_1 = require("../ai-instruction/ai-execution.service");
25
26
  const file_service_1 = require("../file/file.service");
26
27
  const integration_profile_utils_1 = require("../integration-profile/integration-profile.utils");
27
28
  const setting_service_1 = require("../setting/setting.service");
28
29
  let AiService = AiService_1 = class AiService {
29
- constructor(prismaService, settingService, fileService) {
30
+ constructor(prismaService, settingService, fileService, aiExecution) {
30
31
  this.prismaService = prismaService;
31
32
  this.settingService = settingService;
32
33
  this.fileService = fileService;
34
+ this.aiExecution = aiExecution;
33
35
  this.logger = new common_1.Logger(AiService_1.name);
34
36
  }
35
37
  async onModuleInit() {
@@ -47,32 +49,54 @@ let AiService = AiService_1 = class AiService {
47
49
  async chat(data, file) {
48
50
  const provider = data.provider || 'openai';
49
51
  const attachment = await this.resolveAttachment(file, data.file_id);
50
- if (provider === 'openai') {
51
- const model = data.model || 'gpt-4o-mini';
52
- const content = await this.chatWithOpenAi({
52
+ const executionId = await this.aiExecution.start({ trigger: 'api', contextSlug: 'ai-chat' });
53
+ const stepStart = Date.now();
54
+ try {
55
+ if (provider === 'openai') {
56
+ const model = data.model || 'gpt-4o-mini';
57
+ const { content, usage } = await this.chatWithOpenAi({
58
+ message: data.message,
59
+ model,
60
+ systemPrompt: data.systemPrompt,
61
+ attachment,
62
+ });
63
+ await this.aiExecution.recordStep({
64
+ executionId,
65
+ stepOrder: 0,
66
+ type: 'output',
67
+ provider: 'openai',
68
+ model,
69
+ durationMs: Date.now() - stepStart,
70
+ usage,
71
+ outputSummary: content.slice(0, 200),
72
+ });
73
+ await this.aiExecution.finish(executionId, 'completed');
74
+ return { provider, model, content };
75
+ }
76
+ const model = data.model || 'gemini-1.5-flash';
77
+ const { content, usage } = await this.chatWithGemini({
53
78
  message: data.message,
54
79
  model,
55
80
  systemPrompt: data.systemPrompt,
56
81
  attachment,
57
82
  });
58
- return {
59
- provider,
83
+ await this.aiExecution.recordStep({
84
+ executionId,
85
+ stepOrder: 0,
86
+ type: 'output',
87
+ provider: 'gemini',
60
88
  model,
61
- content,
62
- };
89
+ durationMs: Date.now() - stepStart,
90
+ usage,
91
+ outputSummary: content.slice(0, 200),
92
+ });
93
+ await this.aiExecution.finish(executionId, 'completed');
94
+ return { provider, model, content };
95
+ }
96
+ catch (err) {
97
+ await this.aiExecution.finish(executionId, 'failed', String(err));
98
+ throw err;
63
99
  }
64
- const model = data.model || 'gemini-1.5-flash';
65
- const content = await this.chatWithGemini({
66
- message: data.message,
67
- model,
68
- systemPrompt: data.systemPrompt,
69
- attachment,
70
- });
71
- return {
72
- provider,
73
- model,
74
- content,
75
- };
76
100
  }
77
101
  async createAgent(data) {
78
102
  var _a;
@@ -216,7 +240,7 @@ let AiService = AiService_1 = class AiService {
216
240
  content,
217
241
  };
218
242
  }
219
- const content = await this.chatWithOpenAi({
243
+ const { content } = await this.chatWithOpenAi({
220
244
  message: data.message,
221
245
  model: agent.model || this.getDefaultModel('openai'),
222
246
  systemPrompt: agent.instructions || undefined,
@@ -229,7 +253,7 @@ let AiService = AiService_1 = class AiService {
229
253
  content,
230
254
  };
231
255
  }
232
- const content = await this.chatWithGemini({
256
+ const { content } = await this.chatWithGemini({
233
257
  message: data.message,
234
258
  model: agent.model || this.getDefaultModel('gemini'),
235
259
  systemPrompt: agent.instructions || undefined,
@@ -347,7 +371,7 @@ let AiService = AiService_1 = class AiService {
347
371
  return apiKey;
348
372
  }
349
373
  async chatWithOpenAi({ message, model, systemPrompt, attachment, }) {
350
- var _a, _b, _c, _d;
374
+ var _a, _b, _c, _d, _e, _f, _g, _h;
351
375
  const openai = await this.getAiApiKey('openai');
352
376
  const messages = [];
353
377
  if (systemPrompt) {
@@ -355,16 +379,17 @@ let AiService = AiService_1 = class AiService {
355
379
  }
356
380
  const userContent = await this.buildOpenAiUserContent(message, attachment);
357
381
  messages.push({ role: 'user', content: userContent });
358
- const response = await axios_1.default.post('https://api.openai.com/v1/chat/completions', {
359
- model,
360
- messages,
361
- }, {
382
+ const response = await axios_1.default.post('https://api.openai.com/v1/chat/completions', { model, messages }, {
362
383
  headers: {
363
384
  Authorization: `Bearer ${openai}`,
364
385
  'Content-Type': 'application/json',
365
386
  },
366
387
  });
367
- return ((_d = (_c = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.choices) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.message) === null || _d === void 0 ? void 0 : _d.content) || '';
388
+ const u = (_a = response.data) === null || _a === void 0 ? void 0 : _a.usage;
389
+ return {
390
+ content: ((_e = (_d = (_c = (_b = response.data) === null || _b === void 0 ? void 0 : _b.choices) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.message) === null || _e === void 0 ? void 0 : _e.content) || '',
391
+ usage: u ? { input: (_f = u.prompt_tokens) !== null && _f !== void 0 ? _f : 0, output: (_g = u.completion_tokens) !== null && _g !== void 0 ? _g : 0, total: (_h = u.total_tokens) !== null && _h !== void 0 ? _h : 0 } : undefined,
392
+ };
368
393
  }
369
394
  async createOpenAiAssistant({ slug, model, instructions, }) {
370
395
  var _a;
@@ -442,7 +467,7 @@ let AiService = AiService_1 = class AiService {
442
467
  return output || '';
443
468
  }
444
469
  async chatWithGemini({ message, model, systemPrompt, attachment, }) {
445
- var _a, _b, _c, _d;
470
+ var _a, _b, _c, _d, _e, _f, _g, _h;
446
471
  const gemini = await this.getAiApiKey('gemini');
447
472
  const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${gemini}`;
448
473
  const userParts = [{ text: message }];
@@ -491,7 +516,12 @@ let AiService = AiService_1 = class AiService {
491
516
  },
492
517
  });
493
518
  const parts = ((_d = (_c = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.candidates) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.content) === null || _d === void 0 ? void 0 : _d.parts) || [];
494
- return parts.map((part) => part.text || '').join('');
519
+ const content = parts.map((part) => part.text || '').join('');
520
+ const u = (_e = response.data) === null || _e === void 0 ? void 0 : _e.usageMetadata;
521
+ return {
522
+ content,
523
+ usage: u ? { input: (_f = u.promptTokenCount) !== null && _f !== void 0 ? _f : 0, output: (_g = u.candidatesTokenCount) !== null && _g !== void 0 ? _g : 0, total: (_h = u.totalTokenCount) !== null && _h !== void 0 ? _h : 0 } : undefined,
524
+ };
495
525
  }
496
526
  async sleep(ms) {
497
527
  await new Promise((resolve) => setTimeout(resolve, ms));
@@ -604,8 +634,10 @@ exports.AiService = AiService = AiService_1 = __decorate([
604
634
  __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => api_prisma_1.PrismaService))),
605
635
  __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => setting_service_1.SettingService))),
606
636
  __param(2, (0, common_1.Inject)((0, common_1.forwardRef)(() => file_service_1.FileService))),
637
+ __param(3, (0, common_1.Inject)((0, common_1.forwardRef)(() => ai_execution_service_1.AiExecutionService))),
607
638
  __metadata("design:paramtypes", [api_prisma_1.PrismaService,
608
639
  setting_service_1.SettingService,
609
- file_service_1.FileService])
640
+ file_service_1.FileService,
641
+ ai_execution_service_1.AiExecutionService])
610
642
  ], AiService);
611
643
  //# sourceMappingURL=ai.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,oDAA4D;AAC5D,2CAQwB;AACxB,kDAA0B;AAC1B,mCAAoC;AACpC,0DAAiC;AAEjC,uDAAmD;AACnD,gGAAgG;AAChG,gEAA4D;AA0BrD,IAAM,SAAS,iBAAf,MAAM,SAAS;IAGpB,YAEE,aAA6C,EAE7C,cAA+C,EAE/C,WAAyC;QAJxB,kBAAa,GAAb,aAAa,CAAe;QAE5B,mBAAc,GAAd,cAAc,CAAgB;QAE9B,gBAAW,GAAX,WAAW,CAAa;QAR1B,WAAM,GAAG,IAAI,eAAM,CAAC,WAAS,CAAC,IAAI,CAAC,CAAC;IASlD,CAAC;IAEJ,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;gBACnD,sBAAsB;gBACtB,sBAAsB;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;gBAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAAC,QAAQ,gCAAgC,IAAlC,CAAC,CAAC,gCAAgC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAa,EAAE,IAAiB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBACxC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK;gBACL,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,UAAU;aACX,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ;gBACR,KAAK;gBACL,OAAO;aACR,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,kBAAkB,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU;SACX,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ;YACR,KAAK;YACL,OAAO;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAoB;;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,EAAE,KAAI,IAAI,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,eAAe,GAAkB,IAAI,CAAC;QAE1C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;gBACjD,IAAI;gBACJ,KAAK;gBACL,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAA;;;UAG9B,IAAI;eACC,QAAQ;UACb,KAAK;UACL,YAAY;UACZ,eAAe;;KAEpB,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,gBAA+B;;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,KAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,QAAQ,KAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EACrD,GAAG,CACJ,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7D,MAAM,WAAW,GAAG,MAAM;YACxB,CAAC,CAAC,mBAAM,CAAC,GAAG,CAAA,gCAAgC,IAAI,MAAM,GAAG,GAAG;YAC5D,CAAC,CAAC,mBAAM,CAAC,KAAK,CAAC;QAEjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAkB,mBAAM,CAAC,GAAG,CAAA;;;QAGvE,WAAW;;cAEL,QAAQ;eACP,MAAM;KAChB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAA6C,mBAAM,CAAC,GAAG,CAAA;;;QAGzG,WAAW;KACd,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,0CAAE,KAAK,KAAI,CAAC,CAAC,CAAC;QAEnD,OAAO;YACL,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,QAAQ;YACR,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;SACxC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,OAAO,kBAAkB,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAoB;;QACrD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,OAAO,kBAAkB,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,EAAE,mCAAI,YAAY,CAAC,IAAI,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,YAAY,CAAC,QAAQ,CAAC;QACxD,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,mCAAI,YAAY,CAAC,KAAK,mCAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,YAAY,CAAC,YAAY,CAAC;QAEpE,IAAI,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;gBAChD,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,IAAI,mBAAmB,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,IAAI,eAAe,GAAG,YAAY,CAAC,iBAAiB,CAAC;QAErD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5B,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;gBACjD,IAAI;gBACJ,KAAK;gBACL,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAA;;mBAErB,IAAI;4BACK,QAAQ;oBAChB,KAAK;2BACE,YAAY;gCACP,eAAe;;mBAE5B,OAAO;KACrB,CAAC;QAEF,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAa;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAwB,mBAAM,CAAC,GAAG,CAAA;;;qBAGpE,mBAAM,CAAC,IAAI,CAAC,GAAG,CAAC;KAChC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,IAAI,0BAAiB,CACzB,uBAAuB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAChE,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAA;;qBAExC,mBAAM,CAAC,IAAI,CAAC,GAAG,CAAC;KAChC,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,IAAkB,EAAE,IAAiB;QACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,uBAAuB,IAAI,kBAAkB,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAChD,KAAK,CAAC,iBAAiB,EACvB,IAAI,CAAC,OAAO,CACb,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,OAAO;iBACR,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBACxC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;gBACpD,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;gBAC7C,UAAU;aACX,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO;aACR,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACpD,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;YAC7C,UAAU;SACX,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,uBAAuB,IAAI,kBAAkB,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAiB,EAAE,MAAe;QAC5D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAiB,EAAE,MAAe;QAC5D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,GAA6C,QAAQ,CAAC;QAC9D,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,UAAU,CAAC;YAClB,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,MAAM,CAAC;YACd,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,MAAM,GAAG;YACb,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YAC/B,IAAI;YACJ,UAAU,EAAE,aAAa,CAAC,MAAM;YAChC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACvC,MAAM,EAAE,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACrE,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gCAAgC,MAAM,IAAI,QAAQ,cAAc,MAAM,CAAC,QAAQ,UAAU,MAAM,CAAC,QAAQ,SAAS,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,UAAU,EAAE,CACrL,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAiB;;;qBAGjD,IAAI;;KAEpB,CAAC;QAEF,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,KAAI,IAAI,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,EAAU;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAiB;;;mBAGnD,EAAE;;KAEhB,CAAC;QAEF,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,KAAI,IAAI,CAAC;IAC7B,CAAC;IAEO,eAAe,CAAC,QAAoB;QAC1C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAoB;QAC5C,MAAM,IAAI,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACrF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,4BAAmB,CAC3B,MAAM,QAAQ,mDAAmD,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC;YACtE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YACxB,OAAO,EAAE,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;SAC9D,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,4BAAmB,CAAC,cAAc,SAAS,aAAa,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wDAA4B,EAC7C,OAAO,CAAC,oBAAoB,CAAC,IAAI,EACjC,OAAO,CAAC,MAAM,CACf,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,4BAAmB,CAAC,cAAc,SAAS,6BAA6B,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,YAAY,EACZ,UAAU,GAMX;;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAe,EAAE,CAAC;QAEhC,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,4CAA4C,EAC5C;YACE,KAAK;YACL,QAAQ;SACT,EACD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,cAAc,EAAE,kBAAkB;aACnC;SACF,CACF,CAAC;QAEF,OAAO,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,OAAO,0CAAG,CAAC,CAAC,0CAAE,OAAO,0CAAE,OAAO,KAAI,EAAE,CAAC;IAC7D,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,EAClC,IAAI,EACJ,KAAK,EACL,YAAY,GAKb;;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,sCAAsC,EACtC;YACE,IAAI,EAAE,IAAI;YACV,KAAK;YACL,YAAY,EAAE,YAAY,IAAI,4CAA4C,IAAI,GAAG;SAClF,EACD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,eAAe;aAC/B;SACF,CACF,CAAC;QAEF,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAE,EAAE,CAAC;QAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,4BAAmB,CAAC,mCAAmC,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,WAAmB,EACnB,OAAe;;QAEf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,MAAM,eAAK,CAAC,IAAI,CACrC,mCAAmC,EACnC;YACE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SAC/C,EACD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,eAAe;aAC/B;SACF,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAA,cAAc,CAAC,IAAI,0CAAE,EAAE,CAAC;QAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,4BAAmB,CAAC,gCAAgC,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,eAAK,CAAC,IAAI,CAClC,qCAAqC,QAAQ,OAAO,EACpD;YACE,YAAY,EAAE,WAAW;SAC1B,EACD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,eAAe;aAC/B;SACF,CACF,CAAC;QAEF,MAAM,KAAK,GAAG,MAAA,WAAW,CAAC,IAAI,0CAAE,EAAE,CAAC;QAEnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,4BAAmB,CAAC,uCAAuC,CAAC,CAAC;QACzE,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,iBAAiB,GAAG,MAAM,eAAK,CAAC,GAAG,CACvC,qCAAqC,QAAQ,SAAS,KAAK,EAAE,EAC7D;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,aAAa,EAAE,eAAe;iBAC/B;aACF,CACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAA,iBAAiB,CAAC,IAAI,0CAAE,MAAM,CAAC;YAE9C,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,4BAAmB,CAC3B,+DAA+D,MAAM,IAAI,CAC1E,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,eAAK,CAAC,GAAG,CACtC,qCAAqC,QAAQ,WAAW,EACxD;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,aAAa,EAAE,eAAe;aAC/B;SACF,CACF,CAAC;QAEF,MAAM,gBAAgB,GAAG,MAAA,MAAA,gBAAgB,CAAC,IAAI,0CAAE,IAAI,0CAAE,IAAI,CACxD,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CACzC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAA,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,0CAAG,CAAC,CAAC,0CAAE,IAAI,0CAAE,KAAK,CAAC;QAE3D,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,YAAY,EACZ,UAAU,GAMX;;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAG,2DAA2D,KAAK,wBAAwB,MAAM,EAAE,CAAC;QAE7G,MAAM,SAAS,GAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAE7C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,uBAAuB,UAAU,CAAC,QAAQ,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;iBAC3F,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACZ,SAAS,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,uBAAuB,UAAU,CAAC,QAAQ,MAAM,OAAO,EAAE;qBAChE,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC;wBACb,WAAW,EAAE;4BACX,SAAS,EAAE,UAAU,CAAC,QAAQ;4BAC9B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;yBAC3C;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC;oBACb,WAAW,EAAE;wBACX,SAAS,EAAE,UAAU,CAAC,QAAQ;wBAC9B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;qBAC3C;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAQ;YACnB,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;SACjC,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,iBAAiB,GAAG;gBAC1B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;aAChC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE;YAC9C,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,UAAU,0CAAG,CAAC,CAAC,0CAAE,OAAO,0CAAE,KAAK,KAAI,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,EAAU;QAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,UAAuB,EACvB,MAAe;;QAEf,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAC/C,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,YAAY,CACxB,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,UAAU,CAAC,YAAY;gBACjC,QAAQ;gBACR,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAC/C,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,IAAI,KAAI,0BAA0B,EACtD,IAAI,CAAC,QAAQ,CACd,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ;gBACR,MAAM;aACP,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,OAAe,EACf,UAAgC;QAEhC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,QAAQ,UAAU,CAAC,QAAQ,WAAW,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7F,OAAO;gBACL,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;aACnD,CAAC;QACJ,CAAC;QAED,IAAI,IAAY,CAAC;QAEjB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI;gBACF,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC9C,yCAAyC,UAAU,CAAC,QAAQ,GAAG,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,uBAAuB,UAAU,CAAC,QAAQ,MAAM,UAAU,CAAC,QAAQ,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC;QACpH,CAAC;QAED,OAAO,GAAG,OAAO,uBAAuB,UAAU,CAAC,QAAQ,MAAM,IAAI,EAAE,CAAC;IAC1E,CAAC;IAEO,WAAW,CAAC,QAAgB;QAClC,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,UAAU,CAAC,QAAgB;QACjC,OAAO,CACL,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;YAC5B,QAAQ,KAAK,kBAAkB;YAC/B,QAAQ,KAAK,iBAAiB,CAC/B,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,QAAgB;QAChC,OAAO,CACL,QAAQ,KAAK,iBAAiB;YAC9B,QAAQ,KAAK,mBAAmB;YAChC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC1B,CAAC;IACJ,CAAC;IAEO,2BAA2B,CAAC,QAAgB,EAAE,QAAiB;QACrE,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,OAAO,IAAI,OAAO,KAAK,0BAA0B,EAAE,CAAC;YACtD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,iBAAiB,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,kBAAkB,CAAC;QACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,iBAAiB,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,YAAY,CAAC;QACxE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,WAAW,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,YAAY,CAAC;QACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,YAAY,CAAC;QAEhD,OAAO,OAAO,IAAI,0BAA0B,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,EAAE,CAAC;iBAC9B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;iBAClB,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;iBAC1B,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;iBAC1B,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,MAAc;QAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AA1vBY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAa,CAAC,CAAC,CAAA;IAEvC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC,CAAC,CAAA;IAExC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAW,CAAC,CAAC,CAAA;qCAHN,0BAAa;QAEZ,gCAAc;QAEjB,0BAAW;GAThC,SAAS,CA0vBrB"}
1
+ {"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { PrismaService } from '@hed-hog/api-prisma';
2
+ import type { AiExecutionRecord, AiExecutionStepType, AiExecutionTrigger, AiTokenUsage } from './types/ai-instruction.types';
3
+ export type StartExecutionParams = {
4
+ userId?: number;
5
+ conversationId?: number;
6
+ agentId?: number;
7
+ trigger?: AiExecutionTrigger;
8
+ contextSlug?: string;
9
+ };
10
+ export type RecordStepParams = {
11
+ executionId: number;
12
+ stepOrder: number;
13
+ type: AiExecutionStepType;
14
+ provider?: string;
15
+ model?: string;
16
+ toolName?: string;
17
+ usage?: AiTokenUsage;
18
+ durationMs?: number;
19
+ inputSummary?: string;
20
+ outputSummary?: string;
21
+ success?: boolean;
22
+ error?: string;
23
+ };
24
+ export declare class AiExecutionService {
25
+ private readonly prisma;
26
+ private readonly logger;
27
+ private readonly pricingCache;
28
+ private pricingLoadedAt;
29
+ private readonly PRICING_TTL_MS;
30
+ constructor(prisma: PrismaService);
31
+ start(params: StartExecutionParams): Promise<number>;
32
+ recordStep(params: RecordStepParams): Promise<void>;
33
+ finish(executionId: number, status: 'completed' | 'failed' | 'cancelled', error?: string): Promise<void>;
34
+ getExecution(executionId: number): Promise<AiExecutionRecord | null>;
35
+ listExecutions(params: {
36
+ userId?: number;
37
+ contextSlug?: string;
38
+ limit?: number;
39
+ offset?: number;
40
+ }): Promise<AiExecutionRecord[]>;
41
+ private estimateCost;
42
+ private getPricing;
43
+ private loadPricingCache;
44
+ }
45
+ //# sourceMappingURL=ai-execution.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-execution.service.d.ts","sourceRoot":"","sources":["../../src/ai-instruction/ai-execution.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAElB,YAAY,EACb,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBACa,kBAAkB;IAQ3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IACxE,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;gBAI9B,MAAM,EAAE,aAAa;IAGlC,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBpD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCnD,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,EAC5C,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAuCV,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAOpE,cAAc,CAAC,MAAM,EAAE;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;YAkCa,YAAY;YAsBZ,UAAU;YAUV,gBAAgB;CAkB/B"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var AiExecutionService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AiExecutionService = void 0;
17
+ const api_prisma_1 = require("@hed-hog/api-prisma");
18
+ const common_1 = require("@nestjs/common");
19
+ let AiExecutionService = AiExecutionService_1 = class AiExecutionService {
20
+ constructor(prisma) {
21
+ this.prisma = prisma;
22
+ this.logger = new common_1.Logger(AiExecutionService_1.name);
23
+ this.pricingCache = new Map();
24
+ this.pricingLoadedAt = 0;
25
+ this.PRICING_TTL_MS = 60 * 60 * 1000; // 1h
26
+ }
27
+ async start(params) {
28
+ var _a, _b, _c, _d, _e;
29
+ try {
30
+ const result = await this.prisma.$queryRaw `
31
+ INSERT INTO ai_execution (user_id, conversation_id, agent_id, trigger, status, context_slug, started_at)
32
+ VALUES (
33
+ ${(_a = params.userId) !== null && _a !== void 0 ? _a : null},
34
+ ${(_b = params.conversationId) !== null && _b !== void 0 ? _b : null},
35
+ ${(_c = params.agentId) !== null && _c !== void 0 ? _c : null},
36
+ CAST(${(_d = params.trigger) !== null && _d !== void 0 ? _d : 'manual'} AS ai_execution_trigger_enum),
37
+ 'running',
38
+ ${(_e = params.contextSlug) !== null && _e !== void 0 ? _e : null},
39
+ NOW()
40
+ )
41
+ RETURNING id
42
+ `;
43
+ return result[0].id;
44
+ }
45
+ catch (e) {
46
+ this.logger.warn(`Failed to start execution record: ${e}`);
47
+ return 0;
48
+ }
49
+ }
50
+ async recordStep(params) {
51
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
52
+ if (!params.executionId)
53
+ return;
54
+ try {
55
+ const costUsd = await this.estimateCost(params.provider, params.model, params.usage);
56
+ await this.prisma.$executeRaw `
57
+ INSERT INTO ai_execution_step (
58
+ execution_id, step_order, type, provider, model, tool_name,
59
+ tokens_input, tokens_output, cost_usd, duration_ms,
60
+ input_summary, output_summary, success, error
61
+ ) VALUES (
62
+ ${params.executionId},
63
+ ${params.stepOrder},
64
+ CAST(${params.type} AS ai_execution_step_type_enum),
65
+ ${(_a = params.provider) !== null && _a !== void 0 ? _a : null},
66
+ ${(_b = params.model) !== null && _b !== void 0 ? _b : null},
67
+ ${(_c = params.toolName) !== null && _c !== void 0 ? _c : null},
68
+ ${(_e = (_d = params.usage) === null || _d === void 0 ? void 0 : _d.input) !== null && _e !== void 0 ? _e : 0},
69
+ ${(_g = (_f = params.usage) === null || _f === void 0 ? void 0 : _f.output) !== null && _g !== void 0 ? _g : 0},
70
+ ${costUsd},
71
+ ${(_h = params.durationMs) !== null && _h !== void 0 ? _h : 0},
72
+ ${params.inputSummary ? params.inputSummary.slice(0, 500) : null},
73
+ ${params.outputSummary ? params.outputSummary.slice(0, 500) : null},
74
+ ${(_j = params.success) !== null && _j !== void 0 ? _j : true},
75
+ ${(_k = params.error) !== null && _k !== void 0 ? _k : null}
76
+ )
77
+ `;
78
+ }
79
+ catch (e) {
80
+ this.logger.warn(`Failed to record execution step: ${e}`);
81
+ }
82
+ }
83
+ async finish(executionId, status, error) {
84
+ if (!executionId)
85
+ return;
86
+ try {
87
+ // Aggregate totals from steps
88
+ const totals = await this.prisma.$queryRaw `
89
+ SELECT
90
+ SUM(tokens_input) AS tokens_input,
91
+ SUM(tokens_output) AS tokens_output,
92
+ SUM(cost_usd) AS cost_usd
93
+ FROM ai_execution_step
94
+ WHERE execution_id = ${executionId}
95
+ `;
96
+ const t = totals[0];
97
+ const tokensInput = Number((t === null || t === void 0 ? void 0 : t.tokens_input) || 0);
98
+ const tokensOutput = Number((t === null || t === void 0 ? void 0 : t.tokens_output) || 0);
99
+ const costUsd = parseFloat(String((t === null || t === void 0 ? void 0 : t.cost_usd) || 0));
100
+ await this.prisma.$executeRaw `
101
+ UPDATE ai_execution
102
+ SET
103
+ status = CAST(${status} AS ai_execution_status_enum),
104
+ tokens_input = ${tokensInput},
105
+ tokens_output = ${tokensOutput},
106
+ tokens_total = ${tokensInput + tokensOutput},
107
+ cost_usd = ${costUsd},
108
+ finished_at = NOW(),
109
+ error = ${error !== null && error !== void 0 ? error : null},
110
+ updated_at = NOW()
111
+ WHERE id = ${executionId}
112
+ `;
113
+ }
114
+ catch (e) {
115
+ this.logger.warn(`Failed to finish execution record ${executionId}: ${e}`);
116
+ }
117
+ }
118
+ async getExecution(executionId) {
119
+ const rows = await this.prisma.$queryRaw `
120
+ SELECT * FROM ai_execution WHERE id = ${executionId} LIMIT 1
121
+ `;
122
+ return (rows === null || rows === void 0 ? void 0 : rows[0]) || null;
123
+ }
124
+ async listExecutions(params) {
125
+ var _a, _b;
126
+ const limit = Math.min((_a = params.limit) !== null && _a !== void 0 ? _a : 20, 100);
127
+ const offset = (_b = params.offset) !== null && _b !== void 0 ? _b : 0;
128
+ // Use parameterized queries to prevent SQL injection
129
+ if (params.userId !== undefined && params.contextSlug !== undefined) {
130
+ return this.prisma.$queryRaw `
131
+ SELECT * FROM ai_execution
132
+ WHERE user_id = ${params.userId} AND context_slug = ${params.contextSlug}
133
+ ORDER BY started_at DESC LIMIT ${limit} OFFSET ${offset}
134
+ `;
135
+ }
136
+ if (params.userId !== undefined) {
137
+ return this.prisma.$queryRaw `
138
+ SELECT * FROM ai_execution
139
+ WHERE user_id = ${params.userId}
140
+ ORDER BY started_at DESC LIMIT ${limit} OFFSET ${offset}
141
+ `;
142
+ }
143
+ if (params.contextSlug !== undefined) {
144
+ return this.prisma.$queryRaw `
145
+ SELECT * FROM ai_execution
146
+ WHERE context_slug = ${params.contextSlug}
147
+ ORDER BY started_at DESC LIMIT ${limit} OFFSET ${offset}
148
+ `;
149
+ }
150
+ return this.prisma.$queryRaw `
151
+ SELECT * FROM ai_execution
152
+ ORDER BY started_at DESC LIMIT ${limit} OFFSET ${offset}
153
+ `;
154
+ }
155
+ // ── Cost estimation ───────────────────────────────────────────────────────
156
+ async estimateCost(provider, model, usage) {
157
+ if (!provider || !model || !usage || (!usage.input && !usage.output)) {
158
+ return 0;
159
+ }
160
+ const pricing = await this.getPricing(provider, model);
161
+ if (!pricing)
162
+ return 0;
163
+ const inputCost = (usage.input / 1000000) * Number(pricing.price_input_per_million);
164
+ const outputCost = (usage.output / 1000000) * Number(pricing.price_output_per_million);
165
+ const cachedCost = usage.cached && pricing.price_cached_input_per_million
166
+ ? (usage.cached / 1000000) * Number(pricing.price_cached_input_per_million)
167
+ : 0;
168
+ return parseFloat((inputCost + outputCost + cachedCost).toFixed(8));
169
+ }
170
+ async getPricing(provider, model) {
171
+ const key = `${provider}:${model}`;
172
+ if (Date.now() - this.pricingLoadedAt > this.PRICING_TTL_MS) {
173
+ await this.loadPricingCache();
174
+ }
175
+ return this.pricingCache.get(key) || null;
176
+ }
177
+ async loadPricingCache() {
178
+ try {
179
+ const rows = await this.prisma.$queryRaw `
180
+ SELECT * FROM ai_model_pricing WHERE is_active = TRUE ORDER BY valid_from DESC
181
+ `;
182
+ this.pricingCache.clear();
183
+ for (const row of rows) {
184
+ const key = `${row.provider}:${row.model}`;
185
+ // Only keep the most recent pricing entry per provider+model
186
+ if (!this.pricingCache.has(key)) {
187
+ this.pricingCache.set(key, row);
188
+ }
189
+ }
190
+ this.pricingLoadedAt = Date.now();
191
+ }
192
+ catch (e) {
193
+ this.logger.warn(`Failed to load pricing cache: ${e}`);
194
+ }
195
+ }
196
+ };
197
+ exports.AiExecutionService = AiExecutionService;
198
+ exports.AiExecutionService = AiExecutionService = AiExecutionService_1 = __decorate([
199
+ (0, common_1.Injectable)(),
200
+ __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => api_prisma_1.PrismaService))),
201
+ __metadata("design:paramtypes", [api_prisma_1.PrismaService])
202
+ ], AiExecutionService);
203
+ //# sourceMappingURL=ai-execution.service.js.map