@hed-hog/core 0.0.328 → 0.0.329

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 (150) hide show
  1. package/dist/ai/ai.service.d.ts +1 -1
  2. package/dist/auth/auth.controller.d.ts +2 -2
  3. package/dist/auth/auth.service.d.ts +2 -2
  4. package/dist/core/system.controller.d.ts +1 -1
  5. package/dist/core/system.service.d.ts +1 -1
  6. package/dist/core.module.d.ts.map +1 -1
  7. package/dist/core.module.js +4 -0
  8. package/dist/core.module.js.map +1 -1
  9. package/dist/dashboard/dashboard/dashboard.controller.d.ts +21 -21
  10. package/dist/dashboard/dashboard/dashboard.service.d.ts +21 -21
  11. package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +11 -11
  12. package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +11 -11
  13. package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +5 -5
  14. package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +5 -5
  15. package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +4 -4
  16. package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +4 -4
  17. package/dist/dashboard/dashboard-item/dashboard-item.controller.d.ts +4 -4
  18. package/dist/dashboard/dashboard-item/dashboard-item.service.d.ts +4 -4
  19. package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +3 -3
  20. package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +3 -3
  21. package/dist/file/file.controller.d.ts +6 -6
  22. package/dist/file/file.service.d.ts +12 -12
  23. package/dist/index.d.ts +5 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +6 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/mail/mail.controller.d.ts +2 -2
  28. package/dist/mail/mail.service.d.ts +2 -2
  29. package/dist/mail-sent/mail-sent.controller.d.ts +3 -3
  30. package/dist/mail-sent/mail-sent.service.d.ts +3 -3
  31. package/dist/mcp/decorators/mcp-tool.decorator.d.ts +4 -0
  32. package/dist/mcp/decorators/mcp-tool.decorator.d.ts.map +1 -0
  33. package/dist/mcp/decorators/mcp-tool.decorator.js +8 -0
  34. package/dist/mcp/decorators/mcp-tool.decorator.js.map +1 -0
  35. package/dist/mcp/guards/mcp-auth.guard.d.ts +9 -0
  36. package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -0
  37. package/dist/mcp/guards/mcp-auth.guard.js +41 -0
  38. package/dist/mcp/guards/mcp-auth.guard.js.map +1 -0
  39. package/dist/mcp/guards/mcp-permission.guard.d.ts +8 -0
  40. package/dist/mcp/guards/mcp-permission.guard.d.ts.map +1 -0
  41. package/dist/mcp/guards/mcp-permission.guard.js +57 -0
  42. package/dist/mcp/guards/mcp-permission.guard.js.map +1 -0
  43. package/dist/mcp/interfaces/mcp-tool-definition.interface.d.ts +7 -0
  44. package/dist/mcp/interfaces/mcp-tool-definition.interface.d.ts.map +1 -0
  45. package/dist/mcp/interfaces/mcp-tool-definition.interface.js +3 -0
  46. package/dist/mcp/interfaces/mcp-tool-definition.interface.js.map +1 -0
  47. package/dist/mcp/mcp-audit.service.d.ts +17 -0
  48. package/dist/mcp/mcp-audit.service.d.ts.map +1 -0
  49. package/dist/mcp/mcp-audit.service.js +46 -0
  50. package/dist/mcp/mcp-audit.service.js.map +1 -0
  51. package/dist/mcp/mcp-registry.service.d.ts +21 -0
  52. package/dist/mcp/mcp-registry.service.d.ts.map +1 -0
  53. package/dist/mcp/mcp-registry.service.js +69 -0
  54. package/dist/mcp/mcp-registry.service.js.map +1 -0
  55. package/dist/mcp/mcp-server.service.d.ts +12 -0
  56. package/dist/mcp/mcp-server.service.d.ts.map +1 -0
  57. package/dist/mcp/mcp-server.service.js +94 -0
  58. package/dist/mcp/mcp-server.service.js.map +1 -0
  59. package/dist/mcp/mcp.controller.d.ts +8 -0
  60. package/dist/mcp/mcp.controller.d.ts.map +1 -0
  61. package/dist/mcp/mcp.controller.js +54 -0
  62. package/dist/mcp/mcp.controller.js.map +1 -0
  63. package/dist/mcp/mcp.module.d.ts +3 -0
  64. package/dist/mcp/mcp.module.d.ts.map +1 -0
  65. package/dist/mcp/mcp.module.js +49 -0
  66. package/dist/mcp/mcp.module.js.map +1 -0
  67. package/dist/mcp/tools/core-settings.mcp-tools.d.ts +12 -0
  68. package/dist/mcp/tools/core-settings.mcp-tools.d.ts.map +1 -0
  69. package/dist/mcp/tools/core-settings.mcp-tools.js +66 -0
  70. package/dist/mcp/tools/core-settings.mcp-tools.js.map +1 -0
  71. package/dist/mcp/tools/core-users.mcp-tools.d.ts +55 -0
  72. package/dist/mcp/tools/core-users.mcp-tools.d.ts.map +1 -0
  73. package/dist/mcp/tools/core-users.mcp-tools.js +295 -0
  74. package/dist/mcp/tools/core-users.mcp-tools.js.map +1 -0
  75. package/dist/mcp/types/mcp-context.type.d.ts +7 -0
  76. package/dist/mcp/types/mcp-context.type.d.ts.map +1 -0
  77. package/dist/mcp/types/mcp-context.type.js +3 -0
  78. package/dist/mcp/types/mcp-context.type.js.map +1 -0
  79. package/dist/mcp-chat/dto/create-conversation.dto.d.ts +4 -0
  80. package/dist/mcp-chat/dto/create-conversation.dto.d.ts.map +1 -0
  81. package/dist/mcp-chat/dto/create-conversation.dto.js +22 -0
  82. package/dist/mcp-chat/dto/create-conversation.dto.js.map +1 -0
  83. package/dist/mcp-chat/dto/send-message.dto.d.ts +4 -0
  84. package/dist/mcp-chat/dto/send-message.dto.d.ts.map +1 -0
  85. package/dist/mcp-chat/dto/send-message.dto.js +22 -0
  86. package/dist/mcp-chat/dto/send-message.dto.js.map +1 -0
  87. package/dist/mcp-chat/mcp-chat.controller.d.ts +55 -0
  88. package/dist/mcp-chat/mcp-chat.controller.d.ts.map +1 -0
  89. package/dist/mcp-chat/mcp-chat.controller.js +90 -0
  90. package/dist/mcp-chat/mcp-chat.controller.js.map +1 -0
  91. package/dist/mcp-chat/mcp-chat.module.d.ts +3 -0
  92. package/dist/mcp-chat/mcp-chat.module.d.ts.map +1 -0
  93. package/dist/mcp-chat/mcp-chat.module.js +30 -0
  94. package/dist/mcp-chat/mcp-chat.module.js.map +1 -0
  95. package/dist/mcp-chat/mcp-chat.service.d.ts +50 -0
  96. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -0
  97. package/dist/mcp-chat/mcp-chat.service.js +290 -0
  98. package/dist/mcp-chat/mcp-chat.service.js.map +1 -0
  99. package/dist/menu/menu.controller.d.ts +3 -3
  100. package/dist/menu/menu.service.d.ts +3 -3
  101. package/dist/profile/profile.controller.d.ts +2 -2
  102. package/dist/profile/profile.service.d.ts +2 -2
  103. package/dist/route/dto/create.dto.d.ts +6 -2
  104. package/dist/route/dto/create.dto.d.ts.map +1 -1
  105. package/dist/route/dto/create.dto.js +19 -1
  106. package/dist/route/dto/create.dto.js.map +1 -1
  107. package/dist/route/dto/update.dto.d.ts +4 -0
  108. package/dist/route/dto/update.dto.d.ts.map +1 -1
  109. package/dist/route/dto/update.dto.js +19 -3
  110. package/dist/route/dto/update.dto.js.map +1 -1
  111. package/dist/route/route.service.d.ts +1 -1
  112. package/dist/route/route.service.d.ts.map +1 -1
  113. package/dist/route/route.service.js +18 -11
  114. package/dist/route/route.service.js.map +1 -1
  115. package/dist/setting/setting.controller.d.ts +5 -5
  116. package/dist/setting/setting.service.d.ts +5 -5
  117. package/dist/user/user.controller.d.ts +3 -3
  118. package/dist/user/user.service.d.ts +6 -6
  119. package/hedhog/data/menu.yaml +40 -26
  120. package/hedhog/data/route.yaml +575 -152
  121. package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +574 -0
  122. package/hedhog/frontend/messages/en.json +17 -0
  123. package/hedhog/frontend/messages/pt.json +17 -0
  124. package/hedhog/table/mcp_conversation.yaml +12 -0
  125. package/hedhog/table/mcp_conversation_message.yaml +23 -0
  126. package/hedhog/table/mcp_tool_call_log.yaml +22 -0
  127. package/hedhog/table/route.yaml +33 -22
  128. package/package.json +5 -4
  129. package/src/core.module.ts +14 -10
  130. package/src/index.ts +17 -10
  131. package/src/mcp/decorators/mcp-tool.decorator.ts +7 -0
  132. package/src/mcp/guards/mcp-auth.guard.ts +32 -0
  133. package/src/mcp/guards/mcp-permission.guard.ts +51 -0
  134. package/src/mcp/interfaces/mcp-tool-definition.interface.ts +6 -0
  135. package/src/mcp/mcp-audit.service.ts +36 -0
  136. package/src/mcp/mcp-registry.service.ts +69 -0
  137. package/src/mcp/mcp-server.service.ts +87 -0
  138. package/src/mcp/mcp.controller.ts +30 -0
  139. package/src/mcp/mcp.module.ts +36 -0
  140. package/src/mcp/tools/core-settings.mcp-tools.ts +53 -0
  141. package/src/mcp/tools/core-users.mcp-tools.ts +267 -0
  142. package/src/mcp/types/mcp-context.type.ts +6 -0
  143. package/src/mcp-chat/dto/create-conversation.dto.ts +7 -0
  144. package/src/mcp-chat/dto/send-message.dto.ts +7 -0
  145. package/src/mcp-chat/mcp-chat.controller.ts +60 -0
  146. package/src/mcp-chat/mcp-chat.module.ts +17 -0
  147. package/src/mcp-chat/mcp-chat.service.ts +332 -0
  148. package/src/route/dto/create.dto.ts +32 -14
  149. package/src/route/dto/update.dto.ts +31 -16
  150. package/src/route/route.service.ts +23 -12
