@mobileai/react-native 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +25 -34
  2. package/lib/module/components/AIAgent.js +216 -5
  3. package/lib/module/components/AIAgent.js.map +1 -1
  4. package/lib/module/components/AgentChatBar.js +358 -36
  5. package/lib/module/components/AgentChatBar.js.map +1 -1
  6. package/lib/module/core/AgentRuntime.js +122 -6
  7. package/lib/module/core/AgentRuntime.js.map +1 -1
  8. package/lib/module/core/systemPrompt.js +57 -0
  9. package/lib/module/core/systemPrompt.js.map +1 -1
  10. package/lib/module/index.js +8 -0
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/providers/GeminiProvider.js +108 -85
  13. package/lib/module/providers/GeminiProvider.js.map +1 -1
  14. package/lib/module/services/AudioInputService.js +128 -0
  15. package/lib/module/services/AudioInputService.js.map +1 -0
  16. package/lib/module/services/AudioOutputService.js +154 -0
  17. package/lib/module/services/AudioOutputService.js.map +1 -0
  18. package/lib/module/services/VoiceService.js +362 -0
  19. package/lib/module/services/VoiceService.js.map +1 -0
  20. package/lib/module/utils/audioUtils.js +49 -0
  21. package/lib/module/utils/audioUtils.js.map +1 -0
  22. package/lib/module/utils/logger.js +21 -4
  23. package/lib/module/utils/logger.js.map +1 -1
  24. package/lib/typescript/babel.config.d.ts +10 -0
  25. package/lib/typescript/babel.config.d.ts.map +1 -0
  26. package/lib/typescript/eslint.config.d.mts +3 -0
  27. package/lib/typescript/eslint.config.d.mts.map +1 -0
  28. package/lib/typescript/fetch-models.d.mts +2 -0
  29. package/lib/typescript/fetch-models.d.mts.map +1 -0
  30. package/lib/typescript/list-all-models.d.mts +2 -0
  31. package/lib/typescript/list-all-models.d.mts.map +1 -0
  32. package/lib/typescript/list-models.d.mts +2 -0
  33. package/lib/typescript/list-models.d.mts.map +1 -0
  34. package/lib/typescript/src/components/AIAgent.d.ts +8 -2
  35. package/lib/typescript/src/components/AIAgent.d.ts.map +1 -1
  36. package/lib/typescript/src/components/AgentChatBar.d.ts +19 -2
  37. package/lib/typescript/src/components/AgentChatBar.d.ts.map +1 -1
  38. package/lib/typescript/src/core/AgentRuntime.d.ts +17 -1
  39. package/lib/typescript/src/core/AgentRuntime.d.ts.map +1 -1
  40. package/lib/typescript/src/core/systemPrompt.d.ts +8 -0
  41. package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -1
  42. package/lib/typescript/src/core/types.d.ts +24 -1
  43. package/lib/typescript/src/core/types.d.ts.map +1 -1
  44. package/lib/typescript/src/index.d.ts +6 -1
  45. package/lib/typescript/src/index.d.ts.map +1 -1
  46. package/lib/typescript/src/providers/GeminiProvider.d.ts +22 -18
  47. package/lib/typescript/src/providers/GeminiProvider.d.ts.map +1 -1
  48. package/lib/typescript/src/services/AudioInputService.d.ts +31 -0
  49. package/lib/typescript/src/services/AudioInputService.d.ts.map +1 -0
  50. package/lib/typescript/src/services/AudioOutputService.d.ts +34 -0
  51. package/lib/typescript/src/services/AudioOutputService.d.ts.map +1 -0
  52. package/lib/typescript/src/services/VoiceService.d.ts +73 -0
  53. package/lib/typescript/src/services/VoiceService.d.ts.map +1 -0
  54. package/lib/typescript/src/utils/audioUtils.d.ts +17 -0
  55. package/lib/typescript/src/utils/audioUtils.d.ts.map +1 -0
  56. package/lib/typescript/src/utils/logger.d.ts +4 -0
  57. package/lib/typescript/src/utils/logger.d.ts.map +1 -1
  58. package/package.json +24 -8
  59. package/src/components/AIAgent.tsx +222 -3
  60. package/src/components/AgentChatBar.tsx +487 -42
  61. package/src/core/AgentRuntime.ts +131 -2
  62. package/src/core/systemPrompt.ts +62 -0
  63. package/src/core/types.ts +30 -0
  64. package/src/index.ts +16 -0
  65. package/src/providers/GeminiProvider.ts +105 -89
  66. package/src/services/AudioInputService.ts +141 -0
  67. package/src/services/AudioOutputService.ts +167 -0
  68. package/src/services/VoiceService.ts +409 -0
  69. package/src/utils/audioUtils.ts +54 -0
  70. package/src/utils/logger.ts +24 -7
