@mobileai/react-native 0.1.0 → 0.3.0

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 (35) hide show
  1. package/README.md +78 -7
  2. package/lib/module/components/AIAgent.js +40 -4
  3. package/lib/module/components/AIAgent.js.map +1 -1
  4. package/lib/module/components/AgentChatBar.js +177 -29
  5. package/lib/module/components/AgentChatBar.js.map +1 -1
  6. package/lib/module/core/AgentRuntime.js +268 -126
  7. package/lib/module/core/AgentRuntime.js.map +1 -1
  8. package/lib/module/core/FiberTreeWalker.js +74 -20
  9. package/lib/module/core/FiberTreeWalker.js.map +1 -1
  10. package/lib/module/core/systemPrompt.js +164 -0
  11. package/lib/module/core/systemPrompt.js.map +1 -0
  12. package/lib/module/providers/GeminiProvider.js +189 -73
  13. package/lib/module/providers/GeminiProvider.js.map +1 -1
  14. package/lib/typescript/src/components/AIAgent.d.ts +9 -1
  15. package/lib/typescript/src/components/AIAgent.d.ts.map +1 -1
  16. package/lib/typescript/src/components/AgentChatBar.d.ts +4 -3
  17. package/lib/typescript/src/components/AgentChatBar.d.ts.map +1 -1
  18. package/lib/typescript/src/core/AgentRuntime.d.ts +16 -0
  19. package/lib/typescript/src/core/AgentRuntime.d.ts.map +1 -1
  20. package/lib/typescript/src/core/FiberTreeWalker.d.ts +5 -0
  21. package/lib/typescript/src/core/FiberTreeWalker.d.ts.map +1 -1
  22. package/lib/typescript/src/core/systemPrompt.d.ts +9 -0
  23. package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -0
  24. package/lib/typescript/src/core/types.d.ts +51 -13
  25. package/lib/typescript/src/core/types.d.ts.map +1 -1
  26. package/lib/typescript/src/providers/GeminiProvider.d.ts +33 -13
  27. package/lib/typescript/src/providers/GeminiProvider.d.ts.map +1 -1
  28. package/package.json +16 -14
  29. package/src/components/AIAgent.tsx +41 -1
  30. package/src/components/AgentChatBar.tsx +150 -28
  31. package/src/core/AgentRuntime.ts +287 -131
  32. package/src/core/FiberTreeWalker.ts +74 -19
  33. package/src/core/systemPrompt.ts +162 -0
  34. package/src/core/types.ts +58 -10
  35. package/src/providers/GeminiProvider.ts +174 -101
@@ -14,52 +14,9 @@
14
14
  import { logger } from "../utils/logger.js";
15
15
  import { walkFiberTree } from "./FiberTreeWalker.js";
16
16
  import { dehydrateScreen } from "./ScreenDehydrator.js";
17
+ import { buildSystemPrompt } from "./systemPrompt.js";
17
18
  const DEFAULT_MAX_STEPS = 10;
18
19
 
19
- // ─── System Prompt ─────────────────────────────────────────────
20
-
21
- function buildSystemPrompt(language) {
22
- const isArabic = language === 'ar';
23
- return `You are an AI agent that controls a React Native mobile app. You operate in an iterative loop to accomplish user requests.
24
-
25
- ${isArabic ? 'Respond to the user in Arabic.' : 'Respond to the user in English.'}
26
-
27
- <input>
28
- At every step you receive:
29
- 1. <screen_state>: Current screen name, available screens, and interactive elements indexed for actions.
30
- 2. <agent_history>: Your previous steps and their results.
31
- 3. <user_request>: The user's original request.
32
- </input>
33
-
34
- <screen_state>
35
- Interactive elements are listed as [index]<type attrs>label</>
36
- - index: numeric identifier for interaction
37
- - type: element type (pressable, text-input, switch)
38
- - label: visible text content of the element
39
-
40
- Only elements with [index] are interactive. Use the index to tap or type into them.
41
- </screen_state>
42
-
43
- <tools>
44
- Available tools:
45
- - tap(index): Tap an interactive element by its index. This triggers its onPress handler.
46
- - type(index, text): Type text into a text-input element by its index.
47
- - navigate(screen, params): Navigate to a specific screen. params is optional JSON object.
48
- - done(text, success): Complete the task. text is your response to the user.
49
- - ask_user(question): Ask the user for clarification if needed.
50
- </tools>
51
-
52
- <rules>
53
- - Only interact with elements that have an [index].
54
- - After tapping an element, the screen may change. Wait for the next step to see updated elements.
55
- - If the current screen doesn't have what you need, use navigate() to go to another screen.
56
- - If you're stuck or need more info, use ask_user().
57
- - When the task is complete, ALWAYS call done() with a summary.
58
- - Be efficient — complete tasks in as few steps as possible.
59
- - If a tap navigates to another screen, the next step will show the new screen's elements.
60
- </rules>`;
61
- }
62
-
63
20
  // ─── Agent Runtime ─────────────────────────────────────────────
