@memberjunction/realtime-runtime 6.2.0-edge.3 → 6.2.0-edge.5
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 +75 -0
- package/dist/channels/base-realtime-channel-client.d.ts +535 -28
- package/dist/channels/base-realtime-channel-client.d.ts.map +1 -1
- package/dist/channels/base-realtime-channel-client.js +864 -10
- package/dist/channels/base-realtime-channel-client.js.map +1 -1
- package/dist/channels/channel-action-dispatcher.d.ts +70 -0
- package/dist/channels/channel-action-dispatcher.d.ts.map +1 -0
- package/dist/channels/channel-action-dispatcher.js +136 -0
- package/dist/channels/channel-action-dispatcher.js.map +1 -0
- package/dist/channels/channel-catalog-note.d.ts +48 -0
- package/dist/channels/channel-catalog-note.d.ts.map +1 -0
- package/dist/channels/channel-catalog-note.js +119 -0
- package/dist/channels/channel-catalog-note.js.map +1 -0
- package/dist/channels/channel-contract-types.d.ts +107 -0
- package/dist/channels/channel-contract-types.d.ts.map +1 -0
- package/dist/channels/channel-contract-types.js +12 -0
- package/dist/channels/channel-contract-types.js.map +1 -0
- package/dist/channels/channel-descriptor-synthesis.d.ts +56 -0
- package/dist/channels/channel-descriptor-synthesis.d.ts.map +1 -0
- package/dist/channels/channel-descriptor-synthesis.js +90 -0
- package/dist/channels/channel-descriptor-synthesis.js.map +1 -0
- package/dist/channels/channel-perception.d.ts +82 -0
- package/dist/channels/channel-perception.d.ts.map +1 -0
- package/dist/channels/channel-perception.js +120 -0
- package/dist/channels/channel-perception.js.map +1 -0
- package/dist/channels/channel-schema-format.d.ts +17 -0
- package/dist/channels/channel-schema-format.d.ts.map +1 -0
- package/dist/channels/channel-schema-format.js +45 -0
- package/dist/channels/channel-schema-format.js.map +1 -0
- package/dist/channels/channel-state-delta.d.ts +59 -0
- package/dist/channels/channel-state-delta.d.ts.map +1 -0
- package/dist/channels/channel-state-delta.js +116 -0
- package/dist/channels/channel-state-delta.js.map +1 -0
- package/dist/channels/channel-surface-placement.d.ts +25 -0
- package/dist/channels/channel-surface-placement.d.ts.map +1 -0
- package/dist/channels/channel-surface-placement.js +29 -0
- package/dist/channels/channel-surface-placement.js.map +1 -0
- package/dist/channels/channel-visual-pump.d.ts +126 -0
- package/dist/channels/channel-visual-pump.d.ts.map +1 -0
- package/dist/channels/channel-visual-pump.js +174 -0
- package/dist/channels/channel-visual-pump.js.map +1 -0
- package/dist/hosts/IRealtimeMediaHost.d.ts +86 -34
- package/dist/hosts/IRealtimeMediaHost.d.ts.map +1 -1
- package/dist/hosts/IRealtimeMediaHost.js +2 -1
- package/dist/hosts/IRealtimeMediaHost.js.map +1 -1
- package/dist/index.d.ts +26 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/dist/session/RealtimeSessionRuntime.d.ts +984 -111
- package/dist/session/RealtimeSessionRuntime.d.ts.map +1 -1
- package/dist/session/RealtimeSessionRuntime.js +2396 -381
- package/dist/session/RealtimeSessionRuntime.js.map +1 -1
- package/dist/session/RecordingShardDrain.d.ts +59 -0
- package/dist/session/RecordingShardDrain.d.ts.map +1 -0
- package/dist/session/RecordingShardDrain.js +135 -0
- package/dist/session/RecordingShardDrain.js.map +1 -0
- package/dist/session/RecordingShardQueue.d.ts +94 -0
- package/dist/session/RecordingShardQueue.d.ts.map +1 -0
- package/dist/session/RecordingShardQueue.js +176 -0
- package/dist/session/RecordingShardQueue.js.map +1 -0
- package/dist/session/RecordingShardStore.d.ts +57 -0
- package/dist/session/RecordingShardStore.d.ts.map +1 -0
- package/dist/session/RecordingShardStore.js +184 -0
- package/dist/session/RecordingShardStore.js.map +1 -0
- package/dist/session/RecordingShardWindow.d.ts +42 -0
- package/dist/session/RecordingShardWindow.d.ts.map +1 -0
- package/dist/session/RecordingShardWindow.js +88 -0
- package/dist/session/RecordingShardWindow.js.map +1 -0
- package/dist/session/RecordingTransport.d.ts +66 -0
- package/dist/session/RecordingTransport.d.ts.map +1 -0
- package/dist/session/RecordingTransport.js +61 -0
- package/dist/session/RecordingTransport.js.map +1 -0
- package/dist/session/app-client-tool-registry.d.ts +76 -0
- package/dist/session/app-client-tool-registry.d.ts.map +1 -0
- package/dist/session/app-client-tool-registry.js +100 -0
- package/dist/session/app-client-tool-registry.js.map +1 -0
- package/dist/session/avatar-notice.d.ts +43 -0
- package/dist/session/avatar-notice.d.ts.map +1 -0
- package/dist/session/avatar-notice.js +60 -0
- package/dist/session/avatar-notice.js.map +1 -0
- package/dist/session/call-end.d.ts +21 -0
- package/dist/session/call-end.d.ts.map +1 -0
- package/dist/session/call-end.js +19 -0
- package/dist/session/call-end.js.map +1 -0
- package/dist/session/channel-exposure-preferences.d.ts +70 -0
- package/dist/session/channel-exposure-preferences.d.ts.map +1 -0
- package/dist/session/channel-exposure-preferences.js +138 -0
- package/dist/session/channel-exposure-preferences.js.map +1 -0
- package/dist/session/channel-session-scope.d.ts +142 -0
- package/dist/session/channel-session-scope.d.ts.map +1 -0
- package/dist/session/channel-session-scope.js +128 -0
- package/dist/session/channel-session-scope.js.map +1 -0
- package/dist/session/client-session-deadline.d.ts +28 -0
- package/dist/session/client-session-deadline.d.ts.map +1 -0
- package/dist/session/client-session-deadline.js +50 -0
- package/dist/session/client-session-deadline.js.map +1 -0
- package/dist/session/realtime-captures.d.ts +236 -0
- package/dist/session/realtime-captures.d.ts.map +1 -0
- package/dist/session/realtime-captures.js +383 -0
- package/dist/session/realtime-captures.js.map +1 -0
- package/dist/session/realtime-microphone.d.ts +50 -0
- package/dist/session/realtime-microphone.d.ts.map +1 -0
- package/dist/session/realtime-microphone.js +51 -0
- package/dist/session/realtime-microphone.js.map +1 -0
- package/dist/session/session-event-hub.d.ts +72 -0
- package/dist/session/session-event-hub.d.ts.map +1 -0
- package/dist/session/session-event-hub.js +151 -0
- package/dist/session/session-event-hub.js.map +1 -0
- package/dist/session/session-launcher.d.ts +128 -0
- package/dist/session/session-launcher.d.ts.map +1 -0
- package/dist/session/session-launcher.js +160 -0
- package/dist/session/session-launcher.js.map +1 -0
- package/package.json +10 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-realtime-channel-client.js","sourceRoot":"","sources":["../../src/channels/base-realtime-channel-client.ts"],"names":[],"mappings":"AAkMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,OAAgB,yBAAyB;IAA/C;QACE;;;WAGG;QACO,YAAO,GAAkC,IAAI,CAAC;QA+IxD;;;;WAIG;QACO,2BAAsB,GAAG,IAAI,CAAC;QAC9B,4BAAuB,GAAG,GAAG,CAAC;IAgG1C,CAAC;IA/NC;;;;;;OAMG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAoBD;;;;;;;;;;;;;OAaG;IACI,mBAAmB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,UAAU;QACf,OAAO,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;OAUG;IACI,oBAAoB;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAYD;;;;;OAKG;IACI,aAAa;QAClB,8BAA8B;IAChC,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,GAA2B;QAC3C,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACO,YAAY;QACpB,iCAAiC;IACnC,CAAC;IAED;;;;;OAKG;IACI,gBAAgB;QACrB,yBAAyB;IAC3B,CAAC;IAUD;;;;;;;;;;;;;OAaG;IACO,KAAK,CAAC,qBAAqB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC;QACvD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7D,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM,IAAI,UAAU,EAAE,CAAC;YAChF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YACtE,sEAAsE;YACtE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACvC,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,cAAc;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;OAUG;IACI,YAAY,CAAC,SAAiB;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,gBAAgB;QACrB,oDAAoD;IACtD,CAAC;IAED;;;OAGG;IACI,gBAAgB;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACI,aAAa;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACI,OAAO;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"base-realtime-channel-client.js","sourceRoot":"","sources":["../../src/channels/base-realtime-channel-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The **channel action dispatcher** — validates and routes a channel-addressed
|
|
3
|
+
* `ContextTool` call (`{ action, params, target: { channel, instance? } }`).
|
|
4
|
+
*
|
|
5
|
+
* `ContextTool` is deliberately ONE stable provider tool: connect-bound providers cannot re-declare
|
|
6
|
+
* tools mid-session, so anything that must be reachable *after* the call starts — an `on-demand`
|
|
7
|
+
* channel opened mid-call, a verb a channel adds — has to go through it. This is the other half of
|
|
8
|
+
* that bargain: because every verb now arrives through one door, the door can do the checking a
|
|
9
|
+
* dozen native tools never did.
|
|
10
|
+
*
|
|
11
|
+
* What it guarantees, in order, each with a failure the model can read and recover from:
|
|
12
|
+
*
|
|
13
|
+
* 1. the channel exists in this session (`unknown_channel`, listing the ones that do);
|
|
14
|
+
* 2. the instance exists (`unknown_instance`);
|
|
15
|
+
* 3. an unmounted `on-demand` channel is opened before it is used (`channel_not_open`), and `open`
|
|
16
|
+
* mounts it and seeds it (`open_failed` / `invalid_params`);
|
|
17
|
+
* 4. the verb exists (`unknown_verb`, listing the ones that do);
|
|
18
|
+
* 5. the verb may be invoked by the agent (`not_invokable_by_agent` — a form's `confirm` is the
|
|
19
|
+
* user's alone), and its result is not one the channel's exposure policy withholds from the agent
|
|
20
|
+
* (`exposure_restricted`: a verb that returns what the channel holds is refused when the user, the agent's
|
|
21
|
+
* configuration or a zero-data-retention requirement limits what the model may perceive of it);
|
|
22
|
+
* 6. the parameters satisfy the verb's declared schema (`invalid_params`, listing each violation) —
|
|
23
|
+
* a malformed call becomes a correctable message instead of a half-applied mutation.
|
|
24
|
+
*
|
|
25
|
+
* Framework-free: the runtime injects how to find and mount channels.
|
|
26
|
+
*
|
|
27
|
+
* @module @memberjunction/realtime-runtime
|
|
28
|
+
*/
|
|
29
|
+
import type { BaseRealtimeChannelClient } from './base-realtime-channel-client.js';
|
|
30
|
+
import type { RealtimeContextActionRequest, RealtimeContextActionResult } from './channel-contract-types.js';
|
|
31
|
+
/** The reserved action that mounts a channel and seeds it with its open inputs. */
|
|
32
|
+
export declare const CHANNEL_OPEN_ACTION = "open";
|
|
33
|
+
/** A channel the dispatcher can address. */
|
|
34
|
+
export interface DispatchableChannel {
|
|
35
|
+
/** The channel plugin. */
|
|
36
|
+
Plugin: BaseRealtimeChannelClient;
|
|
37
|
+
/** Whether the channel is mounted (initialized and live) — `false` for an advertised, unopened `on-demand` channel. */
|
|
38
|
+
IsOpen: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** How the dispatcher reaches the session's channels. */
|
|
41
|
+
export interface ChannelDispatchHost {
|
|
42
|
+
/** Finds a channel in the session by key (case-insensitive), open or not; `null` when it is not in the session. */
|
|
43
|
+
FindChannel(key: string): DispatchableChannel | null;
|
|
44
|
+
/** The keys of every channel in the session, for error messages. */
|
|
45
|
+
ListChannelKeys(): string[];
|
|
46
|
+
/** Mounts an unopened `on-demand` channel (initialize, publish, tab). Resolves when it is live. */
|
|
47
|
+
ActivateChannel(plugin: BaseRealtimeChannelClient): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Validates and dispatches channel-addressed `ContextTool` calls.
|
|
51
|
+
*/
|
|
52
|
+
export declare class ChannelActionDispatcher {
|
|
53
|
+
private readonly host;
|
|
54
|
+
constructor(host: ChannelDispatchHost);
|
|
55
|
+
/**
|
|
56
|
+
* Runs one addressed call. Never throws: every refusal and every failure is a structured result.
|
|
57
|
+
*
|
|
58
|
+
* @param request The addressed call.
|
|
59
|
+
*/
|
|
60
|
+
Dispatch(request: RealtimeContextActionRequest): Promise<RealtimeContextActionResult>;
|
|
61
|
+
/** Refuses an instance id the channel does not have. */
|
|
62
|
+
private checkInstance;
|
|
63
|
+
/** Mounts the channel if needed, then opens it with the supplied inputs. */
|
|
64
|
+
private openChannel;
|
|
65
|
+
/** Resolves, authorizes and validates a verb, then runs it. */
|
|
66
|
+
private runVerb;
|
|
67
|
+
/** Runs the verb and maps its structured result. */
|
|
68
|
+
private invoke;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=channel-action-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-action-dispatcher.d.ts","sourceRoot":"","sources":["../../src/channels/channel-action-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,OAAO,KAAK,EAER,4BAA4B,EAC5B,2BAA2B,EAE9B,MAAM,0BAA0B,CAAC;AAElC,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAChC,0BAA0B;IAC1B,MAAM,EAAE,yBAAyB,CAAC;IAClC,uHAAuH;IACvH,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAChC,mHAAmH;IACnH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IACrD,oEAAoE;IACpE,eAAe,IAAI,MAAM,EAAE,CAAC;IAC5B,mGAAmG;IACnG,eAAe,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAgBD;;GAEG;AACH,qBAAa,uBAAuB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEtD;;;;OAIG;IACU,QAAQ,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IA0BlG,wDAAwD;IACxD,OAAO,CAAC,aAAa;IAgBrB,4EAA4E;YAC9D,WAAW;IAqBzB,+DAA+D;YACjD,OAAO;IAgCrB,oDAAoD;YACtC,MAAM;CAiBvB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The **channel action dispatcher** — validates and routes a channel-addressed
|
|
3
|
+
* `ContextTool` call (`{ action, params, target: { channel, instance? } }`).
|
|
4
|
+
*
|
|
5
|
+
* `ContextTool` is deliberately ONE stable provider tool: connect-bound providers cannot re-declare
|
|
6
|
+
* tools mid-session, so anything that must be reachable *after* the call starts — an `on-demand`
|
|
7
|
+
* channel opened mid-call, a verb a channel adds — has to go through it. This is the other half of
|
|
8
|
+
* that bargain: because every verb now arrives through one door, the door can do the checking a
|
|
9
|
+
* dozen native tools never did.
|
|
10
|
+
*
|
|
11
|
+
* What it guarantees, in order, each with a failure the model can read and recover from:
|
|
12
|
+
*
|
|
13
|
+
* 1. the channel exists in this session (`unknown_channel`, listing the ones that do);
|
|
14
|
+
* 2. the instance exists (`unknown_instance`);
|
|
15
|
+
* 3. an unmounted `on-demand` channel is opened before it is used (`channel_not_open`), and `open`
|
|
16
|
+
* mounts it and seeds it (`open_failed` / `invalid_params`);
|
|
17
|
+
* 4. the verb exists (`unknown_verb`, listing the ones that do);
|
|
18
|
+
* 5. the verb may be invoked by the agent (`not_invokable_by_agent` — a form's `confirm` is the
|
|
19
|
+
* user's alone), and its result is not one the channel's exposure policy withholds from the agent
|
|
20
|
+
* (`exposure_restricted`: a verb that returns what the channel holds is refused when the user, the agent's
|
|
21
|
+
* configuration or a zero-data-retention requirement limits what the model may perceive of it);
|
|
22
|
+
* 6. the parameters satisfy the verb's declared schema (`invalid_params`, listing each violation) —
|
|
23
|
+
* a malformed call becomes a correctable message instead of a half-applied mutation.
|
|
24
|
+
*
|
|
25
|
+
* Framework-free: the runtime injects how to find and mount channels.
|
|
26
|
+
*
|
|
27
|
+
* @module @memberjunction/realtime-runtime
|
|
28
|
+
*/
|
|
29
|
+
import { ValidateJsonAgainstSchemaSubset } from '@memberjunction/ai-core-plus';
|
|
30
|
+
import { FormatParameterList } from './channel-schema-format.js';
|
|
31
|
+
/** The reserved action that mounts a channel and seeds it with its open inputs. */
|
|
32
|
+
export const CHANNEL_OPEN_ACTION = 'open';
|
|
33
|
+
/** Builds a failure outcome. */
|
|
34
|
+
function failure(code, message, extras = {}) {
|
|
35
|
+
return { Success: false, ErrorCode: code, ErrorMessage: message, ...extras };
|
|
36
|
+
}
|
|
37
|
+
/** Summarizes a verb's call shape for an error message: `name(a:string, b?:number)`. */
|
|
38
|
+
function verbSignature(verb) {
|
|
39
|
+
return `${verb.Name}(${FormatParameterList(verb.ParametersSchema)})`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validates and dispatches channel-addressed `ContextTool` calls.
|
|
43
|
+
*/
|
|
44
|
+
export class ChannelActionDispatcher {
|
|
45
|
+
constructor(host) {
|
|
46
|
+
this.host = host;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Runs one addressed call. Never throws: every refusal and every failure is a structured result.
|
|
50
|
+
*
|
|
51
|
+
* @param request The addressed call.
|
|
52
|
+
*/
|
|
53
|
+
async Dispatch(request) {
|
|
54
|
+
const channel = this.host.FindChannel(request.Target.Channel);
|
|
55
|
+
if (!channel) {
|
|
56
|
+
return failure('unknown_channel', `There is no channel "${request.Target.Channel}" in this session.`, { Available: this.host.ListChannelKeys() });
|
|
57
|
+
}
|
|
58
|
+
const descriptor = channel.Plugin.GetDescriptor();
|
|
59
|
+
const instanceProblem = this.checkInstance(request, channel.Plugin, descriptor);
|
|
60
|
+
if (instanceProblem) {
|
|
61
|
+
return instanceProblem;
|
|
62
|
+
}
|
|
63
|
+
if (request.Action.trim().toLowerCase() === CHANNEL_OPEN_ACTION) {
|
|
64
|
+
return this.openChannel(request, channel, descriptor);
|
|
65
|
+
}
|
|
66
|
+
if (!channel.IsOpen) {
|
|
67
|
+
return failure('channel_not_open', `The ${descriptor.DisplayName} channel is available but not open yet. Open it first with action "${CHANNEL_OPEN_ACTION}" and target channel "${descriptor.Key}".`);
|
|
68
|
+
}
|
|
69
|
+
return this.runVerb(request, channel.Plugin, descriptor);
|
|
70
|
+
}
|
|
71
|
+
/** Refuses an instance id the channel does not have. */
|
|
72
|
+
checkInstance(request, plugin, descriptor) {
|
|
73
|
+
const instance = request.Target.Instance;
|
|
74
|
+
if (instance === undefined || descriptor.MultiInstance || instance === plugin.InstanceId) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return failure('unknown_instance', `The ${descriptor.DisplayName} channel has no instance "${instance}".`, { Available: [plugin.InstanceId] });
|
|
78
|
+
}
|
|
79
|
+
/** Mounts the channel if needed, then opens it with the supplied inputs. */
|
|
80
|
+
async openChannel(request, channel, descriptor) {
|
|
81
|
+
try {
|
|
82
|
+
if (!channel.IsOpen) {
|
|
83
|
+
await this.host.ActivateChannel(channel.Plugin);
|
|
84
|
+
}
|
|
85
|
+
const opened = await channel.Plugin.Open(request.Params);
|
|
86
|
+
if (opened.Success) {
|
|
87
|
+
return { Success: true, Result: opened.Result };
|
|
88
|
+
}
|
|
89
|
+
const code = opened.ErrorCode === 'invalid_params' ? 'invalid_params' : 'open_failed';
|
|
90
|
+
return failure(code, opened.Error ?? `The ${descriptor.DisplayName} channel could not be opened.`, { Details: opened.Details });
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
console.error(`[ChannelActionDispatcher] Opening channel '${descriptor.Key}' failed:`, error);
|
|
94
|
+
return failure('open_failed', `The ${descriptor.DisplayName} channel could not be opened: ${errorMessage(error)}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Resolves, authorizes and validates a verb, then runs it. */
|
|
98
|
+
async runVerb(request, plugin, descriptor) {
|
|
99
|
+
const wanted = request.Action.trim().toLowerCase();
|
|
100
|
+
const verb = descriptor.Verbs.find((v) => v.Name.toLowerCase() === wanted);
|
|
101
|
+
if (!verb) {
|
|
102
|
+
return failure('unknown_verb', `The ${descriptor.DisplayName} channel has no action "${request.Action}".`, { Available: descriptor.Verbs.filter((v) => v.InvokableBy !== 'user').map((v) => v.Name) });
|
|
103
|
+
}
|
|
104
|
+
if (verb.InvokableBy === 'user') {
|
|
105
|
+
return failure('not_invokable_by_agent', `"${verb.Name}" can only be done by the user, not by you. Ask them to do it.`);
|
|
106
|
+
}
|
|
107
|
+
const withheld = plugin.RefuseVerbForExposure(verb);
|
|
108
|
+
if (withheld) {
|
|
109
|
+
return failure('exposure_restricted', withheld, { Details: [...plugin.ExposureReasons] });
|
|
110
|
+
}
|
|
111
|
+
const issues = ValidateJsonAgainstSchemaSubset(request.Params, verb.ParametersSchema);
|
|
112
|
+
if (issues.length > 0) {
|
|
113
|
+
return failure('invalid_params', `The parameters for ${verb.Name} are invalid. Expected ${verbSignature(verb)}. Fix them and call it again.`, { Details: issues });
|
|
114
|
+
}
|
|
115
|
+
return this.invoke(plugin, verb, request.Params, request.Target.Instance);
|
|
116
|
+
}
|
|
117
|
+
/** Runs the verb and maps its structured result. */
|
|
118
|
+
async invoke(plugin, verb, params, instance) {
|
|
119
|
+
try {
|
|
120
|
+
const result = await plugin.ApplyVerb(verb.Name, params, 'agent', instance);
|
|
121
|
+
if (result.Success) {
|
|
122
|
+
return { Success: true, Result: result.Result };
|
|
123
|
+
}
|
|
124
|
+
return failure('verb_failed', result.Error ?? `${verb.Name} could not be performed.`, { Details: result.Details });
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
console.error(`[ChannelActionDispatcher] Verb '${verb.Name}' threw:`, error);
|
|
128
|
+
return failure('verb_failed', `${verb.Name} could not be performed: ${errorMessage(error)}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/** A readable message for a thrown value. */
|
|
133
|
+
function errorMessage(error) {
|
|
134
|
+
return error instanceof Error ? error.message : String(error);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=channel-action-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-action-dispatcher.js","sourceRoot":"","sources":["../../src/channels/channel-action-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The **channel catalog note** — how the agent learns which channels exist in its
|
|
3
|
+
* session and how to use them, from the channels' own descriptors.
|
|
4
|
+
*
|
|
5
|
+
* Before descriptors, an agent knew about a channel only through prose baked into a server prompt;
|
|
6
|
+
* a new channel needed a prompt change. Now the runtime renders every channel's descriptor into ONE
|
|
7
|
+
* context note sent when the session goes live: what each channel is (its instructions), whether it
|
|
8
|
+
* is open or must be opened first, the things it holds, and — for channels reached through the
|
|
9
|
+
* `ContextTool` proxy — the verbs it accepts and the inputs it opens with.
|
|
10
|
+
*
|
|
11
|
+
* Channels the agent already operates through native tools described by their own tool
|
|
12
|
+
* declarations (a v1 channel mounted with the session) are left out: their tools self-describe, and
|
|
13
|
+
* restating them would only add tokens. The note is bounded (long instructions and verb lists are
|
|
14
|
+
* clipped) because it rides the model's context for the whole call.
|
|
15
|
+
*
|
|
16
|
+
* @module @memberjunction/realtime-runtime
|
|
17
|
+
*/
|
|
18
|
+
import { type RealtimeChannelDescriptor, type RealtimeChannelExposure } from '@memberjunction/ai-core-plus';
|
|
19
|
+
/** One channel to describe. */
|
|
20
|
+
export interface ChannelCatalogEntry {
|
|
21
|
+
/** The channel's descriptor. */
|
|
22
|
+
Descriptor: RealtimeChannelDescriptor;
|
|
23
|
+
/** Whether the channel is mounted now (`false` for an advertised, unopened `on-demand` channel). */
|
|
24
|
+
IsOpen: boolean;
|
|
25
|
+
/** Whether the channel's tools were declared natively at mint (so they already describe themselves). */
|
|
26
|
+
HasNativeTools: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Set when exposure policy (the agent's configuration, a zero-data-retention requirement, or the
|
|
29
|
+
* user's choice) holds what the model may perceive of this channel below what it could. The note
|
|
30
|
+
* tells the agent what it receives and why, so it never assumes it can see what it cannot.
|
|
31
|
+
*/
|
|
32
|
+
ExposureLimit?: {
|
|
33
|
+
/** What the model actually receives. */
|
|
34
|
+
Effective: RealtimeChannelExposure;
|
|
35
|
+
/** The most the channel could expose. */
|
|
36
|
+
Ceiling: RealtimeChannelExposure;
|
|
37
|
+
/** Why it is lower, as sentences. */
|
|
38
|
+
Reasons: readonly string[];
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Renders the catalog note for a session's channels.
|
|
43
|
+
*
|
|
44
|
+
* @param entries The session's channels (open and advertised).
|
|
45
|
+
* @returns The note text, or `null` when no channel needs describing (so a legacy-only session sends nothing new).
|
|
46
|
+
*/
|
|
47
|
+
export declare function BuildChannelCatalogNote(entries: ReadonlyArray<ChannelCatalogEntry>): string | null;
|
|
48
|
+
//# sourceMappingURL=channel-catalog-note.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-catalog-note.d.ts","sourceRoot":"","sources":["../../src/channels/channel-catalog-note.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAIH,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAE/B,MAAM,8BAA8B,CAAC;AAItC,+BAA+B;AAC/B,MAAM,WAAW,mBAAmB;IAChC,gCAAgC;IAChC,UAAU,EAAE,yBAAyB,CAAC;IACtC,oGAAoG;IACpG,MAAM,EAAE,OAAO,CAAC;IAChB,wGAAwG;IACxG,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE;QACZ,wCAAwC;QACxC,SAAS,EAAE,uBAAuB,CAAC;QACnC,yCAAyC;QACzC,OAAO,EAAE,uBAAuB,CAAC;QACjC,qCAAqC;QACrC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KAC9B,CAAC;CACL;AAwDD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,MAAM,GAAG,IAAI,CA0BlG"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The **channel catalog note** — how the agent learns which channels exist in its
|
|
3
|
+
* session and how to use them, from the channels' own descriptors.
|
|
4
|
+
*
|
|
5
|
+
* Before descriptors, an agent knew about a channel only through prose baked into a server prompt;
|
|
6
|
+
* a new channel needed a prompt change. Now the runtime renders every channel's descriptor into ONE
|
|
7
|
+
* context note sent when the session goes live: what each channel is (its instructions), whether it
|
|
8
|
+
* is open or must be opened first, the things it holds, and — for channels reached through the
|
|
9
|
+
* `ContextTool` proxy — the verbs it accepts and the inputs it opens with.
|
|
10
|
+
*
|
|
11
|
+
* Channels the agent already operates through native tools described by their own tool
|
|
12
|
+
* declarations (a v1 channel mounted with the session) are left out: their tools self-describe, and
|
|
13
|
+
* restating them would only add tokens. The note is bounded (long instructions and verb lists are
|
|
14
|
+
* clipped) because it rides the model's context for the whole call.
|
|
15
|
+
*
|
|
16
|
+
* @module @memberjunction/realtime-runtime
|
|
17
|
+
*/
|
|
18
|
+
import { DescribeExposureLimit, WithheldVerbs, REALTIME_CHANNEL_LEGACY_CONTRACT_VERSION, } from '@memberjunction/ai-core-plus';
|
|
19
|
+
import { CHANNEL_OPEN_ACTION } from './channel-action-dispatcher.js';
|
|
20
|
+
import { FormatParameterList } from './channel-schema-format.js';
|
|
21
|
+
/** Longest instruction text sent per channel. */
|
|
22
|
+
const MAX_INSTRUCTION_CHARS = 800;
|
|
23
|
+
/** Longest per-verb description sent. */
|
|
24
|
+
const MAX_VERB_DESCRIPTION_CHARS = 160;
|
|
25
|
+
/** Most verbs listed per channel. */
|
|
26
|
+
const MAX_VERBS_LISTED = 24;
|
|
27
|
+
/** Longest note total; further channels are dropped (with a marker) rather than letting it grow without bound. */
|
|
28
|
+
const MAX_NOTE_CHARS = 8000;
|
|
29
|
+
/** Clips text to `limit` characters with an ellipsis. */
|
|
30
|
+
function clip(text, limit) {
|
|
31
|
+
const trimmed = text.trim().replace(/\s+/g, ' ');
|
|
32
|
+
return trimmed.length > limit ? `${trimmed.slice(0, limit - 1)}…` : trimmed;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Whether a channel needs a catalog entry. Authored descriptors do; legacy ones only when their tools
|
|
36
|
+
* do not already describe them. A channel that is open and has nothing to act on or look at (no verbs,
|
|
37
|
+
* no nouns — the headless client-context proxy itself) has nothing to say.
|
|
38
|
+
*/
|
|
39
|
+
function needsEntry(entry) {
|
|
40
|
+
const { Descriptor: d } = entry;
|
|
41
|
+
if (entry.IsOpen && d.Verbs.length === 0 && d.Nouns.length === 0) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const legacy = d.Version === REALTIME_CHANNEL_LEGACY_CONTRACT_VERSION;
|
|
45
|
+
return !(legacy && entry.IsOpen && entry.HasNativeTools);
|
|
46
|
+
}
|
|
47
|
+
/** Renders one verb: `name(params) — description`, flagging the ones only the user may do. */
|
|
48
|
+
function renderVerb(verb) {
|
|
49
|
+
const user = verb.InvokableBy === 'user' ? ' [user only]' : '';
|
|
50
|
+
return `${verb.Name}(${FormatParameterList(verb.ParametersSchema)})${user} — ${clip(verb.Description, MAX_VERB_DESCRIPTION_CHARS)}`;
|
|
51
|
+
}
|
|
52
|
+
/** Renders one channel's entry as indented lines. */
|
|
53
|
+
function renderEntry(entry) {
|
|
54
|
+
const { Descriptor: d } = entry;
|
|
55
|
+
const status = entry.IsOpen ? 'open' : 'available — open it first';
|
|
56
|
+
const lines = [`- ${d.DisplayName} (channel "${d.Key}", ${status}): ${clip(d.Instructions, MAX_INSTRUCTION_CHARS)}`];
|
|
57
|
+
if (d.Nouns.length > 0) {
|
|
58
|
+
lines.push(` holds: ${d.Nouns.map((n) => `${n.Name} — ${clip(n.Description, MAX_VERB_DESCRIPTION_CHARS)}`).join('; ')}`);
|
|
59
|
+
}
|
|
60
|
+
if (!entry.IsOpen && d.Inputs) {
|
|
61
|
+
lines.push(` open with: ${FormatParameterList(d.Inputs) || '(no inputs)'}`);
|
|
62
|
+
}
|
|
63
|
+
// Native-tool channels' verbs are already tools; list verbs only where the proxy is the way in.
|
|
64
|
+
if (!entry.HasNativeTools && d.Verbs.length > 0) {
|
|
65
|
+
const verbs = d.Verbs.slice(0, MAX_VERBS_LISTED).map(renderVerb);
|
|
66
|
+
lines.push(` actions: ${verbs.join('; ')}${d.Verbs.length > MAX_VERBS_LISTED ? `; …and ${d.Verbs.length - MAX_VERBS_LISTED} more` : ''}`);
|
|
67
|
+
}
|
|
68
|
+
return lines;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Renders the catalog note for a session's channels.
|
|
72
|
+
*
|
|
73
|
+
* @param entries The session's channels (open and advertised).
|
|
74
|
+
* @returns The note text, or `null` when no channel needs describing (so a legacy-only session sends nothing new).
|
|
75
|
+
*/
|
|
76
|
+
export function BuildChannelCatalogNote(entries) {
|
|
77
|
+
const described = entries.filter(needsEntry);
|
|
78
|
+
const limits = renderVisibilityLimits(entries);
|
|
79
|
+
if (described.length === 0) {
|
|
80
|
+
return limits.length > 0 ? limits.join('\n') : null;
|
|
81
|
+
}
|
|
82
|
+
const header = [
|
|
83
|
+
'[channels] Interactive channels in this session.',
|
|
84
|
+
`Address one with ContextTool: action = the action name, target = { "channel": "<channel>" }, params = that action's parameters.`,
|
|
85
|
+
`A channel marked "available" must be opened first: action "${CHANNEL_OPEN_ACTION}", target = { "channel": "<channel>" }, params = its open inputs.`,
|
|
86
|
+
];
|
|
87
|
+
const lines = [...header];
|
|
88
|
+
let omitted = 0;
|
|
89
|
+
for (const entry of described) {
|
|
90
|
+
const rendered = renderEntry(entry);
|
|
91
|
+
if (lines.join('\n').length + rendered.join('\n').length > MAX_NOTE_CHARS) {
|
|
92
|
+
omitted++;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
lines.push(...rendered);
|
|
96
|
+
}
|
|
97
|
+
if (omitted > 0) {
|
|
98
|
+
lines.push(`(${omitted} more channel(s) omitted for length.)`);
|
|
99
|
+
}
|
|
100
|
+
lines.push(...limits);
|
|
101
|
+
return lines.join('\n');
|
|
102
|
+
}
|
|
103
|
+
/** The "visibility limits" section: what the agent perceives of each channel whose exposure is held down, and why. */
|
|
104
|
+
function renderVisibilityLimits(entries) {
|
|
105
|
+
const lines = [];
|
|
106
|
+
for (const entry of entries) {
|
|
107
|
+
const limit = entry.ExposureLimit;
|
|
108
|
+
const sentence = limit ? DescribeExposureLimit(limit.Effective, limit.Ceiling, limit.Reasons) : null;
|
|
109
|
+
if (limit && sentence) {
|
|
110
|
+
lines.push(`- ${entry.Descriptor.DisplayName} (channel "${entry.Descriptor.Key}"): ${sentence}`);
|
|
111
|
+
const withheld = WithheldVerbs(entry.Descriptor.Verbs, limit.Effective).map((v) => v.Name);
|
|
112
|
+
if (withheld.length > 0) {
|
|
113
|
+
lines.push(` unavailable right now, because their results would show you what you may not perceive: ${withheld.join(', ')}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return lines.length > 0 ? ['[channels] Visibility limits — what you perceive of these channels without asking:', ...lines] : [];
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=channel-catalog-note.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-catalog-note.js","sourceRoot":"","sources":["../../src/channels/channel-catalog-note.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACH,qBAAqB,EACrB,aAAa,EACb,wCAAwC,GAI3C,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAyB9D,iDAAiD;AACjD,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,yCAAyC;AACzC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,qCAAqC;AACrC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,kHAAkH;AAClH,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,yDAAyD;AACzD,SAAS,IAAI,CAAC,IAAY,EAAE,KAAa;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAA0B;IAC1C,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,KAAK,wCAAwC,CAAC;IACtE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;AAC7D,CAAC;AAED,8FAA8F;AAC9F,SAAS,UAAU,CAAC,IAAyB;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,EAAE,CAAC;AACxI,CAAC;AAED,qDAAqD;AACrD,SAAS,WAAW,CAAC,KAA0B;IAC3C,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC;IACnE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,GAAG,MAAM,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChI,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,kBAAkB,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,gGAAgG;IAChG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjJ,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAA2C;IAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IACD,MAAM,MAAM,GAAG;QACX,kDAAkD;QAClD,iIAAiI;QACjI,8DAA8D,mBAAmB,mEAAmE;KACvJ,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC1B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACxE,OAAO,EAAE,CAAC;YACV,SAAS;QACb,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,uCAAuC,CAAC,CAAC;IACnE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,sHAAsH;AACtH,SAAS,sBAAsB,CAAC,OAA2C;IACvE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrG,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,WAAW,cAAc,KAAK,CAAC,UAAU,CAAC,GAAG,OAAO,QAAQ,EAAE,CAAC,CAAC;YACjG,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,8FAA8F,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpI,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,oFAAoF,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpI,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The runtime-side types of the channel contract v2: what a channel emits
|
|
3
|
+
* (events, outputs), what a verb returns, and how the `ContextTool` proxy addresses a channel.
|
|
4
|
+
*
|
|
5
|
+
* The *descriptor* types — the declarative half of the contract — live in
|
|
6
|
+
* `@memberjunction/ai-core-plus` (`RealtimeChannelDescriptor` and friends) because the server needs
|
|
7
|
+
* them too. These are the runtime half: shapes that only exist while a session is live.
|
|
8
|
+
*
|
|
9
|
+
* @module @memberjunction/realtime-runtime
|
|
10
|
+
*/
|
|
11
|
+
import type { JSONObject, JSONValue } from '@memberjunction/ai';
|
|
12
|
+
/**
|
|
13
|
+
* The result of running a channel verb (or opening a channel).
|
|
14
|
+
*
|
|
15
|
+
* Structured on purpose: the dispatcher turns a failure into a model-recoverable message, which it
|
|
16
|
+
* can only do well when it knows *why* the call failed ({@link ErrorCode}) rather than having to
|
|
17
|
+
* parse prose out of a JSON string.
|
|
18
|
+
*/
|
|
19
|
+
export interface RealtimeChannelVerbResult {
|
|
20
|
+
/** Whether the verb did what was asked. */
|
|
21
|
+
Success: boolean;
|
|
22
|
+
/** The verb's result, when it has one. */
|
|
23
|
+
Result?: JSONValue;
|
|
24
|
+
/** A stable machine-readable failure code (e.g. `'invalid_params'`). Present only on failure. */
|
|
25
|
+
ErrorCode?: string;
|
|
26
|
+
/** A message the model can read and act on. Present only on failure. */
|
|
27
|
+
Error?: string;
|
|
28
|
+
/** Specifics of the failure (e.g. each schema violation). */
|
|
29
|
+
Details?: string[];
|
|
30
|
+
/**
|
|
31
|
+
* The instance a successful open created (or acted on), for a {@link RealtimeChannelDescriptor.MultiInstance}
|
|
32
|
+
* channel. Returned from `OnOpen` so the opened note, the `opened` event and the open result name the
|
|
33
|
+
* instance that was just created rather than the channel's primary one. Ignored by single-instance channels.
|
|
34
|
+
*/
|
|
35
|
+
Instance?: string;
|
|
36
|
+
}
|
|
37
|
+
/** One event a channel emitted on {@link BaseRealtimeChannelClient.Events$}. */
|
|
38
|
+
export interface RealtimeChannelEvent {
|
|
39
|
+
/** The emitting channel's key. */
|
|
40
|
+
Channel: string;
|
|
41
|
+
/** The emitting instance's id (see {@link BaseRealtimeChannelClient.InstanceId}). */
|
|
42
|
+
Instance: string;
|
|
43
|
+
/** The event name (e.g. `'state_changed'`, `'opened'`, `'frame_pushed'`). */
|
|
44
|
+
Name: string;
|
|
45
|
+
/** The event payload. */
|
|
46
|
+
Payload: JSONObject;
|
|
47
|
+
/**
|
|
48
|
+
* The change id of the state change this event relates to, when it relates to one. A
|
|
49
|
+
* `'state_changed'` event carries the id the change was assigned; a `'frame_pushed'` event
|
|
50
|
+
* carries the id of the state its frame was captured at — so a consumer can check that the
|
|
51
|
+
* pixels and the state they are describing agree.
|
|
52
|
+
*/
|
|
53
|
+
ChangeId?: number;
|
|
54
|
+
/** When the event was emitted (epoch ms). */
|
|
55
|
+
OccurredAt: number;
|
|
56
|
+
}
|
|
57
|
+
/** What a channel handed back when it completed, emitted on {@link BaseRealtimeChannelClient.Output$}. */
|
|
58
|
+
export interface RealtimeChannelOutput {
|
|
59
|
+
/** The completing channel's key. */
|
|
60
|
+
Channel: string;
|
|
61
|
+
/** The completing instance's id. */
|
|
62
|
+
Instance: string;
|
|
63
|
+
/** The output (validated against the descriptor's `Output` schema in development builds). */
|
|
64
|
+
Output: JSONObject;
|
|
65
|
+
/** When the channel completed (epoch ms). */
|
|
66
|
+
OccurredAt: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* How the `ContextTool` proxy addresses a channel. With no target the proxy runs an app client tool
|
|
70
|
+
* by name; with one it runs a verb of that channel.
|
|
71
|
+
*/
|
|
72
|
+
export interface RealtimeChannelTarget {
|
|
73
|
+
/** The channel's key (case-insensitive). */
|
|
74
|
+
Channel: string;
|
|
75
|
+
/** Which instance of a multi-instance channel; omit for the channel's primary instance. */
|
|
76
|
+
Instance?: string;
|
|
77
|
+
}
|
|
78
|
+
/** A targeted `ContextTool` call, handed from the proxy to the runtime for validation and dispatch. */
|
|
79
|
+
export interface RealtimeContextActionRequest {
|
|
80
|
+
/** The channel (and instance) being addressed. */
|
|
81
|
+
Target: RealtimeChannelTarget;
|
|
82
|
+
/** The verb to run — or `'open'`, which mounts the channel (and seeds it with `Params`). */
|
|
83
|
+
Action: string;
|
|
84
|
+
/** The verb's parameters (for `'open'`, the channel's open inputs). */
|
|
85
|
+
Params: JSONObject;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Why a targeted `ContextTool` call was refused. Each code maps to a message that tells the model
|
|
89
|
+
* how to recover, so it can correct itself conversationally instead of going quiet.
|
|
90
|
+
*/
|
|
91
|
+
export type RealtimeContextErrorCode = 'unknown_channel' | 'channel_not_open' | 'unknown_instance' | 'unknown_verb' | 'not_invokable_by_agent' | 'invalid_params' | 'open_failed' | 'exposure_restricted' | 'verb_failed';
|
|
92
|
+
/** The outcome of a targeted `ContextTool` call. */
|
|
93
|
+
export interface RealtimeContextActionResult {
|
|
94
|
+
/** Whether the action ran and succeeded. */
|
|
95
|
+
Success: boolean;
|
|
96
|
+
/** The verb's result (success only). */
|
|
97
|
+
Result?: JSONValue;
|
|
98
|
+
/** Why the call was refused or failed (failure only). */
|
|
99
|
+
ErrorCode?: RealtimeContextErrorCode;
|
|
100
|
+
/** A message the model can read and act on (failure only). */
|
|
101
|
+
ErrorMessage?: string;
|
|
102
|
+
/** Specifics — e.g. each schema violation for `'invalid_params'`. */
|
|
103
|
+
Details?: string[];
|
|
104
|
+
/** What WOULD have been valid (channel keys, instance ids or verb names), so the model can retry. */
|
|
105
|
+
Available?: string[];
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=channel-contract-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-contract-types.d.ts","sourceRoot":"","sources":["../../src/channels/channel-contract-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACtC,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACjC,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,0GAA0G;AAC1G,MAAM,WAAW,qBAAqB;IAClC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,MAAM,EAAE,UAAU,CAAC;IACnB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,uGAAuG;AACvG,MAAM,WAAW,4BAA4B;IACzC,kDAAkD;IAClD,MAAM,EAAE,qBAAqB,CAAC;IAC9B,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,UAAU,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAC9B,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,wBAAwB,GACxB,gBAAgB,GAChB,aAAa,GACb,qBAAqB,GACrB,aAAa,CAAC;AAEpB,oDAAoD;AACpD,MAAM,WAAW,2BAA2B;IACxC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The runtime-side types of the channel contract v2: what a channel emits
|
|
3
|
+
* (events, outputs), what a verb returns, and how the `ContextTool` proxy addresses a channel.
|
|
4
|
+
*
|
|
5
|
+
* The *descriptor* types — the declarative half of the contract — live in
|
|
6
|
+
* `@memberjunction/ai-core-plus` (`RealtimeChannelDescriptor` and friends) because the server needs
|
|
7
|
+
* them too. These are the runtime half: shapes that only exist while a session is live.
|
|
8
|
+
*
|
|
9
|
+
* @module @memberjunction/realtime-runtime
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=channel-contract-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-contract-types.js","sourceRoot":"","sources":["../../src/channels/channel-contract-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|