sfdx-hardis 5.39.1 → 5.40.1-beta202506151204.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 (66) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/lib/commands/hardis/doc/override-prompts.d.ts +11 -0
  3. package/lib/commands/hardis/doc/override-prompts.js +164 -0
  4. package/lib/commands/hardis/doc/override-prompts.js.map +1 -0
  5. package/lib/commands/hardis/doc/project2markdown.d.ts +2 -0
  6. package/lib/commands/hardis/doc/project2markdown.js +32 -2
  7. package/lib/commands/hardis/doc/project2markdown.js.map +1 -1
  8. package/lib/common/aiProvider/promptTemplates/PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.js +1 -1
  9. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.js +4 -10
  10. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.js.map +1 -1
  11. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.js +4 -10
  12. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.js.map +1 -1
  13. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.js +4 -11
  14. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.js.map +1 -1
  15. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_AUTORESPONSE_RULES.js +6 -12
  16. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_AUTORESPONSE_RULES.js.map +1 -1
  17. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ESCALATION_RULES.js +4 -10
  18. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ESCALATION_RULES.js.map +1 -1
  19. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW.js +4 -10
  20. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW.js.map +1 -1
  21. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW_DIFF.js +3 -8
  22. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW_DIFF.js.map +1 -1
  23. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_LWC.js +3 -7
  24. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_LWC.js.map +1 -1
  25. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_OBJECT.js +3 -8
  26. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_OBJECT.js.map +1 -1
  27. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PACKAGE.js +3 -8
  28. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PACKAGE.js.map +1 -1
  29. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.js +3 -8
  30. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.js.map +1 -1
  31. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.js +4 -10
  32. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.js.map +1 -1
  33. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js +4 -10
  34. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js.map +1 -1
  35. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.js +3 -8
  36. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.js.map +1 -1
  37. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ROLES.d.ts +3 -0
  38. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ROLES.js +33 -0
  39. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ROLES.js.map +1 -0
  40. package/lib/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.js +3 -9
  41. package/lib/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.js.map +1 -1
  42. package/lib/common/aiProvider/promptTemplates/VARIABLE_ADDITIONAL_INSTRUCTIONS.d.ts +3 -0
  43. package/lib/common/aiProvider/promptTemplates/VARIABLE_ADDITIONAL_INSTRUCTIONS.js +11 -0
  44. package/lib/common/aiProvider/promptTemplates/VARIABLE_ADDITIONAL_INSTRUCTIONS.js.map +1 -0
  45. package/lib/common/aiProvider/promptTemplates/VARIABLE_FORMATTING_REQUIREMENTS.d.ts +3 -0
  46. package/lib/common/aiProvider/promptTemplates/VARIABLE_FORMATTING_REQUIREMENTS.js +13 -0
  47. package/lib/common/aiProvider/promptTemplates/VARIABLE_FORMATTING_REQUIREMENTS.js.map +1 -0
  48. package/lib/common/aiProvider/promptTemplates/VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.d.ts +3 -0
  49. package/lib/common/aiProvider/promptTemplates/VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.js +8 -0
  50. package/lib/common/aiProvider/promptTemplates/VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.js.map +1 -0
  51. package/lib/common/aiProvider/promptTemplates/index.js +2 -0
  52. package/lib/common/aiProvider/promptTemplates/index.js.map +1 -1
  53. package/lib/common/aiProvider/promptTemplates/variablesIndex.d.ts +3 -0
  54. package/lib/common/aiProvider/promptTemplates/variablesIndex.js +9 -0
  55. package/lib/common/aiProvider/promptTemplates/variablesIndex.js.map +1 -0
  56. package/lib/common/aiProvider/promptTemplates.d.ts +1 -1
  57. package/lib/common/aiProvider/promptTemplates.js +43 -2
  58. package/lib/common/aiProvider/promptTemplates.js.map +1 -1
  59. package/lib/common/docBuilder/docBuilderRoles.d.ts +9 -0
  60. package/lib/common/docBuilder/docBuilderRoles.js +105 -0
  61. package/lib/common/docBuilder/docBuilderRoles.js.map +1 -0
  62. package/lib/common/docBuilder/docBuilderRoot.js +2 -0
  63. package/lib/common/docBuilder/docBuilderRoot.js.map +1 -1
  64. package/oclif.lock +59 -72
  65. package/oclif.manifest.json +769 -690
  66. package/package.json +9 -9
