sfdx-hardis 5.40.0 → 5.41.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 (53) hide show
  1. package/CHANGELOG.md +5 -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/common/aiProvider/promptTemplates/PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.js +1 -1
  6. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.js +4 -10
  7. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.js.map +1 -1
  8. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.js +4 -10
  9. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.js.map +1 -1
  10. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.js +4 -11
  11. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.js.map +1 -1
  12. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_AUTORESPONSE_RULES.js +6 -12
  13. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_AUTORESPONSE_RULES.js.map +1 -1
  14. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ESCALATION_RULES.js +4 -10
  15. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ESCALATION_RULES.js.map +1 -1
  16. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW.js +4 -10
  17. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW.js.map +1 -1
  18. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW_DIFF.js +3 -8
  19. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW_DIFF.js.map +1 -1
  20. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_LWC.js +3 -7
  21. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_LWC.js.map +1 -1
  22. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_OBJECT.js +3 -8
  23. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_OBJECT.js.map +1 -1
  24. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PACKAGE.js +3 -8
  25. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PACKAGE.js.map +1 -1
  26. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.js +3 -8
  27. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.js.map +1 -1
  28. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.js +4 -10
  29. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.js.map +1 -1
  30. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js +4 -10
  31. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js.map +1 -1
  32. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.js +3 -8
  33. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.js.map +1 -1
  34. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ROLES.js +3 -8
  35. package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ROLES.js.map +1 -1
  36. package/lib/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.js +3 -9
  37. package/lib/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.js.map +1 -1
  38. package/lib/common/aiProvider/promptTemplates/VARIABLE_ADDITIONAL_INSTRUCTIONS.d.ts +3 -0
  39. package/lib/common/aiProvider/promptTemplates/VARIABLE_ADDITIONAL_INSTRUCTIONS.js +11 -0
  40. package/lib/common/aiProvider/promptTemplates/VARIABLE_ADDITIONAL_INSTRUCTIONS.js.map +1 -0
  41. package/lib/common/aiProvider/promptTemplates/VARIABLE_FORMATTING_REQUIREMENTS.d.ts +3 -0
  42. package/lib/common/aiProvider/promptTemplates/VARIABLE_FORMATTING_REQUIREMENTS.js +13 -0
  43. package/lib/common/aiProvider/promptTemplates/VARIABLE_FORMATTING_REQUIREMENTS.js.map +1 -0
  44. package/lib/common/aiProvider/promptTemplates/VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.d.ts +3 -0
  45. package/lib/common/aiProvider/promptTemplates/VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.js +8 -0
  46. package/lib/common/aiProvider/promptTemplates/VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC.js.map +1 -0
  47. package/lib/common/aiProvider/promptTemplates/variablesIndex.d.ts +3 -0
  48. package/lib/common/aiProvider/promptTemplates/variablesIndex.js +9 -0
  49. package/lib/common/aiProvider/promptTemplates/variablesIndex.js.map +1 -0
  50. package/lib/common/aiProvider/promptTemplates.js +43 -2
  51. package/lib/common/aiProvider/promptTemplates.js.map +1 -1
  52. package/oclif.manifest.json +621 -542
  53. package/package.json +1 -1
@@ -12,7 +12,7 @@ const template = {
12
12
  }
13
13
  ],
