@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.
- package/README.md +78 -7
- package/lib/module/components/AIAgent.js +40 -4
- package/lib/module/components/AIAgent.js.map +1 -1
- package/lib/module/components/AgentChatBar.js +177 -29
- package/lib/module/components/AgentChatBar.js.map +1 -1
- package/lib/module/core/AgentRuntime.js +268 -126
- package/lib/module/core/AgentRuntime.js.map +1 -1
- package/lib/module/core/FiberTreeWalker.js +74 -20
- package/lib/module/core/FiberTreeWalker.js.map +1 -1
- package/lib/module/core/systemPrompt.js +164 -0
- package/lib/module/core/systemPrompt.js.map +1 -0
- package/lib/module/providers/GeminiProvider.js +189 -73
- package/lib/module/providers/GeminiProvider.js.map +1 -1
- package/lib/typescript/src/components/AIAgent.d.ts +9 -1
- package/lib/typescript/src/components/AIAgent.d.ts.map +1 -1
- package/lib/typescript/src/components/AgentChatBar.d.ts +4 -3
- package/lib/typescript/src/components/AgentChatBar.d.ts.map +1 -1
- package/lib/typescript/src/core/AgentRuntime.d.ts +16 -0
- package/lib/typescript/src/core/AgentRuntime.d.ts.map +1 -1
- package/lib/typescript/src/core/FiberTreeWalker.d.ts +5 -0
- package/lib/typescript/src/core/FiberTreeWalker.d.ts.map +1 -1
- package/lib/typescript/src/core/systemPrompt.d.ts +9 -0
- package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -0
- package/lib/typescript/src/core/types.d.ts +51 -13
- package/lib/typescript/src/core/types.d.ts.map +1 -1
- package/lib/typescript/src/providers/GeminiProvider.d.ts +33 -13
- package/lib/typescript/src/providers/GeminiProvider.d.ts.map +1 -1
- package/package.json +16 -14
- package/src/components/AIAgent.tsx +41 -1
- package/src/components/AgentChatBar.tsx +150 -28
- package/src/core/AgentRuntime.ts +287 -131
- package/src/core/FiberTreeWalker.ts +74 -19
- package/src/core/systemPrompt.ts +162 -0
- package/src/core/types.ts +58 -10
- 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 —
|
|
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
|
|
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
|
-
|
|
115
|
-
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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.
|
|
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
|
|
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
|
|
259
|
-
|
|
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
|
-
|
|
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
|
-
// ───
|
|
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.
|
|
384
|
-
|
|
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.
|
|
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
|
-
//
|
|
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
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
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
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
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
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
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
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
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":[]}
|