@hainiva/agent-sdk 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +29 -4
  2. package/README.md +100 -9
  3. package/dist/cjs/agent.cjs +4 -0
  4. package/dist/cjs/agent.d.cts +5 -1
  5. package/dist/cjs/contract.d.cts +10 -0
  6. package/dist/cjs/embed.cjs +249 -7
  7. package/dist/cjs/embed.d.cts +181 -7
  8. package/dist/cjs/index.cjs +4 -4
  9. package/dist/cjs/index.d.cts +4 -4
  10. package/dist/cjs/react-native.cjs +6 -1
  11. package/dist/cjs/react-native.d.cts +1 -0
  12. package/dist/cjs/reactNativeDesk.cjs +107 -0
  13. package/dist/cjs/reactNativeDesk.d.cts +53 -0
  14. package/dist/cjs/rest.cjs +6 -0
  15. package/dist/cjs/rest.d.cts +7 -1
  16. package/dist/esm/agent.d.ts +5 -1
  17. package/dist/esm/agent.d.ts.map +1 -1
  18. package/dist/esm/agent.js +4 -0
  19. package/dist/esm/agent.js.map +1 -1
  20. package/dist/esm/contract.d.ts +10 -0
  21. package/dist/esm/contract.d.ts.map +1 -1
  22. package/dist/esm/contract.js.map +1 -1
  23. package/dist/esm/embed.d.ts +181 -7
  24. package/dist/esm/embed.d.ts.map +1 -1
  25. package/dist/esm/embed.js +243 -5
  26. package/dist/esm/embed.js.map +1 -1
  27. package/dist/esm/index.d.ts +4 -4
  28. package/dist/esm/index.js +4 -4
  29. package/dist/esm/react-native.d.ts +1 -0
  30. package/dist/esm/react-native.d.ts.map +1 -1
  31. package/dist/esm/react-native.js +3 -0
  32. package/dist/esm/react-native.js.map +1 -1
  33. package/dist/esm/reactNativeDesk.d.ts +54 -0
  34. package/dist/esm/reactNativeDesk.d.ts.map +1 -0
  35. package/dist/esm/reactNativeDesk.js +103 -0
  36. package/dist/esm/reactNativeDesk.js.map +1 -0
  37. package/dist/esm/rest.d.ts +7 -1
  38. package/dist/esm/rest.d.ts.map +1 -1
  39. package/dist/esm/rest.js +6 -0
  40. package/dist/esm/rest.js.map +1 -1
  41. package/package.json +50 -13
@@ -1,13 +1,187 @@
1
1
  /**
2
- * @hainiva/agent-sdk/embed — the embeddable HAINIVA desk (iframe / WebView with a
3
- * postMessage bridge). Planned for milestone M3; not part of this release.
2
+ * @hainiva/agent-sdk/embed — the HAINIVA desk inside your web product.
3
+ *
4
+ * import { HainivaAgent } from "@hainiva/agent-sdk";
5
+ * import { mountDesk } from "@hainiva/agent-sdk/embed";
6
+ *
7
+ * const agent = new HainivaAgent({ baseUrl: "https://api.hainiva.com", tenantId, getAssertion });
8
+ * await agent.connect();
9
+ * const desk = mountDesk(document.getElementById("desk")!, {
10
+ * agent, appId: "<your agent app id>", baseUrl: "https://app.hainiva.com",
11
+ * onEnded: (reason) => showSignedOut(reason),
12
+ * });
13
+ * // later: desk.setTheme("dark"); desk.destroy();
14
+ *
15
+ * Your staff member is signed in with YOUR agent session: the SDK exchanges it
16
+ * for a 15-minute desk token (POST /agent/v1/desk-session) and hands that to
17
+ * the desk over postMessage — never in the URL, never stored. The desk asks
18
+ * for a fresh one before it expires; when the session ends (signed out,
19
+ * suspended, app paused) the desk shows "ended" and `onEnded` fires.
20
+ *
21
+ * Your page's origin must be in the agent app's `allowedOrigins`: that list is
22
+ * also the desk's CSP frame-ancestors, so any other site gets a blank frame.
23
+ *
24
+ * Security, both directions:
25
+ * - only messages whose `event.source` is THIS iframe's window and whose
26
+ * `event.origin` is the HAINIVA desk origin are read, and only in the exact
27
+ * message shapes below;
28
+ * - everything we send goes to the desk origin only (never "*").
4
29
  */