14
14
  text: {
15
- "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce Lightning Page "{{PAGE_NAME}}" in plain English, providing a detailed explanation suitable for a business user. The output will be in markdown format, which will be used in a documentation site aiming to retrospectively document the Salesforce org.
15
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce Lightning Page "{{PAGE_NAME}}" in plain English, providing a detailed explanation suitable for a business user. {{VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC}}
16
16
 
17
17
  ### Instructions:
18
18
 
@@ -20,19 +20,14 @@ const template = {
20
20
  - Begin by summarizing the role of the lightning page.
21
21
  - List the key tabs, sections, views, related lists and actions described in the lightning page.
22
22
 
23
- 2. **Formatting Requirements**:
24
- - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
25
- - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
26
- - Add new lines after a header title so mkdocs-material can display the content correctly.
27
- - Never truncate any information in the response.
28
- - Provide a concise summary before detailed sections for quick understanding.
23
+ 2. {{VARIABLE_FORMATTING_REQUIREMENTS}}
29
24
 
30
25
  ### Reference Data:
31
26
 
32
27
  - The metadata XML for Lightning page "{{PAGE_NAME}}" is:
33
28
  {{PAGE_XML}}
34
29
 
35
- Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
30
+ {{VARIABLE_ADDITIONAL_INSTRUCTIONS}}
36
31
  `,
37
32
  },
38
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT_DESCRIBE_PAGE.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wDAAwD;YACrE,OAAO,EAAE,qBAAqB;SAC/B;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,0CAA0C;YACvD,OAAO,EAAE,4BAA4B;SACtC;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"PROMPT_DESCRIBE_PAGE.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wDAAwD;YACrE,OAAO,EAAE,qBAAqB;SAC/B;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,0CAA0C;YACvD,OAAO,EAAE,4BAA4B;SACtC;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;CAgBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -10,9 +10,8 @@ const template = {
10
10
  description: "The XML metadata for the Salesforce Permission Set.",
11
11
  example: "<PermissionSet>...</PermissionSet>"
12
12
  }
13
- ],
14
- text: {
15
- "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce PermissionSet "{{PERMISSIONSET_NAME}}" in plain English, providing a detailed explanation suitable for a business user. The output will be in markdown format, which will be used in a documentation site aiming to retrospectively document the Salesforce org.
13
+ ], text: {
14
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce PermissionSet "{{PERMISSIONSET_NAME}}" in plain English, providing a detailed explanation suitable for a business user. {{VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC}}
16
15
 
17
16
  ### Instructions:
18
17
 
@@ -23,19 +22,14 @@ const template = {
23
22
  - Ignore Apex classes and Custom Fields
24
23
  - Ignore blocks who has access or visibility set to "false"
25
24
 
26
- 2. **Formatting Requirements**:
27
- - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
28
- - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
29
- - Add new lines after a header title so mkdocs-material can display the content correctly.
30
- - Never truncate any information in the response.
31
- - Provide a concise summary before detailed sections for quick understanding.
25
+ 2. {{VARIABLE_FORMATTING_REQUIREMENTS}}
32
26
 
33
27
  ### Reference Data:
34
28
 
35
29
  - The metadata XML for Salesforce Permission Set "{{PERMISSIONSET_NAME}}" is:
36
30
  {{PERMISSIONSET_XML}}
37
31
 
38
- Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
32
+ {{VARIABLE_ADDITIONAL_INSTRUCTIONS}}
39
33
  `,
40
34
  },
41
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT_DESCRIBE_PERMISSION_SET.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,wDAAwD;YACrE,OAAO,EAAE,oBAAoB;SAC9B;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,oCAAoC;SAC9C;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"PROMPT_DESCRIBE_PERMISSION_SET.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,wDAAwD;YACrE,OAAO,EAAE,oBAAoB;SAC9B;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,oCAAoC;SAC9C;KACF,EAAE,IAAI,EAAE;QACP,IAAI,EAAE;;;;;;;;;;;;;;;;;;;CAmBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -10,9 +10,8 @@ const template = {
10
10
  description: "The XML metadata for the Salesforce Permission Set Group.",
11
11
  example: "<PermissionSetGroup>...</PermissionSetGroup>"
12
12
  }