64
21
 
65
22
  export class AgentRuntime {
@@ -92,10 +49,10 @@ export class AgentRuntime {
92
49
  // ─── Tool Registration ─────────────────────────────────────
93
50
 
94
51
  registerBuiltInTools() {
95
- // tap — tap an interactive element by index
52
+ // tap — universal interaction (mirrors RNTL's dispatchEvent pattern)
96
53
  this.tools.set('tap', {
97
54
  name: 'tap',
98
- description: 'Tap an interactive element by its index to trigger its onPress handler.',
55
+ description: 'Tap an interactive element by its index. Works universally on buttons, switches, and custom components.',
99
56
  parameters: {
100
57
  index: {
101
58
  type: 'number',
@@ -111,17 +68,47 @@ export class AgentRuntime {
111
68
  if (!element) {
112
69
  return `❌ Element with index ${args.index} not found. Available indexes: ${elements.map(e => e.index).join(', ')}`;
113
70
  }
114
- if (!element.props.onPress) {
115
- return `❌ Element [${args.index}] "${element.label}" does not have an onPress handler.`;
71
+
72
+ // Strategy 1: Switch call onValueChange (like RNTL's fireEvent('valueChange'))
73
+ if (element.type === 'switch' && element.props.onValueChange) {
74
+ try {
75
+ element.props.onValueChange(!element.props.value);
76
+ await new Promise(resolve => setTimeout(resolve, 500));
77
+ return `✅ Toggled [${args.index}] "${element.label}" to ${!element.props.value}`;
78
+ } catch (error) {
79
+ return `❌ Error toggling [${args.index}]: ${error.message}`;
80
+ }
116
81
  }
117
- try {
118
- element.props.onPress();
119
- // Wait for UI to update after tap
120
- await new Promise(resolve => setTimeout(resolve, 500));
121
- return `✅ Tapped [${args.index}] "${element.label}"`;
122
- } catch (error) {
123
- return `❌ Error tapping [${args.index}]: ${error.message}`;
82
+
83
+ // Strategy 2: Direct onPress (covers Pressable, Button, custom components)
84
+ if (element.props.onPress) {
85
+ try {
86
+ element.props.onPress();
87
+ await new Promise(resolve => setTimeout(resolve, 500));
88
+ return `✅ Tapped [${args.index}] "${element.label}"`;
89
+ } catch (error) {
90
+ return `❌ Error tapping [${args.index}]: ${error.message}`;
91
+ }
124
92
  }
93
+
94
+ // Strategy 3: Bubble up Fiber tree (like RNTL's findEventHandler → element.parent)
95
+ let fiber = element.fiberNode?.return;
96
+ let bubbleDepth = 0;
97
+ while (fiber && bubbleDepth < 5) {
98
+ const parentProps = fiber.memoizedProps || {};
99
+ if (parentProps.onPress && typeof parentProps.onPress === 'function') {
100
+ try {
101
+ parentProps.onPress();
102
+ await new Promise(resolve => setTimeout(resolve, 500));
103
+ return `✅ Tapped parent of [${args.index}] "${element.label}"`;
104
+ } catch (error) {
105
+ return `❌ Error tapping parent of [${args.index}]: ${error.message}`;
106
+ }
107
+ }
108
+ fiber = fiber.return;
109
+ bubbleDepth++;
110
+ }
111
+ return `❌ Element [${args.index}] "${element.label}" has no tap handler (no onPress or onValueChange found).`;
125
112
  }
126
113
  });
127
114
 
@@ -161,14 +148,14 @@ export class AgentRuntime {
161
148
  }
162
149
  });
163
150
 
164
- // navigate — navigate to a screen
151
+ // navigate — navigate to a screen (supports React Navigation + Expo Router)
165
152
  this.tools.set('navigate', {
166
153
  name: 'navigate',
167
154
  description: 'Navigate to a specific screen in the app.',
168
155
  parameters: {
169
156
  screen: {
170
157
  type: 'string',
171
- description: 'Screen name to navigate to',
158
+ description: 'Screen name or path to navigate to',
172
159
  required: true
173
160
  },
174
161
  params: {
@@ -178,16 +165,26 @@ export class AgentRuntime {
178
165
  }
179
166
  },
180
167
  execute: async args => {
168
+ // Expo Router path: use router.push()
169
+ if (this.config.router) {
170
+ try {
171
+ const path = args.screen.startsWith('/') ? args.screen : `/${args.screen}`;
172
+ this.config.router.push(path);
173
+ await new Promise(resolve => setTimeout(resolve, 500));
174
+ return `✅ Navigated to "${path}"`;
175
+ } catch (error) {
176
+ return `❌ Navigation error: ${error.message}`;
177
+ }
178
+ }
179
+
180
+ // React Navigation path: use navRef.navigate()
181
181
  if (!this.navRef) {
182
182
  return '❌ Navigation ref not available.';
183
183
  }
184
- // Per React Navigation docs: must check isReady() before navigate
185
- // https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization
186
184
  if (!this.navRef.isReady()) {
187
- // Wait a bit and retry — navigator may still be mounting
188
185
  await new Promise(resolve => setTimeout(resolve, 1000));
189
186
  if (!this.navRef.isReady()) {
190
- return '❌ Navigation is not ready yet. The navigator may not have finished mounting.';
187
+ return '❌ Navigation is not ready yet.';
191
188
  }
192
189
  }
193
190
  try {
@@ -222,10 +219,10 @@ export class AgentRuntime {
222
219
  }
223
220
  });
224
221
 
225
- // ask_user — ask for clarification
222
+ // ask_user — ask for clarification (mirrors page-agent: blocks until user responds)
226
223
  this.tools.set('ask_user', {
227
224
  name: 'ask_user',
228
- description: 'Ask the user for clarification or more information.',
225
+ description: 'Ask the user a question and wait for their answer. Use this if you need more information or clarification.',
229
226
  parameters: {
230
227
  question: {
231
228
  type: 'string',
@@ -234,6 +231,13 @@ export class AgentRuntime {
234
231
  }
235
232
  },
236
233
  execute: async args => {
234
+ if (this.config.onAskUser) {
235
+ // Page-agent pattern: block until user responds, then continue the loop
236
+ this.config.onStatusUpdate?.('Waiting for your answer...');
237
+ const answer = await this.config.onAskUser(args.question);
238
+ return `User answered: ${answer}`;
239
+ }
240
+ // Legacy fallback: break the loop (context will be lost)
237
241
  return `❓ ${args.question}`;
238
242
  }
239
243
  });
@@ -251,28 +255,81 @@ export class AgentRuntime {
251
255
 
252
256
  // ─── Navigation Helpers ────────────────────────────────────
253
257
 
258
+ /**
259
+ * Recursively collect ALL screen names from the navigation state tree.
260
+ * This handles tabs, drawers, and nested stacks.
261
+ */
254
262
  getRouteNames() {
255
263
  try {
256
264
  if (!this.navRef?.isReady?.()) return [];
257
265
  const state = this.navRef?.getRootState?.() || this.navRef?.getState?.();
258
- if (state?.routeNames) return state.routeNames;
259
- if (state?.routes) return state.routes.map(r => r.name);
260
- return [];
266
+ if (!state) return [];
267
+ return this.collectRouteNames(state);
261
268
  } catch {
262
269
  return [];
263
270
  }
264
271
  }
272
+ collectRouteNames(state) {
273
+ const names = [];
274
+ if (state?.routes) {
275
+ for (const route of state.routes) {
276
+ names.push(route.name);
277
+ // Recurse into nested navigator states
278
+ if (route.state) {
279
+ names.push(...this.collectRouteNames(route.state));
280
+ }
281
+ }
282
+ }
283
+ return [...new Set(names)];
284
+ }
285
+
286
+ /**
287
+ * Recursively find the deepest active screen name.
288
+ * For tabs: follows active tab → active screen inside that tab.
289
+ */
265
290
  getCurrentScreenName() {
291
+ // Expo Router: use pathname
292
+ if (this.config.pathname) {
293
+ const segments = this.config.pathname.split('/').filter(Boolean);
294
+ return segments[segments.length - 1] || 'Unknown';
295
+ }
266
296
  try {
267
297
  if (!this.navRef?.isReady?.()) return 'Unknown';
268
298
  const state = this.navRef?.getRootState?.() || this.navRef?.getState?.();
269
299
  if (!state) return 'Unknown';
270
- const route = state.routes[state.index];
271
- return route?.name || 'Unknown';
300
+ return this.getDeepestScreenName(state);
272
301
  } catch {
273
302
  return 'Unknown';
274
303
  }
275
304
  }
305
+ getDeepestScreenName(state) {
306
+ if (!state?.routes || state.index == null) return 'Unknown';
307
+ const route = state.routes[state.index];
308
+ if (!route) return 'Unknown';
309
+ // If this route has a nested state, recurse deeper
310
+ if (route.state) {
311
+ return this.getDeepestScreenName(route.state);
312
+ }
313
+ return route.name || 'Unknown';
314
+ }
315
+
316
+ /** Maps a tool call to a user-friendly status label for the loading overlay. */
317
+ getToolStatusLabel(toolName, args) {
318
+ switch (toolName) {
319
+ case 'tap':
320
+ return `Tapping element ${args.index ?? ''}...`;
321
+ case 'type':
322
+ return `Typing into field...`;
323
+ case 'navigate':
324
+ return `Navigating to ${args.screen || 'screen'}...`;
325
+ case 'done':
326
+ return 'Wrapping up...';
327
+ case 'ask_user':
328
+ return 'Asking you a question...';
329
+ default:
330
+ return `Running ${toolName}...`;
331
+ }
332
+ }
276
333
 
277
334
  // ─── Build Tools Array for Provider ────────────────────────
278
335
 
@@ -335,7 +392,73 @@ export class AgentRuntime {
335
392
  return result ? `<instructions>\n${result}</instructions>\n\n` : '';
336
393
  }
337
394
 
338
- // ─── Main Execution Loop (mirrors PageAgentCore.execute) ───────
395
+ // ─── Observation System (mirrors PageAgentCore.#handleObservations) ──
396
+
397
+ observations = [];
398
+ lastScreenName = '';
399
+ handleObservations(step, maxSteps, screenName) {
400
+ // Screen change detection
401
+ if (this.lastScreenName && screenName !== this.lastScreenName) {
402
+ this.observations.push(`Screen navigated to → ${screenName}`);
403
+ }
404
+ this.lastScreenName = screenName;
405
+
406
+ // Remaining steps warning
407
+ const remaining = maxSteps - step;
408
+ if (remaining === 5) {
409
+ this.observations.push(`⚠️ Only ${remaining} steps remaining. Consider wrapping up or calling done with partial results.`);
410
+ } else if (remaining === 2) {
411
+ this.observations.push(`⚠️ Critical: Only ${remaining} steps left! You must finish the task or call done immediately.`);
412
+ }
413
+ }
414
+
415
+ // ─── User Prompt Assembly (mirrors PageAgentCore.#assembleUserPrompt) ──
416
+
417
+ assembleUserPrompt(step, maxSteps, contextualMessage, screenName, screenContent) {
418
+ let prompt = '';
419
+
420
+ // 1. <instructions> (optional system/screen instructions)
421
+ prompt += this.getInstructions(screenName);
422
+
423
+ // 2. <agent_state> — user request + step info (mirrors page-agent)
424
+ prompt += '<agent_state>\n';
425
+ prompt += '<user_request>\n';
426
+ prompt += `${contextualMessage}\n`;
427
+ prompt += '</user_request>\n';
428
+ prompt += '<step_info>\n';
429
+ prompt += `Step ${step + 1} of ${maxSteps} max possible steps\n`;
430
+ prompt += '</step_info>\n';
431
+ prompt += '</agent_state>\n\n';
432
+
433
+ // 3. <agent_history> — structured per-step history (mirrors page-agent)
434
+ prompt += '<agent_history>\n';
435
+ let stepIndex = 0;
436
+ for (const event of this.history) {
437
+ stepIndex++;
438
+ prompt += `<step_${stepIndex}>\n`;
439
+ prompt += `Previous Goal Eval: ${event.reflection.previousGoalEval}\n`;
440
+ prompt += `Memory: ${event.reflection.memory}\n`;
441
+ prompt += `Plan: ${event.reflection.plan}\n`;
442
+ prompt += `Action Result: ${event.action.output}\n`;
443
+ prompt += `</step_${stepIndex}>\n`;
444
+ }
445
+
446
+ // Inject system observations
447
+ for (const obs of this.observations) {
448
+ prompt += `<sys>${obs}</sys>\n`;
449
+ }
450
+ this.observations = [];
451
+ prompt += '</agent_history>\n\n';
452
+
453
+ // 4. <screen_state> — dehydrated screen content
454
+ prompt += '<screen_state>\n';
455
+ prompt += `Current Screen: ${screenName}\n`;
456
+ prompt += screenContent + '\n';
457
+ prompt += '</screen_state>\n';
458
+ return prompt;
459
+ }
460
+
461
+ // ─── Main Execution Loop ──────────────────────────────────────
339
462
 
340
463
  async execute(userMessage) {
341
464
  if (this.isRunning) {
@@ -347,6 +470,8 @@ export class AgentRuntime {
347
470
  }
348
471
  this.isRunning = true;
349
472
  this.history = [];
473
+ this.observations = [];
474
+ this.lastScreenName = '';
350
475
  const maxSteps = this.config.maxSteps || DEFAULT_MAX_STEPS;
351
476
  const stepDelay = this.config.stepDelay ?? 300;
352
477
 
@@ -380,17 +505,20 @@ export class AgentRuntime {
380
505
  screenContent = await this.config.transformScreenContent(screenContent);
381
506
  }
382
507
 
383
- // 3. Build context message with instructions + screen state
384
- const instructionsBlock = this.getInstructions(screenName);
385
- const contextMessage = step === 0 ? `${instructionsBlock}<user_request>${contextualMessage}</user_request>\n\n<screen_state>\n${screenContent}\n</screen_state>` : `${instructionsBlock}<screen_state>\n${screenContent}\n</screen_state>`;
508
+ // 3. Handle observations (mirrors page-agent #handleObservations)
509
+ this.handleObservations(step, maxSteps, screenName);
386
510
 
387
- // 4. Send to AI provider
511
+ // 4. Assemble structured user prompt (mirrors page-agent #assembleUserPrompt)
512
+ const contextMessage = this.assembleUserPrompt(step, maxSteps, contextualMessage, screenName, screenContent);
513
+
514
+ // 5. Send to AI provider
515
+ this.config.onStatusUpdate?.('Analyzing screen...');
388
516
  const systemPrompt = buildSystemPrompt(this.config.language || 'en');
389
517
  const tools = this.buildToolsForProvider();
390
518
  logger.info('AgentRuntime', `Sending to AI with ${tools.length} tools...`);
391
519
  const response = await this.provider.generateContent(systemPrompt, contextMessage, tools, this.history);
392
520
 
393
- // 5. Process tool calls
521
+ // 6. Process tool calls
394
522
  if (!response.toolCalls || response.toolCalls.length === 0) {
395
523
  logger.warn('AgentRuntime', 'No tool calls in response. Text:', response.text);
396
524
  const result = {
@@ -401,61 +529,75 @@ export class AgentRuntime {
401
529
  await this.config.onAfterTask?.(result);
402
530
  return result;
403
531
  }
404
- for (const toolCall of response.toolCalls) {
405
- logger.info('AgentRuntime', `Tool: ${toolCall.name}(${JSON.stringify(toolCall.args)})`);
406
-
407
- // Find and execute the tool
408
- const tool = this.tools.get(toolCall.name) || this.buildToolsForProvider().find(t => t.name === toolCall.name);
409
- let output;
410
- if (tool) {
411
- output = await tool.execute(toolCall.args);
412
- } else {
413
- output = `❌ Unknown tool: ${toolCall.name}`;
532
+
533
+ // 7. Structured reasoning from provider (no regex parsing needed)
534
+ const {
535
+ reasoning
536
+ } = response;
537
+ logger.info('AgentRuntime', `🧠 Plan: ${reasoning.plan}`);
538
+ if (reasoning.memory) {
539
+ logger.debug('AgentRuntime', `💾 Memory: ${reasoning.memory}`);
540
+ }
541
+
542
+ // Only process the FIRST tool call per step (one action per step).
543
+ // After one action, the loop re-reads the screen with fresh indexes.
544
+ const toolCall = response.toolCalls[0];
545
+ if (response.toolCalls.length > 1) {
546
+ logger.warn('AgentRuntime', `AI returned ${response.toolCalls.length} tool calls, executing only the first one.`);
547
+ }
548
+ logger.info('AgentRuntime', `Tool: ${toolCall.name}(${JSON.stringify(toolCall.args)})`);
549
+
550
+ // Dynamic status update based on tool being executed
551
+ const statusLabel = this.getToolStatusLabel(toolCall.name, toolCall.args);
552
+ this.config.onStatusUpdate?.(statusLabel);
553
+
554
+ // Find and execute the tool
555
+ const tool = this.tools.get(toolCall.name) || this.buildToolsForProvider().find(t => t.name === toolCall.name);
556
+ let output;
557
+ if (tool) {
558
+ output = await tool.execute(toolCall.args);
559
+ } else {
560
+ output = `❌ Unknown tool: ${toolCall.name}`;
561
+ }
562
+ logger.info('AgentRuntime', `Result: ${output}`);
563
+
564
+ // Record step with structured reasoning
565
+ const agentStep = {
566
+ stepIndex: step,
567
+ reflection: reasoning,
568
+ action: {
569
+ name: toolCall.name,
570
+ input: toolCall.args,
571
+ output
414
572
  }
415
- logger.info('AgentRuntime', `Result: ${output}`);
416
-
417
- // Record step
418
- const agentStep = {
419
- stepIndex: step,
420
- reflection: {
421
- evaluationPreviousGoal: step > 0 ? 'Evaluating...' : 'First step',
422
- memory: '',
423
- nextGoal: ''
424
- },
425
- action: {
426
- name: toolCall.name,
427
- input: toolCall.args,
428
- output
429
- }
573
+ };
574
+ this.history.push(agentStep);
575
+
576
+ // Lifecycle: onAfterStep (mirrors page-agent)
577
+ await this.config.onAfterStep?.(this.history);
578
+
579
+ // Check if done
580
+ if (toolCall.name === 'done') {
581
+ const result = {
582
+ success: toolCall.args.success !== false,
583
+ message: toolCall.args.text || output,
584
+ steps: this.history
430
585
  };
431
- this.history.push(agentStep);
432
-
433
- // Lifecycle: onAfterStep (mirrors page-agent)
434
- await this.config.onAfterStep?.(this.history);
435
-
436
- // Check if done
437
- if (toolCall.name === 'done') {
438
- const result = {
439
- success: toolCall.args.success !== false,
440
- message: output,
441
- steps: this.history
442
- };
443
- logger.info('AgentRuntime', `Task completed: ${output}`);
444
- await this.config.onAfterTask?.(result);
445
- return result;
446
- }
586
+ logger.info('AgentRuntime', `Task completed: ${result.message}`);
587
+ await this.config.onAfterTask?.(result);
588
+ return result;
589
+ }
447
590
 
448
- // Check if asking user
449
- if (toolCall.name === 'ask_user') {
450
- this.lastAskUserQuestion = toolCall.args.question || output;
451
- const result = {
452
- success: true,
453
- message: output,
454
- steps: this.history
455
- };
456
- await this.config.onAfterTask?.(result);
457
- return result;
458
- }
591
+ // Check if asking user (legacy path — only breaks loop when onAskUser is NOT set)
592
+ if (toolCall.name === 'ask_user' && !this.config.onAskUser) {
593
+ this.lastAskUserQuestion = toolCall.args.question || output;
594
+ const result = {
595
+ success: true,
596
+ message: output,
597
+ steps: this.history
598
+ };
599
+ await this.config.onAfterTask?.(result);
600
+ return result;
459
601
  }
460
602
 
461
603
  // Step delay (mirrors page-agent stepDelay)
@@ -1 +1 @@
1
- {"version":3,"names":["logger","walkFiberTree","dehydrateScreen","DEFAULT_MAX_STEPS","buildSystemPrompt","language","isArabic","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","onPress","label","Promise","resolve","setTimeout","error","message","text","onChangeText","screen","params","isReady","JSON","parse","undefined","navigate","stringify","getRouteNames","success","question","registerAction","action","unregisterAction","state","getRootState","getState","routeNames","routes","r","getCurrentScreenName","route","buildToolsForProvider","allTools","values","push","fromEntries","key","typeStr","result","handler","interactiveBlacklist","interactiveWhitelist","getInstructions","screenName","instructions","system","trim","getScreenInstructions","screenInstructions","userMessage","steps","maxSteps","stepDelay","contextualMessage","onBeforeTask","step","onBeforeStep","walkResult","elementsText","debug","screenContent","transformScreenContent","instructionsBlock","contextMessage","systemPrompt","length","response","generateContent","toolCalls","warn","onAfterTask","toolCall","get","t","output","agentStep","stepIndex","reflection","evaluationPreviousGoal","memory","nextGoal","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","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":[]}