@memberjunction/ai-agents 5.21.0 → 5.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -78,6 +78,7 @@ The core execution engine that all agents use. Handles:
78
78
 
79
79
  - Hierarchical prompt execution (agent type's system prompt as parent, agent's prompts as children)
80
80
  - Action execution through the MJ Actions framework
81
+ - **Client tool invocation** for browser-side UI operations (navigate to records, switch tabs, show search results) via PubSub round-trip
81
82
  - Sub-agent orchestration with full context propagation
82
83
  - Conversation context management with automatic message compaction
83
84
  - Memory retrieval (notes and examples) with optional reranking
@@ -117,7 +118,8 @@ Abstract base that all agent types extend. Defines the `DetermineNextStep()` int
117
118
  | Step | Description |
118
119
  |---|---|
119
120
  | `Chat` | Send a message back to the user |
120
- | `Actions` | Execute one or more actions |
121
+ | `Actions` | Execute one or more server-side actions |
122
+ | `ClientTools` | Invoke browser-side tools (navigate, switch tabs, show results) |
121
123
  | `SubAgents` | Delegate to sub-agents |
122
124
  | `MoreInfo` | Ask the user for additional information |
123
125
  | `Retry` | Retry the current step (e.g., after validation failure) |
@@ -301,6 +303,7 @@ Detailed guides are available in the [`docs/`](./docs/) directory:
301
303
  | Guide | Description |
302
304
  |---|---|
303
305
  | [Actions Guide](./docs/actions-guide.md) | Action discovery, execution, result lifecycle, expiration/compaction, context recovery |
306
+ | [Client Tools Guide](./docs/CLIENT_TOOLS_GUIDE.md) | Browser-side tool invocation, runtime decoration, timeout config, prompt design, security |
304
307
  | [Sub-Agents Guide](./docs/sub-agents-guide.md) | Child agents, related agents, payload flow, context propagation, loops |
305
308
  | [Human-in-the-Loop](./docs/HUMAN_IN_THE_LOOP.md) | Feedback requests, assignment strategies, request lifecycle |
306
309
  | [Agent Memory Scoping](./docs/AGENT_MEMORY_SCOPING.md) | Multi-tenant memory (notes/examples) with UserScope support |
@@ -9,7 +9,7 @@
9
9
  * @author MemberJunction.com
10
10
  * @since 2.49.0
11
11
  */
12
- import { UserInfo } from '@memberjunction/core';
12
+ import { UserInfo, IMetadataProvider } from '@memberjunction/core';
13
13
  import { ExecuteAgentResult, ExecuteAgentParams, MediaOutput } from '@memberjunction/ai-core-plus';
14
14
  /**
15
15
  * AgentRunner provides a thin wrapper for executing AI agents.
@@ -31,6 +31,8 @@ import { ExecuteAgentResult, ExecuteAgentParams, MediaOutput } from '@memberjunc
31
31
  * ```
32
32
  */
