@memberjunction/ai-agents 6.2.0-edge.2 → 6.2.0-edge.3

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 (71) hide show
  1. package/dist/AgentDecisionService.d.ts +8 -1
  2. package/dist/AgentDecisionService.d.ts.map +1 -1
  3. package/dist/AgentDecisionService.js +4 -0
  4. package/dist/AgentDecisionService.js.map +1 -1
  5. package/dist/AgentRunner.d.ts +2 -0
  6. package/dist/AgentRunner.d.ts.map +1 -1
  7. package/dist/AgentRunner.js +7 -2
  8. package/dist/AgentRunner.js.map +1 -1
  9. package/dist/ConversationCompactionManager.d.ts +7 -1
  10. package/dist/ConversationCompactionManager.d.ts.map +1 -1
  11. package/dist/ConversationCompactionManager.js +4 -1
  12. package/dist/ConversationCompactionManager.js.map +1 -1
  13. package/dist/PayloadFeedbackManager.d.ts +3 -0
  14. package/dist/PayloadFeedbackManager.d.ts.map +1 -1
  15. package/dist/PayloadFeedbackManager.js +2 -1
  16. package/dist/PayloadFeedbackManager.js.map +1 -1
  17. package/dist/agent-types/loop-agent-type.d.ts +20 -0
  18. package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
  19. package/dist/agent-types/loop-agent-type.js +73 -2
  20. package/dist/agent-types/loop-agent-type.js.map +1 -1
  21. package/dist/base-agent.d.ts +35 -8
  22. package/dist/base-agent.d.ts.map +1 -1
  23. package/dist/base-agent.js +106 -28
  24. package/dist/base-agent.js.map +1 -1
  25. package/dist/index.d.ts +4 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/native-tools/action-tool-builder.d.ts +14 -0
  30. package/dist/native-tools/action-tool-builder.d.ts.map +1 -1
  31. package/dist/native-tools/action-tool-builder.js +62 -7
  32. package/dist/native-tools/action-tool-builder.js.map +1 -1
  33. package/dist/native-tools/control-tools.d.ts +17 -1
  34. package/dist/native-tools/control-tools.d.ts.map +1 -1
  35. package/dist/native-tools/control-tools.js +40 -3
  36. package/dist/native-tools/control-tools.js.map +1 -1
  37. package/dist/realtime/bridge-host-params.d.ts +22 -0
  38. package/dist/realtime/bridge-host-params.d.ts.map +1 -0
  39. package/dist/realtime/bridge-host-params.js +53 -0
  40. package/dist/realtime/bridge-host-params.js.map +1 -0
  41. package/dist/realtime/bridge-realtime-session-factory.d.ts +19 -1
  42. package/dist/realtime/bridge-realtime-session-factory.d.ts.map +1 -1
  43. package/dist/realtime/bridge-realtime-session-factory.js +15 -2
  44. package/dist/realtime/bridge-realtime-session-factory.js.map +1 -1
  45. package/dist/realtime/bridge-session-transcript-sink.d.ts +37 -0
  46. package/dist/realtime/bridge-session-transcript-sink.d.ts.map +1 -0
  47. package/dist/realtime/bridge-session-transcript-sink.js +58 -0
  48. package/dist/realtime/bridge-session-transcript-sink.js.map +1 -0
  49. package/dist/realtime/realtime-client-session-service.d.ts +68 -5
  50. package/dist/realtime/realtime-client-session-service.d.ts.map +1 -1
  51. package/dist/realtime/realtime-client-session-service.js +97 -25
  52. package/dist/realtime/realtime-client-session-service.js.map +1 -1
  53. package/dist/realtime/realtime-coagent-resolution.d.ts +90 -0
  54. package/dist/realtime/realtime-coagent-resolution.d.ts.map +1 -0
  55. package/dist/realtime/realtime-coagent-resolution.js +186 -0
  56. package/dist/realtime/realtime-coagent-resolution.js.map +1 -0
  57. package/dist/realtime/realtime-delegation-narrator.d.ts +97 -0
  58. package/dist/realtime/realtime-delegation-narrator.d.ts.map +1 -0
  59. package/dist/realtime/realtime-delegation-narrator.js +162 -0
  60. package/dist/realtime/realtime-delegation-narrator.js.map +1 -0
  61. package/dist/realtime/realtime-session-runner.d.ts +2 -82
  62. package/dist/realtime/realtime-session-runner.d.ts.map +1 -1
  63. package/dist/realtime/realtime-session-runner.js +12 -187
  64. package/dist/realtime/realtime-session-runner.js.map +1 -1
  65. package/dist/rubric-evaluation-agent-runner.js +17 -8
  66. package/dist/rubric-evaluation-agent-runner.js.map +1 -1
  67. package/dist/self-check.d.ts +6 -3
  68. package/dist/self-check.d.ts.map +1 -1
  69. package/dist/self-check.js +3 -3
  70. package/dist/self-check.js.map +1 -1
  71. package/package.json +19 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-session-transcript-sink.d.ts","sourceRoot":"","sources":["../../src/realtime/bridge-session-transcript-sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,wBAAwB,EAA6B,MAAM,+BAA+B,CAAC;AAEzG,0EAA0E;AAC1E,MAAM,WAAW,kCAAkC;IAC/C,0GAA0G;IAC1G,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,kCAAkC,GAAG,wBAAwB,CAUvH"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @fileoverview `CreateBridgeSessionTranscriptSink` — persists a bridged call's transcript into the
