@salesforce/plugin-agent 1.24.14-demo.8 → 1.24.14-nga.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -46
- package/lib/commands/agent/generate/authoring-bundle.js +1 -1
- package/lib/commands/agent/generate/authoring-bundle.js.map +1 -1
- package/lib/commands/agent/preview.d.ts +4 -10
- package/lib/commands/agent/preview.js +104 -44
- package/lib/commands/agent/preview.js.map +1 -1
- package/lib/commands/agent/publish/authoring-bundle.js +9 -3
- package/lib/commands/agent/publish/authoring-bundle.js.map +1 -1
- package/lib/commands/agent/validate/authoring-bundle.js +16 -12
- package/lib/commands/agent/validate/authoring-bundle.js.map +1 -1
- package/lib/common.d.ts +8 -0
- package/lib/common.js +39 -0
- package/lib/common.js.map +1 -0
- package/lib/components/agent-preview-react.d.ts +3 -2
- package/lib/components/agent-preview-react.js +36 -13
- package/lib/components/agent-preview-react.js.map +1 -1
- package/messages/agent.generate.authoring-bundle.md +16 -12
- package/messages/agent.preview.md +7 -3
- package/messages/agent.publish.authoring-bundle.md +14 -9
- package/messages/agent.validate.authoring-bundle.md +14 -9
- package/oclif.manifest.json +29 -23
- package/package.json +7 -5
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.24.14-
|
|
115
|
+
_See code: [src/commands/agent/activate.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/activate.ts)_
|
|
116
116
|
|
|
117
117
|
## `sf agent create`
|
|
118
118
|
|
|
@@ -174,7 +174,7 @@ EXAMPLES
|
|
|
174
174
|
$ sf agent create --name "Resort Manager" --spec specs/resortManagerAgent.yaml --preview
|
|
175
175
|
```
|
|
176
176
|
|
|
177
|
-
_See code: [src/commands/agent/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
177
|
+
_See code: [src/commands/agent/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/create.ts)_
|
|
178
178
|
|
|
179
179
|
## `sf agent deactivate`
|
|
180
180
|
|
|
@@ -214,7 +214,7 @@ EXAMPLES
|
|
|
214
214
|
$ sf agent deactivate --api-name Resort_Manager --target-org my-org
|
|
215
215
|
```
|
|
216
216
|
|
|
217
|
-
_See code: [src/commands/agent/deactivate.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
217
|
+
_See code: [src/commands/agent/deactivate.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/deactivate.ts)_
|
|
218
218
|
|
|
219
219
|
## `sf agent generate agent-spec`
|
|
220
220
|
|
|
@@ -319,11 +319,11 @@ EXAMPLES
|
|
|
319
319
|
$ sf agent generate agent-spec --tone formal --agent-user resortmanager@myorg.com
|
|
320
320
|
```
|
|
321
321
|
|
|
322
|
-
_See code: [src/commands/agent/generate/agent-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
322
|
+
_See code: [src/commands/agent/generate/agent-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/generate/agent-spec.ts)_
|
|
323
323
|
|
|
324
324
|
## `sf agent generate authoring-bundle`
|
|
325
325
|
|
|
326
|
-
Generate
|
|
326
|
+
Generate a local authoring bundle from an existing agent spec YAML file.
|
|
327
327
|
|
|
328
328
|
```
|
|
329
329
|
USAGE
|
|
@@ -331,13 +331,13 @@ USAGE
|
|
|
331
331
|
<value>] [-d <value>] [-n <value>]
|
|
332
332
|
|
|
333
333
|
FLAGS
|
|
334
|
-
-d, --output-dir=<value> Directory where the authoring bundle files
|
|
335
|
-
-f, --spec=<value> Path to the agent
|
|
334
|
+
-d, --output-dir=<value> Directory where the authoring bundle files are generated.
|
|
335
|
+
-f, --spec=<value> Path to the agent spec YAML file.
|
|
336
336
|
-n, --name=<value> Name (label) of the authoring bundle.
|
|
337
337
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
338
338
|
configuration variable is already set.
|
|
339
339
|
--api-name=<value> API name of the new authoring bundle; if not specified, the API name is derived from the
|
|
340
|
-
authoring bundle name (label); the API name
|
|
340
|
+
authoring bundle name (label); the API name can't exist in the org.
|
|
341
341
|
--api-version=<value> Override the api version used for api requests made by this command
|
|
342
342
|
|
|
343
343
|
GLOBAL FLAGS
|
|
@@ -345,22 +345,29 @@ GLOBAL FLAGS
|
|
|
345
345
|
--json Format output as json.
|
|
346
346
|
|
|
347
347
|
DESCRIPTION
|
|
348
|
-
Generate
|
|
348
|
+
Generate a local authoring bundle from an existing agent spec YAML file.
|
|
349
349
|
|
|
350
|
-
|
|
350
|
+
Authoring bundles are metadata types that represent the next-gen Salesforce agents. Their exact metadata name is
|
|
351
|
+
AiAuthoringBundle and they consist of a standard "\*-meta.xml" metadata file and an agent file (with extension
|
|
352
|
+
".agent") that fully describes the next-gen agent. Use this command to generate an authoring bundle based on an agent
|
|
353
|
+
spec YAML file, which you create with the "agent create agent-spec" command.
|
|
354
|
+
|
|
355
|
+
By default, authoring bundles are generated in the force-app/main/default/aiAuthoringBundles/<api-name> directory. Use
|
|
356
|
+
the --output-dir to generate them elsewhere.
|
|
351
357
|
|
|
352
358
|
EXAMPLES
|
|
353
|
-
Generate an authoring bundle from
|
|
359
|
+
Generate an authoring bundle from the "specs/agentSpec.yaml" agent spec YAML file and give it the label "My
|
|
360
|
+
Authoring Bundle":
|
|
354
361
|
|
|
355
|
-
$ sf agent generate authoring-bundle --spec-file
|
|
362
|
+
$ sf agent generate authoring-bundle --spec-file specs/agentSpec.yaml --name "My Authoring Bundle"
|
|
356
363
|
|
|
357
|
-
|
|
364
|
+
Same as previous example, but generate the files in the other-package-dir/main/default/aiAuthoringBundles directory:
|
|
358
365
|
|
|
359
|
-
$ sf agent generate authoring-bundle --spec-file
|
|
360
|
-
|
|
366
|
+
$ sf agent generate authoring-bundle --spec-file specs/agentSpec.yaml --name "My Authoring Bundle" --output-dir \
|
|
367
|
+
other-package-dir/main/default/aiAuthoringBundles
|
|
361
368
|
```
|
|
362
369
|
|
|
363
|
-
_See code: [src/commands/agent/generate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
370
|
+
_See code: [src/commands/agent/generate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/generate/authoring-bundle.ts)_
|
|
364
371
|
|
|
365
372
|
## `sf agent generate template`
|
|
366
373
|
|
|
@@ -408,7 +415,7 @@ EXAMPLES
|
|
|
408
415
|
force-app/main/default/bots/My_Awesome_Agent/My_Awesome_Agent.bot-meta.xml --agent-version 1
|
|
409
416
|
```
|
|
410
417
|
|
|
411
|
-
_See code: [src/commands/agent/generate/template.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
418
|
+
_See code: [src/commands/agent/generate/template.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/generate/template.ts)_
|
|
412
419
|
|
|
413
420
|
## `sf agent generate test-spec`
|
|
414
421
|
|
|
@@ -469,7 +476,7 @@ EXAMPLES
|
|
|
469
476
|
force-app//main/default/aiEvaluationDefinitions/Resort_Manager_Tests.aiEvaluationDefinition-meta.xml
|
|
470
477
|
```
|
|
471
478
|
|
|
472
|
-
_See code: [src/commands/agent/generate/test-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
479
|
+
_See code: [src/commands/agent/generate/test-spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/generate/test-spec.ts)_
|
|
473
480
|
|
|
474
481
|
## `sf agent preview`
|
|
475
482
|
|
|
@@ -478,19 +485,19 @@ Interact with an active agent to preview how the agent responds to your statemen
|
|
|
478
485
|
```
|
|
479
486
|
USAGE
|
|
480
487
|
$ sf agent preview [--flags-dir <value>] [--api-version <value>] (-c <value> -o <value>) [-n <value>]
|
|
481
|
-
[--authoring-bundle <value>] [-d <value>] [-x]
|
|
488
|
+
[--authoring-bundle <value>] [-d <value>] [-x] [--use-live-actions]
|
|
482
489
|
|
|
483
490
|
FLAGS
|
|
484
|
-
-c, --client-app=<value> Name of the linked client app to use for the agent connection.
|
|
485
|
-
previously created this link with "org login web --client-app". Run "org display" to
|
|
486
|
-
see the available linked client apps.
|
|
491
|
+
-c, --client-app=<value> Name of the linked client app to use for the agent connection.
|
|
487
492
|
-d, --output-dir=<value> Directory where conversation transcripts are saved.
|
|
488
493
|
-n, --api-name=<value> API name of the agent you want to interact with.
|
|
489
494
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
490
495
|
configuration variable is already set.
|
|
491
496
|
-x, --apex-debug Enable Apex debug logging during the agent preview conversation.
|
|
492
497
|
--api-version=<value> Override the api version used for api requests made by this command
|
|
493
|
-
--authoring-bundle=<value> Preview
|
|
498
|
+
--authoring-bundle=<value> Preview a next-gen agent by specifying the API name of the authoring bundle metadata
|
|
499
|
+
component that implements it.
|
|
500
|
+
--use-live-actions Use real actions in the org; if not specified, preview uses AI to mock actions.
|
|
494
501
|
|
|
495
502
|
GLOBAL FLAGS
|
|
496
503
|
--flags-dir=<value> Import flag values from a directory.
|
|
@@ -517,8 +524,9 @@ DESCRIPTION
|
|
|
517
524
|
currently deactivated, use the "agent activate" CLI command to activate it.
|
|
518
525
|
|
|
519
526
|
IMPORTANT: Before you use this command, you must complete a number of configuration steps in your org and your DX
|
|
520
|
-
project.
|
|
521
|
-
|
|
527
|
+
project. For example, you must first create the link to a client connected app using the "org login web --client-app"
|
|
528
|
+
CLI command to then get the value of the --client-app flag of this command. The examples in this help assume you've
|
|
529
|
+
completed the steps. See "Preview an Agent" in the "Agentforce Developer Guide" for complete documentation:
|
|
522
530
|
https://developer.salesforce.com/docs/einstein/genai/guide/agent-dx-preview.html.
|
|
523
531
|
|
|
524
532
|
EXAMPLES
|
|
@@ -534,18 +542,18 @@ EXAMPLES
|
|
|
534
542
|
transcripts/my-preview
|
|
535
543
|
```
|
|
536
544
|
|
|
537
|
-
_See code: [src/commands/agent/preview.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
545
|
+
_See code: [src/commands/agent/preview.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/preview.ts)_
|
|
538
546
|
|
|
539
547
|
## `sf agent publish authoring-bundle`
|
|
540
548
|
|
|
541
|
-
Publish an
|
|
549
|
+
Publish an authoring bundle to your org, which results in a new next-gen agent.
|
|
542
550
|
|
|
543
551
|
```
|
|
544
552
|
USAGE
|
|
545
553
|
$ sf agent publish authoring-bundle -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-n <value>]
|
|
546
554
|
|
|
547
555
|
FLAGS
|
|
548
|
-
-n, --api-name=<value> API name of the
|
|
556
|
+
-n, --api-name=<value> API name of the authoring bundle you want to publish.
|
|
549
557
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
550
558
|
configuration variable is already set.
|
|
551
559
|
--api-version=<value> Override the api version used for api requests made by this command
|
|
@@ -555,18 +563,29 @@ GLOBAL FLAGS
|
|
|
555
563
|
--json Format output as json.
|
|
556
564
|
|
|
557
565
|
DESCRIPTION
|
|
558
|
-
Publish an
|
|
566
|
+
Publish an authoring bundle to your org, which results in a new next-gen agent.
|
|
567
|
+
|
|
568
|
+
When you publish an authoring bundle to your org, a number of things happen. First, this command validates that the
|
|
569
|
+
agent file (with extension ".agent") successfully compiles. Then the authoring bundle metadata component is deployed
|
|
570
|
+
to the org, and all associated metadata components, such as the Bot, BotVersion, and GenAiXXX components, are either
|
|
571
|
+
created or updated. The org then creates a new next-gen agent based on the deployed authoring bundle and associated
|
|
572
|
+
metadata. Finally, all the metadata associated with the new agent is retrieved back to your local DX project.
|
|
573
|
+
|
|
574
|
+
Authoring bundles are metadata types that represent the next-gen Salesforce agents. Their exact metadata name is
|
|
575
|
+
AiAuthoringBundle and they consist of a standard "\*-meta.xml" metadata file and an agent file (with extension
|
|
576
|
+
".agent") that fully describes the next-gen agent.
|
|
559
577
|
|
|
560
|
-
|
|
578
|
+
This command requires the API name of the authoring bundle; if you don't provide it with the --api-name flag, the
|
|
579
|
+
command prompts you for it.
|
|
561
580
|
|
|
562
581
|
EXAMPLES
|
|
563
|
-
Publish an
|
|
582
|
+
Publish an authoring bundle with API name MyAuthoringBundle to the org with alias "my-org", resulting in a new agent
|
|
583
|
+
named "My Fab Agent"::
|
|
564
584
|
|
|
565
|
-
$ sf agent publish authoring-bundle --api-name
|
|
566
|
-
myorg@example.com
|
|
585
|
+
$ sf agent publish authoring-bundle --api-name MyAuthoringbundle --agent-name "My Fab Agent" --target-org my-org
|
|
567
586
|
```
|
|
568
587
|
|
|
569
|
-
_See code: [src/commands/agent/publish/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
588
|
+
_See code: [src/commands/agent/publish/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/publish/authoring-bundle.ts)_
|
|
570
589
|
|
|
571
590
|
## `sf agent test create`
|
|
572
591
|
|
|
@@ -621,7 +640,7 @@ EXAMPLES
|
|
|
621
640
|
$ sf agent test create --spec specs/Resort_Manager-testSpec.yaml --api-name Resort_Manager_Test --preview
|
|
622
641
|
```
|
|
623
642
|
|
|
624
|
-
_See code: [src/commands/agent/test/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
643
|
+
_See code: [src/commands/agent/test/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/test/create.ts)_
|
|
625
644
|
|
|
626
645
|
## `sf agent test list`
|
|
627
646
|
|
|
@@ -656,7 +675,7 @@ EXAMPLES
|
|
|
656
675
|
$ sf agent test list --target-org my-org
|
|
657
676
|
```
|
|
658
677
|
|
|
659
|
-
_See code: [src/commands/agent/test/list.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
678
|
+
_See code: [src/commands/agent/test/list.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/test/list.ts)_
|
|
660
679
|
|
|
661
680
|
## `sf agent test results`
|
|
662
681
|
|
|
@@ -722,7 +741,7 @@ FLAG DESCRIPTIONS
|
|
|
722
741
|
expression when using custom evaluations.
|
|
723
742
|
```
|
|
724
743
|
|
|
725
|
-
_See code: [src/commands/agent/test/results.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
744
|
+
_See code: [src/commands/agent/test/results.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/test/results.ts)_
|
|
726
745
|
|
|
727
746
|
## `sf agent test resume`
|
|
728
747
|
|
|
@@ -795,7 +814,7 @@ FLAG DESCRIPTIONS
|
|
|
795
814
|
expression when using custom evaluations.
|
|
796
815
|
```
|
|
797
816
|
|
|
798
|
-
_See code: [src/commands/agent/test/resume.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
817
|
+
_See code: [src/commands/agent/test/resume.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/test/resume.ts)_
|
|
799
818
|
|
|
800
819
|
## `sf agent test run`
|
|
801
820
|
|
|
@@ -869,18 +888,18 @@ FLAG DESCRIPTIONS
|
|
|
869
888
|
expression when using custom evaluations.
|
|
870
889
|
```
|
|
871
890
|
|
|
872
|
-
_See code: [src/commands/agent/test/run.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
891
|
+
_See code: [src/commands/agent/test/run.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/test/run.ts)_
|
|
873
892
|
|
|
874
893
|
## `sf agent validate authoring-bundle`
|
|
875
894
|
|
|
876
|
-
Validate
|
|
895
|
+
Validate a local authoring bundle to ensure it compiles successfully and can be used to create a next-gen agent.
|
|
877
896
|
|
|
878
897
|
```
|
|
879
898
|
USAGE
|
|
880
899
|
$ sf agent validate authoring-bundle -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-n <value>]
|
|
881
900
|
|
|
882
901
|
FLAGS
|
|
883
|
-
-n, --api-name=<value> API name of the
|
|
902
|
+
-n, --api-name=<value> API name of the authoring bundle you want to validate.
|
|
884
903
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
885
904
|
configuration variable is already set.
|
|
886
905
|
--api-version=<value> Override the api version used for api requests made by this command
|
|
@@ -890,16 +909,25 @@ GLOBAL FLAGS
|
|
|
890
909
|
--json Format output as json.
|
|
891
910
|
|
|
892
911
|
DESCRIPTION
|
|
893
|
-
Validate
|
|
912
|
+
Validate a local authoring bundle to ensure it compiles successfully and can be used to create a next-gen agent.
|
|
913
|
+
|
|
914
|
+
Authoring bundles are metadata types that represent the next-gen Salesforce agents. Their exact metadata name is
|
|
915
|
+
AiAuthoringBundle and they consist of a standard "\*-meta.xml" metadata file and an agent file (with extension
|
|
916
|
+
".agent") that fully describes the next-gen agent. Generate a local authoring bundle with the "agent generate
|
|
917
|
+
authoring-bundle" command.
|
|
918
|
+
|
|
919
|
+
This command validates that the agent file (with extension ".agent") that's part of the authoring bundle compiles
|
|
920
|
+
without errors and can later be used to successfully create a next-gen agent.
|
|
894
921
|
|
|
895
|
-
|
|
922
|
+
This command requires the API name of the authoring bundle; if you don't provide it with the --api-name flag, the
|
|
923
|
+
command prompts you for it.
|
|
896
924
|
|
|
897
925
|
EXAMPLES
|
|
898
|
-
Validate
|
|
926
|
+
Validate a local authoring bundle with API name MyAuthoringBundle:
|
|
899
927
|
|
|
900
|
-
$ sf agent validate authoring-bundle --api-name
|
|
928
|
+
$ sf agent validate authoring-bundle --api-name MyAuthoringBundle
|
|
901
929
|
```
|
|
902
930
|
|
|
903
|
-
_See code: [src/commands/agent/validate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-
|
|
931
|
+
_See code: [src/commands/agent/validate/authoring-bundle.ts](https://github.com/salesforcecli/plugin-agent/blob/1.24.14-nga.0/src/commands/agent/validate/authoring-bundle.ts)_
|
|
904
932
|
|
|
905
933
|
<!-- commandsstop -->
|
|
@@ -115,7 +115,7 @@ export default class AgentGenerateAuthoringBundle extends SfCommand {
|
|
|
115
115
|
// Write Agent file
|
|
116
116
|
const conn = targetOrg.getConnection(flags['api-version']);
|
|
117
117
|
const specContents = YAML.parse(readFileSync(spec, 'utf8'));
|
|
118
|
-
const agent = await Agent.
|
|
118
|
+
const agent = await Agent.createAgentScript(conn, { ...specContents, ...{ name, developerName: bundleApiName } });
|
|
119
119
|
// Create output directory if it doesn't exist
|
|
120
120
|
mkdirSync(targetOutputDir, { recursive: true });
|
|
121
121
|
writeFileSync(agentPath, agent);
|
|
@@ -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,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAgB,MAAM,oBAAoB,CAAC;AACzD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAmB,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,iCAAiC,CAAC,CAAC;AAQtG,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,SAA6C;IAC9F,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;IAC5D,MAAM,CAAU,eAAe,GAAG,IAAI,CAAC;IAEvC,MAAM,CAAU,KAAK,GAAG;QAC7B,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;SACvD,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,IAAI;SACb,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;YAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;YACxD,IAAI,EAAE,GAAG;SACV,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,IAAI,EAAE,GAAG;SACV,CAAC;KACH,CAAC;IAEM,MAAM,CAAU,iBAAiB,GAAG;QAC1C,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,QAAQ,EAAE,CAAC,CAAS,EAAoB,EAAE,CACxC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,iDAAiD;YAC1E,QAAQ,EAAE,IAAI;SACf;QACD,UAAU,EAAE;YACV,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACtD,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;YAC3D,QAAQ,EAAE,CAAC,CAAS,EAAoB,EAAE;gBACxC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBAClB,OAAO,wCAAwC,CAAC;gBAClD,CAAC;gBACD,MAAM,KAAK,GAAG,qCAAqC,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnB,OAAO,mBAAmB,CAAC;gBAC7B,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,QAAQ,EAAE,CAAC,CAAS,EAAoB,EAAE;gBACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1B,OAAO,iDAAiD,CAAC;gBAC3D,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,QAAQ,EAAE,IAAI;SACf;KACwC,CAAC;IAErC,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACjE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAEnE,6CAA6C;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,iBAAiB,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE7G,6CAA6C;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE5G,kDAAkD;QAClD,IAAI,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC;gBACxC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;gBACrD,QAAQ,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,QAAQ;gBAC7E,OAAO,EAAE,aAAa;gBACtB,KAAK;aACN,CAAC,CAAC;YACH,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;gBAC1B,aAAa,GAAG,aAAa,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7F,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC;YAEjG,sBAAsB;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,aAAa,QAAQ,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,aAAa,kBAAkB,CAAC,CAAC;YAE9E,mBAAmB;YACnB,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAiB,CAAC;YAC5E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"authoring-bundle.js","sourceRoot":"","sources":["../../../../src/commands/agent/generate/authoring-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
+
import { AuthInfo } from '@salesforce/core';
|
|
2
3
|
type BotVersionStatus = {
|
|
3
4
|
Status: 'Active' | 'Inactive';
|
|
4
5
|
};
|
|
@@ -9,15 +10,6 @@ export type AgentData = {
|
|
|
9
10
|
records: BotVersionStatus[];
|
|
10
11
|
};
|
|
11
12
|
};
|
|
12
|
-
type Choice<Value> = {
|
|
13
|
-
value: Value;
|
|
14
|
-
name?: string;
|
|
15
|
-
disabled?: boolean | string;
|
|
16
|
-
};
|
|
17
|
-
type AgentValue = {
|
|
18
|
-
Id: string;
|
|
19
|
-
DeveloperName: string;
|
|
20
|
-
};
|
|
21
13
|
export declare const UNSUPPORTED_AGENTS: string[];
|
|
22
14
|
export type AgentPreviewResult = void;
|
|
23
15
|
export default class AgentPreview extends SfCommand<AgentPreviewResult> {
|
|
@@ -34,12 +26,14 @@ export default class AgentPreview extends SfCommand<AgentPreviewResult> {
|
|
|
34
26
|
'authoring-bundle': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
27
|
'output-dir': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
28
|
'apex-debug': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
29
|
+
'use-live-actions': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
37
30
|
};
|
|
38
31
|
run(): Promise<AgentPreviewResult>;
|
|
32
|
+
private getAgentChoices;
|
|
39
33
|
}
|
|
40
34
|
export declare const agentIsUnsupported: (devName: string) => boolean;
|
|
41
35
|
export declare const agentIsInactive: (agent: AgentData) => boolean;
|
|
42
36
|
export declare const validateAgent: (agent: AgentData) => boolean;
|
|
43
|
-
export declare const
|
|
37
|
+
export declare const getClientAppsFromAuth: (authInfo: AuthInfo) => string[];
|
|
44
38
|
export declare const resolveOutputDir: (outputDir: string | undefined, apexDebug: boolean | undefined) => Promise<string | undefined>;
|
|
45
39
|
export {};
|
|
@@ -13,14 +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 {
|
|
18
|
-
import {
|
|
16
|
+
import * as path from 'node:path';
|
|
17
|
+
import { join, resolve } from 'node:path';
|
|
18
|
+
import { globSync } from 'glob';
|
|
19
|
+
import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
|
|
20
|
+
import { AuthInfo, Connection, Lifecycle, Messages, SfError } from '@salesforce/core';
|
|
19
21
|
import React from 'react';
|
|
20
22
|
import { render } from 'ink';
|
|
21
23
|
import { env } from '@salesforce/kit';
|
|
22
|
-
import { AgentPreview as Preview } from '@salesforce/agents';
|
|
23
|
-
import {
|
|
24
|
+
import { AgentPreview as Preview, AgentSimulate, AgentSource, findAuthoringBundle, } from '@salesforce/agents';
|
|
25
|
+
import { confirm, input, select } from '@inquirer/prompts';
|
|
24
26
|
import { AgentPreviewReact } from '../../components/agent-preview-react.js';
|
|
25
27
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
26
28
|
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.preview');
|
|
@@ -55,58 +57,130 @@ export default class AgentPreview extends SfCommand {
|
|
|
55
57
|
summary: messages.getMessage('flags.apex-debug.summary'),
|
|
56
58
|
char: 'x',
|
|
57
59
|
}),
|
|
60
|
+
'use-live-actions': Flags.boolean({
|
|
61
|
+
summary: messages.getMessage('flags.use-live-actions.summary'),
|
|
62
|
+
default: false,
|
|
63
|
+
}),
|
|
58
64
|
};
|
|
59
65
|
async run() {
|
|
66
|
+
// STAGES OF PREVIEW
|
|
67
|
+
// get user's agent selection either from flags, or interaction
|
|
68
|
+
// if .agent selected, use the AgentSimulate class to preview
|
|
69
|
+
// if published agent, use AgentPreview for preview
|
|
70
|
+
// based on agent, differing auth mechanisms required
|
|
60
71
|
const { flags } = await this.parse(AgentPreview);
|
|
61
|
-
const { 'api-name': apiNameFlag } = flags;
|
|
72
|
+
const { 'api-name': apiNameFlag, 'use-live-actions': useLiveActions } = flags;
|
|
62
73
|
const conn = flags['target-org'].getConnection(flags['api-version']);
|
|
63
|
-
const
|
|
64
|
-
username: flags['target-org'].getUsername(),
|
|
65
|
-
});
|
|
66
|
-
if (!(flags['client-app'] ?? env.getString('SF_DEMO_AGENT_CLIENT_APP'))) {
|
|
67
|
-
throw new SfError('SF_DEMO_AGENT_CLIENT_APP is unset!');
|
|
68
|
-
}
|
|
69
|
-
const jwtConn = await Connection.create({
|
|
70
|
-
authInfo,
|
|
71
|
-
clientApp: env.getString('SF_DEMO_AGENT_CLIENT_APP') ?? flags['client-app'],
|
|
72
|
-
});
|
|
73
|
-
const agentsQuery = await conn.query('SELECT Id, DeveloperName, (SELECT Status FROM BotVersions) FROM BotDefinition WHERE IsDeleted = false');
|
|
74
|
-
if (agentsQuery.totalSize === 0)
|
|
75
|
-
throw new SfError('No Agents found in the org');
|
|
76
|
-
const agentsInOrg = agentsQuery.records;
|
|
74
|
+
const agentsInOrg = (await conn.query('SELECT Id, DeveloperName, (SELECT Status FROM BotVersions) FROM BotDefinition WHERE IsDeleted = false')).records;
|
|
77
75
|
let selectedAgent;
|
|
78
76
|
if (flags['authoring-bundle']) {
|
|
79
|
-
|
|
80
|
-
const
|
|
77
|
+
// user specified --authoring-bundle, we'll find the script and use it
|
|
78
|
+
const bundlePath = findAuthoringBundle(this.project.getPath(), flags['authoring-bundle']);
|
|
79
|
+
if (!bundlePath) {
|
|
80
|
+
throw new SfError(`Could not find authoring bundle for ${flags['authoring-bundle']}`);
|
|
81
|
+
}
|
|
81
82
|
selectedAgent = {
|
|
82
|
-
Id: agent?.Id ??
|
|
83
|
-
`Couldn't find an agent in ${agentsQuery.records.map((a) => a.DeveloperName).join(', ')} matching ${envAgentName ?? '!SF_DEMO_AGENT is unset!'}`,
|
|
84
83
|
DeveloperName: flags['authoring-bundle'],
|
|
84
|
+
source: AgentSource.SCRIPT,
|
|
85
|
+
path: join(bundlePath, `${flags['authoring-bundle']}.agent`),
|
|
85
86
|
};
|
|
86
87
|
}
|
|
87
88
|
else if (apiNameFlag) {
|
|
88
|
-
|
|
89
|
+
// user specified --api-name, it should be in the list of agents from the org
|
|
90
|
+
const agent = agentsInOrg.find((a) => a.DeveloperName === apiNameFlag);
|
|
91
|
+
if (!agent)
|
|
92
|
+
throw new Error(`No valid Agents were found with the Api Name ${apiNameFlag}.`);
|
|
93
|
+
validateAgent(agent);
|
|
94
|
+
selectedAgent = {
|
|
95
|
+
Id: agent.Id,
|
|
96
|
+
DeveloperName: agent.DeveloperName,
|
|
97
|
+
source: AgentSource.PUBLISHED,
|
|
98
|
+
};
|
|
89
99
|
if (!selectedAgent)
|
|
90
100
|
throw new Error(`No valid Agents were found with the Api Name ${apiNameFlag}.`);
|
|
91
|
-
validateAgent(selectedAgent);
|
|
92
101
|
}
|
|
93
102
|
else {
|
|
94
103
|
selectedAgent = await select({
|
|
95
104
|
message: 'Select an agent',
|
|
96
|
-
choices: getAgentChoices(agentsInOrg),
|
|
105
|
+
choices: this.getAgentChoices(agentsInOrg),
|
|
97
106
|
});
|
|
98
107
|
}
|
|
108
|
+
// we have the selected agent, create the appropriate connection
|
|
109
|
+
const authInfo = await AuthInfo.create({
|
|
110
|
+
username: flags['target-org'].getUsername(),
|
|
111
|
+
});
|
|
112
|
+
// Get client app - check flag first, then auth file, then env var
|
|
113
|
+
let clientApp = flags['client-app'];
|
|
114
|
+
if (!clientApp && selectedAgent?.source === AgentSource.PUBLISHED) {
|
|
115
|
+
const clientApps = getClientAppsFromAuth(authInfo);
|
|
116
|
+
if (clientApps.length === 1) {
|
|
117
|
+
clientApp = clientApps[0];
|
|
118
|
+
}
|
|
119
|
+
else if (clientApps.length > 1) {
|
|
120
|
+
clientApp = await select({
|
|
121
|
+
message: 'Select a client app',
|
|
122
|
+
choices: clientApps.map((app) => ({ value: app, name: app })),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
throw new SfError('No client app found.');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (useLiveActions && selectedAgent.source === AgentSource.PUBLISHED) {
|
|
130
|
+
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');
|
|
131
|
+
}
|
|
132
|
+
const jwtConn = selectedAgent?.source === AgentSource.PUBLISHED
|
|
133
|
+
? await Connection.create({
|
|
134
|
+
authInfo,
|
|
135
|
+
clientApp,
|
|
136
|
+
})
|
|
137
|
+
: await Connection.create({ authInfo });
|
|
99
138
|
const outputDir = await resolveOutputDir(flags['output-dir'], flags['apex-debug']);
|
|
100
|
-
|
|
101
|
-
agentPreview.
|
|
139
|
+
// Both classes share the same interface for the methods we need
|
|
140
|
+
const agentPreview = selectedAgent.source === AgentSource.PUBLISHED
|
|
141
|
+
? new Preview(jwtConn, selectedAgent.Id)
|
|
142
|
+
: new AgentSimulate(jwtConn, selectedAgent.path, useLiveActions);
|
|
143
|
+
agentPreview.setApexDebugMode(flags['apex-debug']);
|
|
102
144
|
const instance = render(React.createElement(AgentPreviewReact, {
|
|
103
145
|
connection: conn,
|
|
104
146
|
agent: agentPreview,
|
|
105
147
|
name: selectedAgent.DeveloperName,
|
|
106
148
|
outputDir,
|
|
149
|
+
isLocalAgent: selectedAgent.source === AgentSource.SCRIPT,
|
|
107
150
|
}), { exitOnCtrlC: false });
|
|
108
151
|
await instance.waitUntilExit();
|
|
109
152
|
}
|
|
153
|
+
getAgentChoices(agents) {
|
|
154
|
+
const choices = [];
|
|
155
|
+
// Add org agents
|
|
156
|
+
for (const agent of agents) {
|
|
157
|
+
if (agentIsInactive(agent) || agentIsUnsupported(agent.DeveloperName)) {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
choices.push({
|
|
161
|
+
name: `${agent.DeveloperName} (Published)`,
|
|
162
|
+
value: {
|
|
163
|
+
Id: agent.Id,
|
|
164
|
+
DeveloperName: agent.DeveloperName,
|
|
165
|
+
source: AgentSource.PUBLISHED,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
// Add local agents from .agent files
|
|
170
|
+
const localAgentPaths = globSync('**/*.agent', { cwd: this.project.getPath() });
|
|
171
|
+
for (const agentPath of localAgentPaths) {
|
|
172
|
+
const agentName = path.basename(agentPath, '.agent');
|
|
173
|
+
choices.push({
|
|
174
|
+
name: `${agentName} (Agent Script)`,
|
|
175
|
+
value: {
|
|
176
|
+
DeveloperName: agentName,
|
|
177
|
+
source: AgentSource.SCRIPT,
|
|
178
|
+
path: path.join(this.project.getPath(), agentPath),
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return choices;
|
|
183
|
+
}
|
|
110
184
|
}
|
|
111
185
|
export const agentIsUnsupported = (devName) => UNSUPPORTED_AGENTS.includes(devName);
|
|
112
186
|
export const agentIsInactive = (agent) =>
|
|
@@ -125,21 +199,7 @@ export const validateAgent = (agent) => {
|
|
|
125
199
|
}
|
|
126
200
|
return true;
|
|
127
201
|
};
|
|
128
|
-
export const
|
|
129
|
-
let disabled = false;
|
|
130
|
-
if (agentIsInactive(agent))
|
|
131
|
-
disabled = '(Inactive)';
|
|
132
|
-
if (agentIsUnsupported(agent.DeveloperName))
|
|
133
|
-
disabled = '(Not Supported)';
|
|
134
|
-
return {
|
|
135
|
-
name: agent.DeveloperName,
|
|
136
|
-
value: {
|
|
137
|
-
Id: agent.Id,
|
|
138
|
-
DeveloperName: agent.DeveloperName,
|
|
139
|
-
},
|
|
140
|
-
disabled,
|
|
141
|
-
};
|
|
142
|
-
});
|
|
202
|
+
export const getClientAppsFromAuth = (authInfo) => Object.keys(authInfo.getFields().clientApps ?? {});
|
|
143
203
|
export const resolveOutputDir = async (outputDir, apexDebug) => {
|
|
144
204
|
if (!outputDir) {
|
|
145
205
|
const response = apexDebug
|
|
@@ -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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"}
|