repoburg 1.1.10 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/backend/dist/src/action-execution/action-execution.module.js +2 -0
  2. package/backend/dist/src/action-execution/action-execution.module.js.map +1 -1
  3. package/backend/dist/src/action-execution/action-execution.service.d.ts +7 -0
  4. package/backend/dist/src/action-execution/action-execution.service.js +22 -2
  5. package/backend/dist/src/action-execution/action-execution.service.js.map +1 -1
  6. package/backend/dist/src/ai-actions/ai-action-batch.service.js +18 -0
  7. package/backend/dist/src/ai-actions/ai-action-batch.service.js.map +1 -1
  8. package/backend/dist/src/ai-actions/ai-action-creation.service.js +34 -2
  9. package/backend/dist/src/ai-actions/ai-action-creation.service.js.map +1 -1
  10. package/backend/dist/src/ai-actions/ai-actions.module.js +2 -0
  11. package/backend/dist/src/ai-actions/ai-actions.module.js.map +1 -1
  12. package/backend/dist/src/app.module.js +4 -0
  13. package/backend/dist/src/app.module.js.map +1 -1
  14. package/backend/dist/src/core-entities/ai-action.entity.d.ts +3 -0
  15. package/backend/dist/src/core-entities/ai-action.entity.js +12 -0
  16. package/backend/dist/src/core-entities/ai-action.entity.js.map +1 -1
  17. package/backend/dist/src/core-entities/index.d.ts +2 -0
  18. package/backend/dist/src/core-entities/index.js +2 -0
  19. package/backend/dist/src/core-entities/index.js.map +1 -1
  20. package/backend/dist/src/core-entities/mcp-config.entity.d.ts +8 -0
  21. package/backend/dist/src/core-entities/mcp-config.entity.js +42 -0
  22. package/backend/dist/src/core-entities/mcp-config.entity.js.map +1 -0
  23. package/backend/dist/src/core-entities/mcp-tool.entity.d.ts +8 -0
  24. package/backend/dist/src/core-entities/mcp-tool.entity.js +44 -0
  25. package/backend/dist/src/core-entities/mcp-tool.entity.js.map +1 -0
  26. package/backend/dist/src/llm-response-parser/dto/ai-action.dto.d.ts +6 -1
  27. package/backend/dist/src/llm-response-parser/dto/ai-action.dto.js +28 -0
  28. package/backend/dist/src/llm-response-parser/dto/ai-action.dto.js.map +1 -1
  29. package/backend/dist/src/llm-response-parser/llm-response-parser.service.js +18 -2
  30. package/backend/dist/src/llm-response-parser/llm-response-parser.service.js.map +1 -1
  31. package/backend/dist/src/llm-response-parser/parsing.constants.d.ts +3 -0
  32. package/backend/dist/src/llm-response-parser/parsing.constants.js +4 -1
  33. package/backend/dist/src/llm-response-parser/parsing.constants.js.map +1 -1
  34. package/backend/dist/src/llm-responses/llm-responses.module.js +2 -0
  35. package/backend/dist/src/llm-responses/llm-responses.module.js.map +1 -1
  36. package/backend/dist/src/llm-responses/llm-responses.service.d.ts +3 -1
  37. package/backend/dist/src/llm-responses/llm-responses.service.js +8 -5
  38. package/backend/dist/src/llm-responses/llm-responses.service.js.map +1 -1
  39. package/backend/dist/src/mcp/dto/batch-update-mcp-tools.dto.d.ts +4 -0
  40. package/backend/dist/src/mcp/dto/batch-update-mcp-tools.dto.js +28 -0
  41. package/backend/dist/src/mcp/dto/batch-update-mcp-tools.dto.js.map +1 -0
  42. package/backend/dist/src/mcp/dto/create-mcp-config.dto.d.ts +3 -0
  43. package/backend/dist/src/mcp/dto/create-mcp-config.dto.js +23 -0
  44. package/backend/dist/src/mcp/dto/create-mcp-config.dto.js.map +1 -0
  45. package/backend/dist/src/mcp/dto/update-mcp-config.dto.d.ts +3 -0
  46. package/backend/dist/src/mcp/dto/update-mcp-config.dto.js +22 -0
  47. package/backend/dist/src/mcp/dto/update-mcp-config.dto.js.map +1 -0
  48. package/backend/dist/src/mcp/mcp.controller.d.ts +16 -0
  49. package/backend/dist/src/mcp/mcp.controller.js +91 -0
  50. package/backend/dist/src/mcp/mcp.controller.js.map +1 -0
  51. package/backend/dist/src/mcp/mcp.module.d.ts +2 -0
  52. package/backend/dist/src/mcp/mcp.module.js +26 -0
  53. package/backend/dist/src/mcp/mcp.module.js.map +1 -0
  54. package/backend/dist/src/mcp/mcp.service.d.ts +27 -0
  55. package/backend/dist/src/mcp/mcp.service.js +263 -0
  56. package/backend/dist/src/mcp/mcp.service.js.map +1 -0
  57. package/backend/dist/src/seeding/data/context-templates/open-pr-command.d.ts +1 -1
  58. package/backend/dist/src/seeding/data/context-templates/open-pr-command.js +1 -1
  59. package/backend/dist/src/seeding/data/mcp-configs/default-configs.d.ts +1 -0
  60. package/backend/dist/src/seeding/data/mcp-configs/default-configs.js +5 -0
  61. package/backend/dist/src/seeding/data/mcp-configs/default-configs.js.map +1 -0
  62. package/backend/dist/src/seeding/data/system-prompts/default_master-agent.d.ts +1 -1
  63. package/backend/dist/src/seeding/data/system-prompts/default_master-agent.js +126 -41
  64. package/backend/dist/src/seeding/data/system-prompts/default_master-agent.js.map +1 -1
  65. package/backend/dist/src/seeding/mcp-config-seeding.service.d.ts +8 -0
  66. package/backend/dist/src/seeding/mcp-config-seeding.service.js +50 -0
  67. package/backend/dist/src/seeding/mcp-config-seeding.service.js.map +1 -0
  68. package/backend/dist/src/seeding/seeding.module.js +10 -1
  69. package/backend/dist/src/seeding/seeding.module.js.map +1 -1
  70. package/backend/dist/src/seeding/seeding.service.d.ts +3 -1
  71. package/backend/dist/src/seeding/seeding.service.js +6 -2
  72. package/backend/dist/src/seeding/seeding.service.js.map +1 -1
  73. package/backend/dist/src/system-prompts/system-prompts.controller.d.ts +1 -0
  74. package/backend/dist/src/system-prompts/system-prompts.controller.js +10 -0
  75. package/backend/dist/src/system-prompts/system-prompts.controller.js.map +1 -1
  76. package/backend/dist/src/system-prompts/system-prompts.module.js +2 -1
  77. package/backend/dist/src/system-prompts/system-prompts.module.js.map +1 -1
  78. package/backend/dist/src/system-prompts/system-prompts.service.d.ts +5 -1
  79. package/backend/dist/src/system-prompts/system-prompts.service.js +52 -8
  80. package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -1
  81. package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  82. package/package.json +4 -2