13
- ],
14
- text: {
15
- "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce PermissionSetGroup "{{PERMISSIONSETGROUP_NAME}}" in plain English, providing a detailed explanation suitable for a business user. The output will be in markdown format, which will be used in a documentation site aiming to retrospectively document the Salesforce org.
13
+ ], text: {
14
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce PermissionSetGroup "{{PERMISSIONSETGROUP_NAME}}" in plain English, providing a detailed explanation suitable for a business user. {{VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC}}
16
15
 
17
16
  ### Instructions:
18
17
 
@@ -20,19 +19,14 @@ const template = {
20
19
  - Begin by summarizing the role of the Salesforce PermissionSetGroup that you can guess according to the content of the XML. Try to guess the role of users assigned to this permission set group according to the name, description and related Permission Sets
21
20
  - List the key features of the Permission Set.
22
21
 
23
- 2. **Formatting Requirements**:
24
- - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
25
- - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
26
- - Add new lines after a header title so mkdocs-material can display the content correctly.
27
- - Never truncate any information in the response.
28
- - Provide a concise summary before detailed sections for quick understanding.
22
+ 2. {{VARIABLE_FORMATTING_REQUIREMENTS}}
29
23
 
30
24
  ### Reference Data:
31
25
 
32
26
  - The metadata XML for Salesforce Permission Set Group "{{PERMISSIONSETGROUP_NAME}}" is:
33
27
  {{PERMISSIONSETGROUP_XML}}
34
28
 
35
- Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
29
+ {{VARIABLE_ADDITIONAL_INSTRUCTIONS}}
36
30
  `,
37
31
  },
38
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,8DAA8D;YAC3E,OAAO,EAAE,kBAAkB;SAC5B;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,2DAA2D;YACxE,OAAO,EAAE,8CAA8C;SACxD;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,8DAA8D;YAC3E,OAAO,EAAE,kBAAkB;SAC5B;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,2DAA2D;YACxE,OAAO,EAAE,8CAA8C;SACxD;KACF,EAAE,IAAI,EAAE;QACP,IAAI,EAAE;;;;;;;;;;;;;;;;CAgBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -12,7 +12,7 @@ const template = {
12
12
  }
13
13
  ],
14
14
  text: {
15
- "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce Profile "{{PROFILE_NAME}}" in plain English, providing a detailed explanation suitable for a business user. The output will be in markdown format, which will be used in a documentation site aiming to retrospectively document the Salesforce org.
15
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the content and behavior of the Salesforce Profile "{{PROFILE_NAME}}" in plain English, providing a detailed explanation suitable for a business user. {{VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC}}
16
16
 
17
17
  ### Instructions:
18
18
 
@@ -23,19 +23,14 @@ const template = {
23
23
  - Ignore Apex classes and Custom Fields
24
24
  - Ignore blocks who has access or visibility set to "false"
25
25
 
26
- 2. **Formatting Requirements**:
27
- - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
28
- - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
29
- - Add new lines after a header title so mkdocs-material can display the content correctly.
30
- - Never truncate any information in the response.
31
- - Provide a concise summary before detailed sections for quick understanding.
26
+ 2. {{VARIABLE_FORMATTING_REQUIREMENTS}}
32
27
 
33
28
  ### Reference Data:
34
29
 
35
30
  - The metadata XML for Salesforce Profile "{{PROFILE_NAME}}" is:
36
31
  {{PROFILE_XML}}
37
32
 
38
- Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
33
+ {{VARIABLE_ADDITIONAL_INSTRUCTIONS}}
39
34
  `,
40
35
  },
41
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT_DESCRIBE_PROFILE.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,iDAAiD;YAC9D,OAAO,EAAE,gBAAgB;SAC1B;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,8CAA8C;YAC3D,OAAO,EAAE,wBAAwB;SAClC;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"PROMPT_DESCRIBE_PROFILE.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,iDAAiD;YAC9D,OAAO,EAAE,gBAAgB;SAC1B;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,8CAA8C;YAC3D,OAAO,EAAE,wBAAwB;SAClC;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;CAmBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -8,7 +8,7 @@ const template = {
8
8
  },
9
9
  ],
