@salesforce/plugin-agent 1.7.3-dev.0 → 1.7.3-dev.2
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 +49 -49
- package/lib/commands/agent/generate/{definition.d.ts → test-definition.d.ts} +1 -1
- package/lib/commands/agent/generate/{definition.js → test-definition.js} +3 -3
- package/lib/commands/agent/generate/test-definition.js.map +1 -0
- package/lib/commands/agent/generate/{testset.d.ts → test-set.d.ts} +0 -2
- package/lib/commands/agent/generate/{testset.js → test-set.js} +69 -47
- package/lib/commands/agent/generate/test-set.js.map +1 -0
- package/lib/flags.js +1 -1
- package/lib/handleTestResults.js +24 -8
- package/lib/handleTestResults.js.map +1 -1
- package/messages/{agent.generate.definition.md → agent.generate.test-definition.md} +1 -1
- package/messages/{agent.generate.testset.md → agent.generate.test-set.md} +1 -1
- package/npm-shrinkwrap.json +54 -9
- package/oclif.lock +14 -32
- package/oclif.manifest.json +59 -59
- package/package.json +5 -4
- package/lib/commands/agent/generate/definition.js.map +0 -1
- package/lib/commands/agent/generate/testset.js.map +0 -1
package/README.md
CHANGED
|
@@ -62,9 +62,9 @@ sf plugins
|
|
|
62
62
|
<!-- commands -->
|
|
63
63
|
|
|
64
64
|
- [`sf agent create`](#sf-agent-create)
|
|
65
|
-
- [`sf agent generate definition`](#sf-agent-generate-definition)
|
|
66
65
|
- [`sf agent generate spec`](#sf-agent-generate-spec)
|
|
67
|
-
- [`sf agent generate
|
|
66
|
+
- [`sf agent generate test-definition`](#sf-agent-generate-test-definition)
|
|
67
|
+
- [`sf agent generate test-set`](#sf-agent-generate-test-set)
|
|
68
68
|
- [`sf agent preview`](#sf-agent-preview)
|
|
69
69
|
- [`sf agent test cancel`](#sf-agent-test-cancel)
|
|
70
70
|
- [`sf agent test results`](#sf-agent-test-results)
|
|
@@ -111,32 +111,7 @@ EXAMPLES
|
|
|
111
111
|
$ sf agent create --name CustomerSupportAgent --spec ./config/agentSpec.json --target-org my-org
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
_See code: [src/commands/agent/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.
|
|
115
|
-
|
|
116
|
-
## `sf agent generate definition`
|
|
117
|
-
|
|
118
|
-
Interactively generate a new AiEvaluationDefinition.
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
USAGE
|
|
122
|
-
$ sf agent generate definition [--flags-dir <value>]
|
|
123
|
-
|
|
124
|
-
GLOBAL FLAGS
|
|
125
|
-
--flags-dir=<value> Import flag values from a directory.
|
|
126
|
-
|
|
127
|
-
DESCRIPTION
|
|
128
|
-
Interactively generate a new AiEvaluationDefinition.
|
|
129
|
-
|
|
130
|
-
This command will prompt you for the necessary information to create a new AiEvaluationDefinition. The definition will
|
|
131
|
-
be saved to the `aiEvaluationDefinitions` directory in the project.
|
|
132
|
-
|
|
133
|
-
You must have the `Bots` and `AiEvaluationTestSets` metadata types present in your project to use this command.
|
|
134
|
-
|
|
135
|
-
EXAMPLES
|
|
136
|
-
$ sf agent generate definition
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
_See code: [src/commands/agent/generate/definition.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.0/src/commands/agent/generate/definition.ts)_
|
|
114
|
+
_See code: [src/commands/agent/create.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/create.ts)_
|
|
140
115
|
|
|
141
116
|
## `sf agent generate spec`
|
|
142
117
|
|
|
@@ -197,30 +172,55 @@ EXAMPLES
|
|
|
197
172
|
$ sf agent generate spec --output-dir specs --target-org my-org
|
|
198
173
|
```
|
|
199
174
|
|
|
200
|
-
_See code: [src/commands/agent/generate/spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.
|
|
175
|
+
_See code: [src/commands/agent/generate/spec.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/generate/spec.ts)_
|
|
176
|
+
|
|
177
|
+
## `sf agent generate test-definition`
|
|
178
|
+
|
|
179
|
+
Interactively generate a new AI Evaluation Test Definition.
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
USAGE
|
|
183
|
+
$ sf agent generate test-definition [--flags-dir <value>]
|
|
184
|
+
|
|
185
|
+
GLOBAL FLAGS
|
|
186
|
+
--flags-dir=<value> Import flag values from a directory.
|
|
187
|
+
|
|
188
|
+
DESCRIPTION
|
|
189
|
+
Interactively generate a new AI Evaluation Test Definition.
|
|
190
|
+
|
|
191
|
+
This command will prompt you for the necessary information to create a new AiEvaluationDefinition. The definition will
|
|
192
|
+
be saved to the `aiEvaluationDefinitions` directory in the project.
|
|
193
|
+
|
|
194
|
+
You must have the `Bots` and `AiEvaluationTestSets` metadata types present in your project to use this command.
|
|
195
|
+
|
|
196
|
+
EXAMPLES
|
|
197
|
+
$ sf agent generate test-definition
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
_See code: [src/commands/agent/generate/test-definition.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/generate/test-definition.ts)_
|
|
201
201
|
|
|
202
|
-
## `sf agent generate
|
|
202
|
+
## `sf agent generate test-set`
|
|
203
203
|
|
|
204
|
-
Interactively generate
|
|
204
|
+
Interactively generate a new Set of AI Evaluation test cases.
|
|
205
205
|
|
|
206
206
|
```
|
|
207
207
|
USAGE
|
|
208
|
-
$ sf agent generate
|
|
208
|
+
$ sf agent generate test-set [--flags-dir <value>]
|
|
209
209
|
|
|
210
210
|
GLOBAL FLAGS
|
|
211
211
|
--flags-dir=<value> Import flag values from a directory.
|
|
212
212
|
|
|
213
213
|
DESCRIPTION
|
|
214
|
-
Interactively generate
|
|
214
|
+
Interactively generate a new Set of AI Evaluation test cases.
|
|
215
215
|
|
|
216
216
|
Answer the prompts to generate an AiEvaluationTestSet that will be written to a file. You can then run "sf agent
|
|
217
217
|
generate definition" to generate the AiEvaluationDefinition that can be used to evaluate the test set.
|
|
218
218
|
|
|
219
219
|
EXAMPLES
|
|
220
|
-
$ sf agent generate
|
|
220
|
+
$ sf agent generate test-set
|
|
221
221
|
```
|
|
222
222
|
|
|
223
|
-
_See code: [src/commands/agent/generate/
|
|
223
|
+
_See code: [src/commands/agent/generate/test-set.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/generate/test-set.ts)_
|
|
224
224
|
|
|
225
225
|
## `sf agent preview`
|
|
226
226
|
|
|
@@ -255,7 +255,7 @@ FLAG DESCRIPTIONS
|
|
|
255
255
|
the API name of the agent? (TBD based on agents library)
|
|
256
256
|
```
|
|
257
257
|
|
|
258
|
-
_See code: [src/commands/agent/preview.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.
|
|
258
|
+
_See code: [src/commands/agent/preview.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/preview.ts)_
|
|
259
259
|
|
|
260
260
|
## `sf agent test cancel`
|
|
261
261
|
|
|
@@ -292,7 +292,7 @@ EXAMPLES
|
|
|
292
292
|
$ sf agent test cancel --job-id 4KBfake0000003F4AQ --target-org my-org
|
|
293
293
|
```
|
|
294
294
|
|
|
295
|
-
_See code: [src/commands/agent/test/cancel.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.
|
|
295
|
+
_See code: [src/commands/agent/test/cancel.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/test/cancel.ts)_
|
|
296
296
|
|
|
297
297
|
## `sf agent test results`
|
|
298
298
|
|
|
@@ -301,10 +301,10 @@ Get the results of a completed agent test run.
|
|
|
301
301
|
```
|
|
302
302
|
USAGE
|
|
303
303
|
$ sf agent test results -o <value> -i <value> [--json] [--flags-dir <value>] [--api-version <value>] [--result-format
|
|
304
|
-
json|human|junit|tap] [-
|
|
304
|
+
json|human|junit|tap] [-d <value>]
|
|
305
305
|
|
|
306
306
|
FLAGS
|
|
307
|
-
-
|
|
307
|
+
-d, --output-dir=<value> Directory to write the agent test results into.
|
|
308
308
|
-i, --job-id=<value> (required) Job ID of the completed agent test run.
|
|
309
309
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
310
310
|
configuration variable is already set.
|
|
@@ -342,13 +342,13 @@ EXAMPLES
|
|
|
342
342
|
$ sf agent test results --use-most-recent --output-dir ./test-results --result-format json
|
|
343
343
|
|
|
344
344
|
FLAG DESCRIPTIONS
|
|
345
|
-
-
|
|
345
|
+
-d, --output-dir=<value> Directory to write the agent test results into.
|
|
346
346
|
|
|
347
347
|
If the agent test run completes, write the results to the specified directory. If the test is still running, the
|
|
348
348
|
test results aren't written.
|
|
349
349
|
```
|
|
350
350
|
|
|
351
|
-
_See code: [src/commands/agent/test/results.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.
|
|
351
|
+
_See code: [src/commands/agent/test/results.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/test/results.ts)_
|
|
352
352
|
|
|
353
353
|
## `sf agent test resume`
|
|
354
354
|
|
|
@@ -357,10 +357,10 @@ Resume an agent test that you previously started in your org so you can view the
|
|
|
357
357
|
```
|
|
358
358
|
USAGE
|
|
359
359
|
$ sf agent test resume -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-i <value>] [-r] [-w
|
|
360
|
-
<value>] [--result-format json|human|junit|tap] [-
|
|
360
|
+
<value>] [--result-format json|human|junit|tap] [-d <value>]
|
|
361
361
|
|
|
362
362
|
FLAGS
|
|
363
|
-
-
|
|
363
|
+
-d, --output-dir=<value> Directory to write the agent test results into.
|
|
364
364
|
-i, --job-id=<value> Job ID of the original agent test run.
|
|
365
365
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
366
366
|
configuration variable is already set.
|
|
@@ -405,13 +405,13 @@ EXAMPLES
|
|
|
405
405
|
$ sf agent test resume --use-most-recent --output-dir ./test-results --result-format json
|
|
406
406
|
|
|
407
407
|
FLAG DESCRIPTIONS
|
|
408
|
-
-
|
|
408
|
+
-d, --output-dir=<value> Directory to write the agent test results into.
|
|
409
409
|
|
|
410
410
|
If the agent test run completes, write the results to the specified directory. If the test is still running, the
|
|
411
411
|
test results aren't written.
|
|
412
412
|
```
|
|
413
413
|
|
|
414
|
-
_See code: [src/commands/agent/test/resume.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.
|
|
414
|
+
_See code: [src/commands/agent/test/resume.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/test/resume.ts)_
|
|
415
415
|
|
|
416
416
|
## `sf agent test run`
|
|
417
417
|
|
|
@@ -420,10 +420,10 @@ Start an agent test in your org.
|
|
|
420
420
|
```
|
|
421
421
|
USAGE
|
|
422
422
|
$ sf agent test run -o <value> -n <value> [--json] [--flags-dir <value>] [--api-version <value>] [-w <value>]
|
|
423
|
-
[--result-format json|human|junit|tap] [-
|
|
423
|
+
[--result-format json|human|junit|tap] [-d <value>]
|
|
424
424
|
|
|
425
425
|
FLAGS
|
|
426
|
-
-
|
|
426
|
+
-d, --output-dir=<value> Directory to write the agent test results into.
|
|
427
427
|
-n, --name=<value> (required) Name of the agent test to start.
|
|
428
428
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
429
429
|
configuration variable is already set.
|
|
@@ -468,12 +468,12 @@ EXAMPLES
|
|
|
468
468
|
$ sf agent test run --name MyAgentTest --wait 10 --output-dir ./test-results --result-format json
|
|
469
469
|
|
|
470
470
|
FLAG DESCRIPTIONS
|
|
471
|
-
-
|
|
471
|
+
-d, --output-dir=<value> Directory to write the agent test results into.
|
|
472
472
|
|
|
473
473
|
If the agent test run completes, write the results to the specified directory. If the test is still running, the
|
|
474
474
|
test results aren't written.
|
|
475
475
|
```
|
|
476
476
|
|
|
477
|
-
_See code: [src/commands/agent/test/run.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.
|
|
477
|
+
_See code: [src/commands/agent/test/run.ts](https://github.com/salesforcecli/plugin-agent/blob/1.7.3-dev.2/src/commands/agent/test/run.ts)_
|
|
478
478
|
|
|
479
479
|
<!-- commandsstop -->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
-
export default class
|
|
2
|
+
export default class AgentGenerateTestDefinition extends SfCommand<void> {
|
|
3
3
|
static readonly summary: string;
|
|
4
4
|
static readonly description: string;
|
|
5
5
|
static readonly examples: string[];
|
|
@@ -12,8 +12,8 @@ import { input, select } from '@inquirer/prompts';
|
|
|
12
12
|
import { theme } from '../../../inquirer-theme.js';
|
|
13
13
|
import { readDir } from '../../../read-dir.js';
|
|
14
14
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
15
|
-
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.generate.definition');
|
|
16
|
-
export default class
|
|
15
|
+
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.generate.test-definition');
|
|
16
|
+
export default class AgentGenerateTestDefinition extends SfCommand {
|
|
17
17
|
static summary = messages.getMessage('summary');
|
|
18
18
|
static description = messages.getMessage('description');
|
|
19
19
|
static examples = messages.getMessages('examples');
|
|
@@ -73,4 +73,4 @@ export default class AgentGenerateDefinition extends SfCommand {
|
|
|
73
73
|
await writeFile(definitionPath, cleanedXml);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
//# sourceMappingURL=definition.js.map
|
|
76
|
+
//# sourceMappingURL=test-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-definition.js","sourceRoot":"","sources":["../../../../src/commands/agent/generate/test-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,40 +5,75 @@
|
|
|
5
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
6
|
*/
|
|
7
7
|
import { dirname, join } from 'node:path';
|
|
8
|
-
import { mkdir, writeFile } from 'node:fs/promises';
|
|
8
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
9
9
|
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
10
10
|
import { Messages } from '@salesforce/core';
|
|
11
11
|
import { select, input, confirm, checkbox } from '@inquirer/prompts';
|
|
12
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
12
13
|
import { theme } from '../../../inquirer-theme.js';
|
|
13
14
|
import { readDir } from '../../../read-dir.js';
|
|
14
15
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
15
|
-
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.generate.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.generate.test-set');
|
|
17
|
+
function castArray(value) {
|
|
18
|
+
return Array.isArray(value) ? value : [value];
|
|
19
|
+
}
|
|
20
|
+
async function promptForTestCase(genAiPlugins) {
|
|
19
21
|
const utterance = await input({
|
|
20
22
|
message: 'Utterance',
|
|
21
23
|
validate: (d) => d.length > 0 || 'utterance cannot be empty',
|
|
22
24
|
theme,
|
|
23
25
|
});
|
|
24
26
|
const customKey = '<OTHER>';
|
|
25
|
-
|
|
27
|
+
const topics = Object.keys(genAiPlugins);
|
|
28
|
+
const askForOtherActions = async () => (await input({
|
|
29
|
+
message: 'Expected action(s)',
|
|
30
|
+
validate: (d) => {
|
|
31
|
+
if (!d.length) {
|
|
32
|
+
return 'expected value cannot be empty';
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
},
|
|
36
|
+
theme,
|
|
37
|
+
}))
|
|
38
|
+
.split(',')
|
|
39
|
+
.map((a) => a.trim());
|
|
40
|
+
const askForBotRating = async () => input({
|
|
41
|
+
message: 'Expected response',
|
|
42
|
+
validate: (d) => {
|
|
43
|
+
if (!d.length) {
|
|
44
|
+
return 'expected value cannot be empty';
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
},
|
|
48
|
+
theme,
|
|
49
|
+
});
|
|
50
|
+
const topicSequenceExpectedValue = await select({
|
|
26
51
|
message: 'Expected topic',
|
|
27
52
|
choices: [...topics, customKey],
|
|
28
53
|
theme,
|
|
29
54
|
});
|
|
30
55
|
if (topicSequenceExpectedValue === customKey) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
56
|
+
return {
|
|
57
|
+
utterance,
|
|
58
|
+
topicSequenceExpectedValue: await input({
|
|
59
|
+
message: 'Expected topic',
|
|
60
|
+
validate: (d) => {
|
|
61
|
+
if (!d.length) {
|
|
62
|
+
return 'expected value cannot be empty';
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
},
|
|
66
|
+
theme,
|
|
67
|
+
}),
|
|
68
|
+
// If the user selects OTHER for the topic, then we don't have a genAiPlugin to get actions from so we ask for them for custom input
|
|
69
|
+
actionSequenceExpectedValue: await askForOtherActions(),
|
|
70
|
+
botRatingExpectedValue: await askForBotRating(),
|
|
71
|
+
};
|
|
41
72
|
}
|
|
73
|
+
const genAiPluginXml = await readFile(genAiPlugins[topicSequenceExpectedValue], 'utf-8');
|
|
74
|
+
const parser = new XMLParser();
|
|
75
|
+
const parsed = parser.parse(genAiPluginXml);
|
|
76
|
+
const actions = castArray(parsed.GenAiPlugin.genAiFunctions).map((f) => f.functionName);
|
|
42
77
|
let actionSequenceExpectedValue = await checkbox({
|
|
43
78
|
message: 'Expected action(s)',
|
|
44
79
|
choices: [...actions, customKey],
|
|
@@ -46,30 +81,10 @@ async function promptForTestCase({ topics, actions }) {
|
|
|
46
81
|
required: true,
|
|
47
82
|
});
|
|
48
83
|
if (actionSequenceExpectedValue.includes(customKey)) {
|
|
49
|
-
const additional =
|
|
50
|
-
message: 'Expected action(s)',
|
|
51
|
-
validate: (d) => {
|
|
52
|
-
if (!d.length) {
|
|
53
|
-
return 'expected value cannot be empty';
|
|
54
|
-
}
|
|
55
|
-
return true;
|
|
56
|
-
},
|
|
57
|
-
theme,
|
|
58
|
-
}))
|
|
59
|
-
.split(',')
|
|
60
|
-
.map((a) => a.trim());
|
|
84
|
+
const additional = await askForOtherActions();
|
|
61
85
|
actionSequenceExpectedValue = [...actionSequenceExpectedValue.filter((a) => a !== customKey), ...additional];
|
|
62
86
|
}
|
|
63
|
-
const botRatingExpectedValue = await
|
|
64
|
-
message: 'Expected response',
|
|
65
|
-
validate: (d) => {
|
|
66
|
-
if (!d.length) {
|
|
67
|
-
return 'expected value cannot be empty';
|
|
68
|
-
}
|
|
69
|
-
return true;
|
|
70
|
-
},
|
|
71
|
-
theme,
|
|
72
|
-
});
|
|
87
|
+
const botRatingExpectedValue = await askForBotRating();
|
|
73
88
|
return {
|
|
74
89
|
utterance,
|
|
75
90
|
actionSequenceExpectedValue,
|
|
@@ -113,25 +128,32 @@ export default class AgentGenerateTestset extends SfCommand {
|
|
|
113
128
|
static state = 'beta';
|
|
114
129
|
async run() {
|
|
115
130
|
const testSetName = await input({
|
|
116
|
-
message: 'What is the name of
|
|
131
|
+
message: 'What is the name of this set of test cases',
|
|
117
132
|
validate(d) {
|
|
118
|
-
//
|
|
119
|
-
if (!
|
|
120
|
-
return '
|
|
133
|
+
// ensure that it's not empty
|
|
134
|
+
if (!d.length) {
|
|
135
|
+
return 'Name cannot be empty';
|
|
121
136
|
}
|
|
122
137
|
return true;
|
|
138
|
+
// TODO: add back validation once we refine the regex
|
|
139
|
+
// check against FORTY_CHAR_API_NAME_REGEX
|
|
140
|
+
// if (!FORTY_CHAR_API_NAME_REGEX.test(d)) {
|
|
141
|
+
// return 'The non-namespaced portion an API name must begin with a letter, contain only letters, numbers, and underscores, not contain consecutive underscores, and not end with an underscore.';
|
|
142
|
+
// }
|
|
143
|
+
// return true;
|
|
123
144
|
},
|
|
124
145
|
});
|
|
125
146
|
const genAiPluginDir = join('force-app', 'main', 'default', 'genAiPlugins');
|
|
126
|
-
const genAiPlugins = (await readDir(genAiPluginDir)).map((genAiPlugin) =>
|
|
127
|
-
|
|
128
|
-
|
|
147
|
+
const genAiPlugins = Object.fromEntries((await readDir(genAiPluginDir)).map((genAiPlugin) => [
|
|
148
|
+
genAiPlugin.replace('.genAiPlugin-meta.xml', ''),
|
|
149
|
+
join(genAiPluginDir, genAiPlugin),
|
|
150
|
+
]));
|
|
129
151
|
const testCases = [];
|
|
130
152
|
do {
|
|
131
153
|
this.log();
|
|
132
154
|
this.styledHeader(`Adding test case #${testCases.length + 1}`);
|
|
133
155
|
// eslint-disable-next-line no-await-in-loop
|
|
134
|
-
testCases.push(await promptForTestCase(
|
|
156
|
+
testCases.push(await promptForTestCase(genAiPlugins));
|
|
135
157
|
} while ( // eslint-disable-next-line no-await-in-loop
|
|
136
158
|
await confirm({
|
|
137
159
|
message: 'Would you like to add another test case',
|
|
@@ -144,4 +166,4 @@ export default class AgentGenerateTestset extends SfCommand {
|
|
|
144
166
|
await writeFile(testSetPath, constructTestSetXML(testCases));
|
|
145
167
|
}
|
|
146
168
|
}
|
|
147
|
-
//# sourceMappingURL=
|
|
169
|
+
//# sourceMappingURL=test-set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-set.js","sourceRoot":"","sources":["../../../../src/commands/agent/generate/test-set.ts"],"names":[],"mappings":"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"}
|
package/lib/flags.js
CHANGED
|
@@ -14,7 +14,7 @@ export const resultFormatFlag = Flags.option({
|
|
|
14
14
|
summary: messages.getMessage('flags.result-format.summary'),
|
|
15
15
|
});
|
|
16
16
|
export const testOutputDirFlag = Flags.custom({
|
|
17
|
-
char: '
|
|
17
|
+
char: 'd',
|
|
18
18
|
description: messages.getMessage('flags.output-dir.description'),
|
|
19
19
|
summary: messages.getMessage('flags.output-dir.summary'),
|
|
20
20
|
});
|
package/lib/handleTestResults.js
CHANGED
|
@@ -21,30 +21,46 @@ export async function handleTestResults({ id, format, results, jsonEnabled, outp
|
|
|
21
21
|
const ux = new Ux({ jsonEnabled });
|
|
22
22
|
if (format === 'human') {
|
|
23
23
|
const formatted = await humanFormat(results);
|
|
24
|
-
ux.log(formatted);
|
|
25
24
|
if (outputDir) {
|
|
26
|
-
|
|
25
|
+
const file = `test-result-${id}.txt`;
|
|
26
|
+
await writeFileToDir(outputDir, file, formatted);
|
|
27
|
+
ux.log(`Created human-readable file at ${join(outputDir, file)}`);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
ux.log(formatted);
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
if (format === 'json') {
|
|
30
34
|
const formatted = await jsonFormat(results);
|
|
31
|
-
ux.log(formatted);
|
|
32
35
|
if (outputDir) {
|
|
33
|
-
|
|
36
|
+
const file = `test-result-${id}.json`;
|
|
37
|
+
await writeFileToDir(outputDir, file, formatted);
|
|
38
|
+
ux.log(`Created JSON file at ${join(outputDir, file)}`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
ux.log(formatted);
|
|
34
42
|
}
|
|
35
43
|
}
|
|
36
44
|
if (format === 'junit') {
|
|
37
45
|
const formatted = await junitFormat(results);
|
|
38
|
-
ux.log(formatted);
|
|
39
46
|
if (outputDir) {
|
|
40
|
-
|
|
47
|
+
const file = `test-result-${id}.xml`;
|
|
48
|
+
await writeFileToDir(outputDir, file, formatted);
|
|
49
|
+
ux.log(`Created JUnit file at ${join(outputDir, file)}`);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
ux.log(formatted);
|
|
41
53
|
}
|
|
42
54
|
}
|
|
43
55
|
if (format === 'tap') {
|
|
44
56
|
const formatted = await tapFormat(results);
|
|
45
|
-
ux.log(formatted);
|
|
46
57
|
if (outputDir) {
|
|
47
|
-
|
|
58
|
+
const file = `test-result-${id}.txt`;
|
|
59
|
+
await writeFileToDir(outputDir, file, formatted);
|
|
60
|
+
ux.log(`Created TAP file at ${join(outputDir, file)}`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
ux.log(formatted);
|
|
48
64
|
}
|
|
49
65
|
}
|
|
50
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTestResults.js","sourceRoot":"","sources":["../src/handleTestResults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAA4B,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,OAAe;IAChF,wCAAwC;IACxC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,EAAE,EACF,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,GAOV;IACC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,kDAAkD;QAClD,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7C,EAAE,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"handleTestResults.js","sourceRoot":"","sources":["../src/handleTestResults.ts"],"names":[],"mappings":"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"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/plugin-agent",
|
|
3
|
-
"version": "1.7.3-dev.
|
|
3
|
+
"version": "1.7.3-dev.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@salesforce/plugin-agent",
|
|
9
|
-
"version": "1.7.3-dev.
|
|
9
|
+
"version": "1.7.3-dev.2",
|
|
10
10
|
"license": "BSD-3-Clause",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@inquirer/figures": "^1.0.7",
|
|
13
13
|
"@inquirer/prompts": "^7.2.0",
|
|
14
14
|
"@oclif/core": "^4",
|
|
15
15
|
"@oclif/multi-stage-output": "^0.7.12",
|
|
16
|
-
"@salesforce/agents": "^0.5.
|
|
16
|
+
"@salesforce/agents": "^0.5.3",
|
|
17
17
|
"@salesforce/core": "^8.8.0",
|
|
18
18
|
"@salesforce/kit": "^3.2.1",
|
|
19
19
|
"@salesforce/sf-plugins-core": "^12.1.0",
|
|
20
20
|
"ansis": "^3.3.2",
|
|
21
|
+
"fast-xml-parser": "^4.5.1",
|
|
21
22
|
"ink": "^5.0.1",
|
|
22
23
|
"ink-text-input": "^6.0.0",
|
|
23
24
|
"react": "^18.3.1"
|
|
@@ -3430,9 +3431,9 @@
|
|
|
3430
3431
|
}
|
|
3431
3432
|
},
|
|
3432
3433
|
"node_modules/@salesforce/agents": {
|
|
3433
|
-
"version": "0.5.
|
|
3434
|
-
"resolved": "https://registry.npmjs.org/@salesforce/agents/-/agents-0.5.
|
|
3435
|
-
"integrity": "sha512-
|
|
3434
|
+
"version": "0.5.3",
|
|
3435
|
+
"resolved": "https://registry.npmjs.org/@salesforce/agents/-/agents-0.5.3.tgz",
|
|
3436
|
+
"integrity": "sha512-en/nJAKm5WRB6GwxE83H0dM3rlOr9nDrGEU7LsQHNkEwEZ/mPAk1MF9r/0KLE7iLuN8638HMmOTHd3jp6YghRw==",
|
|
3436
3437
|
"license": "BSD-3-Clause",
|
|
3437
3438
|
"dependencies": {
|
|
3438
3439
|
"@oclif/table": "^0.3.5",
|
|
@@ -3529,6 +3530,28 @@
|
|
|
3529
3530
|
"integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
|
|
3530
3531
|
"license": "MIT"
|
|
3531
3532
|
},
|
|
3533
|
+
"node_modules/@salesforce/agents/node_modules/fast-xml-parser": {
|
|
3534
|
+
"version": "4.5.0",
|
|
3535
|
+
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz",
|
|
3536
|
+
"integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==",
|
|
3537
|
+
"funding": [
|
|
3538
|
+
{
|
|
3539
|
+
"type": "github",
|
|
3540
|
+
"url": "https://github.com/sponsors/NaturalIntelligence"
|
|
3541
|
+
},
|
|
3542
|
+
{
|
|
3543
|
+
"type": "paypal",
|
|
3544
|
+
"url": "https://paypal.me/naturalintelligence"
|
|
3545
|
+
}
|
|
3546
|
+
],
|
|
3547
|
+
"license": "MIT",
|
|
3548
|
+
"dependencies": {
|
|
3549
|
+
"strnum": "^1.0.5"
|
|
3550
|
+
},
|
|
3551
|
+
"bin": {
|
|
3552
|
+
"fxparser": "src/cli/cli.js"
|
|
3553
|
+
}
|
|
3554
|
+
},
|
|
3532
3555
|
"node_modules/@salesforce/agents/node_modules/indent-string": {
|
|
3533
3556
|
"version": "5.0.0",
|
|
3534
3557
|
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
|
|
@@ -4092,6 +4115,28 @@
|
|
|
4092
4115
|
"node": ">=8"
|
|
4093
4116
|
}
|
|
4094
4117
|
},
|
|
4118
|
+
"node_modules/@salesforce/source-deploy-retrieve/node_modules/fast-xml-parser": {
|
|
4119
|
+
"version": "4.5.0",
|
|
4120
|
+
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz",
|
|
4121
|
+
"integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==",
|
|
4122
|
+
"funding": [
|
|
4123
|
+
{
|
|
4124
|
+
"type": "github",
|
|
4125
|
+
"url": "https://github.com/sponsors/NaturalIntelligence"
|
|
4126
|
+
},
|
|
4127
|
+
{
|
|
4128
|
+
"type": "paypal",
|
|
4129
|
+
"url": "https://paypal.me/naturalintelligence"
|
|
4130
|
+
}
|
|
4131
|
+
],
|
|
4132
|
+
"license": "MIT",
|
|
4133
|
+
"dependencies": {
|
|
4134
|
+
"strnum": "^1.0.5"
|
|
4135
|
+
},
|
|
4136
|
+
"bin": {
|
|
4137
|
+
"fxparser": "src/cli/cli.js"
|
|
4138
|
+
}
|
|
4139
|
+
},
|
|
4095
4140
|
"node_modules/@salesforce/source-deploy-retrieve/node_modules/get-stream": {
|
|
4096
4141
|
"version": "5.2.0",
|
|
4097
4142
|
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
|
|
@@ -11550,9 +11595,9 @@
|
|
|
11550
11595
|
"license": "MIT"
|
|
11551
11596
|
},
|
|
11552
11597
|
"node_modules/fast-xml-parser": {
|
|
11553
|
-
"version": "4.5.
|
|
11554
|
-
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.
|
|
11555
|
-
"integrity": "sha512
|
|
11598
|
+
"version": "4.5.1",
|
|
11599
|
+
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz",
|
|
11600
|
+
"integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==",
|
|
11556
11601
|
"funding": [
|
|
11557
11602
|
{
|
|
11558
11603
|
"type": "github",
|
package/oclif.lock
CHANGED
|
@@ -1483,10 +1483,10 @@
|
|
|
1483
1483
|
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
|
|
1484
1484
|
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
|
|
1485
1485
|
|
|
1486
|
-
"@salesforce/agents@^0.5.
|
|
1487
|
-
version "0.5.
|
|
1488
|
-
resolved "https://registry.yarnpkg.com/@salesforce/agents/-/agents-0.5.
|
|
1489
|
-
integrity sha512-
|
|
1486
|
+
"@salesforce/agents@^0.5.3":
|
|
1487
|
+
version "0.5.3"
|
|
1488
|
+
resolved "https://registry.yarnpkg.com/@salesforce/agents/-/agents-0.5.3.tgz#e6761df2abebc2317495e1ee18df42e6766c21be"
|
|
1489
|
+
integrity sha512-en/nJAKm5WRB6GwxE83H0dM3rlOr9nDrGEU7LsQHNkEwEZ/mPAk1MF9r/0KLE7iLuN8638HMmOTHd3jp6YghRw==
|
|
1490
1490
|
dependencies:
|
|
1491
1491
|
"@oclif/table" "^0.3.5"
|
|
1492
1492
|
"@salesforce/core" "^8.8.0"
|
|
@@ -4417,6 +4417,13 @@ fast-xml-parser@^4, fast-xml-parser@^4.5.0:
|
|
|
4417
4417
|
dependencies:
|
|
4418
4418
|
strnum "^1.0.5"
|
|
4419
4419
|
|
|
4420
|
+
fast-xml-parser@^4.5.1:
|
|
4421
|
+
version "4.5.1"
|
|
4422
|
+
resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz#a7e665ff79b7919100a5202f23984b6150f9b31e"
|
|
4423
|
+
integrity sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==
|
|
4424
|
+
dependencies:
|
|
4425
|
+
strnum "^1.0.5"
|
|
4426
|
+
|
|
4420
4427
|
fastest-levenshtein@^1.0.7:
|
|
4421
4428
|
version "1.0.16"
|
|
4422
4429
|
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
|
|
@@ -7872,16 +7879,7 @@ stack-utils@^2.0.6:
|
|
|
7872
7879
|
dependencies:
|
|
7873
7880
|
escape-string-regexp "^2.0.0"
|
|
7874
7881
|
|
|
7875
|
-
"string-width-cjs@npm:string-width@^4.2.0":
|
|
7876
|
-
version "4.2.3"
|
|
7877
|
-
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
|
7878
|
-
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
|
7879
|
-
dependencies:
|
|
7880
|
-
emoji-regex "^8.0.0"
|
|
7881
|
-
is-fullwidth-code-point "^3.0.0"
|
|
7882
|
-
strip-ansi "^6.0.1"
|
|
7883
|
-
|
|
7884
|
-
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
|
7882
|
+
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
|
7885
7883
|
version "4.2.3"
|
|
7886
7884
|
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
|
7887
7885
|
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
|
@@ -8003,14 +8001,7 @@ string_decoder@~1.1.1:
|
|
|
8003
8001
|
dependencies:
|
|
8004
8002
|
safe-buffer "~5.1.0"
|
|
8005
8003
|
|
|
8006
|
-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
|
|
8007
|
-
version "6.0.1"
|
|
8008
|
-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
|
8009
|
-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
|
8010
|
-
dependencies:
|
|
8011
|
-
ansi-regex "^5.0.1"
|
|
8012
|
-
|
|
8013
|
-
strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
|
8004
|
+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
|
8014
8005
|
version "6.0.1"
|
|
8015
8006
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
|
8016
8007
|
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
|
@@ -8684,7 +8675,7 @@ workerpool@^6.5.1:
|
|
|
8684
8675
|
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544"
|
|
8685
8676
|
integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==
|
|
8686
8677
|
|
|
8687
|
-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
|
|
8678
|
+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
|
8688
8679
|
version "7.0.0"
|
|
8689
8680
|
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
|
8690
8681
|
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
|
@@ -8702,15 +8693,6 @@ wrap-ansi@^6.2.0:
|
|
|
8702
8693
|
string-width "^4.1.0"
|
|
8703
8694
|
strip-ansi "^6.0.0"
|
|
8704
8695
|
|
|
8705
|
-
wrap-ansi@^7.0.0:
|
|
8706
|
-
version "7.0.0"
|
|
8707
|
-
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
|
8708
|
-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
|
8709
|
-
dependencies:
|
|
8710
|
-
ansi-styles "^4.0.0"
|
|
8711
|
-
string-width "^4.1.0"
|
|
8712
|
-
strip-ansi "^6.0.0"
|
|
8713
|
-
|
|
8714
8696
|
wrap-ansi@^8.1.0:
|
|
8715
8697
|
version "8.1.0"
|
|
8716
8698
|
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
|
package/oclif.manifest.json
CHANGED
|
@@ -151,51 +151,6 @@
|
|
|
151
151
|
"preview:agent"
|
|
152
152
|
]
|
|
153
153
|
},
|
|
154
|
-
"agent:generate:definition": {
|
|
155
|
-
"aliases": [],
|
|
156
|
-
"args": {},
|
|
157
|
-
"description": "This command will prompt you for the necessary information to create a new AiEvaluationDefinition. The definition will be saved to the `aiEvaluationDefinitions` directory in the project.\n\nYou must have the `Bots` and `AiEvaluationTestSets` metadata types present in your project to use this command.",
|
|
158
|
-
"examples": [
|
|
159
|
-
"<%= config.bin %> <%= command.id %>"
|
|
160
|
-
],
|
|
161
|
-
"flags": {
|
|
162
|
-
"flags-dir": {
|
|
163
|
-
"helpGroup": "GLOBAL",
|
|
164
|
-
"name": "flags-dir",
|
|
165
|
-
"summary": "Import flag values from a directory.",
|
|
166
|
-
"hasDynamicHelp": false,
|
|
167
|
-
"multiple": false,
|
|
168
|
-
"type": "option"
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
"hasDynamicHelp": false,
|
|
172
|
-
"hiddenAliases": [],
|
|
173
|
-
"id": "agent:generate:definition",
|
|
174
|
-
"pluginAlias": "@salesforce/plugin-agent",
|
|
175
|
-
"pluginName": "@salesforce/plugin-agent",
|
|
176
|
-
"pluginType": "core",
|
|
177
|
-
"state": "beta",
|
|
178
|
-
"strict": true,
|
|
179
|
-
"summary": "Interactively generate a new AiEvaluationDefinition.",
|
|
180
|
-
"enableJsonFlag": false,
|
|
181
|
-
"isESM": true,
|
|
182
|
-
"relativePath": [
|
|
183
|
-
"lib",
|
|
184
|
-
"commands",
|
|
185
|
-
"agent",
|
|
186
|
-
"generate",
|
|
187
|
-
"definition.js"
|
|
188
|
-
],
|
|
189
|
-
"aliasPermutations": [],
|
|
190
|
-
"permutations": [
|
|
191
|
-
"agent:generate:definition",
|
|
192
|
-
"generate:agent:definition",
|
|
193
|
-
"generate:definition:agent",
|
|
194
|
-
"agent:definition:generate",
|
|
195
|
-
"definition:agent:generate",
|
|
196
|
-
"definition:generate:agent"
|
|
197
|
-
]
|
|
198
|
-
},
|
|
199
154
|
"agent:generate:spec": {
|
|
200
155
|
"aliases": [],
|
|
201
156
|
"args": {},
|
|
@@ -325,7 +280,52 @@
|
|
|
325
280
|
"spec:generate:agent"
|
|
326
281
|
]
|
|
327
282
|
},
|
|
328
|
-
"agent:generate:
|
|
283
|
+
"agent:generate:test-definition": {
|
|
284
|
+
"aliases": [],
|
|
285
|
+
"args": {},
|
|
286
|
+
"description": "This command will prompt you for the necessary information to create a new AiEvaluationDefinition. The definition will be saved to the `aiEvaluationDefinitions` directory in the project.\n\nYou must have the `Bots` and `AiEvaluationTestSets` metadata types present in your project to use this command.",
|
|
287
|
+
"examples": [
|
|
288
|
+
"<%= config.bin %> <%= command.id %>"
|
|
289
|
+
],
|
|
290
|
+
"flags": {
|
|
291
|
+
"flags-dir": {
|
|
292
|
+
"helpGroup": "GLOBAL",
|
|
293
|
+
"name": "flags-dir",
|
|
294
|
+
"summary": "Import flag values from a directory.",
|
|
295
|
+
"hasDynamicHelp": false,
|
|
296
|
+
"multiple": false,
|
|
297
|
+
"type": "option"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"hasDynamicHelp": false,
|
|
301
|
+
"hiddenAliases": [],
|
|
302
|
+
"id": "agent:generate:test-definition",
|
|
303
|
+
"pluginAlias": "@salesforce/plugin-agent",
|
|
304
|
+
"pluginName": "@salesforce/plugin-agent",
|
|
305
|
+
"pluginType": "core",
|
|
306
|
+
"state": "beta",
|
|
307
|
+
"strict": true,
|
|
308
|
+
"summary": "Interactively generate a new AI Evaluation Test Definition.",
|
|
309
|
+
"enableJsonFlag": false,
|
|
310
|
+
"isESM": true,
|
|
311
|
+
"relativePath": [
|
|
312
|
+
"lib",
|
|
313
|
+
"commands",
|
|
314
|
+
"agent",
|
|
315
|
+
"generate",
|
|
316
|
+
"test-definition.js"
|
|
317
|
+
],
|
|
318
|
+
"aliasPermutations": [],
|
|
319
|
+
"permutations": [
|
|
320
|
+
"agent:generate:test-definition",
|
|
321
|
+
"generate:agent:test-definition",
|
|
322
|
+
"generate:test-definition:agent",
|
|
323
|
+
"agent:test-definition:generate",
|
|
324
|
+
"test-definition:agent:generate",
|
|
325
|
+
"test-definition:generate:agent"
|
|
326
|
+
]
|
|
327
|
+
},
|
|
328
|
+
"agent:generate:test-set": {
|
|
329
329
|
"aliases": [],
|
|
330
330
|
"args": {},
|
|
331
331
|
"description": "Answer the prompts to generate an AiEvaluationTestSet that will be written to a file. You can then run \"sf agent generate definition\" to generate the AiEvaluationDefinition that can be used to evaluate the test set.",
|
|
@@ -344,13 +344,13 @@
|
|
|
344
344
|
},
|
|
345
345
|
"hasDynamicHelp": false,
|
|
346
346
|
"hiddenAliases": [],
|
|
347
|
-
"id": "agent:generate:
|
|
347
|
+
"id": "agent:generate:test-set",
|
|
348
348
|
"pluginAlias": "@salesforce/plugin-agent",
|
|
349
349
|
"pluginName": "@salesforce/plugin-agent",
|
|
350
350
|
"pluginType": "core",
|
|
351
351
|
"state": "beta",
|
|
352
352
|
"strict": true,
|
|
353
|
-
"summary": "Interactively generate
|
|
353
|
+
"summary": "Interactively generate a new Set of AI Evaluation test cases.",
|
|
354
354
|
"enableJsonFlag": false,
|
|
355
355
|
"isESM": true,
|
|
356
356
|
"relativePath": [
|
|
@@ -358,16 +358,16 @@
|
|
|
358
358
|
"commands",
|
|
359
359
|
"agent",
|
|
360
360
|
"generate",
|
|
361
|
-
"
|
|
361
|
+
"test-set.js"
|
|
362
362
|
],
|
|
363
363
|
"aliasPermutations": [],
|
|
364
364
|
"permutations": [
|
|
365
|
-
"agent:generate:
|
|
366
|
-
"generate:agent:
|
|
367
|
-
"generate:
|
|
368
|
-
"agent:
|
|
369
|
-
"
|
|
370
|
-
"
|
|
365
|
+
"agent:generate:test-set",
|
|
366
|
+
"generate:agent:test-set",
|
|
367
|
+
"generate:test-set:agent",
|
|
368
|
+
"agent:test-set:generate",
|
|
369
|
+
"test-set:agent:generate",
|
|
370
|
+
"test-set:generate:agent"
|
|
371
371
|
]
|
|
372
372
|
},
|
|
373
373
|
"agent:test:cancel": {
|
|
@@ -521,7 +521,7 @@
|
|
|
521
521
|
"type": "option"
|
|
522
522
|
},
|
|
523
523
|
"output-dir": {
|
|
524
|
-
"char": "
|
|
524
|
+
"char": "d",
|
|
525
525
|
"description": "If the agent test run completes, write the results to the specified directory. If the test is still running, the test results aren't written.",
|
|
526
526
|
"name": "output-dir",
|
|
527
527
|
"summary": "Directory to write the agent test results into.",
|
|
@@ -639,7 +639,7 @@
|
|
|
639
639
|
"type": "option"
|
|
640
640
|
},
|
|
641
641
|
"output-dir": {
|
|
642
|
-
"char": "
|
|
642
|
+
"char": "d",
|
|
643
643
|
"description": "If the agent test run completes, write the results to the specified directory. If the test is still running, the test results aren't written.",
|
|
644
644
|
"name": "output-dir",
|
|
645
645
|
"summary": "Directory to write the agent test results into.",
|
|
@@ -750,7 +750,7 @@
|
|
|
750
750
|
"type": "option"
|
|
751
751
|
},
|
|
752
752
|
"output-dir": {
|
|
753
|
-
"char": "
|
|
753
|
+
"char": "d",
|
|
754
754
|
"description": "If the agent test run completes, write the results to the specified directory. If the test is still running, the test results aren't written.",
|
|
755
755
|
"name": "output-dir",
|
|
756
756
|
"summary": "Directory to write the agent test results into.",
|
|
@@ -788,5 +788,5 @@
|
|
|
788
788
|
]
|
|
789
789
|
}
|
|
790
790
|
},
|
|
791
|
-
"version": "1.7.3-dev.
|
|
791
|
+
"version": "1.7.3-dev.2"
|
|
792
792
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/plugin-agent",
|
|
3
3
|
"description": "Commands to interact with Salesforce agents",
|
|
4
|
-
"version": "1.7.3-dev.
|
|
4
|
+
"version": "1.7.3-dev.2",
|
|
5
5
|
"author": "Salesforce",
|
|
6
6
|
"bugs": "https://github.com/forcedotcom/cli/issues",
|
|
7
7
|
"dependencies": {
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
"@inquirer/prompts": "^7.2.0",
|
|
10
10
|
"@oclif/core": "^4",
|
|
11
11
|
"@oclif/multi-stage-output": "^0.7.12",
|
|
12
|
-
"@salesforce/agents": "^0.5.
|
|
12
|
+
"@salesforce/agents": "^0.5.3",
|
|
13
13
|
"@salesforce/core": "^8.8.0",
|
|
14
14
|
"@salesforce/kit": "^3.2.1",
|
|
15
15
|
"@salesforce/sf-plugins-core": "^12.1.0",
|
|
16
16
|
"ansis": "^3.3.2",
|
|
17
|
+
"fast-xml-parser": "^4.5.1",
|
|
17
18
|
"ink": "^5.0.1",
|
|
18
19
|
"ink-text-input": "^6.0.0",
|
|
19
20
|
"react": "^18.3.1"
|
|
@@ -220,7 +221,7 @@
|
|
|
220
221
|
"exports": "./lib/index.js",
|
|
221
222
|
"type": "module",
|
|
222
223
|
"sfdx": {
|
|
223
|
-
"publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-agent/1.7.3-dev.
|
|
224
|
-
"signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-agent/1.7.3-dev.
|
|
224
|
+
"publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-agent/1.7.3-dev.2.crt",
|
|
225
|
+
"signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-agent/1.7.3-dev.2.sig"
|
|
225
226
|
}
|
|
226
227
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/commands/agent/generate/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testset.js","sourceRoot":"","sources":["../../../../src/commands/agent/generate/testset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,yBAAyB,GACpC,yFAAyF,CAAC;AAC5F,MAAM,CAAC,MAAM,0BAA0B,GACrC,yFAAyF,CAAC;AAS5F,KAAK,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAA2C;IAC3F,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC;QAC5B,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,CAAC,CAAS,EAAoB,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,2BAA2B;QACtF,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,SAAS,CAAC;IAE5B,IAAI,0BAA0B,GAAG,MAAM,MAAM,CAAS;QACpD,OAAO,EAAE,gBAAgB;QACzB,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC;QAC/B,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;QAC7C,0BAA0B,GAAG,MAAM,KAAK,CAAC;YACvC,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,CAAC,CAAS,EAAoB,EAAE;gBACxC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO,gCAAgC,CAAC;gBAC1C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,IAAI,2BAA2B,GAAG,MAAM,QAAQ,CAAS;QACvD,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC;QAChC,KAAK;QACL,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,IAAI,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,CACjB,MAAM,KAAK,CAAC;YACV,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,CAAC,CAAS,EAAoB,EAAE;gBACxC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO,gCAAgC,CAAC;gBAC1C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK;SACN,CAAC,CACH;aACE,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAExB,2BAA2B,GAAG,CAAC,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;IAC/G,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,KAAK,CAAC;QACzC,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,CAAC,CAAS,EAAoB,EAAE;YACxC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO,gCAAgC,CAAC;YAC1C,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK;KACN,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,2BAA2B;QAC3B,sBAAsB;QACtB,0BAA0B;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAA0B;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,IAAI,GAAG,GAAG,kEAAkE,GAAG,oCAAoC,CAAC;IACpH,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QAChC,GAAG,IAAI;cACG,CAAC,GAAG,CAAC;;mBAEA,QAAQ,CAAC,SAAS;;;;;yBAKZ,QAAQ,CAAC,0BAA0B;;;;yBAInC,IAAI,QAAQ,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;;;;yBAI1E,QAAQ,CAAC,sBAAsB;;;gBAGxC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,GAAG,IAAI,wBAAwB,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAe;IACxD,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,cAAc,GAAG,KAAK,CAAC;IACvC,MAAM,CAAU,KAAK,GAAG,MAAM,CAAC;IAE/B,KAAK,CAAC,GAAG;QACd,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;YAC9B,OAAO,EAAE,kCAAkC;YAC3C,QAAQ,CAAC,CAAS;gBAChB,0CAA0C;gBAC1C,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,OAAO,uLAAuL,CAAC;gBACjM,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACvE,WAAW,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CACjD,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACjF,MAAM,cAAc,GAAG,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAC9E,aAAa,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CACrD,CAAC;QAEF,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,GAAG,CAAC;YACF,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,qBAAqB,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,4CAA4C;YAC5C,SAAS,CAAC,IAAI,CAAC,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC,SAAS,4CAA4C;QACpD,MAAM,OAAO,CAAC;YACZ,OAAO,EAAE,yCAAyC;YAClD,OAAO,EAAE,IAAI;SACd,CAAC,EACF;QAEF,MAAM,WAAW,GAAG,IAAI,CACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,GAAG,WAAW,+BAA+B,CAC9C,CAAC;QACF,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,GAAG,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,CAAC"}
|