3
+ * `MJ: Conversations` row that belongs to THAT session.
4
+ *
5
+ * The room sink ({@link CreateBridgeRoomTranscriptSink}) is the right shape for a multi-party meeting: one
6
+ * "Meeting Room" conversation per room, written by an elected scribe. A phone call is the opposite — one
7
+ * session, one remote party, a conversation the session manager already created. Routing a call through the
8
+ * room sink wrote its transcript into a separate global conversation owned by the system user while the call's
9
+ * own conversation stayed empty. This sink writes each final line to the session's own conversation, in order,
10
+ * the same way the browser path does (`AgentSessionID` and `UserID` stamped on every turn).
11
+ *
12
+ * @module @memberjunction/ai-agents
13
+ * @author MemberJunction.com
14
+ */
15
+ import { LogError } from '@memberjunction/core';
16
+ const CONVERSATION_DETAIL_ENTITY = 'MJ: Conversation Details';
17
+ /**
18
+ * Builds a transcript sink bound to one session's conversation. Pass the result as
19
+ * `StartBridgeSessionParams.TranscriptSink`. Writes are serialized so turns land in the order they were spoken,
20
+ * and a failed write is logged without blocking the ones behind it.
21
+ *
22
+ * @param options The conversation, session and (optional) agent attribution.
23
+ * @returns The sink.
24
+ */
25
+ export function CreateBridgeSessionTranscriptSink(options) {
26
+ let chain = Promise.resolve();
27
+ return (line, contextUser, provider) => {
28
+ if (!contextUser || !provider) {
29
+ return Promise.resolve(); // a server-side write needs a user + provider
30
+ }
31
+ const write = chain.then(() => WriteSessionTurn(options, line, contextUser, provider));
32
+ chain = write.then(() => undefined, () => undefined);
33
+ return write;
34
+ };
35
+ }
36
+ /** Writes one `MJ: Conversation Details` row for a final transcript line. Never throws. */
37
+ async function WriteSessionTurn(options, line, contextUser, provider) {
38
+ try {
39
+ const detail = await provider.GetEntityObject(CONVERSATION_DETAIL_ENTITY, contextUser);
40
+ detail.NewRecord();
41
+ detail.ConversationID = options.ConversationID;
42
+ detail.Role = line.IsAgentSpeech ? 'AI' : 'User';
43
+ detail.Message = line.Text;
44
+ detail.AgentSessionID = options.AgentSessionID;
45
+ detail.UserID = contextUser.ID;
46
+ const agentID = options.AgentID ?? line.AgentID;
47
+ if (line.IsAgentSpeech && agentID) {
48
+ detail.AgentID = agentID;
49
+ }
50
+ if (!(await detail.Save())) {
51
+ LogError(`CreateBridgeSessionTranscriptSink: failed to write a transcript turn for session ${options.AgentSessionID}: ${detail.LatestResult?.CompleteMessage ?? 'unknown error'}`);
52
+ }
53
+ }
54
+ catch (error) {
55
+ LogError(`CreateBridgeSessionTranscriptSink: transcript write threw for session ${options.AgentSessionID}: ${error instanceof Error ? error.message : String(error)}`);
56
+ }
57
+ }
58
+ //# sourceMappingURL=bridge-session-transcript-sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-session-transcript-sink.js","sourceRoot":"","sources":["../../src/realtime/bridge-session-transcript-sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAqB,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAiB7E,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAAC,OAA2C;IACzF,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;QACnC,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,8CAA8C;QAC5E,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvF,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC;AAED,2FAA2F;AAC3F,KAAK,UAAU,gBAAgB,CAC3B,OAA2C,EAC3C,IAA+B,EAC/B,WAAqB,EACrB,QAA2B;IAE3B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAA6B,0BAA0B,EAAE,WAAW,CAAC,CAAC;QACnH,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC/C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACjD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC/C,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,oFAAoF,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,YAAY,EAAE,eAAe,IAAI,eAAe,EAAE,CAAC,CAAC;QACvL,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,yEAAyE,OAAO,CAAC,cAAc,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3K,CAAC;AACL,CAAC"}
@@ -32,7 +32,7 @@
32
32
  import { UserInfo, IMetadataProvider } from '@memberjunction/core';
33
33
  import { MJLruCache } from '@memberjunction/global';
34
34
  import { MJActionEntityExtended } from '@memberjunction/actions-base';
35
- import { BaseRealtimeModel, ChatMessage, ClientRealtimeSessionConfig, AIAPIKey, AIAPIKeyResolver, IRealtimeSession, JSONObject, RealtimeSessionParams, RealtimeToolCall, RealtimeToolDefinition } from '@memberjunction/ai';
35
+ import { BaseRealtimeModel, ChatMessage, ClientRealtimeSessionConfig, AIAPIKey, AIAPIKeyResolver, AICredentialScope, IRealtimeSession, JSONObject, RealtimeSessionParams, RealtimeToolCall, RealtimeToolDefinition } from '@memberjunction/ai';
36
36
  import { MJAIAgentEntityExtended, MJAIModelEntityExtended, MJAIAgentRunEntityExtended, AgentExecutionProgressCallback, ExecuteAgentResult, AppContextSnapshot } from '@memberjunction/ai-core-plus';