@@ -0,0 +1,11 @@
1
+ const template = {
2
+ variables: [],
3
+ text: {
4
+ "en": `### Additional Instructions
5
+
6
+ - Caution: Redact any sensitive information (tokens, passwords, API keys, etc.) and replace with \`[HIDDEN_SENSITIVE_INFOS]\`.
7
+ - Be as thorough as possible, and make your response clear, complete, and business-friendly.`
8
+ },
9
+ };
10
+ export default template;
11
+ //# sourceMappingURL=VARIABLE_ADDITIONAL_INSTRUCTIONS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VARIABLE_ADDITIONAL_INSTRUCTIONS.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/VARIABLE_ADDITIONAL_INSTRUCTIONS.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE,EAAE;IACb,IAAI,EAAE;QACJ,IAAI,EAAE;;;6FAGmF;KAC1F;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PromptTemplateDefinition } from "./types.js";
2
+ declare const template: PromptTemplateDefinition;
3
+ export default template;
@@ -0,0 +1,13 @@
1
+ const template = {
2
+ variables: [],
3
+ text: {
4
+ "en": `**Formatting Requirements**:
5
+ - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
6
+ - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
7
+ - Add new lines after a header title so mkdocs-material can display the content correctly.
8
+ - Never truncate any information in the response.
9
+ - Provide a concise summary before detailed sections for quick understanding.`
10
+ },
11
+ };
12
+ export default template;
13
+ //# sourceMappingURL=VARIABLE_FORMATTING_REQUIREMENTS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VARIABLE_FORMATTING_REQUIREMENTS.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/VARIABLE_FORMATTING_REQUIREMENTS.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE,EAAE;IACb,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;kFAKwE;KAC/E;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PromptTemplateDefinition } from "./types.js";
2
+ declare const template: PromptTemplateDefinition;
3
+ export default template;
@@ -0,0 +1,8 @@
1
+ const template = {
2
+ variables: [],
3
+ text: {
4
+ "en": `The output will be in markdown format, which will be used in a documentation site aiming to retrospectively document the Salesforce org.`
5
+ },
6
+ };
7
+ export default template;
8
+ //# sourceMappingURL=VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE,EAAE;IACb,IAAI,EAAE;QACJ,IAAI,EAAE,0IAA0I;KACjJ;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -14,6 +14,7 @@ import PROMPT_DESCRIBE_LWC from "./PROMPT_DESCRIBE_LWC.js";
14
14
  import PROMPT_DESCRIBE_AUTORESPONSE_RULES from "./PROMPT_DESCRIBE_AUTORESPONSE_RULES.js";
15
15
  import PROMPT_DESCRIBE_ESCALATION_RULES from "./PROMPT_DESCRIBE_ESCALATION_RULES.js";
16
16
  import PROMPT_DESCRIBE_PACKAGE from "./PROMPT_DESCRIBE_PACKAGE.js";
