@salesforce/agents 0.20.1-beta.0 → 0.21.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.
Files changed (35) hide show
  1. package/README.md +2 -0
  2. package/lib/agent.d.ts +14 -11
  3. package/lib/agent.js +22 -14
  4. package/lib/agent.js.map +1 -1
  5. package/lib/{agentInteractionBase.d.ts → agents/agentBase.d.ts} +17 -26
  6. package/lib/{agentInteractionBase.js → agents/agentBase.js} +11 -89
  7. package/lib/agents/agentBase.js.map +1 -0
  8. package/lib/{productionAgent.d.ts → agents/productionAgent.d.ts} +11 -5
  9. package/lib/{productionAgent.js → agents/productionAgent.js} +146 -50
  10. package/lib/agents/productionAgent.js.map +1 -0
  11. package/lib/{scriptAgent.d.ts → agents/scriptAgent.d.ts} +13 -7
  12. package/lib/{scriptAgent.js → agents/scriptAgent.js} +194 -176
  13. package/lib/agents/scriptAgent.js.map +1 -0
  14. package/lib/{agentPublisher.d.ts → agents/scriptAgentPublisher.d.ts} +7 -8
  15. package/lib/{agentPublisher.js → agents/scriptAgentPublisher.js} +14 -25
  16. package/lib/agents/scriptAgentPublisher.js.map +1 -0
  17. package/lib/apexUtils.d.ts +0 -1
  18. package/lib/apexUtils.js +0 -10
  19. package/lib/apexUtils.js.map +1 -1
  20. package/lib/index.d.ts +3 -3
  21. package/lib/index.js +5 -5
  22. package/lib/index.js.map +1 -1
  23. package/lib/templates/agentScriptTemplate.d.ts +9 -0
  24. package/lib/templates/agentScriptTemplate.js +149 -0
  25. package/lib/templates/agentScriptTemplate.js.map +1 -0
  26. package/lib/types.d.ts +24 -7
  27. package/lib/types.js.map +1 -1
  28. package/lib/utils.d.ts +56 -26
  29. package/lib/utils.js +182 -38
  30. package/lib/utils.js.map +1 -1
  31. package/package.json +3 -3
  32. package/lib/agentInteractionBase.js.map +0 -1
  33. package/lib/agentPublisher.js.map +0 -1
  34. package/lib/productionAgent.js.map +0 -1
  35. package/lib/scriptAgent.js.map +0 -1
@@ -19,19 +19,19 @@ exports.ProductionAgent = void 0;
19
19
  const node_crypto_1 = require("node:crypto");
20
20
  const core_1 = require("@salesforce/core");
21
21
  const kit_1 = require("@salesforce/kit");
22
- const maybe_mock_1 = require("./maybe-mock");
23
- const utils_1 = require("./utils");
24
- const apexUtils_1 = require("./apexUtils");
25
- const agentInteractionBase_1 = require("./agentInteractionBase");
22
+ const maybe_mock_1 = require("../maybe-mock");
23
+ const utils_1 = require("../utils");
24
+ const apexUtils_1 = require("../apexUtils");
25
+ const agentBase_1 = require("./agentBase");
26
26
  ;
27
27
  const messages = new core_1.Messages('@salesforce/agents', 'agents', new Map([["invalidAgentSpecConfig", "Missing one or more of the required agent spec arguments: type, role, companyName, companyDescription"], ["missingAgentName", "The \"agentName\" configuration property is required when saving an agent."], ["agentRetrievalError", "Unable to retrieve newly created Agent metadata. Due to: %s"], ["agentRetrievalErrorActions", "Retrieve the agent metadata using the \"project retrieve start\" command."], ["missingAgentNameOrId", "The \"nameOrId\" agent option is required when creating an Agent instance."], ["agentIsDeleted", "The %s agent has been deleted and its activation state can't be changed."], ["agentActivationError", "Changing the agent's activation status was unsuccessful due to %s."]]));
