Skip to content

Commit 06fde3f

Browse files
Merge pull request #130 from salesforcecli/sh/use-refactored-agent-lib
fix: consume agents lib refactor - W-18254804
2 parents 05b46a3 + 088fa61 commit 06fde3f

File tree

6 files changed

+36
-38
lines changed

6 files changed

+36
-38
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
"@inquirer/prompts": "^7.2.0",
1010
"@oclif/core": "^4",
1111
"@oclif/multi-stage-output": "^0.7.12",
12-
"@salesforce/agents": "0.14.0",
13-
"@salesforce/core": "^8.8.6",
12+
"@salesforce/agents": "^0.14.6",
13+
"@salesforce/core": "^8.9.1",
1414
"@salesforce/kit": "^3.2.3",
1515
"@salesforce/sf-plugins-core": "^12.2.0",
16-
"@salesforce/source-deploy-retrieve": "^12.18.0",
16+
"@salesforce/source-deploy-retrieve": "^12.19.3",
1717
"@salesforce/types": "^1.3.0",
1818
"ansis": "^3.3.2",
1919
"fast-xml-parser": "^4.5.1",

src/commands/agent/generate/test-spec.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { join, parse } from 'node:path';
99
import { existsSync } from 'node:fs';
1010
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
1111
import { Messages, SfProject } from '@salesforce/core';
12-
import { writeTestSpec, generateTestSpecFromAiEvalDefinition } from '@salesforce/agents';
12+
import { AgentTest } from '@salesforce/agents';
1313
import { select, input, confirm, checkbox } from '@inquirer/prompts';
1414
import { XMLParser } from 'fast-xml-parser';
1515
import { ComponentSet, ComponentSetBuilder } from '@salesforce/source-deploy-retrieve';
@@ -299,15 +299,16 @@ export default class AgentGenerateTestSpec extends SfCommand<void> {
299299
});
300300

301301
if (flags['from-definition']) {
302-
const spec = await generateTestSpecFromAiEvalDefinition(flags['from-definition']);
302+
const agentTest = new AgentTest({ mdPath: flags['from-definition'] });
303+
const spec = await agentTest.getTestSpec();
303304

304305
const outputFile = await determineFilePath(spec.subjectName, flags['output-file'], flags['force-overwrite']);
305306
if (!outputFile) {
306307
this.log(messages.getMessage('info.cancel'));
307308
return;
308309
}
309310

310-
await writeTestSpec(spec, outputFile);
311+
await agentTest.writeTestSpec(outputFile);
311312
this.log(`Created ${outputFile}`);
312313
return;
313314
}
@@ -322,11 +323,11 @@ export default class AgentGenerateTestSpec extends SfCommand<void> {
322323
throw messages.createError('error.NoAgentsFound', [directoryPaths.join(', ')]);
323324
}
324325

325-
const subjectType = await select<string>({
326+
const subjectType = (await select<string>({
326327
message: 'What are you testing',
327328
choices: ['AGENT'],
328329
theme,
329-
});
330+
})) as 'AGENT';
330331