17
+ import PROMPT_DESCRIBE_ROLES from "./PROMPT_DESCRIBE_ROLES.js";
17
18
  export const PROMPT_TEMPLATES = {
18
19
  PROMPT_SOLVE_DEPLOYMENT_ERROR,
19
20
  PROMPT_DESCRIBE_FLOW,
@@ -31,5 +32,6 @@ export const PROMPT_TEMPLATES = {
31
32
  PROMPT_DESCRIBE_LWC,
32
33
  PROMPT_DESCRIBE_AUTORESPONSE_RULES,
33
34
  PROMPT_DESCRIBE_ESCALATION_RULES,
35
+ PROMPT_DESCRIBE_ROLES,
34
36
  };
35
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/index.ts"],"names":[],"mappings":"AAEA,OAAO,6BAA6B,MAAM,oCAAoC,CAAC;AAC/E,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AACvE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,oCAAoC,MAAM,2CAA2C,CAAC;AAC7F,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,8BAA8B,MAAM,qCAAqC,CAAC;AACjF,OAAO,oCAAoC,MAAM,2CAA2C,CAAC;AAC7F,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,kCAAkC,MAAM,yCAAyC,CAAC;AACzF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,6BAA6B;IAC7B,oBAAoB;IACpB,yBAAyB;IACzB,sBAAsB;IACtB,oCAAoC;IACpC,oBAAoB;IACpB,oBAAoB;IACpB,uBAAuB;IACvB,uBAAuB;IACvB,8BAA8B;IAC9B,oCAAoC;IACpC,gCAAgC;IAChC,gCAAgC;IAChC,mBAAmB;IACnB,kCAAkC;IAClC,gCAAgC;CACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/index.ts"],"names":[],"mappings":"AAEA,OAAO,6BAA6B,MAAM,oCAAoC,CAAC;AAC/E,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AACvE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,oCAAoC,MAAM,2CAA2C,CAAC;AAC7F,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,8BAA8B,MAAM,qCAAqC,CAAC;AACjF,OAAO,oCAAoC,MAAM,2CAA2C,CAAC;AAC7F,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,kCAAkC,MAAM,yCAAyC,CAAC;AACzF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,6BAA6B;IAC7B,oBAAoB;IACpB,yBAAyB;IACzB,sBAAsB;IACtB,oCAAoC;IACpC,oBAAoB;IACpB,oBAAoB;IACpB,uBAAuB;IACvB,uBAAuB;IACvB,8BAA8B;IAC9B,oCAAoC;IACpC,gCAAgC;IAChC,gCAAgC;IAChC,mBAAmB;IACnB,kCAAkC;IAClC,gCAAgC;IAChC,qBAAqB;CACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PromptTemplateDefinition } from "./types.js";
2
+ export declare const PROMPT_VARIABLES: Record<string, PromptTemplateDefinition>;
3
+ export type PromptVariable = keyof typeof PROMPT_VARIABLES;
@@ -0,0 +1,9 @@
1
+ import VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC from "./VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.js";
2
+ import VARIABLE_FORMATTING_REQUIREMENTS from "./VARIABLE_FORMATTING_REQUIREMENTS.js";
3
+ import VARIABLE_ADDITIONAL_INSTRUCTIONS from "./VARIABLE_ADDITIONAL_INSTRUCTIONS.js";
4
+ export const PROMPT_VARIABLES = {
5
+ VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC,
6
+ VARIABLE_FORMATTING_REQUIREMENTS,
7
+ VARIABLE_ADDITIONAL_INSTRUCTIONS,
8
+ };
9
+ //# sourceMappingURL=variablesIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variablesIndex.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/variablesIndex.ts"],"names":[],"mappings":"AAEA,OAAO,mCAAmC,MAAM,0CAA0C,CAAC;AAC3F,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AAErF,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,mCAAmC;IACnC,gCAAgC;IAChC,gCAAgC;CACjC,CAAC"}
@@ -1,2 +1,2 @@
1
- export type PromptTemplate = "PROMPT_SOLVE_DEPLOYMENT_ERROR" | "PROMPT_DESCRIBE_FLOW" | "PROMPT_DESCRIBE_FLOW_DIFF" | "PROMPT_DESCRIBE_OBJECT" | "PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD" | "PROMPT_DESCRIBE_APEX" | "PROMPT_DESCRIBE_PAGE" | "PROMPT_DESCRIBE_PACKAGE" | "PROMPT_DESCRIBE_PROFILE" | "PROMPT_DESCRIBE_PERMISSION_SET" | "PROMPT_DESCRIBE_PERMISSION_SET_GROUP" | "PROMPT_DESCRIBE_ASSIGNMENT_RULES" | "PROMPT_DESCRIBE_APPROVAL_PROCESS" | "PROMPT_DESCRIBE_LWC" | "PROMPT_DESCRIBE_AUTORESPONSE_RULES" | "PROMPT_DESCRIBE_ESCALATION_RULES";
1
+ export type PromptTemplate = "PROMPT_SOLVE_DEPLOYMENT_ERROR" | "PROMPT_DESCRIBE_FLOW" | "PROMPT_DESCRIBE_FLOW_DIFF" | "PROMPT_DESCRIBE_OBJECT" | "PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD" | "PROMPT_DESCRIBE_APEX" | "PROMPT_DESCRIBE_PAGE" | "PROMPT_DESCRIBE_PACKAGE" | "PROMPT_DESCRIBE_PROFILE" | "PROMPT_DESCRIBE_PERMISSION_SET" | "PROMPT_DESCRIBE_PERMISSION_SET_GROUP" | "PROMPT_DESCRIBE_ROLES" | "PROMPT_DESCRIBE_ASSIGNMENT_RULES" | "PROMPT_DESCRIBE_APPROVAL_PROCESS" | "PROMPT_DESCRIBE_LWC" | "PROMPT_DESCRIBE_AUTORESPONSE_RULES" | "PROMPT_DESCRIBE_ESCALATION_RULES";
2
2
  export declare function buildPromptFromTemplate(template: PromptTemplate, variables: object): string;