28
- class ProductionAgent extends agentInteractionBase_1.AgentInteractionBase {
28
+ class ProductionAgent extends agentBase_1.AgentBase {
29
29
  options;
30
30
  preview;
31
31
  botMetadata;
32
32
  id;
33
33
  apiName;
34
- apiBase = `https://${kit_1.env.getBoolean('SF_TEST_API') ? 'test.' : ''}api.salesforce.com/einstein/ai-agent/v1`;
34
+ apiBase = `https://${(0, utils_1.getEndpoint)()}api.salesforce.com/einstein/ai-agent/v1`;
35
35
  constructor(options) {
36
36
  super(options.connection);
37
37
  this.options = options;
@@ -43,7 +43,7 @@ class ProductionAgent extends agentInteractionBase_1.AgentInteractionBase {
43
43
  send: (message) => this.sendMessage(message),
44
44
  getAllTraces: () => this.getAllTracesFromDisc(),
45
45
  end: (reason) => this.endSession(reason),
46
- saveSession: (outputDir) => this.saveSessionToDisc(outputDir),
46
+ saveSession: (outputDir) => this.saveSessionTo(outputDir),
47
47
  setApexDebugging: (apexDebugging) => this.setApexDebugging(apexDebugging),
48
48
  };
49
49
  if (options.apiNameOrId.startsWith('0Xx') && [15, 18].includes(options.apiNameOrId.length)) {
@@ -78,16 +78,13 @@ class ProductionAgent extends agentInteractionBase_1.AgentInteractionBase {
78
78
  }
79
79
  // eslint-disable-next-line @typescript-eslint/require-await,class-methods-use-this,@typescript-eslint/no-unused-vars
80
80
  async getTrace(planId) {
81
- // return this.connection.request<PlannerResponse>({
82
- // method: 'GET',
83
- // url: `${this.connection.getConnectionOptions().instanceUrl!}:9443/proxy/worker/internal/sessions/${this
84
- // .sessionId!}/plans/${planId}`,
85
- // headers: {
86
- // 'x-client-name': 'afdx',
87
- // },
88
- // });
89
81
  return undefined;
90
82
  }
83
+ getHistoryFromDisc(sessionId) {
84
+ // Use provided sessionId, or fall back to this.sessionId, or let getAllHistory find the most recent
85
+ const actualSessionId = sessionId ?? this.sessionId;
86
+ return (0, utils_1.getAllHistory)(this.getAgentIdForStorage(), actualSessionId);
87
+ }
91
88
  /**
92
89
  * Returns the ID for this agent.
93
90
  *
@@ -134,11 +131,90 @@ class ProductionAgent extends agentInteractionBase_1.AgentInteractionBase {
134
131
  }
135
132
  }
136
133
  }
137
- getSendMessageUrl() {
134
+ async sendMessage(message) {
138
135
  if (!this.sessionId) {
139
- throw core_1.SfError.create({ name: 'noSessionId', message: 'Session not started' });
136
+ throw core_1.SfError.create({ name: 'noSessionId', message: 'Agent not started, please call .start() first' });
137
+ }
138
+ const url = `${this.apiBase}/sessions/${this.sessionId}/messages`;
139
+ const body = {
140
+ message: {
141
+ sequenceId: Date.now(),
142
+ type: 'Text',
143
+ text: message,
144
+ },
145
+ variables: [],
146
+ };
147
+ try {
148
+ const start = Date.now();
149
+ // Handle Apex debugging setup if needed
150
+ if (this.apexDebugging && this.canApexDebug()) {
151
+ await this.handleApexDebuggingSetup();
152
+ }
153
+ const agentId = this.getAgentIdForStorage();
154
+ // Ensure session directory exists
155
+ if (!this.historyDir) {
156
+ this.historyDir = await (0, utils_1.getHistoryDir)(agentId, this.sessionId);
157
+ }
158
+ void (0, utils_1.appendTranscriptToHistory)({
159
+ timestamp: new Date().toISOString(),
160
+ agentId,
161
+ sessionId: this.sessionId,
162
+ role: 'user',
163
+ text: message,
164
+ }, this.historyDir);
165
+ let response;
166
+ try {
167
+ response = await this.connection.request({
168
+ method: 'POST',
169
+ url,
170
+ body: JSON.stringify(body),
171
+ headers: {
172
+ 'x-client-name': 'afdx',
173
+ },
174
+ });
175
+ }
176
+ catch (error) {
177
+ const errorName = error?.name ?? '';
178
+ if (errorName.includes('404')) {
179
+ throw core_1.SfError.create({
180
+ name: 'AgentApiNotFound',
181
+ message: `Preview Send API returned 404. SF_TEST_API=${kit_1.env.getBoolean('SF_TEST_API') ? 'true' : 'false'} If targeting a test.api environment, set SF_TEST_API=true, otherwise it's false.`,
182
+ cause: error,
183
+ });
184
+ }
185
+ throw core_1.SfError.wrap(error);
186
+ }
187
+ const planId = response.messages.at(0).planId;
188
+ this.planIds.add(planId);
189
+ await (0, utils_1.appendTranscriptToHistory)({
190
+ timestamp: new Date().toISOString(),
191
+ agentId,
192
+ sessionId: this.sessionId,
193
+ role: 'agent',
194
+ text: response.messages.at(0)?.message,
195
+ raw: response.messages,
196
+ }, this.historyDir);
197
+ // Fetch and write trace immediately if available
198
+ if (planId) {
199
+ try {
200
+ const trace = await this.getTrace(planId);
201
+ await (0, utils_1.writeTraceToHistory)(planId, trace, this.historyDir);
202
+ }
203
+ catch (error) {
204
+ throw core_1.SfError.wrap(error);
205
+ }
206
+ }
207
+ if (this.apexDebugging && this.canApexDebug()) {
208
+ const apexLog = await (0, apexUtils_1.getDebugLog)(this.connection, start, Date.now());
209
+ if (apexLog) {
210
+ response.apexDebugLog = apexLog;
211
+ }
212
+ }
213
+ return response;
214
+ }
215
+ catch (err) {
216
+ throw core_1.SfError.wrap(err);
140
217
  }
141
- return `${this.apiBase}/sessions/${this.sessionId}/messages`;
142
218
  }
143
219
  async setAgentStatus(desiredState) {
144
220
  const botMetadata = await this.getBotMetadata();
@@ -179,35 +255,41 @@ class ProductionAgent extends agentInteractionBase_1.AgentInteractionBase {
179
255
  bypassUser: true,
180
256
  };
181
257
  try {
182
- const response = await this.connection.request({
183
- method: 'POST',
184
- url,
185
- body: JSON.stringify(body),
186
- headers: {
187
- 'x-client-name': 'afdx',
188
- },
189
- });
258
+ let response;
259
+ try {
260
+ response = await this.connection.request({
261
+ method: 'POST',
262
+ url,
263
+ body: JSON.stringify(body),
264
+ headers: {
265
+ 'x-client-name': 'afdx',
266
+ },
267
+ });
268
+ }
269
+ catch (error) {
270
+ const errorName = error?.name ?? '';
271
+ if (errorName.includes('404')) {
272
+ throw core_1.SfError.create({
273
+ name: 'AgentApiNotFound',
274
+ message: `Preview Start API returned 404. SF_TEST_API=${kit_1.env.getBoolean('SF_TEST_API') ? 'true' : 'false'} If targeting a test.api environment, set SF_TEST_API=true, otherwise it's false.`,
275
+ cause: error,
276
+ });
277
+ }
278
+ throw core_1.SfError.wrap(error);
279
+ }
190
280
  this.sessionId = response.sessionId;
191
- // Initialize session directory and write initial data
192
- // Session directory structure:
193
- // .sfdx/agents/<agentId>/sessions/<sessionId>/
194
- // ├── transcript.jsonl # All transcript entries (one per line)
195
- // ├── traces/ # Individual trace files
196
- // │ ├── <planId1>.json
197
- // │ └── <planId2>.json
198
- // └── metadata.json # Session metadata (start time, end time, planIds, etc.)
199
281
  const agentId = this.id;
200
- this.sessionDir = await (0, utils_1.getSessionDir)(agentId, response.sessionId);
201
- await (0, utils_1.appendTranscriptEntryToSession)({
282
+ this.historyDir = await (0, utils_1.getHistoryDir)(agentId, response.sessionId);
283
+ await (0, utils_1.appendTranscriptToHistory)({
202
284
  timestamp: new Date().toISOString(),
203
285
  agentId,
204
286
  sessionId: response.sessionId,
205
287
  role: 'agent',
206
288
  text: response.messages.map((m) => m.message).join('\n'),
207
289
  raw: response.messages,
208
- }, this.sessionDir);
290
+ }, this.historyDir);
209
291
  // Write initial metadata
210
- await (0, utils_1.writeMetadataToSession)(this.sessionDir, {
292
+ await (0, utils_1.writeMetaFileToHistory)(this.historyDir, {
211
293
  sessionId: response.sessionId,
212
294
  agentId,
213
295
  startTime: new Date().toISOString(),
@@ -237,29 +319,43 @@ class ProductionAgent extends agentInteractionBase_1.AgentInteractionBase {
237
319
  const url = `${this.apiBase}/v1.1/sessions/${this.sessionId}`;
238
320
  try {
239
321
  // https://developer.salesforce.com/docs/einstein/genai/guide/agent-api-examples.html#end-session
240
- const response = await this.connection.request({
241
- method: 'DELETE',
242
- url,
243
- headers: {
244
- 'x-session-end-reason': reason,
245
- },
246
- });
322
+ let response;
323
+ try {
324
+ response = await this.connection.request({
325
+ method: 'DELETE',
326
+ url,
327
+ headers: {
328
+ 'x-session-end-reason': reason,
329
+ },
330
+ });
331
+ }
332
+ catch (error) {
333
+ const errorName = error?.name ?? '';
334
+ if (errorName.includes('404')) {
335
+ throw core_1.SfError.create({
336
+ name: 'AgentApiNotFound',
337
+ message: `Preview End API returned 404. SF_TEST_API=${kit_1.env.getBoolean('SF_TEST_API') ? 'true' : 'false'} If targeting a test.api environment, set SF_TEST_API=true, otherwise it's false.`,
338
+ cause: error,
339
+ });
340
+ }
341
+ throw core_1.SfError.wrap(error);
342
+ }
247
343
  // Write end entry immediately
248
- if (this.sessionDir) {
249
- await (0, utils_1.appendTranscriptEntryToSession)({
344
+ if (this.historyDir) {
345
+ await (0, utils_1.appendTranscriptToHistory)({
250
346
  timestamp: new Date().toISOString(),
251
347
  agentId: this.id,
252
348
  sessionId: this.sessionId,
253
349
  role: 'agent',
254
350
  reason,
255
351
  raw: response.messages,
256
- }, this.sessionDir);
352
+ }, this.historyDir);
257
353
  // Update metadata with end time
258
- await (0, utils_1.updateMetadataEndTime)(this.sessionDir, new Date().toISOString(), this.planIds);
354
+ await (0, utils_1.updateMetadataEndTime)(this.historyDir, new Date().toISOString(), this.planIds);
259
355
  }
260
356
  // Clear session data for next session
261
357
  this.sessionId = undefined;
262
- this.sessionDir = undefined;
358
+ this.historyDir = undefined;
263
359
  this.planIds = new Set();
264
360
  return response;
265
361
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productionAgent.js","sourceRoot":"","sources":["../../src/agents/productionAgent.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,18 @@
1
1
  import { SfProject } from '@salesforce/core';
2
- import { type AgentPreviewEndResponse, type AgentPreviewSendResponse, type CompileAgentScriptResponse, ExtendedAgentJobSpec, PlannerResponse, PublishAgent, ScriptAgentOptions } from './types';
3
- import { AgentInteractionBase, type AgentPreviewInterface } from './agentInteractionBase';
4
- export declare class ScriptAgent extends AgentInteractionBase {
2
+ import { type AgentPreviewEndResponse, AgentPreviewInterface, type AgentPreviewSendResponse, type CompileAgentScriptResponse, ExtendedAgentJobSpec, PlannerResponse, PreviewMetadata, PublishAgent, ScriptAgentOptions } from '../types';
3
+ import { TranscriptEntry } from '../utils';
4
+ import { AgentBase } from './agentBase';
5
+ export declare class ScriptAgent extends AgentBase {
5
6
  private options;
6
7
  preview: AgentPreviewInterface & {
7
8
  setMockMode: (mockMode: 'Mock' | 'Live Test') => void;
8
9
  };
9
10
  private mockMode;
10
11
  private agentScriptContent;
11
- private metaContent;
12
12
  private agentJson;
13
13
  private apiBase;
14
+ private readonly aabDirectory;
15
+ private readonly metaContent;
14
16
  constructor(options: ScriptAgentOptions);
15
17
  /**
16
18
  * Creates an AiAuthoringBundle directory, .script file, and -meta.xml file
@@ -46,16 +48,20 @@ export declare class ScriptAgent extends AgentInteractionBase {
46
48
  * @returns {Promise<PublishAgentJsonResponse>} The publish response
47
49
  */
48
50
  publish(): Promise<PublishAgent>;
51
+ getHistoryFromDisc(sessionId?: string): Promise<{
52
+ metadata: PreviewMetadata | null;
53
+ transcript: TranscriptEntry[];
54
+ traces: PlannerResponse[];
55
+ }>;
49
56
  /**
50
57
  * Ending is not required
51
- * this will save all of the transcripts to disc
58
+ * this will save all the transcripts to disc
52
59
  *
53
60
  * @returns `AgentPreviewEndResponse`
54
61
  */
55
62
  endSession(): Promise<AgentPreviewEndResponse>;
56
- protected getAgentIdForStorage(): string;
63
+ getAgentIdForStorage(): string;
57
64
  protected canApexDebug(): boolean;
58
- protected getSendMessageUrl(): string;
59
65
  protected handleApexDebuggingSetup(): Promise<void>;
60
66
  protected sendMessage(message: string): Promise<AgentPreviewSendResponse>;
61
67
  private setMockMode;