33
33
  export declare class AgentRunner {
34
+ private readonly _provider;
35
+ constructor(provider?: IMetadataProvider);
34
36
  /**
35
37
  * Runs an AI agent with the specified parameters.
36
38
  *
@@ -122,6 +124,42 @@ export declare class AgentRunner {
122
124
  * ```
123
125
  */
124
126
  GetMaxVersionForArtifact(artifactId: string, contextUser: UserInfo): Promise<number>;
127
+ /**
128
+ * Checks whether the serialized content for a new artifact version is identical to the
129
+ * latest existing version of the same artifact, using SHA-256 content hashing.
130
+ *
131
+ * When the content is unchanged, creating a new version adds noise without value.
132
+ * This method computes the hash of the candidate content and compares it against
133
+ * the `ContentHash` stored on the most recent version (populated by
134
+ * `MJArtifactVersionEntityServer.Save()`).
135
+ *
136
+ * @param artifactId - The artifact whose latest version to compare against
137
+ * @param candidateContent - The serialized (JSON-stringified) content that would become the new version
138
+ * @param latestVersionNumber - The version number of the current latest version
139
+ * @param contextUser - User context for the RunView query
140
+ * @returns The existing version's ID if content is identical, or `null` if a new version should be created
141
+ */
142
+ protected CheckForDuplicateVersion(artifactId: string, candidateContent: string, latestVersionNumber: number, contextUser: UserInfo): Promise<string | null>;
143
+ /**
144
+ * Creates a `ConversationDetailArtifact` junction record linking an artifact version
145
+ * to a conversation detail, then returns the standard artifact result tuple.
146
+ *
147
+ * Extracted as a helper so both the normal version-creation path and the
148
+ * duplicate-skip path can share the same linking and return logic.
149
+ *
150
+ * @param versionId - The artifact version ID to link
151
+ * @param conversationDetailId - The conversation detail to link to
152
+ * @param artifactId - The parent artifact ID (passed through to the return value)
153
+ * @param versionNumber - The version number (passed through to the return value)
154
+ * @param contextUser - User context for the save operation
155
+ * @param provider - Metadata provider for entity creation
156
+ * @returns The standard artifact result tuple
157
+ */
158
+ protected LinkArtifactToConversationDetail(versionId: string, conversationDetailId: string, artifactId: string, versionNumber: number, contextUser: UserInfo, provider: IMetadataProvider): Promise<{
159
+ artifactId: string;
160
+ versionId: string;
161
+ versionNumber: number;
162
+ }>;
125
163
  /**
126
164
  * Finds the most recent artifact for a conversation detail to determine versioning.
127
165
  * Queries the junction table to locate artifacts linked to a specific conversation message.
@@ -139,7 +177,7 @@ export declare class AgentRunner {
139
177
  * }
140
178
  * ```
141
179
  */
142
- FindPreviousArtifactForMessage(conversationDetailId: string, contextUser: UserInfo): Promise<{
180
+ FindPreviousArtifactForMessage(conversationDetailId: string, contextUser: UserInfo, provider?: IMetadataProvider): Promise<{
143
181
  artifactId: string;
144
182
  versionNumber: number;
145
183
  } | null>;
@@ -178,7 +216,7 @@ export declare class AgentRunner {
178
216
  * }
179
217
  * ```
180
218
  */
181
- ProcessAgentArtifacts<R>(agentResult: ExecuteAgentResult<R>, conversationDetailId: string, sourceArtifactId: string | undefined, contextUser: UserInfo): Promise<{
219
+ ProcessAgentArtifacts<R>(agentResult: ExecuteAgentResult<R>, conversationDetailId: string, sourceArtifactId: string | undefined, contextUser: UserInfo, provider?: IMetadataProvider): Promise<{
182
220
  artifactId: string;
183
221
  versionId: string;
184
222
  versionNumber: number;
@@ -218,7 +256,7 @@ export declare class AgentRunner {
218
256
  * console.log(`Saved ${mediaIds.length} media outputs`);
219
257
  * ```
220
258
  */
221
- SaveAgentRunMedia(agentRunId: string, mediaOutputs: MediaOutput[] | undefined, contextUser: UserInfo): Promise<string[]>;
259
+ SaveAgentRunMedia(agentRunId: string, mediaOutputs: MediaOutput[] | undefined, contextUser: UserInfo, provider?: IMetadataProvider): Promise<string[]>;
222
260
  /**
223
261
  * Creates ConversationDetailAttachment records for media outputs.
224
262
  * This enables media to be displayed in the conversation UI.
@@ -241,7 +279,7 @@ export declare class AgentRunner {
241
279
  * );
242
280
  * ```
243
281
  */
244
- CreateConversationMediaAttachments(conversationDetailId: string, mediaOutputs: MediaOutput[], agentRunMediaIds: string[], contextUser: UserInfo): Promise<string[]>;
282
+ CreateConversationMediaAttachments(conversationDetailId: string, mediaOutputs: MediaOutput[], agentRunMediaIds: string[], contextUser: UserInfo, provider?: IMetadataProvider): Promise<string[]>;
245
283
  /**
246
284
  * Gets file extension from MIME type
247
285
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRunner.d.ts","sourceRoot":"","sources":["../src/AgentRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentRunner.d.ts","sourceRoot":"","sources":["../src/AgentRunner.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  * @author MemberJunction.com
10
10
  * @since 2.49.0
11
11
  */
12
+ import { createHash } from 'crypto';
12
13
  import { LogError, LogStatusEx, IsVerboseLoggingEnabled, LogStatus, Metadata, RunView } from '@memberjunction/core';
13
14
  import { MJGlobal, UUIDsEqual } from '@memberjunction/global';
14
15
  import { AIEngine } from '@memberjunction/aiengine';
@@ -33,6 +34,9 @@ import { BaseAgent } from './base-agent.js';
33
34
  * ```
34
35
  */
35
36
  export class AgentRunner {
37
+ constructor(provider) {
38
+ this._provider = provider || Metadata.Provider;
39
+ }
36
40
  /**
37
41
  * Runs an AI agent with the specified parameters.
38
42
  *
@@ -73,8 +77,9 @@ export class AgentRunner {
73
77
  if (!agentInstance) {
74
78
  throw new Error(`Failed to create agent instance for driver class: ${driverClass}`);
75
79
  }
76
- // Execute the agent and return the result directly
77
- return await agentInstance.Execute(params);
80
+ // Execute the agent and return the result directly, threading the isolated provider.
81
+ // Favor provider already in params (caller-supplied) over the instance-level provider.
82
+ return await agentInstance.Execute({ ...params, provider: params.provider || this._provider });
78
83
  }
79
84
  catch (error) {
80
85
  const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
@@ -113,7 +118,7 @@ export class AgentRunner {
113
118
  * ```
114
119
  */
115
120
  async RunAgentInConversation(params, options) {
116
- const md = new Metadata();
121
+ const md = params.provider || this._provider;
117
122
  const contextUser = params.contextUser;
118
123
  if (!contextUser) {
119
124
  throw new Error('contextUser is required for RunAgentInConversation');
@@ -157,7 +162,7 @@ export class AgentRunner {
157
162
  let conversationDescription = null;
158
163
  if (!conversationName && options.userMessage) {
159
164
  // Try to generate a name using the "Name Conversation" prompt (same as UI)
160
- const nameResult = await this.GenerateConversationName(options.userMessage, contextUser);
165
+ const nameResult = await this.GenerateConversationName(options.userMessage, contextUser, md);
161
166
  if (nameResult) {
162
167
  conversationName = nameResult.name;
163
168
  conversationDescription = nameResult.description;
@@ -287,7 +292,7 @@ export class AgentRunner {
287
292
  const shouldCreateArtifacts = options.createArtifacts !== false; // Default true
288
293
  if (shouldCreateArtifacts && agentResult.success && agentResult.payload) {
289
294
  // Artifacts link to agent response detail ID
290
- artifactInfo = await this.ProcessAgentArtifacts(agentResult, agentResponseDetailId, options.sourceArtifactId, contextUser);
295
+ artifactInfo = await this.ProcessAgentArtifacts(agentResult, agentResponseDetailId, options.sourceArtifactId, contextUser, md);
291
296
  }
292
297
  // Step 7: Save media outputs to AIAgentRunMedia and create conversation attachments
293
298
  let mediaIds = [];
@@ -297,11 +302,11 @@ export class AgentRunner {
297
302
  LogStatus(`Processing ${mediaToSave.length} of ${agentResult.mediaOutputs.length} media outputs (filtered by persist flag)`);
298
303
  // Save to AIAgentRunMedia for permanent storage
299
304
  mediaIds = await this.SaveAgentRunMedia(agentResult.agentRun.ID, mediaToSave, // Pass filtered array
300
- contextUser);
305
+ contextUser, md);
301
306
  // Create ConversationDetailAttachment records for UI display
302
307
  if (agentResponseDetailId && mediaIds.length > 0) {
303
308
  await this.CreateConversationMediaAttachments(agentResponseDetailId, mediaToSave, // Pass same filtered array to keep indices aligned
304
- mediaIds, contextUser);
309
+ mediaIds, contextUser, md);
305
310
  }
306
311
  }
307
312
  return {
@@ -353,6 +358,62 @@ export class AgentRunner {
353
358
  return 0;
354
359
  }
355
360
  }
361
+ /**
362
+ * Checks whether the serialized content for a new artifact version is identical to the
363
+ * latest existing version of the same artifact, using SHA-256 content hashing.
364
+ *
365
+ * When the content is unchanged, creating a new version adds noise without value.
366
+ * This method computes the hash of the candidate content and compares it against
367
+ * the `ContentHash` stored on the most recent version (populated by
368
+ * `MJArtifactVersionEntityServer.Save()`).
369
+ *
370
+ * @param artifactId - The artifact whose latest version to compare against
371
+ * @param candidateContent - The serialized (JSON-stringified) content that would become the new version
372
+ * @param latestVersionNumber - The version number of the current latest version
373
+ * @param contextUser - User context for the RunView query
374
+ * @returns The existing version's ID if content is identical, or `null` if a new version should be created
375
+ */
376
+ async CheckForDuplicateVersion(artifactId, candidateContent, latestVersionNumber, contextUser) {
377
+ const candidateHash = createHash('sha256').update(candidateContent, 'utf8').digest('hex');
378
+ const rv = new RunView();
379
+ const result = await rv.RunView({
380
+ EntityName: 'MJ: Artifact Versions',
381
+ ExtraFilter: `ArtifactID='${artifactId}' AND VersionNumber=${latestVersionNumber}`,
382
+ Fields: ['ID', 'ContentHash'],
383
+ MaxRows: 1,
384
+ ResultType: 'simple'
385
+ }, contextUser);
386
+ if (result.Success && result.Results.length > 0 && result.Results[0].ContentHash === candidateHash) {
387
+ return result.Results[0].ID;
388
+ }
389
+ return null;
390
+ }
391
+ /**
392
+ * Creates a `ConversationDetailArtifact` junction record linking an artifact version
393
+ * to a conversation detail, then returns the standard artifact result tuple.
394
+ *
395
+ * Extracted as a helper so both the normal version-creation path and the
396
+ * duplicate-skip path can share the same linking and return logic.
397
+ *
398
+ * @param versionId - The artifact version ID to link
399
+ * @param conversationDetailId - The conversation detail to link to
400
+ * @param artifactId - The parent artifact ID (passed through to the return value)
401
+ * @param versionNumber - The version number (passed through to the return value)
402
+ * @param contextUser - User context for the save operation
403
+ * @param provider - Metadata provider for entity creation
404
+ * @returns The standard artifact result tuple
405
+ */
406
+ async LinkArtifactToConversationDetail(versionId, conversationDetailId, artifactId, versionNumber, contextUser, provider) {
407
+ const junction = await provider.GetEntityObject('MJ: Conversation Detail Artifacts', contextUser);
408
+ junction.ConversationDetailID = conversationDetailId;
409
+ junction.ArtifactVersionID = versionId;
410
+ junction.Direction = 'Output';
411
+ if (!(await junction.Save())) {
412
+ throw new Error('Failed to create artifact-message association');
413
+ }
414
+ LogStatus(`Linked artifact to conversation detail ${conversationDetailId}`);
415
+ return { artifactId, versionId, versionNumber };
416
+ }
356
417
  /**
357
418
  * Finds the most recent artifact for a conversation detail to determine versioning.
358
419
  * Queries the junction table to locate artifacts linked to a specific conversation message.
@@ -370,7 +431,7 @@ export class AgentRunner {
370
431
  * }
371
432
  * ```
372
433
  */
373
- async FindPreviousArtifactForMessage(conversationDetailId, contextUser) {
434
+ async FindPreviousArtifactForMessage(conversationDetailId, contextUser, provider) {
374
435
  try {
375
436
  const rv = new RunView();
376
437
  const result = await rv.RunView({
@@ -384,7 +445,7 @@ export class AgentRunner {
384
445
  return null;
385
446
  }
386
447
  const junction = result.Results[0];
387
- const md = new Metadata();
448
+ const md = provider || this._provider;
388
449
  const version = await md.GetEntityObject('MJ: Artifact Versions', contextUser);
389
450
  if (!(await version.Load(junction.ArtifactVersionID))) {
390
451
  return null;
@@ -434,7 +495,7 @@ export class AgentRunner {
434
495
  * }
435
496
  * ```
436
497
  */
437
- async ProcessAgentArtifacts(agentResult, conversationDetailId, sourceArtifactId, contextUser) {
498
+ async ProcessAgentArtifacts(agentResult, conversationDetailId, sourceArtifactId, contextUser, provider) {
438
499
  const payload = agentResult.payload;
439
500
  const agentRun = agentResult.agentRun;
440
501
  if (!payload || Object.keys(payload).length === 0) {
@@ -450,7 +511,7 @@ export class AgentRunner {
450
511
  return undefined;
451
512
  }
452
513
  try {
453
- const md = new Metadata();
514
+ const md = provider || this._provider;
454
515
  const JSON_ARTIFACT_TYPE_ID = 'ae674c7e-ea0d-49ea-89e4-0649f5eb20d4';
455
516
  // Determine if creating new artifact or new version
456
517
  let artifactId;
@@ -465,7 +526,7 @@ export class AgentRunner {
465
526
  }
466
527
  // Priority 2: Try to find previous artifact for this message
467
528
  else {
468
- const previousArtifact = await this.FindPreviousArtifactForMessage(conversationDetailId, contextUser);
529
+ const previousArtifact = await this.FindPreviousArtifactForMessage(conversationDetailId, contextUser, md);
469
530
  if (previousArtifact) {
470
531
  artifactId = previousArtifact.artifactId;
471
532
  newVersionNumber = previousArtifact.versionNumber + 1;
@@ -500,11 +561,21 @@ export class AgentRunner {
500
561
  LogStatus(`Created new artifact: ${artifact.Name} (${artifactId})`);
501
562
  }
502
563
  }
564
+ // Serialize the payload once — used for both dedup check and version creation
565
+ const serializedContent = JSON.stringify(payload, null, 2);
566
+ // Skip version creation if content is identical to the latest version
567
+ if (!isNewArtifact && newVersionNumber > 1) {
568
+ const existingVersionId = await this.CheckForDuplicateVersion(artifactId, serializedContent, newVersionNumber - 1, contextUser);
569
+ if (existingVersionId) {
570
+ console.debug(`Skipping duplicate artifact version — content identical to version ${newVersionNumber - 1}`);
571
+ return undefined;
572
+ }
573
+ }
503
574
  // Create artifact version with content
504
575
  const version = await md.GetEntityObject('MJ: Artifact Versions', contextUser);
505
576
  version.ArtifactID = artifactId;
506
577
  version.VersionNumber = newVersionNumber;
507
- version.Content = JSON.stringify(payload, null, 2);
578
+ version.Content = serializedContent;
508
579
  version.UserID = contextUser.ID;
509
580
  if (!(await version.Save())) {
510
581
  throw new Error('Failed to save artifact version');
@@ -525,20 +596,8 @@ export class AgentRunner {
525
596
  }
526
597
  }
527
598
  }
528
- // Create junction record linking artifact to conversation detail
529
- const junction = await md.GetEntityObject('MJ: Conversation Detail Artifacts', contextUser);
530
- junction.ConversationDetailID = conversationDetailId;
531
- junction.ArtifactVersionID = version.ID;
532
- junction.Direction = 'Output';
533
- if (!(await junction.Save())) {
534
- throw new Error('Failed to create artifact-message association');
535
- }
536
- LogStatus(`Linked artifact to conversation detail ${conversationDetailId}`);
537
- return {
538
- artifactId,
539
- versionId: version.ID,
540
- versionNumber: newVersionNumber
541
- };
599
+ // Link the new version to this conversation detail and return
600
+ return this.LinkArtifactToConversationDetail(version.ID, conversationDetailId, artifactId, newVersionNumber, contextUser, md);
542
601
  }
543
602
  catch (error) {
544
603
  LogError(`Failed to process agent artifacts: ${error.message}`);
@@ -555,7 +614,7 @@ export class AgentRunner {
555
614
  * @returns Generated conversation name and description, or null if generation failed
556
615
  * @private
557
616
  */
558
- async GenerateConversationName(userMessage, contextUser) {
617
+ async GenerateConversationName(userMessage, contextUser, provider) {
559
618
  try {
560
619
  // Import AIPromptRunner, AIPromptParams, and AIEngine
561
620
  const { AIPromptRunner } = await import('@memberjunction/ai-prompts');
@@ -574,6 +633,7 @@ export class AgentRunner {
574
633
  promptParams.prompt = prompt;
575
634
  promptParams.contextUser = contextUser;
576
635
  promptParams.conversationMessages = [{ role: 'user', content: userMessage }];
636
+ promptParams.provider = provider || this._provider;
577
637
  const runner = new AIPromptRunner();
578
638
  const result = await runner.ExecutePrompt(promptParams);
579
639
  if (result && result.success && result.result) {
@@ -621,7 +681,7 @@ export class AgentRunner {
621
681
  * console.log(`Saved ${mediaIds.length} media outputs`);
622
682
  * ```
623
683
  */
624
- async SaveAgentRunMedia(agentRunId, mediaOutputs, contextUser) {
684
+ async SaveAgentRunMedia(agentRunId, mediaOutputs, contextUser, provider) {
625
685
  if (!mediaOutputs || mediaOutputs.length === 0) {
626
686
  return [];
627
687
  }
@@ -636,7 +696,7 @@ export class AgentRunner {
636
696
  LogStatus(`Filtering: ${mediaToSave.length} of ${mediaOutputs.length} media outputs will be persisted`);
637
697
  }
638
698
  const savedIds = [];
639
- const md = new Metadata();
699
+ const md = provider || this._provider;
640
700
  try {
641
701
  // Use AIEngine's cached modalities instead of a fresh DB call
642
702
  const aiEngine = AIEngine.Instance;
@@ -728,12 +788,12 @@ export class AgentRunner {
728
788
  * );
729
789
  * ```
730
790
  */
731
- async CreateConversationMediaAttachments(conversationDetailId, mediaOutputs, agentRunMediaIds, contextUser) {
791
+ async CreateConversationMediaAttachments(conversationDetailId, mediaOutputs, agentRunMediaIds, contextUser, provider) {
732
792
  if (!mediaOutputs || mediaOutputs.length === 0) {
733
793
  return [];
734
794
  }
735
795
  const attachmentIds = [];
736
- const md = new Metadata();
796
+ const md = provider || this._provider;
737
797
  try {
738
798
  // Use AIEngine's cached modalities instead of a fresh DB call
739
799
  const aiEngine = AIEngine.Instance;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRunner.js","sourceRoot":"","sources":["../src/AgentRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentRunner.js","sourceRoot":"","sources":["../src/AgentRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @fileoverview Server-side singleton that manages pending client tool requests.
3
+ *
4
+ * BaseAgent publishes a request via PubSub and awaits the returned Promise.
5
+ * The GraphQL resolver receives the client's response and resolves that Promise.
6
+ *
7
+ * @module @memberjunction/ai-agents
8
+ */
9
+ import { BaseSingleton } from '@memberjunction/global';
10
+ import { ClientToolMetadata, ClientToolResponse } from '@memberjunction/ai-core-plus';
11
+ /** Payload published to the CLIENT_TOOL_REQUEST PubSub topic */
12
+ export interface ClientToolRequestNotificationPayload {
13
+ AgentRunID: string;
14
+ SessionID: string;
15
+ RequestID: string;
16
+ ToolName: string;
17
+ /** JSON-encoded parameters */
18
+ Params: string;
19
+ TimeoutMs: number;
20
+ Description: string;
21
+ }
22
+ /** The PubSub topic used for client tool requests */
23
+ export declare const CLIENT_TOOL_REQUEST_TOPIC = "CLIENT_TOOL_REQUEST";
24
+ /**
25
+ * Singleton that manages pending client tool requests.
26
+ * BaseAgent publishes a request and awaits the Promise.
27
+ * The GraphQL resolver receives the response and resolves the Promise.
28
+ */
29
+ export declare class ClientToolRequestManager extends BaseSingleton<ClientToolRequestManager> {
30
+ private pendingRequests;
31
+ /** Enriched tool definitions per session (from client decoration) */
32
+ private sessionTools;
33
+ /** Optional PubSub publish function — injected by the server at startup */
34
+ private publishFn;
35
+ protected constructor();
36
+ static get Instance(): ClientToolRequestManager;
37
+ /**
38
+ * Set the publish function used to send tool requests to clients.
39
+ * Called once at server startup after PubSubManager is configured.
40
+ */
41
+ SetPublishFunction(fn: (topic: string, payload: Record<string, unknown>) => void): void;
42
+ /**
43
+ * Called by BaseAgent to send a request and await the response.
44
+ * Publishes via PubSub and returns a Promise that resolves when
45
+ * the client responds or times out.
46
+ */
47
+ RequestClientTool(requestID: string, toolName: string, params: Record<string, unknown>, sessionID: string, agentRunID: string, timeoutMs: number, description?: string): Promise<ClientToolResponse>;
48
+ /**
49
+ * Called by the RespondToClientToolRequest GraphQL mutation.
50
+ * Resolves the pending Promise so the agent loop continues.
51
+ */
52
+ ReceiveResponse(response: ClientToolResponse): boolean;
53
+ /** Store enriched tool definitions for a session */
54
+ SetSessionTools(sessionID: string, tools: ClientToolMetadata[]): void;
55
+ /** Get enriched tool definitions for prompt injection */
56
+ GetSessionTools(sessionID: string): ClientToolMetadata[];
57
+ /** Clean up when session ends */
58
+ ClearSession(sessionID: string): void;
59
+ /** Get the number of pending requests (useful for testing/monitoring) */
60
+ get PendingRequestCount(): number;
61
+ }
62
+ //# sourceMappingURL=ClientToolRequestManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientToolRequestManager.d.ts","sourceRoot":"","sources":["../src/ClientToolRequestManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAQtF,gEAAgE;AAChE,MAAM,WAAW,oCAAoC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACjF,OAAO,CAAC,eAAe,CAAqC;IAE5D,qEAAqE;IACrE,OAAO,CAAC,YAAY,CAA2C;IAE/D,2EAA2E;IAC3E,OAAO,CAAC,SAAS,CAA4E;IAE7F,SAAS;IAIT,WAAkB,QAAQ,IAAI,wBAAwB,CAErD;IAED;;;OAGG;IACI,kBAAkB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAI9F;;;;OAIG;IACU,iBAAiB,CAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAqC9B;;;OAGG;IACI,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO;IAa7D,oDAAoD;IAC7C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAI5E,yDAAyD;IAClD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAI/D,iCAAiC;IAC1B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI5C,yEAAyE;IACzE,IAAW,mBAAmB,IAAI,MAAM,CAEvC;CACJ"}