@mobileai/react-native 0.4.2 → 0.4.4
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 +23 -3
- package/lib/module/components/AIAgent.js +216 -5
- package/lib/module/components/AIAgent.js.map +1 -1
- package/lib/module/components/AgentChatBar.js +358 -36
- package/lib/module/components/AgentChatBar.js.map +1 -1
- package/lib/module/core/AgentRuntime.js +122 -6
- package/lib/module/core/AgentRuntime.js.map +1 -1
- package/lib/module/core/systemPrompt.js +57 -0
- package/lib/module/core/systemPrompt.js.map +1 -1
- package/lib/module/index.js +8 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/providers/GeminiProvider.js +108 -85
- package/lib/module/providers/GeminiProvider.js.map +1 -1
- package/lib/module/services/AudioInputService.js +128 -0
- package/lib/module/services/AudioInputService.js.map +1 -0
- package/lib/module/services/AudioOutputService.js +154 -0
- package/lib/module/services/AudioOutputService.js.map +1 -0
- package/lib/module/services/VoiceService.js +361 -0
- package/lib/module/services/VoiceService.js.map +1 -0
- package/lib/module/utils/audioUtils.js +49 -0
- package/lib/module/utils/audioUtils.js.map +1 -0
- package/lib/module/utils/logger.js +21 -4
- package/lib/module/utils/logger.js.map +1 -1
- package/lib/typescript/babel.config.d.ts +10 -0
- package/lib/typescript/babel.config.d.ts.map +1 -0
- package/lib/typescript/eslint.config.d.mts +3 -0
- package/lib/typescript/eslint.config.d.mts.map +1 -0
- package/lib/typescript/fetch-models.d.mts +2 -0
- package/lib/typescript/fetch-models.d.mts.map +1 -0
- package/lib/typescript/list-all-models.d.mts +2 -0
- package/lib/typescript/list-all-models.d.mts.map +1 -0
- package/lib/typescript/list-models.d.mts +2 -0
- package/lib/typescript/list-models.d.mts.map +1 -0
- package/lib/typescript/src/components/AIAgent.d.ts +8 -2
- package/lib/typescript/src/components/AIAgent.d.ts.map +1 -1
- package/lib/typescript/src/components/AgentChatBar.d.ts +19 -2
- package/lib/typescript/src/components/AgentChatBar.d.ts.map +1 -1
- package/lib/typescript/src/core/AgentRuntime.d.ts +17 -1
- package/lib/typescript/src/core/AgentRuntime.d.ts.map +1 -1
- package/lib/typescript/src/core/systemPrompt.d.ts +8 -0
- package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -1
- package/lib/typescript/src/core/types.d.ts +24 -1
- package/lib/typescript/src/core/types.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +6 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/providers/GeminiProvider.d.ts +22 -18
- package/lib/typescript/src/providers/GeminiProvider.d.ts.map +1 -1
- package/lib/typescript/src/services/AudioInputService.d.ts +31 -0
- package/lib/typescript/src/services/AudioInputService.d.ts.map +1 -0
- package/lib/typescript/src/services/AudioOutputService.d.ts +34 -0
- package/lib/typescript/src/services/AudioOutputService.d.ts.map +1 -0
- package/lib/typescript/src/services/VoiceService.d.ts +73 -0
- package/lib/typescript/src/services/VoiceService.d.ts.map +1 -0
- package/lib/typescript/src/utils/audioUtils.d.ts +17 -0
- package/lib/typescript/src/utils/audioUtils.d.ts.map +1 -0
- package/lib/typescript/src/utils/logger.d.ts +4 -0
- package/lib/typescript/src/utils/logger.d.ts.map +1 -1
- package/package.json +24 -8
- package/src/components/AIAgent.tsx +222 -3
- package/src/components/AgentChatBar.tsx +487 -42
- package/src/core/AgentRuntime.ts +131 -2
- package/src/core/systemPrompt.ts +62 -0
- package/src/core/types.ts +30 -0
- package/src/index.ts +16 -0
- package/src/providers/GeminiProvider.ts +105 -89
- package/src/services/AudioInputService.ts +141 -0
- package/src/services/AudioOutputService.ts +167 -0
- package/src/services/VoiceService.ts +407 -0
- package/src/utils/audioUtils.ts +54 -0
- 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
|
-
|
|
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 "${
|
|
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":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,oBAAiB;AACxC,SAASC,aAAa,QAAQ,sBAAmB;AAEjD,SAASC,eAAe,QAAQ,uBAAoB;AACpD,SAASC,iBAAiB,QAAQ,mBAAgB;AAWlD,MAAMC,iBAAiB,GAAG,EAAE;;AAE5B;;AAEA,OAAO,MAAMC,YAAY,CAAC;EAKhBC,KAAK,GAAgC,IAAIC,GAAG,CAAC,CAAC;EAC9CC,OAAO,GAAkC,IAAID,GAAG,CAAC,CAAC;EAClDE,OAAO,GAAgB,EAAE;EACzBC,SAAS,GAAG,KAAK;EACjBC,mBAAmB,GAAkB,IAAI;EAEjDC,WAAWA,CACTC,QAAoB,EACpBC,MAAmB,EACnBC,OAAY,EACZC,MAAW,EACX;IACA,IAAI,CAACH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,MAAM,GAAGA,MAAM;IAEpB,IAAI,CAACC,oBAAoB,CAAC,CAAC;;IAE3B;IACA,IAAIH,MAAM,CAACI,WAAW,EAAE;MACtB,KAAK,MAAM,CAACC,IAAI,EAAEC,IAAI,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACR,MAAM,CAACI,WAAW,CAAC,EAAE;QAC7D,IAAIE,IAAI,KAAK,IAAI,EAAE;UACjB,IAAI,CAACd,KAAK,CAACiB,MAAM,CAACJ,IAAI,CAAC;UACvBnB,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,iBAAiBL,IAAI,EAAE,CAAC;QACtD,CAAC,MAAM;UACL,IAAI,CAACb,KAAK,CAACmB,GAAG,CAACN,IAAI,EAAEC,IAAI,CAAC;UAC1BpB,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,kBAAkBL,IAAI,EAAE,CAAC;QACvD;MACF;IACF;EACF;;EAEA;;EAEQF,oBAAoBA,CAAA,EAAS;IACnC;IACA,IAAI,CAACX,KAAK,CAACmB,GAAG,CAAC,KAAK,EAAE;MACpBN,IAAI,EAAE,KAAK;MACXO,WAAW,EAAE,yGAAyG;MACtHC,UAAU,EAAE;QACVC,KAAK,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEH,WAAW,EAAE,iCAAiC;UAAEI,QAAQ,EAAE;QAAK;MAC1F,CAAC;MACDC,OAAO,EAAE,MAAOC,IAAI,IAAK;QACvB,MAAM;UAAEC,YAAY,EAAEC;QAAS,CAAC,GAAGjC,aAAa,CAAC,IAAI,CAACc,OAAO,EAAE,IAAI,CAACoB,aAAa,CAAC,CAAC,CAAC;QACpF,MAAMC,OAAO,GAAGF,QAAQ,CAACG,IAAI,CAACC,EAAE,IAAIA,EAAE,CAACV,KAAK,KAAKI,IAAI,CAACJ,KAAK,CAAC;QAC5D,IAAI,CAACQ,OAAO,EAAE;UACZ,OAAO,wBAAwBJ,IAAI,CAACJ,KAAK,kCAAkCM,QAAQ,CAACK,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACZ,KAAK,CAAC,CAACa,IAAI,CAAC,IAAI,CAAC,EAAE;QACpH;;QAEA;QACA,IAAIL,OAAO,CAACP,IAAI,KAAK,QAAQ,IAAIO,OAAO,CAACM,KAAK,CAACC,aAAa,EAAE;UAC5D,IAAI;YACFP,OAAO,CAACM,KAAK,CAACC,aAAa,CAAC,CAACP,OAAO,CAACM,KAAK,CAACE,KAAK,CAAC;YACjD,MAAM,IAAIC,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO,cAAcd,IAAI,CAACJ,KAAK,MAAMQ,OAAO,CAACY,KAAK,QAAQ,CAACZ,OAAO,CAACM,KAAK,CAACE,KAAK,EAAE;UAClF,CAAC,CAAC,OAAOK,KAAU,EAAE;YACnB,OAAO,qBAAqBjB,IAAI,CAACJ,KAAK,MAAMqB,KAAK,CAACC,OAAO,EAAE;UAC7D;QACF;;QAEA;QACA,IAAId,OAAO,CAACM,KAAK,CAACS,OAAO,EAAE;UACzB,IAAI;YACFf,OAAO,CAACM,KAAK,CAACS,OAAO,CAAC,CAAC;YACvB,MAAM,IAAIN,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO,aAAad,IAAI,CAACJ,KAAK,MAAMQ,OAAO,CAACY,KAAK,GAAG;UACtD,CAAC,CAAC,OAAOC,KAAU,EAAE;YACnB,OAAO,oBAAoBjB,IAAI,CAACJ,KAAK,MAAMqB,KAAK,CAACC,OAAO,EAAE;UAC5D;QACF;;QAEA;QACA,IAAIE,KAAK,GAAGhB,OAAO,CAACiB,SAAS,EAAEC,MAAM;QACrC,IAAIC,WAAW,GAAG,CAAC;QACnB,OAAOH,KAAK,IAAIG,WAAW,GAAG,CAAC,EAAE;UAC/B,MAAMC,WAAW,GAAGJ,KAAK,CAACK,aAAa,IAAI,CAAC,CAAC;UAC7C,IAAID,WAAW,CAACL,OAAO,IAAI,OAAOK,WAAW,CAACL,OAAO,KAAK,UAAU,EAAE;YACpE,IAAI;cACFK,WAAW,CAACL,OAAO,CAAC,CAAC;cACrB,MAAM,IAAIN,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;cACtD,OAAO,uBAAuBd,IAAI,CAACJ,KAAK,MAAMQ,OAAO,CAACY,KAAK,GAAG;YAChE,CAAC,CAAC,OAAOC,KAAU,EAAE;cACnB,OAAO,8BAA8BjB,IAAI,CAACJ,KAAK,MAAMqB,KAAK,CAACC,OAAO,EAAE;YACtE;UACF;UACAE,KAAK,GAAGA,KAAK,CAACE,MAAM;UACpBC,WAAW,EAAE;QACf;QAEA,OAAO,cAAcvB,IAAI,CAACJ,KAAK,MAAMQ,OAAO,CAACY,KAAK,2DAA2D;MAC/G;IACF,CAAC,CAAC;;IAEF;IACA,IAAI,CAAC1C,KAAK,CAACmB,GAAG,CAAC,MAAM,EAAE;MACrBN,IAAI,EAAE,MAAM;MACZO,WAAW,EAAE,mDAAmD;MAChEC,UAAU,EAAE;QACVC,KAAK,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEH,WAAW,EAAE,qCAAqC;UAAEI,QAAQ,EAAE;QAAK,CAAC;QAC7F4B,IAAI,EAAE;UAAE7B,IAAI,EAAE,QAAQ;UAAEH,WAAW,EAAE,kBAAkB;UAAEI,QAAQ,EAAE;QAAK;MAC1E,CAAC;MACDC,OAAO,EAAE,MAAOC,IAAI,IAAK;QACvB,MAAM;UAAEC,YAAY,EAAEC;QAAS,CAAC,GAAGjC,aAAa,CAAC,IAAI,CAACc,OAAO,EAAE,IAAI,CAACoB,aAAa,CAAC,CAAC,CAAC;QACpF,MAAMC,OAAO,GAAGF,QAAQ,CAACG,IAAI,CAACC,EAAE,IAAIA,EAAE,CAACV,KAAK,KAAKI,IAAI,CAACJ,KAAK,CAAC;QAC5D,IAAI,CAACQ,OAAO,EAAE;UACZ,OAAO,wBAAwBJ,IAAI,CAACJ,KAAK,aAAa;QACxD;QACA,IAAI,CAACQ,OAAO,CAACM,KAAK,CAACiB,YAAY,EAAE;UAC/B,OAAO,cAAc3B,IAAI,CAACJ,KAAK,MAAMQ,OAAO,CAACY,KAAK,wBAAwB;QAC5E;QACA,IAAI;UACFZ,OAAO,CAACM,KAAK,CAACiB,YAAY,CAAC3B,IAAI,CAAC0B,IAAI,CAAC;UACrC,OAAO,YAAY1B,IAAI,CAAC0B,IAAI,WAAW1B,IAAI,CAACJ,KAAK,MAAMQ,OAAO,CAACY,KAAK,GAAG;QACzE,CAAC,CAAC,OAAOC,KAAU,EAAE;UACnB,OAAO,mBAAmBA,KAAK,CAACC,OAAO,EAAE;QAC3C;MACF;IACF,CAAC,CAAC;;IAEF;IACA,IAAI,CAAC5C,KAAK,CAACmB,GAAG,CAAC,UAAU,EAAE;MACzBN,IAAI,EAAE,UAAU;MAChBO,WAAW,EAAE,2CAA2C;MACxDC,UAAU,EAAE;QACViC,MAAM,EAAE;UAAE/B,IAAI,EAAE,QAAQ;UAAEH,WAAW,EAAE,oCAAoC;UAAEI,QAAQ,EAAE;QAAK,CAAC;QAC7F+B,MAAM,EAAE;UAAEhC,IAAI,EAAE,QAAQ;UAAEH,WAAW,EAAE,6BAA6B;UAAEI,QAAQ,EAAE;QAAM;MACxF,CAAC;MACDC,OAAO,EAAE,MAAOC,IAAI,IAAK;QACvB;QACA,IAAI,IAAI,CAAClB,MAAM,CAACgD,MAAM,EAAE;UACtB,IAAI;YACF,MAAMC,IAAI,GAAG/B,IAAI,CAAC4B,MAAM,CAACI,UAAU,CAAC,GAAG,CAAC,GAAGhC,IAAI,CAAC4B,MAAM,GAAG,IAAI5B,IAAI,CAAC4B,MAAM,EAAE;YAC1E,IAAI,CAAC9C,MAAM,CAACgD,MAAM,CAACG,IAAI,CAACF,IAAI,CAAC;YAC7B,MAAM,IAAIlB,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO,mBAAmBiB,IAAI,GAAG;UACnC,CAAC,CAAC,OAAOd,KAAU,EAAE;YACnB,OAAO,uBAAuBA,KAAK,CAACC,OAAO,EAAE;UAC/C;QACF;;QAEA;QACA,IAAI,CAAC,IAAI,CAAClC,MAAM,EAAE;UAChB,OAAO,iCAAiC;QAC1C;QACA,IAAI,CAAC,IAAI,CAACA,MAAM,CAACkD,OAAO,CAAC,CAAC,EAAE;UAC1B,MAAM,IAAIrB,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,IAAI,CAAC,CAAC;UACvD,IAAI,CAAC,IAAI,CAAC9B,MAAM,CAACkD,OAAO,CAAC,CAAC,EAAE;YAC1B,OAAO,gCAAgC;UACzC;QACF;QACA,IAAI;UACF,MAAML,MAAM,GAAG7B,IAAI,CAAC6B,MAAM,GAAI,OAAO7B,IAAI,CAAC6B,MAAM,KAAK,QAAQ,GAAGM,IAAI,CAACC,KAAK,CAACpC,IAAI,CAAC6B,MAAM,CAAC,GAAG7B,IAAI,CAAC6B,MAAM,GAAIQ,SAAS;UAClH;UACA,MAAMC,eAAe,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;UAC5C,MAAMC,aAAa,GAAGF,eAAe,CAACjC,IAAI,CACxCoC,CAAC,IAAIA,CAAC,CAACC,WAAW,CAAC,CAAC,KAAK1C,IAAI,CAAC4B,MAAM,CAACc,WAAW,CAAC,CACnD,CAAC,IAAI1C,IAAI,CAAC4B,MAAM;UAChB,IAAI,CAAC5C,MAAM,CAAC2D,QAAQ,CAACH,aAAa,EAAEX,MAAM,CAAC;UAC3C,MAAM,IAAIhB,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;UACtD,OAAO,mBAAmB0B,aAAa,IAAIX,MAAM,GAAG,iBAAiBM,IAAI,CAACS,SAAS,CAACf,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE;QACtG,CAAC,CAAC,OAAOZ,KAAU,EAAE;UACnB,OAAO,uBAAuBA,KAAK,CAACC,OAAO,wBAAwB,IAAI,CAACqB,aAAa,CAAC,CAAC,CAAC9B,IAAI,CAAC,IAAI,CAAC,EAAE;QACtG;MACF;IACF,CAAC,CAAC;;IAEF;IACA,IAAI,CAACnC,KAAK,CAACmB,GAAG,CAAC,MAAM,EAAE;MACrBN,IAAI,EAAE,MAAM;MACZO,WAAW,EAAE,+CAA+C;MAC5DC,UAAU,EAAE;QACV+B,IAAI,EAAE;UAAE7B,IAAI,EAAE,QAAQ;UAAEH,WAAW,EAAE,8BAA8B;UAAEI,QAAQ,EAAE;QAAK,CAAC;QACrF+C,OAAO,EAAE;UAAEhD,IAAI,EAAE,SAAS;UAAEH,WAAW,EAAE,6CAA6C;UAAEI,QAAQ,EAAE;QAAK;MACzG,CAAC;MACDC,OAAO,EAAE,MAAOC,IAAI,IAAK;QACvB,OAAOA,IAAI,CAAC0B,IAAI;MAClB;IACF,CAAC,CAAC;;IAEF;IACA,IAAI,CAACpD,KAAK,CAACmB,GAAG,CAAC,UAAU,EAAE;MACzBN,IAAI,EAAE,UAAU;MAChBO,WAAW,EAAE,4GAA4G;MACzHC,UAAU,EAAE;QACVmD,QAAQ,EAAE;UAAEjD,IAAI,EAAE,QAAQ;UAAEH,WAAW,EAAE,0BAA0B;UAAEI,QAAQ,EAAE;QAAK;MACtF,CAAC;MACDC,OAAO,EAAE,MAAOC,IAAI,IAAK;QACvB,IAAI,IAAI,CAAClB,MAAM,CAACiE,SAAS,EAAE;UACzB;UACA,IAAI,CAACjE,MAAM,CAACkE,cAAc,GAAG,4BAA4B,CAAC;UAC1D,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACnE,MAAM,CAACiE,SAAS,CAAC/C,IAAI,CAAC8C,QAAQ,CAAC;UACzD,OAAO,kBAAkBG,MAAM,EAAE;QACnC;QACA;QACA,OAAO,KAAKjD,IAAI,CAAC8C,QAAQ,EAAE;MAC7B;IACF,CAAC,CAAC;;IAEF;IACA,IAAI,CAACxE,KAAK,CAACmB,GAAG,CAAC,oBAAoB,EAAE;MACnCN,IAAI,EAAE,oBAAoB;MAC1BO,WAAW,EAAE,4LAA4L;MACzMC,UAAU,EAAE,CAAC,CAAC;MACdI,OAAO,EAAE,MAAAA,CAAA,KAAY;QACnB,MAAMmD,UAAU,GAAG,MAAM,IAAI,CAACC,iBAAiB,CAAC,CAAC;QACjD,IAAID,UAAU,EAAE;UACd,OAAO,0BAA0BE,IAAI,CAACC,KAAK,CAACH,UAAU,CAACI,MAAM,GAAG,IAAI,CAAC,oDAAoD;QAC3H;QACA,OAAO,2EAA2E;MACpF;IACF,CAAC,CAAC;EACJ;;EAEA;;EAEAC,cAAcA,CAACC,MAAwB,EAAQ;IAC7C,IAAI,CAAChF,OAAO,CAACiB,GAAG,CAAC+D,MAAM,CAACrE,IAAI,EAAEqE,MAAM,CAAC;IACrCxF,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,sBAAsBgE,MAAM,CAACrE,IAAI,EAAE,CAAC;EAClE;EAEAsE,gBAAgBA,CAACtE,IAAY,EAAQ;IACnC,IAAI,CAACX,OAAO,CAACe,MAAM,CAACJ,IAAI,CAAC;EAC3B;;EAEA;;EAEA;AACF;AACA;AACA;EACUoD,aAAaA,CAAA,EAAa;IAChC,IAAI;MACF,IAAI,CAAC,IAAI,CAACvD,MAAM,EAAEkD,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE;MACxC,MAAMwB,KAAK,GAAG,IAAI,CAAC1E,MAAM,EAAE2E,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC3E,MAAM,EAAE4E,QAAQ,GAAG,CAAC;MACxE,IAAI,CAACF,KAAK,EAAE,OAAO,EAAE;MACrB,OAAO,IAAI,CAACG,iBAAiB,CAACH,KAAK,CAAC;IACtC,CAAC,CAAC,MAAM;MACN,OAAO,EAAE;IACX;EACF;EAEQG,iBAAiBA,CAACH,KAAU,EAAY;IAC9C,MAAMI,KAAe,GAAG,EAAE;IAC1B,IAAIJ,KAAK,EAAEK,MAAM,EAAE;MACjB,KAAK,MAAMC,KAAK,IAAIN,KAAK,CAACK,MAAM,EAAE;QAChCD,KAAK,CAAC7B,IAAI,CAAC+B,KAAK,CAAC7E,IAAI,CAAC;QACtB;QACA,IAAI6E,KAAK,CAACN,KAAK,EAAE;UACfI,KAAK,CAAC7B,IAAI,CAAC,GAAG,IAAI,CAAC4B,iBAAiB,CAACG,KAAK,CAACN,KAAK,CAAC,CAAC;QACpD;MACF;IACF;IACA,OAAO,CAAC,GAAG,IAAIO,GAAG,CAACH,KAAK,CAAC,CAAC;EAC5B;;EAEA;AACF;AACA;AACA;EACUI,oBAAoBA,CAAA,EAAW;IACrC;IACA,IAAI,IAAI,CAACpF,MAAM,CAACqF,QAAQ,EAAE;MACxB,MAAMC,QAAQ,GAAG,IAAI,CAACtF,MAAM,CAACqF,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;MAChE,OAAOH,QAAQ,CAACA,QAAQ,CAACd,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS;IACnD;IAEA,IAAI;MACF,IAAI,CAAC,IAAI,CAACtE,MAAM,EAAEkD,OAAO,GAAG,CAAC,EAAE,OAAO,SAAS;MAC/C,MAAMwB,KAAK,GAAG,IAAI,CAAC1E,MAAM,EAAE2E,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC3E,MAAM,EAAE4E,QAAQ,GAAG,CAAC;MACxE,IAAI,CAACF,KAAK,EAAE,OAAO,SAAS;MAC5B,OAAO,IAAI,CAACc,oBAAoB,CAACd,KAAK,CAAC;IACzC,CAAC,CAAC,MAAM;MACN,OAAO,SAAS;IAClB;EACF;EAEQc,oBAAoBA,CAACd,KAAU,EAAU;IAC/C,IAAI,CAACA,KAAK,EAAEK,MAAM,IAAIL,KAAK,CAAC9D,KAAK,IAAI,IAAI,EAAE,OAAO,SAAS;IAC3D,MAAMoE,KAAK,GAAGN,KAAK,CAACK,MAAM,CAACL,KAAK,CAAC9D,KAAK,CAAC;IACvC,IAAI,CAACoE,KAAK,EAAE,OAAO,SAAS;IAC5B;IACA,IAAIA,KAAK,CAACN,KAAK,EAAE;MACf,OAAO,IAAI,CAACc,oBAAoB,CAACR,KAAK,CAACN,KAAK,CAAC;IAC/C;IACA,OAAOM,KAAK,CAAC7E,IAAI,IAAI,SAAS;EAChC;;EAEA;EACQsF,kBAAkBA,CAACC,QAAgB,EAAE1E,IAAyB,EAAU;IAC9E,QAAQ0E,QAAQ;MACd,KAAK,KAAK;QACR,OAAO,mBAAmB1E,IAAI,CAACJ,KAAK,IAAI,EAAE,KAAK;MACjD,KAAK,MAAM;QACT,OAAO,sBAAsB;MAC/B,KAAK,UAAU;QACb,OAAO,iBAAiBI,IAAI,CAAC4B,MAAM,IAAI,QAAQ,KAAK;MACtD,KAAK,MAAM;QACT,OAAO,gBAAgB;MACzB,KAAK,UAAU;QACb,OAAO,0BAA0B;MACnC;QACE,OAAO,WAAW8C,QAAQ,KAAK;IACnC;EACF;;EAEA;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAcvB,iBAAiBA,CAAA,EAAgC;IAC7D,IAAI;MACF,MAAMwB,QAAQ,GAAGC,OAAO,CAAC,wBAAwB,CAAC;MAClD,MAAMC,UAAU,GAAGF,QAAQ,CAACE,UAAU,IAAIF,QAAQ,CAACG,OAAO,EAAED,UAAU;MACtE,IAAI,CAACA,UAAU,IAAI,CAAC,IAAI,CAAC9F,OAAO,EAAE,OAAOsD,SAAS;MAElD,MAAM0C,GAAG,GAAG,MAAMF,UAAU,CAAC,IAAI,CAAC9F,OAAO,EAAE;QACzCiG,MAAM,EAAE,KAAK;QACbC,OAAO,EAAE,GAAG;QACZC,KAAK,EAAE,GAAG;QACVC,MAAM,EAAE;MACV,CAAC,CAAC;MAEFnH,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,wBAAwB4D,IAAI,CAACC,KAAK,CAAC,CAAC0B,GAAG,EAAEzB,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;MACtG,OAAOyB,GAAG,IAAI1C,SAAS;IACzB,CAAC,CAAC,OAAOpB,KAAU,EAAE;MACnB;MACA,IAAIA,KAAK,CAACC,OAAO,EAAEkE,QAAQ,CAAC,oBAAoB,CAAC,IAAInE,KAAK,CAACoE,IAAI,KAAK,kBAAkB,EAAE;QACtFrH,MAAM,CAACsH,IAAI,CAAC,cAAc,EAAE,mGAAmG,CAAC;MAClI,CAAC,MAAM;QACLtH,MAAM,CAACuH,KAAK,CAAC,cAAc,EAAE,uBAAuBtE,KAAK,CAACC,OAAO,EAAE,CAAC;MACtE;MACA,OAAOmB,SAAS;IAClB;EACF;;EAEA;;EAEA;AACF;AACA;AACA;AACA;EACSmD,gBAAgBA,CAAA,EAAW;IAChC,IAAI;MACF,MAAMC,UAAU,GAAGxH,aAAa,CAAC,IAAI,CAACc,OAAO,EAAE,IAAI,CAACoB,aAAa,CAAC,CAAC,CAAC;MACpE,MAAMuF,UAAU,GAAG,IAAI,CAACxB,oBAAoB,CAAC,CAAC;MAC9C,MAAMtC,MAAM,GAAG1D,eAAe,CAC5BwH,UAAU,EACV,IAAI,CAACnD,aAAa,CAAC,CAAC,EACpBkD,UAAU,CAACE,YAAY,EACvBF,UAAU,CAACxF,YACb,CAAC;MAED,OAAO;AACb,kBAAkByF,UAAU;AAC5B,qBAAqB,IAAI,CAACnD,aAAa,CAAC,CAAC,CAAC9B,IAAI,CAAC,IAAI,CAAC;AACpD;AACA,EAAEmB,MAAM,CAAC+D,YAAY;AACrB,iBAAiB;IACb,CAAC,CAAC,OAAO1E,KAAU,EAAE;MACnBjD,MAAM,CAACiD,KAAK,CAAC,cAAc,EAAE,4BAA4BA,KAAK,CAACC,OAAO,EAAE,CAAC;MACzE,OAAO,qDAAqD;IAC9D;EACF;;EAEA;;EAEQ0E,qBAAqBA,CAAA,EAAqB;IAChD,MAAMC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAACvH,KAAK,CAACwH,MAAM,CAAC,CAAC,CAAC;;IAEzC;IACA,KAAK,MAAMtC,MAAM,IAAI,IAAI,CAAChF,OAAO,CAACsH,MAAM,CAAC,CAAC,EAAE;MAC1CD,QAAQ,CAAC5D,IAAI,CAAC;QACZ9C,IAAI,EAAEqE,MAAM,CAACrE,IAAI;QACjBO,WAAW,EAAE8D,MAAM,CAAC9D,WAAW;QAC/BC,UAAU,EAAEN,MAAM,CAAC0G,WAAW,CAC5B1G,MAAM,CAACC,OAAO,CAACkE,MAAM,CAAC7D,UAAU,CAAC,CAACY,GAAG,CAAC,CAAC,CAACyF,GAAG,EAAEC,OAAO,CAAC,KAAK,CACxDD,GAAG,EACH;UAAEnG,IAAI,EAAEoG,OAAc;UAAEvG,WAAW,EAAEsG,GAAG;UAAElG,QAAQ,EAAE;QAAK,CAAC,CAC3D,CACH,CAAC;QACDC,OAAO,EAAE,MAAOC,IAAI,IAAK;UACvB,IAAI;YACF,MAAMmF,MAAM,GAAG3B,MAAM,CAAC0C,OAAO,CAAClG,IAAI,CAAC;YACnC,OAAO,OAAOmF,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGhD,IAAI,CAACS,SAAS,CAACuC,MAAM,CAAC;UACrE,CAAC,CAAC,OAAOlE,KAAU,EAAE;YACnB,OAAO,aAAauC,MAAM,CAACrE,IAAI,aAAa8B,KAAK,CAACC,OAAO,EAAE;UAC7D;QACF;MACF,CAAC,CAAC;IACJ;IAEA,OAAO2E,QAAQ;EACjB;;EAEA;EACOM,QAAQA,CAAA,EAAqB;IAClC,OAAO,IAAI,CAACP,qBAAqB,CAAC,CAAC;EACrC;;EAEA;EACA,MAAaQ,WAAWA,CAACjH,IAAY,EAAEa,IAAyB,EAAmB;IACjF,MAAMZ,IAAI,GAAG,IAAI,CAACd,KAAK,CAAC+H,GAAG,CAAClH,IAAI,CAAC,IAC/B,IAAI,CAACyG,qBAAqB,CAAC,CAAC,CAACvF,IAAI,CAACiG,CAAC,IAAIA,CAAC,CAACnH,IAAI,KAAKA,IAAI,CAAC;IACzD,IAAI,CAACC,IAAI,EAAE;MACT,OAAO,mBAAmBD,IAAI,EAAE;IAClC;IACA,IAAI;MACF,MAAMgG,MAAM,GAAG,MAAM/F,IAAI,CAACW,OAAO,CAACC,IAAI,CAAC;MACvChC,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,wBAAwBL,IAAI,MAAMgG,MAAM,EAAE,CAAC;MACvE,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOlE,KAAU,EAAE;MACnBjD,MAAM,CAACiD,KAAK,CAAC,cAAc,EAAE,qBAAqB9B,IAAI,MAAM8B,KAAK,CAACC,OAAO,EAAE,CAAC;MAC5E,OAAO,WAAW/B,IAAI,aAAa8B,KAAK,CAACC,OAAO,EAAE;IACpD;EACF;;EAEA;;EAEQf,aAAaA,CAAA,EAAe;IAClC,OAAO;MACLoG,oBAAoB,EAAE,IAAI,CAACzH,MAAM,CAACyH,oBAAoB;MACtDC,oBAAoB,EAAE,IAAI,CAAC1H,MAAM,CAAC0H;IACpC,CAAC;EACH;;EAEA;;EAEQC,eAAeA,CAACf,UAAkB,EAAU;IAClD,MAAM;MAAEgB;IAAa,CAAC,GAAG,IAAI,CAAC5H,MAAM;IACpC,IAAI,CAAC4H,YAAY,EAAE,OAAO,EAAE;IAE5B,IAAIvB,MAAM,GAAG,EAAE;IACf,IAAIuB,YAAY,CAACC,MAAM,EAAEC,IAAI,CAAC,CAAC,EAAE;MAC/BzB,MAAM,IAAI,0BAA0BuB,YAAY,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,4BAA4B;IAC5F;IAEA,IAAIF,YAAY,CAACG,qBAAqB,EAAE;MACtC,IAAI;QACF,MAAMC,kBAAkB,GAAGJ,YAAY,CAACG,qBAAqB,CAACnB,UAAU,CAAC,EAAEkB,IAAI,CAAC,CAAC;QACjF,IAAIE,kBAAkB,EAAE;UACtB3B,MAAM,IAAI,0BAA0B2B,kBAAkB,4BAA4B;QACpF;MACF,CAAC,CAAC,OAAO7F,KAAK,EAAE;QACdjD,MAAM,CAACiD,KAAK,CAAC,cAAc,EAAE,oCAAoC,EAAEA,KAAK,CAAC;MAC3E;IACF;IAEA,OAAOkE,MAAM,GAAG,mBAAmBA,MAAM,qBAAqB,GAAG,EAAE;EACrE;;EAEA;;EAEQ4B,YAAY,GAAa,EAAE;EAC3BC,cAAc,GAAW,EAAE;EAE3BC,kBAAkBA,CAACC,IAAY,EAAEC,QAAgB,EAAEzB,UAAkB,EAAQ;IACnF;IACA,IAAI,IAAI,CAACsB,cAAc,IAAItB,UAAU,KAAK,IAAI,CAACsB,cAAc,EAAE;MAC7D,IAAI,CAACD,YAAY,CAAC9E,IAAI,CAAC,yBAAyByD,UAAU,EAAE,CAAC;IAC/D;IACA,IAAI,CAACsB,cAAc,GAAGtB,UAAU;;IAEhC;IACA,MAAM0B,SAAS,GAAGD,QAAQ,GAAGD,IAAI;IACjC,IAAIE,SAAS,KAAK,CAAC,EAAE;MACnB,IAAI,CAACL,YAAY,CAAC9E,IAAI,CACpB,WAAWmF,SAAS,8EACtB,CAAC;IACH,CAAC,MAAM,IAAIA,SAAS,KAAK,CAAC,EAAE;MAC1B,IAAI,CAACL,YAAY,CAAC9E,IAAI,CACpB,qBAAqBmF,SAAS,iEAChC,CAAC;IACH;EACF;;EAEA;;EAEQC,kBAAkBA,CACxBH,IAAY,EACZC,QAAgB,EAChBG,iBAAyB,EACzB5B,UAAkB,EAClB6B,aAAqB,EACb;IACR,IAAIC,MAAM,GAAG,EAAE;;IAEf;IACAA,MAAM,IAAI,IAAI,CAACf,eAAe,CAACf,UAAU,CAAC;;IAE1C;IACA8B,MAAM,IAAI,iBAAiB;IAC3BA,MAAM,IAAI,kBAAkB;IAC5BA,MAAM,IAAI,GAAGF,iBAAiB,IAAI;IAClCE,MAAM,IAAI,mBAAmB;IAC7BA,MAAM,IAAI,eAAe;IACzBA,MAAM,IAAI,QAAQN,IAAI,GAAG,CAAC,OAAOC,QAAQ,uBAAuB;IAChEK,MAAM,IAAI,gBAAgB;IAC1BA,MAAM,IAAI,oBAAoB;;IAE9B;IACAA,MAAM,IAAI,mBAAmB;IAE7B,IAAIC,SAAS,GAAG,CAAC;IACjB,KAAK,MAAMC,KAAK,IAAI,IAAI,CAACjJ,OAAO,EAAE;MAChCgJ,SAAS,EAAE;MACXD,MAAM,IAAI,SAASC,SAAS,KAAK;MACjCD,MAAM,IAAI,uBAAuBE,KAAK,CAACC,UAAU,CAACC,gBAAgB,IAAI;MACtEJ,MAAM,IAAI,WAAWE,KAAK,CAACC,UAAU,CAACE,MAAM,IAAI;MAChDL,MAAM,IAAI,SAASE,KAAK,CAACC,UAAU,CAACG,IAAI,IAAI;MAC5CN,MAAM,IAAI,kBAAkBE,KAAK,CAAClE,MAAM,CAACuE,MAAM,IAAI;MACnDP,MAAM,IAAI,UAAUC,SAAS,KAAK;IACpC;;IAEA;IACA,KAAK,MAAMO,GAAG,IAAI,IAAI,CAACjB,YAAY,EAAE;MACnCS,MAAM,IAAI,QAAQQ,GAAG,UAAU;IACjC;IACA,IAAI,CAACjB,YAAY,GAAG,EAAE;IAEtBS,MAAM,IAAI,sBAAsB;;IAEhC;IACAA,MAAM,IAAI,kBAAkB;IAC5BA,MAAM,IAAI,mBAAmB9B,UAAU,IAAI;IAC3C8B,MAAM,IAAID,aAAa,GAAG,IAAI;IAC9BC,MAAM,IAAI,mBAAmB;IAE7B,OAAOA,MAAM;EACf;;EAEA;;EAEA,MAAMzH,OAAOA,CAACkI,WAAmB,EAA4B;IAC3D,IAAI,IAAI,CAACvJ,SAAS,EAAE;MAClB,OAAO;QAAEmE,OAAO,EAAE,KAAK;QAAE3B,OAAO,EAAE,2BAA2B;QAAEgH,KAAK,EAAE;MAAG,CAAC;IAC5E;IAEA,IAAI,CAACxJ,SAAS,GAAG,IAAI;IACrB,IAAI,CAACD,OAAO,GAAG,EAAE;IACjB,IAAI,CAACsI,YAAY,GAAG,EAAE;IACtB,IAAI,CAACC,cAAc,GAAG,EAAE;IACxB,MAAMG,QAAQ,GAAG,IAAI,CAACrI,MAAM,CAACqI,QAAQ,IAAI/I,iBAAiB;IAC1D,MAAM+J,SAAS,GAAG,IAAI,CAACrJ,MAAM,CAACqJ,SAAS,IAAI,GAAG;;IAE9C;IACA,MAAMC,YAAwB,GAAG;MAC/BC,YAAY,EAAE,CAAC;MACfC,gBAAgB,EAAE,CAAC;MACnBC,WAAW,EAAE,CAAC;MACdC,gBAAgB,EAAE;IACpB,CAAC;;IAED;IACA,IAAIlB,iBAAiB,GAAGW,WAAW;IACnC,IAAI,IAAI,CAACtJ,mBAAmB,EAAE;MAC5B2I,iBAAiB,GAAG,oCAAoC,IAAI,CAAC3I,mBAAmB,uBAAuBsJ,WAAW,EAAE;MACpH,IAAI,CAACtJ,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACnC;IAEAX,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,wBAAwB8H,iBAAiB,GAAG,CAAC;;IAEzE;IACA,MAAM,IAAI,CAACxI,MAAM,CAAC2J,YAAY,GAAG,CAAC;IAElC,IAAI;MACF,KAAK,IAAIvB,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAGC,QAAQ,EAAED,IAAI,EAAE,EAAE;QAC1ClJ,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,cAAc0H,IAAI,GAAG,CAAC,IAAIC,QAAQ,QAAQ,CAAC;;QAEvE;QACA,MAAM,IAAI,CAACrI,MAAM,CAAC4J,YAAY,GAAGxB,IAAI,CAAC;;QAEtC;QACA,MAAMzB,UAAU,GAAGxH,aAAa,CAAC,IAAI,CAACc,OAAO,EAAE,IAAI,CAACoB,aAAa,CAAC,CAAC,CAAC;QACpE,MAAMuF,UAAU,GAAG,IAAI,CAACxB,oBAAoB,CAAC,CAAC;QAC9C,MAAMtC,MAAM,GAAG1D,eAAe,CAC5BwH,UAAU,EACV,IAAI,CAACnD,aAAa,CAAC,CAAC,EACpBkD,UAAU,CAACE,YAAY,EACvBF,UAAU,CAACxF,YACb,CAAC;QAEDjC,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,WAAWoC,MAAM,CAAC8D,UAAU,EAAE,CAAC;QAC3D1H,MAAM,CAACuH,KAAK,CAAC,cAAc,EAAE,gBAAgB3D,MAAM,CAAC+D,YAAY,EAAE,CAAC;;QAEnE;QACA,IAAI4B,aAAa,GAAG3F,MAAM,CAAC+D,YAAY;QACvC,IAAI,IAAI,CAAC7G,MAAM,CAAC6J,sBAAsB,EAAE;UACtCpB,aAAa,GAAG,MAAM,IAAI,CAACzI,MAAM,CAAC6J,sBAAsB,CAACpB,aAAa,CAAC;QACzE;;QAEA;QACA,IAAI,CAACN,kBAAkB,CAACC,IAAI,EAAEC,QAAQ,EAAEzB,UAAU,CAAC;;QAEnD;QACA,MAAMkD,cAAc,GAAG,IAAI,CAACvB,kBAAkB,CAC5CH,IAAI,EAAEC,QAAQ,EAAEG,iBAAiB,EAAE5B,UAAU,EAAE6B,aACjD,CAAC;;QAED;QACA,MAAMrE,UAAU,GAAG,MAAM,IAAI,CAACC,iBAAiB,CAAC,CAAC;;QAEjD;QACA,IAAI,CAACrE,MAAM,CAACkE,cAAc,GAAG,qBAAqB,CAAC;QACnD,MAAM6F,YAAY,GAAG1K,iBAAiB,CAAC,IAAI,CAACW,MAAM,CAACgK,QAAQ,IAAI,IAAI,CAAC;QACpE,MAAMxK,KAAK,GAAG,IAAI,CAACsH,qBAAqB,CAAC,CAAC;QAE1C5H,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,sBAAsBlB,KAAK,CAACgF,MAAM,WAAW,CAAC;QAE1E,MAAMyF,QAAQ,GAAG,MAAM,IAAI,CAAClK,QAAQ,CAACmK,eAAe,CAClDH,YAAY,EACZD,cAAc,EACdtK,KAAK,EACL,IAAI,CAACG,OAAO,EACZyE,UACF,CAAC;;QAED;QACA,IAAI6F,QAAQ,CAACE,UAAU,EAAE;UACvBb,YAAY,CAACC,YAAY,IAAIU,QAAQ,CAACE,UAAU,CAACZ,YAAY;UAC7DD,YAAY,CAACE,gBAAgB,IAAIS,QAAQ,CAACE,UAAU,CAACX,gBAAgB;UACrEF,YAAY,CAACG,WAAW,IAAIQ,QAAQ,CAACE,UAAU,CAACV,WAAW;UAC3DH,YAAY,CAACI,gBAAgB,IAAIO,QAAQ,CAACE,UAAU,CAACT,gBAAgB;UACrE,IAAI,CAAC1J,MAAM,CAACoK,YAAY,GAAGH,QAAQ,CAACE,UAAU,CAAC;QACjD;;QAEA;QACA,IAAI,CAACF,QAAQ,CAACI,SAAS,IAAIJ,QAAQ,CAACI,SAAS,CAAC7F,MAAM,KAAK,CAAC,EAAE;UAC1DtF,MAAM,CAACsH,IAAI,CAAC,cAAc,EAAE,kCAAkC,EAAEyD,QAAQ,CAACrH,IAAI,CAAC;UAC9E,MAAMyD,MAAuB,GAAG;YAC9BtC,OAAO,EAAE,IAAI;YACb3B,OAAO,EAAE6H,QAAQ,CAACrH,IAAI,IAAI,iBAAiB;YAC3CwG,KAAK,EAAE,IAAI,CAACzJ,OAAO;YACnBwK,UAAU,EAAEb;UACd,CAAC;UACD,MAAM,IAAI,CAACtJ,MAAM,CAACsK,WAAW,GAAGjE,MAAM,CAAC;UACvC,OAAOA,MAAM;QACf;;QAEA;QACA,MAAM;UAAEkE;QAAU,CAAC,GAAGN,QAAQ;QAC9B/K,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,YAAY6J,SAAS,CAACvB,IAAI,EAAE,CAAC;QACzD,IAAIuB,SAAS,CAACxB,MAAM,EAAE;UACpB7J,MAAM,CAACuH,KAAK,CAAC,cAAc,EAAE,cAAc8D,SAAS,CAACxB,MAAM,EAAE,CAAC;QAChE;;QAEA;QACA;QACA,MAAMyB,QAAQ,GAAGP,QAAQ,CAACI,SAAS,CAAC,CAAC,CAAE;QACvC,IAAIJ,QAAQ,CAACI,SAAS,CAAC7F,MAAM,GAAG,CAAC,EAAE;UACjCtF,MAAM,CAACsH,IAAI,CAAC,cAAc,EAAE,eAAeyD,QAAQ,CAACI,SAAS,CAAC7F,MAAM,4CAA4C,CAAC;QACnH;QAEAtF,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,SAAS8J,QAAQ,CAACnK,IAAI,IAAIgD,IAAI,CAACS,SAAS,CAAC0G,QAAQ,CAACtJ,IAAI,CAAC,GAAG,CAAC;;QAEvF;QACA,MAAMuJ,WAAW,GAAG,IAAI,CAAC9E,kBAAkB,CAAC6E,QAAQ,CAACnK,IAAI,EAAEmK,QAAQ,CAACtJ,IAAI,CAAC;QACzE,IAAI,CAAClB,MAAM,CAACkE,cAAc,GAAGuG,WAAW,CAAC;;QAEzC;QACA,MAAMnK,IAAI,GAAG,IAAI,CAACd,KAAK,CAAC+H,GAAG,CAACiD,QAAQ,CAACnK,IAAI,CAAC,IACxC,IAAI,CAACyG,qBAAqB,CAAC,CAAC,CAACvF,IAAI,CAACiG,CAAC,IAAIA,CAAC,CAACnH,IAAI,KAAKmK,QAAQ,CAACnK,IAAI,CAAC;QAElE,IAAI4I,MAAc;QAClB,IAAI3I,IAAI,EAAE;UACR2I,MAAM,GAAG,MAAM3I,IAAI,CAACW,OAAO,CAACuJ,QAAQ,CAACtJ,IAAI,CAAC;QAC5C,CAAC,MAAM;UACL+H,MAAM,GAAG,mBAAmBuB,QAAQ,CAACnK,IAAI,EAAE;QAC7C;QAEAnB,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,WAAWuI,MAAM,EAAE,CAAC;;QAEhD;QACA,MAAMyB,SAAoB,GAAG;UAC3B/B,SAAS,EAAEP,IAAI;UACfS,UAAU,EAAE0B,SAAS;UACrB7F,MAAM,EAAE;YACNrE,IAAI,EAAEmK,QAAQ,CAACnK,IAAI;YACnBsK,KAAK,EAAEH,QAAQ,CAACtJ,IAAI;YACpB+H;UACF;QACF,CAAC;QACD,IAAI,CAACtJ,OAAO,CAACwD,IAAI,CAACuH,SAAS,CAAC;;QAE5B;QACA,MAAM,IAAI,CAAC1K,MAAM,CAAC4K,WAAW,GAAG,IAAI,CAACjL,OAAO,CAAC;;QAE7C;QACA,IAAI6K,QAAQ,CAACnK,IAAI,KAAK,MAAM,EAAE;UAC5B,MAAMgG,MAAuB,GAAG;YAC9BtC,OAAO,EAAEyG,QAAQ,CAACtJ,IAAI,CAAC6C,OAAO,KAAK,KAAK;YACxC3B,OAAO,EAAEoI,QAAQ,CAACtJ,IAAI,CAAC0B,IAAI,IAAIqG,MAAM;YACrCG,KAAK,EAAE,IAAI,CAACzJ;UACd,CAAC;UACDT,MAAM,CAACwB,IAAI,CAAC,cAAc,EAAE,mBAAmB2F,MAAM,CAACjE,OAAO,EAAE,CAAC;UAChE,MAAM,IAAI,CAACpC,MAAM,CAACsK,WAAW,GAAGjE,MAAM,CAAC;UACvC,OAAOA,MAAM;QACf;;QAEA;QACA,IAAImE,QAAQ,CAACnK,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAACL,MAAM,CAACiE,SAAS,EAAE;UAC1D,IAAI,CAACpE,mBAAmB,GAAG2K,QAAQ,CAACtJ,IAAI,CAAC8C,QAAQ,IAAIiF,MAAM;UAE3D,MAAM5C,MAAuB,GAAG;YAC9BtC,OAAO,EAAE,IAAI;YACb3B,OAAO,EAAE6G,MAAM;YACfG,KAAK,EAAE,IAAI,CAACzJ;UACd,CAAC;UACD,MAAM,IAAI,CAACK,MAAM,CAACsK,WAAW,GAAGjE,MAAM,CAAC;UACvC,OAAOA,MAAM;QACf;;QAEA;QACA,MAAM,IAAItE,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAEqH,SAAS,CAAC,CAAC;MAC9D;;MAEA;MACA,MAAMhD,MAAuB,GAAG;QAC9BtC,OAAO,EAAE,KAAK;QACd3B,OAAO,EAAE,0BAA0BiG,QAAQ,gCAAgC;QAC3Ee,KAAK,EAAE,IAAI,CAACzJ,OAAO;QACnBwK,UAAU,EAAEb;MACd,CAAC;MACD,MAAM,IAAI,CAACtJ,MAAM,CAACsK,WAAW,GAAGjE,MAAM,CAAC;MACvC,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOlE,KAAU,EAAE;MACnBjD,MAAM,CAACiD,KAAK,CAAC,cAAc,EAAE,kBAAkB,EAAEA,KAAK,CAAC;MACvD,MAAMkE,MAAuB,GAAG;QAC9BtC,OAAO,EAAE,KAAK;QACd3B,OAAO,EAAE,UAAUD,KAAK,CAACC,OAAO,EAAE;QAClCgH,KAAK,EAAE,IAAI,CAACzJ,OAAO;QACnBwK,UAAU,EAAEb;MACd,CAAC;MACD,MAAM,IAAI,CAACtJ,MAAM,CAACsK,WAAW,GAAGjE,MAAM,CAAC;MACvC,OAAOA,MAAM;IACf,CAAC,SAAS;MACR,IAAI,CAACzG,SAAS,GAAG,KAAK;IACxB;EACF;;EAEA;EACAiL,UAAUA,CAAC5K,OAAY,EAAEC,MAAW,EAAQ;IAC1C,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;;EAEA;EACA4K,YAAYA,CAAA,EAAY;IACtB,OAAO,IAAI,CAAClL,SAAS;EACvB;AACF","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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -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
|
package/lib/module/index.js.map
CHANGED
|
@@ -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":[]}
|