@@ -2,10 +2,15 @@ import { UtilsAi } from "./utils.js";
2
2
  import path from "path";
3
3
  import fs from "fs-extra";
4
4
  import { PROMPT_TEMPLATES as IMPORTED_PROMPT_TEMPLATES } from "./promptTemplates/index.js";
5
+ import { PROMPT_VARIABLES } from "./promptTemplates/variablesIndex.js";
5
6
  import { uxLog } from "../utils/index.js";
6
- // Loads a template, allowing override from local JSON if present
7
+ // Loads a template, allowing override from local file, with caching
8
+ const promptTemplateCache = {};
7
9
  function getPromptTemplate(template) {
8
- const templateData = IMPORTED_PROMPT_TEMPLATES[template];
10
+ if (promptTemplateCache[template]) {
11
+ return promptTemplateCache[template];
12
+ }
13
+ const templateData = { ...IMPORTED_PROMPT_TEMPLATES[template] };
9
14
  if (!templateData) {
10
15
  throw new Error(`Unknown prompt template: ${template}`);
11
16
  }
@@ -24,8 +29,38 @@ function getPromptTemplate(template) {
24
29
  uxLog(this, `Error loading local template for ${template}: ${e.message}`);
25
30
  }
26
31
  }
32
+ promptTemplateCache[template] = templateData;
27
33
  return templateData;
28
34
  }