5
- export interface MountDeskOptions {
6
- container: unknown;
7
- getAccessToken: () => Promise<string>;
30
+ import type { AgentDeskSessionDto } from "./contract.cjs";
31
+ export type DeskEndReason = "not_embedded" | "no_host" | "expired" | "revoked" | "host_ended" | "misconfigured"
32
+ /** The desk never answered (wrong origin: the CSP blocked the frame; network). */
33
+ | "load_failed"
34
+ /** Your agent session could not provide a desk token. */
35
+ | "session_ended";
36
+ /** From the desk. */
37
+ export type DeskToHost = {
38
+ v: 1;
39
+ type: "hainiva:ready";
40
+ appId: string;
41
+ } | {
42
+ v: 1;
43
+ type: "hainiva:token-request";
44
+ reason: "expiring" | "unauthorized";
45
+ } | {
46
+ v: 1;
47
+ type: "hainiva:ended";
48
+ reason: Exclude<DeskEndReason, "load_failed" | "session_ended">;
49
+ } | {
50
+ v: 1;
51
+ type: "hainiva:dial";
52
+ number: string;
53
+ contactId?: string;
54
+ } | {
55
+ v: 1;
56
+ type: "hainiva:dialer";
57
+ number?: string;
58
+ contactId?: string;
59
+ } | {
60
+ v: 1;
61
+ type: "hainiva:open-url";
62
+ url: string;
63
+ } | {
64
+ v: 1;
65
+ type: "hainiva:media-error";
66
+ name: string;
67
+ };
68
+ /** To the desk. */
69
+ export type HostToDesk = {
70
+ v: 1;
71
+ type: "hainiva:token";
72
+ token: string;
73
+ expiresAt: string;
74
+ } | {
75
+ v: 1;
76
+ type: "hainiva:theme";
77
+ mode: "light" | "dark";
78
+ } | {
79
+ v: 1;
80
+ type: "hainiva:locale";
81
+ locale: "vi" | "en";
82
+ } | {
83
+ v: 1;
84
+ type: "hainiva:end";
85
+ };
86
+ /** Exactly one of the desk's messages, or null. */
87
+ export declare function parseDeskMessage(data: unknown): DeskToHost | null;
88
+ /** Where the desk token comes from: `HainivaAgent` (its `desk.session()`), or anything shaped like it. */
89
+ export interface DeskTokenSource {
90
+ desk: {
91
+ session(): Promise<AgentDeskSessionDto>;
92
+ };
93
+ }
94
+ export interface DeskCallbacks {
95
+ /** The desk wants to place a call (React Native: your native call; web: the desk calls itself and never sends this). */
96
+ onDial?: (number: string, contactId?: string) => void;
97
+ /** Open your dialer, optionally pre-filled. */
98
+ onDialer?: (prefill: {
99
+ number?: string;
100
+ contactId?: string;
101
+ }) => void;
102
+ /** The desk's session is over. Show your own signed-out state; mount again after a new sign-in. */
103
+ onEnded?: (reason: DeskEndReason) => void;
104
+ /** A link the desk cannot open itself (React Native). Default: ignored. */
105
+ onOpenUrl?: (url: string) => void;
106
+ /** The microphone/camera was refused (web): check your iframe's `allow` and the browser's permission. */
107
+ onMediaError?: (name: string) => void;
108
+ }
109
+ /**
110
+ * The host side of the desk protocol, transport-agnostic: `mountDesk` (iframe)
111
+ * and `<HainivaDesk/>` (React Native WebView) both drive one.
112
+ * @internal exported for the React Native entry and tests.
113
+ */
114
+ export declare class DeskHost {
115
+ private readonly appId;
116
+ private readonly source;
117
+ private readonly send;
118
+ private readonly cb;
119
+ private ended;
120
+ private ready;
121
+ private inflight;
122
+ constructor(appId: string, source: DeskTokenSource, send: (m: HostToDesk) => void, cb: DeskCallbacks);
123
+ get isReady(): boolean;
124
+ get isEnded(): boolean;
125
+ /** A raw message from the desk (already origin/source-checked by the transport). */
126
+ receive(raw: unknown): void;
127
+ /** One desk-session request at a time; the token goes to the desk only. */
128
+ supplyToken(): Promise<void>;
129
+ setTheme(mode: "light" | "dark"): void;
130
+ setLocale(locale: "vi" | "en"): void;
131
+ finish(reason: DeskEndReason, tellDesk: boolean): void;
132
+ }
133
+ /** The desk page for an app. The URL carries the app id ONLY. */
134
+ export declare function deskUrl(baseUrl: string, appId: string, opts?: {
135
+ allowInsecureLocalhost?: boolean;
136
+ }): URL;
137
+ /**
138
+ * The iframe's sandbox — every flag the desk needs and nothing more:
139
+ * allow-scripts the desk is an application;
140
+ * allow-same-origin the desk keeps ITS OWN origin (app.hainiva.com):
141
+ * its same-origin API calls, its session storage
142
+ * and the gateway's Origin check depend on it. It
143
+ * gives the desk no access to your page — that is
144
+ * a different origin;
145
+ * allow-forms the composer and every dialog submit forms;
146
+ * allow-popups links, recordings and help open in a new tab…
147
+ * allow-popups-to-escape-sandbox …as normal pages, not sandboxed copies;
148
+ * allow-downloads call recordings, attachments, exports;
149
+ * allow-modals the desk confirms destructive actions (confirm()).
150
+ * Deliberately NOT: allow-top-navigation(-by-user-activation) — the desk can
151
+ * never navigate your page; allow-pointer-lock, allow-presentation,
152
+ * allow-orientation-lock, allow-storage-access-by-user-activation.
153
+ */
154
+ export declare const DESK_SANDBOX = "allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals";
155
+ /** Calls in the iframe are WebRTC: the microphone (and camera for video) must be delegated. */
156
+ export declare const DESK_ALLOW = "microphone; camera; autoplay; clipboard-write";
157
+ export interface MountDeskOptions extends DeskCallbacks {
158
+ /** A connected HainivaAgent (or anything with `desk.session()`). */
159
+ agent: DeskTokenSource;
160
+ /** Your agent app id (its allowedOrigins must list this page's origin). */
161
+ appId: string;
162
+ /** The HAINIVA desk, e.g. https://app.hainiva.com. */
163
+ baseUrl: string;
164
+ theme?: "light" | "dark";
165
+ locale?: "vi" | "en";
166
+ /** The iframe's accessible title. Default "HAINIVA". */
167
+ title?: string;
168
+ /** No `hainiva:ready` within this long = onEnded("load_failed"). Default 20 s. */
169
+ loadTimeoutMs?: number;
170
+ /** Local development only (http://localhost desk). */
171
+ allowInsecureLocalhost?: boolean;
8
172
  }
9
173
  export interface MountedDesk {
174
+ /** Remove the desk (it is told to drop its token first). */
10
175
  destroy(): void;
176
+ setTheme(mode: "light" | "dark"): void;
177
+ setLocale(locale: "vi" | "en"): void;
178
+ /** The iframe, for sizing. */
179
+ readonly iframe: HTMLIFrameElement;
180
+ }
181
+ interface ContainerLike {
182
+ appendChild(n: unknown): unknown;
183
+ ownerDocument?: Document | null;
11
184
  }
12
- /** Not yet available: throws. */
13
- export declare function mountDesk(_options?: MountDeskOptions): MountedDesk;
185
+ /** Show the HAINIVA desk in `container`, signed in as your agent session's staff member. */
186
+ export declare function mountDesk(container: ContainerLike, o: MountDeskOptions): MountedDesk;
187
+ export {};
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  /**
3
- * @hainiva/agent-sdk — build your own agent app on HAINIVA AICC: staff sign-in
3
+ * @hainiva/agent-sdk — build your own agent app on HAINIVA: staff sign-in
4
4
  * with your backend's assertion, the live event stream, and calls.
5
5
  *
6
6
  * Entry points:
7
7
  * "@hainiva/agent-sdk" transport-agnostic core (this file) — no LiveKit, no DOM, no React Native
8
8
  * "@hainiva/agent-sdk/web" localStorage store (opt-in), LiveKit call media
9
- * "@hainiva/agent-sdk/react-native" secure-store session, LiveKit call media
10
- * "@hainiva/agent-sdk/embed" the embeddable desk (not yet available)
9
+ * "@hainiva/agent-sdk/react-native" secure-store session, LiveKit call media, <HainivaDesk/>
10
+ * "@hainiva/agent-sdk/embed" mountDesk(): the HAINIVA desk in your web page (iframe)
11
11
  *
12
12
  * Start with HainivaAgent (./agent): it wires the session, the REST client,
13
13
  * the event socket and the call state machine together. The parts are exported
@@ -29,7 +29,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.toCallEvents = exports.ringInfo = exports.isEventFrame = exports.agentSocketBindings = exports.AGENT_CLOSE_CODES = exports.newIdempotencyKey = exports.errorFromResponse = exports.AgentRestClient = exports.HainivaAgent = exports.initialCallsState = exports.ringingCalls = exports.activeCall = exports.transition = exports.CallStore = exports.backoffDelay = exports.ReconnectingSocket = exports.memoryStore = exports.SessionManager = exports.createTokenRefresher = exports.singleFlight = exports.TypedEmitter = exports.assertSafeUrl = exports.safeLogger = exports.redactValue = exports.redactString = exports.Redactor = exports.HainivaAgentError = exports.SDK_VERSION = void 0;
32
- exports.SDK_VERSION = "0.2.0";
32
+ exports.SDK_VERSION = "0.3.1";
33
33
  var errors_js_1 = require("./errors.cjs");
34
34
  Object.defineProperty(exports, "HainivaAgentError", { enumerable: true, get: function () { return errors_js_1.HainivaAgentError; } });
35
35
  var redact_js_1 = require("./redact.cjs");
@@ -1,18 +1,18 @@
1
1
  /**
2
- * @hainiva/agent-sdk — build your own agent app on HAINIVA AICC: staff sign-in
2
+ * @hainiva/agent-sdk — build your own agent app on HAINIVA: staff sign-in
3
3
  * with your backend's assertion, the live event stream, and calls.
4
4
  *
5
5
  * Entry points:
6
6
  * "@hainiva/agent-sdk" transport-agnostic core (this file) — no LiveKit, no DOM, no React Native
7
7
  * "@hainiva/agent-sdk/web" localStorage store (opt-in), LiveKit call media
8
- * "@hainiva/agent-sdk/react-native" secure-store session, LiveKit call media
9
- * "@hainiva/agent-sdk/embed" the embeddable desk (not yet available)
8
+ * "@hainiva/agent-sdk/react-native" secure-store session, LiveKit call media, <HainivaDesk/>
9
+ * "@hainiva/agent-sdk/embed" mountDesk(): the HAINIVA desk in your web page (iframe)
10
10
  *
11
11
  * Start with HainivaAgent (./agent): it wires the session, the REST client,
12
12
  * the event socket and the call state machine together. The parts are exported
13
13
  * too, for apps that want their own wiring.
14
14
  */
15
- export declare const SDK_VERSION = "0.2.0";
15
+ export declare const SDK_VERSION = "0.3.1";
16
16
  export { HainivaAgentError } from "./errors.cjs";
17
17
  export { Redactor, redactString, redactValue } from "./redact.cjs";
18
18
  export { safeLogger, type Logger } from "./log.cjs";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.joinCallRoom = void 0;
3
+ exports.deskBridgeScript = exports.HainivaDesk = exports.joinCallRoom = void 0;
4
4
  exports.secureStoreSessionStore = secureStoreSessionStore;
5
5
  var livekit_js_1 = require("./livekit.cjs");
6
6
  Object.defineProperty(exports, "joinCallRoom", { enumerable: true, get: function () { return livekit_js_1.joinCallRoom; } });
@@ -25,3 +25,8 @@ function secureStoreSessionStore(secure, o = {}) {
25
25
  remove: () => secure.deleteItemAsync(key, opts),
26
26
  };
27
27
  }
