@mobileai/react-native 0.9.10 → 0.9.12
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 +11 -0
- package/lib/module/components/AIAgent.js +635 -39
- package/lib/module/components/AIAgent.js.map +1 -1
- package/lib/module/components/AgentChatBar.js +309 -13
- package/lib/module/components/AgentChatBar.js.map +1 -1
- package/lib/module/config/endpoints.js +22 -0
- package/lib/module/config/endpoints.js.map +1 -0
- package/lib/module/core/systemPrompt.js +126 -100
- package/lib/module/core/systemPrompt.js.map +1 -1
- package/lib/module/services/AudioInputService.js +9 -0
- package/lib/module/services/AudioInputService.js.map +1 -1
- package/lib/module/services/flags/FlagService.js +1 -1
- package/lib/module/services/flags/FlagService.js.map +1 -1
- package/lib/module/services/telemetry/TelemetryService.js +44 -15
- package/lib/module/services/telemetry/TelemetryService.js.map +1 -1
- package/lib/module/services/telemetry/device.js +80 -10
- package/lib/module/services/telemetry/device.js.map +1 -1
- package/lib/module/services/telemetry/deviceMetadata.js +10 -0
- package/lib/module/services/telemetry/deviceMetadata.js.map +1 -0
- package/lib/module/support/EscalationEventSource.js +168 -0
- package/lib/module/support/EscalationEventSource.js.map +1 -0
- package/lib/module/support/EscalationSocket.js +46 -7
- package/lib/module/support/EscalationSocket.js.map +1 -1
- package/lib/module/support/SupportChatModal.js +544 -0
- package/lib/module/support/SupportChatModal.js.map +1 -0
- package/lib/module/support/TicketStore.js +93 -0
- package/lib/module/support/TicketStore.js.map +1 -0
- package/lib/module/support/escalateTool.js +45 -13
- package/lib/module/support/escalateTool.js.map +1 -1
- package/lib/module/support/index.js +2 -0
- package/lib/module/support/index.js.map +1 -1
- package/lib/typescript/src/components/AIAgent.d.ts +24 -1
- package/lib/typescript/src/components/AIAgent.d.ts.map +1 -1
- package/lib/typescript/src/components/AgentChatBar.d.ts +24 -2
- package/lib/typescript/src/components/AgentChatBar.d.ts.map +1 -1
- package/lib/typescript/src/config/endpoints.d.ts +18 -0
- package/lib/typescript/src/config/endpoints.d.ts.map +1 -0
- package/lib/typescript/src/core/systemPrompt.d.ts +4 -13
- package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -1
- package/lib/typescript/src/core/types.d.ts +1 -1
- package/lib/typescript/src/core/types.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useAction.d.ts +2 -2
- package/lib/typescript/src/hooks/useAction.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/services/AudioInputService.d.ts.map +1 -1
- package/lib/typescript/src/services/telemetry/TelemetryService.d.ts +2 -1
- package/lib/typescript/src/services/telemetry/TelemetryService.d.ts.map +1 -1
- package/lib/typescript/src/services/telemetry/device.d.ts +15 -4
- package/lib/typescript/src/services/telemetry/device.d.ts.map +1 -1
- package/lib/typescript/src/services/telemetry/deviceMetadata.d.ts +6 -0
- package/lib/typescript/src/services/telemetry/deviceMetadata.d.ts.map +1 -0
- package/lib/typescript/src/support/EscalationEventSource.d.ts +38 -0
- package/lib/typescript/src/support/EscalationEventSource.d.ts.map +1 -0
- package/lib/typescript/src/support/EscalationSocket.d.ts +7 -1
- package/lib/typescript/src/support/EscalationSocket.d.ts.map +1 -1
- package/lib/typescript/src/support/SupportChatModal.d.ts +21 -0
- package/lib/typescript/src/support/SupportChatModal.d.ts.map +1 -0
- package/lib/typescript/src/support/TicketStore.d.ts +34 -0
- package/lib/typescript/src/support/TicketStore.d.ts.map +1 -0
- package/lib/typescript/src/support/escalateTool.d.ts +16 -1
- package/lib/typescript/src/support/escalateTool.d.ts.map +1 -1
- package/lib/typescript/src/support/index.d.ts +2 -1
- package/lib/typescript/src/support/index.d.ts.map +1 -1
- package/lib/typescript/src/support/types.d.ts +15 -0
- package/lib/typescript/src/support/types.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/components/AIAgent.tsx +622 -38
- package/src/components/AgentChatBar.tsx +348 -9
- package/src/config/endpoints.ts +22 -0
- package/src/core/systemPrompt.ts +126 -100
- package/src/core/types.ts +1 -1
- package/src/hooks/useAction.ts +2 -2
- package/src/index.ts +1 -0
- package/src/services/AudioInputService.ts +9 -0
- package/src/services/flags/FlagService.ts +1 -1
- package/src/services/telemetry/TelemetryService.ts +46 -14
- package/src/services/telemetry/device.ts +88 -11
- package/src/services/telemetry/deviceMetadata.ts +13 -0
- package/src/support/EscalationEventSource.ts +190 -0
- package/src/support/EscalationSocket.ts +47 -8
- package/src/support/SupportChatModal.tsx +563 -0
- package/src/support/TicketStore.ts +100 -0
- package/src/support/escalateTool.ts +53 -13
- package/src/support/index.ts +2 -0
- package/src/support/types.ts +14 -0
|
@@ -11,7 +11,11 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { EscalationSocket } from "./EscalationSocket.js";
|
|
14
|
-
|
|
14
|
+
import { ENDPOINTS } from "../config/endpoints.js";
|
|
15
|
+
import { getDeviceId } from "../services/telemetry/device.js";
|
|
16
|
+
import { getDeviceMetadata } from "../services/telemetry/deviceMetadata.js";
|
|
17
|
+
import { logger } from "../utils/logger.js";
|
|
18
|
+
const MOBILEAI_HOST = ENDPOINTS.escalation;
|
|
15
19
|
|
|
16
20
|
/** @deprecated Use createEscalateTool({ config, analyticsKey, getContext, getHistory }) */
|
|
17
21
|
|
|
@@ -32,7 +36,14 @@ export function createEscalateTool(depsOrConfig, legacyGetContext) {
|
|
|
32
36
|
analyticsKey,
|
|
33
37
|
getContext,
|
|
34
38
|
getHistory,
|
|
35
|
-
onHumanReply
|
|
39
|
+
onHumanReply,
|
|
40
|
+
onEscalationStarted,
|
|
41
|
+
onTypingChange,
|
|
42
|
+
onTicketClosed,
|
|
43
|
+
userContext,
|
|
44
|
+
pushToken,
|
|
45
|
+
pushTokenType,
|
|
46
|
+
getScreenFlow
|
|
36
47
|
} = deps;
|
|
37
48
|
|
|
38
49
|
// Determine effective provider
|
|
@@ -55,10 +66,11 @@ export function createEscalateTool(depsOrConfig, legacyGetContext) {
|
|
|
55
66
|
const context = getContext();
|
|
56
67
|
if (provider === 'mobileai') {
|
|
57
68
|
if (!analyticsKey) {
|
|
58
|
-
|
|
69
|
+
logger.warn('Escalation', 'provider=mobileai but no analyticsKey — falling back to custom');
|
|
59
70
|
} else {
|
|
60
71
|
try {
|
|
61
72
|
const history = getHistory().slice(-20); // last 20 messages for context
|
|
73
|
+
logger.info('Escalation', '★★★ Creating ticket — reason:', reason, '| deviceId:', getDeviceId());
|
|
62
74
|
const res = await fetch(`${MOBILEAI_HOST}/api/v1/escalations`, {
|
|
63
75
|
method: 'POST',
|
|
64
76
|
headers: {
|
|
@@ -69,7 +81,15 @@ export function createEscalateTool(depsOrConfig, legacyGetContext) {
|
|
|
69
81
|
reason,
|
|
70
82
|
screen: context.currentScreen,
|
|
71
83
|
history,
|
|
72
|
-
stepsBeforeEscalation: context.stepsBeforeEscalation
|
|
84
|
+
stepsBeforeEscalation: context.stepsBeforeEscalation,
|
|
85
|
+
userContext: {
|
|
86
|
+
...userContext,
|
|
87
|
+
device: getDeviceMetadata()
|
|
88
|
+
},
|
|
89
|
+
screenFlow: getScreenFlow?.() ?? [],
|
|
90
|
+
pushToken,
|
|
91
|
+
pushTokenType,
|
|
92
|
+
deviceId: getDeviceId()
|
|
73
93
|
})
|
|
74
94
|
});
|
|
75
95
|
if (res.ok) {
|
|
@@ -77,27 +97,39 @@ export function createEscalateTool(depsOrConfig, legacyGetContext) {
|
|
|
77
97
|
ticketId,
|
|
78
98
|
wsUrl
|
|
79
99
|
} = await res.json();
|
|
80
|
-
|
|
100
|
+
logger.info('Escalation', '★★★ Ticket created:', ticketId, '| wsUrl:', wsUrl);
|
|
81
101
|
|
|
82
102
|
// Connect WebSocket for real-time reply
|
|
83
103
|
socket?.disconnect();
|
|
84
104
|
socket = new EscalationSocket({
|
|
85
|
-
onReply: reply => {
|
|
86
|
-
|
|
87
|
-
onHumanReply?.(reply);
|
|
88
|
-
|
|
89
|
-
|
|
105
|
+
onReply: (reply, replyTicketId) => {
|
|
106
|
+
logger.info('Escalation', '★★★ Human reply for ticket', ticketId, ':', reply.substring(0, 80));
|
|
107
|
+
onHumanReply?.(reply, replyTicketId || ticketId);
|
|
108
|
+
},
|
|
109
|
+
onTypingChange: v => {
|
|
110
|
+
logger.info('Escalation', '★★★ Agent typing:', v);
|
|
111
|
+
onTypingChange?.(v);
|
|
112
|
+
},
|
|
113
|
+
onTicketClosed: closedTicketId => {
|
|
114
|
+
logger.info('Escalation', '★★★ Ticket closed:', ticketId);
|
|
115
|
+
onTicketClosed?.(closedTicketId || ticketId);
|
|
90
116
|
},
|
|
91
117
|
onError: err => {
|
|
92
|
-
|
|
118
|
+
logger.error('Escalation', '★★★ WebSocket error:', err);
|
|
93
119
|
}
|
|
94
120
|
});
|
|
95
121
|
socket.connect(wsUrl);
|
|
122
|
+
logger.info('Escalation', '★★★ WebSocket connecting...');
|
|
123
|
+
|
|
124
|
+
// Pass the socket to UI
|
|
125
|
+
logger.info('Escalation', '★★★ Calling onEscalationStarted for ticket:', ticketId);
|
|
126
|
+
onEscalationStarted?.(ticketId, socket);
|
|
127
|
+
logger.info('Escalation', '★★★ onEscalationStarted DONE');
|
|
96
128
|
} else {
|
|
97
|
-
|
|
129
|
+
logger.error('Escalation', 'Failed to create ticket:', res.status);
|
|
98
130
|
}
|
|
99
131
|
} catch (err) {
|
|
100
|
-
|
|
132
|
+
logger.error('Escalation', 'Network error:', err.message);
|
|
101
133
|
}
|
|
102
134
|
const message = config.escalationMessage ?? 'Connecting you to a human agent...';
|
|
103
135
|
return `ESCALATED: ${message}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EscalationSocket","MOBILEAI_HOST","createEscalateTool","depsOrConfig","legacyGetContext","deps","config","getContext","getHistory","analyticsKey","onHumanReply","provider","socket","name","description","parameters","reason","type","required","execute","args","String","context","
|
|
1
|
+
{"version":3,"names":["EscalationSocket","ENDPOINTS","getDeviceId","getDeviceMetadata","logger","MOBILEAI_HOST","escalation","createEscalateTool","depsOrConfig","legacyGetContext","deps","config","getContext","getHistory","analyticsKey","onHumanReply","onEscalationStarted","onTypingChange","onTicketClosed","userContext","pushToken","pushTokenType","getScreenFlow","provider","socket","name","description","parameters","reason","type","required","execute","args","String","context","warn","history","slice","info","res","fetch","method","headers","body","JSON","stringify","screen","currentScreen","stepsBeforeEscalation","device","screenFlow","deviceId","ok","ticketId","wsUrl","json","disconnect","onReply","reply","replyTicketId","substring","v","closedTicketId","onError","err","error","connect","status","message","escalationMessage","escalationContext","conversationSummary","originalQuery","onEscalate"],"sourceRoot":"../../../src","sources":["support/escalateTool.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,8 @@ export { buildSupportPrompt } from "./supportPrompt.js";
|
|
|
12
12
|
// Escalation tool + WebSocket manager
|
|
13
13
|
export { createEscalateTool } from "./escalateTool.js";
|
|
14
14
|
export { EscalationSocket } from "./EscalationSocket.js";
|
|
15
|
+
export { EscalationEventSource } from "./EscalationEventSource.js";
|
|
16
|
+
|
|
15
17
|
// UI Components
|
|
16
18
|
export { SupportGreeting } from "./SupportGreeting.js";
|
|
17
19
|
export { CSATSurvey } from "./CSATSurvey.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["buildSupportPrompt","createEscalateTool","EscalationSocket","SupportGreeting","CSATSurvey"],"sourceRoot":"../../../src","sources":["support/index.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA;;
|
|
1
|
+
{"version":3,"names":["buildSupportPrompt","createEscalateTool","EscalationSocket","EscalationEventSource","SupportGreeting","CSATSurvey"],"sourceRoot":"../../../src","sources":["support/index.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA;;AAYA;AACA,SAASA,kBAAkB,QAAQ,oBAAiB;;AAEpD;AACA,SAASC,kBAAkB,QAAQ,mBAAgB;AACnD,SAASC,gBAAgB,QAAQ,uBAAoB;AAErD,SAASC,qBAAqB,QAAQ,4BAAyB;;AAE/D;AACA,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,UAAU,QAAQ,iBAAc","ignoreList":[]}
|
|
@@ -150,7 +150,30 @@ interface AIAgentProps {
|
|
|
150
150
|
* Proactive agent configuration (detects user hesitation)
|
|
151
151
|
*/
|
|
152
152
|
proactiveHelp?: ProactiveHelpConfig;
|
|
153
|
+
/**
|
|
154
|
+
* Identity of the logged-in user.
|
|
155
|
+
* If provided, this enforces "one ticket per user" and shows the user profile
|
|
156
|
+
* in the Dashboard (name, email, plan, etc.).
|
|
157
|
+
*/
|
|
158
|
+
userContext?: {
|
|
159
|
+
userId?: string;
|
|
160
|
+
name?: string;
|
|
161
|
+
email?: string;
|
|
162
|
+
phone?: string;
|
|
163
|
+
plan?: string;
|
|
164
|
+
custom?: Record<string, string | number | boolean>;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Device push token for offline support replies.
|
|
168
|
+
* Use '@react-native-firebase/messaging' or 'expo-notifications' to get this.
|
|
169
|
+
*/
|
|
170
|
+
pushToken?: string;
|
|
171
|
+
/**
|
|
172
|
+
* The type of push token provided.
|
|
173
|
+
* "fcm" is recommended for universal bare/Expo support.
|
|
174
|
+
*/
|
|
175
|
+
pushTokenType?: 'fcm' | 'expo' | 'apns';
|
|
153
176
|
}
|
|
154
|
-
export declare function AIAgent({ apiKey, proxyUrl, proxyHeaders, voiceProxyUrl, voiceProxyHeaders, provider: providerName, model, navRef, maxSteps, showChatBar, children, onResult, interactiveBlacklist, interactiveWhitelist, onBeforeStep, onAfterStep, onBeforeTask, onAfterTask, transformScreenContent, customTools, instructions, stepDelay, mcpServerUrl, router, pathname, enableVoice, onTokenUsage, debug, knowledgeBase, knowledgeMaxTokens, enableUIControl, accentColor, theme, screenMap, useScreenMap, maxTokenBudget, maxCostUSD, analyticsKey, analyticsProxyUrl, analyticsProxyHeaders, proactiveHelp, }: AIAgentProps): import("react/jsx-runtime").JSX.Element;
|
|
177
|
+
export declare function AIAgent({ apiKey, proxyUrl, proxyHeaders, voiceProxyUrl, voiceProxyHeaders, provider: providerName, model, navRef, maxSteps, showChatBar, children, onResult, interactiveBlacklist, interactiveWhitelist, onBeforeStep, onAfterStep, onBeforeTask, onAfterTask, transformScreenContent, customTools, instructions, stepDelay, mcpServerUrl, router, pathname, enableVoice, onTokenUsage, debug, knowledgeBase, knowledgeMaxTokens, enableUIControl, accentColor, theme, screenMap, useScreenMap, maxTokenBudget, maxCostUSD, analyticsKey, analyticsProxyUrl, analyticsProxyHeaders, proactiveHelp, userContext, pushToken, pushTokenType, }: AIAgentProps): import("react/jsx-runtime").JSX.Element;
|
|
155
178
|
export {};
|
|
156
179
|
//# sourceMappingURL=AIAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIAgent.d.ts","sourceRoot":"","sources":["../../../../src/components/AIAgent.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAMN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AIAgent.d.ts","sourceRoot":"","sources":["../../../../src/components/AIAgent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Supports two modes: Text and Voice.
|
|
4
4
|
* Does not block underlying UI natively.
|
|
5
5
|
*/
|
|
6
|
-
import type { ExecutionResult, AgentMode, ChatBarTheme } from '../core/types';
|
|
6
|
+
import type { ExecutionResult, AgentMode, ChatBarTheme, AIMessage } from '../core/types';
|
|
7
|
+
import type { SupportTicket } from '../support/types';
|
|
7
8
|
interface AgentChatBarProps {
|
|
8
9
|
onSend: (message: string) => void;
|
|
9
10
|
isThinking: boolean;
|
|
@@ -24,11 +25,32 @@ interface AgentChatBarProps {
|
|
|
24
25
|
isAISpeaking?: boolean;
|
|
25
26
|
/** Voice WebSocket is connected */
|
|
26
27
|
isVoiceConnected?: boolean;
|
|
28
|
+
/** Live human agent is typing */
|
|
29
|
+
/** Live human agent is typing */
|
|
30
|
+
isAgentTyping?: boolean;
|
|
27
31
|
/** Full session cleanup (stop mic, audio, WebSocket, live mode) */
|
|
28
32
|
onStopSession?: () => void;
|
|
29
33
|
/** Color theme overrides */
|
|
30
34
|
theme?: ChatBarTheme;
|
|
35
|
+
/** Active support tickets (for human mode) */
|
|
36
|
+
tickets?: SupportTicket[];
|
|
37
|
+
/** Currently selected ticket ID */
|
|
38
|
+
selectedTicketId?: string | null;
|
|
39
|
+
/** Callback when user selects a ticket */
|
|
40
|
+
onTicketSelect?: (ticketId: string) => void;
|
|
41
|
+
/** Callback when user goes back to ticket list */
|
|
42
|
+
onBackToTickets?: () => void;
|
|
43
|
+
/** Incremented to trigger auto-expand */
|
|
44
|
+
autoExpandTrigger?: number;
|
|
45
|
+
/** Chat messages for selected ticket */
|
|
46
|
+
chatMessages?: AIMessage[];
|
|
47
|
+
/** The user's original typed query — shown in the result bubble instead of agent reasoning */
|
|
48
|
+
lastUserMessage?: string | null;
|
|
49
|
+
/** Unread message counts per ticket (ticketId -> count) */
|
|
50
|
+
unreadCounts?: Record<string, number>;
|
|
51
|
+
/** Total unread messages across all tickets */
|
|
52
|
+
totalUnread?: number;
|
|
31
53
|
}
|
|
32
|
-
export declare function AgentChatBar({ onSend, isThinking, lastResult, language, onDismiss, availableModes, mode, onModeChange, onMicToggle, onSpeakerToggle, isMicActive, isSpeakerMuted, isAISpeaking, isVoiceConnected, onStopSession, theme, }: AgentChatBarProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
export declare function AgentChatBar({ onSend, isThinking, lastResult, language, onDismiss, availableModes, mode, onModeChange, onMicToggle, onSpeakerToggle, isMicActive, isSpeakerMuted, isAISpeaking, isVoiceConnected, onStopSession, theme, tickets, selectedTicketId, onTicketSelect, autoExpandTrigger, lastUserMessage, unreadCounts, totalUnread, }: AgentChatBarProps): import("react/jsx-runtime").JSX.Element;
|
|
33
55
|
export {};
|
|
34
56
|
//# sourceMappingURL=AgentChatBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentChatBar.d.ts","sourceRoot":"","sources":["../../../../src/components/AgentChatBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentChatBar.d.ts","sourceRoot":"","sources":["../../../../src/components/AgentChatBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAUzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,UAAU,iBAAiB;IACzB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAC7B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,qBAAqB;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iCAAiC;IACjC,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAuVD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,cAAyB,EACzB,IAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAmB,EACnB,cAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,OAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,iBAAqB,EACrB,eAAe,EACf,YAAiB,EACjB,WAAe,GAChB,EAAE,iBAAiB,2CA8NnB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Endpoint Configuration
|
|
3
|
+
*
|
|
4
|
+
* All MobileAI backend URLs live here.
|
|
5
|
+
* Change these to point to a self-hosted or staging server.
|
|
6
|
+
*
|
|
7
|
+
* Enterprise customers: use the `analyticsProxyUrl` prop on <AIAgent>
|
|
8
|
+
* to route telemetry through your own backend without touching this file.
|
|
9
|
+
*/
|
|
10
|
+
export declare const ENDPOINTS: {
|
|
11
|
+
/** Telemetry event ingest — receives batched SDK events */
|
|
12
|
+
readonly telemetryIngest: "http://localhost:3001/api/v1/events";
|
|
13
|
+
/** Feature flag sync — fetches remote flags for this analyticsKey */
|
|
14
|
+
readonly featureFlags: "http://localhost:3001/api/v1/flags";
|
|
15
|
+
/** Live agent escalation (support handoff) */
|
|
16
|
+
readonly escalation: "http://localhost:3001";
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../../src/config/endpoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,eAAO,MAAM,SAAS;IACpB,2DAA2D;;IAG3D,qEAAqE;;IAGrE,8CAA8C;;CAEtC,CAAC"}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* System prompt for the AI agent.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Shared fragments are extracted as constants at the top so that all
|
|
5
|
+
* three prompt builders (text agent, voice agent, knowledge-only) stay
|
|
6
|
+
* in sync — one change propagates everywhere. The prompt uses XML-style
|
|
7
|
+
* tags to give the LLM clear, structured instructions.
|
|
7
8
|
*/
|
|
8
9
|
export declare function buildSystemPrompt(language: string, hasKnowledge?: boolean): string;
|
|
9
|
-
/**
|
|
10
|
-
* Voice-adapted system prompt for the Gemini Live API.
|
|
11
|
-
*
|
|
12
|
-
* Uses the same core rules/tools/screen format as text mode (buildSystemPrompt)
|
|
13
|
-
* but adapted for voice interaction:
|
|
14
|
-
* - No agent-loop directives (no "MUST call agent_step on every step")
|
|
15
|
-
* - No agent_history/user_request references (voice is conversational)
|
|
16
|
-
* - Explicit "wait for user voice command" guardrails
|
|
17
|
-
* - Voice-specific UX (concise spoken responses)
|
|
18
|
-
*/
|
|
19
10
|
export declare function buildVoiceSystemPrompt(language: string, userInstructions?: string, hasKnowledge?: boolean): string;
|
|
20
11
|
/**
|
|
21
12
|
* Build a knowledge-only system prompt (no UI control tools).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../../../src/core/systemPrompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../../../src/core/systemPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsFH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,MAAM,CA2JhF;AAID,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,EACzB,YAAY,UAAQ,GACnB,MAAM,CAoFR;AAID;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,EACrB,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAqCR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core types for the React Native AI SDK.
|
|
3
3
|
*/
|
|
4
|
-
export type AgentMode = 'text' | 'voice';
|
|
4
|
+
export type AgentMode = 'text' | 'voice' | 'human';
|
|
5
5
|
export type AIProviderName = 'gemini' | 'openai';
|
|
6
6
|
export type ElementType = 'pressable' | 'text-input' | 'switch' | 'scrollable' | 'slider' | 'picker' | 'date-picker';
|
|
7
7
|
export interface InteractiveElement {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,9 +21,9 @@ export interface AgentContextValue {
|
|
|
21
21
|
lastResult: ExecutionResult | null;
|
|
22
22
|
/** The full conversation history for custom chat UIs. */
|
|
23
23
|
messages: AIMessage[];
|
|
24
|
-
/** Clear
|
|
24
|
+
/** Clear conversation history. */
|
|
25
25
|
clearMessages: () => void;
|
|
26
|
-
/** Cancel
|
|
26
|
+
/** Cancel currently running task. */
|
|
27
27
|
cancel: () => void;
|
|
28
28
|
}
|
|
29
29
|
export declare const AgentContext: React.Context<AgentContextValue>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAction.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAIhE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5F,kFAAkF;IAClF,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,yDAAyD;IACzD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"useAction.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAIhE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5F,kFAAkF;IAClF,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,yDAAyD;IACzD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,kCAAkC;IAClC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,qCAAqC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAaD,eAAO,MAAM,YAAY,kCAAoD,CAAC;AAG9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,EACvD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,EAC3C,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,GAC1B,IAAI,CA0BN;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE;IAC9B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C;IA2BG,sCAAsC;oBALL,MAAM;IAOvC,gDAAgD;;IAEhD,0DAA0D;;IAE1D,8CAA8C;;IAE9C,qCAAqC;;IAErC,sCAAsC;yBAtJnB,IAAI;IAwJvB,yFAAyF;kBAtJ7E,IAAI;EAyJnB"}
|
|
@@ -22,5 +22,5 @@ export type { AgentConfig, AgentMode, ExecutionResult, InteractiveElement, Dehyd
|
|
|
22
22
|
export type { VoiceServiceConfig, VoiceServiceCallbacks, VoiceStatus, } from './services/VoiceService';
|
|
23
23
|
export type { TelemetryConfig, TelemetryEvent, } from './services/telemetry';
|
|
24
24
|
export { SupportGreeting, CSATSurvey, buildSupportPrompt, createEscalateTool, EscalationSocket } from './support';
|
|
25
|
-
export type { SupportModeConfig, QuickReply, EscalationConfig, EscalationContext, CSATConfig, CSATRating, BusinessHoursConfig, } from './support';
|
|
25
|
+
export type { SupportModeConfig, QuickReply, EscalationConfig, EscalationContext, CSATConfig, CSATRating, BusinessHoursConfig, SupportTicket, } from './support';
|
|
26
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,YAAY,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElH,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,YAAY,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElH,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,aAAa,GACd,MAAM,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioInputService.d.ts","sourceRoot":"","sources":["../../../../src/services/AudioInputService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,KAAK,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAIvD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAa;IAK7B,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAM;gBAE9C,MAAM,EAAE,gBAAgB;IAM9B,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioInputService.d.ts","sourceRoot":"","sources":["../../../../src/services/AudioInputService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,KAAK,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAIvD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAa;IAK7B,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAM;gBAE9C,MAAM,EAAE,gBAAgB;IAM9B,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAiIzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B;;;;OAIG;YACW,eAAe;IAa7B,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,aAAa,IAAI,eAAe,CAEnC;CACF"}
|
|
@@ -14,11 +14,12 @@ export declare class TelemetryService {
|
|
|
14
14
|
private config;
|
|
15
15
|
private sessionId;
|
|
16
16
|
private currentScreen;
|
|
17
|
+
private screenFlow;
|
|
17
18
|
private flushTimer;
|
|
18
19
|
private isFlushing;
|
|
19
20
|
private appStateSubscription;
|
|
20
|
-
/** Public getter for the current screen, used by auto-capture utilities */
|
|
21
21
|
get screen(): string;
|
|
22
|
+
getScreenFlow(): string[];
|
|
22
23
|
/**
|
|
23
24
|
* True while the AI agent is executing a tool (tap, type, navigate, etc.).
|
|
24
25
|
* The touch interceptor checks this flag to avoid double-counting AI actions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryService.d.ts","sourceRoot":"","sources":["../../../../../src/services/telemetry/TelemetryService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"TelemetryService.d.ts","sourceRoot":"","sources":["../../../../../src/services/telemetry/TelemetryService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsDnD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAA6D;IAEzF,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,aAAa,UAAS;IAEf,KAAK,EAAE,WAAW,CAAC;IAE1B,4DAA4D;IAC5D,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;gBAIzB,MAAM,EAAE,eAAe;IAgBnC,kDAAkD;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC5B,mDAAmD;IAC7C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B,sCAAsC;IACtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI;IAmC7D,8DAA8D;IAC9D,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAenC,0CAA0C;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C5B,oEAAoE;YACtD,YAAY;IAU1B,kDAAkD;YACpC,YAAY;IAkB1B,uCAAuC;IACvC,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Persistent device ID — a UUID generated on first launch and stored in AsyncStorage.
|
|
3
|
+
* Unique per app install, survives across sessions.
|
|
4
|
+
*
|
|
5
|
+
* AsyncStorage is an optional peer dependency — if not installed, the ID
|
|
6
|
+
* persists only in memory for the current session.
|
|
5
7
|
*/
|
|
6
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Returns the persistent device ID synchronously (from cache).
|
|
10
|
+
* Returns null if not yet initialized.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getDeviceId(): string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Initializes or retrieves the persistent device ID.
|
|
15
|
+
* Call once on app startup. Subsequent getDeviceId() calls are synchronous.
|
|
16
|
+
*/
|
|
17
|
+
export declare function initDeviceId(): Promise<string>;
|
|
7
18
|
//# sourceMappingURL=device.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../../../src/services/telemetry/device.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../../../src/services/telemetry/device.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8CH;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAE3C;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CA4BpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/services/telemetry/deviceMetadata.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EscalationEventSource — SSE client using fetch + ReadableStream.
|
|
3
|
+
*
|
|
4
|
+
* Uses only the fetch API (available in all React Native runtimes)
|
|
5
|
+
* to consume Server-Sent Events — no EventSource polyfill needed.
|
|
6
|
+
* Provides a reliable, auto-reconnecting channel for server-push
|
|
7
|
+
* events like `ticket_closed` that complements the bidirectional
|
|
8
|
+
* WebSocket used for chat.
|
|
9
|
+
*
|
|
10
|
+
* Lifecycle:
|
|
11
|
+
* 1. SDK calls connect() → fetch with streaming response
|
|
12
|
+
* 2. Server holds connection open, pushes `ticket_closed` when agent resolves
|
|
13
|
+
* 3. On disconnect, auto-reconnects with exponential backoff (max 5 attempts)
|
|
14
|
+
* 4. If ticket is already closed, server responds immediately with the event
|
|
15
|
+
*/
|
|
16
|
+
export interface EscalationEventSourceOptions {
|
|
17
|
+
url: string;
|
|
18
|
+
onTicketClosed?: (ticketId: string) => void;
|
|
19
|
+
onConnected?: (ticketId: string) => void;
|
|
20
|
+
onError?: (error: Error) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare class EscalationEventSource {
|
|
23
|
+
private abortController;
|
|
24
|
+
private intentionalClose;
|
|
25
|
+
private reconnectAttempts;
|
|
26
|
+
private reconnectTimer;
|
|
27
|
+
private readonly maxReconnectAttempts;
|
|
28
|
+
private readonly options;
|
|
29
|
+
constructor(options: EscalationEventSourceOptions);
|
|
30
|
+
connect(): void;
|
|
31
|
+
disconnect(): void;
|
|
32
|
+
private openConnection;
|
|
33
|
+
private readStream;
|
|
34
|
+
private readFullResponse;
|
|
35
|
+
private handleEvent;
|
|
36
|
+
private scheduleReconnect;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=EscalationEventSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EscalationEventSource.d.ts","sourceRoot":"","sources":["../../../../src/support/EscalationEventSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAE3C,OAAO,EAAE,4BAA4B;IAIjD,OAAO,IAAI,IAAI;IAMf,UAAU,IAAI,IAAI;YAYJ,cAAc;YAkCd,UAAU;YAwCV,gBAAgB;IA2B9B,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,iBAAiB;CAe1B"}
|
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
* - Server heartbeat pings (type: 'ping') — acknowledged silently
|
|
14
14
|
* - Auto-reconnect on unexpected close (max 3 attempts, exponential backoff)
|
|
15
15
|
*/
|
|
16
|
-
export type SocketReplyHandler = (reply: string) => void;
|
|
16
|
+
export type SocketReplyHandler = (reply: string, ticketId?: string) => void;
|
|
17
17
|
interface EscalationSocketOptions {
|
|
18
18
|
onReply: SocketReplyHandler;
|
|
19
19
|
onError?: (error: Event) => void;
|
|
20
|
+
onTypingChange?: (isTyping: boolean) => void;
|
|
21
|
+
onTicketClosed?: (ticketId?: string) => void;
|
|
20
22
|
maxReconnectAttempts?: number;
|
|
21
23
|
}
|
|
22
24
|
export declare class EscalationSocket {
|
|
@@ -27,9 +29,13 @@ export declare class EscalationSocket {
|
|
|
27
29
|
private intentionalClose;
|
|
28
30
|
private readonly onReply;
|
|
29
31
|
private readonly onError?;
|
|
32
|
+
private readonly onTypingChange?;
|
|
33
|
+
private readonly onTicketClosed?;
|
|
30
34
|
private readonly maxReconnectAttempts;
|
|
31
35
|
constructor(options: EscalationSocketOptions);
|
|
32
36
|
connect(wsUrl: string): void;
|
|
37
|
+
sendText(text: string): boolean;
|
|
38
|
+
sendTypingStatus(isTyping: boolean): boolean;
|
|
33
39
|
disconnect(): void;
|
|
34
40
|
private openConnection;
|
|
35
41
|
private scheduleReconnect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EscalationSocket.d.ts","sourceRoot":"","sources":["../../../../src/support/EscalationSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"EscalationSocket.d.ts","sourceRoot":"","sources":["../../../../src/support/EscalationSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5E,UAAU,uBAAuB;IAC/B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;gBAElC,OAAO,EAAE,uBAAuB;IAQ5C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ/B,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO;IAQ5C,UAAU,IAAI,IAAI;IAYlB,OAAO,CAAC,cAAc;IAwDtB,OAAO,CAAC,iBAAiB;CAc1B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SupportChatModal — full-screen chat modal for human support conversations.
|
|
3
|
+
* Shows message history (bubbles with timestamps/avatars), typing indicator, and reply input.
|
|
4
|
+
* Supports native swipe-down-to-dismiss on iOS pageSheet.
|
|
5
|
+
*/
|
|
6
|
+
import type { AIMessage } from '../core/types';
|
|
7
|
+
interface SupportChatModalProps {
|
|
8
|
+
visible: boolean;
|
|
9
|
+
messages: AIMessage[];
|
|
10
|
+
onSend: (message: string) => void;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
isAgentTyping?: boolean;
|
|
13
|
+
isThinking?: boolean;
|
|
14
|
+
/** Optional: externally controlled scroll trigger. Pass when messages update externally. */
|
|
15
|
+
scrollToEndTrigger?: number;
|
|
16
|
+
/** Ticket status — when 'closed' or 'resolved', input is hidden and a banner is shown. */
|
|
17
|
+
ticketStatus?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function SupportChatModal({ visible, messages, onSend, onClose, isAgentTyping, isThinking, scrollToEndTrigger, ticketStatus, }: SupportChatModalProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=SupportChatModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupportChatModal.d.ts","sourceRoot":"","sources":["../../../../src/support/SupportChatModal.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK/C,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4FAA4F;IAC5F,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4CD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,aAAqB,EACrB,UAAkB,EAClB,kBAAsB,EACtB,YAAY,GACb,EAAE,qBAAqB,2CAoLvB"}
|