37
37
  import { RealtimeToolBroker, RealtimeColleague, DelegateToTargetRequest, DelegatedResult, DelegatedRunArtifact, ToolExecutionResult } from './realtime-tool-broker.js';
38
38
  import { RealtimeAllowedAgent, RealtimeCoAgentConfig, RealtimeDirectActionsConfig } from './realtime-coagent-config.js';
@@ -56,6 +56,13 @@ export interface PrepareClientSessionInput {
56
56
  * client-initiated session today.
57
57
  */
58
58
  APIKeys?: AIAPIKey[];
59
+ /**
60
+ * The run's credential scope (`ExecuteAgentParams.CredentialScope`). `'RuntimeOnly'` makes
61
+ * {@link PrepareClientSessionInput.APIKeys} the whole key chain: a vendor they do not key is not
62
+ * selected, and the {@link RealtimeClientSessionService.getAPIKeyForDriver} seam (by default the
63
+ * platform's environment key) is never consulted. Absent ⇒ `'Any'`.
64
+ */
65
+ CredentialScope?: AICredentialScope;
59
66
  /** The Realtime Co-Agent entity. Provide this OR {@link PrepareClientSessionInput.CoAgentID}. */
60
67
  CoAgent?: MJAIAgentEntityExtended;
61
68
  /** The Realtime Co-Agent id (resolved from cached metadata). Provide this OR {@link PrepareClientSessionInput.CoAgent}. */
@@ -82,6 +89,18 @@ export interface PrepareClientSessionInput {
82
89
  AppContext?: AppContextSnapshot;
83
90
  /** Prior conversation history to seed the model's context. Optional. */
84
91
  ConversationMessages?: ChatMessage[];
92
+ /**
93
+ * Tools the HOST (not the co-agent runtime) declares AND executes — e.g. a phone call's `transfer_call`,
94
+ * `send_dtmf` and `end_call`. They are added to the session's tool set but, unlike {@link ExtraTools}, are
95
+ * NOT described as interactive-surface tools in the prompt. The host executes them through the runtime's
96
+ * local tool handler ({@link BridgeRealtimeRuntime.SetLocalToolHandler}).
97
+ */
98
+ HostTools?: RealtimeToolDefinition[];
99
+ /**
100
+ * Host-authored instructions appended to the system prompt (e.g. "this is an audio-only phone call …",
101
+ * the caller's number and verification status). Empty/absent adds nothing.
102
+ */
103
+ HostFraming?: string;
85
104
  /**
86
105
  * Pre-formatted, role-tagged transcript lines (`User: …` / `Assistant: …`, newline-separated)
87
106
  * from the caller's PRIOR session leg(s) when this session RESUMES one (`lastSessionId`).
@@ -351,7 +370,43 @@ export interface BridgeRealtimeRuntime {
351
370
  PromptRunID?: string;
352
371
  /** Finalizes the co-agent + prompt run. Idempotent; safe to call from multiple teardown paths. */
353
372
  Finalize: (success: boolean) => Promise<void>;
373
+ /**
374
+ * Aborts every delegated run currently in flight for this session (and drops pending narration). This is the
375
+ * EXPLICIT cancel — on a phone it backs the `cancel_pending_work` tool — and is deliberately NOT what a
376
+ * barge-in does (see {@link CancelPendingNarration}). Returns how many were aborted (0 when nothing was
377
+ * running; never throws).
378
+ */
379
+ CancelInFlightDelegations: () => number;
380
+ /**
381
+ * Drops any queued spoken progress update without touching the delegated work — what a barge-in does. The
382
+ * caller took the floor, so a pending "still working on it" is stale, but the jobs they asked for keep
383
+ * running. Never throws.
384
+ */
385
+ CancelPendingNarration: () => void;
386
+ /**
387
+ * Installs (or clears, with `undefined`) the host's local tool handler. A tool call whose name the handler
388
+ * {@link BridgeLocalToolHandler.Handles} is executed by the host instead of the shared delegation path.
389
+ */
390
+ SetLocalToolHandler: (handler: BridgeLocalToolHandler | undefined) => void;
391
+ }
392
+ /**
393
+ * Executes tools the host declared through {@link PrepareClientSessionInput.HostTools}. Bound after the session
394
+ * is wired because the object that can act on them (a phone call's bridge) does not exist until the bridge
395
+ * engine has started.
396
+ */
397
+ export interface BridgeLocalToolHandler {
398
+ /** Whether this handler owns `toolName`. */
399
+ Handles(toolName: string): boolean;
400
+ /** Runs one call; the returned string is the JSON handed back to the model. Never needs to catch — errors are reported to the model. */
401
+ Execute(call: RealtimeToolCall): Promise<string>;
354
402
  }
403
+ /**
404
+ * Returns the runtime wired onto a bridged realtime session by
405
+ * {@link RealtimeClientSessionService.WireBridgeRealtimeSession}, or `undefined` for a session that was never
406
+ * wired. Lets a host that only holds the {@link IRealtimeSession} (the telephony services) cancel delegations on
407
+ * barge-in and install its local tool handler.
408
+ */
409
+ export declare function GetBridgeRealtimeRuntime(session: IRealtimeSession): BridgeRealtimeRuntime | undefined;
355
410
  /**
356
411
  * Outcome of resolving the realtime model for a session: either a usable {@link RealtimeModelResolution}
357
412
  * or a specific, human-readable failure reason (used for explicit preferred-model failures, where the
@@ -823,9 +878,10 @@ export declare class RealtimeClientSessionService {
823
878
  *
824
879
  * @param effectiveConfig The resolved effective configuration.
825
880
  * @param resolve The session's run-scoped key resolver (run keys only; see {@link resolveVendorAndInstantiate}).
881
+ * @param credentialScope The session's credential scope; see {@link resolveVendorAndInstantiate}.
826
882
  * @returns The resolution, or `null` when no preference is configured or it can't be satisfied.
827
883
  */
828
- protected resolveConfiguredModelPreference(effectiveConfig?: RealtimeCoAgentConfig, resolve?: AIAPIKeyResolver): RealtimeModelResolution | null;
884
+ protected resolveConfiguredModelPreference(effectiveConfig?: RealtimeCoAgentConfig, resolve?: AIAPIKeyResolver, credentialScope?: AICredentialScope): RealtimeModelResolution | null;
829
885
  /**
830
886
  * Looks up a model by ID (UUID-insensitive) or, failing that, by case/whitespace-insensitive
831
887
  * Name in {@link AIEngine}'s cached models. **Overridable seam**; tolerant of an unloaded cache.
@@ -841,9 +897,10 @@ export declare class RealtimeClientSessionService {
841
897
  *
842
898
  * @param preferredModelID The `MJ: AI Models.ID` the user chose.
843
899
  * @param resolve The session's run-scoped key resolver (run keys only; see {@link resolveVendorAndInstantiate}).
900
+ * @param credentialScope The session's credential scope; see {@link resolveVendorAndInstantiate}.
844
901
  * @returns The resolution outcome (resolution or a specific failure reason).
845
902
  */
846
- protected resolvePreferredRealtimeModel(preferredModelID: string, resolve?: AIAPIKeyResolver): RealtimeModelResolutionOutcome;
903
+ protected resolvePreferredRealtimeModel(preferredModelID: string, resolve?: AIAPIKeyResolver, credentialScope?: AICredentialScope): RealtimeModelResolutionOutcome;
847
904
  /**
848
905
  * Looks up a model by id in {@link AIEngine}'s cached models. **Overridable seam** for tests.
849
906
  *
@@ -864,9 +921,10 @@ export declare class RealtimeClientSessionService {
864
921
  *
865
922
  * @param coAgent The co-agent being voiced (reserved for future per-agent model preference).
866
923
  * @param resolve The session's run-scoped key resolver (run keys only; see {@link resolveVendorAndInstantiate}).
924
+ * @param credentialScope The session's credential scope; see {@link resolveVendorAndInstantiate}.
867
925
  * @returns The resolved model + identifiers, or `null`.
868
926
  */
869
- protected resolveRealtimeModel(coAgent: MJAIAgentEntityExtended, resolve?: AIAPIKeyResolver): Promise<RealtimeModelResolution | null>;
927
+ protected resolveRealtimeModel(coAgent: MJAIAgentEntityExtended, resolve?: AIAPIKeyResolver, credentialScope?: AICredentialScope): Promise<RealtimeModelResolution | null>;
870
928
  /**
871
929
  * Shared tail of model resolution: picks the vendor (with a usable API key) for an
872
930
  * already-chosen model entity and instantiates its realtime driver.
@@ -879,9 +937,12 @@ export declare class RealtimeClientSessionService {
879
937
  * @param resolve The session's run-scoped key resolver. Expected to answer with run keys only:
880
938
  * one that falls back to the environment itself answers before {@link getAPIKeyForDriver} and
881
939
  * so bypasses an override of it.
940
+ * @param credentialScope A scope that rules out the `'Environment'` source (`'RuntimeOnly'`) drops the
941
+ * {@link getAPIKeyForDriver} seam: the run's keys are the whole chain, so a vendor they do not key
942
+ * is never selected on the platform's key.
882
943
  * @returns The full resolution, or `null` when no vendor/key/driver can be satisfied.
883
944
  */
884
- protected resolveVendorAndInstantiate(model: MJAIModelEntityExtended, resolve?: AIAPIKeyResolver): RealtimeModelResolution | null;
945
+ protected resolveVendorAndInstantiate(model: MJAIModelEntityExtended, resolve?: AIAPIKeyResolver, credentialScope?: AICredentialScope): RealtimeModelResolution | null;
885
946
  /**
886
947
  * Resolves the API key for a vendor driver class. **Overridable seam** (wraps the module-level
887
948
  * {@link GetAIAPIKey}) so tests can simulate present/absent keys without environment setup.
@@ -1124,6 +1185,8 @@ export declare class RealtimeClientSessionService {
1124
1185
  * @returns The tools to register at session start.
1125
1186
  */
1126
1187
  protected buildStableToolSet(extraTools?: RealtimeToolDefinition[]): RealtimeToolDefinition[];
1188
+ /** Appends the host-declared tools to a stable tool set, dropping any whose name is already taken. */
1189
+ protected appendHostTools(tools: RealtimeToolDefinition[], hostTools?: RealtimeToolDefinition[]): RealtimeToolDefinition[];
1127
1190
  /**
1128
1191
  * Builds the {@link RealtimeToolBroker} for a relayed tool call, wiring `DelegateToTarget` to a
1129
1192
  * target-agent run and `ExecuteTool` to direct-action execution or a structured "not available" placeholder.
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-client-session-service.d.ts","sourceRoot":"","sources":["../../src/realtime/realtime-client-session-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime-client-session-service.d.ts","sourceRoot":"","sources":["../../src/realtime/realtime-client-session-service.ts"],"names":[],"mappings":"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"}
@@ -33,15 +33,28 @@ import { LogError, LogStatus, RunView } from '@memberjunction/core';
33
33
  import { MJGlobal, MJLruCache, UUIDsEqual, EscapeSQLString } from '@memberjunction/global';
34
34
  import { ActionEngineServer } from '@memberjunction/actions';
35
35
  import { RunActionParams } from '@memberjunction/actions-base';
36
- import { BaseRealtimeModel, GetAIAPIKey } from '@memberjunction/ai';
36
+ import { BaseRealtimeModel, GetAIAPIKey, CredentialScopeAllows } from '@memberjunction/ai';
37
37
  import { FormatAppContextNote, ResolvePromptRunUserID } from '@memberjunction/ai-core-plus';
38
38
  import { AIEngine } from '@memberjunction/aiengine';
39
39
  import { AgentMemoryContextBuilder } from '../agent-memory-context-builder.js';
40
40
  import { AgentRunner } from '../AgentRunner.js';
41
+ import { DelegationNarrator } from './realtime-delegation-narrator.js';
42
+ import { FilterAllowedAgentsByCanRun } from './realtime-coagent-resolution.js';
41
43
  import { RealtimeToolBroker, INVOKE_TARGET_AGENT_TOOL_NAME, INVOKE_TARGET_AGENT_DESCRIPTION, BuildRealtimeAgentFraming } from './realtime-tool-broker.js';
42
44
  import { NARRATION_PROMPT_NAME, LEGACY_NARRATION_PROMPT_NAME, ResolveNarrationInstructionsTemplate } from './realtime-narration.js';
43
45
  import { BuildVoiceMannerSection, BuildAppRealtimeOverridesJson, DeepMergeConfigs, GetModelCatalogSessionSettings, GetDisclosureForTarget, GetNarrationPaceMs, GetProviderVoiceSettings, GetSessionTuningSettings, ResolveEffectiveRealtimeConfig, MatchProviderVoiceSettings, GetDirectActionsConfig, IsActionAllowedForDirectInvocation } from './realtime-coagent-config.js';
44
46
  import { SelectRealtimeVendorForModel } from './realtime-vendor-resolution.js';
47
+ /** Runtime handles by their realtime session, so the layer that only holds the session can reach its runtime. */
48
+ const bridgeRuntimes = new WeakMap();
49
+ /**
50
+ * Returns the runtime wired onto a bridged realtime session by
51
+ * {@link RealtimeClientSessionService.WireBridgeRealtimeSession}, or `undefined` for a session that was never
52
+ * wired. Lets a host that only holds the {@link IRealtimeSession} (the telephony services) cancel delegations on
53
+ * barge-in and install its local tool handler.
54
+ */
55
+ export function GetBridgeRealtimeRuntime(session) {
56
+ return bridgeRuntimes.get(session);
57
+ }
45
58
  /**
46
59
  * Logs when a configuration authored per-provider voice settings but NONE matched the vendor that
47
60
  * actually ran — those settings are dropped, and pre-#3530 that happened with no trace at all: the
@@ -315,6 +328,16 @@ export class RealtimeClientSessionService {
315
328
  // Prep must have succeeded before wiring; degrade to a tool-error fallback rather than throw.
316
329
  return this.wireBridgeFallbackRuntime(session);
317
330
  }
331
+ // The delegation set the model may reach, narrowed to what THIS run-as user may run (the browser path
332
+ // applies the same filter; without it a bridged call would reach colleagues the caller cannot).
333
+ const allowedAgents = await FilterAllowedAgentsByCanRun(prep.EffectiveConfig?.realtime?.allowedAgents, contextUser);
334
+ // Spoken progress while delegated work runs — the same pacing/wording the generic session runner uses.
335
+ const narrator = new DelegationNarrator({
336
+ GetSession: () => session,
337
+ NarrationInstructionsTemplate: this.resolveNarrationInstructionsTemplate(),
338
+ NarrationPaceMs: GetNarrationPaceMs(prep.EffectiveConfig) ?? undefined,
339
+ });
340
+ let localToolHandler;
318
341
  const promptID = this.resolveCoAgentSystemPrompt(coAgent).PromptID;
319
342
  const obs = await this.createCoAgentObservabilityRun(coAgent, promptID, resolution.ModelID, resolution.VendorID, input.UserID || contextUser?.ID, input.AgentSessionID, contextUser, provider, input.ConversationID);
320
343
  let finalized = false;
@@ -328,15 +351,18 @@ export class RealtimeClientSessionService {
328
351
  // Tool calls → the shared delegation entry point, then hand the serialized result back to the model.
329
352
  session.OnToolCall(async (call) => {
330
353
  try {
331
- const result = await this.ExecuteRelayedTool({
332
- AgentSessionID: input.AgentSessionID,
333
- ParentRunID: obs?.CoAgentRunID,
334
- TargetAgentID: input.TargetAgentID,
335
- AllowedAgents: prep.EffectiveConfig?.realtime?.allowedAgents,
336
- DirectActions: prep.EffectiveConfig?.realtime?.directActions,
337
- Call: call,
338
- }, contextUser, provider);
339
- await session.SendToolResult(call.CallID, result.ResultJson);
354
+ const resultJson = localToolHandler?.Handles(call.ToolName)
355
+ ? await localToolHandler.Execute(call)
356
+ : (await narrator.Track(() => this.ExecuteRelayedTool({
357
+ AgentSessionID: input.AgentSessionID,
358
+ ParentRunID: obs?.CoAgentRunID,
359
+ TargetAgentID: input.TargetAgentID,
360
+ AllowedAgents: allowedAgents,
361
+ DirectActions: prep.EffectiveConfig?.realtime?.directActions,
362
+ OnProgress: (progress) => narrator.HandleProgress(progress),
363
+ Call: call,
364
+ }, contextUser, provider))).ResultJson;
365
+ await session.SendToolResult(call.CallID, resultJson);
340
366
  }
341
367
  catch (error) {
342
368
  const message = error instanceof Error ? error.message : String(error);
@@ -348,11 +374,24 @@ export class RealtimeClientSessionService {
348
374
  // through the idempotent finalizer, so double-fire is harmless.
349
375
  const originalClose = session.Close.bind(session);
350
376
  session.Close = async () => {
377
+ narrator.Cancel();
351
378
  await finalize(true);
352
379
  await originalClose();
353
380
  };
354
381
  session.OnClose?.(() => { void finalize(true); });
355
- return { CoAgentRunID: obs?.CoAgentRunID, PromptRunID: obs?.PromptRunID, Finalize: finalize };
382
+ const runtime = {
383
+ CoAgentRunID: obs?.CoAgentRunID,
384
+ PromptRunID: obs?.PromptRunID,
385
+ Finalize: finalize,
386
+ CancelInFlightDelegations: () => {
387
+ narrator.Cancel(); // a stale "still working on it" line must not be spoken over the caller
388
+ return this.CancelInFlightDelegations(input.AgentSessionID);
389
+ },
390
+ CancelPendingNarration: () => narrator.Cancel(),
391
+ SetLocalToolHandler: (handler) => { localToolHandler = handler; },
392
+ };
393
+ bridgeRuntimes.set(session, runtime);
394
+ return runtime;
356
395
  }
357
396
  /**
358
397
  * Degenerate {@link BridgeRealtimeRuntime} for the rare case wiring is attempted without a resolved
@@ -363,7 +402,14 @@ export class RealtimeClientSessionService {
363
402
  session.OnToolCall((call) => {
364
403
  void session.SendToolResult(call.CallID, JSON.stringify({ success: false, error: 'Tool execution is unavailable — the co-agent did not resolve. Let the user know.' }));
365
404
  });
366
- return { Finalize: async () => { } };
405
+ const runtime = {
406
+ Finalize: async () => { },
407
+ CancelInFlightDelegations: () => 0,
408
+ CancelPendingNarration: () => { },
409
+ SetLocalToolHandler: () => { },
410
+ };
411
+ bridgeRuntimes.set(session, runtime);
412
+ return runtime;
367
413
  }
368
414
  /**
369
415
  * **The single source of truth for realtime session prep.** Builds the {@link RealtimeSessionParams}
@@ -1046,14 +1092,15 @@ export class RealtimeClientSessionService {
1046
1092
  // A resolver that fell back to the environment itself would answer before the seam, so a
1047
1093
  // subclass that overrides the seam would lose to AI_VENDOR_API_KEY__<driver>.
1048
1094
  const resolveRunKey = this.buildRunKeyResolver(input.APIKeys);
1095
+ const scope = input.CredentialScope ?? 'Any';
1049
1096
  if (input.PreferredModelID) {
1050
- return this.resolvePreferredRealtimeModel(input.PreferredModelID, resolveRunKey);
1097
+ return this.resolvePreferredRealtimeModel(input.PreferredModelID, resolveRunKey, scope);
1051
1098
  }
1052
- const fromConfig = this.resolveConfiguredModelPreference(effectiveConfig, resolveRunKey);
1099
+ const fromConfig = this.resolveConfiguredModelPreference(effectiveConfig, resolveRunKey, scope);
1053
1100
  if (fromConfig) {
1054
1101
  return { Resolution: fromConfig };
1055
1102
  }
1056
- const resolution = await this.resolveRealtimeModel(coAgent, resolveRunKey);
1103
+ const resolution = await this.resolveRealtimeModel(coAgent, resolveRunKey, scope);
1057
1104
  return resolution ? { Resolution: resolution } : { ErrorMessage: this.noModelMessage() };
1058
1105
  }
1059
1106
  /**
@@ -1077,9 +1124,10 @@ export class RealtimeClientSessionService {
1077
1124
  *
1078
1125
  * @param effectiveConfig The resolved effective configuration.
1079
1126
  * @param resolve The session's run-scoped key resolver (run keys only; see {@link resolveVendorAndInstantiate}).
1127
+ * @param credentialScope The session's credential scope; see {@link resolveVendorAndInstantiate}.
1080
1128
  * @returns The resolution, or `null` when no preference is configured or it can't be satisfied.
1081
1129
  */
1082
- resolveConfiguredModelPreference(effectiveConfig, resolve) {
1130
+ resolveConfiguredModelPreference(effectiveConfig, resolve, credentialScope = 'Any') {
1083
1131
  const preference = effectiveConfig?.realtime?.modelPreference;
1084
1132
  if (!preference) {
1085
1133
  return null;
@@ -1095,7 +1143,7 @@ export class RealtimeClientSessionService {
1095
1143
  `'${model.Name}' but it is not an Active Realtime model — falling through to default resolution.`);
1096
1144
  return null;
1097
1145
  }
1098
- const resolution = this.resolveVendorAndInstantiate(model, resolve);
1146
+ const resolution = this.resolveVendorAndInstantiate(model, resolve, credentialScope);
1099
1147
  if (!resolution) {
1100
1148
  LogError(`RealtimeClientSessionService: configured realtime model preference '${model.Name}' has no usable ` +
1101
1149
  'vendor DriverClass/API key — falling through to default resolution.');
@@ -1128,9 +1176,10 @@ export class RealtimeClientSessionService {
1128
1176
  *
1129
1177
  * @param preferredModelID The `MJ: AI Models.ID` the user chose.
1130
1178
  * @param resolve The session's run-scoped key resolver (run keys only; see {@link resolveVendorAndInstantiate}).
1179
+ * @param credentialScope The session's credential scope; see {@link resolveVendorAndInstantiate}.
1131
1180
  * @returns The resolution outcome (resolution or a specific failure reason).
1132
1181
  */
1133
- resolvePreferredRealtimeModel(preferredModelID, resolve) {
1182
+ resolvePreferredRealtimeModel(preferredModelID, resolve, credentialScope = 'Any') {
1134
1183
  const model = this.findModelByID(preferredModelID);
1135
1184
  if (!model) {
1136
1185
  return { ErrorMessage: `The requested realtime model (id '${preferredModelID}') was not found in AI model metadata.` };
@@ -1141,7 +1190,7 @@ export class RealtimeClientSessionService {
1141
1190
  if (!this.isRealtimeModel(model)) {
1142
1191
  return { ErrorMessage: `The requested model '${model.Name}' is not a Realtime model (its type is '${model.AIModelType}').` };
1143
1192
  }
1144
- const resolution = this.resolveVendorAndInstantiate(model, resolve);
1193
+ const resolution = this.resolveVendorAndInstantiate(model, resolve, credentialScope);
1145
1194
  if (!resolution) {
1146
1195
  return {
1147
1196
  ErrorMessage: `The requested model '${model.Name}' has no active vendor with a usable DriverClass/API key ` +
@@ -1174,9 +1223,10 @@ export class RealtimeClientSessionService {
1174
1223
  *
1175
1224
  * @param coAgent The co-agent being voiced (reserved for future per-agent model preference).
1176
1225
  * @param resolve The session's run-scoped key resolver (run keys only; see {@link resolveVendorAndInstantiate}).
1226
+ * @param credentialScope The session's credential scope; see {@link resolveVendorAndInstantiate}.
1177
1227
  * @returns The resolved model + identifiers, or `null`.
1178
1228
  */
1179
- async resolveRealtimeModel(coAgent, resolve) {
1229
+ async resolveRealtimeModel(coAgent, resolve, credentialScope = 'Any') {
1180
1230
  // Walk candidates in descending PowerRank, returning the FIRST that fully resolves to a usable
1181
1231
  // client-direct driver (active vendor + API key + ClassFactory driver + SupportsClientDirect).
1182
1232
  // Single-pick dead-ended whenever the highest-power model lacked a key or client-direct support
@@ -1184,7 +1234,7 @@ export class RealtimeClientSessionService {
1184
1234
  // surfaced "No usable Realtime model" instead of falling through to a model that works.
1185
1235
  const candidates = this.selectRealtimeModelCandidates(coAgent);
1186
1236
  for (const model of candidates) {
1187
- const resolution = this.resolveVendorAndInstantiate(model, resolve);
1237
+ const resolution = this.resolveVendorAndInstantiate(model, resolve, credentialScope);
1188
1238
  if (resolution && resolution.Model.SupportsClientDirect) {
1189
1239
  return resolution;
1190
1240
  }
@@ -1203,12 +1253,18 @@ export class RealtimeClientSessionService {
1203
1253
  * @param resolve The session's run-scoped key resolver. Expected to answer with run keys only:
1204
1254
  * one that falls back to the environment itself answers before {@link getAPIKeyForDriver} and
1205
1255
  * so bypasses an override of it.
1256
+ * @param credentialScope A scope that rules out the `'Environment'` source (`'RuntimeOnly'`) drops the
1257
+ * {@link getAPIKeyForDriver} seam: the run's keys are the whole chain, so a vendor they do not key
1258
+ * is never selected on the platform's key.
1206
1259
  * @returns The full resolution, or `null` when no vendor/key/driver can be satisfied.
1207
1260
  */
1208
- resolveVendorAndInstantiate(model, resolve) {
1261
+ resolveVendorAndInstantiate(model, resolve, credentialScope = 'Any') {
1209
1262
  // The run's keys first, then this service's own seam (which subclasses and tests override) —
1210
1263
  // so a run-scoped credential wins without taking that seam away from anyone who replaced it.
1211
- const resolveKey = (driverClass) => resolve?.(driverClass) ?? this.getAPIKeyForDriver(driverClass);
1264
+ // A scope that rules out the environment has no second step: the seam's default is the platform key.
1265
+ const resolveKey = CredentialScopeAllows(credentialScope, 'Environment')
1266
+ ? (driverClass) => resolve?.(driverClass) ?? this.getAPIKeyForDriver(driverClass)
1267
+ : (driverClass) => resolve?.(driverClass);
1212
1268
  const vendor = this.selectRealtimeVendor(model.ID, resolveKey);
1213
1269
  if (!vendor) {
1214
1270
  return null;
@@ -1318,7 +1374,7 @@ export class RealtimeClientSessionService {
1318
1374
  const combinedExtra = directTools.length > 0
1319
1375
  ? [...(input.ExtraTools ?? []), ...directTools]
1320
1376
  : input.ExtraTools;
1321
- const tools = this.buildStableToolSet(combinedExtra);
1377
+ const tools = this.appendHostTools(this.buildStableToolSet(combinedExtra), input.HostTools);
1322
1378
  // Hoisted (rather than built inline at the return) so the mint log below can report the voice
1323
1379
  // that ACTUALLY reached the driver — see the `voice=` field. Same bag, built once.
1324
1380
  const configBag = this.buildSessionConfigBag(input, effectiveConfig, driverClass, modelID, modelVendorID);
@@ -1413,6 +1469,7 @@ export class RealtimeClientSessionService {
1413
1469
  const colleagues = this.buildColleaguesFromConfig(effectiveConfig, input.TargetAgentID);
1414
1470
  const framing = BuildRealtimeAgentFraming(targetName, this.buildInteractiveSurfaceFraming(input.ExtraTools), colleagues, hasDirectTools);
1415
1471
  const meetingFraming = this.buildMeetingFraming(input);
1472
+ const hostFraming = input.HostFraming?.trim() ?? '';
1416
1473
  const coAgentPrompt = this.getCoAgentSystemPromptText(coAgent);
1417
1474
  const voiceManner = BuildVoiceMannerSection(effectiveConfig);
1418
1475
  const targetIdentity = this.formatTargetIdentity(target);
@@ -1420,7 +1477,7 @@ export class RealtimeClientSessionService {
1420
1477
  const priorTranscript = this.formatPriorTranscript(input.PriorTranscript);
1421
1478
  const history = this.formatConversationHistory(input.ConversationMessages);
1422
1479
  const memoryContext = await this.assembleMemoryContext(input, coAgent, contextUser, provider);
1423
- return [framing, meetingFraming, coAgentPrompt, voiceManner, targetIdentity, appContextSection, priorTranscript, history, memoryContext]
1480
+ return [framing, meetingFraming, hostFraming, coAgentPrompt, voiceManner, targetIdentity, appContextSection, priorTranscript, history, memoryContext]
1424
1481
  .filter(part => part && part.trim().length > 0)
1425
1482
  .join('\n\n');
1426
1483
  }
@@ -1746,6 +1803,21 @@ export class RealtimeClientSessionService {
1746
1803
  }
1747
1804
  return result;
1748
1805
  }
1806
+ /** Appends the host-declared tools to a stable tool set, dropping any whose name is already taken. */
1807
+ appendHostTools(tools, hostTools) {
1808
+ if (!hostTools || hostTools.length === 0) {
1809
+ return tools;
1810
+ }
1811
+ const taken = new Set(tools.map((t) => t.Name.toLowerCase()));
1812
+ const merged = [...tools];
1813
+ for (const tool of hostTools) {
1814
+ if (!taken.has(tool.Name.toLowerCase())) {
1815
+ taken.add(tool.Name.toLowerCase());
1816
+ merged.push(tool);
1817
+ }
1818
+ }
1819
+ return merged;
1820
+ }
1749
1821
  /**
1750
1822
  * Builds the {@link RealtimeToolBroker} for a relayed tool call, wiring `DelegateToTarget` to a
1751
1823
  * target-agent run and `ExecuteTool` to direct-action execution or a structured "not available" placeholder.