diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index c3c1312587..acc9a1a8e6 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -47,13 +47,19 @@ jobs: with: path: ./salesforcedx-vscode ref: ${{ github.event.ref }} - - uses: actions/setup-node@v3 + - name: Setup node + uses: actions/setup-node@v3 with: node-version: ${{ matrix.nodeVersion }} cache: npm cache-dependency-path: | salesforcedx-vscode/package-lock.json salesforcedx-vscode-automation-tests/package-lock.json + - name: Setup java + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '11' - name: Clone automation tests uses: actions/checkout@v3 with: diff --git a/SHA256.md b/SHA256.md index 1b14cc7afd..d8878569a8 100644 --- a/SHA256.md +++ b/SHA256.md @@ -8,7 +8,7 @@ make sure that their SHA values match the values in the list below. following the instructions at https://code.visualstudio.com/docs/editor/extension-gallery#_common-questions. For example, download, - https://salesforce.gallery.vsassets.io/_apis/public/gallery/publisher/salesforce/extension/salesforcedx-vscode-core/58.14.1/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage. + https://salesforce.gallery.vsassets.io/_apis/public/gallery/publisher/salesforce/extension/salesforcedx-vscode-core/58.14.2/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage. 2. From a terminal, run: @@ -16,16 +16,16 @@ shasum -a 256 3. Confirm that the SHA in your output matches the value in this list of SHAs. -9ae83169d5c2ec1c8204f50b85b120145dda26dee4716d68a42db0e793e4322f salesforcedx-vscode-58.14.1.vsix -fb341b4368876b1a8ccdf17c7ab02df6fac40c626ff134e9db8cadd5a946db01 salesforcedx-vscode-apex-58.14.1.vsix -5b10ff565fbbbfabc34a7805cf1a088a21ed4af0143aa951c2623dc1e283f6f3 salesforcedx-vscode-apex-debugger-58.14.1.vsix -daaab5171e7581dddaf98d20c581a8f55e994c40c938b86c63e79e0e4cebbafd salesforcedx-vscode-apex-replay-debugger-58.14.1.vsix -05cfeac8da4a6f99c201e3cbb9d9b84bfc6fcc327ce7d2ee3b39cc29152ef3e2 salesforcedx-vscode-core-58.14.1.vsix -abba220a6eeb028f11a038004a747123bf2e0b917848a4b5ecd79d44934b275a salesforcedx-vscode-expanded-58.14.1.vsix -07e9ed9cf305635e590ce984cf4ebdc6b173c31052e1b6cc5eb27ffd877199fa salesforcedx-vscode-lightning-58.14.1.vsix -0c4512efcc689bbe06f5f5d1293835cfa77bb4f4d5374f407b93b9cd86cfc213 salesforcedx-vscode-lwc-58.14.1.vsix -096a4df9ee8631acae003e43ef49c31ff380dc6f78d92649d6b447e83836889a salesforcedx-vscode-soql-58.14.1.vsix -1e05f3fe079ad9ec8c68a8d3a1fa38609b05af55601a4193313454a460a55272 salesforcedx-vscode-visualforce-58.14.1.vsix +1c304ae2ca4d25ecbddb547fd75d71fd200d77d996e913fbeb73012bdbca0631 salesforcedx-vscode-58.14.2.vsix +7dec1f1312a49841ff98f5817c636c25c6b3dd6bf0d665296f952b8f0903b597 salesforcedx-vscode-apex-58.14.2.vsix +8f7fb69b0f09be28f853c22cb883d19fca42f743ed717b10f797b958fd19e8c8 salesforcedx-vscode-apex-debugger-58.14.2.vsix +a48c2c8e5cdbd93f76deaf770f12db28260f3cdffbfca421e54f5c9741256ae7 salesforcedx-vscode-apex-replay-debugger-58.14.2.vsix +89a3674fe75c7843b1df504f54756eba738ec9403f10d144d1fe7dce7fc2eb50 salesforcedx-vscode-core-58.14.2.vsix +198ef990de674e3e0a9203d21a5ec1e5b2981879f7f45a6f85eae12ad9802813 salesforcedx-vscode-expanded-58.14.2.vsix +e5ae2d82fc6598fa6c1e9f30e279ad66a88d6a2c8d883744c69678e69e445280 salesforcedx-vscode-lightning-58.14.2.vsix +17a5f9bf3a6ace8394a72bcddca671a1edfff28bebde52d5a62beb023ab1b298 salesforcedx-vscode-lwc-58.14.2.vsix +871a4c6f8b2fd19c432017c7f88d017b58819a038cf32d0c3d99519803a7c138 salesforcedx-vscode-soql-58.14.2.vsix +19193c66ebf631f37c08556d850e8d90a1aa277e2d6398cdb60e08e6bbf6c42f salesforcedx-vscode-visualforce-58.14.2.vsix 4. Change the filename extension for the file that you downloaded from .zip to diff --git a/docs/_articles/en/einstein/einstein-apex.md b/docs/_articles/en/einstein/einstein-apex.md new file mode 100644 index 0000000000..d155d4003f --- /dev/null +++ b/docs/_articles/en/einstein/einstein-apex.md @@ -0,0 +1,27 @@ +--- +title: Apex Code Generation +lang: en +--- + +## Generate Apex Code + +Use the Einstein for Developers side bar to write a question or an instruction that describes the task for which you'd like to receive an Apex code suggestion and press **Ask**. Copy the code suggestion you received and paste it into an Apex file to use as "starter" code. + +![Sidebar code generation](../../../images/einstein-sidebar.png) + +## Use the Command Palette to Generate Apex Code + +You can quickly access Einstein for Developers from inside an Apex file in the VS Code editor. + +1. Open an existing Apex (`.cls`) file, or create one from the command palette by running the **SFDX: Create Apex Class** command. +2. Put your cursor on the line in the file where you want the generated code to be placed. +3. From the Command Palette, run **Einstein: Generate Code**. +4. For your query, enter a description of the code that you want to generate. For example, “`Write a method that takes an account as a parameter and returns all contacts associated with that account.`” +5. Review the code that Einstein generates, and then click **Accept**, **Try Again**, or **Clear**. + +Use our example prompts to learn how to get the most out of the generative AI tool. + +**Tip**: To access the **Einstein: Generate Code** command through hotkeys, press Cmd+r (macOS) or Ctrl+r (Windows or Linux). You can customize these shortcuts. See [Keyboard Shortcuts editor](https://code.visualstudio.com/docs/getstarted/keybindings#_keyboard-shortcuts-editor). + + +You can customize these shortcuts. See [Keyboard Shortcuts editor](https://code.visualstudio.com/docs/getstarted/keybindings#_keyboard-shortcuts-editor). diff --git a/docs/_articles/en/einstein/einstein-example-prompts.md b/docs/_articles/en/einstein/einstein-example-prompts.md new file mode 100644 index 0000000000..3e7d4c553f --- /dev/null +++ b/docs/_articles/en/einstein/einstein-example-prompts.md @@ -0,0 +1,148 @@ +--- +title: Example Prompts and Responses +lang: en +--- + +## Generated Code Quality + +As with all LLM-based products, the technology behind Einstein for Developers is still new. The generated output often requires editing to be customized for your individual project. Some responses aren't optimal. We'd love to hear feedback from you on the generated output through the History & Feedback Panel in the IDE. Your feedback is critical to the continuous training of our large language model (LLM) during the beta program. + +We strongly encourage you to let us know when you see examples of less optimal code, so that we can continue to improve generated responses. We recommend tools such as [Apex PMD](https://marketplace.visualstudio.com/items?itemName=chuckjonas.apex-pmd) (already in your Salesforce Extension Pack) and [Salesforce Code Analyzer](https://forcedotcom.github.io/sfdx-scanner/) to ensure the quality of your generated code. + +## Prompt Writing Tips + +Prompt writing is key to quality code generation. Here are some tips for improved prompt writing and a selection of sample prompts to start you on your generative AI code-assistance journey. + +| Original Prompt | Improved Prompt | +| ------------------------------------------------------- | ------------------------------------------------------------------------------ | +| Write Apex code that sorts the list of contacts. | Write Apex code that sorts the list of contacts alphabetically by last name. | +| Write a method that adds two numbers. | Write a method that adds two numbers and returns the result. | +| Write an Apex method that returns fields for an object. | Write an Apex method that accepts an SObject and returns a list of its fields. | + +## Example Prompts and Responses + +**Prompt:** Write an Apex method that accepts a list of sobjects and a field name and returns a set of non null field values. + +**Response:** + +``` +public Set getFieldValues(List records, String fieldName) { + Set fieldValues = new Set(); + + for (sObject record : records) { + try { + Object fieldValue = record.get(fieldName); + if (fieldValue != null) { + fieldValues.add((String) fieldValue); + } + } catch (Exception e) { + system.debug('Error: ' + e.getMessage()); + } + } + return fieldValues; + } + + +``` + +**Prompt:** Create an @invocable method that serializes an input list of sObjects and returns JSON. + +**Response:** + +``` +@InvocableMethod(label='Create Account' description='Creates a new account with the specified name, number and symbol.' category='Account') + public static List createAccounts(List accounts) { + List response = new List(); + + for (Account account : accounts) { + String jsonAccount = JSON.serialize(account); + response.add(jsonAccount); + } + + return response; + } + +``` + +**Prompt:** Write an Apex method that accepts product name as input and retrieves orderitems filtered on product name. + +**Response**: + +``` +public List getOrderItemsByProductName(String productName) { +List orderItems = [SELECT Description FROM OrderItem WHERE ProductCode = :productName LIMIT 50]; +return orderItems; +} + +``` + +**Prompt:** Write an Apex trigger to add the number of contacts associated with an account. + +``` +trigger gptcontacttrigger on Account (after insert, after update) { + List listContacts = new List(); + + for (Account acc : Trigger.new) { + List listaccContacts = [SELECT Id, Name, AccountId FROM Contact WHERE AccountId = :acc.Id]; + if (acc.Contacts.size() < listaccContacts.size()) { + acc.addError('Not enough contacts'); + } + + } +} +``` + +## Edit a Prompt and Regenerate Output + +A well designed prompt is key to getting a good response from Einstein. We encourage you to modify your prompts until you get Apex code that helps you complete your task at hand. When you use the `Einstein: Generate Code` command from the command palette, use the **Retry** and **Accept** options. In the sidebar, edit the prompt and click **Ask**. + +For example, the prompt, "Write code to provide the ability to update the FirstName for a list of users" generates this response. + +``` +public with sharing class AccountService { + public Account createAccount( String accountName, String accountNumber, String tickerSymbol ) { + Account newAcct = new Account( + Name = accountName, + AccountNumber = accountNumber, + TickerSymbol = accountNumber + ); + return newAcct; + } +// Function to update the FirstName for a list of users +public static List updateFirstName(List users, String newFirstName) { + for (User u : users) { + if (String.isNotBlank(u.FirstName)) { + u.FirstName = newFirstName; + } + } + return users; + } +``` + +This response is good, but you can edit the prompt to generate reusable code by creating a method. + +Click **Retry** and edit the prompt for more specific output. Update the prompt to say, "Write code to provide the ability to update the FirstName for a list of users as a method". This is the new response. + +``` +public with sharing class AccountService { + public Account createAccount( String accountName, String accountNumber, String tickerSymbol ) { + Account newAcct = new Account( + Name = accountName, + AccountNumber = accountNumber, + TickerSymbol = accountNumber + ); + return newAcct; + } +} + + //This is a method that allows updating the FirstName for a list of users + public static void updateFirstName(List users) { + for (User usr : users) { + if (usr.FirstName != null) { + usr.FirstName = 'New First Name'; + } + } + } +``` + +If you like this output, click **Accept**. To update your prompt and regenerate new output, click **Retry**. diff --git a/docs/_articles/en/einstein/einstein-faq.md b/docs/_articles/en/einstein/einstein-faq.md new file mode 100644 index 0000000000..17eff930bf --- /dev/null +++ b/docs/_articles/en/einstein/einstein-faq.md @@ -0,0 +1,24 @@ +--- +title: Einstein for Developers FAQ +lang: en +--- + +**What is Einstein for Developers?** + +Einstein for Developers is an AI-assisted tooling that is available as an easy-to-install VS Code extension built using Einstein, the secure, custom AI model from Salesforce. + +**What data has Einstein for Developers been trained on?** + +Einstein for Developers uses our trusted generative AI, CodeGen, to assist you through Salesforce development. CodeGen uses expertise that’s learned from anonymized code patterns. + +**Where can I learn more about Einstein for Developers Privacy and Data Protection?** + +See [Trusted AI from Salesforce](https://www.salesforceairesearch.com/trusted-ai). + +**Will my code ever be shared outside of my development environment?** + +No. Salesforce treats your code as confidential information under your Main Service Agreement (MSA) and doesn't disclose it to other Salesforce customers or anyone outside of Salesforce. Some of your code and entity schema can be used to improve Einstein for Developers and train CodeGen. Due to the nature of machine learning, Einstein for Developers can generate output that resembles code that was used to train the model. + +**I still have some security concerns, what if my code contains proprietary info?** + +Before using any code to label or build models, the research team scrubs all personally identifiable information (PII) and secrets info from the code. This information includes names, company names, phone numbers, address, and hard-coded API tokens. The data is encrypted at rest using customer-managed encryption keys. See [Customer-managed encryption keys (CMEK)](https://cloud.google.com/kms/docs/cmek). We also ensure that only Salesforce employees handle your code, not contractors. diff --git a/docs/_articles/en/einstein/einstein-feedback.md b/docs/_articles/en/einstein/einstein-feedback.md new file mode 100644 index 0000000000..3756c70759 --- /dev/null +++ b/docs/_articles/en/einstein/einstein-feedback.md @@ -0,0 +1,16 @@ +--- +title: Einstein for Developers Feedback and Support +lang: en +--- + +## Feedback + +From the Command Palette run **Einstein: Show Prompt History** to open the Feedback console. Use 👍, 👎and comments for each prompt to provide feedback. To ask questions, request features, and post feedback, use the [Discussions](https://github.com/forcedotcom/Einstein-GPT-for-Developers/discussions) tab. + +## Support + +If you need support, file an [issue](https://github.com/forcedotcom/Einstein-GPT-for-Developers/issues) in the GitHub repo. Our team triages all incoming issues and gets back to you as fast as we can. + +**Note:** You need a github account to create an issue. If you don’t have a GitHub account, it’s easy (and free) to [sign up for one](https://github.com/join?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home). + +If you want to provide general feedback, request product enhancements, start discussions with other Einstein for Developers users or the product team, and share best practices, use the [Einstein for Developers Trailblazer Group](https://trailhead.salesforce.com/trailblazer-community/groups/0F94V000000oRJs?tab=discussion&sort=LAST_MODIFIED_DATE_DESC). diff --git a/docs/_articles/en/einstein/einstein-glossary.md b/docs/_articles/en/einstein/einstein-glossary.md new file mode 100644 index 0000000000..4a89b2b329 --- /dev/null +++ b/docs/_articles/en/einstein/einstein-glossary.md @@ -0,0 +1,25 @@ +--- +title: Einstein for Developers Glossary +lang: en +--- + +This glossary defines generative AI terms that appear throughout the Einstein documentation. + +**generative pre-trained transformer (GPT):** A family of language models developed by OpenAI that are generally trained on a large corpus of text data so they can generate human-like text. + +**grounding:** The process used to inject domain-specific knowledge and customer information into the prompt. +human in the loop (HITL): A model that requires human interaction. + +**intent:** A user’s goal for interacting with the AI assistant. + +**large language model (LLM):** A language model consisting of a neural network with many parameters trained on large quantities of text. + +**prompt:** A natural language description of the task to be done. An input to the LLM. + +**prompt management:** The suite of tools used to build, manage, package, and share prompts, including the prompt templates and the prompt template store. + +**prompt template:** A string with placeholders/tags that can be replaced with custom values to generate a final prompt. The template includes the hyperparameters associated with that prompt and your choice of model/vendor if you're not using default values. + +**prompt chaining:** The method to select the right prompt engineering, which is a break-up of complex tasks into several intermediate steps, and then tie it back together in the hope that the AI generates a more concrete, customized, and thus better result. To get the best prompt, use the “Retry” option to regenerate code. + +**semantic retrieval:** A scenario where a large language model uses all the knowledge that exists in a customer's CRM data. Each CRM user has access to a personalized generative AI. diff --git a/docs/_articles/en/einstein/einstein-overview.md b/docs/_articles/en/einstein/einstein-overview.md new file mode 100644 index 0000000000..ba38a0da62 --- /dev/null +++ b/docs/_articles/en/einstein/einstein-overview.md @@ -0,0 +1,54 @@ +--- +title: Einstein for Developers (Beta) +lang: en +--- + +## Overview + +Quickly generate code suggestions using natural language instructions with Einstein for Developers to enhance developer productivity. Einstein for Developers is an AI-powered developer tool that's available as an easy-to-install Visual Studio Code extension built using CodeGen, the secure, custom AI model from Salesforce. The extension is available in the [VS Code](https://marketplace.visualstudio.com/vscode) and [Open VSX](https://open-vsx.org/) marketplaces. + +Einstein for Developers assists you throughout the Salesforce development process with expertise learned from anonymized code patterns. Our suite of AI-powered developer tools increases productivity and provides helpful assistance for complex coding tasks. We enforce development best practices with code generation and our suite of recommended static analysis and security scanning tools. With boilerplate code generation as its foundation, AI-assisted tooling also makes it easier for new developers to onboard to the Salesforce Platform. + +**Important**: This feature is a Beta Service. A customer may opt to try such Beta Service in its sole discretion. Any use of the Beta Service is subject to the applicable Beta Services Terms provided at [Agreements and Terms](https://www.salesforce.com/company/legal/agreements/). + +## Current Capabilities + +This release of Einstein for Developers focuses on boilerplate Apex code generation from natural language prompts. This feature, used along with IntelliSense, makes Apex development tooling in Visual Studio Code even richer. Familiarity with Visual Studio Code is assumed. + +Use the extension in this release to generate boilerplate code from natural language instructions in a sidebar, so you can work with your editor and the tool side by side, without any interruptions to your workflow. You can also get code suggestions within an existing Apex class, trigger, or anonymous Apex file. Use the VS Code Command Palette to enter a prompt describing what you'd like to build and then generate code suggestions within your editor. + +**Note**: This tool uses generative AI, which can produce inaccurate or harmful responses. The output generated by AI is often nondeterministic. Before using the generated output, review it for accuracy and safety. You assume responsibility for how the outcomes of Einstein are applied to your organization. + +## Trusted Generative AI at Salesforce + +Einstein solutions are designed, developed, and delivered to be compliant with our five principles for trusted generative AI. + +**Accuracy**: We prioritize accuracy, precision, and recall in our models, and we back our model outputs up with explanations and sources whenever possible. We recommend that a human check model output before sharing with end users. + +**Safety:** We work to mitigate bias, toxicity, and harmful outputs in our models using industry-leading techniques. We protect the privacy of personally identifiable information (PII) in our data by adding guardrails around this data. + +**Honesty:** We ensure that the data we use in our models respects data provenance and that we have consent to use the data. + +**Empowerment:** Whenever possible, we design models to include human involvement as part of the workflow. + +**Sustainability:** We strive to build right-sized models that prioritize accuracy and to reduce our carbon footprint. + +Learn more at [Salesforce AI Research: Trusted AI](https://www.salesforceairesearch.com/trusted-ai). + +## The CodeGen Model + +**Important**: Einstein for Developers uses a customized LLM that is based on our open-source CodeGen model. This model that powers Einstein for Developers is the exclusive property of Salesforce. + +### CodeGen 2.5 + +A new member of the growing family of Salesforce CodeGen models, `CodeGen 2.5` shows that a small model, if trained well, can achieve surprisingly good performance. + +Key aspects of the `CodeGen 2.5` model version are: + +- It was released with state-of-the-art on `HumanEval` for 7B parameters. +- At only 7B parameters, its performance is on par with code-generation models (`CodeGen1-16B`, `CodeGen2-16B`, `StarCoder-15B`) with more than 15B parameters. +- It features robust infill sampling, that is, the model can “read” text on both the left and right side of the current cursor position. +- It is optimized for fast sampling under `Flash` attention for serving completions. It is also optimized for local deployment to personal machines. +- `CodeGen2.5` is permissively licensed in `Apache 2.0`. + +See the blog post [CodeGen2.5: Small, but Mighty](https://blog.salesforceairesearch.com/codegen25/). diff --git a/docs/_articles/en/einstein/einstein-setup.md b/docs/_articles/en/einstein/einstein-setup.md new file mode 100644 index 0000000000..5a27fc7660 --- /dev/null +++ b/docs/_articles/en/einstein/einstein-setup.md @@ -0,0 +1,109 @@ +--- +title: Einstein for Developers Setup +lang: en +--- + +## Set Up Overview + +A Salesforce admin or user with the appropriate permissions can enable Einstein for Developers in a supported Salesforce org. A developer with access to the org can then: + +1. Install the extension in VS Code. +2. Connect to an org with Einstein for Developers enabled. +3. Use the extension to generate Apex code from natural language instructions. + +### Required Editions + +**Available in**: Developer, Enterprise, Partner Developer, Performance and Unlimited Editions. + +**Inoperable in**: Group, Professional, and Essentials Editions + +### Required User Permissions + +To configure Einstein for Developers (beta): Customize Application AND Modify All Data + +### Enhanced Domain Enabled +Your Einstein for Developers org must have Enhanced Domain enabled. See [Enable Enhanced Domains](https://help.salesforce.com/s/articleView?id=sf.domain_name_enhanced_enable.htm&type=5) for more information. + +## Enable Einstein for Developers + +When you enable Einstein for Developers in a supported Salesforce org, all users in the org have access to the feature. + +1. From Setup, in the Quick Find box, enter `Einstein for Developers`, and then select **Einstein for Developers**. + +**Tip:** If you don’t see Einstein for Developers as an option under Setup in your Developer Edition org, the org was probably created before Einstein for Developers was introduced, so it doesn’t have the correct permissions. Create another Developer Edition org and then retry this step. + +2. Turn on Einstein for Developers. + +![Einstein Terms and Toggle](../../../images/einstein-terms.png) + +**Important**: We encourage you to thoroughly review the license agreement and review all terms and conditions. Then accept to enable Einstein for Developers. + +Einstein for Developers is activated in the org. + +### Add Users to the Org + +An admin can add additional users to the org as needed: + +1. From Setup, in the Quick Find box, enter `Users`, and then select **Users**. +2. Click **New User** or **Add Multiple Users**. +3. Select the appropriate license type and profile based on the user’s role. +4. Select **Generate passwords and notify user via email**. +5. Click **Save**. + This procedure generates an email inviting the new users into the org. + +### Visual Studio Code Version + +VS Code releases a new version each month with new features and important bug fixes. You must be on VS Code Version 1.76 or higher to run the Einstein for Developers extension. You can manually check for updates from **Help** **> Check for Updates** on Linux and Windows or **Code > Check for Updates** on macOS. + +## Install Einstein for Developers Extensions + +Install Einstein for Developers: + +- If you’re using VS Code on your desktop, install [Einstein for Developers](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-einstein-gpt) from the Visual Studio Code marketplace. + +- If you are using Code Builder, click the Extensions icon in the Activity Bar in Code Builder, search for “Einstein for Developers” and click **Install**. + +**Note**: To use Einstein for Developers locally, you must have the [Salesforce Extensions pack]() installed in your VS Code for desktop application. See [Install Salesforce Extensions](https://developer.salesforce.com/tools/vscode/en/vscode-desktop/install) for more information. + +## Connect to an Org + +The Einstein for Developers tool is run in the context of a Salesforce org, in a Salesforce DX project. To use this tool: + +1. Go to **File** > **Open Folder** in the menu and open an existing Salesforce DX project in VS Code, or create one. + +2. Run the **SFDX: Authorize an Org** command to connect to the Salesforce sandbox org or scratch org that has Einstein for Developers enabled. Pick default options to connect to your org. + +The Einstein logo on the activity bar and in the status bar confirms that the extension is installed. Open the command palette and run `View: Show Einstein Developer Sidebar` to open the sidebar. + +![einstein installed](../../../images/einstein-installed.png) + +### Use Einstein for Developers in a Scratch Org + +Einstein for Developers is only available in scratch org editions that can author Apex: + +- Developer Edition +- Enterprise Edition + +To use Einstein for Developers in a scratch org: + +1. Enable Einstein for Developers in the Dev Hub. +2. Use the `SFDX: Authorize a Dev Hub` command to log into the Dev Hub. +3. Activate Einstein for Developers by turning on the `EinsteinGPTForDevelopers` scratch org feature: + +Edit the `config/project-scratch-def.json` file in your DX project and add the “`EinsteinGPTForDevelopers`” feature to your existing feature list and save your changes. For example: + +``` + { + "orgName": "Acme Company", + "edition": "Developer", + "features":[“Communities”, “ServiceCloud, "EinsteinGPTForDevelopers"] + } +``` + +Create a scratch org using the `SFDX: Create a Default Scratch Org...` command referencing the scratch org definition that you previously updated. + +## Show Einstein Feedback Console View + +Run **Einstein: Show Prompt History** from the Command Palette to open the Feedback console. When opened, you can view a running history of your prompts and associated responses. Use 👍, 👎, and comments for each response to provide us with feedback about the quality of the generated code. Your feedback during this beta is key to helping us improve AI model quality and overall product. + +![feedback panel](../../../images/einstein-feedback.png) diff --git a/docs/_articles/en/einstein/einstein-telemetry.md b/docs/_articles/en/einstein/einstein-telemetry.md new file mode 100644 index 0000000000..a51ecd81b0 --- /dev/null +++ b/docs/_articles/en/einstein/einstein-telemetry.md @@ -0,0 +1,8 @@ +--- +title: Telemetry and Data Collection +lang: en +--- + +Einstein for Developers is currently in beta. During beta, your feedback, prompt, and response data will be used for model training. It is assumed that you are granting Salesforce a perpetual, irrevocable, non-exclusive, worldwide, royalty-free license to use Submitted Code. See our Terms of Use for more information. + +Due to the nature of machine learning, Einstein for Developer can generate output that resembles code used to train the model. Neither you nor Salesforce own output generated for parties other than themselves. diff --git a/docs/_articles/en/einstein/einstein-termsofuse.md b/docs/_articles/en/einstein/einstein-termsofuse.md new file mode 100644 index 0000000000..976977b313 --- /dev/null +++ b/docs/_articles/en/einstein/einstein-termsofuse.md @@ -0,0 +1,22 @@ +--- +title: Additional Terms of Use for the Einstein for Developers Extensions (Beta) +lang: en +--- + +The Einstein for Developers Extensions are beta extensions built using Salesforce’s global CodeGen large language model. The Einstein for Developers Extensions provide generative AI capabilities directly within your standard Salesforce IDE tooling and include, but are not limited to, the following use cases: + +- Code Generation from Natural Language - Ability to describe code logic or objectives in plain English and generate a piece of code using AI; and +- Code Auto-Completion - Intelligent inline code suggestions. + +Use of the Einstein for Developers Extensions is subject to the following additional terms: + +1. “Submitted Code” is defined as (a) prompts submitted to the Einstein for Developers Extensions, and (b) associated code within your project that is used to provide additional context to the model. +2. Submitted Code and any feedback provided to Salesforce should not contain “Personal Data”, defined as any information relating to an identified or identifiable natural person. +3. Salesforce will use Submitted Code and feedback to develop and train the CodeGen model, and you are granting Salesforce a perpetual, irrevocable, non-exclusive, worldwide, royalty-free license to use Submitted Code and feedback for such purposes, and agree that the infrastructure used to process and store Submitted Code and feedback will be provided in part by Amazon Web Services, Inc. in the United States. +4. You will retain ownership of your code, and Salesforce will retain sole ownership of the Einstein for Developers Extensions and CodeGen model. +5. The Einstein for Developers Extensions may generate output that resembles code used to train the model. For the avoidance of doubt, neither you nor Salesforce will own output generated for parties other than themselves. +6. Submitted Code will not be shared with any parties other than Salesforce. +7. No Warranty. THE EINSTEIN FOR DEVELOPERS EXTENSIONS ARE PROVIDED “AS-IS,” EXCLUSIVE OF ANY WARRANTY WHATSOEVER, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE. SALESFORCE DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. The Einstein for Developers Extensions and/or generated code may contain bugs or errors, and their use is at your sole risk. You acknowledge that Salesforce may discontinue the Einstein for Developers Extensions at any time in its sole discretion, and may never make them generally available. +8. No Damages. IN NO EVENT SHALL SALESFORCE HAVE ANY LIABILITY FOR ANY DAMAGES WHATSOEVER, INCLUDING BUT NOT LIMITED TO DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, OR DAMAGES BASED ON LOST PROFITS, DATA, OR USE, HOWEVER CAUSED AND, WHETHER IN CONTRACT, TORT, OR UNDER ANY OTHER THEORY OF LIABILITY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +_Last Updated: August 2023_ diff --git a/docs/_articles/en/einstein/einstein-troubleshoot.md b/docs/_articles/en/einstein/einstein-troubleshoot.md new file mode 100644 index 0000000000..1fa3d48ccd --- /dev/null +++ b/docs/_articles/en/einstein/einstein-troubleshoot.md @@ -0,0 +1,8 @@ +--- +title: Troubleshooting +lang: en +--- + +Generative AI uses large language models (LLMs) to generate the output. Because LLMs are trained by other organizations, the output isn’t always what you expect, and the code that’s generated isn’t perfect. If the output doesn’t meet your expectations, you can generate a new output by starting over. The generated output from the previous attempt isn’t saved, and the new output replaces it. + +We encourage you to provide feedback about the output using the 👍 and 👎 buttons. You can also comment on why the output wasn’t helpful. Thumb responses and additional feedback are shared only with Salesforce and are used for feedback. To keep track of all known issues and potential workarounds, use the [Issues](https://github.com/forcedotcom/Einstein-GPT-for-Developers/issues) tab in this repo. diff --git a/docs/_articles/en/vscode-desktop/install.md b/docs/_articles/en/vscode-desktop/install.md index 5aac342299..907850fe31 100644 --- a/docs/_articles/en/vscode-desktop/install.md +++ b/docs/_articles/en/vscode-desktop/install.md @@ -25,4 +25,4 @@ For information about installing Salesforce CLI, see the _[Salesforce DX Setup G ## Java Platform, Standard Edition Development Kit -Some features in Salesforce Extensions for VS Code depend upon the Java Platform, Standard Edition Development Kit (JDK). You need to have either version 8, 11 or 17 of the JDK installed. See [Java Setup](https://developer.salesforce.com/tools/vscode/en/vscode-desktop/java-setup) for details. +Some features in Salesforce Extensions for VS Code depend upon the Java Platform, Standard Edition Development Kit (JDK). You need to have either version 11 or 17 or later of the JDK installed. See [Java Setup](https://developer.salesforce.com/tools/vscode/en/vscode-desktop/java-setup) for details. diff --git a/docs/_articles/en/vscode-desktop/java-setup.md b/docs/_articles/en/vscode-desktop/java-setup.md index 8bac7209b2..e79040dc51 100644 --- a/docs/_articles/en/vscode-desktop/java-setup.md +++ b/docs/_articles/en/vscode-desktop/java-setup.md @@ -3,7 +3,7 @@ title: Java Setup lang: en --- -The Apex Language Server, shipped as part of the Salesforce Apex Extension for VS Code, depends on the Java Platform, Standard Edition Development Kit (JDK). It requires an installation of either JDK version 17 (Recommended), JDK version 11, or JDK version 8. By default, the extension attempts to locate your local Java installation by looking for a `JAVA_HOME` or `JDK_HOME` environment variable on your computer. If the extension can't find your Java installation, or if you want it to use a different installation, change the `salesforcedx-vscode-apex.java.home` setting. +The Apex Language Server, shipped as part of the Salesforce Apex Extension for VS Code, depends on the Java Platform, Standard Edition Development Kit (JDK). It requires an installation of either JDK version 17 (Recommended), or JDK version 11. By default, the extension attempts to locate your local Java installation by looking for a `JAVA_HOME` or `JDK_HOME` environment variable on your computer. If the extension can't find your Java installation, or if you want it to use a different installation, change the `salesforcedx-vscode-apex.java.home` setting. 1. Select **File** > **Preferences** > **Settings** (Windows or Linux) or **Code** > **Preferences** > **Settings** (macOS). 2. Search for `apex`. @@ -121,28 +121,6 @@ Windows: } ``` -## Oracle Java 8 (Legacy) - -If you are still running Java 8 the values for `salesforcedx-vscode-apex.java.home` are as follows. - -MacOS: - -For Mac OS X 10.5 or later, run `/usr/libexec/java_home` in your Terminal to get the default JDK location. To find all installed JDKs, use `/usr/libexec/java_home -V`. - -```json -{ - "salesforcedx-vscode-apex.java.home": "/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home" -} -``` - -Windows: - -```json -{ - "salesforcedx-vscode-apex.java.home": "C:\\Program Files\\Java\\jdk1.8.0_131" -} -``` - ## Advanced Setup By default, a JVM allocates up to one fourth of the system's physical memory to the Apex Language Server process. If you are working on projects with more memory requirements, use the `salesforcedx-vscode-apex.java.memory` setting to override the defaults. Use this setting to specify the maximum size of memory allocation in megabytes and in multiples of 1024. diff --git a/docs/_articles/en/vscode-desktop/recommended-extensions.md b/docs/_articles/en/vscode-desktop/recommended-extensions.md index 6864b4be5f..e954bdb884 100644 --- a/docs/_articles/en/vscode-desktop/recommended-extensions.md +++ b/docs/_articles/en/vscode-desktop/recommended-extensions.md @@ -3,42 +3,45 @@ title: Other Recommended Extensions lang: en --- -# Extensions We Recommend +## Extensions We Recommend + In addition to the extension pack shipped by Salesforce, the following extensions are useful for Salesforce developers. We also package the Extension pack with some of the most-used community extensions in the [expanded extension pack](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-expanded). -> **_NOTE:_** Code Builder comes with pre-installed extensions, this list is not of relevance if Code Builder is your development environment of choice. + + +## Salesforce Code Analyzer(Beta) + +Use Salesforce Code Analyzer extension to identify and fix issues in your code. See the [Salesforce Code Analyzer documentation](https://forcedotcom.github.io/sfdx-scanner/en/v3.x/code-analyzer-vs-code-extension). + +Install Code Analyzer ## Apex PMD Allows you to run Apex static analysis directly in VS Code on Apex and Visualforce files. - Install Apex PMD ## Apex Log Analyzer An analyzer for Salesforce debug logs aimed at making performance analysis much easier and quicker. It's also useful for quickly understanding how your code is executing. - Install Apex Log Analyzer ## Prettier Keeping your code consistent and nicely formatted is important in any programming language. Prettier supports formatting for many files used by Salesforce developers, such as JavaScript and CSS files. - Install Prettier - Prettier also supports Apex formatting through the Apex Prettier Plugin. ## ESLint Analyzes your JavaScript code to find issues and to help you fix them. As a part of the LWC extension, Salesforce provides specific ESLint rules and you can also add your own. These preconfigured rules help you to write high quality code. - Install ESLint + ## XML VS Code doesn’t ship with rich XML tools by default. This extension, built by Red Hat, provides language support for XML documents such as the `-meta.xml` or `package.xml` files in your VS Code project. @@ -50,4 +53,5 @@ VS Code doesn’t ship with rich XML tools by default. This extension, built by The community has developed several extensions to help make Salesforce development more productive. To find these, search the [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/vscode) or browse all extensions tagged [Salesforce](https://marketplace.visualstudio.com/search?term=tag%3Asalesforce&target=VSCode&category=All%20categories&sortBy=Relevance). ## Debugger for Java + Java Debugger based on Java Debug Server that extends the Language Support for Java by Red Hat. It allows you to debug Java code in VSCode. Install this extension to invoke and debug Java functions. diff --git a/docs/_articles/ja/einstein/einstein-apex.md b/docs/_articles/ja/einstein/einstein-apex.md new file mode 100644 index 0000000000..88933295bb --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-apex.md @@ -0,0 +1,29 @@ +--- +title: Apex Code Generation with Einstein for Developers +lang: en +--- + +## Generate Apex Code + +Use the Einstein for Developers side bar to write a question or an instruction that describes the task for which you'd like a receive an Apex code suggestion and press **Ask**. Copy the code suggestion you receive and paste it into an Apex file to use it as a "starter" code. + +![Side bar code generation](../../../images/einstein-sidebar.png) + +## Generate Apex Code Using a Command Palette Command + +To quickly access Einstein for Developers from inside an Apex file in the VS Code Editor: + +1. Open an existing Apex (`.cls`) file, or create one from the command palette by running the **SFDX: Create Apex Class** command. You can also use the Org Browser to retrieve an Apex class from your org. +2. Place your cursor on the line in the file where you want the generated code to be placed. +3. From the Command Palette, run **Einstein: Generate Code**. +4. For your query, enter text that describes the code that you want to generate. For example, “_Write a method that takes an account as a parameter and returns all contacts associated with that account_.” +5. **Accept**, **Try Again**, or **Clear** the code that Einstein generates. + +Use our example prompts to exercise your code generation muscle and learn how to get the most out of the generative AI tool. + +**Note**: You can also access the **Einstein: Generate Code** command through hotkeys. Keyboard shortcuts are the following across environments: + +- macOS - **Cmd+R** +- Windows & Linux - **Ctrl+R** + +You may also customize these shortcuts. See [Keyboard Shortcuts editor](https://code.visualstudio.com/docs/getstarted/keybindings#_keyboard-shortcuts-editor) for more info. diff --git a/docs/_articles/ja/einstein/einstein-example-prompts.md b/docs/_articles/ja/einstein/einstein-example-prompts.md new file mode 100644 index 0000000000..b615ae16fc --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-example-prompts.md @@ -0,0 +1,150 @@ +--- +title: Example Prompts and Responses +lang: en +--- + +## Example Prompts and Responses + +Prompt writing is key to quality code generation. Here’s some tips for improved prompt writing and a selection of sample prompts to start you on your generative AI code assistance journey. + +| Original Prompt | Improved Prompt | +| ------------------------------------------------------- | ------------------------------------------------------------------------------ | +| Write Apex code that sorts the list of contacts. | Write Apex code that sorts the list of contacts alphabetically by last name. | +| Write a method that adds two numbers. | Write a method that adds two numbers and returns the result. | +| Write an apex method that returns fields for an object. | Write an apex method that accepts an SObject and returns a list of its fields. | + +
+ +**Prompt:** Write an apex method that accepts a List of sObjects and a field name and returns a Set of non null field values. + +**Response:** + +``` +public Set getFieldValues(List records, String fieldName) { + Set fieldValues = new Set(); + + for (sObject record : records) { + try { + Object fieldValue = record.get(fieldName); + if (fieldValue != null) { + fieldValues.add((String) fieldValue); + } + } catch (Exception e) { + system.debug('Error: ' + e.getMessage()); + } + } + return fieldValues; + } + + +``` + +**Prompt:** Create an @invocable method that serializes an input list of sObjects and returns JSON. + +**Response:** + +``` +@InvocableMethod(label='Create Account' description='Creates a new account with the specified name, number and symbol.' category='Account') + public static List createAccounts(List accounts) { + List response = new List(); + + for (Account account : accounts) { + String jsonAccount = JSON.serialize(account); + response.add(jsonAccount); + } + + return response; + } + +``` + +**Prompt:** Write an apex method that accepts product name as input and retrieves orderitems filtered on product name. + +**Response**: + +``` +public List getOrderItemsByProductName(String productName) { +List orderItems = [SELECT Description FROM OrderItem WHERE ProductCode = :productName LIMIT 50]; +return orderItems; +} + +``` + +**Prompt:** Write an Apex trigger to add the number of contacts associated with an account. + +``` +trigger gptcontacttrigger on Account (after insert, after update) { + List listContacts = new List(); + + for (Account acc : Trigger.new) { + List listaccContacts = [SELECT Id, Name, AccountId FROM Contact WHERE AccountId = :acc.Id]; + if (acc.Contacts.size() < listaccContacts.size()) { + acc.addError('Not enough contacts'); + } + + } +} +``` + +## Edit a Prompt and Regenerate Output + +A well designed prompt is key to getting a good response from Einstein. We encourage you to modify your prompts until you get Apex code that helps you complete your task at hand. For example, the prompt, "_Write code to provide the ability to update the FirstName for a list of users_" generates the following response: + +``` +public with sharing class AccountService { + public Account createAccount( String accountName, String accountNumber, String tickerSymbol ) { + Account newAcct = new Account( + Name = accountName, + AccountNumber = accountNumber, + TickerSymbol = accountNumber + ); + return newAcct; + } +``` + +``` +// Function to update the FirstName for a list of users +public static List updateFirstName(List users, String newFirstName) { + for (User u : users) { + if (String.isNotBlank(u.FirstName)) { + u.FirstName = newFirstName; + } + } + return users; + } +``` + +This response is good, but you can make an edit to generate reusable code by creating a method. + +Click **Retry** and edit the prompt for a more specific output. Update the prompt to say, "_Write code to provide the ability to update the FirstName for a list of users as a method_". The new response is – + +``` +public with sharing class AccountService { + public Account createAccount( String accountName, String accountNumber, String tickerSymbol ) { + Account newAcct = new Account( + Name = accountName, + AccountNumber = accountNumber, + TickerSymbol = accountNumber + ); + return newAcct; + } +``` + +``` + //This is a method that allows updating the FirstName for a list of users + public static void updateFirstName(List users) { + for (User usr : users) { + if (usr.FirstName != null) { + usr.FirstName = 'New First Name'; + } + } + } +``` + +Click **Accept** if you like this output or **Retry** again to update your prompt and regenerate a new output. + +## Generated Code Quality Feedback + +As with all LLM-based products, the technology behind this product is still new. The generated output will often require editing to be customized for your individual project and responses may not be optimal. We'd love to hear feedback from you on the generated output through the History & Feedback Panel in the IDE - your feedback will be critical to the continuous training of our large language model (LLM) during the beta program. + +We strongly encourage you to let us know when you see examples of less optimal code, so that we can continue to improve generated responses. Please use tools such as [Apex PMD](https://marketplace.visualstudio.com/items?itemName=chuckjonas.apex-pmd) (already in your Salesforce Extension Pack) and [Salesforce Code Analyzer](https://forcedotcom.github.io/sfdx-scanner/) to ensure the quality of your generated code. diff --git a/docs/_articles/ja/einstein/einstein-faq.md b/docs/_articles/ja/einstein/einstein-faq.md new file mode 100644 index 0000000000..3d946100b3 --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-faq.md @@ -0,0 +1,24 @@ +--- +title: Einstein for Developers FAQ +lang: en +--- + +**What is Einstein for Developers?** + +Einstein for Developers is an AI-assisted tooling that is available as an easy-to-install VS Code extension built using Einstein, Salesforce’s secure, custom AI model. + +**What data has Einstein for Developers been trained on?** + +Einstein for Developers uses Salesforce’s trusted generative AI, CodeGen, to assist you through Salesforce development. CodeGen uses expertise that’s learned from anonymized code patterns. + +**Where can I learn more about Einstein for Developers Privacy and Data Protection?** + +See [Salesforce’s Trusted AI](https://www.salesforceairesearch.com/trusted-ai). + +**Will my code ever be shared outside of my development environment?** + +In short, no! Salesforce treats your code as confidential information under your Main Service Agreement (MSA) and doesn't disclose it to other Salesforce customers or anyone outside of Salesforce. Your code and entity schema may be used to improve Einstein for Developers and train CodeGen. Due to the nature of machine learning, Einstein for Developers can generate output that resembles code that was used to train the model. + +**I still have some security concerns, what if my code contains proprietary info?** + +Before using any code to label or build models, the research team scrubs all personally identifiable information (PII) and secrets info from the code. This information includes names, company names, phone numbers, address, and hard-coded API tokens. The data is encrypted at rest using customer-managed encryption keys. For more information see [Customer-managed encryption keys (CMEK)](https://cloud.google.com/kms/docs/cmek). We also ensure that only Salesforce employees handle your code, and not contractors. diff --git a/docs/_articles/ja/einstein/einstein-feedback.md b/docs/_articles/ja/einstein/einstein-feedback.md new file mode 100644 index 0000000000..1ef65c314c --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-feedback.md @@ -0,0 +1,14 @@ +--- +title: Einstein for Developers Feedback and Support +lang: en +--- + +## Feedback + +From the Command Palette run **Einstein: Show Prompt History** to open the Feedback console. Use 👍, 👎and comments for each prompt to provide feedback during this pilot. To ask questions, request features, and post feedback, use the [Discussions](https://github.com/forcedotcom/Einstein-GPT-for-Developers/discussions) tab. + +## Support + +If you need support during the pilot, file an [issue](https://github.com/forcedotcom/Einstein-GPT-for-Developers/issues) in the GitHub repo. Our team triages all incoming pilot issues and gets back to you as fast as we can. + +**Note:** You need a github account to create an issue. If you don’t have a GitHub account, it’s easy (and free) to [sign up for one](https://github.com/join?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home). diff --git a/docs/_articles/ja/einstein/einstein-glossary.md b/docs/_articles/ja/einstein/einstein-glossary.md new file mode 100644 index 0000000000..a2b06c1c50 --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-glossary.md @@ -0,0 +1,25 @@ +--- +title: Einstein for Developers Glossary +lang: en +--- + +Here’s a list of some commonly used generative AI terms in context of our tooling. + +**Generative Pre-Trained Transformer (GPT):** A family of language models developed by OpenAI generally trained on a large corpus of text data such that they can generate human-like text. + +**Grounding:** The process through which domain-specific knowledge and customer information is injected into the prompt. +Human In the Loop (HITL): a model that requires human interaction. + +**Intent:** A user’s goal for interacting with the AI-Assistant. + +**Large Language Model (LLM):** A language model consisting of a neural network with many parameters trained on large quantities of text. + +**Prompt:** A natural language description of the task to be accomplished. An input to the LLM. + +**Prompt Management:** The suite of tools used to build, manage, package, and share prompts, including the prompt templates and the prompt template store. + +**Prompt Template:** A string with placeholders/tags that can be replaced with custom values to generate a final prompt. The template includes the hyperparameters associated with that prompt, and model/vendor choice if not using default values. + +**Prompt Chaining:** The method to select the right prompt engineering, which is a break-up of complex tasks into several intermediate steps, and then tie it back together in the hope that the AI generates a more concrete, customized, and thus better result. To get the best prompt in this pilot, use the “Retry” option to regenerate code. + +**Semantic Retrieval:** A scenario that allows a large language model to utilize all the knowledge that exists in a customer's CRM data. Each CRM user has access to a personalized generative AI. diff --git a/docs/_articles/ja/einstein/einstein-overview.md b/docs/_articles/ja/einstein/einstein-overview.md new file mode 100644 index 0000000000..aecffa5b4b --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-overview.md @@ -0,0 +1,44 @@ +--- +title: Einstein for Developers Overview +lang: en +--- + +Einstein for Developers is an AI-powered developer tool that is available as an easy-to-install VS Code extension built using CodeGen, Salesforce’s secure, custom AI model. Use the tool to enhance developer productivity by quickly generating code using natural language instructions. + +Einstein for Developers assists you throughout the Salesforce development process with expertise learned from anonymized code patterns. The goal of our suite of AI-powered developer tools are to increase productivity and provide helpful assistance for complex coding tasks. We enforce development best practices with our code generation and just-in-time code completion features eventually. AI-assisted tooling will also make it easier for new developers to onboard to the Salesforce Platform. + +## Current Capabilities + +The beta focuses on natural language to Apex code generation. This feature, used along with IntelliSense, makes Apex development tooling in Visual Studio Code even richer. Familiarity with Visual Studio Code is assumed. + +Currently, the Einstein for Devs extension can: + +- Generate code from natural language instructions within an existing Apex class, trigger, or anonymous Apex file. A new command in the VS Code Command Palette, `Einstein: Generate Code`, lets you enter in a prompt describing what you'd like to build and then generate Apex code within your editor. +- Sidebar stuff here. + +At this time, the tool does not: + +- Create _new_ Apex class files through natural language prompts. Apex files must already be created to trigger the command. +- Take into account any metadata (or context) from your local project or Salesforce org. Generated code is determined by your prompt only. + +We plan to follow up with inline code completion and LWC code generation in the coming months. + +## About Trusted Generative AI at Salesforce + +Salesforce’s Einstein solutions are designed, developed, and delivered based on five principles for trusted generative AI. + +**Accuracy**: We prioritize accuracy, precision, and recall in our models, and we back our model outputs up with explanations and sources whenever possible. We recommend that a human check model output before sharing with end users. + +**Safety:** We work to mitigate bias, toxicity, and harmful outputs in our models using industry-leading techniques. We protect the privacy of personally identifiable information (PII) in our data by adding guardrails around this data. + +**Honesty:** We ensure that the data we use in our models respects data provenance and we that have consent to use the data. + +**Empowerment:** Whenever possible, we design models to include human involvement as part of the workflow. + +**Sustainability:** We strive to build right-sized models that prioritize accuracy and to reduce our carbon footprint. + +Learn more at [Salesforce AI Research: Trusted AI](https://www.salesforceairesearch.com/trusted-ai). + +## About the CodeGen Model + +CodeGen is a powerful language model capable of generating text and code. The release of CodeGen 1.0 as an open-source project in 2022 could generate code in six different programming languages. Since then, the CodeGen model, integrated into Einstein for Developers and Einstein Flow, has been re-trained and fine-tuned to address specific Salesforce use cases, including Apex and LWC. This refinement significantly enhances the model’s ability to customize and tailor Salesforce solutions. diff --git a/docs/_articles/ja/einstein/einstein-setup.md b/docs/_articles/ja/einstein/einstein-setup.md new file mode 100644 index 0000000000..acd5f4e70f --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-setup.md @@ -0,0 +1,88 @@ +--- +title: Einstein for Developers(beta) Setup +lang: en +--- + +## Set Up Overview + +A Salesforce admin or user with the appropriate permissions can install Einstein for Developers. + +### Required Salesforce Editions and User Permissions + +**Available in**: Developer, Enterprise, Partner Developer, Performance and Unlimited Editions. + +**Inoperable in**: Group, Professional and Essentials Editions + +### User Permissions Needed + +**Configure Einstein for Developers(beta)**: `CustomizeApplication` and `ModifyAllData` + +## Enable Einstein for Developers(beta) + +An Admin can enable (Einstein for Developers(beta) in a supported Salesforce org. + +1. From Setup, enter Einstein for Developers in the Quick Find box, then select Einstein for Developers. If you don’t see Einstein for Developers as an option under Setup in your Developer Edition org, it was likely created before Einstein for Developers was introduced and doesn’t have the correct permissions. To continue, create another Developer Edition org. +2. Enable Einstein for Developers, and then review and accept the license agreement. + Einstein for Developers(beta) is activated in the org and all the users in the org have access to the feature. + +An admin can add additional users to the org as needed: + +1. From Setup, enter Users in the Quick Find box, then select **Users**. +2. Click **New User** or **Add Multiple Users**. +3. Select the appropriate license type and profile based on the user’s role. +4. Select the **Generate passwords and notify user via email** checkbox. +5. Click **Save**. + This procedure generates an email inviting the new users into the org. + +### Visual Studio Code Version + +VS Code releases a new version each month with new features and important bug fixes. You must be on VS Code Version 1.76 or higher to run the Einstein for Developers extension. You can manually check for updates from **Help** **> Check for Updates** on Linux and Windows or **Code > Check for Updates** on macOS. + +## Install Einstein for Developers Extensions + +First install Salesforce Extensions and Salesforce CLI on your desktop to use Einstein for Developers(beta) locally. + +Install the Salesforce Extensions + +Then install Einstein for Developers(beta)from the VS Code marketplace. + +Install Einstein for Developers(beta) + +Open a Salesforce DX project in VS Code. A sidebar panel opens and the Einstein logo on the activity bar confirms that the extension is installed. + +![einstein installed](../../../images/einstein-sidebar.png) + +## Connect to an Org + +The Einstein for Developers(beta) tool is run in the context of a Salesforce org, in Salesforce DX project. To use this tool: + +1. Go to **File** > **Open Folder** in the menu and open an existing Salesforce DX project in VS Code, or create a new one. + +2. Run the **SFDX: Authorize an Org** command to connect to the Salesforce sandbox org or scratch org that has Einstein for Developers(beta) enabled. + +### Use Einstein for Developers(beta) in a Scratch Org + +Einstein for Developers(beta)is only available in scratch org editions that can author Apex: + +- Developer Edition +- Enterprise Edition + +Activate Einstein for Developers(beta) by turning on an add-on scratch org feature. + +Edit and save the `config/project-scratch-def.json` file in your DX project to add the “`EinsteinGPTForDevelopers`” feature to your existing feature list. + +For example: + +``` +{ +"orgName": "Acme Company", +"edition": "Developer", +"features":[“Communities”, “ServiceCloud, "EinsteinGPTForDevelopers"] +} +``` + +## Show Einstein Feedback Console View + +Run **Einstein: Show Prompt History** from the Command Palette to open the Feedback console. When opened, you can view a running history of your prompts and associated responses. Use 👍, 👎, and comments for each response to provide us feedback about the quality of the generated code. Your feedback during this beta is key to helping us improve AI model quality and overall product. + +![feedback panel](../../../images/einstein-feedback.png) diff --git a/docs/_articles/ja/einstein/einstein-telemetry.md b/docs/_articles/ja/einstein/einstein-telemetry.md new file mode 100644 index 0000000000..9000f7d7c5 --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-telemetry.md @@ -0,0 +1,7 @@ +--- +title: Telemetry and Data Collection +lang: en +--- + +Einstein GPT for Developers is current in beta. +Due to the nature of machine learning, Einstein for Developer can generate output that resembles code used to train the model. Neither you nor Salesforce own output generated for parties other than themselves. diff --git a/docs/_articles/ja/einstein/einstein-termsofuse.md b/docs/_articles/ja/einstein/einstein-termsofuse.md new file mode 100644 index 0000000000..ce2a0f4733 --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-termsofuse.md @@ -0,0 +1,27 @@ +--- +title: Additional Terms of Use for the Einstein for Developers Extension +lang: en +--- + +The Salesforce Extensions for Visual Studio Code include a set of extensions built using Salesforce’s LLM Gateway and CodeGen global model (the “Einstein for Developers Extensions”). The Einstein for Developers Extensions provide generative AI capabilities directly within your standard Salesforce IDE tooling and include, but are not limited to, the following use cases: + +- Code Auto-Completion - Intelligent inline code suggestions; and +- Code Generation from Natural Language - Ability to describe code logic or objectives in plain English and generate a piece of code using AI. + +Use of the Einstein for Developers Extensions is subject to the following additional terms: + +1. “Submitted Code” is defined as (a) prompts submitted to the Einstein for Developers Extensions, (b) response code generated by the Einstein for Developers Extensions, and (c) feedback and associated code within your project that are used to provide additional context to the model (i.e., grounding). + +2. Salesforce will use Submitted Code to develop and train the CodeGen global model, and you are granting Salesforce a license to use Submitted Code for such purposes. + +3. You will retain ownership of your Submitted Code, and Salesforce will retain sole ownership of the Einstein for Developers Extensions, LLM Gateway, and CodeGen global model. + +4. The Einstein for Developers Extensions may generate output that resembles code used to train the model. For the avoidance of doubt, neither you nor Salesforce will own output generated for parties other than themselves. + +5. Submitted Code will not be shared with any parties other than Salesforce. + +6. **No Warranty**. THE EINSTEIN FOR DEVELOPERS EXTENSIONS ARE PROVIDED “AS-IS,” EXCLUSIVE OF ANY WARRANTY WHATSOEVER, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE. SALESFORCE DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. The Einstein for Developers Extensions and/or generated code may contain bugs or errors, and their use is at your sole risk. You acknowledge that Salesforce may discontinue the Einstein for Developers Extensions at any time in its sole discretion, and may never make them generally available. + +7. **No Damages**. IN NO EVENT SHALL SALESFORCE HAVE ANY LIABILITY FOR ANY DAMAGES WHATSOEVER, INCLUDING BUT NOT LIMITED TO DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, OR DAMAGES BASED ON LOST PROFITS, DATA, OR USE, HOWEVER CAUSED AND, WHETHER IN CONTRACT, TORT, OR UNDER ANY OTHER THEORY OF LIABILITY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +_Last Updated: June 2023 _ diff --git a/docs/_articles/ja/einstein/einstein-troubleshoot.md b/docs/_articles/ja/einstein/einstein-troubleshoot.md new file mode 100644 index 0000000000..53d4ded806 --- /dev/null +++ b/docs/_articles/ja/einstein/einstein-troubleshoot.md @@ -0,0 +1,8 @@ +--- +title: Troubleshooting +lang: en +--- + +Generative AI uses large language models (LLMs) to generate the output. Because LLMs are trained by other organizations, the output isn’t always what you expect, and the code that’s generated isn’t perfect. If the output doesn’t meet your expectations, you can generate a new output by starting over. The generated output from the previous attempt isn’t saved, and the new output replaces it. + +We encourage you to provide feedback about the output using the 👍 and 👎 buttons. You can also comment on why the output wasn’t helpful. Thumb responses and additional feedback are shared only with Salesforce and are used for pilot feedback. To keep track of all known issues and potential workarounds, use the [Issues](https://github.com/forcedotcom/Einstein-GPT-for-Developers/issues) tab in this repo. diff --git a/docs/_data/sidebar.yml b/docs/_data/sidebar.yml index 3dd81c27e9..e9828a4c23 100644 --- a/docs/_data/sidebar.yml +++ b/docs/_data/sidebar.yml @@ -23,6 +23,51 @@ en: Tips & Tricks ja: ヒントとコツ url: /vscode-desktop/tips-and-tricks +- title: + en: Einstein for Developers (Beta) + ja: Einstein for Developers (Beta) + baseUrl: /einstein/ + children: + - title: + en: Einstein for Developers Overview + ja: Einstein for Developers Overview + url: /einstein/einstein-overview + - title: + en: Set Up Einstein for Developers + ja: Set Up Einstein for Developers + url: /einstein/einstein-setup + - title: + en: Use Einstein for Apex Programming + ja: Use Einstein for Apex Programming + url: /einstein/einstein-apex + - title: + en: Example Prompts and Responses + ja: Example Prompts and Responses + url: /einstein/einstein-example-prompts + - title: + en: Troubleshooting + ja: Troubleshooting + url: /einstein/einstein-troubleshoot + - title: + en: Feedback and Support + ja: Feedback and Support + url: /einstein/einstein-feedback + - title: + en: FAQ + ja: FAQ + url: /einstein/einstein-faq + - title: + en: Glossary + ja: Glossary + url: /einstein/einstein-glossary + - title: + en: Telemetry and Data Collection + ja: Telemetry and Data Collection + url: /einstein/einstein-telemetry + - title: + en: Terms of Use + ja: Terms of Use + url: /einstein/einstein-termsofuse - title: en: Code Builder (Beta) ja: コードビルダー(ベータ版) diff --git a/docs/images/einstein-feedback.png b/docs/images/einstein-feedback.png new file mode 100644 index 0000000000..1185da0bc7 Binary files /dev/null and b/docs/images/einstein-feedback.png differ diff --git a/docs/images/einstein-installed.png b/docs/images/einstein-installed.png new file mode 100644 index 0000000000..b5d5e0d39b Binary files /dev/null and b/docs/images/einstein-installed.png differ diff --git a/docs/images/einstein-sidebar.png b/docs/images/einstein-sidebar.png new file mode 100644 index 0000000000..00d614d31e Binary files /dev/null and b/docs/images/einstein-sidebar.png differ diff --git a/docs/images/einstein-terms.png b/docs/images/einstein-terms.png new file mode 100644 index 0000000000..85c80666ee Binary files /dev/null and b/docs/images/einstein-terms.png differ diff --git a/docs/images/einstein_installed.png b/docs/images/einstein_installed.png new file mode 100644 index 0000000000..ccce39d386 Binary files /dev/null and b/docs/images/einstein_installed.png differ diff --git a/docs/package.json b/docs/package.json index d5a7865fbd..7de275a1b3 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "docs", - "version": "58.14.1", + "version": "58.14.2", "description": "", "main": "index.js", "scripts": { diff --git a/lerna.json b/lerna.json index bab0b86566..8e91f10dc2 100644 --- a/lerna.json +++ b/lerna.json @@ -3,7 +3,7 @@ "docs", "packages/*" ], - "version": "58.14.1", + "version": "58.14.2", "command": { "version": { "allowBranch": [ diff --git a/package-lock.json b/package-lock.json index bd33af0744..63d8bf55bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39185,10 +39185,10 @@ }, "packages/salesforcedx-apex-debugger": { "name": "@salesforce/salesforcedx-apex-debugger", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { - "@salesforce/salesforcedx-utils": "58.14.1", + "@salesforce/salesforcedx-utils": "58.14.2", "async-lock": "1.0.0", "faye": "1.1.2", "request-light": "^0.7.0", @@ -39196,7 +39196,7 @@ "vscode-debugprotocol": "1.28.0" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/async-lock": "0.0.20", "@types/chai": "4.3.3", "@types/jest": "28.1.7", @@ -39232,10 +39232,10 @@ }, "packages/salesforcedx-apex-replay-debugger": { "name": "@salesforce/salesforcedx-apex-replay-debugger", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { - "@salesforce/salesforcedx-utils": "58.14.1", + "@salesforce/salesforcedx-utils": "58.14.2", "vscode-debugadapter": "1.28.0", "vscode-debugprotocol": "1.28.0", "vscode-uri": "1.0.1" @@ -39281,11 +39281,11 @@ }, "packages/salesforcedx-sobjects-faux-generator": { "name": "@salesforce/salesforcedx-sobjects-faux-generator", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "jsforce": "2.0.0-beta.27", "shelljs": "0.8.5" }, @@ -39332,10 +39332,10 @@ }, "packages/salesforcedx-test-utils-vscode": { "name": "@salesforce/salesforcedx-test-utils-vscode", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "shelljs": "0.8.5" }, "devDependencies": { @@ -39386,7 +39386,7 @@ }, "packages/salesforcedx-utils": { "name": "@salesforce/salesforcedx-utils", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "cross-spawn": "7.0.3", @@ -39406,7 +39406,7 @@ }, "packages/salesforcedx-utils-vscode": { "name": "@salesforce/salesforcedx-utils-vscode", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@salesforce/core": "4.3.11", @@ -39813,10 +39813,10 @@ }, "packages/salesforcedx-visualforce-language-server": { "name": "@salesforce/salesforcedx-visualforce-language-server", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { - "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.1", + "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.2", "typescript": "^4.7.4", "vscode-css-languageservice": "2.1.9", "vscode-languageserver": "5.2.1", @@ -39846,7 +39846,7 @@ }, "packages/salesforcedx-visualforce-markup-language-server": { "name": "@salesforce/salesforcedx-visualforce-markup-language-server", - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "vscode-languageserver-types": "3.4.0", @@ -39887,20 +39887,20 @@ "integrity": "sha512-nB56YeA3cStjwWT2WJJUifWh3e4FxEwN4aIr3EKV3DOt6WPSrBAtotKJhvoOrCcqsHDZofNy6gg9d1KvsqbdhA==" }, "packages/salesforcedx-vscode": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "engines": { "vscode": "^1.61.2" } }, "packages/salesforcedx-vscode-apex": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@salesforce/apex-node": "1.6.2", "@salesforce/apex-tmlanguage": "1.4.0", "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@salesforce/source-deploy-retrieve": "9.7.0", "expand-home-dir": "0.0.3", "find-java-home": "0.2.0", @@ -39910,7 +39910,7 @@ "vscode-languageclient": "5.1.1" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@salesforce/ts-sinon": "1.4.0", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", @@ -39932,16 +39932,16 @@ } }, "packages/salesforcedx-vscode-apex-debugger": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { - "@salesforce/salesforcedx-apex-debugger": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-apex-debugger": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "vscode-debugprotocol": "1.28.0", "vscode-extension-telemetry": "0.0.17" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mocha": "^5", "@types/node": "12.0.12", @@ -39963,21 +39963,21 @@ "dev": true }, "packages/salesforcedx-vscode-apex-replay-debugger": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@salesforce/apex-node": "1.6.2", "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-apex-replay-debugger": "58.14.1", - "@salesforce/salesforcedx-utils": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-apex-replay-debugger": "58.14.2", + "@salesforce/salesforcedx-utils": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "async-lock": "1.0.0", "path-exists": "3.0.0", "request-light": "^0.7.0", "vscode-extension-telemetry": "0.0.17" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@salesforce/ts-sinon": "1.4.0", "@types/async-lock": "0.0.20", "@types/chai": "4.3.3", @@ -40019,13 +40019,13 @@ } }, "packages/salesforcedx-vscode-core": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@heroku/functions-core": "0.7.0", "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@salesforce/schemas": "^1", "@salesforce/source-deploy-retrieve": "9.7.0", "@salesforce/templates": "^58.0.1", @@ -40039,7 +40039,7 @@ "shelljs": "0.8.5" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@salesforce/ts-sinon": "^1.0.0", "@types/adm-zip": "^0.5.0", "@types/chai": "4.3.3", @@ -40129,26 +40129,26 @@ } }, "packages/salesforcedx-vscode-expanded": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "engines": { "vscode": "^1.61.2" } }, "packages/salesforcedx-vscode-lightning": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@salesforce/aura-language-server": "4.7.0", "@salesforce/core": "4.3.11", "@salesforce/lightning-lsp-common": "4.7.0", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "applicationinsights": "1.0.7", "vscode-extension-telemetry": "0.0.17", "vscode-languageclient": "^5.2.1" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", "@types/mocha": "^5", @@ -40204,14 +40204,14 @@ } }, "packages/salesforcedx-vscode-lwc": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@salesforce/core": "4.3.11", "@salesforce/eslint-config-lwc": "3.3.3", "@salesforce/lightning-lsp-common": "4.7.0", "@salesforce/lwc-language-server": "4.7.0", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "ajv": "6.12.6", "applicationinsights": "1.0.7", "eslint": "7.7.0", @@ -40224,7 +40224,7 @@ "vscode-languageclient": "^5.2.1" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", "@types/mocha": "^5", @@ -40289,7 +40289,7 @@ "dev": true }, "packages/salesforcedx-vscode-soql": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { "@salesforce/apex-tmlanguage": "1.6.0", @@ -40301,9 +40301,9 @@ "jsforce": "2.0.0-beta.27" }, "devDependencies": { - "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.1", - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.2", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@salesforce/soql-common": "0.2.1", "@salesforce/ts-sinon": "1.4.0", "@salesforce/ts-types": "1.5.13", @@ -40445,18 +40445,18 @@ "dev": true }, "packages/salesforcedx-vscode-visualforce": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "dependencies": { - "@salesforce/salesforcedx-visualforce-language-server": "58.14.1", - "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.1", + "@salesforce/salesforcedx-visualforce-language-server": "58.14.2", + "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.2", "vscode-extension-telemetry": "0.0.17", "vscode-languageclient": "5.2.1", "vscode-languageserver-protocol": "3.14.1", "vscode-languageserver-types": "3.14.0" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mocha": "^5", "@types/node": "12.0.12", @@ -40499,11 +40499,11 @@ } }, "packages/system-tests": { - "version": "58.14.1", + "version": "58.14.2", "license": "BSD-3-Clause", "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", "@types/mocha": "^5", diff --git a/packages/salesforcedx-apex-debugger/package.json b/packages/salesforcedx-apex-debugger/package.json index 9885c55937..8bddc1836b 100644 --- a/packages/salesforcedx-apex-debugger/package.json +++ b/packages/salesforcedx-apex-debugger/package.json @@ -2,7 +2,7 @@ "name": "@salesforce/salesforcedx-apex-debugger", "displayName": "Apex Debugger Adapter", "description": "Implements the VS Code Debug Protocol for the Apex Debugger", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -12,7 +12,7 @@ "Debuggers" ], "dependencies": { - "@salesforce/salesforcedx-utils": "58.14.1", + "@salesforce/salesforcedx-utils": "58.14.2", "async-lock": "1.0.0", "faye": "1.1.2", "request-light": "^0.7.0", @@ -20,7 +20,7 @@ "vscode-debugprotocol": "1.28.0" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/async-lock": "0.0.20", "@types/chai": "4.3.3", "@types/jest": "28.1.7", diff --git a/packages/salesforcedx-apex-replay-debugger/package.json b/packages/salesforcedx-apex-replay-debugger/package.json index e525243097..61db3cce00 100644 --- a/packages/salesforcedx-apex-replay-debugger/package.json +++ b/packages/salesforcedx-apex-replay-debugger/package.json @@ -2,7 +2,7 @@ "name": "@salesforce/salesforcedx-apex-replay-debugger", "displayName": "Apex Replay Debug Adapter", "description": "Implements the VS Code Debug Protocol for the Apex Replay Debugger", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "preview": true, "license": "BSD-3-Clause", @@ -13,7 +13,7 @@ "Debuggers" ], "dependencies": { - "@salesforce/salesforcedx-utils": "58.14.1", + "@salesforce/salesforcedx-utils": "58.14.2", "vscode-debugadapter": "1.28.0", "vscode-debugprotocol": "1.28.0", "vscode-uri": "1.0.1" diff --git a/packages/salesforcedx-sobjects-faux-generator/package.json b/packages/salesforcedx-sobjects-faux-generator/package.json index 38f10d2d45..bbf59234b2 100644 --- a/packages/salesforcedx-sobjects-faux-generator/package.json +++ b/packages/salesforcedx-sobjects-faux-generator/package.json @@ -2,7 +2,7 @@ "name": "@salesforce/salesforcedx-sobjects-faux-generator", "displayName": "Salesforce SObject Faux Generator", "description": "Fetches sobjects and generates their faux apex class to be used for Apex Language Server", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -11,7 +11,7 @@ "main": "out/src", "dependencies": { "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "jsforce": "2.0.0-beta.27", "shelljs": "0.8.5" }, diff --git a/packages/salesforcedx-test-utils-vscode/package.json b/packages/salesforcedx-test-utils-vscode/package.json index cc5f84479c..d0487b448e 100644 --- a/packages/salesforcedx-test-utils-vscode/package.json +++ b/packages/salesforcedx-test-utils-vscode/package.json @@ -2,14 +2,14 @@ "name": "@salesforce/salesforcedx-test-utils-vscode", "displayName": "SFDX Test Utilities for VS Code", "description": "Provides test utilities to interface the SFDX libraries with VS Code", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "categories": [ "Other" ], "dependencies": { - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "shelljs": "0.8.5" }, "devDependencies": { diff --git a/packages/salesforcedx-utils-vscode/package.json b/packages/salesforcedx-utils-vscode/package.json index fa8e6c66d7..7ef3964a5f 100644 --- a/packages/salesforcedx-utils-vscode/package.json +++ b/packages/salesforcedx-utils-vscode/package.json @@ -3,7 +3,7 @@ "displayName": "SFDX Utilities for VS Code", "description": "Provides utilities to interface the SFDX libraries with VS Code", "aiKey": "ec3632a4-df47-47a4-98dc-8134cacbaf7e", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "categories": [ diff --git a/packages/salesforcedx-utils-vscode/test/unit/telemetry/MockExtensionContext.ts b/packages/salesforcedx-utils-vscode/test/unit/telemetry/MockExtensionContext.ts index 2b0650761c..12b59c0510 100644 --- a/packages/salesforcedx-utils-vscode/test/unit/telemetry/MockExtensionContext.ts +++ b/packages/salesforcedx-utils-vscode/test/unit/telemetry/MockExtensionContext.ts @@ -5,6 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import * as path from 'path'; +import { EnvironmentVariableCollection, EnvironmentVariableScope } from 'vscode'; class MockMemento { private telemetryGS: boolean; @@ -51,6 +52,10 @@ class MockEnvironmentVariableCollection { public clear(): void { throw new Error('Method not implemented.'); } + public getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection { + const envVar: any = null; + return envVar; + } } export class MockExtensionContext { diff --git a/packages/salesforcedx-utils/package.json b/packages/salesforcedx-utils/package.json index 42996b7625..3b426ad2fb 100644 --- a/packages/salesforcedx-utils/package.json +++ b/packages/salesforcedx-utils/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/salesforcedx-utils", "displayName": "Node Utilities for VS Code", - "version": "58.14.1", + "version": "58.14.2", "description": "Provides node specific utilities for the Salesforce VSCode extensions", "aiKey": "ec3632a4-df47-47a4-98dc-8134cacbaf7e", "publisher": "salesforce", diff --git a/packages/salesforcedx-visualforce-language-server/package.json b/packages/salesforcedx-visualforce-language-server/package.json index 8e761d9d3a..5e226e7de7 100644 --- a/packages/salesforcedx-visualforce-language-server/package.json +++ b/packages/salesforcedx-visualforce-language-server/package.json @@ -1,14 +1,14 @@ { "name": "@salesforce/salesforcedx-visualforce-language-server", "description": "Visualforce language server", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { "vscode": "^1.61.2" }, "dependencies": { - "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.1", + "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.2", "typescript": "^4.7.4", "vscode-css-languageservice": "2.1.9", "vscode-languageserver": "5.2.1", diff --git a/packages/salesforcedx-visualforce-markup-language-server/package.json b/packages/salesforcedx-visualforce-markup-language-server/package.json index 77b095204e..7004732c88 100644 --- a/packages/salesforcedx-visualforce-markup-language-server/package.json +++ b/packages/salesforcedx-visualforce-markup-language-server/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/salesforcedx-visualforce-markup-language-server", "description": "Language service for Visualforce Markup", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { diff --git a/packages/salesforcedx-vscode-apex-debugger/package.json b/packages/salesforcedx-vscode-apex-debugger/package.json index 625fd7a3c2..01bf5c7a1d 100644 --- a/packages/salesforcedx-vscode-apex-debugger/package.json +++ b/packages/salesforcedx-vscode-apex-debugger/package.json @@ -14,7 +14,7 @@ "color": "#ECECEC", "theme": "light" }, - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -24,13 +24,13 @@ "Debuggers" ], "dependencies": { - "@salesforce/salesforcedx-apex-debugger": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-apex-debugger": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "vscode-debugprotocol": "1.28.0", "vscode-extension-telemetry": "0.0.17" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mocha": "^5", "@types/node": "12.0.12", diff --git a/packages/salesforcedx-vscode-apex-replay-debugger/package.json b/packages/salesforcedx-vscode-apex-replay-debugger/package.json index 926ae58d35..cfc4ed4e74 100644 --- a/packages/salesforcedx-vscode-apex-replay-debugger/package.json +++ b/packages/salesforcedx-vscode-apex-replay-debugger/package.json @@ -14,7 +14,7 @@ "color": "#ECECEC", "theme": "light" }, - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -26,16 +26,16 @@ "dependencies": { "@salesforce/apex-node": "1.6.2", "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-apex-replay-debugger": "58.14.1", - "@salesforce/salesforcedx-utils": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-apex-replay-debugger": "58.14.2", + "@salesforce/salesforcedx-utils": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "async-lock": "1.0.0", "path-exists": "3.0.0", "request-light": "^0.7.0", "vscode-extension-telemetry": "0.0.17" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@salesforce/ts-sinon": "1.4.0", "@types/async-lock": "0.0.20", "@types/chai": "4.3.3", diff --git a/packages/salesforcedx-vscode-apex/package.json b/packages/salesforcedx-vscode-apex/package.json index 1a3a43276f..5b2ab7fb2c 100644 --- a/packages/salesforcedx-vscode-apex/package.json +++ b/packages/salesforcedx-vscode-apex/package.json @@ -15,7 +15,7 @@ "theme": "light" }, "aiKey": "ec3632a4-df47-47a4-98dc-8134cacbaf7e", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -28,7 +28,7 @@ "@salesforce/apex-node": "1.6.2", "@salesforce/apex-tmlanguage": "1.4.0", "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@salesforce/source-deploy-retrieve": "9.7.0", "expand-home-dir": "0.0.3", "find-java-home": "0.2.0", @@ -38,7 +38,7 @@ "vscode-languageclient": "5.1.1" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@salesforce/ts-sinon": "1.4.0", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", diff --git a/packages/salesforcedx-vscode-core/package.json b/packages/salesforcedx-vscode-core/package.json index 5654b22053..ccd610a747 100644 --- a/packages/salesforcedx-vscode-core/package.json +++ b/packages/salesforcedx-vscode-core/package.json @@ -15,7 +15,7 @@ "theme": "light" }, "aiKey": "ec3632a4-df47-47a4-98dc-8134cacbaf7e", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -27,8 +27,8 @@ "dependencies": { "@heroku/functions-core": "0.7.0", "@salesforce/core": "4.3.11", - "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@salesforce/schemas": "^1", "@salesforce/source-deploy-retrieve": "9.7.0", "@salesforce/templates": "^58.0.1", @@ -42,7 +42,7 @@ "shelljs": "0.8.5" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@salesforce/ts-sinon": "^1.0.0", "@types/adm-zip": "^0.5.0", "@types/chai": "4.3.3", diff --git a/packages/salesforcedx-vscode-core/test/vscode-integration/telemetry/MockExtensionContext.ts b/packages/salesforcedx-vscode-core/test/vscode-integration/telemetry/MockExtensionContext.ts index 088863e99b..8548c1ee26 100644 --- a/packages/salesforcedx-vscode-core/test/vscode-integration/telemetry/MockExtensionContext.ts +++ b/packages/salesforcedx-vscode-core/test/vscode-integration/telemetry/MockExtensionContext.ts @@ -8,6 +8,7 @@ import * as path from 'path'; import { EnvironmentVariableCollection, EnvironmentVariableMutator, + EnvironmentVariableScope, Extension, ExtensionContext, ExtensionMode, @@ -94,6 +95,10 @@ class MockEnvironmentVariableCollection public clear(): void { throw new Error('Method not implemented.'); } + public getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection { + const envVar: any = null; + return envVar; + } } export class MockExtensionContext implements ExtensionContext { diff --git a/packages/salesforcedx-vscode-expanded/package.json b/packages/salesforcedx-vscode-expanded/package.json index 1ec86b8b58..ffd861e311 100644 --- a/packages/salesforcedx-vscode-expanded/package.json +++ b/packages/salesforcedx-vscode-expanded/package.json @@ -14,7 +14,7 @@ "color": "#ECECEC", "theme": "light" }, - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { diff --git a/packages/salesforcedx-vscode-lightning/package.json b/packages/salesforcedx-vscode-lightning/package.json index 65bdb17153..c86ae29775 100644 --- a/packages/salesforcedx-vscode-lightning/package.json +++ b/packages/salesforcedx-vscode-lightning/package.json @@ -15,7 +15,7 @@ "theme": "light" }, "aiKey": "ec3632a4-df47-47a4-98dc-8134cacbaf7e", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -28,13 +28,13 @@ "@salesforce/aura-language-server": "4.7.0", "@salesforce/core": "4.3.11", "@salesforce/lightning-lsp-common": "4.7.0", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "applicationinsights": "1.0.7", "vscode-extension-telemetry": "0.0.17", "vscode-languageclient": "^5.2.1" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", "@types/mocha": "^5", diff --git a/packages/salesforcedx-vscode-lwc/package.json b/packages/salesforcedx-vscode-lwc/package.json index 71d09b956d..e75d9fafb0 100644 --- a/packages/salesforcedx-vscode-lwc/package.json +++ b/packages/salesforcedx-vscode-lwc/package.json @@ -15,7 +15,7 @@ "theme": "light" }, "aiKey": "ec3632a4-df47-47a4-98dc-8134cacbaf7e", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -29,7 +29,7 @@ "@salesforce/eslint-config-lwc": "3.3.3", "@salesforce/lightning-lsp-common": "4.7.0", "@salesforce/lwc-language-server": "4.7.0", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "ajv": "6.12.6", "applicationinsights": "1.0.7", "eslint": "7.7.0", @@ -42,7 +42,7 @@ "vscode-languageclient": "^5.2.1" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", "@types/mocha": "^5", diff --git a/packages/salesforcedx-vscode-lwc/test/vscode-integration/activation/MockExtensionContext.ts b/packages/salesforcedx-vscode-lwc/test/vscode-integration/activation/MockExtensionContext.ts index ab3733911a..272621cd11 100644 --- a/packages/salesforcedx-vscode-lwc/test/vscode-integration/activation/MockExtensionContext.ts +++ b/packages/salesforcedx-vscode-lwc/test/vscode-integration/activation/MockExtensionContext.ts @@ -8,6 +8,7 @@ import * as path from 'path'; import { EnvironmentVariableCollection, EnvironmentVariableMutator, + EnvironmentVariableScope, Extension, ExtensionContext, ExtensionMode, @@ -77,6 +78,10 @@ class MockEnvironmentVariableCollection public clear(): void { throw new Error('Method not implemented.'); } + public getScoped(scope: EnvironmentVariableScope): EnvironmentVariableCollection { + const envVar: any = null; + return envVar; + } } export class MockExtensionContext implements ExtensionContext { diff --git a/packages/salesforcedx-vscode-soql/package.json b/packages/salesforcedx-vscode-soql/package.json index e745922cdb..61c24360dc 100644 --- a/packages/salesforcedx-vscode-soql/package.json +++ b/packages/salesforcedx-vscode-soql/package.json @@ -10,7 +10,7 @@ "url": "https://github.com/forcedotcom/salesforcedx-vscode" }, "aiKey": "ec3632a4-df47-47a4-98dc-8134cacbaf7e", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "icon": "images/VSCodeSoql.png", @@ -41,9 +41,9 @@ "jsforce": "2.0.0-beta.27" }, "devDependencies": { - "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.1", - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-sobjects-faux-generator": "58.14.2", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@salesforce/soql-common": "0.2.1", "@salesforce/ts-sinon": "1.4.0", "@salesforce/ts-types": "1.5.13", diff --git a/packages/salesforcedx-vscode-visualforce/package.json b/packages/salesforcedx-vscode-visualforce/package.json index b9f7e49218..2593c00b8c 100644 --- a/packages/salesforcedx-vscode-visualforce/package.json +++ b/packages/salesforcedx-vscode-visualforce/package.json @@ -14,7 +14,7 @@ "color": "#ECECEC", "theme": "light" }, - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { @@ -24,15 +24,15 @@ "Programming Languages" ], "dependencies": { - "@salesforce/salesforcedx-visualforce-language-server": "58.14.1", - "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.1", + "@salesforce/salesforcedx-visualforce-language-server": "58.14.2", + "@salesforce/salesforcedx-visualforce-markup-language-server": "58.14.2", "vscode-extension-telemetry": "0.0.17", "vscode-languageclient": "5.2.1", "vscode-languageserver-protocol": "3.14.1", "vscode-languageserver-types": "3.14.0" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mocha": "^5", "@types/node": "12.0.12", diff --git a/packages/salesforcedx-vscode/CHANGELOG.md b/packages/salesforcedx-vscode/CHANGELOG.md index 42d3c3f37f..6753281c5f 100644 --- a/packages/salesforcedx-vscode/CHANGELOG.md +++ b/packages/salesforcedx-vscode/CHANGELOG.md @@ -1,3 +1,12 @@ +# 58.14.2 - September 8, 2023 + +## Added + +- We released a brand new [Einstein for Developers](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-einstein-gpt) extension 🎉 🎉! Use this extension to generate boilerplate code from natural language instructions in a sidebar, so you can work with your editor and the tool side by side, without any interruptions to your workflow. You can also get code suggestions within an existing Apex class, trigger, or anonymous Apex file. Simply enter in a prompt describing what you'd like to build and see Apex code generated within your editor. + +#### docs +- We added documentation for Einstein for Developers (Beta) ([PR #5053](https://github.com/forcedotcom/salesforcedx-vscode/pull/5053)) + # 58.14.1 - September 1, 2023 ## Fixed diff --git a/packages/salesforcedx-vscode/package.json b/packages/salesforcedx-vscode/package.json index af1c9d1cf6..3e51481719 100644 --- a/packages/salesforcedx-vscode/package.json +++ b/packages/salesforcedx-vscode/package.json @@ -14,7 +14,7 @@ "color": "#ECECEC", "theme": "light" }, - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "engines": { diff --git a/packages/system-tests/package.json b/packages/system-tests/package.json index 10f4325707..37b4914522 100644 --- a/packages/system-tests/package.json +++ b/packages/system-tests/package.json @@ -1,7 +1,7 @@ { "name": "system-tests", "description": "System tests for Salesforce DX Extensions for VS Code", - "version": "58.14.1", + "version": "58.14.2", "publisher": "salesforce", "license": "BSD-3-Clause", "main": "./out/src", @@ -9,8 +9,8 @@ "vscode": "^1.61.2" }, "devDependencies": { - "@salesforce/salesforcedx-test-utils-vscode": "58.14.1", - "@salesforce/salesforcedx-utils-vscode": "58.14.1", + "@salesforce/salesforcedx-test-utils-vscode": "58.14.2", + "@salesforce/salesforcedx-utils-vscode": "58.14.2", "@types/chai": "4.3.3", "@types/mkdirp": "0.5.2", "@types/mocha": "^5",