@hed-hog/core 0.0.327 → 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.
- package/dist/ai/ai.service.d.ts +1 -1
- package/dist/auth/auth.controller.d.ts +2 -2
- package/dist/auth/auth.service.d.ts +2 -2
- package/dist/core/system.controller.d.ts +1 -1
- package/dist/core/system.service.d.ts +1 -1
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +4 -0
- package/dist/core.module.js.map +1 -1
- package/dist/dashboard/dashboard/dashboard.controller.d.ts +21 -21
- package/dist/dashboard/dashboard/dashboard.service.d.ts +21 -21
- package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +11 -11
- package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +11 -11
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +5 -5
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +5 -5
- package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +4 -4
- package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +4 -4
- package/dist/dashboard/dashboard-item/dashboard-item.controller.d.ts +4 -4
- package/dist/dashboard/dashboard-item/dashboard-item.service.d.ts +4 -4
- package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +3 -3
- package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +3 -3
- package/dist/file/file.controller.d.ts +6 -6
- package/dist/file/file.service.d.ts +12 -12
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/mail/mail.controller.d.ts +2 -2
- package/dist/mail/mail.service.d.ts +2 -2
- package/dist/mail-sent/mail-sent.controller.d.ts +3 -3
- package/dist/mail-sent/mail-sent.service.d.ts +3 -3
- package/dist/mcp/decorators/mcp-tool.decorator.d.ts +4 -0
- package/dist/mcp/decorators/mcp-tool.decorator.d.ts.map +1 -0
- package/dist/mcp/decorators/mcp-tool.decorator.js +8 -0
- package/dist/mcp/decorators/mcp-tool.decorator.js.map +1 -0
- package/dist/mcp/guards/mcp-auth.guard.d.ts +9 -0
- package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -0
- package/dist/mcp/guards/mcp-auth.guard.js +41 -0
- package/dist/mcp/guards/mcp-auth.guard.js.map +1 -0
- package/dist/mcp/guards/mcp-permission.guard.d.ts +8 -0
- package/dist/mcp/guards/mcp-permission.guard.d.ts.map +1 -0
- package/dist/mcp/guards/mcp-permission.guard.js +57 -0
- package/dist/mcp/guards/mcp-permission.guard.js.map +1 -0
- package/dist/mcp/interfaces/mcp-tool-definition.interface.d.ts +7 -0
- package/dist/mcp/interfaces/mcp-tool-definition.interface.d.ts.map +1 -0
- package/dist/mcp/interfaces/mcp-tool-definition.interface.js +3 -0
- package/dist/mcp/interfaces/mcp-tool-definition.interface.js.map +1 -0
- package/dist/mcp/mcp-audit.service.d.ts +17 -0
- package/dist/mcp/mcp-audit.service.d.ts.map +1 -0
- package/dist/mcp/mcp-audit.service.js +46 -0
- package/dist/mcp/mcp-audit.service.js.map +1 -0
- package/dist/mcp/mcp-registry.service.d.ts +21 -0
- package/dist/mcp/mcp-registry.service.d.ts.map +1 -0
- package/dist/mcp/mcp-registry.service.js +69 -0
- package/dist/mcp/mcp-registry.service.js.map +1 -0
- package/dist/mcp/mcp-server.service.d.ts +12 -0
- package/dist/mcp/mcp-server.service.d.ts.map +1 -0
- package/dist/mcp/mcp-server.service.js +94 -0
- package/dist/mcp/mcp-server.service.js.map +1 -0
- package/dist/mcp/mcp.controller.d.ts +8 -0
- package/dist/mcp/mcp.controller.d.ts.map +1 -0
- package/dist/mcp/mcp.controller.js +54 -0
- package/dist/mcp/mcp.controller.js.map +1 -0
- package/dist/mcp/mcp.module.d.ts +3 -0
- package/dist/mcp/mcp.module.d.ts.map +1 -0
- package/dist/mcp/mcp.module.js +49 -0
- package/dist/mcp/mcp.module.js.map +1 -0
- package/dist/mcp/tools/core-settings.mcp-tools.d.ts +12 -0
- package/dist/mcp/tools/core-settings.mcp-tools.d.ts.map +1 -0
- package/dist/mcp/tools/core-settings.mcp-tools.js +66 -0
- package/dist/mcp/tools/core-settings.mcp-tools.js.map +1 -0
- package/dist/mcp/tools/core-users.mcp-tools.d.ts +55 -0
- package/dist/mcp/tools/core-users.mcp-tools.d.ts.map +1 -0
- package/dist/mcp/tools/core-users.mcp-tools.js +295 -0
- package/dist/mcp/tools/core-users.mcp-tools.js.map +1 -0
- package/dist/mcp/types/mcp-context.type.d.ts +7 -0
- package/dist/mcp/types/mcp-context.type.d.ts.map +1 -0
- package/dist/mcp/types/mcp-context.type.js +3 -0
- package/dist/mcp/types/mcp-context.type.js.map +1 -0
- package/dist/mcp-chat/dto/create-conversation.dto.d.ts +4 -0
- package/dist/mcp-chat/dto/create-conversation.dto.d.ts.map +1 -0
- package/dist/mcp-chat/dto/create-conversation.dto.js +22 -0
- package/dist/mcp-chat/dto/create-conversation.dto.js.map +1 -0
- package/dist/mcp-chat/dto/send-message.dto.d.ts +4 -0
- package/dist/mcp-chat/dto/send-message.dto.d.ts.map +1 -0
- package/dist/mcp-chat/dto/send-message.dto.js +22 -0
- package/dist/mcp-chat/dto/send-message.dto.js.map +1 -0
- package/dist/mcp-chat/mcp-chat.controller.d.ts +55 -0
- package/dist/mcp-chat/mcp-chat.controller.d.ts.map +1 -0
- package/dist/mcp-chat/mcp-chat.controller.js +90 -0
- package/dist/mcp-chat/mcp-chat.controller.js.map +1 -0
- package/dist/mcp-chat/mcp-chat.module.d.ts +3 -0
- package/dist/mcp-chat/mcp-chat.module.d.ts.map +1 -0
- package/dist/mcp-chat/mcp-chat.module.js +30 -0
- package/dist/mcp-chat/mcp-chat.module.js.map +1 -0
- package/dist/mcp-chat/mcp-chat.service.d.ts +50 -0
- package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -0
- package/dist/mcp-chat/mcp-chat.service.js +290 -0
- package/dist/mcp-chat/mcp-chat.service.js.map +1 -0
- package/dist/menu/menu.controller.d.ts +3 -3
- package/dist/menu/menu.service.d.ts +3 -3
- package/dist/profile/profile.controller.d.ts +2 -2
- package/dist/profile/profile.service.d.ts +2 -2
- package/dist/route/dto/create.dto.d.ts +6 -2
- package/dist/route/dto/create.dto.d.ts.map +1 -1
- package/dist/route/dto/create.dto.js +19 -1
- package/dist/route/dto/create.dto.js.map +1 -1
- package/dist/route/dto/update.dto.d.ts +4 -0
- package/dist/route/dto/update.dto.d.ts.map +1 -1
- package/dist/route/dto/update.dto.js +19 -3
- package/dist/route/dto/update.dto.js.map +1 -1
- package/dist/route/route.service.d.ts +1 -1
- package/dist/route/route.service.d.ts.map +1 -1
- package/dist/route/route.service.js +18 -11
- package/dist/route/route.service.js.map +1 -1
- package/dist/setting/setting.controller.d.ts +5 -5
- package/dist/setting/setting.service.d.ts +5 -5
- package/dist/user/user.controller.d.ts +3 -3
- package/dist/user/user.service.d.ts +6 -6
- package/hedhog/data/menu.yaml +40 -26
- package/hedhog/data/route.yaml +575 -152
- package/hedhog/data/setting_group.yaml +1 -1
- package/hedhog/frontend/app/configurations/[slug]/page.tsx.ejs +8 -1
- package/hedhog/frontend/app/configurations/layout.tsx.ejs +152 -34
- package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +574 -0
- package/hedhog/frontend/messages/en.json +17 -0
- package/hedhog/frontend/messages/pt.json +17 -0
- package/hedhog/table/mcp_conversation.yaml +12 -0
- package/hedhog/table/mcp_conversation_message.yaml +23 -0
- package/hedhog/table/mcp_tool_call_log.yaml +22 -0
- package/hedhog/table/route.yaml +33 -22
- package/package.json +5 -4
- package/src/core.module.ts +14 -10
- package/src/index.ts +17 -10
- package/src/mcp/decorators/mcp-tool.decorator.ts +7 -0
- package/src/mcp/guards/mcp-auth.guard.ts +32 -0
- package/src/mcp/guards/mcp-permission.guard.ts +51 -0
- package/src/mcp/interfaces/mcp-tool-definition.interface.ts +6 -0
- package/src/mcp/mcp-audit.service.ts +36 -0
- package/src/mcp/mcp-registry.service.ts +69 -0
- package/src/mcp/mcp-server.service.ts +87 -0
- package/src/mcp/mcp.controller.ts +30 -0
- package/src/mcp/mcp.module.ts +36 -0
- package/src/mcp/tools/core-settings.mcp-tools.ts +53 -0
- package/src/mcp/tools/core-users.mcp-tools.ts +267 -0
- package/src/mcp/types/mcp-context.type.ts +6 -0
- package/src/mcp-chat/dto/create-conversation.dto.ts +7 -0
- package/src/mcp-chat/dto/send-message.dto.ts +7 -0
- package/src/mcp-chat/mcp-chat.controller.ts +60 -0
- package/src/mcp-chat/mcp-chat.module.ts +17 -0
- package/src/mcp-chat/mcp-chat.service.ts +332 -0
- package/src/route/dto/create.dto.ts +32 -14
- package/src/route/dto/update.dto.ts +31 -16
- 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
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@IsString({ message: (args) => getLocaleText('validation.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
})
|
|
15
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
url,
|
|
53
|
-
|
|
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 (
|
|
58
|
-
|
|
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> {
|