repoburg 1.3.92 → 1.3.94

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 (49) hide show
  1. package/backend/dist/src/common/middleware/cache.middleware.js +5 -0
  2. package/backend/dist/src/common/middleware/cache.middleware.js.map +1 -1
  3. package/backend/dist/src/context-templates/context-templates.service.d.ts +2 -0
  4. package/backend/dist/src/context-templates/context-templates.service.js +33 -4
  5. package/backend/dist/src/context-templates/context-templates.service.js.map +1 -1
  6. package/backend/dist/src/context-templates/dto/context-template.dto.d.ts +2 -0
  7. package/backend/dist/src/context-templates/dto/context-template.dto.js +18 -0
  8. package/backend/dist/src/context-templates/dto/context-template.dto.js.map +1 -1
  9. package/backend/dist/src/core-entities/context-template.entity.d.ts +2 -0
  10. package/backend/dist/src/core-entities/context-template.entity.js +17 -0
  11. package/backend/dist/src/core-entities/context-template.entity.js.map +1 -1
  12. package/backend/dist/src/core-entities/system-prompt.entity.d.ts +2 -0
  13. package/backend/dist/src/core-entities/system-prompt.entity.js +17 -0
  14. package/backend/dist/src/core-entities/system-prompt.entity.js.map +1 -1
  15. package/backend/dist/src/llm-provider/alibaba-llm.provider.js +1 -0
  16. package/backend/dist/src/llm-provider/alibaba-llm.provider.js.map +1 -1
  17. package/backend/dist/src/seeding/context-template-seeding.service.js +34 -19
  18. package/backend/dist/src/seeding/context-template-seeding.service.js.map +1 -1
  19. package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.d.ts +1 -1
  20. package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.js +22 -0
  21. package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.js.map +1 -1
  22. package/backend/dist/src/seeding/sub-agent-seeding.service.js +80 -39
  23. package/backend/dist/src/seeding/sub-agent-seeding.service.js.map +1 -1
  24. package/backend/dist/src/seeding/system-prompt-seeding.service.js +27 -12
  25. package/backend/dist/src/seeding/system-prompt-seeding.service.js.map +1 -1
  26. package/backend/dist/src/sub-agents/dto/create-sub-agent.dto.d.ts +2 -0
  27. package/backend/dist/src/sub-agents/dto/create-sub-agent.dto.js +18 -0
  28. package/backend/dist/src/sub-agents/dto/create-sub-agent.dto.js.map +1 -1
  29. package/backend/dist/src/sub-agents/sub-agent.entity.d.ts +2 -0
  30. package/backend/dist/src/sub-agents/sub-agent.entity.js +17 -0
  31. package/backend/dist/src/sub-agents/sub-agent.entity.js.map +1 -1
  32. package/backend/dist/src/sub-agents/sub-agents.controller.d.ts +1 -0
  33. package/backend/dist/src/sub-agents/sub-agents.controller.js +21 -0
  34. package/backend/dist/src/sub-agents/sub-agents.controller.js.map +1 -1
  35. package/backend/dist/src/sub-agents/sub-agents.service.d.ts +2 -0
  36. package/backend/dist/src/sub-agents/sub-agents.service.js +34 -0
  37. package/backend/dist/src/sub-agents/sub-agents.service.js.map +1 -1
  38. package/backend/dist/src/system-prompts/dto/system-prompt.dto.d.ts +2 -0
  39. package/backend/dist/src/system-prompts/dto/system-prompt.dto.js +18 -0
  40. package/backend/dist/src/system-prompts/dto/system-prompt.dto.js.map +1 -1
  41. package/backend/dist/src/system-prompts/system-prompts.controller.d.ts +1 -0
  42. package/backend/dist/src/system-prompts/system-prompts.controller.js +25 -0
  43. package/backend/dist/src/system-prompts/system-prompts.controller.js.map +1 -1
  44. package/backend/dist/src/system-prompts/system-prompts.service.d.ts +3 -0
  45. package/backend/dist/src/system-prompts/system-prompts.service.js +42 -0
  46. package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -1
  47. package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  48. package/backend/package.json +1 -1
  49. package/package.json +1 -1
@@ -46,57 +46,98 @@ let SubAgentSeedingService = SubAgentSeedingService_1 = class SubAgentSeedingSer
46
46
  const agentModule = await Promise.resolve(`${filePath}`).then(s => require(s));
47
47
  const { name, description, system_prompt_name, context_template_name, followup_context_template_name, enabled_tools, model_id, is_active, } = agentModule;