@@ -1,14 +1,32 @@
1
- import { getLocaleText } from '@hed-hog/api-locale';
2
- import { IsIn, IsString } from 'class-validator';
3
- import { HttpMethod } from '../../types/http-method';
4
-
5
- export class CreateDTO {
6
- @IsString({ message: (args) => getLocaleText('validation.urlMustBeString', args.value) })
7
- url: string;
8
-
9
- @IsString({ message: (args) => getLocaleText('validation.methodMustBeString', args.value) })
10
- @IsIn(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'], {
11
- message: (args) => getLocaleText('validation.methodMustBeValid', args.value),
12
- })
13
- method: HttpMethod;
14
- }
1
+ import { getLocaleText } from '@hed-hog/api-locale';
2
+ import { IsIn, IsOptional, IsString } from 'class-validator';
3
+ import { HttpMethod } from '../../types/http-method';
4
+
5
+ export type RouteType = 'HTTP' | 'MCP';
6
+
7
+ const HTTP_METHODS = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'];
8
+
9
+ export class CreateDTO {
10
+ @IsOptional()
11
+ @IsString({ message: (args) => getLocaleText('validation.urlMustBeString', args.value) })
12
+ url?: string;
13
+
14
+ @IsOptional()
15
+ @IsString({ message: (args) => getLocaleText('validation.methodMustBeString', args.value) })
16
+ @IsIn(HTTP_METHODS, {
17
+ message: (args) => getLocaleText('validation.methodMustBeValid', args.value),
18
+ })
19
+ method?: HttpMethod;
20
+
21
+ @IsOptional()
22
+ @IsIn(['HTTP', 'MCP'])
23
+ type?: RouteType;
24
+
25
+ @IsOptional()
26
+ @IsString()
27
+ tool_name?: string;
28
+
29
+ @IsOptional()
30
+ @IsString()
31
+ name?: string;
32
+ }
@@ -1,16 +1,31 @@
1
- import { getLocaleText } from '@hed-hog/api-locale';
2
- import { IsIn, IsOptional, IsString } from 'class-validator';
3
- import { HttpMethod } from '../../types/http-method';
4
-
5
- export class UpdateDTO {
6
- @IsString({ message: (args) => getLocaleText('validation.urlMustBeString', args.value) })
7
- @IsOptional()
8
- url?: string;
9
-
10
- @IsString({ message: (args) => getLocaleText('validation.methodMustBeString', args.value) })
11
- @IsOptional()
12
- @IsIn(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'], {
13
- message: (args) => getLocaleText('validation.methodMustBeValid', args.value),
14
- })
15
- method?: HttpMethod;
16
- }
1
+ import { getLocaleText } from '@hed-hog/api-locale';
2
+ import { IsIn, IsOptional, IsString } from 'class-validator';
3
+ import { HttpMethod } from '../../types/http-method';
4
+ import { RouteType } from './create.dto';
5
+
6
+ const HTTP_METHODS = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'];
7
+
8
+ export class UpdateDTO {
9
+ @IsOptional()
10
+ @IsString({ message: (args) => getLocaleText('validation.urlMustBeString', args.value) })
11
+ url?: string;
12
+
13
+ @IsOptional()
14
+ @IsString({ message: (args) => getLocaleText('validation.methodMustBeString', args.value) })
15
+ @IsIn(HTTP_METHODS, {
16
+ message: (args) => getLocaleText('validation.methodMustBeValid', args.value),
17
+ })
18
+ method?: HttpMethod;
19
+
20
+ @IsOptional()
21
+ @IsIn(['HTTP', 'MCP'])
22
+ type?: RouteType;
23
+
24
+ @IsOptional()
25
+ @IsString()
26
+ tool_name?: string;
27
+
28
+ @IsOptional()
29
+ @IsString()
30
+ name?: string;
31
+ }
@@ -17,7 +17,7 @@ export class RouteService {
17
17
  ) {}