@@ -189,9 +189,12 @@ export class AgentRuntime {
189
189
  }
190
190
  try {
191
191
  const params = args.params ? typeof args.params === 'string' ? JSON.parse(args.params) : args.params : undefined;
192
- this.navRef.navigate(args.screen, params);
192
+ // Case-insensitive screen name matching
193
+ const availableRoutes = this.getRouteNames();
194
+ const matchedScreen = availableRoutes.find(r => r.toLowerCase() === args.screen.toLowerCase()) || args.screen;
195
+ this.navRef.navigate(matchedScreen, params);
193
196
  await new Promise(resolve => setTimeout(resolve, 500));
194
- return `✅ Navigated to "${args.screen}"${params ? ` with params: ${JSON.stringify(params)}` : ''}`;
197
+ return `✅ Navigated to "${matchedScreen}"${params ? ` with params: ${JSON.stringify(params)}` : ''}`;
195
198
  } catch (error) {
196
199
  return `❌ Navigation error: ${error.message}. Available screens: ${this.getRouteNames().join(', ')}`;
197
200
  }
@@ -241,6 +244,20 @@ export class AgentRuntime {
241
244
  return `❓ ${args.question}`;
242
245
  }
243
246
  });
247
+
248
+ // capture_screenshot — on-demand visual capture (for image/video content questions)
249
+ this.tools.set('capture_screenshot', {
250
+ name: 'capture_screenshot',
251
+ description: 'Capture a screenshot of the current screen. Use when the user asks about visual content (images, videos, colors, layout appearance) that cannot be determined from the element tree alone.',
252
+ parameters: {},
253
+ execute: async () => {
254
+ const screenshot = await this.captureScreenshot();
255
+ if (screenshot) {
256
+ return `✅ Screenshot captured (${Math.round(screenshot.length / 1024)}KB). Visual content is now available for analysis.`;
257
+ }
258
+ return '❌ Screenshot capture failed. react-native-view-shot may not be installed.';
259
+ }
260
+ });
244
261
  }
245
262
 
246
263
  // ─── Action Registration (useAction hook) ──────────────────
@@ -331,6 +348,61 @@ export class AgentRuntime {
331
348
  }
332
349
  }
333
350
 
