@mobileai/react-native 0.9.0 → 0.9.2

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 (173) hide show
  1. package/README.md +121 -0
  2. package/lib/module/components/AIAgent.js +248 -53
  3. package/lib/module/components/AIAgent.js.map +1 -1
  4. package/lib/module/components/AIZone.js +140 -0
  5. package/lib/module/components/AIZone.js.map +1 -0
  6. package/lib/module/components/AgentErrorBoundary.js +9 -0
  7. package/lib/module/components/AgentErrorBoundary.js.map +1 -1
  8. package/lib/module/components/HighlightOverlay.js +138 -0
  9. package/lib/module/components/HighlightOverlay.js.map +1 -0
  10. package/lib/module/components/ProactiveHint.js +138 -0
  11. package/lib/module/components/ProactiveHint.js.map +1 -0
  12. package/lib/module/components/cards/InfoCard.js +65 -0
  13. package/lib/module/components/cards/InfoCard.js.map +1 -0
  14. package/lib/module/components/cards/ReviewSummary.js +74 -0
  15. package/lib/module/components/cards/ReviewSummary.js.map +1 -0
  16. package/lib/module/core/AgentRuntime.js +16 -3
  17. package/lib/module/core/AgentRuntime.js.map +1 -1
  18. package/lib/module/core/FiberTreeWalker.js +62 -85
  19. package/lib/module/core/FiberTreeWalker.js.map +1 -1
  20. package/lib/module/core/IdleDetector.js +51 -0
  21. package/lib/module/core/IdleDetector.js.map +1 -0
  22. package/lib/module/core/ZoneRegistry.js +47 -0
  23. package/lib/module/core/ZoneRegistry.js.map +1 -0
  24. package/lib/module/core/systemPrompt.js +2 -0
  25. package/lib/module/core/systemPrompt.js.map +1 -1
  26. package/lib/module/index.js +21 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/services/AudioOutputService.js +10 -0
  29. package/lib/module/services/AudioOutputService.js.map +1 -1
  30. package/lib/module/services/flags/FlagService.js +117 -0
  31. package/lib/module/services/flags/FlagService.js.map +1 -0
  32. package/lib/module/services/telemetry/MobileAI.js +66 -0
  33. package/lib/module/services/telemetry/MobileAI.js.map +1 -0
  34. package/lib/module/services/telemetry/PiiScrubber.js +17 -0
  35. package/lib/module/services/telemetry/PiiScrubber.js.map +1 -0
  36. package/lib/module/services/telemetry/TelemetryService.js +260 -0
  37. package/lib/module/services/telemetry/TelemetryService.js.map +1 -0
  38. package/lib/module/services/telemetry/TouchAutoCapture.js +159 -0
  39. package/lib/module/services/telemetry/TouchAutoCapture.js.map +1 -0
  40. package/lib/module/services/telemetry/device.js +19 -0
  41. package/lib/module/services/telemetry/device.js.map +1 -0
  42. package/lib/module/services/telemetry/index.js +9 -0
  43. package/lib/module/services/telemetry/index.js.map +1 -0
  44. package/lib/module/services/telemetry/types.js +2 -0
  45. package/lib/module/services/telemetry/types.js.map +1 -0
  46. package/lib/module/support/CSATSurvey.js +273 -0
  47. package/lib/module/support/CSATSurvey.js.map +1 -0
  48. package/lib/module/support/EscalationSocket.js +92 -0
  49. package/lib/module/support/EscalationSocket.js.map +1 -0
  50. package/lib/module/support/SupportGreeting.js +142 -0
  51. package/lib/module/support/SupportGreeting.js.map +1 -0
  52. package/lib/module/support/escalateTool.js +120 -0
  53. package/lib/module/support/escalateTool.js.map +1 -0
  54. package/lib/module/support/index.js +18 -0
  55. package/lib/module/support/index.js.map +1 -0
  56. package/lib/module/support/supportPrompt.js +47 -0
  57. package/lib/module/support/supportPrompt.js.map +1 -0
  58. package/lib/module/support/types.js +2 -0
  59. package/lib/module/support/types.js.map +1 -0
  60. package/lib/module/tools/guideTool.js +61 -0
  61. package/lib/module/tools/guideTool.js.map +1 -0
  62. package/lib/module/tools/index.js +3 -0
  63. package/lib/module/tools/index.js.map +1 -1
  64. package/lib/module/tools/restoreTool.js +31 -0
  65. package/lib/module/tools/restoreTool.js.map +1 -0
  66. package/lib/module/tools/simplifyTool.js +31 -0
  67. package/lib/module/tools/simplifyTool.js.map +1 -0
  68. package/lib/module/types/jsx.d.js +4 -0
  69. package/lib/module/types/jsx.d.js.map +1 -0
  70. package/lib/typescript/src/components/AIAgent.d.ts +21 -2
  71. package/lib/typescript/src/components/AIAgent.d.ts.map +1 -1
  72. package/lib/typescript/src/components/AIZone.d.ts +16 -0
  73. package/lib/typescript/src/components/AIZone.d.ts.map +1 -0
  74. package/lib/typescript/src/components/AgentErrorBoundary.d.ts +1 -0
  75. package/lib/typescript/src/components/AgentErrorBoundary.d.ts.map +1 -1
  76. package/lib/typescript/src/components/HighlightOverlay.d.ts +10 -0
  77. package/lib/typescript/src/components/HighlightOverlay.d.ts.map +1 -0
  78. package/lib/typescript/src/components/ProactiveHint.d.ts +10 -0
  79. package/lib/typescript/src/components/ProactiveHint.d.ts.map +1 -0
  80. package/lib/typescript/src/components/cards/InfoCard.d.ts +19 -0
  81. package/lib/typescript/src/components/cards/InfoCard.d.ts.map +1 -0
  82. package/lib/typescript/src/components/cards/ReviewSummary.d.ts +19 -0
  83. package/lib/typescript/src/components/cards/ReviewSummary.d.ts.map +1 -0
  84. package/lib/typescript/src/core/AgentRuntime.d.ts +1 -0
  85. package/lib/typescript/src/core/AgentRuntime.d.ts.map +1 -1
  86. package/lib/typescript/src/core/FiberTreeWalker.d.ts.map +1 -1
  87. package/lib/typescript/src/core/IdleDetector.d.ts +27 -0
  88. package/lib/typescript/src/core/IdleDetector.d.ts.map +1 -0
  89. package/lib/typescript/src/core/ZoneRegistry.d.ts +13 -0
  90. package/lib/typescript/src/core/ZoneRegistry.d.ts.map +1 -0
  91. package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -1
  92. package/lib/typescript/src/core/types.d.ts +54 -0
  93. package/lib/typescript/src/core/types.d.ts.map +1 -1
  94. package/lib/typescript/src/index.d.ts +5 -0
  95. package/lib/typescript/src/index.d.ts.map +1 -1
  96. package/lib/typescript/src/services/AudioOutputService.d.ts.map +1 -1
  97. package/lib/typescript/src/services/flags/FlagService.d.ts +25 -0
  98. package/lib/typescript/src/services/flags/FlagService.d.ts.map +1 -0
  99. package/lib/typescript/src/services/telemetry/MobileAI.d.ts +38 -0
  100. package/lib/typescript/src/services/telemetry/MobileAI.d.ts.map +1 -0
  101. package/lib/typescript/src/services/telemetry/PiiScrubber.d.ts +6 -0
  102. package/lib/typescript/src/services/telemetry/PiiScrubber.d.ts.map +1 -0
  103. package/lib/typescript/src/services/telemetry/TelemetryService.d.ts +49 -0
  104. package/lib/typescript/src/services/telemetry/TelemetryService.d.ts.map +1 -0
  105. package/lib/typescript/src/services/telemetry/TouchAutoCapture.d.ts +28 -0
  106. package/lib/typescript/src/services/telemetry/TouchAutoCapture.d.ts.map +1 -0
  107. package/lib/typescript/src/services/telemetry/device.d.ts +7 -0
  108. package/lib/typescript/src/services/telemetry/device.d.ts.map +1 -0
  109. package/lib/typescript/src/services/telemetry/index.d.ts +7 -0
  110. package/lib/typescript/src/services/telemetry/index.d.ts.map +1 -0
  111. package/lib/typescript/src/services/telemetry/types.d.ts +50 -0
  112. package/lib/typescript/src/services/telemetry/types.d.ts.map +1 -0
  113. package/lib/typescript/src/support/CSATSurvey.d.ts +20 -0
  114. package/lib/typescript/src/support/CSATSurvey.d.ts.map +1 -0
  115. package/lib/typescript/src/support/EscalationSocket.d.ts +38 -0
  116. package/lib/typescript/src/support/EscalationSocket.d.ts.map +1 -0
  117. package/lib/typescript/src/support/SupportGreeting.d.ts +19 -0
  118. package/lib/typescript/src/support/SupportGreeting.d.ts.map +1 -0
  119. package/lib/typescript/src/support/escalateTool.d.ts +25 -0
  120. package/lib/typescript/src/support/escalateTool.d.ts.map +1 -0
  121. package/lib/typescript/src/support/index.d.ts +11 -0
  122. package/lib/typescript/src/support/index.d.ts.map +1 -0
  123. package/lib/typescript/src/support/supportPrompt.d.ts +12 -0
  124. package/lib/typescript/src/support/supportPrompt.d.ts.map +1 -0
  125. package/lib/typescript/src/support/types.d.ts +114 -0
  126. package/lib/typescript/src/support/types.d.ts.map +1 -0
  127. package/lib/typescript/src/tools/guideTool.d.ts +4 -0
  128. package/lib/typescript/src/tools/guideTool.d.ts.map +1 -0
  129. package/lib/typescript/src/tools/index.d.ts +3 -0
  130. package/lib/typescript/src/tools/index.d.ts.map +1 -1
  131. package/lib/typescript/src/tools/restoreTool.d.ts +3 -0
  132. package/lib/typescript/src/tools/restoreTool.d.ts.map +1 -0
  133. package/lib/typescript/src/tools/simplifyTool.d.ts +3 -0
  134. package/lib/typescript/src/tools/simplifyTool.d.ts.map +1 -0
  135. package/lib/typescript/src/tools/types.d.ts +2 -0
  136. package/lib/typescript/src/tools/types.d.ts.map +1 -1
  137. package/package.json +5 -1
  138. package/src/components/AIAgent.tsx +253 -15
  139. package/src/components/AIZone.tsx +147 -0
  140. package/src/components/AgentErrorBoundary.tsx +10 -0
  141. package/src/components/HighlightOverlay.tsx +136 -0
  142. package/src/components/ProactiveHint.tsx +145 -0
  143. package/src/components/cards/InfoCard.tsx +58 -0
  144. package/src/components/cards/ReviewSummary.tsx +76 -0
  145. package/src/core/AgentRuntime.ts +18 -0
  146. package/src/core/FiberTreeWalker.ts +71 -93
  147. package/src/core/IdleDetector.ts +72 -0
  148. package/src/core/ZoneRegistry.ts +44 -0
  149. package/src/core/systemPrompt.ts +2 -0
  150. package/src/core/types.ts +60 -0
  151. package/src/index.ts +31 -0
  152. package/src/services/AudioOutputService.ts +13 -0
  153. package/src/services/flags/FlagService.ts +137 -0
  154. package/src/services/telemetry/MobileAI.ts +66 -0
  155. package/src/services/telemetry/PiiScrubber.ts +17 -0
  156. package/src/services/telemetry/TelemetryService.ts +291 -0
  157. package/src/services/telemetry/TouchAutoCapture.ts +165 -0
  158. package/src/services/telemetry/device.ts +16 -0
  159. package/src/services/telemetry/index.ts +13 -0
  160. package/src/services/telemetry/types.ts +75 -0
  161. package/src/support/CSATSurvey.tsx +304 -0
  162. package/src/support/EscalationSocket.ts +113 -0
  163. package/src/support/SupportGreeting.tsx +161 -0
  164. package/src/support/escalateTool.ts +134 -0
  165. package/src/support/index.ts +27 -0
  166. package/src/support/supportPrompt.ts +55 -0
  167. package/src/support/types.ts +141 -0
  168. package/src/tools/guideTool.ts +67 -0
  169. package/src/tools/index.ts +3 -0
  170. package/src/tools/restoreTool.ts +33 -0
  171. package/src/tools/simplifyTool.ts +33 -0
  172. package/src/tools/types.ts +2 -0
  173. package/src/types/jsx.d.ts +20 -0
