@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
@@ -1 +1 @@
1
- {"version":3,"file":"spaces.provider.d.ts","sourceRoot":"","sources":["../../../src/file/provider/spaces.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,EAAE,EACF,QAAQ,EACX,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBAAa,cAAe,SAAQ,gBAAgB;IAItC,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,QAAQ,CAAuB;gBAEnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAInD,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,SAAS,GAMpB;IAED,OAAO,CAAC,UAAU;IAOZ,cAAc;IAwCd,SAAS;IAyBT,WAAW;IAkBX,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBzC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAe3D,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC;IAeT,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,GAAG,CAAC;IAiBT,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYtC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAa/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYxC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CASjE"}
1
+ {"version":3,"file":"spaces.provider.d.ts","sourceRoot":"","sources":["../../../src/file/provider/spaces.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,EAAE,EACF,QAAQ,EACX,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBAAa,cAAe,SAAQ,gBAAgB;IAItC,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,QAAQ,CAAuB;gBAEnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAInD,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,SAAS,GAMpB;IAED,OAAO,CAAC,UAAU;IAOZ,cAAc;IAwCd,SAAS;IAyBT,WAAW;IAkBX,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBzC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAe3D,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC;IAeT,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,GAAG,CAAC;IAiBT,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYtC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAc3F,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYxC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CASjE"}
@@ -170,13 +170,17 @@ class SpacesProvider extends abstract_provider_1.AbstractProvider {
170
170
  }));
171
171
  return true;
172
172
  }