351
+ // ─── Screenshot Capture (optional react-native-view-shot) ─────
352
+
353
+ /**
354
+ * Captures the current screen as a base64 JPEG for Gemini vision.
355
+ * Uses react-native-view-shot as an optional peer dependency.
356
+ * Returns null if the library is not installed (graceful fallback).
357
+ */
358
+ async captureScreenshot() {
359
+ try {
360
+ const viewShot = require('react-native-view-shot');
361
+ const captureRef = viewShot.captureRef || viewShot.default?.captureRef;
362
+ if (!captureRef || !this.rootRef) return undefined;
363
+ const uri = await captureRef(this.rootRef, {
364
+ format: 'jpg',
365
+ quality: 0.4,
366
+ width: 720,
367
+ result: 'base64'
368
+ });
369
+ logger.info('AgentRuntime', `Screenshot captured (${Math.round((uri?.length || 0) / 1024)}KB base64)`);
370
+ return uri || undefined;
371
+ } catch (error) {
372
+ // Detect missing dependency vs runtime failure
373
+ if (error.message?.includes('Cannot find module') || error.code === 'MODULE_NOT_FOUND') {
374
+ logger.warn('AgentRuntime', 'Screenshot requires react-native-view-shot. Install with: npx expo install react-native-view-shot');
375
+ } else {
376
+ logger.debug('AgentRuntime', `Screenshot skipped: ${error.message}`);
377
+ }
378
+ return undefined;
379
+ }
380
+ }
381
+
382
+ // ─── Screen Context for Voice Mode ──────────────────────
383
+
384
+ /**
385
+ * Get current screen context as formatted text.
386
+ * Used by voice mode: sent once at connect + after each tool call.
387
+ * Follows page-agent pattern: tree in user prompt, not system instructions.
388
+ */
389
+ getScreenContext() {
390
+ try {
391
+ const walkResult = walkFiberTree(this.rootRef, this.getWalkConfig());
392
+ const screenName = this.getCurrentScreenName();
393
+ const screen = dehydrateScreen(screenName, this.getRouteNames(), walkResult.elementsText, walkResult.interactives);
394
+ return `<screen_update>
395
+ Current Screen: ${screenName}
396
+ Available Screens: ${this.getRouteNames().join(', ')}
397
+
398
+ ${screen.elementsText}
399
+ </screen_update>`;
400
+ } catch (error) {
401
+ logger.error('AgentRuntime', `getScreenContext failed: ${error.message}`);
402
+ return '<screen_update>Error reading screen</screen_update>';
403
+ }
404
+ }
405
+
334
406
  // ─── Build Tools Array for Provider ────────────────────────
335
407
 