331332
const subjectName = await select<string>({
332333
message: 'Select the agent to test',
@@ -375,16 +376,16 @@ export default class AgentGenerateTestSpec extends SfCommand<void> {
375376

376377
this.log();
377378

378-
await writeTestSpec(
379-
{
379+
const agentTest = new AgentTest({
380+
specData: {
380381
name,
381382
description,
382383
subjectType,
383384
subjectName,
384385
testCases,
385386
},
386-
outputFile
387-
);
387+
});
388+
await agentTest.writeTestSpec(outputFile);
388389
this.log(`Created ${outputFile}`);
389390
}
390391
}

src/commands/agent/test/create.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import { join, resolve } from 'node:path';
88
import { existsSync } from 'node:fs';
99
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
10-
import { Lifecycle, Messages, SfError } from '@salesforce/core';
11-
import { AgentTester, AgentTestCreateLifecycleStages } from '@salesforce/agents';
10+
import { Connection, Lifecycle, Messages, SfError } from '@salesforce/core';
11+
import { AgentTest, AgentTestCreateLifecycleStages } from '@salesforce/agents';
1212
import { DeployResult } from '@salesforce/source-deploy-retrieve';
1313
import { MultiStageOutput } from '@oclif/multi-stage-output';
1414
import { CLIError } from '@oclif/core/errors';
@@ -55,9 +55,9 @@ const FLAGGABLE_PROMPTS = {
5555
},
5656
};
5757

58-
async function promptUntilUniqueName(agentTester: AgentTester, name?: string | undefined): Promise<string | undefined> {
58+
async function promptUntilUniqueName(connection: Connection, name?: string | undefined): Promise<string | undefined> {
5959
const apiName = name ?? (await promptForFlag(FLAGGABLE_PROMPTS['test-api-name']));
60-
const existingDefinitions = await agentTester.list();
60+
const existingDefinitions = await AgentTest.list(connection);
6161
if (existingDefinitions.some((d) => d.fullName === apiName)) {
6262
const confirmation = await yesNoOrCancel({
6363
message: messages.getMessage('prompt.confirm', [apiName]),
@@ -68,7 +68,7 @@ async function promptUntilUniqueName(agentTester: AgentTester, name?: string | u
6868
}
6969

7070
if (!confirmation) {
71-
return promptUntilUniqueName(agentTester);
71+
return promptUntilUniqueName(connection);
7272
}
7373
}
7474
return apiName;
@@ -95,6 +95,7 @@ export default class AgentTestCreate extends SfCommand<AgentTestCreateResult> {
9595

9696
public async run(): Promise<AgentTestCreateResult> {
9797
const { flags } = await this.parse(AgentTestCreate);
98+
const connection = flags['target-org'].getConnection(flags['api-version']);
9899

99100
// throw error if --json is used and not all required flags are provided
100101
if (this.jsonEnabled()) {
@@ -110,11 +111,9 @@ export default class AgentTestCreate extends SfCommand<AgentTestCreateResult> {
110111
throw messages.createError('error.missingRequiredFlags', ['test-api-name']);
111112
}
112113

113-
const agentTester = new AgentTester(flags['target-org'].getConnection(flags['api-version']));
114-
115114
const apiName = flags['force-overwrite']
116115
? flags['test-api-name']
117-
: await promptUntilUniqueName(agentTester, flags['test-api-name']);
116+
: await promptUntilUniqueName(connection, flags['test-api-name']);
118117
if (!apiName) {
119118
this.log(messages.getMessage('info.cancel'));
120119
return {
@@ -156,7 +155,7 @@ export default class AgentTestCreate extends SfCommand<AgentTestCreateResult> {
156155
return Promise.resolve();
157156
});
158157

159-
const { path, contents } = await agentTester.create(apiName, spec, {
158+
const { path, contents } = await AgentTest.create(connection, apiName, spec, {
160159
outputDir: join('force-app', 'main', 'default', 'aiEvaluationDefinitions'),
161160
preview: flags.preview,
162161
});

src/commands/agent/test/list.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
66
*/
77

8-
import { AgentTester, type AvailableDefinition } from '@salesforce/agents';
8+
import { AgentTest, type AvailableDefinition } from '@salesforce/agents';
99
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
1010
import { Messages } from '@salesforce/core';
1111

@@ -28,8 +28,7 @@ export default class AgentTestList extends SfCommand<AgentTestListResult> {
2828
public async run(): Promise<AgentTestListResult> {
2929
const { flags } = await this.parse(AgentTestList);
3030

31-
const agentTester = new AgentTester(flags['target-org'].getConnection(flags['api-version']));
32-
const results = await agentTester.list();
31+
const results = await AgentTest.list(flags['target-org'].getConnection(flags['api-version']));
3332
this.table({
3433
data: results,
3534
columns: [

src/flags.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { Connection, Messages, SfError } from '@salesforce/core';
1313
import { camelCaseToTitleCase } from '@salesforce/kit';
1414
import { select, input as inquirerInput } from '@inquirer/prompts';
1515
import autocomplete from 'inquirer-autocomplete-standalone';
16-
import { AgentTester, AgentTestResultsResponse } from '@salesforce/agents';
16+
import { AgentTest, AgentTestResultsResponse } from '@salesforce/agents';
1717
import { theme } from './inquirer-theme.js';
1818
import { AgentTestResultsResult } from './commands/agent/test/results.js';
1919

@@ -99,8 +99,7 @@ export const promptForAiEvaluationDefinitionApiName = async (
9999
flagDef: FlaggablePrompt,
100100
connection: Connection
101101
): Promise<string> => {
102-
const agents = new AgentTester(connection);
103-
const aiDefFiles = await agents.list();
102+
const aiDefFiles = await AgentTest.list(connection);
104103

105104
let id: NodeJS.Timeout;
106105
const timeout = new Promise((_, reject) => {

yarn.lock

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1556,14 +1556,14 @@
15561556
resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
15571557
integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
15581558

1559-
"@salesforce/[email protected].0":
1560-
version "0.14.0"
1561-
resolved "https://registry.yarnpkg.com/@salesforce/agents/-/agents-0.14.0.tgz#7c6deb7a22d94f814dc0a57653581f0c544137a9"
1562-
integrity sha512-vSYldMaYG+pufteX124q8cKfk10vujWhU/74Rrdui6ta7cgZpQGewc2oLXRg8m7jkFzQTOzuUG2Ewyn36b0I3g==
1559+
"@salesforce/agents@^0.14.6":
1560+
version "0.14.6"
1561+
resolved "https://registry.yarnpkg.com/@salesforce/agents/-/agents-0.14.6.tgz#8f72703568f1efa424de27dad637afe5913fcdc9"
1562+
integrity sha512-onSxxsqraLSf6H21KZ2mled//SAt8dzxAxQa9neCqq6JIdL8JBZNaXFzGdyi9f6V8q+EvVqL3lVQ+PSrWGS9BQ==
15631563
dependencies:
1564-
"@salesforce/core" "^8.8.6"
1564+
"@salesforce/core" "^8.9.1"
15651565
"@salesforce/kit" "^3.2.3"
1566-
"@salesforce/source-deploy-retrieve" "^12.18.2"
1566+
"@salesforce/source-deploy-retrieve" "^12.19.3"
15671567
fast-xml-parser "^4.5.3"
15681568
nock "^13.5.6"
15691569
yaml "^2.7.1"
@@ -1584,7 +1584,7 @@
15841584
strip-ansi "6.0.1"
15851585
ts-retry-promise "^0.8.1"
15861586

1587-
"@salesforce/core@^8.5.1", "@salesforce/core@^8.8.0", "@salesforce/core@^8.8.2", "@salesforce/core@^8.8.5", "@salesforce/core@^8.8.6", "@salesforce/core@^8.8.7", "@salesforce/core@^8.9.1":
1587+
"@salesforce/core@^8.5.1", "@salesforce/core@^8.8.0", "@salesforce/core@^8.8.2", "@salesforce/core@^8.8.5", "@salesforce/core@^8.8.7", "@salesforce/core@^8.9.1":
15881588
version "8.9.1"
15891589
resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.9.1.tgz#e31d307d495cc0b916c0b9312fba751714034e0a"
15901590
integrity sha512-Q1evH4WD7IYWgbcIYCUDi3FTEMgy1KLVg4Xa4GacKLNcOBfom5s6whNsz3gUFESqjndGDwV5Pbgpi0ImC17PfQ==
@@ -1710,10 +1710,10 @@
17101710
cli-progress "^3.12.0"
17111711
terminal-link "^3.0.0"
17121712

1713-
"@salesforce/source-deploy-retrieve@^12.18.0", "@salesforce/source-deploy-retrieve@^12.18.2":
1714-
version "12.18.4"
1715-
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.18.4.tgz#b16c1a3eeb9e40877b3109373555e95e02458894"
1716-
integrity sha512-W13y72vCV98pROwvX0WmmIEmNivju4cMuK5jGzT5JHcX1qgy6i03VksT0R9CbyU3G4gbrB3Gay0rQLwdubNqOw==
1713+
"@salesforce/source-deploy-retrieve@^12.19.3":
1714+
version "12.19.3"
1715+
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.19.3.tgz#42b34913b624115aee36cd289cb5ea1d5de9b7b1"
1716+
integrity sha512-rvdEfi2beJmVbN4NQ3Ve4dULq+wMFuLKBKpmNBIb9udXNVZd8Q0P7TO9pM/tzfeAfwfdTE7swXaYe2Qv5UAd+g==
17171717
dependencies:
17181718
"@salesforce/core" "^8.8.7"
17191719
"@salesforce/kit" "^3.2.3"

0 commit comments

Comments
 (0)