48
48
  const fileName = path.basename(filePath);
49
+ const builtinKey = fileName
50
+ .replace(/\.(ts|js)$/, '')
51
+ .replace(/_/g, '-');
49
52
  if (!name) {
50
53
  this.logger.warn(`Skipping malformed seed file: ${fileName} (missing name)`);
51
54
  continue;
52
55
  }
53
- const existingAgent = existingAgentMap.get(name);
54
- if (existingAgent) {
55
- this.logger.log(`Sub-agent "${name}" already exists, skipping.`);
56
- }
57
- else {
58
- let system_prompt_id = null;
56
+ const existingAgent = await this.subAgentRepository.findOne({
57
+ where: { builtin_key: builtinKey },
58
+ });
59
+ if (existingAgent && existingAgent.is_builtin) {
60
+ let system_prompt_id = existingAgent.system_prompt_id;
59
61
  if (system_prompt_name) {
60
- const systemPrompt = await this.systemPromptsService.findByName(system_prompt_name);
61
- if (!systemPrompt) {
62
- this.logger.warn(`System prompt "${system_prompt_name}" not found for sub-agent "${name}"`);
63
- }
64
- else {
65
- system_prompt_id = systemPrompt.id;
66
- }
62
+ const systemPrompt = await this.systemPromptsService.findByBuiltinKey(system_prompt_name.replace(/_/g, '-'));
63
+ system_prompt_id = systemPrompt?.id || null;
67
64
  }
68
- let context_template_id = null;
65
+ let context_template_id = existingAgent.context_template_id;
69
66
  if (context_template_name) {
70
- const contextTemplate = await this.contextTemplatesService.findByName(context_template_name);
71
- if (!contextTemplate) {
72
- this.logger.warn(`Context template "${context_template_name}" not found for sub-agent "${name}"`);
73
- }
74
- else {
75
- context_template_id = contextTemplate.id;
76
- }
67
+ const contextTemplate = await this.contextTemplatesService.findByBuiltinKey(context_template_name.replace(/_/g, '-'));
68
+ context_template_id = contextTemplate?.id || null;
77
69
  }
78
- let followup_context_template_id = null;
70
+ let followup_context_template_id = existingAgent.followup_context_template_id;
79
71
  if (followup_context_template_name) {
80
- const followupContextTemplate = await this.contextTemplatesService.findByName(followup_context_template_name);
81
- if (!followupContextTemplate) {
82
- this.logger.warn(`Followup context template "${followup_context_template_name}" not found for sub-agent "${name}"`);
72
+ const followupContextTemplate = await this.contextTemplatesService.findByBuiltinKey(followup_context_template_name.replace(/_/g, '-'));
73
+ followup_context_template_id = followupContextTemplate?.id || null;
74
+ }
75
+ existingAgent.description = description || existingAgent.description;
76
+ existingAgent.system_prompt_id = system_prompt_id;
77
+ existingAgent.context_template_id = context_template_id;
78
+ existingAgent.followup_context_template_id =
79
+ followup_context_template_id;
80
+ existingAgent.enabled_tools =
81
+ enabled_tools || existingAgent.enabled_tools;
82
+ existingAgent.model_id = model_id || existingAgent.model_id;
83
+ existingAgent.is_active = is_active !== false;
84
+ await this.subAgentRepository.save(existingAgent);
85
+ this.logger.log(`Built-in sub-agent "${name}" updated (version upgrade).`);
86
+ }
87
+ else if (existingAgent) {
88
+ this.logger.warn(`Sub-agent with builtin_key "${builtinKey}" exists but is not built-in. Skipping.`);
89
+ }
90
+ else {
91
+ const legacyAgent = existingAgentMap.get(name);
92
+ if (legacyAgent) {
93
+ this.logger.log(`Legacy sub-agent "${name}" exists without builtin_key. Skipping seed.`);
94
+ }
95
+ else {
96
+ let system_prompt_id = null;
97
+ if (system_prompt_name) {
98
+ const systemPrompt = await this.systemPromptsService.findByBuiltinKey(system_prompt_name.replace(/_/g, '-'));
99
+ if (!systemPrompt) {
100
+ this.logger.warn(`System prompt with builtin_key "${system_prompt_name.replace(/_/g, '-')}" not found for sub-agent "${name}"`);
101
+ }
102
+ else {
103
+ system_prompt_id = systemPrompt.id;
104
+ }
105
+ }
106
+ let context_template_id = null;
107
+ if (context_template_name) {
108
+ const contextTemplate = await this.contextTemplatesService.findByBuiltinKey(context_template_name.replace(/_/g, '-'));
109
+ if (!contextTemplate) {
110
+ this.logger.warn(`Context template with builtin_key "${context_template_name.replace(/_/g, '-')}" not found for sub-agent "${name}"`);
111
+ }
112
+ else {
113
+ context_template_id = contextTemplate.id;
114
+ }
83
115
  }
84
- else {
85
- followup_context_template_id = followupContextTemplate.id;
116
+ let followup_context_template_id = null;
117
+ if (followup_context_template_name) {
118
+ const followupContextTemplate = await this.contextTemplatesService.findByBuiltinKey(followup_context_template_name.replace(/_/g, '-'));
119
+ if (!followupContextTemplate) {
120
+ this.logger.warn(`Followup context template with builtin_key "${followup_context_template_name.replace(/_/g, '-')}" not found for sub-agent "${name}"`);
121
+ }
122
+ else {
123
+ followup_context_template_id = followupContextTemplate.id;
124
+ }
86
125
  }
126
+ const newAgent = this.subAgentRepository.create({
127
+ name,
128
+ description: description || null,
129
+ system_prompt_id,
130
+ context_template_id,
131
+ followup_context_template_id,
132
+ enabled_tools: enabled_tools || null,
133
+ model_id: model_id || null,
134
+ is_active: is_active !== false,
135
+ is_builtin: true,
136
+ builtin_key: builtinKey,
137
+ });
138
+ await this.subAgentRepository.save(newAgent);
139
+ this.logger.log(`Built-in sub-agent "${name}" seeded.`);
87
140
  }
88
- const newAgent = this.subAgentRepository.create({
89
- name,
90
- description: description || null,
91
- system_prompt_id,
92
- context_template_id,
93
- followup_context_template_id,
94
- enabled_tools: enabled_tools || null,
95
- model_id: model_id || null,
96
- is_active: is_active !== false,
97
- });
98
- await this.subAgentRepository.save(newAgent);
99
- this.logger.log(`Sub-agent "${name}" seeded.`);
100
141
  }
101
142
  }
102
143
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agent-seeding.service.js","sourceRoot":"","sources":["../../../src/seeding/sub-agent-seeding.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sub-agent-seeding.service.js","sourceRoot":"","sources":["../../../src/seeding/sub-agent-seeding.service.ts"],"names":[],"mappings":"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"}
@@ -41,22 +41,37 @@ let SystemPromptSeedingService = SystemPromptSeedingService_1 = class SystemProm
41
41
  this.logger.warn(`Skipping malformed seed file: ${fileName}`);
42
42
  continue;
43
43
  }
44
- const existingPrompt = existingPromptsMap.get(promptName);
45
- if (existingPrompt) {
46
- this.logger.log(`Prompt "${promptName}" already exists, skipping.`);
44
+ const builtinKey = fileName
45
+ .replace(/\.(ts|js)$/, '')
46
+ .replace(/_/g, '-');
47
+ const existingPrompt = await this.systemPromptsService.findByBuiltinKey(builtinKey);
48
+ if (existingPrompt && existingPrompt.is_builtin) {
49
+ await this.systemPromptsService.updateBuiltinContent(existingPrompt.id, promptContent, enabledTools);
50
+ this.logger.log(`Built-in prompt "${promptName}" updated (version upgrade).`);
51
+ }
52
+ else if (existingPrompt) {
53
+ this.logger.warn(`Prompt with builtin_key "${builtinKey}" exists but is not built-in. Skipping.`);
47
54
  }
48
55
  else {
49
- const newPrompt = await this.systemPromptsService.create({
50
- prompt_name: promptName,
51
- prompt_content: promptContent,
52
- enabledTools: enabledTools,
53
- });
54
- if (fileName.startsWith('default_')) {
55
- await this.systemPromptsService.setDefault(newPrompt.id);
56
- this.logger.log(`Prompt "${promptName}" seeded and set as default.`);
56
+ const legacyPrompt = existingPromptsMap.get(promptName);
57
+ if (legacyPrompt) {
58
+ this.logger.log(`Legacy prompt "${promptName}" exists without builtin_key. Skipping seed.`);
57
59
  }
58
60
  else {
59
- this.logger.log(`Prompt "${promptName}" seeded.`);
61
+ const newPrompt = await this.systemPromptsService.create({
62
+ prompt_name: promptName,
63
+ prompt_content: promptContent,
64
+ enabledTools: enabledTools,
65
+ is_builtin: true,
66
+ builtin_key: builtinKey,
67
+ });
68
+ if (fileName.startsWith('default_')) {
69
+ await this.systemPromptsService.setDefault(newPrompt.id);
70
+ this.logger.log(`Built-in prompt "${promptName}" seeded and set as default.`);
71
+ }
72
+ else {
73
+ this.logger.log(`Built-in prompt "${promptName}" seeded.`);
74
+ }
60
75
  }
61
76
  }
62
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt-seeding.service.js","sourceRoot":"","sources":["../../../src/seeding/system-prompt-seeding.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompt-seeding.service.js","sourceRoot":"","sources":["../../../src/seeding/system-prompt-seeding.service.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,6 @@ export declare class CreateSubAgentDto {
7
7
  enabled_tools?: string[];
8
8
  is_active?: boolean;
9
9
  model_id?: string;
10
+ is_builtin?: boolean;
11
+ builtin_key?: string;
10
12
  }
@@ -80,4 +80,22 @@ __decorate([
80
80
  (0, class_validator_1.IsString)(),
81
81
  __metadata("design:type", String)
82
82
  ], CreateSubAgentDto.prototype, "model_id", void 0);
83
+ __decorate([
84
+ (0, swagger_1.ApiPropertyOptional)({
85
+ description: 'Whether this is a built-in sub-agent (only used by seeding)',
86
+ example: false,
87
+ }),
88
+ (0, class_validator_1.IsOptional)(),
89
+ (0, class_validator_1.IsBoolean)(),
90
+ __metadata("design:type", Boolean)
91
+ ], CreateSubAgentDto.prototype, "is_builtin", void 0);
92
+ __decorate([
93
+ (0, swagger_1.ApiPropertyOptional)({
94
+ description: 'Unique key for built-in sub-agents (only used by seeding)',
95
+ example: 'explore-codebase',
96
+ }),
97
+ (0, class_validator_1.IsOptional)(),
98
+ (0, class_validator_1.IsString)(),
99
+ __metadata("design:type", String)
100
+ ], CreateSubAgentDto.prototype, "builtin_key", void 0);
83
101
  //# sourceMappingURL=create-sub-agent.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-sub-agent.dto.js","sourceRoot":"","sources":["../../../../src/sub-agents/dto/create-sub-agent.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAMyB;AACzB,6CAAmE;AAEnE,MAAa,iBAAiB;CAyD7B;AAzDD,8CAyDC;AAtDC;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC3E,IAAA,0BAAQ,GAAE;;+CACE;AAOb;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;KACvD,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sDACU;AAQrB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0CAA0C;QACvD,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;2DACiB;AAQ1B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,8CAA8C;QAC3D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;8DACoB;AAQ7B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;uEAC6B;AAStC;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;KAC3C,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;wDACA;AAKzB;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IACxE,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;oDACQ;AAQpB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACO"}
1
+ {"version":3,"file":"create-sub-agent.dto.js","sourceRoot":"","sources":["../../../../src/sub-agents/dto/create-sub-agent.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAMyB;AACzB,6CAAmE;AAEnE,MAAa,iBAAiB;CAyE7B;AAzED,8CAyEC;AAtEC;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC3E,IAAA,0BAAQ,GAAE;;+CACE;AAOb;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;KACvD,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sDACU;AAQrB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0CAA0C;QACvD,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;2DACiB;AAQ1B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,8CAA8C;QAC3D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;8DACoB;AAQ7B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;uEAC6B;AAStC;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;KAC3C,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;wDACA;AAKzB;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IACxE,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;oDACQ;AAQpB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACO;AAQlB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,6DAA6D;QAC1E,OAAO,EAAE,KAAK;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;qDACS;AAQrB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sDACU"}
@@ -13,4 +13,6 @@ export declare class SubAgent extends BaseEntity {
13
13
  enabled_tools: string[] | null;
14
14
  is_active: boolean;
15
15
  model_id: string | null;
16
+ is_builtin: boolean;
17
+ builtin_key: string | null;
16
18
  }
@@ -120,6 +120,23 @@ __decorate([
120
120
  (0, typeorm_1.Column)({ type: 'text', nullable: true }),
121
121
  __metadata("design:type", String)
122
122
  ], SubAgent.prototype, "model_id", void 0);
123
+ __decorate([
124
+ (0, swagger_1.ApiProperty)({
125
+ description: 'Whether this is a built-in seed sub-agent (immutable)',
126
+ example: false,
127
+ default: false,
128
+ }),
129
+ (0, typeorm_1.Column)({ type: 'boolean', default: false }),
130
+ __metadata("design:type", Boolean)
131
+ ], SubAgent.prototype, "is_builtin", void 0);
132
+ __decorate([
133
+ (0, swagger_1.ApiPropertyOptional)({
134
+ description: 'Unique key for built-in sub-agents (used for version updates)',
135
+ example: 'explore-codebase',
136
+ }),
137
+ (0, typeorm_1.Column)({ type: 'text', nullable: true, unique: true }),
138
+ __metadata("design:type", String)
139
+ ], SubAgent.prototype, "builtin_key", void 0);
123
140
  exports.SubAgent = SubAgent = __decorate([
124
141
  (0, typeorm_1.Entity)('sub_agents')
125
142
  ], SubAgent);
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agent.entity.js","sourceRoot":"","sources":["../../../src/sub-agents/sub-agent.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sub-agent.entity.js","sourceRoot":"","sources":["../../../src/sub-agents/sub-agent.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgE;AAChE,6CAAmE;AACnE,8DAA0D;AAC1D,gFAAqE;AACrE,sFAA2E;AAWpE,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,wBAAU;CA2GvC,CAAA;AA3GY,4BAAQ;AAMnB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE,WAAW;KACrB,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCACZ;AAOb;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,oDAAoD;KAC9D,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACd;AAO3B;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,8CAA8C;QAC3D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACT;AAWhC;IATC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,6CAA6C;QAC1D,IAAI,EAAE,GAAG,EAAE,CAAC,mCAAY;KACzB,CAAC;IACD,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,mCAAY,EAAE;QAC7B,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;KACrB,CAAC;IACD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;8BAC3B,mCAAY;8CAAC;AAO3B;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,8CAA8C;QAC3D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACN;AAWnC;IATC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,iDAAiD;QAC9D,IAAI,EAAE,GAAG,EAAE,CAAC,yCAAe;KAC5B,CAAC;IACD,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yCAAe,EAAE;QAChC,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;KACrB,CAAC;IACD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;8BAC3B,yCAAe;iDAAC;AAOjC;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACG;AAW5C;IATC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,GAAG,EAAE,CAAC,yCAAe;KAC5B,CAAC;IACD,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yCAAe,EAAE;QAChC,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;KACrB,CAAC;IACD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;8BAC5B,yCAAe;yDAAC;AAQzC;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC;QACzD,IAAI,EAAE,OAAO;KACd,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACV;AAQ/B;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;KACd,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACxB;AAOnB;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACjB;AAQxB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;KACf,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;4CACxB;AAQpB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EACT,+DAA+D;QACjE,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;6CAC5B;mBA1GhB,QAAQ;IADpB,IAAA,gBAAM,EAAC,YAAY,CAAC;GACR,QAAQ,CA2GpB"}
@@ -9,4 +9,5 @@ export declare class SubAgentsController {
9
9
  findOne(id: string): Promise<import("./sub-agent.entity").SubAgent>;
10
10
  update(id: string, updateSubAgentDto: UpdateSubAgentDto): Promise<import("./sub-agent.entity").SubAgent>;
11
11
  remove(id: string): Promise<void>;
12
+ duplicate(id: string): Promise<import("./sub-agent.entity").SubAgent>;
12
13
  }
@@ -37,6 +37,9 @@ let SubAgentsController = class SubAgentsController {
37
37
  remove(id) {
38
38
  return this.subAgentsService.remove(id);
39
39
  }
40
+ async duplicate(id) {
41
+ return this.subAgentsService.duplicate(id);
42
+ }
40
43
  };
41
44
  exports.SubAgentsController = SubAgentsController;
42
45
  __decorate([
@@ -80,6 +83,7 @@ __decorate([
80
83
  (0, swagger_1.ApiOperation)({ summary: 'Update a sub-agent' }),
81
84
  (0, swagger_1.ApiParam)({ name: 'id', description: 'Sub-agent UUID', format: 'uuid' }),
82
85
  (0, swagger_1.ApiResponse)({ status: 200, description: 'Sub-agent updated' }),
86
+ (0, swagger_1.ApiResponse)({ status: 403, description: 'Cannot modify built-in sub-agent' }),
83
87
  (0, swagger_1.ApiResponse)({ status: 404, description: 'Sub-agent not found' }),
84
88
  __param(0, (0, common_1.Param)('id')),
85
89
  __param(1, (0, common_1.Body)()),
@@ -93,12 +97,29 @@ __decorate([
93
97
  (0, swagger_1.ApiOperation)({ summary: 'Delete a sub-agent' }),
94
98
  (0, swagger_1.ApiParam)({ name: 'id', description: 'Sub-agent UUID', format: 'uuid' }),
95
99
  (0, swagger_1.ApiResponse)({ status: 204, description: 'Sub-agent deleted' }),
100
+ (0, swagger_1.ApiResponse)({ status: 403, description: 'Cannot delete built-in sub-agent' }),
96
101
  (0, swagger_1.ApiResponse)({ status: 404, description: 'Sub-agent not found' }),
97
102
  __param(0, (0, common_1.Param)('id')),
98
103
  __metadata("design:type", Function),
99
104
  __metadata("design:paramtypes", [String]),
100
105
  __metadata("design:returntype", void 0)
101
106
  ], SubAgentsController.prototype, "remove", null);
107
+ __decorate([
108
+ (0, common_1.Post)(':id/duplicate'),
109
+ (0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
110
+ (0, swagger_1.ApiOperation)({ summary: 'Duplicate a sub-agent' }),
111
+ (0, swagger_1.ApiParam)({
112
+ name: 'id',
113
+ description: 'Sub-agent UUID to duplicate',
114
+ format: 'uuid',
115
+ }),
116
+ (0, swagger_1.ApiResponse)({ status: 201, description: 'Sub-agent duplicated' }),
117
+ (0, swagger_1.ApiResponse)({ status: 404, description: 'Sub-agent not found' }),
118
+ __param(0, (0, common_1.Param)('id')),
119
+ __metadata("design:type", Function),
120
+ __metadata("design:paramtypes", [String]),
121
+ __metadata("design:returntype", Promise)
122
+ ], SubAgentsController.prototype, "duplicate", null);
102
123
  exports.SubAgentsController = SubAgentsController = __decorate([
103
124
  (0, swagger_1.ApiTags)('sub-agents'),
104
125
  (0, common_1.Controller)('sub-agents'),
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agents.controller.js","sourceRoot":"","sources":["../../../src/sub-agents/sub-agents.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAWwB;AACxB,6CAMyB;AACzB,6DAAwD;AACxD,qEAA+D;AAC/D,qEAA+D;AAIxD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAMnE,MAAM,CAAS,iBAAoC;QACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAWD,OAAO,CAAsB,UAAoB;QAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAOD,OAAO,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAOD,MAAM,CACS,EAAU,EACf,iBAAoC;QAE5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IAQD,MAAM,CAAc,EAAU;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AAtDY,kDAAmB;AAO9B;IAJC,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,mBAAU,CAAC,OAAO,CAAC;IAC5B,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC/C,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACvD,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAoB,wCAAiB;;iDAElD;AAWD;IATC,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;IACxE,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,OAAO;KACd,CAAC;IACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACvD,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;;;;kDAE3B;AAOD;IALC,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAClD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IAC5D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACxD,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;kDAEnB;AAOD;IALC,IAAA,cAAK,EAAC,KAAK,CAAC;IACZ,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC/C,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAC9D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAE9D,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAoB,wCAAiB;;iDAG7C;AAQD;IANC,IAAA,eAAM,EAAC,KAAK,CAAC;IACb,IAAA,iBAAQ,EAAC,mBAAU,CAAC,UAAU,CAAC;IAC/B,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC/C,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAC9D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACzD,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;iDAElB;8BArDU,mBAAmB;IAF/B,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,mBAAU,EAAC,YAAY,CAAC;qCAEwB,qCAAgB;GADpD,mBAAmB,CAsD/B"}
1
+ {"version":3,"file":"sub-agents.controller.js","sourceRoot":"","sources":["../../../src/sub-agents/sub-agents.controller.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,10 @@ export declare class SubAgentsService {
8
8
  create(createSubAgentDto: CreateSubAgentDto): Promise<SubAgent>;
9
9
  findAll(activeOnly?: boolean): Promise<SubAgent[]>;
10
10
  findOne(id: string): Promise<SubAgent>;
11
+ findByBuiltinKey(builtinKey: string): Promise<SubAgent | null>;
11
12
  update(id: string, updateSubAgentDto: UpdateSubAgentDto): Promise<SubAgent>;
12
13
  remove(id: string): Promise<void>;
13
14
  findActive(): Promise<SubAgent[]>;
14
15
  getAgentByName(name: string): Promise<SubAgent | null>;
16
+ duplicate(id: string): Promise<SubAgent>;
15
17
  }
@@ -47,13 +47,25 @@ let SubAgentsService = class SubAgentsService {
47
47
  }
48
48
  return subAgent;
49
49
  }
50
+ async findByBuiltinKey(builtinKey) {
51
+ return this.subAgentsRepository.findOne({
52
+ where: { builtin_key: builtinKey },
53
+ relations: ['systemPrompt', 'contextTemplate', 'followupContextTemplate'],
54
+ });
55
+ }
50
56
  async update(id, updateSubAgentDto) {
51
57
  const subAgent = await this.findOne(id);
58
+ if (subAgent.is_builtin) {
59
+ throw new common_1.ForbiddenException(`Cannot modify built-in sub-agent "${subAgent.name}". Duplicate it to create your own version.`);
60
+ }
52
61
  this.subAgentsRepository.merge(subAgent, updateSubAgentDto);
53
62
  return this.subAgentsRepository.save(subAgent);
54
63
  }
55
64
  async remove(id) {
56
65
  const subAgent = await this.findOne(id);
66
+ if (subAgent.is_builtin) {
67
+ throw new common_1.ForbiddenException(`Cannot delete built-in sub-agent "${subAgent.name}".`);
68
+ }
57
69
  await this.subAgentsRepository.remove(subAgent);
58
70
  }
59
71
  async findActive() {
@@ -65,6 +77,28 @@ let SubAgentsService = class SubAgentsService {
65
77
  relations: ['systemPrompt', 'contextTemplate', 'followupContextTemplate'],
66
78
  });
67
79
  }
80
+ async duplicate(id) {
81
+ const original = await this.findOne(id);
82
+ let newName = `${original.name} (Copy)`;
83
+ let suffix = 2;
84
+ while (await this.subAgentsRepository.findOne({ where: { name: newName } })) {
85
+ newName = `${original.name} (Copy ${suffix})`;
86
+ suffix++;
87
+ }
88
+ const duplicate = this.subAgentsRepository.create({
89
+ name: newName,
90
+ description: original.description,
91
+ system_prompt_id: original.system_prompt_id,
92
+ context_template_id: original.context_template_id,
93
+ followup_context_template_id: original.followup_context_template_id,
94
+ enabled_tools: original.enabled_tools,
95
+ is_active: true,
96
+ model_id: original.model_id,
97
+ is_builtin: false,
98
+ builtin_key: null,
99
+ });
100
+ return this.subAgentsRepository.save(duplicate);
101
+ }
68
102
  };
69
103
  exports.SubAgentsService = SubAgentsService;
70
104
  exports.SubAgentsService = SubAgentsService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agents.service.js","sourceRoot":"","sources":["../../../src/sub-agents/sub-agents.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA+D;AAC/D,6CAAmD;AACnD,qCAAqC;AACrC,yDAA8C;AAKvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAEmB,mBAAyC;QAAzC,wBAAmB,GAAnB,mBAAmB,CAAsB;IACzD,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,iBAAoC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAEvE,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,KAAK;aACT,iBAAiB,CAAC,wBAAwB,EAAE,cAAc,CAAC;aAC3D,iBAAiB,CAAC,2BAA2B,EAAE,iBAAiB,CAAC;aACjE,iBAAiB,CAChB,mCAAmC,EACnC,yBAAyB,CAC1B;aACA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;aAChC,OAAO,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YACtD,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,yBAAyB,CAAC;SAC1E,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,iBAAoC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;YAChC,SAAS,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,yBAAyB,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAhEY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,2BAAQ,CAAC,CAAA;qCACW,oBAAU;GAHvC,gBAAgB,CAgE5B"}
1
+ {"version":3,"file":"sub-agents.service.js","sourceRoot":"","sources":["../../../src/sub-agents/sub-agents.service.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export declare class CreateSystemPromptDto {
4
4
  url?: string;
5
5
  followup_token_limit?: number | null;
6
6
  enabledTools?: string[] | 'all';
7
+ is_builtin?: boolean;
8
+ builtin_key?: string;
7
9
  }
8
10
  export declare class PreviewSystemPromptDto {
9
11
  prompt_content: string;
@@ -61,6 +61,24 @@ __decorate([
61
61
  (0, class_validator_1.IsOptional)(),
62
62
  __metadata("design:type", Object)
63
63
  ], CreateSystemPromptDto.prototype, "enabledTools", void 0);
64
+ __decorate([
65
+ (0, swagger_1.ApiPropertyOptional)({
66
+ description: 'Whether this is a built-in prompt (only used by seeding)',
67
+ example: false,
68
+ }),
69
+ (0, class_validator_1.IsOptional)(),
70
+ (0, class_validator_1.IsBoolean)(),
71
+ __metadata("design:type", Boolean)
72
+ ], CreateSystemPromptDto.prototype, "is_builtin", void 0);
73
+ __decorate([
74
+ (0, swagger_1.ApiPropertyOptional)({
75
+ description: 'Unique key for built-in prompts (only used by seeding)',
76
+ example: 'master-agent',
77
+ }),
78
+ (0, class_validator_1.IsOptional)(),
79
+ (0, class_validator_1.IsString)(),
80
+ __metadata("design:type", String)
81
+ ], CreateSystemPromptDto.prototype, "builtin_key", void 0);
64
82
  class PreviewSystemPromptDto {
65
83
  }
66
84
  exports.PreviewSystemPromptDto = PreviewSystemPromptDto;
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.dto.js","sourceRoot":"","sources":["../../../../src/system-prompts/dto/system-prompt.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompt.dto.js","sourceRoot":"","sources":["../../../../src/system-prompts/dto/system-prompt.dto.ts"],"names":[],"mappings":"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"}
@@ -32,5 +32,6 @@ export declare class SystemPromptsController {
32
32
  pushToStudio(id: string): Promise<{
33
33
  success: boolean;
34
34
  }>;
35
+ duplicate(id: string): Promise<SystemPrompt>;
35
36
  remove(id: string): Promise<void>;
36
37
  }
@@ -75,6 +75,9 @@ let SystemPromptsController = class SystemPromptsController {
75
75
  await this.systemPromptsService.pushToStudio(id);
76
76
  return { success: true };
77
77
  }
78
+ async duplicate(id) {
79
+ return this.systemPromptsService.duplicate(id);
80
+ }
78
81
  async remove(id) {
79
82
  return this.systemPromptsService.remove(id);
80
83
  }
@@ -220,6 +223,7 @@ __decorate([
220
223
  description: 'System prompt updated',
221
224
  type: core_entities_1.SystemPrompt,
222
225
  }),
226
+ (0, swagger_1.ApiResponse)({ status: 403, description: 'Cannot modify built-in prompt' }),
223
227
  (0, swagger_1.ApiResponse)({ status: 404, description: 'System prompt not found' }),
224
228
  __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
225
229
  __param(1, (0, common_1.Body)()),
@@ -254,12 +258,33 @@ __decorate([
254
258
  __metadata("design:paramtypes", [String]),
255
259
  __metadata("design:returntype", Promise)
256
260
  ], SystemPromptsController.prototype, "pushToStudio", null);
261
+ __decorate([
262
+ (0, common_1.Post)(':id/duplicate'),
263
+ (0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
264
+ (0, swagger_1.ApiOperation)({ summary: 'Duplicate a system prompt' }),
265
+ (0, swagger_1.ApiParam)({
266
+ name: 'id',
267
+ description: 'System prompt UUID to duplicate',
268
+ format: 'uuid',
269
+ }),
270
+ (0, swagger_1.ApiResponse)({
271
+ status: 201,
272
+ description: 'System prompt duplicated',
273
+ type: core_entities_1.SystemPrompt,
274
+ }),
275
+ (0, swagger_1.ApiResponse)({ status: 404, description: 'System prompt not found' }),
276
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
277
+ __metadata("design:type", Function),
278
+ __metadata("design:paramtypes", [String]),
279
+ __metadata("design:returntype", Promise)
280
+ ], SystemPromptsController.prototype, "duplicate", null);
257
281
  __decorate([
258
282
  (0, common_1.Delete)(':id'),
259
283
  (0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
260
284
  (0, swagger_1.ApiOperation)({ summary: 'Delete a system prompt' }),
261
285
  (0, swagger_1.ApiParam)({ name: 'id', description: 'System prompt UUID', format: 'uuid' }),
262
286
  (0, swagger_1.ApiResponse)({ status: 204, description: 'System prompt deleted' }),
287
+ (0, swagger_1.ApiResponse)({ status: 403, description: 'Cannot delete built-in prompt' }),
263
288
  (0, swagger_1.ApiResponse)({ status: 404, description: 'System prompt not found' }),
264
289
  __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
265
290
  __metadata("design:type", Function),