18
18
 
19
19
  async list(paginationParams: PaginationDTO) {
20
- const fields = ['url', 'method'];
20
+ const fields = ['url', 'method', 'tool_name', 'name'];
21
21
 
22
22
  const OR: any[] = this.prismaService.createInsensitiveSearch(
23
23
  fields,
@@ -45,20 +45,31 @@ export class RouteService {
45
45
  return route;
46
46
  }
47
47
 
48
- async create({ url, method }: CreateDTO, locale: string): Promise<any> {
49
-
50
- const existingRoute = await this.prismaService.route.findFirst({
51
- where: {
52
- url,
53
- method,
54
- },
55
- });
48
+ async create({ url, method, type = 'HTTP', tool_name, name }: CreateDTO, locale: string): Promise<any> {
49
+
50
+ if (type === 'HTTP' && url && method) {
51
+ const existingRoute = await this.prismaService.route.findFirst({
52
+ where: { url, method },
53
+ });
54
+ if (existingRoute) {
55
+ throw new BadRequestException(
56
+ getLocaleText('itemAlreadyExists', locale, `Route with URL ${url} and method ${method} already exists`).replace('{{item}}', 'Route'),
57
+ );
58
+ }
59
+ }
56
60
 
57
- if (existingRoute) {
58
- throw new BadRequestException(getLocaleText('itemAlreadyExists', locale, `Route with URL ${url} and method ${method} already exists`).replace('{{item}}', 'Route'));
61
+ if (type === 'MCP' && tool_name) {
62
+ const existingTool = await this.prismaService.route.findFirst({
63
+ where: { tool_name },
64
+ });
65
+ if (existingTool) {
66
+ throw new BadRequestException(
67
+ getLocaleText('itemAlreadyExists', locale, `MCP tool '${tool_name}' already exists`).replace('{{item}}', 'MCP tool'),
68
+ );
69
+ }
59
70
  }
60
71
 
61
- return this.prismaService.route.create({ data: { url, method } });
72
+ return this.prismaService.route.create({ data: { url, method, type: type as any, tool_name, name } });
62
73
  }
63
74
 
64
75
  async update({ id, data }: { id: number; data: UpdateDTO }, locale: string): Promise<any> {