35
+ // Loads a prompt variable, allowing override from local file, with caching
36
+ const promptVariableCache = {};
37
+ function getPromptVariable(variable) {
38
+ if (promptVariableCache[variable]) {
39
+ return promptVariableCache[variable];
40
+ }
41
+ const variableData = PROMPT_VARIABLES[variable];
42
+ if (!variableData) {
43
+ throw new Error(`Unknown prompt variable: ${variable}`);
44
+ }
45
+ // Check for local override (Text file)
46
+ const localPath = path.resolve(process.cwd(), "config", "prompt-templates", `${variable}.txt`);
47
+ if (fs.existsSync(localPath)) {
48
+ try {
49
+ const localVariable = fs.readFileSync(localPath, "utf-8");
50
+ uxLog(this, `Loaded local prompt variable for ${variable} from ${localPath}`);
51
+ promptVariableCache[variable] = localVariable;
52
+ return localVariable;
53
+ }
54
+ catch (e) {
55
+ // fallback to default if error
56
+ uxLog(this, `Error loading local variable for ${variable}: ${e.message}`);
57
+ }
58
+ }
59
+ const promptsLanguage = UtilsAi.getPromptsLanguage();
60
+ const value = variableData.text?.[promptsLanguage] || variableData.text?.["en"] || "";
61
+ promptVariableCache[variable] = value;
62
+ return value;
63
+ }
29
64
  export function buildPromptFromTemplate(template, variables) {
30
65
  const templateData = getPromptTemplate(template);
31
66
  const missingVariables = templateData.variables.filter((variable) => !variables[variable.name]);
@@ -40,6 +75,12 @@ export function buildPromptFromTemplate(template, variables) {
40
75
  }
41
76
  const promptsLanguage = UtilsAi.getPromptsLanguage();
42
77
  let prompt = process.env?.[template] || templateData.text?.[promptsLanguage] || (templateData.text?.["en"] + `\n\nIMPORTANT: Please reply in the language corresponding to ISO code "${promptsLanguage}" (for example, in french for "fr", in english for "en", in german for "de", etc.)`);
78
+ // Replace prompt variables first (format: {{VARIABLE_NAME}})
79
+ for (const variableName of Object.keys(PROMPT_VARIABLES)) {
80
+ const variableContent = getPromptVariable(variableName);
81
+ prompt = prompt.replaceAll(`{{${variableName}}}`, variableContent);
82
+ }
83
+ // Then replace user variables
43
84
  for (const variable in variables) {
44
85
  prompt = prompt.replaceAll(`{{${variable}}}`, variables[variable]);
45
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"promptTemplates.js","sourceRoot":"","sources":["../../../src/common/aiProvider/promptTemplates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promptTemplates.js","sourceRoot":"","sources":["../../../src/common/aiProvider/promptTemplates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { PromptTemplate } from "../aiProvider/promptTemplates.js";
2
+ export declare class DocBuilderRoles {
3
+ placeholder: string;
4
+ promptKey: PromptTemplate;
5
+ static generateMarkdownFileFromRoles(roleDescriptions: any[], outputFile: string): Promise<void>;
6
+ static getDescriptionWithAI(roleDescriptions: any[]): Promise<string>;
7
+ static generateJsonTreeFileFromRoles(roleDescriptions: any[]): Promise<void>;
8
+ static buildHierarchyTree(roleDescriptions: any[]): any[];
9
+ }
@@ -0,0 +1,105 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import { uxLog } from "../utils/index.js";
4
+ import c from "chalk";
5
+ import { UtilsAi } from "../aiProvider/utils.js";
6
+ import { AiProvider } from "../aiProvider/index.js";
7
+ export class DocBuilderRoles {
8
+ placeholder = "<!-- Roles description -->";
9
+ promptKey = "PROMPT_DESCRIBE_ROLES";
10
+ static async generateMarkdownFileFromRoles(roleDescriptions, outputFile) {
11
+ const mdLines = [
12
+ '<!-- This file is auto-generated. if you do not want it to be overwritten, set TRUE in the line below -->',
13
+ '<!-- DO_NOT_OVERWRITE_DOC=FALSE -->',
14
+ '',
15
+ '# Organization roles',
16
+ '',
17
+ '<div id="jstree-container"></div>',
18
+ '',
19
+ ];
20
+ const aiDescription = await DocBuilderRoles.getDescriptionWithAI(roleDescriptions);
21
+ if (aiDescription) {
22
+ mdLines.push("");
23
+ mdLines.push("## AI-Generated Description", "");
24
+ mdLines.push(...aiDescription.split("\n"));
25
+ mdLines.push("");
26
+ }
27
+ await fs.ensureDir(path.dirname(outputFile));
28
+ await fs.writeFile(outputFile, mdLines.join("\n") + "\n");
29
+ await this.generateJsonTreeFileFromRoles(roleDescriptions);
30
+ }
31
+ static async getDescriptionWithAI(roleDescriptions) {
32
+ const promptKey = "PROMPT_DESCRIBE_ROLES";
33
+ const metadataName = "Roles";
34
+ const rolesStrings = roleDescriptions.map(role => {
35
+ return `- **${role.name} (id:${role.apiName} )**: ${role.description || "No description available"} (parentId: ${role.parentRole || "ROOT"}`;
36
+ }).join("\n");
37
+ const aiCache = await UtilsAi.findAiCache(promptKey, [rolesStrings], metadataName);
38
+ if (aiCache.success) {
39
+ uxLog(this, c.green(`Using cached AI response for Roles`));
40
+ return aiCache.cacheText || '';
41
+ }
42
+ if (AiProvider.isAiAvailable()) {
43
+ const variables = {
44
+ ROLES_DESCRIPTION: rolesStrings
45
+ };
46
+ const prompt = AiProvider.buildPrompt(promptKey, variables);
47
+ const aiResponse = await AiProvider.promptAi(prompt, promptKey);
48
+ if (aiResponse?.success) {
49
+ let responseText = aiResponse.promptResponse || "No AI description available";
50
+ if (responseText.startsWith("##")) {
51
+ responseText = responseText.split("\n").slice(1).join("\n");
52
+ }
53
+ await UtilsAi.writeAiCache(promptKey, [rolesStrings], metadataName, responseText);
54
+ return responseText;
55
+ }
56
+ }
57
+ return '';
58
+ }
59
+ static async generateJsonTreeFileFromRoles(roleDescriptions) {
60
+ const jsonTree = this.buildHierarchyTree(roleDescriptions);
61
+ const jsonFile = `./docs/json/root-roles.json`;
62
+ await fs.ensureDir(path.dirname(jsonFile));
63
+ await fs.writeFile(jsonFile, JSON.stringify(jsonTree, null, 2));
64
+ uxLog(this, c.green(`Successfully generated Roles JSON into ${jsonFile}`));
65
+ }
66
+ static buildHierarchyTree(roleDescriptions) {
67
+ // Build a tree structure for roles based on parent-child relationships
68
+ const roleMap = new Map();
69
+ const rootRoles = [];
70
+ // First pass: create all role nodes
71
+ for (const role of roleDescriptions) {
72
+ roleMap.set(role.apiName, {
73
+ text: role.name,
74
+ icon: "fa-solid fa-users icon-blue",
75
+ children: [],
76
+ roleData: role
77
+ });
78
+ }
79
+ // Second pass: build parent-child relationships
80
+ for (const role of roleDescriptions) {
81
+ const roleNode = roleMap.get(role.apiName);
82
+ if (role.parentRole && roleMap.has(role.parentRole)) {
83
+ const parentNode = roleMap.get(role.parentRole);
84
+ parentNode.children.push(roleNode);
85
+ }
86
+ else {
87
+ // This is a root role (no parent)
88
+ rootRoles.push(roleNode);
89
+ }
90
+ }
91
+ // Sort children by name for each node
92
+ const sortChildren = (node) => {
93
+ if (node.children && node.children.length > 0) {
94
+ node.children.sort((a, b) => a.text.localeCompare(b.text));
95
+ node.children.forEach(sortChildren);
96
+ // Update text to show count
97
+ node.text = `${node.roleData.name} (${node.children.length})`;
98
+ }
99
+ };
100
+ rootRoles.forEach(sortChildren);
101
+ rootRoles.sort((a, b) => a.roleData.name.localeCompare(b.roleData.name));
102
+ return rootRoles;
103
+ }
104
+ }
105
+ //# sourceMappingURL=docBuilderRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docBuilderRoles.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderRoles.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,7 @@ export class DocBuilderRoot {
91
91
  const defaultVariables = { [`${this.docType.toUpperCase()}_NAME`]: this.metadataName, [`${this.docType.toUpperCase()}_XML`]: xmlStripped };
92
92
  const variables = Object.assign(defaultVariables, this.additionalVariables);
93
93
  const prompt = AiProvider.buildPrompt(this.promptKey, variables);
94
+ /* jscpd:ignore-start */
94
95
  const aiResponse = await AiProvider.promptAi(prompt, this.promptKey);
95
96
  if (aiResponse?.success) {
96
97
  let responseText = aiResponse.promptResponse || "No AI description available";
@@ -102,6 +103,7 @@ export class DocBuilderRoot {
102
103
  this.markdownDoc = this.markdownDoc.replace(this.placeholder, replaceText);
103
104
  return this.markdownDoc;
104
105
  }
106
+ /* jscpd:ignore-end */
105
107
  else if (aiResponse?.forcedTimeout) {
106
108
  const forcedTimeoutText = `CI job reached maximum time allowed for allowed calls to AI. You can either:
107
109
 
@@ -1 +1 @@
1
- {"version":3,"file":"docBuilderRoot.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderRoot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docBuilderRoot.js","sourceRoot":"","sources":["../../../src/common/docBuilder/docBuilderRoot.ts"],"names":[],"mappings":"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"}