@mobileai/react-native 0.2.0 → 0.4.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
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
Also available as **`react-native-agentic-ai`** — same package, same code.
|
|
1
|
+
# MobileAI — React Native AI Agent
|
|
4
2
|
|
|
5
3
|
> **Autonomous AI agent for React Native** — Your app gets an AI copilot that can see, understand, and interact with your UI. Zero wrappers, zero view rewriting.
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
**Two names, one package — install either:**
|
|
6
|
+
|
|
7
|
+
| | Package | npm |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| 📦 | `@mobileai/react-native` | [](https://www.npmjs.com/package/@mobileai/react-native) |
|
|
10
|
+
| 📦 | `react-native-agentic-ai` | [](https://www.npmjs.com/package/react-native-agentic-ai) |
|
|
11
|
+
|
|
9
12
|
[](https://github.com/mohamed2m2018/mobileai-react-native/blob/main/LICENSE)
|
|
10
13
|
[]()
|
|
11
14
|
|
|
@@ -22,13 +25,9 @@ Wrap your navigation with `<AIAgent>`. The AI automatically understands your ent
|
|
|
22
25
|
|
|
23
26
|
## 📦 Installation
|
|
24
27
|
|
|
25
|
-
Pick whichever name you prefer — both packages are identical:
|
|
26
|
-
|
|
27
28
|
```bash
|
|
28
|
-
# Scoped name
|
|
29
29
|
npm install @mobileai/react-native
|
|
30
|
-
|
|
31
|
-
# Or the unscoped alias
|
|
30
|
+
# — or —
|
|
32
31
|
npm install react-native-agentic-ai
|
|
33
32
|
```
|
|
34
33
|
|
|
@@ -21,7 +21,13 @@ const PRESSABLE_TYPES = new Set(['Pressable', 'TouchableOpacity', 'TouchableHigh
|
|
|
21
21
|
const TEXT_INPUT_TYPES = new Set(['TextInput', 'RCTSinglelineTextInputView', 'RCTMultilineTextInputView']);
|
|
22
22
|
const SWITCH_TYPES = new Set(['Switch', 'RCTSwitch']);
|
|
23
23
|
const TEXT_TYPES = new Set(['Text', 'RCTText']);
|
|
24
|
-
|
|
24
|
+
|
|
25
|
+
// Media component types for Component-Context Media Inference
|
|
26
|
+
const IMAGE_TYPES = new Set(['Image', 'RCTImageView', 'ExpoImage', 'FastImage', 'CachedImage']);
|
|
27
|
+
const VIDEO_TYPES = new Set(['Video', 'ExpoVideo', 'RCTVideo', 'VideoPlayer', 'VideoView']);
|
|
28
|
+
|
|
29
|
+
// Known RN internal component names to skip when walking up for context
|
|
30
|
+
const RN_INTERNAL_NAMES = new Set(['View', 'RCTView', 'Pressable', 'TouchableOpacity', 'TouchableHighlight', 'ScrollView', 'RCTScrollView', 'FlatList', 'SectionList', 'SafeAreaView', 'RNCSafeAreaView', 'KeyboardAvoidingView', 'Modal', 'StatusBar', 'Text', 'RCTText', 'AnimatedComponent', 'AnimatedComponentWrapper', 'Animated']);
|
|
25
31
|
|
|
26
32
|
// ─── State Extraction (mirrors page-agent DEFAULT_INCLUDE_ATTRIBUTES) ──
|
|
27
33
|
|
|
@@ -71,6 +77,25 @@ export function hasAnyEventHandler(props) {
|
|
|
71
77
|
return false;
|
|
72
78
|
}
|
|
73
79
|
|
|
80
|
+
/**
|
|
81
|
+
* Walk UP the Fiber tree to find the nearest custom (user-defined) component name.
|
|
82
|
+
* Skips known React Native internal component names.
|
|
83
|
+
* This provides semantic context for media elements (e.g., an Image inside "ProfileHeader").
|
|
84
|
+
*/
|
|
85
|
+
function getNearestCustomComponentName(fiber, maxDepth = 8) {
|
|
86
|
+
let current = fiber?.return;
|
|
87
|
+
let depth = 0;
|
|
88
|
+
while (current && depth < maxDepth) {
|
|
89
|
+
const name = getComponentName(current);
|
|
90
|
+
if (name && !RN_INTERNAL_NAMES.has(name) && !PRESSABLE_TYPES.has(name)) {
|
|
91
|
+
return name;
|
|
92
|
+
}
|
|
93
|
+
current = current.return;
|
|
94
|
+
depth++;
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
74
99
|
// ─── Fiber Node Helpers ────────────────────────────────────────
|
|
75
100
|
|
|
76
101
|
/**
|
|
@@ -336,23 +361,44 @@ export function walkFiberTree(rootRef, config) {
|
|
|
336
361
|
return elementOutput;
|
|
337
362
|
}
|
|
338
363
|
|
|
339
|
-
// Non-interactive structural nodes
|
|
364
|
+
// Non-interactive structural nodes — collapse view chains to reduce noise
|
|
365
|
+
// Only emit text content; structural <view> wrappers are transparent
|
|
340
366
|
const typeStr = node.type && typeof node.type === 'string' ? node.type : node.elementType && typeof node.elementType === 'string' ? node.elementType : null;
|
|
341
367
|
if (typeStr === 'RCTText' || typeStr === 'Text') {
|
|
342
368
|
const textContent = extractRawText(props.children);
|
|
343
369
|
if (textContent && textContent.trim() !== '') {
|
|
344
|
-
return `${indent}
|
|
370
|
+
return `${indent}${textContent.trim()}\n`;
|
|
345
371
|
}
|
|
346
372
|
}
|
|
347
|
-
|
|
348
|
-
|
|
373
|
+
|
|
374
|
+
// ── Media Detection: Component-Context Media Inference ──
|
|
375
|
+
const componentName = getComponentName(node);
|
|
376
|
+
if (componentName && IMAGE_TYPES.has(componentName)) {
|
|
377
|
+
const context = getNearestCustomComponentName(node);
|
|
378
|
+
const alt = props.alt || props.accessibilityLabel || '';
|
|
379
|
+
// Emit the full URI so Gemini can use vision to analyze the image
|
|
380
|
+
const src = typeof props.source === 'object' && props.source?.uri ? props.source.uri : '';
|
|
381
|
+
const attrs = [context ? `in="${context}"` : '', alt ? `alt="${alt}"` : '', src ? `src="${src}"` : ''].filter(Boolean).join(' ');
|
|
382
|
+
return `${indent}[image${attrs ? ' ' + attrs : ''}]\n`;
|
|
383
|
+
}
|
|
384
|
+
if (componentName && VIDEO_TYPES.has(componentName)) {
|
|
385
|
+
const context = getNearestCustomComponentName(node);
|
|
386
|
+
const paused = props.paused !== undefined ? props.paused : props.shouldPlay !== undefined ? !props.shouldPlay : null;
|
|
387
|
+
// Capture video source URI and poster image
|
|
388
|
+
const src = typeof props.source === 'object' && props.source?.uri ? props.source.uri : '';
|
|
389
|
+
const poster = props.posterSource?.uri || props.poster || '';
|
|
390
|
+
const attrs = [context ? `in="${context}"` : '', paused !== null ? `state="${paused ? 'paused' : 'playing'}"` : '', src ? `src="${src}"` : '', poster ? `poster="${poster}"` : ''].filter(Boolean).join(' ');
|
|
391
|
+
return `${indent}[video${attrs ? ' ' + attrs : ''}]\n`;
|
|
349
392
|
}
|
|
350
|
-
|
|
393
|
+
|
|
394
|
+
// Structural views: pass children through without adding <view> wrapper
|
|
395
|
+
// This collapses the 50+ nesting levels into flat, readable output
|
|
396
|
+
return childrenText;
|
|
351
397
|
}
|
|
352
398
|
let elementsText = processNode(fiber, 0);
|
|
353
399
|
|
|
354
|
-
// Clean up
|
|
355
|
-
elementsText = elementsText.replace(
|
|
400
|
+
// Clean up excessive blank lines
|
|
401
|
+
elementsText = elementsText.replace(/\n{3,}/g, '\n\n');
|
|
356
402
|
logger.info('FiberTreeWalker', `Found ${interactives.length} interactive elements`);
|
|
357
403
|
return {
|
|
358
404
|
elementsText: elementsText.trim(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","PRESSABLE_TYPES","Set","TEXT_INPUT_TYPES","SWITCH_TYPES","TEXT_TYPES","STATE_PROPS","extractStateAttributes","props","parts","accessibilityState","k","v","Object","entries","undefined","push","accessibilityRole","key","join","hasAnyEventHandler","keys","startsWith","getComponentName","fiber","type","displayName","name","render","getElementType","memoizedProps","has","role","onPress","onChangeText","onValueChange","isDisabled","disabled","editable","extractTextContent","maxDepth","child","childName","childProps","sibling","text","extractRawText","children","nestedText","trim","String","Array","isArray","map","filter","Boolean","getFiberRoot","hook","globalThis","__REACT_DEVTOOLS_GLOBAL_HOOK__","renderers","size","rendererId","roots","getFiberRoots","fiberRoot","values","next","value","current","debug","e","getFiberFromRef","ref","rootFiber","_reactInternals","_reactInternalInstance","fiberKey","find","warn","matchesRefList","node","refs","length","stateNode","walkFiberTree","rootRef","config","elementsText","interactives","currentIndex","hasWhitelist","interactiveWhitelist","processNode","depth","isInsideInteractive","aiIgnore","interactiveBlacklist","childText","currentChild","isWhitelisted","elementType","shouldInclude","childrenText","indent","repeat","resolvedType","label","accessibilityLabel","placeholder","index","fiberNode","stateAttrs","attrStr","textContent","elementOutput","typeStr","replace","info"],"sourceRoot":"../../../src","sources":["core/FiberTreeWalker.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["logger","PRESSABLE_TYPES","Set","TEXT_INPUT_TYPES","SWITCH_TYPES","TEXT_TYPES","IMAGE_TYPES","VIDEO_TYPES","RN_INTERNAL_NAMES","STATE_PROPS","extractStateAttributes","props","parts","accessibilityState","k","v","Object","entries","undefined","push","accessibilityRole","key","join","hasAnyEventHandler","keys","startsWith","getNearestCustomComponentName","fiber","maxDepth","current","return","depth","name","getComponentName","has","type","displayName","render","getElementType","memoizedProps","role","onPress","onChangeText","onValueChange","isDisabled","disabled","editable","extractTextContent","child","childName","childProps","sibling","text","extractRawText","children","nestedText","trim","String","Array","isArray","map","filter","Boolean","getFiberRoot","hook","globalThis","__REACT_DEVTOOLS_GLOBAL_HOOK__","renderers","size","rendererId","roots","getFiberRoots","fiberRoot","values","next","value","debug","e","getFiberFromRef","ref","rootFiber","_reactInternals","_reactInternalInstance","fiberKey","find","warn","matchesRefList","node","refs","length","stateNode","walkFiberTree","rootRef","config","elementsText","interactives","currentIndex","hasWhitelist","interactiveWhitelist","processNode","isInsideInteractive","aiIgnore","interactiveBlacklist","childText","currentChild","isWhitelisted","elementType","shouldInclude","childrenText","indent","repeat","resolvedType","label","accessibilityLabel","placeholder","index","fiberNode","stateAttrs","attrStr","textContent","elementOutput","typeStr","componentName","context","alt","src","source","uri","attrs","paused","shouldPlay","poster","posterSource","replace","info"],"sourceRoot":"../../../src","sources":["core/FiberTreeWalker.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberTreeWalker.d.ts","sourceRoot":"","sources":["../../../../src/core/FiberTreeWalker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAI/D,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,4FAA4F;IAC5F,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;CAC/C;
|
|
1
|
+
{"version":3,"file":"FiberTreeWalker.d.ts","sourceRoot":"","sources":["../../../../src/core/FiberTreeWalker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAI/D,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,4FAA4F;IAC5F,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;CAC/C;AAsED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAQtD;AAyOD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,CA6H3E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mobileai/react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Build autonomous AI agents for React Native and Expo apps. Provides AI-native UI traversal, tool calling, and structured reasoning.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"source": "./src/index.ts",
|
|
@@ -35,7 +35,23 @@ const PRESSABLE_TYPES = new Set([
|
|
|
35
35
|
const TEXT_INPUT_TYPES = new Set(['TextInput', 'RCTSinglelineTextInputView', 'RCTMultilineTextInputView']);
|
|
36
36
|
const SWITCH_TYPES = new Set(['Switch', 'RCTSwitch']);
|
|
37
37
|
const TEXT_TYPES = new Set(['Text', 'RCTText']);
|
|
38
|
-
|
|
38
|
+
|
|
39
|
+
// Media component types for Component-Context Media Inference
|
|
40
|
+
const IMAGE_TYPES = new Set([
|
|
41
|
+
'Image', 'RCTImageView', 'ExpoImage', 'FastImage', 'CachedImage',
|
|
42
|
+
]);
|
|
43
|
+
const VIDEO_TYPES = new Set([
|
|
44
|
+
'Video', 'ExpoVideo', 'RCTVideo', 'VideoPlayer', 'VideoView',
|
|
45
|
+
]);
|
|
46
|
+
|
|
47
|
+
// Known RN internal component names to skip when walking up for context
|
|
48
|
+
const RN_INTERNAL_NAMES = new Set([
|
|
49
|
+
'View', 'RCTView', 'Pressable', 'TouchableOpacity', 'TouchableHighlight',
|
|
50
|
+
'ScrollView', 'RCTScrollView', 'FlatList', 'SectionList',
|
|
51
|
+
'SafeAreaView', 'RNCSafeAreaView', 'KeyboardAvoidingView',
|
|
52
|
+
'Modal', 'StatusBar', 'Text', 'RCTText', 'AnimatedComponent',
|
|
53
|
+
'AnimatedComponentWrapper', 'Animated',
|
|
54
|
+
]);
|
|
39
55
|
|
|
40
56
|
// ─── State Extraction (mirrors page-agent DEFAULT_INCLUDE_ATTRIBUTES) ──
|
|
41
57
|
|
|
@@ -86,6 +102,25 @@ export function hasAnyEventHandler(props: any): boolean {
|
|
|
86
102
|
return false;
|
|
87
103
|
}
|
|
88
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Walk UP the Fiber tree to find the nearest custom (user-defined) component name.
|
|
107
|
+
* Skips known React Native internal component names.
|
|
108
|
+
* This provides semantic context for media elements (e.g., an Image inside "ProfileHeader").
|
|
109
|
+
*/
|
|
110
|
+
function getNearestCustomComponentName(fiber: any, maxDepth: number = 8): string | null {
|
|
111
|
+
let current = fiber?.return;
|
|
112
|
+
let depth = 0;
|
|
113
|
+
while (current && depth < maxDepth) {
|
|
114
|
+
const name = getComponentName(current);
|
|
115
|
+
if (name && !RN_INTERNAL_NAMES.has(name) && !PRESSABLE_TYPES.has(name)) {
|
|
116
|
+
return name;
|
|
117
|
+
}
|
|
118
|
+
current = current.return;
|
|
119
|
+
depth++;
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
|
|
89
124
|
// ─── Fiber Node Helpers ────────────────────────────────────────
|
|
90
125
|
|
|
91
126
|
/**
|
|
@@ -376,28 +411,61 @@ export function walkFiberTree(rootRef: any, config?: WalkConfig): WalkResult {
|
|
|
376
411
|
return elementOutput;
|
|
377
412
|
}
|
|
378
413
|
|
|
379
|
-
// Non-interactive structural nodes
|
|
414
|
+
// Non-interactive structural nodes — collapse view chains to reduce noise
|
|
415
|
+
// Only emit text content; structural <view> wrappers are transparent
|
|
380
416
|
const typeStr = node.type && typeof node.type === 'string' ? node.type :
|
|
381
417
|
(node.elementType && typeof node.elementType === 'string' ? node.elementType : null);
|
|
382
418
|
|
|
383
419
|
if (typeStr === 'RCTText' || typeStr === 'Text') {
|
|
384
420
|
const textContent = extractRawText(props.children);
|
|
385
421
|
if (textContent && textContent.trim() !== '') {
|
|
386
|
-
return `${indent}
|
|
422
|
+
return `${indent}${textContent.trim()}\n`;
|
|
387
423
|
}
|
|
388
424
|
}
|
|
389
425
|
|
|
390
|
-
|
|
391
|
-
|
|
426
|
+
// ── Media Detection: Component-Context Media Inference ──
|
|
427
|
+
const componentName = getComponentName(node);
|
|
428
|
+
if (componentName && IMAGE_TYPES.has(componentName)) {
|
|
429
|
+
const context = getNearestCustomComponentName(node);
|
|
430
|
+
const alt = props.alt || props.accessibilityLabel || '';
|
|
431
|
+
// Emit the full URI so Gemini can use vision to analyze the image
|
|
432
|
+
const src = typeof props.source === 'object' && props.source?.uri
|
|
433
|
+
? props.source.uri
|
|
434
|
+
: '';
|
|
435
|
+
const attrs = [
|
|
436
|
+
context ? `in="${context}"` : '',
|
|
437
|
+
alt ? `alt="${alt}"` : '',
|
|
438
|
+
src ? `src="${src}"` : '',
|
|
439
|
+
].filter(Boolean).join(' ');
|
|
440
|
+
return `${indent}[image${attrs ? ' ' + attrs : ''}]\n`;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
if (componentName && VIDEO_TYPES.has(componentName)) {
|
|
444
|
+
const context = getNearestCustomComponentName(node);
|
|
445
|
+
const paused = props.paused !== undefined ? props.paused : props.shouldPlay !== undefined ? !props.shouldPlay : null;
|
|
446
|
+
// Capture video source URI and poster image
|
|
447
|
+
const src = typeof props.source === 'object' && props.source?.uri
|
|
448
|
+
? props.source.uri
|
|
449
|
+
: '';
|
|
450
|
+
const poster = props.posterSource?.uri || props.poster || '';
|
|
451
|
+
const attrs = [
|
|
452
|
+
context ? `in="${context}"` : '',
|
|
453
|
+
paused !== null ? `state="${paused ? 'paused' : 'playing'}"` : '',
|
|
454
|
+
src ? `src="${src}"` : '',
|
|
455
|
+
poster ? `poster="${poster}"` : '',
|
|
456
|
+
].filter(Boolean).join(' ');
|
|
457
|
+
return `${indent}[video${attrs ? ' ' + attrs : ''}]\n`;
|
|
392
458
|
}
|
|
393
459
|
|
|
394
|
-
|
|
460
|
+
// Structural views: pass children through without adding <view> wrapper
|
|
461
|
+
// This collapses the 50+ nesting levels into flat, readable output
|
|
462
|
+
return childrenText;
|
|
395
463
|
}
|
|
396
464
|
|
|
397
465
|
let elementsText = processNode(fiber, 0);
|
|
398
466
|
|
|
399
|
-
// Clean up
|
|
400
|
-
elementsText = elementsText.replace(
|
|
467
|
+
// Clean up excessive blank lines
|
|
468
|
+
elementsText = elementsText.replace(/\n{3,}/g, '\n\n');
|
|
401
469
|
|
|
402
470
|
logger.info('FiberTreeWalker', `Found ${interactives.length} interactive elements`);
|
|
403
471
|
return { elementsText: elementsText.trim(), interactives };
|