173
- async readStream(filepath) {
173
+ async readStream(filepath, options) {
174
+ var _a;
174
175
  const s3 = await this.getClient();
175
176
  const key = this.resolveKey(filepath);
176
- const result = await s3.send(new client_s3_1.GetObjectCommand({
177
- Bucket: this.setting['storage-spaces-bucket'],
178
- Key: key,
179
- }));
177
+ const params = { Bucket: this.setting['storage-spaces-bucket'], Key: key };
178
+ if ((options === null || options === void 0 ? void 0 : options.start) !== undefined || (options === null || options === void 0 ? void 0 : options.end) !== undefined) {
179
+ const start = (_a = options === null || options === void 0 ? void 0 : options.start) !== null && _a !== void 0 ? _a : 0;
180
+ const end = (options === null || options === void 0 ? void 0 : options.end) !== undefined ? options.end : '';
181
+ params.Range = `bytes=${start}-${end}`;
182
+ }
183
+ const result = await s3.send(new client_s3_1.GetObjectCommand(params));
180
184
  // @ts-ignore
181
185
  return result.Body;
182
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spaces.provider.js","sourceRoot":"","sources":["../../../src/file/provider/spaces.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spaces.provider.js","sourceRoot":"","sources":["../../../src/file/provider/spaces.provider.ts"],"names":[],"mappings":"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"}
@@ -67,9 +67,9 @@ export declare class IntegrationProfileController {
67
67
  updated_at: Date;
68
68
  provider_id: number;
69
69
  slug: string;
70
+ is_active: boolean;
70
71
  config: import("@prisma/client/runtime/library").JsonValue | null;
71
72
  type_id: number;
72
- is_active: boolean;
73
73
  }>;
74
74
  create(data: CreateDTO): Promise<{
75
75
  id: number;
@@ -78,9 +78,9 @@ export declare class IntegrationProfileController {
78
78
  updated_at: Date;
79
79
  provider_id: number;
80
80
  slug: string;
81
+ is_active: boolean;
81
82
  config: import("@prisma/client/runtime/library").JsonValue | null;
82
83
  type_id: number;
83
- is_active: boolean;
84
84
  }>;
85
85
  test(data: CreateDTO): Promise<{
86
86
  success: boolean;
@@ -93,9 +93,9 @@ export declare class IntegrationProfileController {
93
93
  updated_at: Date;
94
94
  provider_id: number;
95
95
  slug: string;
96
+ is_active: boolean;
96
97
  config: import("@prisma/client/runtime/library").JsonValue | null;
97
98
  type_id: number;
98
- is_active: boolean;
99
99
  }>;
100
100
  delete(data: DeleteDTO): Promise<{
101
101
  count: number;
@@ -81,9 +81,9 @@ export declare class IntegrationProfileService {
81
81
  updated_at: Date;
82
82
  provider_id: number;
83
83
  slug: string;
84
+ is_active: boolean;
84
85
  config: import("@prisma/client/runtime/library").JsonValue | null;
85
86
  type_id: number;
86
- is_active: boolean;
87
87
  }>;
88
88
  create(data: CreateDTO): Promise<{
89
89
  id: number;
@@ -92,9 +92,9 @@ export declare class IntegrationProfileService {
92
92
  updated_at: Date;
93
93
  provider_id: number;
94
94
  slug: string;
95
+ is_active: boolean;
95
96
  config: import("@prisma/client/runtime/library").JsonValue | null;
96
97
  type_id: number;
97
- is_active: boolean;
98
98
  }>;
99
99
  update({ id, data }: {
100
100
  id: number;
@@ -106,9 +106,9 @@ export declare class IntegrationProfileService {
106
106
  updated_at: Date;
107
107
  provider_id: number;
108
108
  slug: string;
109
+ is_active: boolean;
109
110
  config: import("@prisma/client/runtime/library").JsonValue | null;
110
111
  type_id: number;
111
- is_active: boolean;
112
112
  }>;
113
113
  delete({ ids }: DeleteDTO): Promise<{
114
114
  count: number;
@@ -34,10 +34,10 @@ export declare class McpChatController {
34
34
  id: number;
35
35
  created_at: Date;
36
36
  updated_at: Date;
37
+ content: string;
37
38
  role: import("@prisma/client").$Enums.mcp_conversation_message_role_422a6ea954_enum;
38
39
  tool_name: string | null;
39
40
  conversation_id: number;
40
- content: string;
41
41
  tool_call_id: string | null;
42
42
  }[]>;
43
43
  sendMessage({ id }: {
@@ -46,10 +46,10 @@ export declare class McpChatController {
46
46
  id: number;
47
47
  created_at: Date;
48
48
  updated_at: Date;
49
+ content: string;
49
50
  role: import("@prisma/client").$Enums.mcp_conversation_message_role_422a6ea954_enum;
50
51
  tool_name: string | null;
51
52
  conversation_id: number;
52
- content: string;
53
53
  tool_call_id: string | null;
54
54
  }[]>;
55
55
  sendMessageStream({ id }: {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-chat.module.d.ts","sourceRoot":"","sources":["../../src/mcp-chat/mcp-chat.module.ts"],"names":[],"mappings":"AAOA,qBASa,aAAa;CAAG"}
1
+ {"version":3,"file":"mcp-chat.module.d.ts","sourceRoot":"","sources":["../../src/mcp-chat/mcp-chat.module.ts"],"names":[],"mappings":"AAQA,qBAUa,aAAa;CAAG"}
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.McpChatModule = 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 mcp_module_1 = require("../mcp/mcp.module");
13
14
  const setting_module_1 = require("../setting/setting.module");
14
15
  const mcp_chat_controller_1 = require("./mcp-chat.controller");
@@ -22,6 +23,7 @@ exports.McpChatModule = McpChatModule = __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)(() => mcp_module_1.McpModule),
26
+ (0, common_1.forwardRef)(() => ai_instruction_module_1.AiInstructionModule),
25
27
  ],
26
28
  controllers: [mcp_chat_controller_1.McpChatController],
27
29
  providers: [mcp_chat_service_1.McpChatService],
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-chat.module.js","sourceRoot":"","sources":["../../src/mcp-chat/mcp-chat.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,kDAA8C;AAC9C,8DAA0D;AAC1D,+DAA0D;AAC1D,yDAAoD;AAW7C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IATzB,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,sBAAS,CAAC;SAC5B;QACD,WAAW,EAAE,CAAC,uCAAiB,CAAC;QAChC,SAAS,EAAE,CAAC,iCAAc,CAAC;KAC5B,CAAC;GACW,aAAa,CAAG"}
1
+ {"version":3,"file":"mcp-chat.module.js","sourceRoot":"","sources":["../../src/mcp-chat/mcp-chat.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,mFAA8E;AAC9E,kDAA8C;AAC9C,8DAA0D;AAC1D,+DAA0D;AAC1D,yDAAoD;AAY7C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAVzB,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,sBAAS,CAAC;YAC3B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;SACtC;QACD,WAAW,EAAE,CAAC,uCAAiB,CAAC;QAChC,SAAS,EAAE,CAAC,iCAAc,CAAC;KAC5B,CAAC;GACW,aAAa,CAAG"}
@@ -1,4 +1,6 @@
1
1
  import { PrismaService } from '@hed-hog/api-prisma';
2
+ import { AiExecutionService } from '../ai-instruction/ai-execution.service';
3
+ import { AiPromptBuilderService } from '../ai-instruction/ai-prompt-builder.service';
2
4
  import { McpRegistryService } from '../mcp/mcp-registry.service';
3
5
  import { SettingService } from '../setting/setting.service';
4
6
  import { CreateConversationDTO } from './dto/create-conversation.dto';
@@ -6,8 +8,10 @@ export declare class McpChatService {
6
8
  private readonly prisma;
7
9
  private readonly setting;
8
10
  private readonly registry;
11
+ private readonly promptBuilder;
12
+ private readonly aiExecution;
9
13
  private readonly logger;
10
- constructor(prisma: PrismaService, setting: SettingService, registry: McpRegistryService);
14
+ constructor(prisma: PrismaService, setting: SettingService, registry: McpRegistryService, promptBuilder: AiPromptBuilderService, aiExecution: AiExecutionService);
11
15
  listConversations(userId: number): Promise<{
12
16
  id: number;
13
17
  created_at: Date;
@@ -28,22 +32,23 @@ export declare class McpChatService {
28
32
  id: number;
29
33
  created_at: Date;
30
34
  updated_at: Date;
35
+ content: string;
31
36
  role: import("@prisma/client").$Enums.mcp_conversation_message_role_422a6ea954_enum;
32
37
  tool_name: string | null;
33
38
  conversation_id: number;
34
- content: string;
35
39
  tool_call_id: string | null;
36
40
  }[]>;
37
41
  sendMessage(conversationId: number, userId: number, locale: string, message: string): Promise<{
38
42
  id: number;
39
43
  created_at: Date;
40
44
  updated_at: Date;
45
+ content: string;
41
46
  role: import("@prisma/client").$Enums.mcp_conversation_message_role_422a6ea954_enum;
42
47
  tool_name: string | null;
43
48
  conversation_id: number;
44
- content: string;
45
49
  tool_call_id: string | null;
46
50
  }[]>;
51
+ private getSystemPrompt;
47
52
  private runOpenAiLoop;
48
53
  private runGeminiLoop;
49
54
  private toOpenAiMessages;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-chat.service.d.ts","sourceRoot":"","sources":["../../src/mcp-chat/mcp-chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAcpD,OAAO,EAAE,kBAAkB,EAAgB,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAwNtE,qBACa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAIvC,MAAM,EAAE,aAAa,EAErB,OAAO,EAAE,cAAc,EAEvB,QAAQ,EAAE,kBAAkB;IAGzC,iBAAiB,CAAC,MAAM,EAAE,MAAM;;;;;;IAQhC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB;;;;;;;IAS7D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;;;IAOjD,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;IAQlD,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM;;;;;;;;;;YAuCH,aAAa;YAwLb,aAAa;IA6J3B,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,gBAAgB;YAyDV,eAAe;YAaf,cAAc;YA6Bd,gBAAgB;YAShB,gBAAgB;YAmBhB,iBAAiB;YAoIjB,sBAAsB;IAyBpC,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,6BAA6B;IAwCrC,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,iCAAiC;IAwBzC,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,kBAAkB;YAUZ,+BAA+B;IAkB7C,OAAO,CAAC,oBAAoB;CAsB7B"}
1
+ {"version":3,"file":"mcp-chat.service.d.ts","sourceRoot":"","sources":["../../src/mcp-chat/mcp-chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAapD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAAgB,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AA6NtE,qBACa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAZ9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAIvC,MAAM,EAAE,aAAa,EAErB,OAAO,EAAE,cAAc,EAEvB,QAAQ,EAAE,kBAAkB,EAE5B,aAAa,EAAE,sBAAsB,EAErC,WAAW,EAAE,kBAAkB;IAG5C,iBAAiB,CAAC,MAAM,EAAE,MAAM;;;;;;IAQhC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB;;;;;;;IAS7D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;;;IAOjD,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;IAQlD,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM;;;;;;;;;;YAiDH,eAAe;YAaf,aAAa;YAmNb,aAAa;IAsL3B,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,gBAAgB;YAyDV,eAAe;YAaf,cAAc;YA6Bd,gBAAgB;YAShB,gBAAgB;YAmBhB,iBAAiB;YAoIjB,sBAAsB;IAyBpC,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,6BAA6B;IAwCrC,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,iCAAiC;IAwBzC,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,kBAAkB;YAUZ,+BAA+B;IAkB7C,OAAO,CAAC,oBAAoB;CAsB7B"}
@@ -20,17 +20,24 @@ exports.McpChatService = void 0;
20
20
  const api_prisma_1 = require("@hed-hog/api-prisma");
21
21
  const common_1 = require("@nestjs/common");
22
22
  const axios_1 = __importDefault(require("axios"));
23
+ const ai_execution_service_1 = require("../ai-instruction/ai-execution.service");
24
+ const ai_prompt_builder_service_1 = require("../ai-instruction/ai-prompt-builder.service");
23
25
  const integration_profile_utils_1 = require("../integration-profile/integration-profile.utils");
24
26
  const mcp_registry_service_1 = require("../mcp/mcp-registry.service");
25
27
  const setting_service_1 = require("../setting/setting.service");
26
28
  const MAX_OPENAI_TOOLS = 128;
27
29
  const TARGET_SELECTED_TOOLS = 112;
28
30
  const MAX_ITERATIONS = 20;
31
+ // Maximum number of history messages to send per turn.
32
+ // Older messages beyond this window are dropped to limit prompt tokens.
33
+ const HISTORY_MESSAGE_LIMIT = 40;
29
34
  const FORCE_FINISH_THRESHOLD = 2;
30
35
  const MIN_DOMAIN_CONFIDENCE = 2;
31
36
  const AMBIGUOUS_DOMAIN_DELTA = 1;
32
- const SYSTEM_PROMPT = 'You are a helpful assistant with access to tools from the HedHog system. ' +
33
- 'Use the available tools to answer the user\'s questions accurately. ' +
37
+ // SYSTEM_PROMPT is now managed via AiInstructionService (slug: system.global).
38
+ // This fallback is used only if the DB is unreachable during startup.
39
+ const SYSTEM_PROMPT_FALLBACK = 'You are a helpful assistant with access to tools from the HedHog system. ' +
40
+ "Use the available tools to answer the user's questions accurately. " +
34
41
  'Always respond in the same language the user writes in.';
35
42
  const sanitize = (n) => n.replace(/\./g, '__');
36
43
  const restore = (n) => n.replace(/__/g, '.');
@@ -171,10 +178,12 @@ const ACTION_KEYWORDS = [
171
178
  'remove',
172
179
  ];
173
180
  let McpChatService = McpChatService_1 = class McpChatService {
174
- constructor(prisma, setting, registry) {
181
+ constructor(prisma, setting, registry, promptBuilder, aiExecution) {
175
182
  this.prisma = prisma;
176
183
  this.setting = setting;
177
184
  this.registry = registry;
185
+ this.promptBuilder = promptBuilder;
186
+ this.aiExecution = aiExecution;
178
187
  this.logger = new common_1.Logger(McpChatService_1.name);
179
188
  }
180
189
  async listConversations(userId) {
@@ -231,20 +240,49 @@ let McpChatService = McpChatService_1 = class McpChatService {
231
240
  data: { title: message.slice(0, 60) },
232
241
  });
233
242
  }
234
- if (provider === 'gemini') {
235
- return this.runGeminiLoop(conversationId, userId, locale, message, apiKey);
243
+ const executionId = await this.aiExecution.start({
244
+ userId,
245
+ conversationId,
246
+ trigger: 'manual',
247
+ contextSlug: 'mcp-chat',
248
+ });
249
+ try {
250
+ if (provider === 'gemini') {
251
+ return await this.runGeminiLoop(conversationId, userId, locale, message, apiKey, executionId);
252
+ }
253
+ return await this.runOpenAiLoop(conversationId, userId, locale, message, apiKey, executionId);
254
+ }
255
+ catch (err) {
256
+ await this.aiExecution.finish(executionId, 'failed', String(err));
257
+ throw err;
258
+ }
259
+ }
260
+ async getSystemPrompt(locale) {
261
+ try {
262
+ const built = await this.promptBuilder.build({
263
+ locale,
264
+ });
265
+ return built.systemPrompt || SYSTEM_PROMPT_FALLBACK;
266
+ }
267
+ catch (_a) {
268
+ return SYSTEM_PROMPT_FALLBACK;
236
269
  }
237
- return this.runOpenAiLoop(conversationId, userId, locale, message, apiKey);
238
270
  }
239
271
  // ── OpenAI loop ──────────────────────────────────────────────────────────
240
- async runOpenAiLoop(conversationId, userId, locale, message, apiKey) {
241
- var _a, _b, _c, _d, _e, _f, _g, _h;
242
- const history = await this.prisma.mcp_conversation_message.findMany({
272
+ async runOpenAiLoop(conversationId, userId, locale, message, apiKey, executionId) {
273
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
274
+ const systemPrompt = await this.getSystemPrompt(locale);
275
+ const allHistory = await this.prisma.mcp_conversation_message.findMany({
243
276
  where: { conversation_id: conversationId },
244
277
  orderBy: { created_at: 'asc' },
245
278
  });
279
+ // Limit to the most recent messages to avoid token explosion on long conversations.
280
+ // We take the tail rather than summarize to ensure tool_call/tool_result pairs stay intact.
281
+ const history = allHistory.length > HISTORY_MESSAGE_LIMIT
282
+ ? allHistory.slice(allHistory.length - HISTORY_MESSAGE_LIMIT)
283
+ : allHistory;
246
284
  const openAiMessages = [
247
- { role: 'system', content: SYSTEM_PROMPT },
285
+ { role: 'system', content: systemPrompt },
248
286
  ...this.toOpenAiMessages(history),
249
287
  ];
250
288
  const toolSelection = await this.buildOpenAiTools(message, conversationId, userId, history);
@@ -253,10 +291,12 @@ let McpChatService = McpChatService_1 = class McpChatService {
253
291
  }
254
292
  const tools = toolSelection.tools;
255
293
  const callSignatures = new Set();
294
+ let stepOrder = 0;
256
295
  let maxIterations = MAX_ITERATIONS;
257
296
  while (maxIterations-- > 0) {
258
297
  const forceFinish = maxIterations < FORCE_FINISH_THRESHOLD;
259
298
  let response;
299
+ const stepStart = Date.now();
260
300
  try {
261
301
  response = await axios_1.default.post('https://api.openai.com/v1/chat/completions', {
262
302
  model: 'gpt-4o-mini',
@@ -281,9 +321,22 @@ let McpChatService = McpChatService_1 = class McpChatService {
281
321
  }
282
322
  throw new common_1.HttpException((_e = errBody === null || errBody === void 0 ? void 0 : errBody.message) !== null && _e !== void 0 ? _e : 'OpenAI API error.', status !== null && status !== void 0 ? status : common_1.HttpStatus.BAD_GATEWAY);
283
323
  }
284
- const choice = (_g = (_f = response.data) === null || _f === void 0 ? void 0 : _f.choices) === null || _g === void 0 ? void 0 : _g[0];
324
+ const usage = (_f = response.data) === null || _f === void 0 ? void 0 : _f.usage;
325
+ await this.aiExecution.recordStep({
326
+ executionId,
327
+ stepOrder: stepOrder++,
328
+ type: 'prompt',
329
+ provider: 'openai',
330
+ model: 'gpt-4o-mini',
331
+ durationMs: Date.now() - stepStart,
332
+ usage: usage
333
+ ? { input: (_g = usage.prompt_tokens) !== null && _g !== void 0 ? _g : 0, output: (_h = usage.completion_tokens) !== null && _h !== void 0 ? _h : 0, total: (_j = usage.total_tokens) !== null && _j !== void 0 ? _j : 0 }
334
+ : undefined,
335
+ inputSummary: (_m = (_l = (_k = openAiMessages[openAiMessages.length - 1]) === null || _k === void 0 ? void 0 : _k.content) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.slice(0, 200),
336
+ });
337
+ const choice = (_p = (_o = response.data) === null || _o === void 0 ? void 0 : _o.choices) === null || _p === void 0 ? void 0 : _p[0];
285
338
  const assistantMsg = choice === null || choice === void 0 ? void 0 : choice.message;
286
- if (((_h = assistantMsg === null || assistantMsg === void 0 ? void 0 : assistantMsg.tool_calls) === null || _h === void 0 ? void 0 : _h.length) && !forceFinish) {
339
+ if (((_q = assistantMsg === null || assistantMsg === void 0 ? void 0 : assistantMsg.tool_calls) === null || _q === void 0 ? void 0 : _q.length) && !forceFinish) {
287
340
  openAiMessages.push({
288
341
  role: 'assistant',
289
342
  content: null,
@@ -296,7 +349,7 @@ let McpChatService = McpChatService_1 = class McpChatService {
296
349
  try {
297
350
  args = JSON.parse(argsJson);
298
351
  }
299
- catch (_j) {
352
+ catch (_r) {
300
353
  args = {};
301
354
  }
302
355
  await this.prisma.mcp_conversation_message.create({
@@ -375,34 +428,43 @@ let McpChatService = McpChatService_1 = class McpChatService {
375
428
  content: finalContent,
376
429
  },
377
430
  });
431
+ await this.aiExecution.finish(executionId, 'completed');
378
432
  return this.prisma.mcp_conversation_message.findMany({
379
433
  where: { conversation_id: conversationId },
380
434
  orderBy: { created_at: 'asc' },
381
435
  });
382
436
  }
437
+ await this.aiExecution.finish(executionId, 'failed', 'Maximum tool call iterations exceeded.');
383
438
  throw new common_1.BadRequestException('Maximum tool call iterations exceeded.');
384
439
  }
385
440
  // ── Gemini loop ──────────────────────────────────────────────────────────
386
- async runGeminiLoop(conversationId, userId, locale, message, apiKey) {
387
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
388
- const history = await this.prisma.mcp_conversation_message.findMany({
441
+ async runGeminiLoop(conversationId, userId, locale, message, apiKey, executionId) {
442
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
443
+ const systemPrompt = await this.getSystemPrompt(locale);
444
+ const allHistory = await this.prisma.mcp_conversation_message.findMany({
389
445
  where: { conversation_id: conversationId },
390
446
  orderBy: { created_at: 'asc' },
391
447
  });
448
+ const history = allHistory.length > HISTORY_MESSAGE_LIMIT
449
+ ? allHistory.slice(allHistory.length - HISTORY_MESSAGE_LIMIT)
450
+ : allHistory;
392
451
  const geminiContents = this.toGeminiContents(history);
393
452
  const toolSelection = await this.buildGeminiTools(message, conversationId, userId, history);
394
453
  if (toolSelection.clarification) {
454
+ await this.aiExecution.finish(executionId, 'completed');
395
455
  return this.recordAssistantAndReturnHistory(conversationId, toolSelection.clarification);
396
456
  }
397
457
  const functionDeclarations = toolSelection.tools;
458
+ let stepOrder = 0;
398
459
  let maxIterations = MAX_ITERATIONS;
399
460
  let callIndex = 0;
400
461
  while (maxIterations-- > 0) {
401
462
  const forceFinish = maxIterations < FORCE_FINISH_THRESHOLD;
402
463
  let response;
464
+ const stepStart = Date.now();
403
465
  try {
404
466
  response = await axios_1.default.post(`https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${apiKey}`, {
405
- systemInstruction: { parts: [{ text: SYSTEM_PROMPT }] },
467
+ systemInstruction: { parts: [{ text: systemPrompt }] },
406
468
  contents: geminiContents,
407
469
  tools: !forceFinish && functionDeclarations.length > 0
408
470
  ? [{ functionDeclarations }]
@@ -423,8 +485,20 @@ let McpChatService = McpChatService_1 = class McpChatService {
423
485
  }
424
486
  throw new common_1.HttpException((_h = (_g = errData === null || errData === void 0 ? void 0 : errData.error) === null || _g === void 0 ? void 0 : _g.message) !== null && _h !== void 0 ? _h : 'Gemini API error.', status !== null && status !== void 0 ? status : common_1.HttpStatus.BAD_GATEWAY);
425
487
  }
426
- const candidate = (_k = (_j = response.data) === null || _j === void 0 ? void 0 : _j.candidates) === null || _k === void 0 ? void 0 : _k[0];
427
- const parts = (_m = (_l = candidate === null || candidate === void 0 ? void 0 : candidate.content) === null || _l === void 0 ? void 0 : _l.parts) !== null && _m !== void 0 ? _m : [];
488
+ const geminiUsage = (_j = response.data) === null || _j === void 0 ? void 0 : _j.usageMetadata;
489
+ await this.aiExecution.recordStep({
490
+ executionId,
491
+ stepOrder: stepOrder++,
492
+ type: 'prompt',
493
+ provider: 'gemini',
494
+ model: 'gemini-2.0-flash',
495
+ durationMs: Date.now() - stepStart,
496
+ usage: geminiUsage
497
+ ? { input: (_k = geminiUsage.promptTokenCount) !== null && _k !== void 0 ? _k : 0, output: (_l = geminiUsage.candidatesTokenCount) !== null && _l !== void 0 ? _l : 0, total: (_m = geminiUsage.totalTokenCount) !== null && _m !== void 0 ? _m : 0 }
498
+ : undefined,
499
+ });
500
+ const candidate = (_p = (_o = response.data) === null || _o === void 0 ? void 0 : _o.candidates) === null || _p === void 0 ? void 0 : _p[0];
501
+ const parts = (_r = (_q = candidate === null || candidate === void 0 ? void 0 : candidate.content) === null || _q === void 0 ? void 0 : _q.parts) !== null && _r !== void 0 ? _r : [];
428
502
  const functionCallParts = parts.filter((p) => p.functionCall);
429
503
  const textParts = parts.filter((p) => p.text);
430
504
  if (functionCallParts.length > 0 && !forceFinish) {
@@ -491,11 +565,13 @@ let McpChatService = McpChatService_1 = class McpChatService {
491
565
  content: finalContent,
492
566
  },
493
567
  });
568
+ await this.aiExecution.finish(executionId, 'completed');
494
569
  return this.prisma.mcp_conversation_message.findMany({
495
570
  where: { conversation_id: conversationId },
496
571
  orderBy: { created_at: 'asc' },
497
572
  });
498
573
  }
574
+ await this.aiExecution.finish(executionId, 'failed', 'Maximum tool call iterations exceeded.');
499
575
  throw new common_1.BadRequestException('Maximum tool call iterations exceeded.');
500
576
  }
501
577
  // ── Helpers ──────────────────────────────────────────────────────────────
@@ -1022,8 +1098,12 @@ exports.McpChatService = McpChatService = McpChatService_1 = __decorate([
1022
1098
  __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => api_prisma_1.PrismaService))),
1023
1099
  __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => setting_service_1.SettingService))),
1024
1100
  __param(2, (0, common_1.Inject)((0, common_1.forwardRef)(() => mcp_registry_service_1.McpRegistryService))),
1101
+ __param(3, (0, common_1.Inject)((0, common_1.forwardRef)(() => ai_prompt_builder_service_1.AiPromptBuilderService))),
1102
+ __param(4, (0, common_1.Inject)((0, common_1.forwardRef)(() => ai_execution_service_1.AiExecutionService))),
1025
1103
  __metadata("design:paramtypes", [api_prisma_1.PrismaService,
1026
1104
  setting_service_1.SettingService,
1027
- mcp_registry_service_1.McpRegistryService])
1105
+ mcp_registry_service_1.McpRegistryService,
1106
+ ai_prompt_builder_service_1.AiPromptBuilderService,
1107
+ ai_execution_service_1.AiExecutionService])
1028
1108
  ], McpChatService);
1029
1109
  //# sourceMappingURL=mcp-chat.service.js.map