336
408
  buildToolsForProvider() {
@@ -359,6 +431,27 @@ export class AgentRuntime {
359
431
  return allTools;
360
432
  }
361
433
 
434
+ /** Public accessor for voice mode — returns all registered tool definitions. */
435
+ getTools() {
436
+ return this.buildToolsForProvider();
437
+ }
438
+
439
+ /** Execute a tool by name (for voice mode tool calls from WebSocket). */
440
+ async executeTool(name, args) {
441
+ const tool = this.tools.get(name) || this.buildToolsForProvider().find(t => t.name === name);
442
+ if (!tool) {
443
+ return `❌ Unknown tool: ${name}`;
444
+ }
445
+ try {
446
+ const result = await tool.execute(args);
447
+ logger.info('AgentRuntime', `Voice tool executed: ${name} → ${result}`);
448
+ return result;
449
+ } catch (error) {
450
+ logger.error('AgentRuntime', `Voice tool error: ${name} — ${error.message}`);
451
+ return `❌ Tool "${name}" failed: ${error.message}`;
452
+ }
453
+ }
454
+
362
455
  // ─── Walk Config (passes security settings to FiberTreeWalker) ─
363
456
 
364
457
  getWalkConfig() {
@@ -475,6 +568,14 @@ export class AgentRuntime {
475
568
  const maxSteps = this.config.maxSteps || DEFAULT_MAX_STEPS;
476
569
  const stepDelay = this.config.stepDelay ?? 300;
477
570
 
571
+ // Token usage accumulator for the entire task
572
+ const sessionUsage = {
573
+ promptTokens: 0,
574
+ completionTokens: 0,
575
+ totalTokens: 0,
576
+ estimatedCostUSD: 0
577
+ };
578
+
478
579
  // Inject conversational context if we are answering the AI's question
479
580
  let contextualMessage = userMessage;
480
581
  if (this.lastAskUserQuestion) {
@@ -511,12 +612,24 @@ export class AgentRuntime {
511
612
  // 4. Assemble structured user prompt (mirrors page-agent #assembleUserPrompt)
512
613
  const contextMessage = this.assembleUserPrompt(step, maxSteps, contextualMessage, screenName, screenContent);
513
614
 
615
+ // 4.5. Capture screenshot for Gemini vision (optional)
616
+ const screenshot = await this.captureScreenshot();
617
+
514
618
  // 5. Send to AI provider
515
619
  this.config.onStatusUpdate?.('Analyzing screen...');
516
620
  const systemPrompt = buildSystemPrompt(this.config.language || 'en');
517
621
  const tools = this.buildToolsForProvider();
518
622
  logger.info('AgentRuntime', `Sending to AI with ${tools.length} tools...`);
519
- const response = await this.provider.generateContent(systemPrompt, contextMessage, tools, this.history);
623
+ const response = await this.provider.generateContent(systemPrompt, contextMessage, tools, this.history, screenshot);
624
+
625
+ // Accumulate token usage
626
+ if (response.tokenUsage) {
627
+ sessionUsage.promptTokens += response.tokenUsage.promptTokens;
628
+ sessionUsage.completionTokens += response.tokenUsage.completionTokens;
629
+ sessionUsage.totalTokens += response.tokenUsage.totalTokens;
630
+ sessionUsage.estimatedCostUSD += response.tokenUsage.estimatedCostUSD;
631
+ this.config.onTokenUsage?.(response.tokenUsage);
632
+ }
520
633
 
521
634
  // 6. Process tool calls
522
635
  if (!response.toolCalls || response.toolCalls.length === 0) {
@@ -524,7 +637,8 @@ export class AgentRuntime {
524
637
  const result = {
525
638
  success: true,
526
639
  message: response.text || 'Task completed.',
527
- steps: this.history
640
+ steps: this.history,
641
+ tokenUsage: sessionUsage
528
642
  };
529
643
  await this.config.onAfterTask?.(result);
530
644
  return result;
@@ -608,7 +722,8 @@ export class AgentRuntime {
608
722
  const result = {
609
723
  success: false,
610
724
  message: `Reached maximum steps (${maxSteps}) without completing the task.`,
611
- steps: this.history
725
+ steps: this.history,
726
+ tokenUsage: sessionUsage
612
727
  };
613
728
  await this.config.onAfterTask?.(result);
614
729
  return result;
@@ -617,7 +732,8 @@ export class AgentRuntime {
617
732
  const result = {
618
733
  success: false,
619
734
  message: `Error: ${error.message}`,
620
- steps: this.history
735
+ steps: this.history,
736
+ tokenUsage: sessionUsage
621
737
  };
622
738
  await this.config.onAfterTask?.(result);
623
739
  return result;
@@ -1 +1 @@
1
- {"version":3,"names":["logger","walkFiberTree","dehydrateScreen","buildSystemPrompt","DEFAULT_MAX_STEPS","AgentRuntime","tools","Map","actions","history","isRunning","lastAskUserQuestion","constructor","provider","config","rootRef","navRef","registerBuiltInTools","customTools","name","tool","Object","entries","delete","info","set","description","parameters","index","type","required","execute","args","interactives","elements","getWalkConfig","element","find","el","map","e","join","props","onValueChange","value","Promise","resolve","setTimeout","label","error","message","onPress","fiber","fiberNode","return","bubbleDepth","parentProps","memoizedProps","text","onChangeText","screen","params","router","path","startsWith","push","isReady","JSON","parse","undefined","navigate","stringify","getRouteNames","success","question","onAskUser","onStatusUpdate","answer","registerAction","action","unregisterAction","state","getRootState","getState","collectRouteNames","names","routes","route","Set","getCurrentScreenName","pathname","segments","split","filter","Boolean","length","getDeepestScreenName","getToolStatusLabel","toolName","buildToolsForProvider","allTools","values","fromEntries","key","typeStr","result","handler","interactiveBlacklist","interactiveWhitelist","getInstructions","screenName","instructions","system","trim","getScreenInstructions","screenInstructions","observations","lastScreenName","handleObservations","step","maxSteps","remaining","assembleUserPrompt","contextualMessage","screenContent","prompt","stepIndex","event","reflection","previousGoalEval","memory","plan","output","obs","userMessage","steps","stepDelay","onBeforeTask","onBeforeStep","walkResult","elementsText","debug","transformScreenContent","contextMessage","systemPrompt","language","response","generateContent","toolCalls","warn","onAfterTask","reasoning","toolCall","statusLabel","get","t","agentStep","input","onAfterStep","updateRefs","getIsRunning"],"sourceRoot":"../../../src","sources":["core/AgentRuntime.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["logger","walkFiberTree","dehydrateScreen","buildSystemPrompt","DEFAULT_MAX_STEPS","AgentRuntime","tools","Map","actions","history","isRunning","lastAskUserQuestion","constructor","provider","config","rootRef","navRef","registerBuiltInTools","customTools","name","tool","Object","entries","delete","info","set","description","parameters","index","type","required","execute","args","interactives","elements","getWalkConfig","element","find","el","map","e","join","props","onValueChange","value","Promise","resolve","setTimeout","label","error","message","onPress","fiber","fiberNode","return","bubbleDepth","parentProps","memoizedProps","text","onChangeText","screen","params","router","path","startsWith","push","isReady","JSON","parse","undefined","availableRoutes","getRouteNames","matchedScreen","r","toLowerCase","navigate","stringify","success","question","onAskUser","onStatusUpdate","answer","screenshot","captureScreenshot","Math","round","length","registerAction","action","unregisterAction","state","getRootState","getState","collectRouteNames","names","routes","route","Set","getCurrentScreenName","pathname","segments","split","filter","Boolean","getDeepestScreenName","getToolStatusLabel","toolName","viewShot","require","captureRef","default","uri","format","quality","width","result","includes","code","warn","debug","getScreenContext","walkResult","screenName","elementsText","buildToolsForProvider","allTools","values","fromEntries","key","typeStr","handler","getTools","executeTool","get","t","interactiveBlacklist","interactiveWhitelist","getInstructions","instructions","system","trim","getScreenInstructions","screenInstructions","observations","lastScreenName","handleObservations","step","maxSteps","remaining","assembleUserPrompt","contextualMessage","screenContent","prompt","stepIndex","event","reflection","previousGoalEval","memory","plan","output","obs","userMessage","steps","stepDelay","sessionUsage","promptTokens","completionTokens","totalTokens","estimatedCostUSD","onBeforeTask","onBeforeStep","transformScreenContent","contextMessage","systemPrompt","language","response","generateContent","tokenUsage","onTokenUsage","toolCalls","onAfterTask","reasoning","toolCall","statusLabel","agentStep","input","onAfterStep","updateRefs","getIsRunning"],"sourceRoot":"../../../src","sources":["core/AgentRuntime.ts"],"mappings":"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","ignoreList":[]}
@@ -161,4 +161,61 @@ memory: "Added 2x Margherita pizza. Cart total visible."
161
161
  plan: "Call done to report the cart contents to the user."
162
162
  </output>`;
163
163
  }
164
+
165
+ /**
166
+ * Voice-optimized system prompt for the Gemini Live API.
167
+ *
168
+ * Includes the same screen format and tool semantics as text mode,
169
+ * but condensed for voice context and with guardrails against
170
+ * unprompted actions.
171
+ */
172
+ export function buildVoiceSystemPrompt(language, userInstructions) {
173
+ const isArabic = language === 'ar';
174
+ let prompt = `You are a voice-controlled AI agent operating a React Native mobile app. You can see the screen content and interact with UI elements using tools.
175
+
176
+ <language>
177
+ ${isArabic ? 'Respond in Arabic.' : 'Respond in English.'}
178
+ Use the same language as the user.
179
+ </language>
180
+
181
+ <screen_format>
182
+ You receive periodic screen updates showing the current UI. Interactive elements appear as:
183
+ [index]<type attrs>label</type>
184
+
185
+ - index: numeric ID for interaction (use with tap/type tools)
186
+ - type: element type (pressable, text-input, switch)
187
+ - attrs: state like value="true", checked="false", role="switch"
188
+ - label: visible text content
189
+
190
+ Only elements with [index] are interactive. Text without [] is display-only.
191
+ Example: [5]<switch value="true">Order Updates</switch> means element 5 is a switch currently ON.
192
+ </screen_format>
193
+
194
+ <tools>
195
+ Available tools:
196
+ - tap(index): Tap an element. For switches, this toggles their value.
197
+ - type(index, text): Type text into a text-input.
198
+ - navigate(screen): Navigate to a named screen.
199
+ - done(text, success): Complete the task with a spoken response.
200
+ - ask_user(question): Ask the user for clarification.
201
+ </tools>
202
+
203
+ <rules>
204
+ CRITICAL ACTION RULES:
205
+ - ONLY perform actions (tap, type, navigate) when the user explicitly asks you to do something.
206
+ - NEVER tap or navigate on your own initiative — wait for the user's voice command.
207
+ - When the user asks a question about what's on screen, answer verbally via done(). Do NOT tap anything.
208
+ - When the user asks to toggle/enable/disable something, find the matching element by its label and use tap(index).
209
+ - When a screen update arrives, do NOT interact with elements unless the user asked you to.
210
+ - Use element indexes from the most recent screen update — they refresh every few seconds.
211
+ - For switches: tap(index) toggles the value. You do NOT need to find a separate button.
212
+ - Keep spoken responses concise — the user is listening, not reading.
213
+ </rules>`;
214
+
215
+ // Append user-provided instructions if any
216
+ if (userInstructions?.trim()) {
217
+ prompt += `\n\n<app_instructions>\n${userInstructions.trim()}\n</app_instructions>`;
218
+ }
219
+ return prompt;
220
+ }
164
221
  //# sourceMappingURL=systemPrompt.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["buildSystemPrompt","language","isArabic"],"sourceRoot":"../../../src","sources":["core/systemPrompt.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASA,iBAAiBA,CAACC,QAAgB,EAAU;EAC1D,MAAMC,QAAQ,GAAGD,QAAQ,KAAK,IAAI;EAElC,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEC,QAAQ,GAAG,oDAAoD,GAAG,sDAAsD;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV","ignoreList":[]}
1
+ {"version":3,"names":["buildSystemPrompt","language","isArabic","buildVoiceSystemPrompt","userInstructions","prompt","trim"],"sourceRoot":"../../../src","sources":["core/systemPrompt.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASA,iBAAiBA,CAACC,QAAgB,EAAU;EAC1D,MAAMC,QAAQ,GAAGD,QAAQ,KAAK,IAAI;EAElC,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEC,QAAQ,GAAG,oDAAoD,GAAG,sDAAsD;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCF,QAAgB,EAChBG,gBAAyB,EACjB;EACR,MAAMF,QAAQ,GAAGD,QAAQ,KAAK,IAAI;EAElC,IAAII,MAAM,GAAG;AACf;AACA;AACA,EAAEH,QAAQ,GAAG,oBAAoB,GAAG,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;EAEP;EACA,IAAIE,gBAAgB,EAAEE,IAAI,CAAC,CAAC,EAAE;IAC5BD,MAAM,IAAI,2BAA2BD,gBAAgB,CAACE,IAAI,CAAC,CAAC,uBAAuB;EACrF;EAEA,OAAOD,MAAM;AACf","ignoreList":[]}
@@ -13,5 +13,13 @@ export { AIAgent } from "./components/AIAgent.js";
13
13
  // ─── Hooks ───────────────────────────────────────────────────
14
14
  export { useAction } from "./hooks/useAction.js";
15
15
 
16
+ // ─── Services ────────────────────────────────────────────────
17
+ export { VoiceService } from "./services/VoiceService.js";
18
+ export { AudioInputService } from "./services/AudioInputService.js";
19
+ export { AudioOutputService } from "./services/AudioOutputService.js";
20
+
21
+ // ─── Utilities ───────────────────────────────────────────────
22
+ export { logger } from "./utils/logger.js";
23
+
16
24
  // ─── Types ───────────────────────────────────────────────────
17
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AIAgent","useAction"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,yBAAsB;;AAE9C;AACA,SAASC,SAAS,QAAQ,sBAAmB;;AAE7C","ignoreList":[]}
1
+ {"version":3,"names":["AIAgent","useAction","VoiceService","AudioInputService","AudioOutputService","logger"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,yBAAsB;;AAE9C;AACA,SAASC,SAAS,QAAQ,sBAAmB;;AAE7C;AACA,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,iBAAiB,QAAQ,iCAA8B;AAChE,SAASC,kBAAkB,QAAQ,kCAA+B;;AAElE;AACA,SAASC,MAAM,QAAQ,mBAAgB;;AAEvC","ignoreList":[]}