28
+ // The embedded HAINIVA desk in a WebView (react-native-webview, an optional
29
+ // peer), signed in with your agent session; calls stay native in your app.
30
+ var reactNativeDesk_js_1 = require("./reactNativeDesk.cjs");
31
+ Object.defineProperty(exports, "HainivaDesk", { enumerable: true, get: function () { return reactNativeDesk_js_1.HainivaDesk; } });
32
+ Object.defineProperty(exports, "deskBridgeScript", { enumerable: true, get: function () { return reactNativeDesk_js_1.deskBridgeScript; } });
@@ -36,3 +36,4 @@ export interface SecureStoreSessionOptions {
36
36
  * const store = secureStoreSessionStore(SecureStore);
37
37
  */
38
38
  export declare function secureStoreSessionStore(secure: SecureStoreModule, o?: SecureStoreSessionOptions): SessionStore;
39
+ export { HainivaDesk, deskBridgeScript, type HainivaDeskProps, type WebViewLike } from "./reactNativeDesk.cjs";
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deskBridgeScript = deskBridgeScript;
4
+ exports.deliverScript = deliverScript;
5
+ exports.HainivaDesk = HainivaDesk;
6
+ /**
7
+ * `<HainivaDesk/>` — the HAINIVA desk inside your React Native app.
8
+ *
9
+ * import { WebView } from "react-native-webview";
10
+ * import { HainivaDesk } from "@hainiva/agent-sdk/react-native";
11
+ *
12
+ * <HainivaDesk agent={agent} appId={APP_ID} baseUrl="https://app.hainiva.com"
13
+ * onDial={(number, contactId) => placeNativeCall(number, contactId)}
14
+ * onEnded={(reason) => goToSignIn(reason)} />
15
+ *
16
+ * The split is the HAINIVA Agent app's: YOUR app rings and carries call audio
17
+ * natively (@hainiva/react-native-call + this SDK's CallStore); the desk shows
18
+ * the work and hands calls to you (`onDial`, `onDialer`).
19
+ *
20
+ * Security:
21
+ * - `originWhitelist` and `onShouldStartLoadWithRequest` keep the WebView on
22
+ * the HAINIVA desk origin; any other URL is refused there (and offered to
23
+ * `onOpenUrl`, if you pass one);
24
+ * - no window.open passthrough (`setSupportMultipleWindows={false}`,
25
+ * `javaScriptCanOpenWindowsAutomatically={false}`);
26
+ * - the bridge is installed before the desk's scripts and ONLY when the page
27
+ * is on the desk origin; the desk token goes in by injectJavaScript, never
28
+ * in the URL, and is not written to storage.
29
+ */
30
+ const React = require("react");
31
+ const embed_js_1 = require("./embed.cjs");
32
+ /** Runs before the desk's scripts, on the desk origin only: the partner-rn bridge the desk looks for. */
33
+ function deskBridgeScript(deskOrigin, appId) {
34
+ return `(function(){if(location.origin!==${JSON.stringify(deskOrigin)})return;`
35
+ + `window.__HAINIVA_EMBED__={host:"partner-rn",appId:${JSON.stringify(appId.toLowerCase())},q:[],deliver:function(s){this.q.push(String(s));}};})();true;`;
36
+ }
37
+ /** A message to the desk, as a script: JSON twice (a string literal of the JSON), nothing interpolated raw. */
38
+ function deliverScript(m) {
39
+ return `window.__HAINIVA_EMBED__&&window.__HAINIVA_EMBED__.deliver(${JSON.stringify(JSON.stringify(m))});true;`;
40
+ }
41
+ function defaultWebView() {
42
+ const mod = require("react-native-webview");
43
+ const W = mod.WebView ?? mod.default;
44
+ if (!W)
45
+ throw new Error("@hainiva/agent-sdk: install react-native-webview (or pass the WebView prop) to use <HainivaDesk/>");
46
+ return W;
47
+ }
48
+ function HainivaDesk(props) {
49
+ const url = React.useMemo(() => (0, embed_js_1.deskUrl)(props.baseUrl, props.appId, props.allowInsecureLocalhost ? { allowInsecureLocalhost: true } : {}), [props.baseUrl, props.appId, props.allowInsecureLocalhost]);
50
+ const origin = url.origin;
51
+ const web = React.useRef(null);
52
+ const latest = React.useRef(props);
53
+ latest.current = props;
54
+ const host = React.useMemo(() => new embed_js_1.DeskHost(props.appId, props.agent, (m) => web.current?.injectJavaScript(deliverScript(m)), {
55
+ onDial: (n, c) => latest.current.onDial?.(n, c),
56
+ onDialer: (p) => latest.current.onDialer?.(p),
57
+ onEnded: (r) => latest.current.onEnded?.(r),
58
+ onOpenUrl: (u) => latest.current.onOpenUrl?.(u),
59
+ onMediaError: (n) => latest.current.onMediaError?.(n),
60
+ }),
61
+ // eslint-disable-next-line react-hooks/exhaustive-deps
62
+ [props.appId, props.agent, origin]);
63
+ React.useEffect(() => { if (props.theme && host.isReady)
64
+ host.setTheme(props.theme); }, [props.theme, host]);
65
+ React.useEffect(() => { if (props.locale && host.isReady)
66
+ host.setLocale(props.locale); }, [props.locale, host]);
67
+ // Unmounted: the desk drops its token.
68
+ React.useEffect(() => () => { if (!host.isEnded)
69
+ web.current?.injectJavaScript(deliverScript({ v: 1, type: "hainiva:end" })); }, [host]);
70
+ const W = props.WebView ?? defaultWebView();
71
+ return React.createElement(W, {
72
+ ref: web,
73
+ source: { uri: url.href },
74
+ style: props.style,
75
+ originWhitelist: [origin],
76
+ injectedJavaScriptBeforeContentLoaded: deskBridgeScript(origin, props.appId),
77
+ onMessage: (e) => {
78
+ // Only from the desk origin (a page elsewhere never gets the bridge, and is refused below anyway).
79
+ const from = e.nativeEvent.url;
80
+ if (typeof from === "string" && !from.startsWith(`${origin}/`))
81
+ return;
82
+ const wasReady = host.isReady;
83
+ host.receive(e.nativeEvent.data);
84
+ if (!wasReady && host.isReady) {
85
+ if (latest.current.theme)
86
+ host.setTheme(latest.current.theme);
87
+ if (latest.current.locale)
88
+ host.setLocale(latest.current.locale);
89
+ }
90
+ },
91
+ onShouldStartLoadWithRequest: (r) => {
92
+ if (r.url === "about:blank" || r.url.startsWith(`${origin}/`) || r.url.startsWith("blob:") || r.url.startsWith("data:"))
93
+ return true;
94
+ latest.current.onOpenUrl?.(r.url);
95
+ return false;
96
+ },
97
+ setSupportMultipleWindows: false,
98
+ javaScriptCanOpenWindowsAutomatically: false,
99
+ allowFileAccess: false,
100
+ allowUniversalAccessFromFileURLs: false,
101
+ mixedContentMode: "never",
102
+ domStorageEnabled: true,
103
+ sharedCookiesEnabled: false,
104
+ thirdPartyCookiesEnabled: false,
105
+ mediaPlaybackRequiresUserAction: false,
106
+ });
107
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * `<HainivaDesk/>` — the HAINIVA desk inside your React Native app.
3
+ *
4
+ * import { WebView } from "react-native-webview";
5
+ * import { HainivaDesk } from "@hainiva/agent-sdk/react-native";
6
+ *
7
+ * <HainivaDesk agent={agent} appId={APP_ID} baseUrl="https://app.hainiva.com"
8
+ * onDial={(number, contactId) => placeNativeCall(number, contactId)}
9
+ * onEnded={(reason) => goToSignIn(reason)} />
10
+ *
11
+ * The split is the HAINIVA Agent app's: YOUR app rings and carries call audio
12
+ * natively (@hainiva/react-native-call + this SDK's CallStore); the desk shows
13
+ * the work and hands calls to you (`onDial`, `onDialer`).
14
+ *
15
+ * Security:
16
+ * - `originWhitelist` and `onShouldStartLoadWithRequest` keep the WebView on
17
+ * the HAINIVA desk origin; any other URL is refused there (and offered to
18
+ * `onOpenUrl`, if you pass one);
19
+ * - no window.open passthrough (`setSupportMultipleWindows={false}`,
20
+ * `javaScriptCanOpenWindowsAutomatically={false}`);
21
+ * - the bridge is installed before the desk's scripts and ONLY when the page
22
+ * is on the desk origin; the desk token goes in by injectJavaScript, never
23
+ * in the URL, and is not written to storage.
24
+ */
25
+ import * as React from "react";
26
+ import { type DeskCallbacks, type DeskTokenSource, type HostToDesk } from "./embed.cjs";
27
+ /** The parts of react-native-webview's WebView this component uses. */
28
+ export interface WebViewLike {
29
+ injectJavaScript(script: string): void;
30
+ }
31
+ type WebViewComponent = React.ComponentType<Record<string, unknown> & {
32
+ ref?: React.Ref<WebViewLike>;
33
+ }>;
34
+ export interface HainivaDeskProps extends DeskCallbacks {
35
+ agent: DeskTokenSource;
36
+ appId: string;
37
+ /** The HAINIVA desk, e.g. https://app.hainiva.com. */
38
+ baseUrl: string;
39
+ theme?: "light" | "dark";
40
+ locale?: "vi" | "en";
41
+ /** react-native-webview's WebView. Default: required from "react-native-webview". */
42
+ WebView?: WebViewComponent;
43
+ /** Passed to the WebView. */
44
+ style?: unknown;
45
+ /** Local development only (http://localhost desk). */
46
+ allowInsecureLocalhost?: boolean;
47
+ }
48
+ /** Runs before the desk's scripts, on the desk origin only: the partner-rn bridge the desk looks for. */
49
+ export declare function deskBridgeScript(deskOrigin: string, appId: string): string;
50
+ /** A message to the desk, as a script: JSON twice (a string literal of the JSON), nothing interpolated raw. */
51
+ export declare function deliverScript(m: HostToDesk): string;
52
+ export declare function HainivaDesk(props: HainivaDeskProps): React.ReactElement;
53
+ export {};
package/dist/cjs/rest.cjs CHANGED
@@ -210,6 +210,12 @@ class AgentRestClient {
210
210
  body = { number: target.number, mode: target.mode ?? "warm" };
211
211
  return this.request("POST", `/agent/v1/calls/${id(callId, "callId")}/transfer`, { ...o, body });
212
212
  }
213
+ /**
214
+ * A 15-minute desk token for the embedded HAINIVA desk (S4): give it to the
215
+ * desk over postMessage only (`@hainiva/agent-sdk/embed` does). Never put it
216
+ * in a URL or storage. Ends with this session.
217
+ */
218
+ async deskSession(o) { return this.request("POST", "/agent/v1/desk-session", { ...o, body: {} }); }
213
219
  /** Re-mint the LiveKit token while still a participant (reconnect, token near expiry). */
214
220
  async mediaToken(callId, o) { return this.request("POST", `/agent/v1/calls/${id(callId, "callId")}/media-token`, { ...o, body: {} }); }
215
221
  // ── Wrap-up ─────────────────────────────────────────────────────────────────
@@ -14,7 +14,7 @@
14
14
  * server's `{error:{code,message}}` envelope, redacted; non-JSON or
15
15
  * non-object bodies are handled defensively.
16
16
  */
17
- import type { AgentAcceptDto, AgentCallDto, AgentConversationDto, AgentDispositionDto, AgentMeDto, AgentMediaTokenDto, AgentMessageDto, AgentPage, AgentPresenceStatus, AgentPushSubscriptionDto, AgentPushSubscriptionInput, AgentRingDto, AgentSessionDto, SupervisorAgentDto, SupervisorLiveCallDto, SupervisorSuperviseDto } from "./contract.cjs";
17
+ import type { AgentAcceptDto, AgentCallDto, AgentConversationDto, AgentDispositionDto, AgentMeDto, AgentMediaTokenDto, AgentMessageDto, AgentPage, AgentPresenceStatus, AgentPushSubscriptionDto, AgentPushSubscriptionInput, AgentRingDto, AgentDeskSessionDto, AgentSessionDto, SupervisorAgentDto, SupervisorLiveCallDto, SupervisorSuperviseDto } from "./contract.cjs";
18
18
  import { HainivaAgentError } from "./errors.cjs";
19
19
  import { type Logger } from "./log.cjs";
20
20
  import { Redactor } from "./redact.cjs";
@@ -118,6 +118,12 @@ export declare class AgentRestClient {
118
118
  callId: string;
119
119
  transferred: true;
120
120
  }>;
121
+ /**
122
+ * A 15-minute desk token for the embedded HAINIVA desk (S4): give it to the
123
+ * desk over postMessage only (`@hainiva/agent-sdk/embed` does). Never put it
124
+ * in a URL or storage. Ends with this session.
125
+ */
126
+ deskSession(o?: RequestOptions): Promise<AgentDeskSessionDto>;
121
127
  /** Re-mint the LiveKit token while still a participant (reconnect, token near expiry). */
122
128
  mediaToken(callId: string, o?: RequestOptions): Promise<MediaCredentials>;
123
129
  dispositions(channel?: string, o?: RequestOptions): Promise<AgentDispositionDto[]>;
@@ -12,7 +12,7 @@
12
12
  * (`media`, `WebSocket`, `store`), so the core runs in Node too.
13
13
  */
14
14
  import { CallStore, type CallEffect, type CallsState, type TransferTarget } from "./calls.js";
15
- import type { AgentAcceptDto, AgentCallEndedData, AgentCallRingingData, AgentConversationDto, AgentDispositionDto, AgentMeDto, AgentMessageDto, AgentPage, AgentPushSubscriptionDto, AgentPushSubscriptionInput, AgentRingDto, AgentSessionDto, SupervisorAgentDto, SupervisorLiveCallDto, SupervisorSuperviseDto } from "./contract.js";
15
+ import type { AgentAcceptDto, AgentCallEndedData, AgentDeskSessionDto, AgentCallRingingData, AgentConversationDto, AgentDispositionDto, AgentMeDto, AgentMessageDto, AgentPage, AgentPushSubscriptionDto, AgentPushSubscriptionInput, AgentRingDto, AgentSessionDto, SupervisorAgentDto, SupervisorLiveCallDto, SupervisorSuperviseDto } from "./contract.js";
16
16
  import { TypedEmitter } from "./emitter.js";
17
17
  import { HainivaAgentError } from "./errors.js";
18
18
  import { type AgentEventFrame } from "./events.js";
@@ -131,6 +131,10 @@ export declare class HainivaAgent {
131
131
  setStatus(status: AgentStatus, o?: RequestOptions): Promise<{
132
132
  status: AgentStatus;
133
133
  }>;
134
+ readonly desk: {
135
+ /** A desk token for the embedded desk (`@hainiva/agent-sdk/embed` mountDesk / `<HainivaDesk/>` call this). */
136
+ session: () => Promise<AgentDeskSessionDto>;
137
+ };
134
138
  readonly rings: {
135
139
  /** Rings waiting for you now (also fed into the call state). */
136
140
  pending: () => Promise<AgentRingDto[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,KAAK,EACV,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,UAAU,EAC/G,eAAe,EAAE,SAAS,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,YAAY,EAAE,eAAe,EAC/G,kBAAkB,EAAE,qBAAqB,EAAE,sBAAsB,EAClE,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAwF,KAAK,eAAe,EAAyB,MAAM,aAAa,CAAC;AAChK,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACtI,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,EAAsB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvF,wFAAwF;AACxF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC5C;AACD,yFAAyF;AACzF,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAExF,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,YAAY,EAAE,YAAY,CAAC;IAC3B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAA;KAAE,CAAC;IAC5E,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,2DAA2D;IAC3D,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,cAAc,EAAE,oBAAoB,CAAC;IACrC,YAAY,EAAE,kBAAkB,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,iBAAiB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzF,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,eAAe,EAAE,eAAe,CAAC;IACjC,yCAAyC;IACzC,KAAK,EAAE,UAAU,CAAC;IAClB,4GAA4G;IAC5G,UAAU,EAAE,UAAU,CAAC;IACvB,4GAA4G;IAC5G,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,qEAAqE;IACrE,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,kIAAkI;IAClI,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,YAAY;IAaX,OAAO,CAAC,QAAQ,CAAC,CAAC;IAZ9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAuE;IACrF,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEH,CAAC,EAAE,mBAAmB;IAqBnD,8CAA8C;IAC9C,IAAI,EAAE,IAAI,UAAU,GAAG,IAAI,CAAuB;IAClD,mFAAmF;IACnF,IAAI,UAAU,IAAI,UAAU,CAAiC;IAC7D,IAAI,UAAU,IAAI,eAAe,CAAyC;IAE1E,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAI1G,8GAA8G;IACxG,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IASpC;;;;OAIG;IACG,UAAU,CAAC,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,CAAC;IAEpF,QAAQ,CAAC,KAAK;QACZ,gEAAgE;uBACnD,OAAO,CAAC,YAAY,EAAE,CAAC;MACpC;IAEF,QAAQ,CAAC,KAAK;QACZ;;;WAGG;yBACoB,MAAM,SAAS;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC;YAAE,QAAQ,EAAE,cAAc,CAAC;YAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;SAAE,CAAC;0BA2B5H,MAAM;;;;QAI9B,0EAA0E;sBACtD,MAAM;;;;uBAIL,MAAM,MAAM,OAAO;;;;uBAKnB,MAAM,SAAS,OAAO;QAI3C,qFAAqF;2BAC5D,MAAM,UAAU,cAAc,SAAQ,MAAM,GAAG,OAAO;;;;sBAUjE,MAAM;MACpB;IAEF,mGAAmG;IAC7F,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAwBhF,QAAQ,CAAC,aAAa;mBACT,qBAAqB,KAAG,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;kBACjE,MAAM;QAChB,8EAA8E;qBACjE,MAAM,YAAY,MAAM;sBACvB,MAAM,SAAS,MAAM;;;;uBACpB,MAAM,MAAM;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;oBACvE,MAAM;;;;MAClB;IAEF,QAAQ,CAAC,QAAQ;+BACQ,MAAM,MAAM;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;+BACpF,MAAM,QAAQ,MAAM;iCAClB,MAAM;;;MAC/B;IAEF,sEAAsE;IACtE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;;;;IAC3E,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAE9D,QAAQ,CAAC,UAAU;yBACF,OAAO,CAAC,qBAAqB,EAAE,CAAC;sBACnC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACzC,+GAA+G;4BAC3F,MAAM,SAAQ,SAAS,GAAG,SAAS,GAAG,OAAO,KAAe,OAAO,CAAC,sBAAsB,CAAC;0BAC7F,MAAM,QAAQ,SAAS,GAAG,SAAS,GAAG,OAAO,uBAAuB,MAAM;;;;MAC5F;IAEF,QAAQ,CAAC,IAAI;QACX,4GAA4G;wBAC5F,0BAA0B,KAAG,OAAO,CAAC,wBAAwB,CAAC;4BAC1D,MAAM;MAC1B;IAIF,sFAAsF;YACxE,KAAK;YAQL,SAAS;IAOvB,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,OAAO;IA+Bf,4FAA4F;YAC9E,SAAS;IAiBvB,OAAO,CAAC,QAAQ;CAQjB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/esm/agent.js CHANGED
@@ -30,6 +30,10 @@ export class HainivaAgent {
30
30
  this.meDto = null;
31
31
  this.media = new Map();
32
32
  this.offs = [];
33
+ this.desk = {
34
+ /** A desk token for the embedded desk (`@hainiva/agent-sdk/embed` mountDesk / `<HainivaDesk/>` call this). */
35
+ session: () => this.guard(this.rest.deskSession()),
36
+ };
33
37
  this.rings = {
34
38
  /** Rings waiting for you now (also fed into the call state). */
35
39
  pending: () => this.syncRings(),
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
@@ -142,6 +142,16 @@ export interface AgentSessionDto {
142
142
  /** The event socket on the host the app reached; SDKs derive their own from their base URL. */
143
143
  wsUrl: string;
144
144
  }
145
+ /**
146
+ * POST /agent/v1/desk-session (201) — partner platform S4, the embeddable desk.
147
+ * A 15-minute token for the HAINIVA desk shown inside the partner's product,
148
+ * handed to the desk over postMessage only (never in a URL, never stored).
149
+ * Bound to the agent session it came from: ends when that session ends.
150
+ */
151
+ export interface AgentDeskSessionDto {
152
+ token: string;
153
+ expiresAt: string;
154
+ }
145
155
  /** POST /agent/v1/calls/:id/accept. `media` is null for a call without a room (chat). */
146
156
  export interface AgentAcceptDto {
147
157
  callId: string;