react-native-agentic-ai 0.0.2 → 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 (70) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +252 -14
  3. package/lib/module/components/AIAgent.js +185 -0
  4. package/lib/module/components/AIAgent.js.map +1 -0
  5. package/lib/module/components/AgentChatBar.js +268 -0
  6. package/lib/module/components/AgentChatBar.js.map +1 -0
  7. package/lib/module/components/AgentOverlay.js +53 -0
  8. package/lib/module/components/AgentOverlay.js.map +1 -0
  9. package/lib/module/core/AgentRuntime.js +640 -0
  10. package/lib/module/core/AgentRuntime.js.map +1 -0
  11. package/lib/module/core/FiberTreeWalker.js +362 -0
  12. package/lib/module/core/FiberTreeWalker.js.map +1 -0
  13. package/lib/module/core/MCPBridge.js +98 -0
  14. package/lib/module/core/MCPBridge.js.map +1 -0
  15. package/lib/module/core/ScreenDehydrator.js +46 -0
  16. package/lib/module/core/ScreenDehydrator.js.map +1 -0
  17. package/lib/module/core/systemPrompt.js +164 -0
  18. package/lib/module/core/systemPrompt.js.map +1 -0
  19. package/lib/module/core/types.js +2 -0
  20. package/lib/module/core/types.js.map +1 -0
  21. package/lib/module/hooks/useAction.js +32 -0
  22. package/lib/module/hooks/useAction.js.map +1 -0
  23. package/lib/module/index.js +17 -0
  24. package/lib/module/index.js.map +1 -0
  25. package/lib/module/package.json +1 -0
  26. package/lib/module/providers/GeminiProvider.js +294 -0
  27. package/lib/module/providers/GeminiProvider.js.map +1 -0
  28. package/lib/module/utils/logger.js +17 -0
  29. package/lib/module/utils/logger.js.map +1 -0
  30. package/lib/typescript/package.json +1 -0
  31. package/lib/typescript/src/components/AIAgent.d.ts +65 -0
  32. package/lib/typescript/src/components/AIAgent.d.ts.map +1 -0
  33. package/lib/typescript/src/components/AgentChatBar.d.ts +15 -0
  34. package/lib/typescript/src/components/AgentChatBar.d.ts.map +1 -0
  35. package/lib/typescript/src/components/AgentOverlay.d.ts +10 -0
  36. package/lib/typescript/src/components/AgentOverlay.d.ts.map +1 -0
  37. package/lib/typescript/src/core/AgentRuntime.d.ts +53 -0
  38. package/lib/typescript/src/core/AgentRuntime.d.ts.map +1 -0
  39. package/lib/typescript/src/core/FiberTreeWalker.d.ts +31 -0
  40. package/lib/typescript/src/core/FiberTreeWalker.d.ts.map +1 -0
  41. package/lib/typescript/src/core/MCPBridge.d.ts +23 -0
  42. package/lib/typescript/src/core/MCPBridge.d.ts.map +1 -0
  43. package/lib/typescript/src/core/ScreenDehydrator.d.ts +20 -0
  44. package/lib/typescript/src/core/ScreenDehydrator.d.ts.map +1 -0
  45. package/lib/typescript/src/core/systemPrompt.d.ts +9 -0
  46. package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -0
  47. package/lib/typescript/src/core/types.d.ts +176 -0
  48. package/lib/typescript/src/core/types.d.ts.map +1 -0
  49. package/lib/typescript/src/hooks/useAction.d.ts +13 -0
  50. package/lib/typescript/src/hooks/useAction.d.ts.map +1 -0
  51. package/lib/typescript/src/index.d.ts +10 -0
  52. package/lib/typescript/src/index.d.ts.map +1 -0
  53. package/lib/typescript/src/providers/GeminiProvider.d.ts +43 -0
  54. package/lib/typescript/src/providers/GeminiProvider.d.ts.map +1 -0
  55. package/lib/typescript/src/utils/logger.d.ts +7 -0
  56. package/lib/typescript/src/utils/logger.d.ts.map +1 -0
  57. package/package.json +135 -12
  58. package/src/components/AIAgent.tsx +262 -0
  59. package/src/components/AgentChatBar.tsx +258 -0
  60. package/src/components/AgentOverlay.tsx +48 -0
  61. package/src/core/AgentRuntime.ts +661 -0
  62. package/src/core/FiberTreeWalker.ts +404 -0
  63. package/src/core/MCPBridge.ts +110 -0
  64. package/src/core/ScreenDehydrator.ts +53 -0
  65. package/src/core/systemPrompt.ts +162 -0
  66. package/src/core/types.ts +233 -0
  67. package/src/hooks/useAction.ts +40 -0
  68. package/src/index.ts +22 -0
  69. package/src/providers/GeminiProvider.ts +283 -0
  70. package/src/utils/logger.ts +21 -0
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * AgentChatBar — Floating, draggable, compressible chat widget.
5
+ * Does not block underlying UI natively.
6
+ */
7
+
8
+ import { useState, useRef } from 'react';
9
+ import { View, TextInput, Pressable, Text, StyleSheet, Animated, PanResponder, useWindowDimensions } from 'react-native';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export function AgentChatBar({
12
+ onSend,
13
+ isThinking,
14
+ lastResult,
15
+ language,
16
+ onDismiss
17
+ }) {
18
+ const [text, setText] = useState('');
19
+ const [isExpanded, setIsExpanded] = useState(false);
20
+ const {
21
+ height
22
+ } = useWindowDimensions();
23
+ const isArabic = language === 'ar';
24
+
25
+ // Initial position: Bottom right for FAB, Bottom center for Expanded
26
+ // For simplicity, we just initialize to a safe generic spot on screen.
27
+ const pan = useRef(new Animated.ValueXY({
28
+ x: 10,
29
+ y: height - 200
30
+ })).current;
31
+
32
+ // PanResponder for dragging the widget
33
+ const panResponder = useRef(PanResponder.create({
34
+ onMoveShouldSetPanResponder: (_, gestureState) => {
35
+ // Only trigger drag if moving more than 5px (allows taps to register inside)
36
+ return Math.abs(gestureState.dx) > 5 || Math.abs(gestureState.dy) > 5;
37
+ },
38
+ onPanResponderGrant: () => {
39
+ pan.setOffset({
40
+ x: pan.x._value,
41
+ y: pan.y._value
42
+ });
43
+ pan.setValue({
44
+ x: 0,
45
+ y: 0
46
+ });
47
+ },
48
+ onPanResponderMove: Animated.event([null, {
49
+ dx: pan.x,
50
+ dy: pan.y
51
+ }], {
52
+ useNativeDriver: false
53
+ }),
54
+ onPanResponderRelease: () => {
55
+ pan.flattenOffset();
56
+ }
57
+ })).current;
58
+ const handleSend = () => {
59
+ if (text.trim() && !isThinking) {
60
+ onSend(text.trim());
61
+ setText('');
62
+ }
63
+ };
64
+
65
+ // ─── Compressed State (FAB) ───
66
+ if (!isExpanded) {
67
+ return /*#__PURE__*/_jsx(Animated.View, {
68
+ style: [styles.fabContainer, pan.getLayout()],
69
+ ...panResponder.panHandlers,
70
+ children: /*#__PURE__*/_jsx(Pressable, {
71
+ style: styles.fab,
72
+ onPress: () => setIsExpanded(true),
73
+ accessibilityLabel: "Open AI Agent Chat",
74
+ children: /*#__PURE__*/_jsx(Text, {
75
+ style: styles.fabIcon,
76
+ children: isThinking ? '⏳' : '🤖'
77
+ })
78
+ })
79
+ });
80
+ }
81
+
82
+ // ─── Expanded State (Widget) ───
83
+ return /*#__PURE__*/_jsxs(Animated.View, {
84
+ style: [styles.expandedContainer, pan.getLayout()],
85
+ children: [/*#__PURE__*/_jsxs(View, {
86
+ ...panResponder.panHandlers,
87
+ style: styles.dragHandleArea,
88
+ accessibilityLabel: "Drag AI Agent",
89
+ children: [/*#__PURE__*/_jsx(View, {
90
+ style: styles.dragGrip
91
+ }), /*#__PURE__*/_jsx(Pressable, {
92
+ onPress: () => setIsExpanded(false),
93
+ style: styles.minimizeBtn,
94
+ accessibilityLabel: "Minimize AI Agent",
95
+ children: /*#__PURE__*/_jsx(Text, {
96
+ style: styles.minimizeText,
97
+ children: "\u2014"
98
+ })
99
+ })]
100
+ }), lastResult && /*#__PURE__*/_jsxs(View, {
101
+ style: [styles.resultBubble, lastResult.success ? styles.resultSuccess : styles.resultError],
102
+ children: [/*#__PURE__*/_jsx(Text, {
103
+ style: styles.resultText,
104
+ children: lastResult.message
105
+ }), onDismiss && /*#__PURE__*/_jsx(Pressable, {
106
+ style: styles.dismissButton,
107
+ onPress: onDismiss,
108
+ hitSlop: 12,
109
+ children: /*#__PURE__*/_jsx(Text, {
110
+ style: styles.dismissText,
111
+ children: "\u2715"
112
+ })
113
+ })]
114
+ }), /*#__PURE__*/_jsxs(View, {
115
+ style: styles.inputRow,
116
+ children: [/*#__PURE__*/_jsx(TextInput, {
117
+ style: [styles.input, isArabic && styles.inputRTL],
118
+ placeholder: isArabic ? 'اكتب طلبك...' : 'Ask AI...',
119
+ placeholderTextColor: "#999",
120
+ value: text,
121
+ onChangeText: setText,
122
+ onSubmitEditing: handleSend,
123
+ returnKeyType: "send",
124
+ editable: !isThinking,
125
+ multiline: false
126
+ }), /*#__PURE__*/_jsx(Pressable, {
127
+ style: [styles.sendButton, isThinking && styles.sendButtonDisabled],
128
+ onPress: handleSend,
129
+ disabled: isThinking || !text.trim(),
130
+ accessibilityLabel: "Send request to AI Agent",
131
+ children: /*#__PURE__*/_jsx(Text, {
132
+ style: styles.sendButtonText,
133
+ children: isThinking ? '⏳' : '🚀'
134
+ })
135
+ })]
136
+ })]
137
+ });
138
+ }
139
+ const styles = StyleSheet.create({
140
+ // FAB Styles
141
+ fabContainer: {
142
+ position: 'absolute',
143
+ zIndex: 9999
144
+ },
145
+ fab: {
146
+ width: 60,
147
+ height: 60,
148
+ borderRadius: 30,
149
+ backgroundColor: '#1a1a2e',
150
+ justifyContent: 'center',
151
+ alignItems: 'center',
152
+ elevation: 5,
153
+ shadowColor: '#000',
154
+ shadowOffset: {
155
+ width: 0,
156
+ height: 4
157
+ },
158
+ shadowOpacity: 0.3,
159
+ shadowRadius: 6
160
+ },
161
+ fabIcon: {
162
+ fontSize: 28
163
+ },
164
+ // Expanded Styles
165
+ expandedContainer: {
166
+ position: 'absolute',
167
+ zIndex: 9999,
168
+ width: 340,
169
+ backgroundColor: 'rgba(26, 26, 46, 0.95)',
170
+ borderRadius: 24,
171
+ padding: 16,
172
+ paddingTop: 8,
173
+ elevation: 8,
174
+ shadowColor: '#000',
175
+ shadowOffset: {
176
+ width: 0,
177
+ height: 8
178
+ },
179
+ shadowOpacity: 0.4,
180
+ shadowRadius: 10
181
+ },
182
+ dragHandleArea: {
183
+ width: '100%',
184
+ height: 30,
185
+ justifyContent: 'center',
186
+ alignItems: 'center',
187
+ marginBottom: 8
188
+ },
189
+ dragGrip: {
190
+ width: 40,
191
+ height: 5,
192
+ backgroundColor: 'rgba(255, 255, 255, 0.3)',
193
+ borderRadius: 4
194
+ },
195
+ minimizeBtn: {
196
+ position: 'absolute',
197
+ right: 0,
198
+ top: 0,
199
+ padding: 8
200
+ },
201
+ minimizeText: {
202
+ color: '#fff',
203
+ fontSize: 18,
204
+ fontWeight: 'bold'
205
+ },
206
+ // Results & Input
207
+ resultBubble: {
208
+ borderRadius: 12,
209
+ padding: 12,
210
+ marginBottom: 12,
211
+ flexDirection: 'row',
212
+ alignItems: 'flex-start'
213
+ },
214
+ resultSuccess: {
215
+ backgroundColor: 'rgba(40, 167, 69, 0.2)'
216
+ },
217
+ resultError: {
218
+ backgroundColor: 'rgba(220, 53, 69, 0.2)'
219
+ },
220
+ resultText: {
221
+ color: '#fff',
222
+ fontSize: 14,
223
+ lineHeight: 20,
224
+ flex: 1
225
+ },
226
+ dismissButton: {
227
+ marginLeft: 8,
228
+ padding: 2
229
+ },
230
+ dismissText: {
231
+ color: 'rgba(255, 255, 255, 0.6)',
232
+ fontSize: 14,
233
+ fontWeight: 'bold'
234
+ },
235
+ inputRow: {
236
+ flexDirection: 'row',
237
+ alignItems: 'center',
238
+ gap: 8
239
+ },
240
+ input: {
241
+ flex: 1,
242
+ backgroundColor: 'rgba(255, 255, 255, 0.1)',
243
+ borderRadius: 20,
244
+ paddingHorizontal: 16,
245
+ paddingVertical: 10,
246
+ color: '#fff',
247
+ fontSize: 16
248
+ },
249
+ inputRTL: {
250
+ textAlign: 'right',
251
+ writingDirection: 'rtl'
252
+ },
253
+ sendButton: {
254
+ width: 40,
255
+ height: 40,
256
+ borderRadius: 20,
257
+ backgroundColor: 'rgba(255, 255, 255, 0.15)',
258
+ justifyContent: 'center',
259
+ alignItems: 'center'
260
+ },
261
+ sendButtonDisabled: {
262
+ opacity: 0.5
263
+ },
264
+ sendButtonText: {
265
+ fontSize: 18
266
+ }
267
+ });
268
+ //# sourceMappingURL=AgentChatBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useRef","View","TextInput","Pressable","Text","StyleSheet","Animated","PanResponder","useWindowDimensions","jsx","_jsx","jsxs","_jsxs","AgentChatBar","onSend","isThinking","lastResult","language","onDismiss","text","setText","isExpanded","setIsExpanded","height","isArabic","pan","ValueXY","x","y","current","panResponder","create","onMoveShouldSetPanResponder","_","gestureState","Math","abs","dx","dy","onPanResponderGrant","setOffset","_value","setValue","onPanResponderMove","event","useNativeDriver","onPanResponderRelease","flattenOffset","handleSend","trim","style","styles","fabContainer","getLayout","panHandlers","children","fab","onPress","accessibilityLabel","fabIcon","expandedContainer","dragHandleArea","dragGrip","minimizeBtn","minimizeText","resultBubble","success","resultSuccess","resultError","resultText","message","dismissButton","hitSlop","dismissText","inputRow","input","inputRTL","placeholder","placeholderTextColor","value","onChangeText","onSubmitEditing","returnKeyType","editable","multiline","sendButton","sendButtonDisabled","disabled","sendButtonText","position","zIndex","width","borderRadius","backgroundColor","justifyContent","alignItems","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","fontSize","padding","paddingTop","marginBottom","right","top","color","fontWeight","flexDirection","lineHeight","flex","marginLeft","gap","paddingHorizontal","paddingVertical","textAlign","writingDirection","opacity"],"sourceRoot":"../../../src","sources":["components/AgentChatBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * AgentOverlay — Subtle thinking indicator shown while the AI agent is processing.
5
+ */
6
+
7
+ import { View, Text, StyleSheet, ActivityIndicator } from 'react-native';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export function AgentOverlay({
10
+ visible,
11
+ statusText
12
+ }) {
13
+ if (!visible) return null;
14
+ return /*#__PURE__*/_jsx(View, {
15
+ style: styles.overlay,
16
+ pointerEvents: "none",
17
+ children: /*#__PURE__*/_jsxs(View, {
18
+ style: styles.pill,
19
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
20
+ size: "small",
21
+ color: "#fff"
22
+ }), /*#__PURE__*/_jsx(Text, {
23
+ style: styles.text,
24
+ children: statusText || 'Thinking...'
25
+ })]
26
+ })
27
+ });
28
+ }
29
+ const styles = StyleSheet.create({
30
+ overlay: {
31
+ position: 'absolute',
32
+ top: 60,
33
+ left: 0,
34
+ right: 0,
35
+ alignItems: 'center',
36
+ zIndex: 9999
37
+ },
38
+ pill: {
39
+ flexDirection: 'row',
40
+ alignItems: 'center',
41
+ gap: 8,
42
+ backgroundColor: 'rgba(26, 26, 46, 0.9)',
43
+ paddingHorizontal: 16,
44
+ paddingVertical: 10,
45
+ borderRadius: 20
46
+ },
47
+ text: {
48
+ color: '#fff',
49
+ fontSize: 14,
50
+ fontWeight: '500'
51
+ }
52
+ });
53
+ //# sourceMappingURL=AgentOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","Text","StyleSheet","ActivityIndicator","jsx","_jsx","jsxs","_jsxs","AgentOverlay","visible","statusText","style","styles","overlay","pointerEvents","children","pill","size","color","text","create","position","top","left","right","alignItems","zIndex","flexDirection","gap","backgroundColor","paddingHorizontal","paddingVertical","borderRadius","fontSize","fontWeight"],"sourceRoot":"../../../src","sources":["components/AgentOverlay.tsx"],"mappings":";;AAAA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,IAAI,EAAEC,UAAU,EAAEC,iBAAiB,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOzE,OAAO,SAASC,YAAYA,CAAC;EAAEC,OAAO;EAAEC;AAA8B,CAAC,EAAE;EACvE,IAAI,CAACD,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACEJ,IAAA,CAACL,IAAI;IAACW,KAAK,EAAEC,MAAM,CAACC,OAAQ;IAACC,aAAa,EAAC,MAAM;IAAAC,QAAA,eAC/CR,KAAA,CAACP,IAAI;MAACW,KAAK,EAAEC,MAAM,CAACI,IAAK;MAAAD,QAAA,gBACvBV,IAAA,CAACF,iBAAiB;QAACc,IAAI,EAAC,OAAO;QAACC,KAAK,EAAC;MAAM,CAAE,CAAC,eAC/Cb,IAAA,CAACJ,IAAI;QAACU,KAAK,EAAEC,MAAM,CAACO,IAAK;QAAAJ,QAAA,EAAEL,UAAU,IAAI;MAAa,CAAO,CAAC;IAAA,CAC1D;EAAC,CACH,CAAC;AAEX;AAEA,MAAME,MAAM,GAAGV,UAAU,CAACkB,MAAM,CAAC;EAC/BP,OAAO,EAAE;IACPQ,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,EAAE;IACPC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE;EACV,CAAC;EACDV,IAAI,EAAE;IACJW,aAAa,EAAE,KAAK;IACpBF,UAAU,EAAE,QAAQ;IACpBG,GAAG,EAAE,CAAC;IACNC,eAAe,EAAE,uBAAuB;IACxCC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE;EAChB,CAAC;EACDb,IAAI,EAAE;IACJD,KAAK,EAAE,MAAM;IACbe,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}