@salesforce/plugin-agent 1.26.5 → 1.26.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -27
- package/lib/agentActivation.d.ts +3 -4
- package/lib/agentActivation.js +8 -4
- package/lib/agentActivation.js.map +1 -1
- package/lib/commands/agent/activate.js +1 -2
- package/lib/commands/agent/activate.js.map +1 -1
- package/lib/commands/agent/deactivate.js +1 -2
- package/lib/commands/agent/deactivate.js.map +1 -1
- package/lib/commands/agent/generate/authoring-bundle.js +8 -9
- package/lib/commands/agent/generate/authoring-bundle.js.map +1 -1
- package/lib/commands/agent/preview.d.ts +0 -4
- package/lib/commands/agent/preview.js +34 -113
- package/lib/commands/agent/preview.js.map +1 -1
- package/lib/commands/agent/publish/authoring-bundle.js +6 -13
- package/lib/commands/agent/publish/authoring-bundle.js.map +1 -1
- package/lib/commands/agent/validate/authoring-bundle.js +5 -12
- package/lib/commands/agent/validate/authoring-bundle.js.map +1 -1
- package/lib/components/agent-preview-react.d.ts +6 -13
- package/lib/components/agent-preview-react.js +36 -100
- package/lib/components/agent-preview-react.js.map +1 -1
- package/lib/flags.d.ts +1 -0
- package/lib/flags.js +18 -0
- package/lib/flags.js.map +1 -1
- package/messages/agent.preview.md +0 -6
- package/oclif.manifest.json +2 -13
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -112,7 +112,7 @@ EXAMPLES
|
|
|
112
112
|
$ sf agent activate --api-name Resort_Manager --target-org my-org
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
_See code: [src/commands/agent/activate.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
115
|
+
_See code: [src/commands/agent/activate.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/activate.ts)_
|
|
116
116
|
|
|
117
117
|
## `sf agent create`
|
|
118
118
|
|
|
@@ -179,7 +179,7 @@ EXAMPLES
|
|
|
179
179
|
$ sf agent create --name "Resort Manager" --spec specs/resortManagerAgent.yaml --preview
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
-
_See code: [src/commands/agent/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
182
|
+
_See code: [src/commands/agent/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/create.ts)_
|
|
183
183
|
|
|
184
184
|
## `sf agent deactivate`
|
|
185
185
|
|
|
@@ -219,7 +219,7 @@ EXAMPLES
|
|
|
219
219
|
$ sf agent deactivate --api-name Resort_Manager --target-org my-org
|
|
220
220
|
```
|
|
221
221
|
|
|
222
|
-
_See code: [src/commands/agent/deactivate.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
222
|
+
_See code: [src/commands/agent/deactivate.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/deactivate.ts)_
|
|
223
223
|
|
|
224
224
|
## `sf agent generate agent-spec`
|
|
225
225
|
|
|
@@ -326,7 +326,7 @@ EXAMPLES
|
|
|
326
326
|
$ sf agent generate agent-spec --tone formal --agent-user resortmanager@myorg.com
|
|
327
327
|
```
|
|
328
328
|
|
|
329
|
-
_See code: [src/commands/agent/generate/agent-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
329
|
+
_See code: [src/commands/agent/generate/agent-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/generate/agent-spec.ts)_
|
|
330
330
|
|
|
331
331
|
## `sf agent generate authoring-bundle`
|
|
332
332
|
|
|
@@ -392,7 +392,7 @@ EXAMPLES
|
|
|
392
392
|
other-package-dir/main/default --target-org my-dev-org
|
|
393
393
|
```
|
|
394
394
|
|
|
395
|
-
_See code: [src/commands/agent/generate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
395
|
+
_See code: [src/commands/agent/generate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/generate/authoring-bundle.ts)_
|
|
396
396
|
|
|
397
397
|
## `sf agent generate template`
|
|
398
398
|
|
|
@@ -440,7 +440,7 @@ EXAMPLES
|
|
|
440
440
|
force-app/main/default/bots/My_Awesome_Agent/My_Awesome_Agent.bot-meta.xml --agent-version 1
|
|
441
441
|
```
|
|
442
442
|
|
|
443
|
-
_See code: [src/commands/agent/generate/template.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
443
|
+
_See code: [src/commands/agent/generate/template.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/generate/template.ts)_
|
|
444
444
|
|
|
445
445
|
## `sf agent generate test-spec`
|
|
446
446
|
|
|
@@ -501,7 +501,7 @@ EXAMPLES
|
|
|
501
501
|
force-app//main/default/aiEvaluationDefinitions/Resort_Manager_Tests.aiEvaluationDefinition-meta.xml
|
|
502
502
|
```
|
|
503
503
|
|
|
504
|
-
_See code: [src/commands/agent/generate/test-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
504
|
+
_See code: [src/commands/agent/generate/test-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/generate/test-spec.ts)_
|
|
505
505
|
|
|
506
506
|
## `sf agent preview`
|
|
507
507
|
|
|
@@ -509,12 +509,10 @@ Interact with an agent to preview how it responds to your statements, questions,
|
|
|
509
509
|
|
|
510
510
|
```
|
|
511
511
|
USAGE
|
|
512
|
-
$ sf agent preview [--flags-dir <value>] [--api-version <value>]
|
|
513
|
-
|
|
512
|
+
$ sf agent preview -o <value> [--flags-dir <value>] [--api-version <value>] [-n <value>] [--authoring-bundle
|
|
513
|
+
<value>] [-d <value>] [-x] [--use-live-actions]
|
|
514
514
|
|
|
515
515
|
FLAGS
|
|
516
|
-
-c, --client-app=<value> Name of the linked client app to use for the connection to the published and active
|
|
517
|
-
agent.
|
|
518
516
|
-d, --output-dir=<value> Directory where conversation transcripts are saved.
|
|
519
517
|
-n, --api-name=<value> API name of the published and active agent you want to interact with.
|
|
520
518
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
@@ -560,14 +558,6 @@ DESCRIPTION
|
|
|
560
558
|
the files are saved to the "./temp/agent-preview" directory. Specify a new default directory with the --output-dir
|
|
561
559
|
flag.
|
|
562
560
|
|
|
563
|
-
NOTE: You can also use this command to connect to a published and active agent, which are labeled "(Published)" if you
|
|
564
|
-
let this command provide the list of agents to preview. That use case, however, requires additional security and
|
|
565
|
-
configuration in both your org and your DX project. The examples in this help are for previewing an agent from its
|
|
566
|
-
Agent Script file in your DX project and require only simple authorization of your org, such as with the "org login
|
|
567
|
-
web" command. The --client-app and --api-name flags are used only for previewing published and active agents, they
|
|
568
|
-
don't apply to Agent Script agents. See "Connect to a Published Agent" in the "Agentforce Developer Guide" for
|
|
569
|
-
complete documentation: https://developer.salesforce.com/docs/einstein/genai/guide/agent-dx-preview.html.
|
|
570
|
-
|
|
571
561
|
EXAMPLES
|
|
572
562
|
Preview an agent in simulated mode by choosing from a list of authoring bundles provided by the command; use the org
|
|
573
563
|
with alias "my-dev-org":
|
|
@@ -580,7 +570,7 @@ EXAMPLES
|
|
|
580
570
|
$ sf agent preview --use-live-actions --apex-debug --output-dir transcripts/my-preview
|
|
581
571
|
```
|
|
582
572
|
|
|
583
|
-
_See code: [src/commands/agent/preview.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
573
|
+
_See code: [src/commands/agent/preview.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/preview.ts)_
|
|
584
574
|
|
|
585
575
|
## `sf agent publish authoring-bundle`
|
|
586
576
|
|
|
@@ -627,7 +617,7 @@ EXAMPLES
|
|
|
627
617
|
$ sf agent publish authoring-bundle --api-name MyAuthoringbundle --target-org my-dev-org
|
|
628
618
|
```
|
|
629
619
|
|
|
630
|
-
_See code: [src/commands/agent/publish/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
620
|
+
_See code: [src/commands/agent/publish/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/publish/authoring-bundle.ts)_
|
|
631
621
|
|
|
632
622
|
## `sf agent test create`
|
|
633
623
|
|
|
@@ -682,7 +672,7 @@ EXAMPLES
|
|
|
682
672
|
$ sf agent test create --spec specs/Resort_Manager-testSpec.yaml --api-name Resort_Manager_Test --preview
|
|
683
673
|
```
|
|
684
674
|
|
|
685
|
-
_See code: [src/commands/agent/test/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
675
|
+
_See code: [src/commands/agent/test/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/test/create.ts)_
|
|
686
676
|
|
|
687
677
|
## `sf agent test list`
|
|
688
678
|
|
|
@@ -717,7 +707,7 @@ EXAMPLES
|
|
|
717
707
|
$ sf agent test list --target-org my-org
|
|
718
708
|
```
|
|
719
709
|
|
|
720
|
-
_See code: [src/commands/agent/test/list.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
710
|
+
_See code: [src/commands/agent/test/list.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/test/list.ts)_
|
|
721
711
|
|
|
722
712
|
## `sf agent test results`
|
|
723
713
|
|
|
@@ -783,7 +773,7 @@ FLAG DESCRIPTIONS
|
|
|
783
773
|
expression when using custom evaluations.
|
|
784
774
|
```
|
|
785
775
|
|
|
786
|
-
_See code: [src/commands/agent/test/results.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
776
|
+
_See code: [src/commands/agent/test/results.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/test/results.ts)_
|
|
787
777
|
|
|
788
778
|
## `sf agent test resume`
|
|
789
779
|
|
|
@@ -856,7 +846,7 @@ FLAG DESCRIPTIONS
|
|
|
856
846
|
expression when using custom evaluations.
|
|
857
847
|
```
|
|
858
848
|
|
|
859
|
-
_See code: [src/commands/agent/test/resume.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
849
|
+
_See code: [src/commands/agent/test/resume.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/test/resume.ts)_
|
|
860
850
|
|
|
861
851
|
## `sf agent test run`
|
|
862
852
|
|
|
@@ -930,7 +920,7 @@ FLAG DESCRIPTIONS
|
|
|
930
920
|
expression when using custom evaluations.
|
|
931
921
|
```
|
|
932
922
|
|
|
933
|
-
_See code: [src/commands/agent/test/run.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
923
|
+
_See code: [src/commands/agent/test/run.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/test/run.ts)_
|
|
934
924
|
|
|
935
925
|
## `sf agent validate authoring-bundle`
|
|
936
926
|
|
|
@@ -977,6 +967,6 @@ EXAMPLES
|
|
|
977
967
|
$ sf agent validate authoring-bundle --api-name MyAuthoringBundle --target-org my-dev-org
|
|
978
968
|
```
|
|
979
969
|
|
|
980
|
-
_See code: [src/commands/agent/validate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.
|
|
970
|
+
_See code: [src/commands/agent/validate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.26.6/src/commands/agent/validate/authoring-bundle.ts)_
|
|
981
971
|
|
|
982
972
|
<!-- commandsstop -->
|
package/lib/agentActivation.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Org } from '@salesforce/core';
|
|
2
|
+
import { type BotMetadata, ProductionAgent } from '@salesforce/agents';
|
|
3
3
|
type Choice<Value> = {
|
|
4
4
|
value: Value;
|
|
5
5
|
name?: string;
|
|
@@ -14,9 +14,8 @@ export declare const agentIsUnsupported: (devName: string) => boolean;
|
|
|
14
14
|
export declare const validateAgent: (agent: BotMetadata) => boolean;
|
|
15
15
|
export declare const getAgentChoices: (agents: BotMetadata[], status: "Active" | "Inactive") => Array<Choice<AgentValue>>;
|
|
16
16
|
export declare const getAgentForActivation: (config: {
|
|
17
|
-
conn: Connection;
|
|
18
17
|
targetOrg: Org;
|
|
19
18
|
status: "Active" | "Inactive";
|
|
20
19
|
apiNameFlag?: string;
|
|
21
|
-
}) => Promise<
|
|
20
|
+
}) => Promise<ProductionAgent>;
|
|
22
21
|
export {};
|
package/lib/agentActivation.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Messages, SfError } from '@salesforce/core';
|
|
16
|
+
import { Messages, SfError, SfProject } from '@salesforce/core';
|
|
17
17
|
import { Agent } from '@salesforce/agents';
|
|
18
18
|
import { select } from '@inquirer/prompts';
|
|
19
19
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
@@ -48,10 +48,10 @@ export const getAgentChoices = (agents, status) => agents.map((agent) => {
|
|
|
48
48
|
};
|
|
49
49
|
});
|
|
50
50
|
export const getAgentForActivation = async (config) => {
|
|
51
|
-
const {
|
|
51
|
+
const { targetOrg, status, apiNameFlag } = config;
|
|
52
52
|
let agentsInOrg = [];
|
|
53
53
|
try {
|
|
54
|
-
agentsInOrg = await Agent.listRemote(
|
|
54
|
+
agentsInOrg = await Agent.listRemote(targetOrg.getConnection());
|
|
55
55
|
}
|
|
56
56
|
catch (error) {
|
|
57
57
|
throw SfError.create({
|
|
@@ -78,6 +78,10 @@ export const getAgentForActivation = async (config) => {
|
|
|
78
78
|
});
|
|
79
79
|
selectedAgent = agentsInOrg.find((agent) => agent.DeveloperName === agentChoice.DeveloperName);
|
|
80
80
|
}
|
|
81
|
-
return
|
|
81
|
+
return Agent.init({
|
|
82
|
+
connection: targetOrg.getConnection(),
|
|
83
|
+
apiNameOrId: selectedAgent.Id,
|
|
84
|
+
project: SfProject.getInstance(),
|
|
85
|
+
});
|
|
82
86
|
};
|
|
83
87
|
//# sourceMappingURL=agentActivation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentActivation.js","sourceRoot":"","sources":["../src/agentActivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"agentActivation.js","sourceRoot":"","sources":["../src/agentActivation.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,11 +34,10 @@ export default class AgentActivate extends SfCommand {
|
|
|
34
34
|
const { flags } = await this.parse(AgentActivate);
|
|
35
35
|
const apiNameFlag = flags['api-name'];
|
|
36
36
|
const targetOrg = flags['target-org'];
|
|
37
|
-
const conn = targetOrg.getConnection(flags['api-version']);
|
|
38
37
|
if (!apiNameFlag && this.jsonEnabled()) {
|
|
39
38
|
throw messages.createError('error.missingRequiredFlags', ['api-name']);
|
|
40
39
|
}
|
|
41
|
-
const agent = await getAgentForActivation({
|
|
40
|
+
const agent = await getAgentForActivation({ targetOrg, status: 'Active', apiNameFlag });
|
|
42
41
|
await agent.activate();
|
|
43
42
|
const agentName = (await agent.getBotMetadata()).DeveloperName;
|
|
44
43
|
this.log(`Agent ${agentName} activated.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activate.js","sourceRoot":"","sources":["../../../src/commands/agent/activate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,CAAC;AAErF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAe;IACjD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACpC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACtD,IAAI,EAAE,GAAG;SACV,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAElD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"activate.js","sourceRoot":"","sources":["../../../src/commands/agent/activate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,CAAC;AAErF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAe;IACjD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACpC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACtD,IAAI,EAAE,GAAG;SACV,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAElD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAEtC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvC,MAAM,QAAQ,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACxF,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,aAAa,CAAC;QAE/D,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,aAAa,CAAC,CAAC;IAC5C,CAAC"}
|
|
@@ -34,11 +34,10 @@ export default class AgentDeactivate extends SfCommand {
|
|
|
34
34
|
const { flags } = await this.parse(AgentDeactivate);
|
|
35
35
|
const apiNameFlag = flags['api-name'];
|
|
36
36
|
const targetOrg = flags['target-org'];
|
|
37
|
-
const conn = targetOrg.getConnection(flags['api-version']);
|
|
38
37
|
if (!apiNameFlag && this.jsonEnabled()) {
|
|
39
38
|
throw messages.createError('error.missingRequiredFlags', ['api-name']);
|
|
40
39
|
}
|
|
41
|
-
const agent = await getAgentForActivation({
|
|
40
|
+
const agent = await getAgentForActivation({ targetOrg, status: 'Inactive', apiNameFlag });
|
|
42
41
|
await agent.deactivate();
|
|
43
42
|
const agentName = (await agent.getBotMetadata()).DeveloperName;
|
|
44
43
|
this.log(`Agent ${agentName} deactivated.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deactivate.js","sourceRoot":"","sources":["../../../src/commands/agent/deactivate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAC;AAEvF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAe;IACnD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACpC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACtD,IAAI,EAAE,GAAG;SACV,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"deactivate.js","sourceRoot":"","sources":["../../../src/commands/agent/deactivate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAC;AAEvF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAe;IACnD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACpC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACtD,IAAI,EAAE,GAAG;SACV,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAEtC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvC,MAAM,QAAQ,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1F,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,aAAa,CAAC;QAE/D,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,eAAe,CAAC,CAAC;IAC9C,CAAC"}
|
|
@@ -17,11 +17,11 @@ import { join, resolve } from 'node:path';
|
|
|
17
17
|
import { readFileSync, existsSync } from 'node:fs';
|
|
18
18
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
19
19
|
import { generateApiName, Messages, SfError } from '@salesforce/core';
|
|
20
|
-
import {
|
|
20
|
+
import { ScriptAgent } from '@salesforce/agents';
|
|
21
21
|
import YAML from 'yaml';
|
|
22
22
|
import { input as inquirerInput } from '@inquirer/prompts';
|
|
23
23
|
import { theme } from '../../../inquirer-theme.js';
|
|
24
|
-
import { promptForFlag,
|
|
24
|
+
import { promptForFlag, promptForSpecYaml } from '../../../flags.js';
|
|
25
25
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
26
26
|
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.generate.authoring-bundle');
|
|
27
27
|
export default class AgentGenerateAuthoringBundle extends SfCommand {
|
|
@@ -89,9 +89,9 @@ export default class AgentGenerateAuthoringBundle extends SfCommand {
|
|
|
89
89
|
};
|
|
90
90
|
async run() {
|
|
91
91
|
const { flags } = await this.parse(AgentGenerateAuthoringBundle);
|
|
92
|
-
const { 'output-dir': outputDir
|
|
92
|
+
const { 'output-dir': outputDir } = flags;
|
|
93
93
|
// If we don't have a spec yet, prompt for it
|
|
94
|
-
const spec = flags.spec ?? (await
|
|
94
|
+
const spec = flags.spec ?? (await promptForSpecYaml(AgentGenerateAuthoringBundle.FLAGGABLE_PROMPTS['spec']));
|
|
95
95
|
// If we don't have a name yet, prompt for it
|
|
96
96
|
const name = flags['name'] ?? (await promptForFlag(AgentGenerateAuthoringBundle.FLAGGABLE_PROMPTS['name']));
|
|
97
97
|
// If we don't have an api name yet, prompt for it
|
|
@@ -116,11 +116,10 @@ export default class AgentGenerateAuthoringBundle extends SfCommand {
|
|
|
116
116
|
const agentPath = join(targetOutputDir, `${bundleApiName}.agent`);
|
|
117
117
|
const metaXmlPath = join(targetOutputDir, `${bundleApiName}.bundle-meta.xml`);
|
|
118
118
|
// Write Agent file
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
agentSpec: { ...specContents, ...{ name, developerName: bundleApiName } },
|
|
119
|
+
await ScriptAgent.createAuthoringBundle({
|
|
120
|
+
agentSpec: spec
|
|
121
|
+
? { ...YAML.parse(readFileSync(spec, 'utf8')), ...{ name, developerName: bundleApiName } }
|
|
122
|
+
: undefined,
|
|
124
123
|
project: this.project,
|
|
125
124
|
bundleApiName,
|
|
126
125
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authoring-bundle.js","sourceRoot":"","sources":["../../../../src/commands/agent/generate/authoring-bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"authoring-bundle.js","sourceRoot":"","sources":["../../../../src/commands/agent/generate/authoring-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
-
import { AuthInfo } from '@salesforce/core';
|
|
3
2
|
type BotVersionStatus = {
|
|
4
3
|
Status: 'Active' | 'Inactive';
|
|
5
4
|
};
|
|
@@ -22,7 +21,6 @@ export default class AgentPreview extends SfCommand<AgentPreviewResult> {
|
|
|
22
21
|
static readonly flags: {
|
|
23
22
|
'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
|
|
24
23
|
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
-
'client-app': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
26
24
|
'api-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
25
|
'authoring-bundle': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
26
|
'output-dir': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -30,10 +28,8 @@ export default class AgentPreview extends SfCommand<AgentPreviewResult> {
|
|
|
30
28
|
'use-live-actions': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
31
29
|
};
|
|
32
30
|
run(): Promise<AgentPreviewResult>;
|
|
33
|
-
private getAgentChoices;
|
|
34
31
|
}
|
|
35
32
|
export declare const agentIsUnsupported: (devName: string) => boolean;
|
|
36
33
|
export declare const agentIsInactive: (agent: AgentData) => boolean;
|
|
37
34
|
export declare const validateAgent: (agent: AgentData) => boolean;
|
|
38
|
-
export declare const getClientAppsFromAuth: (authInfo: AuthInfo) => string[];
|
|
39
35
|
export {};
|
|
@@ -13,25 +13,16 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
17
|
-
import { join, resolve } from 'node:path';
|
|
18
|
-
import { globSync } from 'glob';
|
|
16
|
+
import { resolve } from 'node:path';
|
|
19
17
|
import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
|
|
20
|
-
import { AuthInfo, Connection, Lifecycle, Logger, Messages, SfError } from '@salesforce/core';
|
|
21
18
|
import React from 'react';
|
|
22
19
|
import { render } from 'ink';
|
|
23
|
-
import {
|
|
20
|
+
import { Agent, AgentSource, ProductionAgent, ScriptAgent } from '@salesforce/agents';
|
|
24
21
|
import { select } from '@inquirer/prompts';
|
|
22
|
+
import { Lifecycle, Messages, SfError } from '@salesforce/core';
|
|
25
23
|
import { AgentPreviewReact } from '../../components/agent-preview-react.js';
|
|
26
24
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
27
25
|
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.preview');
|
|
28
|
-
let logger;
|
|
29
|
-
const getLogger = () => {
|
|
30
|
-
if (!logger) {
|
|
31
|
-
logger = Logger.childFromRoot('plugin-agent-preview');
|
|
32
|
-
}
|
|
33
|
-
return logger;
|
|
34
|
-
};
|
|
35
26
|
// https://developer.salesforce.com/docs/einstein/genai/guide/agent-api-get-started.html#prerequisites
|
|
36
27
|
export const UNSUPPORTED_AGENTS = ['Copilot_for_Salesforce'];
|
|
37
28
|
export default class AgentPreview extends SfCommand {
|
|
@@ -44,11 +35,6 @@ export default class AgentPreview extends SfCommand {
|
|
|
44
35
|
static flags = {
|
|
45
36
|
'target-org': Flags.requiredOrg(),
|
|
46
37
|
'api-version': Flags.orgApiVersion(),
|
|
47
|
-
'client-app': Flags.string({
|
|
48
|
-
char: 'c',
|
|
49
|
-
summary: messages.getMessage('flags.client-app.summary'),
|
|
50
|
-
dependsOn: ['target-org'],
|
|
51
|
-
}),
|
|
52
38
|
'api-name': Flags.string({
|
|
53
39
|
summary: messages.getMessage('flags.api-name.summary'),
|
|
54
40
|
char: 'n',
|
|
@@ -74,124 +60,60 @@ export default class AgentPreview extends SfCommand {
|
|
|
74
60
|
// get user's agent selection either from flags, or interaction
|
|
75
61
|
// if .agent selected, use the AgentSimulate class to preview
|
|
76
62
|
// if published agent, use AgentPreview for preview
|
|
77
|
-
// based on agent, differing auth mechanisms required
|
|
78
63
|
const { flags } = await this.parse(AgentPreview);
|
|
79
|
-
const { 'api-name':
|
|
64
|
+
const { 'api-name': apiNameOrId, 'use-live-actions': useLiveActions, 'authoring-bundle': aabName } = flags;
|
|
80
65
|
const conn = flags['target-org'].getConnection(flags['api-version']);
|
|
81
|
-
const agentsInOrg = (await conn.query('SELECT Id, DeveloperName, (SELECT Status FROM BotVersions) FROM BotDefinition WHERE IsDeleted = false')).records;
|
|
82
66
|
let selectedAgent;
|
|
83
|
-
if (
|
|
84
|
-
// user specified --authoring-bundle,
|
|
85
|
-
|
|
86
|
-
if (!bundlePath) {
|
|
87
|
-
throw new SfError(`Could not find authoring bundle for ${flags['authoring-bundle']}`);
|
|
88
|
-
}
|
|
89
|
-
selectedAgent = {
|
|
90
|
-
DeveloperName: flags['authoring-bundle'],
|
|
91
|
-
source: AgentSource.SCRIPT,
|
|
92
|
-
path: join(bundlePath, `${flags['authoring-bundle']}.agent`),
|
|
93
|
-
};
|
|
67
|
+
if (aabName) {
|
|
68
|
+
// user specified --authoring-bundle, use the API name directly
|
|
69
|
+
selectedAgent = await Agent.init({ connection: conn, project: this.project, aabName });
|
|
94
70
|
}
|
|
95
|
-
else if (
|
|
96
|
-
|
|
97
|
-
const agent = agentsInOrg.find((a) => a.DeveloperName === apiNameFlag);
|
|
98
|
-
if (!agent)
|
|
99
|
-
throw new Error(`No valid Agents were found with the Api Name ${apiNameFlag}.`);
|
|
100
|
-
validateAgent(agent);
|
|
101
|
-
selectedAgent = {
|
|
102
|
-
Id: agent.Id,
|
|
103
|
-
DeveloperName: agent.DeveloperName,
|
|
104
|
-
source: AgentSource.PUBLISHED,
|
|
105
|
-
};
|
|
106
|
-
if (!selectedAgent)
|
|
107
|
-
throw new Error(`No valid Agents were found with the Api Name ${apiNameFlag}.`);
|
|
71
|
+
else if (apiNameOrId) {
|
|
72
|
+
selectedAgent = await Agent.init({ connection: conn, project: this.project, apiNameOrId });
|
|
108
73
|
}
|
|
109
74
|
else {
|
|
110
|
-
|
|
75
|
+
const previewableAgents = await Agent.listPreviewable(conn, this.project);
|
|
76
|
+
const choices = previewableAgents.map((agent) => ({
|
|
77
|
+
name: agent.source === AgentSource.PUBLISHED ? `${agent.name} (Published)` : `${agent.name} (Agent Script)`,
|
|
78
|
+
value: agent,
|
|
79
|
+
}));
|
|
80
|
+
const choice = await select({
|
|
111
81
|
message: 'Select an agent',
|
|
112
|
-
choices
|
|
82
|
+
choices,
|
|
113
83
|
});
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
let clientApp = flags['client-app'];
|
|
121
|
-
if (!clientApp && selectedAgent?.source === AgentSource.PUBLISHED) {
|
|
122
|
-
const clientApps = getClientAppsFromAuth(authInfo);
|
|
123
|
-
if (clientApps.length === 1) {
|
|
124
|
-
clientApp = clientApps[0];
|
|
125
|
-
}
|
|
126
|
-
else if (clientApps.length > 1) {
|
|
127
|
-
clientApp = await select({
|
|
128
|
-
message: 'Select a client app',
|
|
129
|
-
choices: clientApps.map((app) => ({ value: app, name: app })),
|
|
84
|
+
if (choice.source === AgentSource.SCRIPT && choice.name) {
|
|
85
|
+
// Use the API name directly
|
|
86
|
+
selectedAgent = await Agent.init({
|
|
87
|
+
connection: conn,
|
|
88
|
+
project: this.project,
|
|
89
|
+
aabName: choice.name,
|
|
130
90
|
});
|
|
91
|
+
selectedAgent.preview.setMockMode(flags['use-live-actions'] ? 'Live Test' : 'Mock');
|
|
131
92
|
}
|
|
132
93
|
else {
|
|
133
|
-
|
|
94
|
+
selectedAgent = await Agent.init({
|
|
95
|
+
connection: conn,
|
|
96
|
+
project: this.project,
|
|
97
|
+
// developerName will be set at this point since the user selected a production agent, even ID will be defined
|
|
98
|
+
apiNameOrId: choice.developerName ?? choice.id ?? '',
|
|
99
|
+
});
|
|
134
100
|
}
|
|
135
101
|
}
|
|
136
|
-
if (useLiveActions && selectedAgent
|
|
102
|
+
if (useLiveActions && selectedAgent instanceof ProductionAgent) {
|
|
137
103
|
void Lifecycle.getInstance().emitWarning('Published agents will always use real actions in your org, specifying --use-live-actions and selecting a published agent has no effect');
|
|
138
104
|
}
|
|
139
|
-
const jwtConn = selectedAgent?.source === AgentSource.PUBLISHED
|
|
140
|
-
? await Connection.create({
|
|
141
|
-
authInfo,
|
|
142
|
-
clientApp,
|
|
143
|
-
})
|
|
144
|
-
: await Connection.create({ authInfo });
|
|
145
105
|
// Only resolve outputDir if explicitly provided via flag
|
|
146
106
|
// Otherwise, let user decide when exiting
|
|
147
107
|
const outputDir = flags['output-dir'] ? resolve(flags['output-dir']) : undefined;
|
|
148
|
-
|
|
149
|
-
const agentPreview = selectedAgent.source === AgentSource.PUBLISHED
|
|
150
|
-
? new Preview(jwtConn, selectedAgent.Id)
|
|
151
|
-
: new AgentSimulate(jwtConn, selectedAgent.path, !useLiveActions);
|
|
152
|
-
agentPreview.setApexDebugMode(flags['apex-debug']);
|
|
108
|
+
selectedAgent.preview.setApexDebugging(flags['apex-debug']);
|
|
153
109
|
const instance = render(React.createElement(AgentPreviewReact, {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
name: selectedAgent.DeveloperName,
|
|
110
|
+
agent: selectedAgent.preview,
|
|
111
|
+
name: selectedAgent.name ?? '',
|
|
157
112
|
outputDir,
|
|
158
|
-
isLocalAgent: selectedAgent
|
|
159
|
-
apexDebug: flags['apex-debug'],
|
|
160
|
-
logger: getLogger(),
|
|
113
|
+
isLocalAgent: selectedAgent instanceof ScriptAgent,
|
|
161
114
|
}), { exitOnCtrlC: false });
|
|
162
115
|
await instance.waitUntilExit();
|
|
163
116
|
}
|
|
164
|
-
getAgentChoices(agents) {
|
|
165
|
-
const choices = [];
|
|
166
|
-
// Add org agents
|
|
167
|
-
for (const agent of agents) {
|
|
168
|
-
if (agentIsInactive(agent) || agentIsUnsupported(agent.DeveloperName)) {
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
choices.push({
|
|
172
|
-
name: `${agent.DeveloperName} (Published)`,
|
|
173
|
-
value: {
|
|
174
|
-
Id: agent.Id,
|
|
175
|
-
DeveloperName: agent.DeveloperName,
|
|
176
|
-
source: AgentSource.PUBLISHED,
|
|
177
|
-
},
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
// Add local agents from .agent files
|
|
181
|
-
const localAgentPaths = globSync('**/*.agent', { cwd: this.project.getPath() });
|
|
182
|
-
for (const agentPath of localAgentPaths) {
|
|
183
|
-
const agentName = path.basename(agentPath, '.agent');
|
|
184
|
-
choices.push({
|
|
185
|
-
name: `${agentName} (Agent Script)`,
|
|
186
|
-
value: {
|
|
187
|
-
DeveloperName: agentName,
|
|
188
|
-
source: AgentSource.SCRIPT,
|
|
189
|
-
path: path.join(this.project.getPath(), agentPath),
|
|
190
|
-
},
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
return choices;
|
|
194
|
-
}
|
|
195
117
|
}
|
|
196
118
|
export const agentIsUnsupported = (devName) => UNSUPPORTED_AGENTS.includes(devName);
|
|
197
119
|
export const agentIsInactive = (agent) =>
|
|
@@ -210,5 +132,4 @@ export const validateAgent = (agent) => {
|
|
|
210
132
|
}
|
|
211
133
|
return true;
|
|
212
134
|
};
|
|
213
|
-
export const getClientAppsFromAuth = (authInfo) => Object.keys(authInfo.getFields().clientApps ?? {});
|
|
214
135
|
//# sourceMappingURL=preview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/commands/agent/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/commands/agent/preview.ts"],"names":[],"mappings":"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"}
|