package/README.md CHANGED
@@ -634,6 +634,7 @@ const { send } = useAI({
634
634
 
635
635
  ---
636
636
 
637
+
637
638
  ## 🔒 Security & Production
638
639
 
639
640
  ### Backend Proxy — Keep API Keys Secure
@@ -722,6 +723,126 @@ server.on('upgrade', geminiProxy.upgrade);
722
723
 
723
724
  ---
724
725
 
726
+ ## 🧩 AIZone — Declarative AI Modification Boundaries
727
+
728
+ `<AIZone>` lets you explicitly tell the AI **where it is and isn't allowed to modify the UI**. Everything outside a zone is read-only forever. Everything inside a zone gets only the permissions you grant.
729
+
730
+ **Zero visual impact** — it's a transparent boundary, not a wrapper component. No extra styles, no layout changes.
731
+
732
+ ### Why Use Zones?
733
+
734
+ Without zones, the AI reads the UI but can only interact via standard taps and navigation. With zones, you unlock proactive AI-native behaviors: the AI can simplify cluttered UIs, inject contextual cards, and highlight elements to guide users — all within your declared boundaries.
735
+
736
+ ### Setup
737
+
738
+ ```tsx
739
+ import { AIZone } from '@mobileai/react-native'; // or 'react-native-agentic-ai'
740
+ ```
741
+
742
+ ### Permissions
743
+
744
+ Wrap any section with `<AIZone>` and grant only the permissions you want:
745
+
746
+ ```tsx
747
+ <AIZone
748
+ id="product-detail"
749
+ allowHighlight // AI can draw an animated ring to draw user attention
750
+ allowInjectHint // AI can add a tooltip above any element in this zone
751
+ allowSimplify // AI can hide low-priority children to reduce clutter
752
+ allowInjectCard // AI can inject a built-in card template into this zone
753
+ templates={[InfoCard, ReviewSummary]} // required when allowInjectCard
754
+ >
755
+ <ProductImage />
756
+ <ProductTitle />
757
+ <ProductDescription aiPriority="low" /> {/* hidden when AI simplifies */}
758
+ <SizeSelector />
759
+ <AddToCartButton />
760
+ <AdvancedOptions aiPriority="low" /> {/* hidden when AI simplifies */}
761
+ </AIZone>
762
+
763
+ {/* These are never touched by the AI */}
764
+ <BrandHeader />
765
+ <PaymentSection />
766
+ ```
767
+
768
+ ### `aiPriority` Prop
769
+
770
+ Mark elements as low-priority within a `allowSimplify` zone — the AI hides them to reduce cognitive load:
771
+
772
+ ```tsx
773
+ <AIZone id="settings" allowSimplify>
774
+ <PrimaryOption aiPriority="high" /> {/* always visible */}
775
+ <AdvancedOption aiPriority="low" /> {/* hidden when AI simplifies */}
776
+ </AIZone>
777
+ ```
778
+
779
+ No extra imports needed — `aiPriority` is a typed prop on all standard React Native elements (`View`, `Pressable`, etc.).
780
+
781
+ ### Built-in Card Templates
782
+
783
+ When `allowInjectCard` is set, pass an array of your pre-approved templates. The AI picks the right one and injects it with contextually relevant props:
784
+
785
+ ```tsx
786
+ import { AIZone, InfoCard, ReviewSummary } from '@mobileai/react-native';
787
+
788
+ <AIZone
789
+ id="hero-banner"
790
+ allowInjectCard
791
+ templates={[InfoCard, ReviewSummary]}
792
+ >
793
+ <HeroBanner />
794
+ </AIZone>
795
+ ```
796
+
797
+ | Template | Best for |
798
+ |----------|----------|
799
+ | `InfoCard` | Policy snippets, tips, FAQs |
800
+ | `ReviewSummary` | Average rating, review count on product screens |
801
+
802
+ You can also pass your own custom card components — just set `MyCard.displayName` explicitly (required for minification safety):
803
+ ```tsx
804
+ MyCard.displayName = 'MyCard';
805
+ <AIZone allowInjectCard templates={[MyCard]} id="my-zone">
806
+ ```
807
+
808
+ ### User Dismissal — Always in Control
809
+
810
+ Every AI modification is reversible by the user:
811
+
812
+ | AI Action | User escape hatch |
813
+ |-----------|------------------|
814
+ | `allowHighlight` | Tap anywhere outside the ring (auto-removes after 5s) |
815
+ | `allowInjectHint` | Tap × on the tooltip (auto-removes after 8s) |
816
+ | `allowSimplify` | **"Show all options"** button always appears at zone bottom |
817
+ | `allowInjectCard` | **×** close button always rendered on the injected card |
818
+
819
+ The agent can also call `restore_zone(zoneId)` itself — if the user says *"show everything"*, the agent reverses all simplification.
820
+
821
+ ### What the Agent Sees
822
+
823
+ Inside the system context, the agent receives a precise summary of each zone — permissions and element list — so it can never hallucinate permissions it wasn't given:
824
+
825
+ ```
826
+ [ZONES ON SCREEN]
827
+ zone "product-detail":
828
+ permissions: highlight, simplify, card(InfoCard, ReviewSummary)
829
+ elements: [0]ProductTitle, [1]ProductDescription(priority=low),
830
+ [2]SizeSelector, [3]AddToCartButton, [4]AdvancedOptions(priority=low)
831
+ ```
832
+
833
+ ### AIZone Props
834
+
835
+ | Prop | Type | Description |
836
+ |------|------|-------------|
837
+ | `id` | `string` | Unique zone identifier on this screen |
838
+ | `allowHighlight` | `boolean` | AI can draw an animated ring around elements |
839
+ | `allowInjectHint` | `boolean` | AI can add a tooltip above elements |
840
+ | `allowSimplify` | `boolean` | AI can hide `aiPriority="low"` children |
841
+ | `allowInjectCard` | `boolean` | AI can inject a card template |
842
+ | `templates` | `ComponentType[]` | Pre-approved card components (required with `allowInjectCard`) |
843
+
844
+ ---
845
+
725
846
  ## 🛠️ Built-in Tools
726
847
 
727
848
  | Tool | What it does |
@@ -23,7 +23,13 @@ import { MCPBridge } from "../core/MCPBridge.js";
23
23
  import { VoiceService } from "../services/VoiceService.js";
24
24
  import { AudioInputService } from "../services/AudioInputService.js";
25
25
  import { AudioOutputService } from "../services/AudioOutputService.js";
26
+ import { TelemetryService, bindTelemetryService } from "../services/telemetry/index.js";
27
+ import { extractTouchLabel, checkRageClick } from "../services/telemetry/TouchAutoCapture.js";
26
28
  import { AgentErrorBoundary } from "./AgentErrorBoundary.js";
29
+ import { HighlightOverlay } from "./HighlightOverlay.js";
30
+ import { IdleDetector } from "../core/IdleDetector.js";
31
+ import { ProactiveHint } from "./ProactiveHint.js";
32
+ import { createEscalateTool } from "../support/escalateTool.js";
27
33
 
28
34
  // ─── Context ───────────────────────────────────────────────────
29
35
 
@@ -69,7 +75,11 @@ export function AIAgent({
69
75
  screenMap,
70
76
  useScreenMap = true,
71
77
  maxTokenBudget,
72
- maxCostUSD
78
+ maxCostUSD,
79
+ analyticsKey,
80
+ analyticsProxyUrl,
81
+ analyticsProxyHeaders,
82
+ proactiveHelp
73
83
  }) {
74
84
  // Configure logger based on debug prop
75
85
  React.useEffect(() => {
@@ -88,6 +98,46 @@ export function AIAgent({
88
98
  setLastResult(null);
89
99
  }, []);
90
100
 
101
+ // ─── Auto-create MobileAI escalation tool ─────────────────────
102
+ // When analyticsKey is present and consumer hasn't provided their own
103
+ // escalate_to_human tool, auto-wire the MobileAI platform provider.
104
+ // Human replies from the dashboard inbox are injected into chat messages.
105
+ const autoEscalateTool = useMemo(() => {
106
+ if (!analyticsKey) return null;
107
+ if (customTools?.['escalate_to_human']) return null; // consumer overrides
108
+ return createEscalateTool({
109
+ config: {
110
+ provider: 'mobileai'
111
+ },
112
+ analyticsKey,
113
+ getContext: () => ({
114
+ currentScreen: navRef?.getCurrentRoute?.()?.name ?? 'unknown',
115
+ originalQuery: '',
116
+ stepsBeforeEscalation: 0
117
+ }),
118
+ getHistory: () => messages.map(m => ({
119
+ role: m.role,
120
+ content: m.content
121
+ })),
122
+ onHumanReply: reply => {
123
+ setMessages(prev => [...prev, {
124
+ id: `human-${Date.now()}`,
125
+ role: 'assistant',
126
+ content: `👤 Human Agent: ${reply}`,
127
+ timestamp: Date.now()
128
+ }]);
129
+ }
130
+ });
131
+ // eslint-disable-next-line react-hooks/exhaustive-deps
132
+ }, [analyticsKey, navRef, customTools]);
133
+ const mergedCustomTools = useMemo(() => {
134
+ if (!autoEscalateTool) return customTools;
135
+ return {
136
+ escalate_to_human: autoEscalateTool,
137
+ ...customTools
138
+ };
139
+ }, [autoEscalateTool, customTools]);
140
+
91
141
  // ─── Voice/Live Mode State ──────────────────────────────────
92
142
  const [mode, setMode] = useState('text');
93
143
  const [isMicActive, setIsMicActive] = useState(false);
@@ -132,9 +182,9 @@ export function AIAgent({
132
182
  onBeforeTask,
133
183
  onAfterTask,
134
184
  customTools: mode === 'voice' ? {
135
- ...customTools,
185
+ ...mergedCustomTools,
136
186
  ask_user: null
137
- } : customTools,
187
+ } : mergedCustomTools,
138
188
  instructions,
139
189
  stepDelay,
140
190
  mcpServerUrl,
@@ -161,6 +211,11 @@ export function AIAgent({
161
211
  setIsThinking(false);
162
212
  setStatusText('');
163
213
  });
214
+ },
215
+ // Toggle isAgentActing flag on TelemetryService before/after every tool
216
+ // so that AI-driven taps are never tracked as user_interaction events.
217
+ onToolExecute: active => {
218
+ telemetryRef.current?.setAgentActing(active);
164
219
  }
165
220
  }), [mode, apiKey, proxyUrl, proxyHeaders, voiceProxyUrl, voiceProxyHeaders, model, maxSteps, interactiveBlacklist, interactiveWhitelist, onBeforeStep, onAfterStep, onBeforeTask, onAfterTask, transformScreenContent, customTools, instructions, stepDelay, mcpServerUrl, router, pathname, onTokenUsage, knowledgeBase, knowledgeMaxTokens, enableUIControl, screenMap, useScreenMap, maxTokenBudget, maxCostUSD]);
166
221
  const provider = useMemo(() => createProvider(providerName, apiKey, model, proxyUrl, proxyHeaders), [providerName, apiKey, model, proxyUrl, proxyHeaders]);
@@ -173,6 +228,51 @@ export function AIAgent({
173
228
  runtime.updateRefs(rootViewRef.current, navRef);
174
229
  }, [runtime, navRef]);
175
230
 
231
+ // ─── Telemetry ─────────────────────────────────────────────
232
+
233
+ const telemetryRef = useRef(null);
234
+ useEffect(() => {
235
+ if (!analyticsKey && !analyticsProxyUrl) {
236
+ bindTelemetryService(null);
237
+ return;
238
+ }
239
+ const telemetry = new TelemetryService({
240
+ analyticsKey,
241
+ analyticsProxyUrl,
242
+ analyticsProxyHeaders,
243
+ debug
244
+ });
245
+ telemetryRef.current = telemetry;
246
+ bindTelemetryService(telemetry);
247
+ telemetry.start();
248
+ return () => {
249
+ telemetry.stop();
250
+ telemetryRef.current = null;
251
+ bindTelemetryService(null);
252
+ };
253
+ }, [analyticsKey, analyticsProxyUrl, analyticsProxyHeaders, debug]);
254
+
255
+ // ─── Security warnings ──────────────────────────────────────
256
+
257
+ useEffect(() => {
258
+ // @ts-ignore
259
+ if (typeof __DEV__ !== 'undefined' && !__DEV__ && apiKey && !proxyUrl) {
260
+ console.warn('[MobileAI] ⚠️ SECURITY WARNING: You are using `apiKey` directly in a production build. ' + 'This exposes your LLM provider key in the app binary. ' + 'Use `apiProxyUrl` to route requests through your backend instead. ' + 'See docs for details.');
261
+ }
262
+ }, [apiKey, proxyUrl]);
263
+
264
+ // Track screen changes via navRef
265
+ useEffect(() => {
266
+ if (!navRef?.addListener || !telemetryRef.current) return;
267
+ const unsubscribe = navRef.addListener('state', () => {
268
+ const currentRoute = navRef.getCurrentRoute?.();
269
+ if (currentRoute?.name) {
270
+ telemetryRef.current?.setScreen(currentRoute.name);
271
+ }
272
+ });
273
+ return () => unsubscribe?.();
274
+ }, [navRef]);
275
+
176
276
  // ─── MCP Bridge ──────────────────────────────────────────────
177
277
 
178
278
  useEffect(() => {
@@ -184,6 +284,38 @@ export function AIAgent({
184
284
  };
185
285
  }, [mcpServerUrl, runtime]);
186
286
 
287
+ // ─── Proactive Idle Agent ────────────────────────────────────
288
+
289
+ const idleDetectorRef = useRef(null);
290
+ const [proactiveStage, setProactiveStage] = useState('hidden');
291
+ const [proactiveBadgeText, setProactiveBadgeText] = useState('');
292
+ useEffect(() => {
293
+ if (proactiveHelp?.enabled === false) {
294
+ idleDetectorRef.current?.destroy();
295
+ idleDetectorRef.current = null;
296
+ setProactiveStage('hidden');
297
+ return;
298
+ }
299
+ if (!idleDetectorRef.current) {
300
+ idleDetectorRef.current = new IdleDetector();
301
+ }
302
+ idleDetectorRef.current.start({
303
+ pulseAfterMs: (proactiveHelp?.pulseAfterMinutes || 2) * 60000,
304
+ badgeAfterMs: (proactiveHelp?.badgeAfterMinutes || 4) * 60000,
305
+ onPulse: () => setProactiveStage('pulse'),
306
+ onBadge: suggestion => {
307
+ setProactiveBadgeText(suggestion);
308
+ setProactiveStage('badge');
309
+ },
310
+ onReset: () => setProactiveStage('hidden'),
311
+ generateSuggestion: () => proactiveHelp?.generateSuggestion?.(telemetryRef.current?.screen || 'Home') || proactiveHelp?.badgeText || "Need help with this screen?"
312
+ });
313
+ return () => {
314
+ idleDetectorRef.current?.destroy();
315
+ idleDetectorRef.current = null;
316
+ };
317
+ }, [proactiveHelp, telemetryRef]);
318
+
187
319
  // ─── Voice/Live Service Initialization ──────────────────────
188
320
 
189
321
  // Initialize voice services when mode changes to voice or live
@@ -491,10 +623,32 @@ export function AIAgent({
491
623
  setIsThinking(true);
492
624
  setStatusText('Thinking...');
493
625
  setLastResult(null);
626
+
627
+ // Telemetry: track agent request
628
+ telemetryRef.current?.track('agent_request', {
629
+ query: message.trim()
630
+ });
494
631
  try {
495
632
  // Ensure we have the latest Fiber tree ref
496
633
  runtime.updateRefs(rootViewRef.current, navRef);
497
634
  const result = await runtime.execute(message, messages);
635
+
636
+ // Telemetry: track agent completion and per-step details
637
+ if (telemetryRef.current) {
638
+ for (const step of result.steps ?? []) {
639
+ telemetryRef.current.track('agent_step', {
640
+ tool: step.action.name,
641
+ args: step.action.input,
642
+ result: typeof step.action.output === 'string' ? step.action.output.substring(0, 200) : String(step.action.output)
643
+ });
644
+ }
645
+ telemetryRef.current.track('agent_complete', {
646
+ success: result.success,
647
+ steps: result.steps?.length ?? 0,
648
+ tokens: result.tokenUsage?.totalTokens ?? 0,
649
+ cost: result.tokenUsage?.estimatedCostUSD ?? 0
650
+ });
651
+ }
498
652
  setLastResult(result);
499
653
 
500
654
  // Append assistant message
@@ -513,6 +667,12 @@ export function AIAgent({
513
667
  logger.info('AIAgent', `Result: ${result.success ? '✅' : '❌'} ${result.message}`);
514
668
  } catch (error) {
515
669
  logger.error('AIAgent', 'Execution failed:', error);
670
+
671
+ // Telemetry: track agent failure
672
+ telemetryRef.current?.track('agent_complete', {
673
+ success: false,
674
+ error: error.message
675
+ });
516
676
  setLastResult({
517
677
  success: false,
518
678
  message: `Error: ${error.message}`,
@@ -552,7 +712,37 @@ export function AIAgent({
552
712
  ref: rootViewRef,
553
713
  style: styles.root,
554
714
  collapsable: false,
715
+ onStartShouldSetResponderCapture: event => {
716
+ // Auto-capture every tap for analytics (zero-config)
717
+ // Skip if the AI agent is currently executing a tool — those are
718
+ // already tracked as `agent_step` events with full context.
719
+ if (telemetryRef.current && !telemetryRef.current.isAgentActing) {
720
+ const label = extractTouchLabel(event.nativeEvent);
721
+ if (label && label !== 'Unknown Element' && label !== '[pressable]') {
722
+ telemetryRef.current.track('user_interaction', {
723
+ type: 'tap',
724
+ label,
725
+ actor: 'user',
726
+ x: Math.round(event.nativeEvent.pageX),
727
+ y: Math.round(event.nativeEvent.pageY)
728
+ });
729
+
730
+ // Track if user is rage-tapping this specific element
731
+ checkRageClick(label, telemetryRef.current);
732
+ } else {
733
+ // Tapped an unlabelled/empty area
734
+ telemetryRef.current.track('dead_click', {
735
+ x: Math.round(event.nativeEvent.pageX),
736
+ y: Math.round(event.nativeEvent.pageY),
737
+ screen: telemetryRef.current.screen
738
+ });
739
+ }
740
+ }
741
+ // IMPORTANT: return false so we don't steal the touch from the actual button
742
+ return false;
743
+ },
555
744
  children: /*#__PURE__*/_jsx(AgentErrorBoundary, {
745
+ telemetryRef: telemetryRef,
556
746
  onError: (error, componentStack) => {
557
747
  const errorMsg = `⚠️ A rendering error occurred: ${error.message}`;
558
748
  lastAgentErrorRef.current = errorMsg;
@@ -560,62 +750,67 @@ export function AIAgent({
560
750
  },
561
751
  children: children
562
752
  })
563
- }), (showChatBar || isThinking) && /*#__PURE__*/_jsxs(View, {
753
+ }), /*#__PURE__*/_jsxs(View, {
564
754
  style: styles.floatingLayer,
565
755
  pointerEvents: "box-none",
566
- children: [/*#__PURE__*/_jsx(AgentOverlay, {
756
+ children: [/*#__PURE__*/_jsx(HighlightOverlay, {}), /*#__PURE__*/_jsx(AgentOverlay, {
567
757
  visible: isThinking,
568
758
  statusText: statusText,
569
759
  onCancel: handleCancel
570
- }), showChatBar && /*#__PURE__*/_jsx(AgentChatBar, {
571
- onSend: handleSend,
572
- isThinking: isThinking,
573
- lastResult: lastResult,
574
- language: 'en',
575
- onDismiss: () => setLastResult(null),
576
- theme: accentColor || theme ? {
577
- ...(accentColor ? {
578
- primaryColor: accentColor
579
- } : {}),
580
- ...theme
581
- } : undefined,
582
- availableModes: availableModes,
583
- mode: mode,
584
- onModeChange: newMode => {
585
- logger.info('AIAgent', `Mode change: ${mode} → ${newMode}`);
586
- setMode(newMode);
587
- },
588
- isMicActive: isMicActive,
589
- isSpeakerMuted: isSpeakerMuted,
590
- isAISpeaking: isAISpeaking,
591
- onStopSession: stopVoiceSession,
592
- isVoiceConnected: isVoiceConnected,
593
- onMicToggle: active => {
594
- if (active && !isVoiceConnected) {
595
- logger.warn('AIAgent', 'Cannot toggle mic — VoiceService not connected yet');
596
- return;
597
- }
598
- logger.info('AIAgent', `Mic toggle: ${active ? 'ON' : 'OFF'}`);
599
- setIsMicActive(active);
600
- if (active) {
601
- logger.info('AIAgent', 'Starting AudioInput...');
602
- audioInputRef.current?.start().then(ok => {
603
- logger.info('AIAgent', `AudioInput start result: ${ok}`);
604
- });
605
- } else {
606
- logger.info('AIAgent', 'Stopping AudioInput...');
607
- audioInputRef.current?.stop();
608
- }
609
- },
610
- onSpeakerToggle: muted => {
611
- logger.info('AIAgent', `Speaker toggle: ${muted ? 'MUTED' : 'UNMUTED'}`);
612
- setIsSpeakerMuted(muted);
613
- if (muted) {
614
- audioOutputRef.current?.mute();
615
- } else {
616
- audioOutputRef.current?.unmute();
760
+ }), showChatBar && /*#__PURE__*/_jsx(ProactiveHint, {
761
+ stage: proactiveStage,
762
+ badgeText: proactiveBadgeText,
763
+ onDismiss: () => idleDetectorRef.current?.dismiss(),
764
+ children: /*#__PURE__*/_jsx(AgentChatBar, {
765
+ onSend: handleSend,
766
+ isThinking: isThinking,
767
+ lastResult: lastResult,
768
+ language: 'en',
769
+ onDismiss: () => setLastResult(null),
770
+ theme: accentColor || theme ? {
771
+ ...(accentColor ? {
772
+ primaryColor: accentColor
773
+ } : {}),
774
+ ...theme
775
+ } : undefined,
776
+ availableModes: availableModes,
777
+ mode: mode,
778
+ onModeChange: newMode => {
779
+ logger.info('AIAgent', `Mode change: ${mode} → ${newMode}`);
780
+ setMode(newMode);
781
+ },
782
+ isMicActive: isMicActive,
783
+ isSpeakerMuted: isSpeakerMuted,
784
+ isAISpeaking: isAISpeaking,
785
+ onStopSession: stopVoiceSession,
786
+ isVoiceConnected: isVoiceConnected,
787
+ onMicToggle: active => {
788
+ if (active && !isVoiceConnected) {
789
+ logger.warn('AIAgent', 'Cannot toggle mic — VoiceService not connected yet');
790
+ return;
791
+ }
792
+ logger.info('AIAgent', `Mic toggle: ${active ? 'ON' : 'OFF'}`);
793
+ setIsMicActive(active);
794
+ if (active) {
795
+ logger.info('AIAgent', 'Starting AudioInput...');
796
+ audioInputRef.current?.start().then(ok => {
797
+ logger.info('AIAgent', `AudioInput start result: ${ok}`);
798
+ });
799
+ } else {
800
+ logger.info('AIAgent', 'Stopping AudioInput...');
801
+ audioInputRef.current?.stop();
802
+ }
803
+ },
804
+ onSpeakerToggle: muted => {
805
+ logger.info('AIAgent', `Speaker toggle: ${muted ? 'MUTED' : 'UNMUTED'}`);
806
+ setIsSpeakerMuted(muted);
807
+ if (muted) {
808
+ audioOutputRef.current?.mute();
809
+ } else {
810
+ audioOutputRef.current?.unmute();
811
+ }
617
812
  }
618
- }
813
+ })
619
814
  })]
620
815
  })]
621
816
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","AgentRuntime","createProvider","AgentContext","AgentChatBar","AgentOverlay","logger","buildVoiceSystemPrompt","MCPBridge","VoiceService","AudioInputService","AudioOutputService","AgentErrorBoundary","jsx","_jsx","jsxs","_jsxs","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","setEnabled","info","rootViewRef","isThinking","setIsThinking","statusText","setStatusText","lastResult","setLastResult","messages","setMessages","clearMessages","mode","setMode","isMicActive","setIsMicActive","isSpeakerMuted","setIsSpeakerMuted","isAISpeaking","setIsAISpeaking","isVoiceConnected","setIsVoiceConnected","voiceServiceRef","audioInputRef","audioOutputRef","toolLockRef","userHasSpokenRef","lastScreenContextRef","screenPollIntervalRef","lastAgentErrorRef","availableModes","modes","push","join","askUserResolverRef","config","language","ask_user","onStatusUpdate","undefined","onAskUser","question","Promise","resolve","current","success","message","steps","runtime","updateRefs","bridge","destroy","audioOutputInitPromise","runtimeTools","getTools","length","map","t","name","voicePrompt","system","systemPrompt","tools","onError","err","error","initialize","then","ok","onAudioChunk","chunk","isConnected","sendAudio","onPermissionDenied","warn","connect","onAudioResponse","audio","enqueue","onStatusChange","status","connected","start","intentionalDisconnect","stop","setTimeout","lastCallbacks","onTranscript","text","isFinal","role","onSetupComplete","initialContext","getScreenContext","passiveContext","sendScreenContext","onToolCall","toolCall","JSON","stringify","args","id","sendFunctionResponse","result","executeTool","updatedContext","enrichedResult","onTurnComplete","SCREEN_POLL_INTERVAL","MIN_DIFF_RATIO","setInterval","currentContext","lastLen","diff","Math","abs","diffRatio","toFixed","passiveUpdate","clearInterval","disconnect","stopVoiceSession","handleSend","options","trim","prev","Date","now","toString","random","content","timestamp","resolver","execute","handleCancel","cancel","contextValue","send","isLoading","Provider","value","style","styles","root","ref","collapsable","componentStack","errorMsg","floatingLayer","pointerEvents","visible","onCancel","onSend","onDismiss","primaryColor","onModeChange","newMode","onStopSession","onMicToggle","active","onSpeakerToggle","muted","mute","unmute","create","flex","position","top","left","right","bottom","zIndex"],"sourceRoot":"../../../src","sources":["components/AIAgent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","AgentRuntime","createProvider","AgentContext","AgentChatBar","AgentOverlay","logger","buildVoiceSystemPrompt","MCPBridge","VoiceService","AudioInputService","AudioOutputService","TelemetryService","bindTelemetryService","extractTouchLabel","checkRageClick","AgentErrorBoundary","HighlightOverlay","IdleDetector","ProactiveHint","createEscalateTool","jsx","_jsx","jsxs","_jsxs","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","setEnabled","info","rootViewRef","isThinking","setIsThinking","statusText","setStatusText","lastResult","setLastResult","messages","setMessages","clearMessages","autoEscalateTool","config","getContext","currentScreen","getCurrentRoute","name","originalQuery","stepsBeforeEscalation","getHistory","map","m","role","content","onHumanReply","reply","prev","id","Date","now","timestamp","mergedCustomTools","escalate_to_human","mode","setMode","isMicActive","setIsMicActive","isSpeakerMuted","setIsSpeakerMuted","isAISpeaking","setIsAISpeaking","isVoiceConnected","setIsVoiceConnected","voiceServiceRef","audioInputRef","audioOutputRef","toolLockRef","userHasSpokenRef","lastScreenContextRef","screenPollIntervalRef","lastAgentErrorRef","availableModes","modes","push","join","askUserResolverRef","language","ask_user","onStatusUpdate","undefined","onAskUser","question","Promise","resolve","current","success","message","steps","onToolExecute","active","telemetryRef","setAgentActing","runtime","updateRefs","telemetry","start","stop","__DEV__","console","warn","addListener","unsubscribe","currentRoute","setScreen","bridge","destroy","idleDetectorRef","proactiveStage","setProactiveStage","proactiveBadgeText","setProactiveBadgeText","enabled","pulseAfterMs","pulseAfterMinutes","badgeAfterMs","badgeAfterMinutes","onPulse","onBadge","suggestion","onReset","generateSuggestion","screen","badgeText","audioOutputInitPromise","runtimeTools","getTools","length","t","voicePrompt","system","systemPrompt","tools","onError","err","error","initialize","then","ok","onAudioChunk","chunk","isConnected","sendAudio","onPermissionDenied","connect","onAudioResponse","audio","enqueue","onStatusChange","status","connected","intentionalDisconnect","setTimeout","lastCallbacks","onTranscript","text","isFinal","onSetupComplete","initialContext","getScreenContext","passiveContext","sendScreenContext","onToolCall","toolCall","JSON","stringify","args","sendFunctionResponse","result","executeTool","updatedContext","enrichedResult","onTurnComplete","SCREEN_POLL_INTERVAL","MIN_DIFF_RATIO","setInterval","currentContext","lastLen","diff","Math","abs","diffRatio","toFixed","passiveUpdate","clearInterval","disconnect","stopVoiceSession","handleSend","options","trim","toString","random","resolver","track","query","execute","step","tool","action","input","output","substring","String","tokens","tokenUsage","totalTokens","cost","estimatedCostUSD","handleCancel","cancel","contextValue","send","isLoading","Provider","value","style","styles","root","ref","collapsable","onStartShouldSetResponderCapture","event","isAgentActing","label","nativeEvent","type","actor","x","round","pageX","y","pageY","componentStack","errorMsg","floatingLayer","pointerEvents","visible","onCancel","stage","onDismiss","dismiss","onSend","primaryColor","onModeChange","newMode","onStopSession","onMicToggle","onSpeakerToggle","muted","mute","unmute","create","flex","position","top","left","right","bottom","zIndex"],"sourceRoot":"../../../src","sources":["components/AIAgent.tsx"],"mappings":"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","ignoreList":[]}