@salesforce/plugin-agent 1.15.1-dev.3 → 1.15.1
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 +26 -31
- package/lib/commands/agent/create.js +2 -2
- package/lib/commands/agent/create.js.map +1 -1
- package/lib/commands/agent/generate/test-spec.d.ts +0 -5
- package/lib/commands/agent/generate/test-spec.js +78 -196
- package/lib/commands/agent/generate/test-spec.js.map +1 -1
- package/lib/commands/agent/test/create.d.ts +2 -3
- package/lib/commands/agent/test/create.js +21 -80
- package/lib/commands/agent/test/create.js.map +1 -1
- package/lib/flags.d.ts +0 -1
- package/lib/flags.js +0 -31
- package/lib/flags.js.map +1 -1
- package/lib/handleTestResults.js +21 -2
- package/lib/handleTestResults.js.map +1 -1
- package/lib/read-dir.d.ts +1 -0
- package/lib/read-dir.js +16 -0
- package/lib/read-dir.js.map +1 -0
- package/messages/agent.generate.test-spec.md +0 -16
- package/messages/agent.test.create.md +8 -18
- package/npm-shrinkwrap.json +30 -522
- package/oclif.lock +11 -115
- package/oclif.manifest.json +10 -35
- package/package.json +5 -7
- package/lib/yes-no-cancel.d.ts +0 -10
- package/lib/yes-no-cancel.js +0 -60
- package/lib/yes-no-cancel.js.map +0 -1
|
@@ -1,115 +1,49 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) 2024, salesforce.com, inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
-
import { join
|
|
8
|
-
import { existsSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
9
8
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
10
9
|
import { Lifecycle, Messages } from '@salesforce/core';
|
|
11
10
|
import { AgentTester, AgentTestCreateLifecycleStages } from '@salesforce/agents';
|
|
12
11
|
import { MultiStageOutput } from '@oclif/multi-stage-output';
|
|
13
|
-
import { makeFlags, promptForFlag, promptForYamlFile } from '../../../flags.js';
|
|
14
|
-
import yesNoOrCancel from '../../../yes-no-cancel.js';
|
|
15
12
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
16
13
|
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'agent.test.create');
|
|
17
|
-
const FLAGGABLE_PROMPTS = {
|
|
18
|
-
'test-api-name': {
|
|
19
|
-
message: messages.getMessage('flags.test-api-name.summary'),
|
|
20
|
-
validate: (d) => {
|
|
21
|
-
if (!d.length) {
|
|
22
|
-
return 'API name cannot be empty';
|
|
23
|
-
}
|
|
24
|
-
if (d.length > 80) {
|
|
25
|
-
return 'API name cannot be over 80 characters.';
|
|
26
|
-
}
|
|
27
|
-
const regex = /^[A-Za-z][A-Za-z0-9_]*[A-Za-z0-9]+$/;
|
|
28
|
-
if (!regex.test(d)) {
|
|
29
|
-
return 'Invalid API name.';
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
|
-
},
|
|
33
|
-
required: true,
|
|
34
|
-
},
|
|
35
|
-
spec: {
|
|
36
|
-
message: messages.getMessage('flags.spec.summary'),
|
|
37
|
-
validate: (d) => {
|
|
38
|
-
const specPath = resolve(d);
|
|
39
|
-
if (!existsSync(specPath)) {
|
|
40
|
-
return 'Please enter an existing test spec (yaml) file';
|
|
41
|
-
}
|
|
42
|
-
return true;
|
|
43
|
-
},
|
|
44
|
-
required: true,
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
async function promptUntilUniqueName(agentTester, name) {
|
|
48
|
-
const apiName = name ?? (await promptForFlag(FLAGGABLE_PROMPTS['test-api-name']));
|
|
49
|
-
const existingDefinitions = await agentTester.list();
|
|
50
|
-
if (existingDefinitions.some((d) => d.fullName === apiName)) {
|
|
51
|
-
const confirmation = await yesNoOrCancel({
|
|
52
|
-
message: messages.getMessage('prompt.confirm', [apiName]),
|
|
53
|
-
default: false,
|
|
54
|
-
});
|
|
55
|
-
if (confirmation === 'cancel') {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (!confirmation) {
|
|
59
|
-
return promptUntilUniqueName(agentTester);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return apiName;
|
|
63
|
-
}
|
|
64
14
|
export default class AgentTestCreate extends SfCommand {
|
|
65
15
|
static summary = messages.getMessage('summary');
|
|
66
16
|
static description = messages.getMessage('description');
|
|
67
17
|
static examples = messages.getMessages('examples');
|
|
68
18
|
static state = 'beta';
|
|
69
19
|
static flags = {
|
|
70
|
-
|
|
20
|
+
spec: Flags.file({
|
|
21
|
+
summary: messages.getMessage('flags.spec.summary'),
|
|
22
|
+
description: messages.getMessage('flags.spec.description'),
|
|
23
|
+
char: 's',
|
|
24
|
+
required: true,
|
|
25
|
+
exists: true,
|
|
26
|
+
}),
|
|
71
27
|
'target-org': Flags.requiredOrg(),
|
|
72
28
|
'api-version': Flags.orgApiVersion(),
|
|
73
29
|
preview: Flags.boolean({
|
|
74
30
|
summary: messages.getMessage('flags.preview.summary'),
|
|
75
31
|
}),
|
|
76
|
-
'
|
|
77
|
-
summary: messages.getMessage('flags.
|
|
32
|
+
'no-prompt': Flags.boolean({
|
|
33
|
+
summary: messages.getMessage('flags.no-prompt.summary'),
|
|
34
|
+
char: 'p',
|
|
78
35
|
}),
|
|
79
36
|
};
|
|
80
37
|
mso;
|
|
81
38
|
async run() {
|
|
82
39
|
const { flags } = await this.parse(AgentTestCreate);
|
|
83
|
-
// throw error if --json is used and not all required flags are provided
|
|
84
|
-
if (this.jsonEnabled()) {
|
|
85
|
-
if (!flags['test-api-name']) {
|
|
86
|
-
throw messages.createError('error.missingRequiredFlags', ['test-api-name']);
|
|
87
|
-
}
|
|
88
|
-
if (!flags.spec) {
|
|
89
|
-
throw messages.createError('error.missingRequiredFlags', ['spec']);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
if (flags['force-overwrite'] && !flags['test-api-name']) {
|
|
93
|
-
throw messages.createError('error.missingRequiredFlags', ['test-api-name']);
|
|
94
|
-
}
|
|
95
40
|
const agentTester = new AgentTester(flags['target-org'].getConnection(flags['api-version']));
|
|
96
|
-
const apiName = flags['force-overwrite']
|
|
97
|
-
? flags['test-api-name']
|
|
98
|
-
: await promptUntilUniqueName(agentTester, flags['test-api-name']);
|
|
99
|
-
if (!apiName) {
|
|
100
|
-
this.log(messages.getMessage('info.cancel'));
|
|
101
|
-
return {
|
|
102
|
-
path: '',
|
|
103
|
-
contents: '',
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
const spec = flags.spec ?? (await promptForYamlFile(FLAGGABLE_PROMPTS.spec));
|
|
107
41
|
const lifecycle = Lifecycle.getInstance();
|
|
108
42
|
lifecycle.on(AgentTestCreateLifecycleStages.CreatingLocalMetadata, async () => {
|
|
109
43
|
this.mso = new MultiStageOutput({
|
|
110
44
|
jsonEnabled: this.jsonEnabled(),
|
|
111
45
|
stages: Object.values(AgentTestCreateLifecycleStages),
|
|
112
|
-
title: `Creating test for ${spec}`,
|
|
46
|
+
title: `Creating test for ${flags.spec}`,
|
|
113
47
|
});
|
|
114
48
|
this.mso?.skipTo(AgentTestCreateLifecycleStages.CreatingLocalMetadata);
|
|
115
49
|
return Promise.resolve();
|
|
@@ -127,9 +61,16 @@ export default class AgentTestCreate extends SfCommand {
|
|
|
127
61
|
}
|
|
128
62
|
return Promise.resolve();
|
|
129
63
|
});
|
|
130
|
-
const
|
|
64
|
+
const confirmationCallback = flags['no-prompt']
|
|
65
|
+
? async () => Promise.resolve(true)
|
|
66
|
+
: async (spec) => this.confirm({
|
|
67
|
+
message: messages.getMessage('prompt.confirm', [spec.name]),
|
|
68
|
+
defaultAnswer: false,
|
|
69
|
+
});
|
|
70
|
+
const { path, contents } = await agentTester.create(flags.spec, {
|
|
131
71
|
outputDir: join('force-app', 'main', 'default', 'aiEvaluationDefinitions'),
|
|
132
72
|
preview: flags.preview,
|
|
73
|
+
confirmationCallback,
|
|
133
74
|
});
|
|
134
75
|
if (flags.preview) {
|
|
135
76
|
this.mso?.skipTo(AgentTestCreateLifecycleStages.Done);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/agent/test/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/agent/test/create.ts"],"names":[],"mappings":"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"}
|
package/lib/flags.d.ts
CHANGED
|
@@ -20,7 +20,6 @@ export declare const testOutputDirFlag: Interfaces.FlagDefinition<string, Interf
|
|
|
20
20
|
requiredOrDefaulted: false;
|
|
21
21
|
}>;
|
|
22
22
|
export declare function makeFlags<T extends Record<string, FlaggablePrompt>>(flaggablePrompts: T): FlagsOfPrompts<T>;
|
|
23
|
-
export declare const promptForYamlFile: (flagDef: FlaggablePrompt) => Promise<string>;
|
|
24
23
|
export declare const promptForFlag: (flagDef: FlaggablePrompt) => Promise<string>;
|
|
25
24
|
export declare const validateAgentType: (agentType?: string, required?: boolean) => string | undefined;
|
|
26
25
|
export declare const validateMaxTopics: (maxTopics?: number) => number | undefined;
|
package/lib/flags.js
CHANGED
|
@@ -4,13 +4,10 @@
|
|
|
4
4
|
* Licensed under the BSD 3-Clause license.
|
|
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
|
-
import { readdir } from 'node:fs/promises';
|
|
8
|
-
import { join, relative } from 'node:path';
|
|
9
7
|
import { Flags } from '@salesforce/sf-plugins-core';
|
|
10
8
|
import { Messages, SfError } from '@salesforce/core';
|
|
11
9
|
import { camelCaseToTitleCase } from '@salesforce/kit';
|
|
12
10
|
import { select, input as inquirerInput } from '@inquirer/prompts';
|
|
13
|
-
import autocomplete from 'inquirer-autocomplete-standalone';
|
|
14
11
|
import { theme } from './inquirer-theme.js';
|
|
15
12
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
16
13
|
const messages = Messages.loadMessages('@salesforce/plugin-agent', 'shared');
|
|
@@ -45,34 +42,6 @@ export function makeFlags(flaggablePrompts) {
|
|
|
45
42
|
}),
|
|
46
43
|
]));
|
|
47
44
|
}
|
|
48
|
-
async function traverseForYamlFiles(dir) {
|
|
49
|
-
const files = await readdir(dir, { withFileTypes: true });
|
|
50
|
-
const results = [];
|
|
51
|
-
for (const file of files) {
|
|
52
|
-
const fullPath = join(dir, file.name);
|
|
53
|
-
if (file.isDirectory()) {
|
|
54
|
-
// eslint-disable-next-line no-await-in-loop
|
|
55
|
-
results.push(...(await traverseForYamlFiles(fullPath)));
|
|
56
|
-
}
|
|
57
|
-
else if (file.name.endsWith('.yaml') || file.name.endsWith('.yml')) {
|
|
58
|
-
results.push(fullPath);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return results;
|
|
62
|
-
}
|
|
63
|
-
export const promptForYamlFile = async (flagDef) => {
|
|
64
|
-
const yamlFiles = await traverseForYamlFiles(process.cwd());
|
|
65
|
-
return autocomplete({
|
|
66
|
-
message: flagDef.message,
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
68
|
-
source: async (input) => {
|
|
69
|
-
const arr = yamlFiles.map((o) => ({ name: relative(process.cwd(), o), value: o }));
|
|
70
|
-
if (!input)
|
|
71
|
-
return arr;
|
|
72
|
-
return arr.filter((o) => o.name.includes(input));
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
45
|
export const promptForFlag = async (flagDef) => {
|
|
77
46
|
const message = flagDef.promptMessage ?? flagDef.message.replace(/\.$/, '');
|
|
78
47
|
if (flagDef.options) {
|
package/lib/flags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"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"}
|
package/lib/handleTestResults.js
CHANGED
|
@@ -14,6 +14,25 @@ async function writeFileToDir(outputDir, fileName, content) {
|
|
|
14
14
|
await mkdir(outputDir, { recursive: true });
|
|
15
15
|
await writeFile(join(outputDir, fileName), content);
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Clean a string by replacing HTML entities with their respective characters. Implementation done by copilot.
|
|
19
|
+
*
|
|
20
|
+
* This is only required until W-17594913 is resolved by SF Eval
|
|
21
|
+
*
|
|
22
|
+
* @param str - The string to clean.
|
|
23
|
+
* @returns The cleaned string with all HTML entities replaced with their respective characters.
|
|
24
|
+
*/
|
|
25
|
+
function decodeHtmlEntities(str) {
|
|
26
|
+
const entities = {
|
|
27
|
+
'"': '"',
|
|
28
|
+
''': "'",
|
|
29
|
+
'&': '&',
|
|
30
|
+
'<': '<',
|
|
31
|
+
'>': '>',
|
|
32
|
+
''': "'",
|
|
33
|
+
};
|
|
34
|
+
return str.replace(/&[a-zA-Z0-9#]+;/g, (entity) => entities[entity] || entity);
|
|
35
|
+
}
|
|
17
36
|
function makeSimpleTable(data, title) {
|
|
18
37
|
if (Object.keys(data).length === 0) {
|
|
19
38
|
return '';
|
|
@@ -66,8 +85,8 @@ export function humanFormat(results) {
|
|
|
66
85
|
data: testCase.testResults.map((r) => ({
|
|
67
86
|
test: humanFriendlyName(r.name),
|
|
68
87
|
result: r.result === 'PASS' ? ansis.green('Pass') : ansis.red('Fail'),
|
|
69
|
-
expected: r.expectedValue,
|
|
70
|
-
actual: r.actualValue,
|
|
88
|
+
expected: decodeHtmlEntities(r.expectedValue),
|
|
89
|
+
actual: decodeHtmlEntities(r.actualValue),
|
|
71
90
|
})),
|
|
72
91
|
width: '100%',
|
|
73
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTestResults.js","sourceRoot":"","sources":["../src/handleTestResults.ts"],"names":[],"mappings":"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
|
|
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,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,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;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,QAAQ,GAA8B;QAC1C,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;KACb,CAAC;IAEF,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,IAA4B,EAAE,KAAa;IAClE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9G,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;SACjF,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,GAAG,KAAK,KAAK,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;IAC5B,2CAA2C;IAC3C,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChH,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,aAAa,GAAG,CAAC;IAC1D,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sCAAsC;IACtC,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAChB,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,wCAAwC;IACxC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;QAClB,OAAO,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC;IACpD,CAAC;IAED,oDAAoD;IACpD,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,CAAC;IACnC,CAAC;IAED,mDAAmD;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;IACxD,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAiC;IAC3D,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;IAEpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;YACzB,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAClF,QAAQ,CAAC,MAAM,CAAC,SAClB,EAAE;YACF,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC/F,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;gBACrE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7C,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC;aAC1C,CAAC,CAAC;YACH,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;QAC5E,OAAO,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,MAAM,gBAAgB,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAE3E,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC;QAC9E,OAAO,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,MAAM,iBAAiB,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAE7E,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;QAC7E,OAAO,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,MAAM,kBAAkB,GAAG,CAAC,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAE/E,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,OAAO;YACvB,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3F,CAAC,CAAC,SAAS;QACb,cAAc,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACjD,eAAe,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACnD,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;KACtD,CAAC;IAEF,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAE7E,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;IAC9F,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,cAAc,EAAE,CAAC,UAAU,EAAE;QAC7B,EAAE,CAAC,WAAW;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrC,IAAI,CAAC,IAAI,CAAC;KACd,CAAC,CACH,CAAC;IACF,MAAM,oBAAoB,GAAG,eAAe,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEtG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,OAAO,oBAAoB,IAAI,CAAC;AAC9E,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,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,eAAe,EAAE,MAAM,CAAC;YACrC,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,eAAe,EAAE,OAAO,CAAC;YACtC,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,eAAe,EAAE,MAAM,CAAC;YACrC,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,eAAe,EAAE,MAAM,CAAC;YACrC,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function readDir(path: string): Promise<string[]>;
|
package/lib/read-dir.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024, salesforce.com, inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
import { readdir } from 'node:fs/promises';
|
|
8
|
+
export async function readDir(path) {
|
|
9
|
+
try {
|
|
10
|
+
return (await readdir(path)).filter((bot) => !bot.startsWith('.'));
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=read-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-dir.js","sourceRoot":"","sources":["../src/read-dir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -6,22 +6,6 @@ Interactively generate a specification file for a AI evaluation test.
|
|
|
6
6
|
|
|
7
7
|
This command will prompt you for the necessary information to create a new spec file (in yaml format). You can then create a new AI evaluation using "sf agent test create --spec <spec-file>".
|
|
8
8
|
|
|
9
|
-
# flags.from-definition.summary
|
|
10
|
-
|
|
11
|
-
The API name of the AIEvaluationDefinition that you want to convert to a spec file.
|
|
12
|
-
|
|
13
|
-
# flags.force-overwrite.summary
|
|
14
|
-
|
|
15
|
-
Don't prompt for confirmation when overwriting an existing test spec file.
|
|
16
|
-
|
|
17
|
-
# flags.output-file.summary
|
|
18
|
-
|
|
19
|
-
The name of the generated spec file. Defaults to "specs/<AGENT_API_NAME>-testSpec.yaml"
|
|
20
|
-
|
|
21
9
|
# examples
|
|
22
10
|
|
|
23
11
|
- <%= config.bin %> <%= command.id %>
|
|
24
|
-
|
|
25
|
-
# info.cancel
|
|
26
|
-
|
|
27
|
-
Operation canceled.
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
# summary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Summary of a command.
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Use the --preview flag to see the metadata that will be deployed without actually deploying it.
|
|
7
|
+
More information about a command. Don't repeat the summary.
|
|
10
8
|
|
|
11
9
|
# flags.spec.summary
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
Description of a flag.
|
|
12
|
+
|
|
13
|
+
# flags.spec.description
|
|
14
|
+
|
|
15
|
+
More information about a flag. Don't repeat the summary.
|
|
14
16
|
|
|
15
17
|
# flags.preview.summary
|
|
16
18
|
|
|
17
19
|
Preview the test metadata without deploying to your org.
|
|
18
20
|
|
|
19
|
-
# flags.
|
|
21
|
+
# flags.no-prompt.summary
|
|
20
22
|
|
|
21
23
|
Don't prompt for confirmation when overwriting an existing test.
|
|
22
24
|
|
|
23
|
-
# flags.test-api-name.summary
|
|
24
|
-
|
|
25
|
-
The API name of the AiEvaluationDefinition.
|
|
26
|
-
|
|
27
25
|
# examples
|
|
28
26
|
|
|
29
27
|
- <%= config.bin %> <%= command.id %>
|
|
@@ -39,11 +37,3 @@ AiEvaluationDefinition created at %s and deployed to %s
|
|
|
39
37
|
# info.preview-success
|
|
40
38
|
|
|
41
39
|
Preview of AiEvaluationDefinition created at %s
|
|
42
|
-
|
|
43
|
-
# error.missingRequiredFlags
|
|
44
|
-
|
|
45
|
-
Missing required flags: %s.
|
|
46
|
-
|
|
47
|
-
# info.cancel
|
|
48
|
-
|
|
49
|
-
Operation canceled.
|