@@ -18,20 +18,43 @@ const typeorm_1 = require("@nestjs/typeorm");
18
18
  const typeorm_2 = require("typeorm");
19
19
  const core_entities_1 = require("../core-entities");
20
20
  const events_gateway_1 = require("../events/events.gateway");
21
+ const mcp_service_1 = require("../mcp/mcp.service");
21
22
  let SystemPromptsService = class SystemPromptsService {
22
- constructor(systemPromptsRepository, dataSource, eventsGateway) {
23
+ constructor(systemPromptsRepository, dataSource, eventsGateway, mcpService) {
23
24
  this.systemPromptsRepository = systemPromptsRepository;
24
25
  this.dataSource = dataSource;
25
26
  this.eventsGateway = eventsGateway;
27
+ this.mcpService = mcpService;
28
+ }
29
+ async _injectMcpTools(content) {
30
+ if (content.includes('{{MCP_SERVERS}}')) {
31
+ const mcpToolsDefinition = await this.mcpService.getMcpToolsDefinition();
32
+ return content.replace('{{MCP_SERVERS}}', mcpToolsDefinition);
33
+ }
34
+ return content;
26
35
  }
27
36
  async create(createSystemPromptDto) {
28
37
  const prompt = this.systemPromptsRepository.create(createSystemPromptDto);
29
38
  return this.systemPromptsRepository.save(prompt);
30
39
  }
31
40
  async findAll() {
32
- return this.systemPromptsRepository.find({ order: { prompt_name: 'ASC' } });
41
+ const prompts = await this.systemPromptsRepository.find({
42
+ order: { prompt_name: 'ASC' },
43
+ });
44
+ for (const prompt of prompts) {
45
+ prompt.prompt_content = await this._injectMcpTools(prompt.prompt_content);
46
+ }
47
+ return prompts;
33
48
  }
34
49
  async findOne(id) {
50
+ const prompt = await this.systemPromptsRepository.findOneBy({ id });
51
+ if (!prompt) {
52
+ throw new common_1.NotFoundException(`SystemPrompt with ID "${id}" not found`);
53
+ }
54
+ prompt.prompt_content = await this._injectMcpTools(prompt.prompt_content);
55
+ return prompt;
56
+ }
57
+ async findOneRaw(id) {
35
58
  const prompt = await this.systemPromptsRepository.findOneBy({ id });
36
59
  if (!prompt) {
37
60
  throw new common_1.NotFoundException(`SystemPrompt with ID "${id}" not found`);
@@ -39,21 +62,40 @@ let SystemPromptsService = class SystemPromptsService {
39
62
  return prompt;
40
63
  }
41
64
  async findDefault() {
42
- return this.systemPromptsRepository.findOneBy({ is_default: true });
65
+ const prompt = await this.systemPromptsRepository.findOneBy({
66
+ is_default: true,
67
+ });
68
+ if (prompt) {
69
+ prompt.prompt_content = await this._injectMcpTools(prompt.prompt_content);
70
+ }
71
+ return prompt;
43
72
  }
44
73
  async update(id, updateSystemPromptDto) {
45
- const prompt = await this.findOne(id);
74
+ const prompt = await this.systemPromptsRepository.findOneBy({ id });
75
+ if (!prompt) {
76
+ throw new common_1.NotFoundException(`SystemPrompt with ID "${id}" not found`);
77
+ }
46
78
  const updateData = { ...updateSystemPromptDto };
47
79
  delete updateData.is_default;
48
80
  this.systemPromptsRepository.merge(prompt, updateData);
49
- return this.systemPromptsRepository.save(prompt);
81
+ const updatedPrompt = await this.systemPromptsRepository.save(prompt);
82
+ updatedPrompt.prompt_content = await this._injectMcpTools(updatedPrompt.prompt_content);
83
+ return updatedPrompt;
50
84
  }
51
85
  async remove(id) {
52
- const prompt = await this.findOne(id);
86
+ const prompt = await this.systemPromptsRepository.findOneBy({ id });
87
+ if (!prompt) {
88
+ throw new common_1.NotFoundException(`SystemPrompt with ID "${id}" not found`);
89
+ }
53
90
  await this.systemPromptsRepository.remove(prompt);
54
91
  }
55
92
  async setDefault(id) {
56
- const newDefaultPrompt = await this.findOne(id);
93
+ const newDefaultPrompt = await this.systemPromptsRepository.findOneBy({
94
+ id,
95
+ });
96
+ if (!newDefaultPrompt) {
97
+ throw new common_1.NotFoundException(`SystemPrompt with ID "${id}" not found`);
98
+ }
57
99
  await this.dataSource.transaction(async (manager) => {
58
100
  const currentDefault = await manager.findOneBy(core_entities_1.SystemPrompt, {
59
101
  is_default: true,
@@ -67,6 +109,7 @@ let SystemPromptsService = class SystemPromptsService {
67
109
  await manager.save(newDefaultPrompt);
68
110
  }
69
111
  });
112
+ newDefaultPrompt.prompt_content = await this._injectMcpTools(newDefaultPrompt.prompt_content);
70
113
  return newDefaultPrompt;
71
114
  }
72
115
  async pushToStudio(id) {
@@ -82,6 +125,7 @@ exports.SystemPromptsService = SystemPromptsService = __decorate([
82
125
  __param(0, (0, typeorm_1.InjectRepository)(core_entities_1.SystemPrompt)),
83
126
  __metadata("design:paramtypes", [typeorm_2.Repository,
84
127
  typeorm_2.DataSource,
85
- events_gateway_1.EventsGateway])
128
+ events_gateway_1.EventsGateway,
129
+ mcp_service_1.McpService])
86
130
  ], SystemPromptsService);
87
131
  //# sourceMappingURL=system-prompts.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompts.service.js","sourceRoot":"","sources":["../../../src/system-prompts/system-prompts.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompts.service.js","sourceRoot":"","sources":["../../../src/system-prompts/system-prompts.service.ts"],"names":[],"mappings":"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"}