sfdx-hardis 5.32.1 → 5.33.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.
- package/CHANGELOG.md +10 -0
- package/lib/common/aiProvider/index.js +6 -1
- package/lib/common/aiProvider/index.js.map +1 -1
- package/lib/common/aiProvider/langChainProviders/langChainAnthropicProvider.d.ts +6 -0
- package/lib/common/aiProvider/langChainProviders/langChainAnthropicProvider.js +22 -0
- package/lib/common/aiProvider/langChainProviders/langChainAnthropicProvider.js.map +1 -0
- package/lib/common/aiProvider/langChainProviders/langChainBaseProvider.d.ts +24 -0
- package/lib/common/aiProvider/langChainProviders/langChainBaseProvider.js +16 -0
- package/lib/common/aiProvider/langChainProviders/langChainBaseProvider.js.map +1 -0
- package/lib/common/aiProvider/langChainProviders/langChainGoogleGenAi.d.ts +6 -0
- package/lib/common/aiProvider/langChainProviders/langChainGoogleGenAi.js +22 -0
- package/lib/common/aiProvider/langChainProviders/langChainGoogleGenAi.js.map +1 -0
- package/lib/common/aiProvider/langChainProviders/langChainOllamaProvider.d.ts +6 -0
- package/lib/common/aiProvider/langChainProviders/langChainOllamaProvider.js +18 -0
- package/lib/common/aiProvider/langChainProviders/langChainOllamaProvider.js.map +1 -0
- package/lib/common/aiProvider/langChainProviders/langChainOpenAIProvider.d.ts +6 -0
- package/lib/common/aiProvider/langChainProviders/langChainOpenAIProvider.js +22 -0
- package/lib/common/aiProvider/langChainProviders/langChainOpenAIProvider.js.map +1 -0
- package/lib/common/aiProvider/langChainProviders/langChainProviderFactory.d.ts +4 -0
- package/lib/common/aiProvider/langChainProviders/langChainProviderFactory.js +22 -0
- package/lib/common/aiProvider/langChainProviders/langChainProviderFactory.js.map +1 -0
- package/lib/common/aiProvider/langchainProvider.d.ts +10 -0
- package/lib/common/aiProvider/langchainProvider.js +86 -0
- package/lib/common/aiProvider/langchainProvider.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.js +51 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.js +40 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.js +40 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.js +43 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_AUTORESPONSE_RULES.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_AUTORESPONSE_RULES.js +42 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_AUTORESPONSE_RULES.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ESCALATION_RULES.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ESCALATION_RULES.js +40 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ESCALATION_RULES.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW.js +40 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW_DIFF.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW_DIFF.js +50 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_FLOW_DIFF.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_LWC.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_LWC.js +68 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_LWC.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_OBJECT.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_OBJECT.js +66 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_OBJECT.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.js +40 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PAGE.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.js +43 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js +40 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PERMISSION_SET_GROUP.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.js +43 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_PROFILE.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.d.ts +3 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.js +40 -0
- package/lib/common/aiProvider/promptTemplates/PROMPT_SOLVE_DEPLOYMENT_ERROR.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/index.d.ts +2 -0
- package/lib/common/aiProvider/promptTemplates/index.js +33 -0
- package/lib/common/aiProvider/promptTemplates/index.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates/types.d.ts +11 -0
- package/lib/common/aiProvider/promptTemplates/types.js +2 -0
- package/lib/common/aiProvider/promptTemplates/types.js.map +1 -0
- package/lib/common/aiProvider/promptTemplates.d.ts +0 -92
- package/lib/common/aiProvider/promptTemplates.js +28 -433
- package/lib/common/aiProvider/promptTemplates.js.map +1 -1
- package/lib/common/aiProvider/utils.d.ts +1 -0
- package/lib/common/aiProvider/utils.js +6 -0
- package/lib/common/aiProvider/utils.js.map +1 -1
- package/oclif.lock +272 -49
- package/oclif.manifest.json +766 -766
- package/package.json +15 -6
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
Note: Can be used with `sfdx plugins:install sfdx-hardis@beta` and docker image `hardisgroupcom/sfdx-hardis@beta`
|
|
6
6
|
|
|
7
|
+
## [5.33.0] 2025-05-10
|
|
8
|
+
|
|
9
|
+
- [hardis:doc:project2markdown](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/): Allow to use ollama, Anthropic and Gemini LLMs, through langchainJs
|
|
10
|
+
- sfdx-hardis prompt templates enhancements:
|
|
11
|
+
- Add [prompt templates](https://sfdx-hardis.cloudity.com/salesforce-ai-prompts/#available-prompt-templates) in online documentation
|
|
12
|
+
- Allow to locally [override prompt templates](https://sfdx-hardis.cloudity.com/salesforce-ai-prompts/#overriding-prompts) text in `config/prompt-templates/${templateName}.txt`
|
|
13
|
+
- Rewrite old prompt templates
|
|
14
|
+
- Improve VsCode workspace configuration to avoid performance issues
|
|
15
|
+
- Upgrade npm dependencies
|
|
16
|
+
|
|
7
17
|
## [5.32.1] 2025-05-09
|
|
8
18
|
|
|
9
19
|
- [hardis:doc:project2markdown](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/): Fix crash when assignment rule doesn't have a value
|
|
@@ -6,6 +6,7 @@ import { buildPromptFromTemplate } from "./promptTemplates.js";
|
|
|
6
6
|
import { isCI, uxLog } from "../utils/index.js";
|
|
7
7
|
import { prompts } from "../utils/prompts.js";
|
|
8
8
|
import { AgentforceProvider } from "./agentforceProvider.js";
|
|
9
|
+
import { LangChainProvider } from "./langchainProvider.js";
|
|
9
10
|
let IS_AI_AVAILABLE = null;
|
|
10
11
|
export class AiProvider {
|
|
11
12
|
static isAiAvailable() {
|
|
@@ -37,8 +38,12 @@ export class AiProvider {
|
|
|
37
38
|
return IS_AI_AVAILABLE;
|
|
38
39
|
}
|
|
39
40
|
static getInstance() {
|
|
41
|
+
// LangChain
|
|
42
|
+
if (UtilsAi.isLangChainAvailable()) {
|
|
43
|
+
return new LangChainProvider();
|
|
44
|
+
}
|
|
40
45
|
// OpenAi
|
|
41
|
-
if (UtilsAi.isOpenAiAvailable()) {
|
|
46
|
+
else if (UtilsAi.isOpenAiAvailable()) {
|
|
42
47
|
return new OpenAiProvider();
|
|
43
48
|
}
|
|
44
49
|
else if (UtilsAi.isAgentforceAvailable()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/aiProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,CAAC,MAAM,OAAO,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAkB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/aiProvider/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
2
|
+
import { AbstractLLMProvider, ModelConfig } from "./langChainBaseProvider.js";
|
|
3
|
+
export declare class LangChainAnthropicProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName: string, config: ModelConfig);
|
|
5
|
+
getModel(): BaseChatModel;
|
|
6
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ChatAnthropic } from "@langchain/anthropic";
|
|
2
|
+
import { AbstractLLMProvider } from "./langChainBaseProvider.js";
|
|
3
|
+
export class LangChainAnthropicProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName, config) {
|
|
5
|
+
if (!config.apiKey) {
|
|
6
|
+
throw new Error("API key is required for Anthropic provider. Define it in a secured env var LANGCHAIN_LLM_MODEL_API_KEY");
|
|
7
|
+
}
|
|
8
|
+
super(modelName, config);
|
|
9
|
+
this.model = this.getModel();
|
|
10
|
+
}
|
|
11
|
+
getModel() {
|
|
12
|
+
const config = {
|
|
13
|
+
modelName: this.modelName,
|
|
14
|
+
anthropicApiKey: this.config.apiKey,
|
|
15
|
+
temperature: this.config.temperature,
|
|
16
|
+
maxTokens: this.config.maxTokens,
|
|
17
|
+
maxRetries: this.config.maxRetries
|
|
18
|
+
};
|
|
19
|
+
return new ChatAnthropic(config);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=langChainAnthropicProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langChainAnthropicProvider.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/langChainProviders/langChainAnthropicProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAe,MAAM,4BAA4B,CAAC;AAE9E,MAAM,OAAO,0BAA2B,SAAQ,mBAAmB;IACjE,YAAY,SAAiB,EAAE,MAAmB;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;QAC5H,CAAC;QACD,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,MAAO;YACpC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACnC,CAAC;QAEF,OAAO,IAAI,aAAa,CAAC,MAAM,CAAkB,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
2
|
+
export interface ModelConfig {
|
|
3
|
+
temperature?: number;
|
|
4
|
+
timeout?: number;
|
|
5
|
+
maxTokens?: number;
|
|
6
|
+
maxRetries?: number;
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
apiKey?: string;
|
|
9
|
+
}
|
|
10
|
+
export type ProviderType = "ollama" | "openai" | "anthropic";
|
|
11
|
+
export interface BaseLLMProvider {
|
|
12
|
+
getModel(): BaseChatModel;
|
|
13
|
+
getModelName(): string;
|
|
14
|
+
getLabel(): string;
|
|
15
|
+
}
|
|
16
|
+
export declare abstract class AbstractLLMProvider implements BaseLLMProvider {
|
|
17
|
+
protected model: BaseChatModel;
|
|
18
|
+
protected modelName: string;
|
|
19
|
+
protected config: ModelConfig;
|
|
20
|
+
constructor(modelName: string, config: ModelConfig);
|
|
21
|
+
abstract getModel(): BaseChatModel;
|
|
22
|
+
getModelName(): string;
|
|
23
|
+
getLabel(): string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class AbstractLLMProvider {
|
|
2
|
+
model;
|
|
3
|
+
modelName;
|
|
4
|
+
config;
|
|
5
|
+
constructor(modelName, config) {
|
|
6
|
+
this.modelName = modelName;
|
|
7
|
+
this.config = config;
|
|
8
|
+
}
|
|
9
|
+
getModelName() {
|
|
10
|
+
return this.modelName;
|
|
11
|
+
}
|
|
12
|
+
getLabel() {
|
|
13
|
+
return "LangChain connector";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=langChainBaseProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langChainBaseProvider.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/langChainProviders/langChainBaseProvider.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAgB,mBAAmB;IAC7B,KAAK,CAAgB;IACrB,SAAS,CAAS;IAClB,MAAM,CAAc;IAE9B,YAAY,SAAiB,EAAE,MAAmB;QAChD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAID,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,qBAAqB,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
2
|
+
import { AbstractLLMProvider, ModelConfig } from "./langChainBaseProvider.js";
|
|
3
|
+
export declare class LangChainGoogleGenAiProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName: string, config: ModelConfig);
|
|
5
|
+
getModel(): BaseChatModel;
|
|
6
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
|
|
2
|
+
import { AbstractLLMProvider } from "./langChainBaseProvider.js";
|
|
3
|
+
export class LangChainGoogleGenAiProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName, config) {
|
|
5
|
+
if (!config.apiKey) {
|
|
6
|
+
throw new Error("API key is required for Google GenAI provider. Define it in a secured env var LANGCHAIN_LLM_MODEL_API_KEY");
|
|
7
|
+
}
|
|
8
|
+
super(modelName, config);
|
|
9
|
+
this.model = this.getModel();
|
|
10
|
+
}
|
|
11
|
+
getModel() {
|
|
12
|
+
const config = {
|
|
13
|
+
model: this.modelName,
|
|
14
|
+
apiKey: this.config.apiKey,
|
|
15
|
+
temperature: this.config.temperature,
|
|
16
|
+
maxTokens: this.config.maxTokens,
|
|
17
|
+
maxRetries: this.config.maxRetries
|
|
18
|
+
};
|
|
19
|
+
return new ChatGoogleGenerativeAI(config);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=langChainGoogleGenAi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langChainGoogleGenAi.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/langChainProviders/langChainGoogleGenAi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAe,MAAM,4BAA4B,CAAC;AAE9E,MAAM,OAAO,4BAA6B,SAAQ,mBAAmB;IACnE,YAAY,SAAiB,EAAE,MAAmB;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC;QAC/H,CAAC;QACD,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAO;YAC3B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACnC,CAAC;QAEF,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAkB,CAAC;IAC7D,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
2
|
+
import { AbstractLLMProvider, ModelConfig } from "./langChainBaseProvider.js";
|
|
3
|
+
export declare class LangChainOllamaProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName: string, config: ModelConfig);
|
|
5
|
+
getModel(): BaseChatModel;
|
|
6
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ChatOllama } from "@langchain/ollama";
|
|
2
|
+
import { AbstractLLMProvider } from "./langChainBaseProvider.js";
|
|
3
|
+
export class LangChainOllamaProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName, config) {
|
|
5
|
+
super(modelName, config);
|
|
6
|
+
this.model = this.getModel();
|
|
7
|
+
}
|
|
8
|
+
getModel() {
|
|
9
|
+
const config = {
|
|
10
|
+
model: this.modelName,
|
|
11
|
+
baseUrl: this.config.baseUrl || "http://localhost:11434",
|
|
12
|
+
temperature: this.config.temperature,
|
|
13
|
+
maxRetries: this.config.maxRetries
|
|
14
|
+
};
|
|
15
|
+
return new ChatOllama(config);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=langChainOllamaProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langChainOllamaProvider.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/langChainProviders/langChainOllamaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAe,MAAM,4BAA4B,CAAC;AAE9E,MAAM,OAAO,uBAAwB,SAAQ,mBAAmB;IAC9D,YAAY,SAAiB,EAAE,MAAmB;QAChD,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,wBAAwB;YACxD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACnC,CAAC;QAEF,OAAO,IAAI,UAAU,CAAC,MAAM,CAAkB,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
2
|
+
import { AbstractLLMProvider, ModelConfig } from "./langChainBaseProvider.js";
|
|
3
|
+
export declare class LangChainOpenAIProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName: string, config: ModelConfig);
|
|
5
|
+
getModel(): BaseChatModel;
|
|
6
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ChatOpenAI } from "@langchain/openai";
|
|
2
|
+
import { AbstractLLMProvider } from "./langChainBaseProvider.js";
|
|
3
|
+
export class LangChainOpenAIProvider extends AbstractLLMProvider {
|
|
4
|
+
constructor(modelName, config) {
|
|
5
|
+
if (!config.apiKey) {
|
|
6
|
+
throw new Error("API key is required for OpenAI provider. Define it in a secured env var LANGCHAIN_LLM_MODEL_API_KEY");
|
|
7
|
+
}
|
|
8
|
+
super(modelName, config);
|
|
9
|
+
this.model = this.getModel();
|
|
10
|
+
}
|
|
11
|
+
getModel() {
|
|
12
|
+
const config = {
|
|
13
|
+
modelName: this.modelName,
|
|
14
|
+
openAIApiKey: this.config.apiKey,
|
|
15
|
+
temperature: this.config.temperature,
|
|
16
|
+
maxTokens: this.config.maxTokens,
|
|
17
|
+
maxRetries: this.config.maxRetries
|
|
18
|
+
};
|
|
19
|
+
return new ChatOpenAI(config);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=langChainOpenAIProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langChainOpenAIProvider.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/langChainProviders/langChainOpenAIProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAe,MAAM,4BAA4B,CAAC;AAE9E,MAAM,OAAO,uBAAwB,SAAQ,mBAAmB;IAC9D,YAAY,SAAiB,EAAE,MAAmB;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;QACzH,CAAC;QACD,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAO;YACjC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACnC,CAAC;QAEF,OAAO,IAAI,UAAU,CAAC,MAAM,CAAkB,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LangChainOllamaProvider } from "./langChainOllamaProvider.js";
|
|
2
|
+
import { LangChainOpenAIProvider } from "./langChainOpenAIProvider.js";
|
|
3
|
+
import { LangChainAnthropicProvider } from "./langChainAnthropicProvider.js";
|
|
4
|
+
import { LangChainGoogleGenAiProvider } from "./langChainGoogleGenAi.js";
|
|
5
|
+
const ALL_PROVIDERS = ["ollama", "openai", "anthropic", "google-genai"];
|
|
6
|
+
export class LangChainProviderFactory {
|
|
7
|
+
static createProvider(providerType, modelName, config) {
|
|
8
|
+
switch (providerType.toLowerCase()) {
|
|
9
|
+
case "ollama":
|
|
10
|
+
return new LangChainOllamaProvider(modelName, config);
|
|
11
|
+
case "openai":
|
|
12
|
+
return new LangChainOpenAIProvider(modelName, config);
|
|
13
|
+
case "anthropic":
|
|
14
|
+
return new LangChainAnthropicProvider(modelName, config);
|
|
15
|
+
case "google-genai":
|
|
16
|
+
return new LangChainGoogleGenAiProvider(modelName, config);
|
|
17
|
+
default:
|
|
18
|
+
throw new Error(`Unsupported LLM provider: ${providerType}. Supported providers are: ${ALL_PROVIDERS.join(", ")}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=langChainProviderFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langChainProviderFactory.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/langChainProviders/langChainProviderFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEzE,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAExE,MAAM,OAAO,wBAAwB;IACnC,MAAM,CAAC,cAAc,CAAC,YAA0B,EAAE,SAAiB,EAAE,MAAmB;QACtF,QAAQ,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,KAAK,QAAQ;gBACX,OAAO,IAAI,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxD,KAAK,QAAQ;gBACX,OAAO,IAAI,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxD,KAAK,WAAW;gBACd,OAAO,IAAI,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC3D,KAAK,cAAc;gBACjB,OAAO,IAAI,4BAA4B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7D;gBACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,8BAA8B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AiResponse } from "./index.js";
|
|
2
|
+
import { AiProviderRoot } from "./aiProviderRoot.js";
|
|
3
|
+
import { PromptTemplate } from "./promptTemplates.js";
|
|
4
|
+
export declare class LangChainProvider extends AiProviderRoot {
|
|
5
|
+
private model;
|
|
6
|
+
private modelName;
|
|
7
|
+
constructor();
|
|
8
|
+
getLabel(): string;
|
|
9
|
+
promptAi(promptText: string, template?: PromptTemplate | null): Promise<AiResponse | null>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { AiProviderRoot } from "./aiProviderRoot.js";
|
|
2
|
+
import c from "chalk";
|
|
3
|
+
import { uxLog } from "../utils/index.js";
|
|
4
|
+
import { getEnvVar } from "../../config/index.js";
|
|
5
|
+
import { LangChainProviderFactory } from "./langChainProviders/langChainProviderFactory.js";
|
|
6
|
+
export class LangChainProvider extends AiProviderRoot {
|
|
7
|
+
model;
|
|
8
|
+
modelName;
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
const provider = getEnvVar("LANGCHAIN_LLM_PROVIDER");
|
|
12
|
+
if (!provider) {
|
|
13
|
+
throw new Error("LANGCHAIN_LLM_PROVIDER environment variable must be set to use LangChain integration");
|
|
14
|
+
}
|
|
15
|
+
const providerType = provider.toLowerCase();
|
|
16
|
+
const modelName = getEnvVar("LANGCHAIN_LLM_MODEL");
|
|
17
|
+
const apiKey = getEnvVar("LANGCHAIN_LLM_MODEL_API_KEY");
|
|
18
|
+
if (!modelName) {
|
|
19
|
+
throw new Error("LANGCHAIN_LLM_MODEL environment variable must be set to use LangChain integration");
|
|
20
|
+
}
|
|
21
|
+
this.modelName = modelName;
|
|
22
|
+
// Common configuration for all providers
|
|
23
|
+
const config = {
|
|
24
|
+
temperature: Number(getEnvVar("LANGCHAIN_LLM_TEMPERATURE")) || undefined,
|
|
25
|
+
timeout: Number(getEnvVar("LANGCHAIN_LLM_TIMEOUT")) || undefined,
|
|
26
|
+
maxTokens: Number(getEnvVar("LANGCHAIN_LLM_MAX_TOKENS")) || undefined,
|
|
27
|
+
maxRetries: Number(getEnvVar("LANGCHAIN_LLM_MAX_RETRIES")) || undefined,
|
|
28
|
+
baseUrl: getEnvVar("LANGCHAIN_LLM_BASE_URL") || undefined,
|
|
29
|
+
apiKey: apiKey || undefined
|
|
30
|
+
};
|
|
31
|
+
// factory pattern so that adding support for new providers is easy in the future
|
|
32
|
+
const llmProvider = LangChainProviderFactory.createProvider(providerType, modelName, config);
|
|
33
|
+
this.model = llmProvider.getModel();
|
|
34
|
+
}
|
|
35
|
+
getLabel() {
|
|
36
|
+
return "LangChain connector";
|
|
37
|
+
}
|
|
38
|
+
async promptAi(promptText, template = null) {
|
|
39
|
+
// re-use the same check for max ai calls number as in the original openai provider implementation
|
|
40
|
+
if (!this.checkMaxAiCallsNumber()) {
|
|
41
|
+
const maxCalls = this.getAiMaxCallsNumber();
|
|
42
|
+
uxLog(this, c.yellow(`[LangChain] Already performed maximum ${maxCalls} calls. Increase it by defining AI_MAXIMUM_CALL_NUMBER env variable`));
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
if (process.env?.DEBUG_PROMPTS === "true") {
|
|
46
|
+
uxLog(this, c.grey(`[LangChain] Requesting the following prompt to ${this.modelName}${template ? ' using template ' + template : ''}:\n${promptText}`));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
uxLog(this, c.grey(`[LangChain] Requesting prompt to ${this.modelName}${template ? ' using template ' + template : ''} (define DEBUG_PROMPTS=true to see details)`));
|
|
50
|
+
}
|
|
51
|
+
this.incrementAiCallsNumber();
|
|
52
|
+
try {
|
|
53
|
+
const response = await this.model.invoke([
|
|
54
|
+
{
|
|
55
|
+
role: "user",
|
|
56
|
+
content: promptText
|
|
57
|
+
}
|
|
58
|
+
]);
|
|
59
|
+
if (process.env?.DEBUG_PROMPTS === "true") {
|
|
60
|
+
uxLog(this, c.grey("[LangChain] Received prompt response\n" + JSON.stringify(response, null, 2)));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
uxLog(this, c.grey("[LangChain] Received prompt response"));
|
|
64
|
+
}
|
|
65
|
+
const aiResponse = {
|
|
66
|
+
success: false,
|
|
67
|
+
model: this.modelName,
|
|
68
|
+
};
|
|
69
|
+
if (response.content) {
|
|
70
|
+
aiResponse.success = true;
|
|
71
|
+
aiResponse.promptResponse = typeof response.content === 'string' ? response.content : JSON.stringify(response.content);
|
|
72
|
+
}
|
|
73
|
+
return aiResponse;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (error instanceof Error) {
|
|
77
|
+
uxLog(this, c.red(`[LangChain] Error while calling LLM API: ${error.message}`));
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
uxLog(this, c.red(`[LangChain] Unexpected error occurred`));
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=langchainProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langchainProvider.js","sourceRoot":"","sources":["../../../src/common/aiProvider/langchainProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const template = {
|
|
2
|
+
variables: [
|
|
3
|
+
{
|
|
4
|
+
name: "OBJECT_NAME",
|
|
5
|
+
description: "The API name of the Salesforce object whose fields and validation rules are being described.",
|
|
6
|
+
example: "Account"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: "MARKDOWN",
|
|
10
|
+
description: "The markdown table containing the fields and validation rules to be reviewed and refined.",
|
|
11
|
+
example: "| Field | Label | Description | ... |\n|-------|-------|-------------| ... |"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
text: {
|
|
15
|
+
"en": `You are a skilled Business Analyst working on a Salesforce project. Your task is to review and refine the fields and validation rules of the Salesforce object "{{OBJECT_NAME}}" and describe them in plain English. The goal is to create a detailed, user-friendly explanation of each field and validation rule that a non-technical business user can easily understand.
|
|
16
|
+
|
|
17
|
+
## Instructions:
|
|
18
|
+
1. **Enhancing Fields Descriptions**:
|
|
19
|
+
- If an field's description is missing, generate a meaningful description using the context provided by the other column values (e.g., name, data type, or usage).
|
|
20
|
+
- If a field description already exists, improve its clarity and comprehensiveness by incorporating insights from the other column values.
|
|
21
|
+
- If an attribute's label is missing, generate a meaningful label using the context provided by the other column values.
|
|
22
|
+
|
|
23
|
+
2. **Enhancing Validation Rules Descriptions**:
|
|
24
|
+
- If an field's description is missing, generate a meaningful description using the context provided by the other column values (especially formula column).
|
|
25
|
+
- If a validation rule description already exists, improve its clarity and comprehensiveness by incorporating insights from the other column values (especially formula column).
|
|
26
|
+
- If an validation rule label is missing, generate a meaningful label using the context provided by the other column values.
|
|
27
|
+
|
|
28
|
+
3. **Output Format**:
|
|
29
|
+
- Return the updated descriptions in the **Markdown tables** format provided below.
|
|
30
|
+
- Ensure the tables aligns with Markdown syntax conventions for proper rendering.
|
|
31
|
+
|
|
32
|
+
4. **Tone and Style**:
|
|
33
|
+
- Use plain English suitable for business users with minimal technical jargon.
|
|
34
|
+
- Focus on clarity, completeness, and practical usage examples if applicable.
|
|
35
|
+
|
|
36
|
+
5. **Output Requirements**:
|
|
37
|
+
- Respond **only in Markdown** format.
|
|
38
|
+
- Do not include any additional text or commentary outside of the Markdown.
|
|
39
|
+
|
|
40
|
+
## Reference Data:
|
|
41
|
+
- Use the following markdown as the basis for your updates:
|
|
42
|
+
{{MARKDOWN}}
|
|
43
|
+
|
|
44
|
+
## Additional Guidance:
|
|
45
|
+
- **Consistency**: Maintain consistent formatting and ensure the descriptions are cohesive across all attributes.
|
|
46
|
+
- **Use Examples**: When applicable, include simple examples to illustrate the attribute's purpose or use case.
|
|
47
|
+
`,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
export default template;
|
|
51
|
+
//# sourceMappingURL=PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACxC,SAAS,EAAE;QACR;YACG,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,8FAA8F;YAC3G,OAAO,EAAE,SAAS;SACpB;QACD;YACG,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,2FAA2F;YACxG,OAAO,EAAE,8EAA8E;SACzF;KACH;IACD,IAAI,EAAE;QACH,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCV;KACE;CACH,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const template = {
|
|
2
|
+
variables: [
|
|
3
|
+
{
|
|
4
|
+
name: "CLASS_NAME",
|
|
5
|
+
description: "The name of the Salesforce Apex class to describe.",
|
|
6
|
+
example: "MyCustomController"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: "APEX_CODE",
|
|
10
|
+
description: "The full source code of the Apex class.",
|
|
11
|
+
example: "public class MyCustomController { ... }"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
text: {
|
|
15
|
+
"en": `You are a developer working on a Salesforce project. Your goal is to summarize the behavior of the Salesforce Apex class "{{CLASS_NAME}}" in plain English, providing a detailed explanation suitable for a business user.
|
|
16
|
+
|
|
17
|
+
### Instructions:
|
|
18
|
+
|
|
19
|
+
1. **Contextual Overview**:
|
|
20
|
+
- Begin by summarizing the role of the apex class.
|
|
21
|
+
- List the key functionalities and business logic implemented in the class.
|
|
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.
|
|
29
|
+
|
|
30
|
+
### Reference Data:
|
|
31
|
+
|
|
32
|
+
- The code for Apex class "{{CLASS_NAME}}" is:
|
|
33
|
+
{{APEX_CODE}}
|
|
34
|
+
|
|
35
|
+
Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
|
|
36
|
+
`,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
export default template;
|
|
40
|
+
//# sourceMappingURL=PROMPT_DESCRIBE_APEX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PROMPT_DESCRIBE_APEX.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APEX.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,oDAAoD;YACjE,OAAO,EAAE,oBAAoB;SAC9B;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,yCAAyC;YACtD,OAAO,EAAE,yCAAyC;SACnD;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const template = {
|
|
2
|
+
variables: [
|
|
3
|
+
{
|
|
4
|
+
name: "APPROVALPROCESS_NAME",
|
|
5
|
+
description: "The name of the Salesforce Approval Process to describe.",
|
|
6
|
+
example: "Opportunity_Approval"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: "APPROVALPROCESS_XML",
|
|
10
|
+
description: "The XML metadata for the Salesforce Approval Process.",
|
|
11
|
+
example: "<ApprovalProcess>...</ApprovalProcess>"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
text: {
|
|
15
|
+
"en": `You are a skilled business analyst working on a Salesforce project. Your goal is to explain the what is the Salesforce Approval Process "{{APPROVALPROCESS_NAME}}" about in plain English, provide a detailed explanation suitable for a business user.
|
|
16
|
+
|
|
17
|
+
### Instructions:
|
|
18
|
+
|
|
19
|
+
1. **Contextual Overview**:
|
|
20
|
+
- Begin by summarizing the purpose of the approval process.
|
|
21
|
+
- List the key functionalities and business logic implemented in the approval process.
|
|
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.
|
|
29
|
+
|
|
30
|
+
### Reference Data:
|
|
31
|
+
|
|
32
|
+
- The metadata XML for Approval Process "{{APPROVALPROCESS_NAME}}" is:
|
|
33
|
+
{{APPROVALPROCESS_XML}}
|
|
34
|
+
|
|
35
|
+
Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
|
|
36
|
+
`,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
export default template;
|
|
40
|
+
//# sourceMappingURL=PROMPT_DESCRIBE_APPROVAL_PROCESS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PROMPT_DESCRIBE_APPROVAL_PROCESS.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_APPROVAL_PROCESS.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,0DAA0D;YACvE,OAAO,EAAE,sBAAsB;SAChC;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,uDAAuD;YACpE,OAAO,EAAE,wCAAwC;SAClD;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const template = {
|
|
2
|
+
variables: [
|
|
3
|
+
{
|
|
4
|
+
name: "ASSIGNMENTRULES_NAME",
|
|
5
|
+
description: "The name of the Salesforce Assignment Rules to describe.",
|
|
6
|
+
example: "Case_Assignment_Rules"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: "ASSIGNMENTRULES_XML",
|
|
10
|
+
description: "The XML metadata for the Salesforce Assignment Rules.",
|
|
11
|
+
example: "<AssignmentRules>...</AssignmentRules>"
|
|
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 Assignment Rules "{{ASSIGNMENTRULES_NAME}}" in plain English, providing a detailed explanation suitable for a business user.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Instructions:
|
|
19
|
+
|
|
20
|
+
1. **Contextual Overview**:
|
|
21
|
+
- Begin by explaining the role of the Salesforce Assignment Rules that you can guess according to the content of the XML and the name.
|
|
22
|
+
Try to guess the role of users assigned to this assignment rule. Do not mention the email of assigned users, but you can mention type of assigned users.
|
|
23
|
+
Based by Criteria items, explain what should so the record will be assigned.
|
|
24
|
+
- Analyze all the assignment rules for objects and in the description tell what are the aim of those rules. What is the role of the object in the system, based by the assignment rules.
|
|
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.
|
|
32
|
+
|
|
33
|
+
### Reference Data:
|
|
34
|
+
|
|
35
|
+
- The metadata XML for Salesforce Assignment Rule "{{ASSIGNMENTRULES_NAME}}" is:
|
|
36
|
+
{{ASSIGNMENTRULES_XML}}
|
|
37
|
+
|
|
38
|
+
Caution: Redact any sensitive information and replace with \`[REDACTED]\`. Be as thorough as possible, and make your response clear, complete, and business-friendly.
|
|
39
|
+
`,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export default template;
|
|
43
|
+
//# sourceMappingURL=PROMPT_DESCRIBE_ASSIGNMENT_RULES.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PROMPT_DESCRIBE_ASSIGNMENT_RULES.js","sourceRoot":"","sources":["../../../../src/common/aiProvider/promptTemplates/PROMPT_DESCRIBE_ASSIGNMENT_RULES.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA6B;IACzC,SAAS,EAAE;QACT;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,0DAA0D;YACvE,OAAO,EAAE,uBAAuB;SACjC;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,uDAAuD;YACpE,OAAO,EAAE,wCAAwC;SAClD;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBT;KACE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|