10
10
  text: {
11
- "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the business organization of the company.
11
+ "en": `You are a skilled business analyst working on a Salesforce project. Your goal is to summarize the business organization of the company. {{VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC}}
12
12
 
13
13
  ### Instructions:
14
14
 
@@ -18,19 +18,14 @@ const template = {
18
18
  - Summarize the roles in a way that is clear and understandable for business stakeholders.
19
19
  - Ensure the summary is concise yet comprehensive, highlighting the most important aspects of the role hierarchy.
20
20
 
21
- 2. **Formatting Requirements**:
22
- - Use markdown formatting suitable for embedding in a level 2 header (\`##\`).
23
- - Add new lines before starting bullet lists so mkdocs-material renders them correctly, including nested lists.
24
- - Add new lines after a header title so mkdocs-material can display the content correctly.
25
- - Never truncate any information in the response.
26
- - Provide a concise summary before detailed sections for quick understanding.
21
+ 2. {{VARIABLE_FORMATTING_REQUIREMENTS}}
27
22
 
28
23
  ### Reference Data:
29
24
 
30
25
  - The description of all role hierarchies is:
31
26
  {{ROLES_DESCRIPTION}}
32
27
 
33
- Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
28
+ {{VARIABLE_ADDITIONAL_INSTRUCTIONS}}
34
29
  `,
35
30
  },
36
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT_DESCRIBE_ROLES.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ROLES.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,qCAAqC;YAClD,OAAO,EAAE,+QAA+Q;YACxR,aAAa,EAAE,MAAM;SACtB;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;CAuBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"PROMPT_DESCRIBE_ROLES.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ROLES.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,qCAAqC;YAClD,OAAO,EAAE,+QAA+Q;YACxR,aAAa,EAAE,MAAM;SACtB;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;CAkBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -5,8 +5,7 @@ const template = {
5
5
  description: "The Salesforce deployment error message to analyze and solve.",
6
6
  example: "Cannot deploy component: missing field 'X' on object 'Y'"
7
7
  }
8
- ],
9
- text: {
8
+ ], text: {
10
9
  "en": `You are a Salesforce release manager using Salesforce CLI commands to perform deployments. Your goal is to help solve the following Salesforce deployment error in a clear, actionable way for a technical user.
11
10
 
12
11
  ### Instructions:
@@ -20,19 +19,14 @@ const template = {
20
19
  - If applicable, include the correct sfdx source format or XML example.
21
20
  - Do not include instructions on how to retrieve or deploy the changes with Salesforce CLI.
22
21
 
23
- 3. **Formatting Requirements**:
24
- - Use markdown formatting suitable for embedding in a level 2 header (##).
25
- - Add new lines before starting bullet lists so mkdocs-material displays them correctly, including for sub-bullets.
26
- - Add new lines after a header title so mkdocs-material can display the content correctly.
27
- - Never truncate any information in the response.
28
- - Provide a concise summary before detailed sections for quick understanding.
22
+ 3. {{VARIABLE_FORMATTING_REQUIREMENTS}}
29
23
 
30
24
  ### Reference Data:
31
25
 
32
26
  - The deployment error returned by Salesforce CLI is:
33
27
  {{ERROR}}
34
28
 
35
- Caution: If the error message contains secret tokens or passwords, please replace them with a placeholder (e.g., [REDACTED]). Be as thorough as possible, and make your response clear, complete, and actionable.
29
+ {{VARIABLE_ADDITIONAL_INSTRUCTIONS}}
36
30
  `,
37
31
  },
38
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT_SOLVE_DEPLOYMENT_ERROR.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,+DAA+D;YAC5E,OAAO,EAAE,0DAA0D;SACpE;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"PROMPT_SOLVE_DEPLOYMENT_ERROR.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,+DAA+D;YAC5E,OAAO,EAAE,0DAA0D;SACpE;KACF,EAAE,IAAI,EAAE;QACP,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBT;KACE;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,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"}
@@ -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"}
@@ -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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"}