@mobileai/react-native 0.9.12 → 0.9.13
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 +480 -61
- package/lib/module/components/AIAgent.js +61 -3
- package/lib/module/components/AIAgent.js.map +1 -1
- package/lib/module/components/AgentChatBar.js +12 -2
- package/lib/module/components/AgentChatBar.js.map +1 -1
- package/lib/module/components/DiscoveryTooltip.js +128 -0
- package/lib/module/components/DiscoveryTooltip.js.map +1 -0
- package/lib/module/core/AgentRuntime.js +77 -1
- package/lib/module/core/AgentRuntime.js.map +1 -1
- package/lib/module/core/FiberTreeWalker.js +5 -1
- package/lib/module/core/FiberTreeWalker.js.map +1 -1
- package/lib/module/core/systemPrompt.js +41 -3
- package/lib/module/core/systemPrompt.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/AIAgent.d.ts +18 -2
- package/lib/typescript/src/components/AIAgent.d.ts.map +1 -1
- package/lib/typescript/src/components/AgentChatBar.d.ts +5 -1
- package/lib/typescript/src/components/AgentChatBar.d.ts.map +1 -1
- package/lib/typescript/src/components/DiscoveryTooltip.d.ts +15 -0
- package/lib/typescript/src/components/DiscoveryTooltip.d.ts.map +1 -0
- package/lib/typescript/src/core/AgentRuntime.d.ts +7 -0
- package/lib/typescript/src/core/AgentRuntime.d.ts.map +1 -1
- package/lib/typescript/src/core/FiberTreeWalker.d.ts.map +1 -1
- package/lib/typescript/src/core/systemPrompt.d.ts +1 -1
- package/lib/typescript/src/core/systemPrompt.d.ts.map +1 -1
- package/lib/typescript/src/core/types.d.ts +19 -0
- package/lib/typescript/src/core/types.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/AIAgent.tsx +75 -1
- package/src/components/AgentChatBar.tsx +19 -1
- package/src/components/DiscoveryTooltip.tsx +148 -0
- package/src/core/AgentRuntime.ts +87 -1
- package/src/core/FiberTreeWalker.ts +5 -0
- package/src/core/systemPrompt.ts +41 -3
- package/src/core/types.ts +21 -0
- package/src/index.ts +1 -0
|
@@ -91,9 +91,43 @@ const SHARED_CAPABILITY = `- It is ok to fail the task. User would rather you re
|
|
|
91
91
|
- The app can have bugs. If something is not working as expected, report it to the user.
|
|
92
92
|
- Trying too hard can be harmful. If stuck, report partial progress rather than repeating failed actions.`;
|
|
93
93
|
|
|
94
|
+
/**
|
|
95
|
+
* Copilot mode rules — AI pauses once before final irreversible commit.
|
|
96
|
+
* Injected when interactionMode is 'copilot' (the default).
|
|
97
|
+
*/
|
|
98
|
+
const COPILOT_RULES = `<copilot_mode>
|
|
99
|
+
You are in COPILOT mode. This means:
|
|
100
|
+
|
|
101
|
+
Execute ALL intermediate actions SILENTLY — no confirmation needed:
|
|
102
|
+
- Navigating between screens, tabs, menus
|
|
103
|
+
- Scrolling to find content
|
|
104
|
+
- Typing into form fields
|
|
105
|
+
- Selecting options, filters, categories
|
|
106
|
+
- Adding items to cart (user can remove later)
|
|
107
|
+
- Opening/closing dialogs or details
|
|
108
|
+
- Toggling form controls while filling a form
|
|
109
|
+
|
|
110
|
+
PAUSE only when you reach the FINAL action that IRREVERSIBLY commits
|
|
111
|
+
the user's change. Use ask_user to summarize what you have done so far
|
|
112
|
+
and ask permission BEFORE tapping the commit button. Examples of commit actions:
|
|
113
|
+
- Placing an order / completing a purchase
|
|
114
|
+
- Submitting a form that sends data
|
|
115
|
+
- Deleting something (account, item, message)
|
|
116
|
+
- Confirming a payment or transaction
|
|
117
|
+
- Sending a message or email
|
|
118
|
+
- Saving account/profile changes
|
|
119
|
+
|
|
120
|
+
Elements marked with aiConfirm in the element tree are developer-flagged
|
|
121
|
+
as requiring confirmation. Treat them as commit actions regardless of context.
|
|
122
|
+
|
|
123
|
+
Call ask_user EXACTLY ONCE per task — at the final commit moment, not at
|
|
124
|
+
every step. If the task has no irreversible commit (e.g., "show me my orders",
|
|
125
|
+
"find the cheapest item"), complete the task without pausing.
|
|
126
|
+
</copilot_mode>`;
|
|
127
|
+
|
|
94
128
|
// ─── Text Agent Prompt ──────────────────────────────────────────────────────
|
|
95
129
|
|
|
96
|
-
export function buildSystemPrompt(language, hasKnowledge = false) {
|
|
130
|
+
export function buildSystemPrompt(language, hasKnowledge = false, isCopilot = true) {
|
|
97
131
|
const isArabic = language === 'ar';
|
|
98
132
|
return `${CONFIDENTIALITY("I'm your app assistant — I can help you navigate and use this app. What would you like to do?")}
|
|
99
133
|
|
|
@@ -171,6 +205,8 @@ ${NAVIGATION_RULE}
|
|
|
171
205
|
${UI_SIMPLIFICATION_RULE}
|
|
172
206
|
</rules>
|
|
173
207
|
|
|
208
|
+
${isCopilot ? COPILOT_RULES : ''}
|
|
209
|
+
|
|
174
210
|
<task_completion_rules>
|
|
175
211
|
You must call the done action in one of these cases:
|
|
176
212
|
- When you have fully completed the USER REQUEST.
|
|
@@ -189,8 +225,10 @@ The done action is your opportunity to communicate findings and provide a cohere
|
|
|
189
225
|
- Use the text field to answer questions, summarize what you found, or explain what you did.
|
|
190
226
|
- You are ONLY ALLOWED to call done as a single action. Do not call it together with other actions.
|
|
191
227
|
|
|
192
|
-
The ask_user action should ONLY be used when
|
|
193
|
-
-
|
|
228
|
+
The ask_user action should ONLY be used when:
|
|
229
|
+
- The user gave an action request but you lack specific information to execute it (e.g., user says "order a pizza" but there are multiple options and you don't know which one).
|
|
230
|
+
- You are in copilot mode and about to perform an irreversible commit action (see copilot_mode rules above).
|
|
231
|
+
- Do NOT use ask_user for routine confirmations the user already gave. If they said "place my order", proceed to the commit step and confirm there.
|
|
194
232
|
- NEVER ask for the same confirmation twice. If the user already answered, proceed with their answer.
|
|
195
233
|
- For destructive/purchase actions (place order, delete, pay), tap the button exactly ONCE. Do not repeat the same action — the user could be charged multiple times.
|
|
196
234
|
</task_completion_rules>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CONFIDENTIALITY","assistantDescription","SCREEN_STATE_GUIDE","CUSTOM_ACTIONS","NAVIGATION_RULE","SCREEN_FINDING_PROCEDURE","LAZY_LOADING_RULE","SECURITY_RULES","UI_SIMPLIFICATION_RULE","LANGUAGE_SETTINGS","isArabic","SHARED_CAPABILITY","buildSystemPrompt","language","hasKnowledge","buildVoiceSystemPrompt","userInstructions","prompt","trim","buildKnowledgeOnlyPrompt"],"sourceRoot":"../../../src","sources":["core/systemPrompt.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAMA,eAAe,GAAIC,oBAA4B,IAAK;AAC1D,kKAAkKA,oBAAoB;AACtL,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,MAAMC,cAAc,GAAG;AACvB;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,MAAMC,eAAe,GAAG,8gBAA8gB;;AAEtiB;AACA;AACA;AACA,MAAMC,wBAAwB,GAAG;AACjC;AACA;AACA;AACA,6KAA6K;;AAE7K;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,gXAAgX;;AAE1Y;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAG;AACvB;AACA,2JAA2J;;AAE3J;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG,sTAAsT;;AAErV;AACA;AACA;AACA,MAAMC,iBAAiB,GAAIC,QAAiB,IAAK;AACjD,EAAEA,QAAQ,GAAG,oDAAoD,GAAG,sDAAsD;AAC1H;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG;AAC1B;AACA;AACA,0GAA0G;;AAE1G;;AAEA,OAAO,SAASC,iBAAiBA,CAACC,QAAgB,EAAEC,YAAY,GAAG,KAAK,EAAU;
|
|
1
|
+
{"version":3,"names":["CONFIDENTIALITY","assistantDescription","SCREEN_STATE_GUIDE","CUSTOM_ACTIONS","NAVIGATION_RULE","SCREEN_FINDING_PROCEDURE","LAZY_LOADING_RULE","SECURITY_RULES","UI_SIMPLIFICATION_RULE","LANGUAGE_SETTINGS","isArabic","SHARED_CAPABILITY","COPILOT_RULES","buildSystemPrompt","language","hasKnowledge","isCopilot","buildVoiceSystemPrompt","userInstructions","prompt","trim","buildKnowledgeOnlyPrompt"],"sourceRoot":"../../../src","sources":["core/systemPrompt.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAMA,eAAe,GAAIC,oBAA4B,IAAK;AAC1D,kKAAkKA,oBAAoB;AACtL,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,MAAMC,cAAc,GAAG;AACvB;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,MAAMC,eAAe,GAAG,8gBAA8gB;;AAEtiB;AACA;AACA;AACA,MAAMC,wBAAwB,GAAG;AACjC;AACA;AACA;AACA,6KAA6K;;AAE7K;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,gXAAgX;;AAE1Y;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAG;AACvB;AACA,2JAA2J;;AAE3J;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG,sTAAsT;;AAErV;AACA;AACA;AACA,MAAMC,iBAAiB,GAAIC,QAAiB,IAAK;AACjD,EAAEA,QAAQ,GAAG,oDAAoD,GAAG,sDAAsD;AAC1H;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG;AAC1B;AACA;AACA,0GAA0G;;AAE1G;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAG;AACtB;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,gBAAgB;;AAEhB;;AAEA,OAAO,SAASC,iBAAiBA,CAACC,QAAgB,EAAEC,YAAY,GAAG,KAAK,EAAEC,SAAS,GAAG,IAAI,EAAU;EAClG,MAAMN,QAAQ,GAAGI,QAAQ,KAAK,IAAI;EAElC,OAAO,GAAGd,eAAe,CAAC,+FAA+F,CAAC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAES,iBAAiB,CAACC,QAAQ,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAER,kBAAkB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4Ha,YAAY,GAAG;AAC3I,sQAAsQ,GAAG,EAAE;AAC3Q;AACA;AACA,EAAEZ,cAAc;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+DY,YAAY,GAAG,uDAAuD,GAAG,EAAE,8CAA8CA,YAAY,GAAG,kBAAkB,GAAG,EAAE;AAC9N;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEV,wBAAwB;AAC1B;AACA;AACA,EAAEC,iBAAiB;AACnB;AACA;AACA;AACA,EAAEC,cAAc;AAChB,EAAEH,eAAe;AACjB,EAAEI,sBAAsB;AACxB;AACA;AACA,EAAEQ,SAAS,GAAGJ,aAAa,GAAG,EAAE;AAChC;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,oFAAoFG,YAAY,GAAG;AACnG,qJAAqJ,GAAG,EAAE;AAC1J,EAAEJ,iBAAiB;AACnB;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;;AAEA,OAAO,SAASM,sBAAsBA,CACpCH,QAAgB,EAChBI,gBAAyB,EACzBH,YAAY,GAAG,KAAK,EACZ;EACR,MAAML,QAAQ,GAAGI,QAAQ,KAAK,IAAI;EAElC,IAAIK,MAAM,GAAG,GAAGnB,eAAe,CAAC,+FAA+F,CAAC;AAClI;AACA;AACA;AACA;AACA;AACA,EAAEE,kBAAkB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+Da,YAAY,GAAG;AAC9E,2OAA2O,GAAG,EAAE;AAChP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEZ,cAAc;AAChB;AACA;AACA;AACA;AACA,sDAAsDY,YAAY,GAAG,uDAAuD,GAAG,EAAE,8CAA8CA,YAAY,GAAG,kBAAkB,GAAG,EAAE;AACrN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEV,wBAAwB;AAC1B;AACA;AACA,EAAEC,iBAAiB;AACnB;AACA;AACA;AACA;AACA,EAAEC,cAAc;AAChB;AACA;AACA;AACA,EAAEH,eAAe;AACjB,EAAEI,sBAAsB;AACxB;AACA;AACA;AACA,iFAAiFO,YAAY,GAAG;AAChG,qJAAqJ,GAAG,EAAE;AAC1J;AACA,EAAEJ,iBAAiB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEF,iBAAiB,CAACC,QAAQ,CAAC,EAAE;EAE7B,IAAIQ,gBAAgB,EAAEE,IAAI,CAAC,CAAC,EAAE;IAC5BD,MAAM,IAAI,2BAA2BD,gBAAgB,CAACE,IAAI,CAAC,CAAC,uBAAuB;EACrF;EAEA,OAAOD,MAAM;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,wBAAwBA,CACtCP,QAAgB,EAChBC,YAAqB,EACrBG,gBAAyB,EACjB;EACR,MAAMR,QAAQ,GAAGI,QAAQ,KAAK,IAAI;EAElC,IAAIK,MAAM,GAAG,GAAGnB,eAAe,CAAC,mGAAmG,CAAC;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2Ge,YAAY,GAAG;AAC1H,2OAA2O,GAAG,EAAE;AAChP;AACA;AACA;AACA,kEAAkEA,YAAY,GAAG;AACjF,0IAA0I,GAAG,EAAE;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA,EAAEN,iBAAiB,CAACC,QAAQ,CAAC,EAAE;EAE7B,IAAIQ,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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AIAgent","AIZone","InfoCard","ReviewSummary","GeminiProvider","OpenAIProvider","createProvider","useAction","useAI","VoiceService","AudioInputService","AudioOutputService","KnowledgeBaseService","MobileAI","logger","SupportGreeting","CSATSurvey","buildSupportPrompt","createEscalateTool","EscalationSocket"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,MAAM,QAAQ,wBAAqB;AAC5C;AACA;AACA,SAASC,QAAQ,QAAQ,gCAA6B;AACtD,SAASC,aAAa,QAAQ,qCAAkC;;AAEhE;AACA,SAASC,cAAc,QAAQ,+BAA4B;AAC3D,SAASC,cAAc,QAAQ,+BAA4B;AAC3D,SAASC,cAAc,QAAQ,gCAA6B;;AAE5D;AACA,SAASC,SAAS,EAAEC,KAAK,QAAQ,sBAAmB;;AAEpD;AACA,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,iBAAiB,QAAQ,iCAA8B;AAChE,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,oBAAoB,QAAQ,oCAAiC;;AAEtE;AACA,SAASC,QAAQ,QAAQ,+BAAsB;;AAE/C;AACA,SAASC,MAAM,QAAQ,mBAAgB;;AAEvC;;
|
|
1
|
+
{"version":3,"names":["AIAgent","AIZone","InfoCard","ReviewSummary","GeminiProvider","OpenAIProvider","createProvider","useAction","useAI","VoiceService","AudioInputService","AudioOutputService","KnowledgeBaseService","MobileAI","logger","SupportGreeting","CSATSurvey","buildSupportPrompt","createEscalateTool","EscalationSocket"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,MAAM,QAAQ,wBAAqB;AAC5C;AACA;AACA,SAASC,QAAQ,QAAQ,gCAA6B;AACtD,SAASC,aAAa,QAAQ,qCAAkC;;AAEhE;AACA,SAASC,cAAc,QAAQ,+BAA4B;AAC3D,SAASC,cAAc,QAAQ,+BAA4B;AAC3D,SAASC,cAAc,QAAQ,gCAA6B;;AAE5D;AACA,SAASC,SAAS,EAAEC,KAAK,QAAQ,sBAAmB;;AAEpD;AACA,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,iBAAiB,QAAQ,iCAA8B;AAChE,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,oBAAoB,QAAQ,oCAAiC;;AAEtE;AACA,SAASC,QAAQ,QAAQ,+BAAsB;;AAE/C;AACA,SAASC,MAAM,QAAQ,mBAAgB;;AAEvC;;AAgCA;AACA;AACA;AACA;AACA,SAASC,eAAe,EAAEC,UAAU,EAAEC,kBAAkB,EAAEC,kBAAkB,EAAEC,gBAAgB,QAAQ,oBAAW","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Agent runtime context for useAction hooks
|
|
9
9
|
*/
|
|
10
10
|
import React from 'react';
|
|
11
|
-
import type { ExecutionResult, ToolDefinition, AgentStep, TokenUsage, KnowledgeBaseConfig, ChatBarTheme, AIProviderName, ScreenMap, ProactiveHelpConfig } from '../core/types';
|
|
11
|
+
import type { ExecutionResult, ToolDefinition, AgentStep, TokenUsage, KnowledgeBaseConfig, ChatBarTheme, AIProviderName, ScreenMap, ProactiveHelpConfig, InteractionMode } from '../core/types';
|
|
12
12
|
interface AIAgentProps {
|
|
13
13
|
/**
|
|
14
14
|
* API key (for local prototyping only).
|
|
@@ -173,7 +173,23 @@ interface AIAgentProps {
|
|
|
173
173
|
* "fcm" is recommended for universal bare/Expo support.
|
|
174
174
|
*/
|
|
175
175
|
pushTokenType?: 'fcm' | 'expo' | 'apns';
|
|
176
|
+
/**
|
|
177
|
+
* Controls how the agent handles irreversible UI actions.
|
|
178
|
+
* 'copilot' (default): AI pauses before final commit actions (place order, delete, submit).
|
|
179
|
+
* 'autopilot': Full autonomy — all actions execute without confirmation.
|
|
180
|
+
*
|
|
181
|
+
* In copilot mode, the AI works silently (navigates, fills forms, scrolls) and
|
|
182
|
+
* pauses ONCE before the final irreversible action. Elements with aiConfirm={true}
|
|
183
|
+
* also trigger a code-level confirmation gate as a safety net.
|
|
184
|
+
*/
|
|
185
|
+
interactionMode?: InteractionMode;
|
|
186
|
+
/**
|
|
187
|
+
* Show a one-time discovery tooltip above the chat FAB.
|
|
188
|
+
* Tells new users the AI can navigate and interact with the app.
|
|
189
|
+
* Default: true (shows once, then remembered via AsyncStorage)
|
|
190
|
+
*/
|
|
191
|
+
showDiscoveryTooltip?: boolean;
|
|
176
192
|
}
|
|
177
|
-
export declare function AIAgent({ apiKey, proxyUrl, proxyHeaders, voiceProxyUrl, voiceProxyHeaders, provider: providerName, model, navRef, maxSteps, showChatBar, children, onResult, interactiveBlacklist, interactiveWhitelist, onBeforeStep, onAfterStep, onBeforeTask, onAfterTask, transformScreenContent, customTools, instructions, stepDelay, mcpServerUrl, router, pathname, enableVoice, onTokenUsage, debug, knowledgeBase, knowledgeMaxTokens, enableUIControl, accentColor, theme, screenMap, useScreenMap, maxTokenBudget, maxCostUSD, analyticsKey, analyticsProxyUrl, analyticsProxyHeaders, proactiveHelp, userContext, pushToken, pushTokenType, }: AIAgentProps): import("react/jsx-runtime").JSX.Element;
|
|
193
|
+
export declare function AIAgent({ apiKey, proxyUrl, proxyHeaders, voiceProxyUrl, voiceProxyHeaders, provider: providerName, model, navRef, maxSteps, showChatBar, children, onResult, interactiveBlacklist, interactiveWhitelist, onBeforeStep, onAfterStep, onBeforeTask, onAfterTask, transformScreenContent, customTools, instructions, stepDelay, mcpServerUrl, router, pathname, enableVoice, onTokenUsage, debug, knowledgeBase, knowledgeMaxTokens, enableUIControl, accentColor, theme, screenMap, useScreenMap, maxTokenBudget, maxCostUSD, analyticsKey, analyticsProxyUrl, analyticsProxyHeaders, proactiveHelp, userContext, pushToken, pushTokenType, interactionMode, showDiscoveryTooltip: showDiscoveryTooltipProp, }: AIAgentProps): import("react/jsx-runtime").JSX.Element;
|
|
178
194
|
export {};
|
|
179
195
|
//# sourceMappingURL=AIAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIAgent.d.ts","sourceRoot":"","sources":["../../../../src/components/AIAgent.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAMN,MAAM,OAAO,CAAC;AAgBf,OAAO,KAAK,EAA0B,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAa,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"AIAgent.d.ts","sourceRoot":"","sources":["../../../../src/components/AIAgent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,11 @@ interface AgentChatBarProps {
|
|
|
50
50
|
unreadCounts?: Record<string, number>;
|
|
51
51
|
/** Total unread messages across all tickets */
|
|
52
52
|
totalUnread?: number;
|
|
53
|
+
/** Show first-use discovery tooltip above FAB */
|
|
54
|
+
showDiscoveryTooltip?: boolean;
|
|
55
|
+
/** Called when discovery tooltip is dismissed */
|
|
56
|
+
onTooltipDismiss?: () => void;
|
|
53
57
|
}
|
|
54
|
-
export declare function AgentChatBar({ onSend, isThinking, lastResult, language, onDismiss, availableModes, mode, onModeChange, onMicToggle, onSpeakerToggle, isMicActive, isSpeakerMuted, isAISpeaking, isVoiceConnected, onStopSession, theme, tickets, selectedTicketId, onTicketSelect, autoExpandTrigger, lastUserMessage, unreadCounts, totalUnread, }: AgentChatBarProps): import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
export declare function AgentChatBar({ onSend, isThinking, lastResult, language, onDismiss, availableModes, mode, onModeChange, onMicToggle, onSpeakerToggle, isMicActive, isSpeakerMuted, isAISpeaking, isVoiceConnected, onStopSession, theme, tickets, selectedTicketId, onTicketSelect, autoExpandTrigger, lastUserMessage, unreadCounts, totalUnread, showDiscoveryTooltip, onTooltipDismiss, }: AgentChatBarProps): import("react/jsx-runtime").JSX.Element;
|
|
55
59
|
export {};
|
|
56
60
|
//# sourceMappingURL=AgentChatBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentChatBar.d.ts","sourceRoot":"","sources":["../../../../src/components/AgentChatBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAUzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentChatBar.d.ts","sourceRoot":"","sources":["../../../../src/components/AgentChatBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAUzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,UAAU,iBAAiB;IACzB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAC7B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,qBAAqB;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iCAAiC;IACjC,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAuVD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,cAAyB,EACzB,IAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAmB,EACnB,cAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,OAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,iBAAqB,EACrB,eAAe,EACf,YAAiB,EACjB,WAAe,EACf,oBAA4B,EAC5B,gBAAgB,GACjB,EAAE,iBAAiB,2CAyOnB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DiscoveryTooltip — One-time tooltip shown above the FAB on first use.
|
|
3
|
+
*
|
|
4
|
+
* Tells users the AI can navigate the app and do things for them.
|
|
5
|
+
* Shows once, then persists dismissal via AsyncStorage.
|
|
6
|
+
* Bilingual: EN/AR.
|
|
7
|
+
*/
|
|
8
|
+
interface DiscoveryTooltipProps {
|
|
9
|
+
language: 'en' | 'ar';
|
|
10
|
+
primaryColor?: string;
|
|
11
|
+
onDismiss: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function DiscoveryTooltip({ language, primaryColor, onDismiss, }: DiscoveryTooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=DiscoveryTooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiscoveryTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/DiscoveryTooltip.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AASD,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,YAAY,EACZ,SAAS,GACV,EAAE,qBAAqB,2CAoEvB"}
|
|
@@ -116,6 +116,13 @@ export declare class AgentRuntime {
|
|
|
116
116
|
* Returns error string if validation fails, null if valid.
|
|
117
117
|
*/
|
|
118
118
|
private validateToolArgs;
|
|
119
|
+
/** Write tools that can mutate state — only these are checked for aiConfirm */
|
|
120
|
+
private static readonly WRITE_TOOLS;
|
|
121
|
+
/**
|
|
122
|
+
* Check if a tool call targets an aiConfirm element and request user confirmation.
|
|
123
|
+
* Returns null if the action should proceed, or an error string if rejected.
|
|
124
|
+
*/
|
|
125
|
+
private checkCopilotConfirmation;
|
|
119
126
|
private getWalkConfig;
|
|
120
127
|
private getInstructions;
|
|
121
128
|
private observations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentRuntime.d.ts","sourceRoot":"","sources":["../../../../src/core/AgentRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsBH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EAEX,eAAe,EACf,cAAc,EAEf,MAAM,SAAS,CAAC;AAOjB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,kBAAkB,CAAa;IAMvC,OAAO,CAAC,oBAAoB,CAA4D;IACxF,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,gCAAgC,CAAkC;IAEnE,SAAS,IAAI,WAAW;gBAK7B,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,GAAG;IAuCb,OAAO,CAAC,oBAAoB;IA6L5B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAuClC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;IAkBzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAyBtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,oBAAoB;IAarB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAIxD,OAAO,CAAC,WAAW;IAKnB,gFAAgF;IAChF,OAAO,CAAC,kBAAkB;IAmC1B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;;OAIG;IACI,gBAAgB,IAAI,MAAM;IAsEjC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,qBAAqB;IAsC7B,gFAAgF;IACzE,QAAQ,IAAI,cAAc,EAAE;IAInC,yEAAyE;IAC5D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQlF;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;;;;OAMG;YACW,iBAAiB;
|
|
1
|
+
{"version":3,"file":"AgentRuntime.d.ts","sourceRoot":"","sources":["../../../../src/core/AgentRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsBH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EAEX,eAAe,EACf,cAAc,EAEf,MAAM,SAAS,CAAC;AAOjB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,kBAAkB,CAAa;IAMvC,OAAO,CAAC,oBAAoB,CAA4D;IACxF,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,gCAAgC,CAAkC;IAEnE,SAAS,IAAI,WAAW;gBAK7B,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,GAAG;IAuCb,OAAO,CAAC,oBAAoB;IA6L5B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAuClC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;IAkBzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAyBtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,oBAAoB;IAarB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAIxD,OAAO,CAAC,WAAW;IAKnB,gFAAgF;IAChF,OAAO,CAAC,kBAAkB;IAmC1B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;;OAIG;IACI,gBAAgB,IAAI,MAAM;IAsEjC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,qBAAqB;IAsC7B,gFAAgF;IACzE,QAAQ,IAAI,cAAc,EAAE;IAInC,yEAAyE;IAC5D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQlF;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;;;;OAMG;YACW,iBAAiB;IAmD/B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA0BxB,+EAA+E;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAEhC;IAEH;;;OAGG;YACW,wBAAwB;IA2DtC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAAc;IAEpC,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,kBAAkB;IA0HpB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IA2V/G,qDAAqD;IACrD,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAK3C,4CAA4C;IAC5C,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACH,MAAM,IAAI,IAAI;CAMf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberTreeWalker.d.ts","sourceRoot":"","sources":["../../../../src/core/FiberTreeWalker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAI/D,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAQtD;AA+TD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"FiberTreeWalker.d.ts","sourceRoot":"","sources":["../../../../src/core/FiberTreeWalker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAI/D,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAQtD;AA+TD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,CA2Q3E;AAsBD,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,mEAAmE;IACnE,SAAS,EAAE,GAAG,CAAC;IACf;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAwCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA6DjG"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* in sync — one change propagates everywhere. The prompt uses XML-style
|
|
7
7
|
* tags to give the LLM clear, structured instructions.
|
|
8
8
|
*/
|
|
9
|
-
export declare function buildSystemPrompt(language: string, hasKnowledge?: boolean): string;
|
|
9
|
+
export declare function buildSystemPrompt(language: string, hasKnowledge?: boolean, isCopilot?: boolean): string;
|
|
10
10
|
export declare function buildVoiceSystemPrompt(language: string, userInstructions?: string, hasKnowledge?: boolean): string;
|
|
11
11
|
/**
|
|
12
12
|
* Build a knowledge-only system prompt (no UI control tools).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../../../src/core/systemPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../../../src/core/systemPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwHH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,UAAQ,EAAE,SAAS,UAAO,GAAG,MAAM,CA+JlG;AAID,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,EACzB,YAAY,UAAQ,GACnB,MAAM,CAoFR;AAID;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,EACrB,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAqCR"}
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
* Core types for the React Native AI SDK.
|
|
3
3
|
*/
|
|
4
4
|
export type AgentMode = 'text' | 'voice' | 'human';
|
|
5
|
+
/**
|
|
6
|
+
* Controls how the agent handles irreversible actions.
|
|
7
|
+
* 'copilot' (default): AI pauses before final commit actions (place order, delete, submit).
|
|
8
|
+
* The prompt instructs the AI to ask_user before the final irreversible step.
|
|
9
|
+
* Elements with aiConfirm={true} also trigger a code-level confirmation gate.
|
|
10
|
+
* 'autopilot': Full autonomy — all actions execute without confirmation.
|
|
11
|
+
*/
|
|
12
|
+
export type InteractionMode = 'copilot' | 'autopilot';
|
|
5
13
|
export type AIProviderName = 'gemini' | 'openai';
|
|
6
14
|
export type ElementType = 'pressable' | 'text-input' | 'switch' | 'scrollable' | 'slider' | 'picker' | 'date-picker';
|
|
7
15
|
export interface InteractiveElement {
|
|
@@ -27,6 +35,11 @@ export interface InteractiveElement {
|
|
|
27
35
|
* - Switch: onValueChange, value
|
|
28
36
|
*/
|
|
29
37
|
props: Record<string, any>;
|
|
38
|
+
/**
|
|
39
|
+
* If true, AI interaction with this element requires user confirmation (copilot safety net).
|
|
40
|
+
* Set automatically by the FiberTreeWalker when the element has aiConfirm={true} prop.
|
|
41
|
+
*/
|
|
42
|
+
requiresConfirmation?: boolean;
|
|
30
43
|
}
|
|
31
44
|
export interface DehydratedScreen {
|
|
32
45
|
/** Current screen name (from navigation state) */
|
|
@@ -89,6 +102,12 @@ export interface AgentConfig {
|
|
|
89
102
|
model?: string;
|
|
90
103
|
/** Maximum steps per task */
|
|
91
104
|
maxSteps?: number;
|
|
105
|
+
/**
|
|
106
|
+
* Controls how the agent handles irreversible actions.
|
|
107
|
+
* 'copilot' (default): AI pauses before final commit actions.
|
|
108
|
+
* 'autopilot': Full autonomy, no pauses.
|
|
109
|
+
*/
|
|
110
|
+
interactionMode?: InteractionMode;
|
|
92
111
|
/**
|
|
93
112
|
* MCP server mode — controls whether external agents can discover and invoke actions.
|
|
94
113
|
* 'auto' (default): enabled in __DEV__, disabled in production
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export { AudioOutputService } from './services/AudioOutputService';
|
|
|
18
18
|
export { KnowledgeBaseService } from './services/KnowledgeBaseService';
|
|
19
19
|
export { MobileAI } from './services/telemetry';
|
|
20
20
|
export { logger } from './utils/logger';
|
|
21
|
-
export type { AgentConfig, AgentMode, ExecutionResult, InteractiveElement, DehydratedScreen, ToolDefinition, ActionDefinition, TokenUsage, KnowledgeEntry, KnowledgeRetriever, KnowledgeBaseConfig, ChatBarTheme, AIMessage, AIProviderName, ScreenMap, ScreenMapEntry, } from './core/types';
|
|
21
|
+
export type { AgentConfig, AgentMode, ExecutionResult, InteractiveElement, DehydratedScreen, ToolDefinition, ActionDefinition, TokenUsage, KnowledgeEntry, KnowledgeRetriever, KnowledgeBaseConfig, ChatBarTheme, AIMessage, AIProviderName, ScreenMap, ScreenMapEntry, InteractionMode, } from './core/types';
|
|
22
22
|
export type { VoiceServiceConfig, VoiceServiceCallbacks, VoiceStatus, } from './services/VoiceService';
|
|
23
23
|
export type { TelemetryConfig, TelemetryEvent, } from './services/telemetry';
|
|
24
24
|
export { SupportGreeting, CSATSurvey, buildSupportPrompt, createEscalateTool, EscalationSocket } from './support';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,YAAY,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,YAAY,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElH,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,aAAa,GACd,MAAM,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mobileai/react-native",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.13",
|
|
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",
|
|
@@ -30,7 +30,7 @@ import { AudioOutputService } from '../services/AudioOutputService';
|
|
|
30
30
|
import { TelemetryService, bindTelemetryService } from '../services/telemetry';
|
|
31
31
|
import { extractTouchLabel, checkRageClick } from '../services/telemetry/TouchAutoCapture';
|
|
32
32
|
import { initDeviceId, getDeviceId } from '../services/telemetry/device';
|
|
33
|
-
import type { AgentConfig, AgentMode, ExecutionResult, ToolDefinition, AgentStep, TokenUsage, KnowledgeBaseConfig, ChatBarTheme, AIMessage, AIProviderName, ScreenMap, ProactiveHelpConfig } from '../core/types';
|
|
33
|
+
import type { AgentConfig, AgentMode, ExecutionResult, ToolDefinition, AgentStep, TokenUsage, KnowledgeBaseConfig, ChatBarTheme, AIMessage, AIProviderName, ScreenMap, ProactiveHelpConfig, InteractionMode } from '../core/types';
|
|
34
34
|
import { AgentErrorBoundary } from './AgentErrorBoundary';
|
|
35
35
|
import { HighlightOverlay } from './HighlightOverlay';
|
|
36
36
|
import { IdleDetector } from '../core/IdleDetector';
|
|
@@ -43,6 +43,30 @@ import { ENDPOINTS } from '../config/endpoints';
|
|
|
43
43
|
|
|
44
44
|
// ─── Context ───────────────────────────────────────────────────
|
|
45
45
|
|
|
46
|
+
// ─── AsyncStorage Helper (same pattern as TicketStore) ─────────
|
|
47
|
+
|
|
48
|
+
/** Try to load AsyncStorage for tooltip persistence. Optional peer dep. */
|
|
49
|
+
function getTooltipStorage(): any | null {
|
|
50
|
+
try {
|
|
51
|
+
const origError = console.error;
|
|
52
|
+
console.error = (...args: unknown[]) => {
|
|
53
|
+
const msg = args[0];
|
|
54
|
+
if (typeof msg === 'string' && msg.includes('AsyncStorage')) return;
|
|
55
|
+
origError.apply(console, args);
|
|
56
|
+
};
|
|
57
|
+
try {
|
|
58
|
+
const mod = require('@react-native-async-storage/async-storage');
|
|
59
|
+
const candidate = mod?.default ?? mod?.AsyncStorage ?? null;
|
|
60
|
+
if (candidate && typeof candidate.getItem === 'function') return candidate;
|
|
61
|
+
return null;
|
|
62
|
+
} finally {
|
|
63
|
+
console.error = origError;
|
|
64
|
+
}
|
|
65
|
+
} catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
46
70
|
// ─── Props ─────────────────────────────────────────────────────
|
|
47
71
|
|
|
48
72
|
interface AIAgentProps {
|
|
@@ -223,6 +247,24 @@ interface AIAgentProps {
|
|
|
223
247
|
* "fcm" is recommended for universal bare/Expo support.
|
|
224
248
|
*/
|
|
225
249
|
pushTokenType?: 'fcm' | 'expo' | 'apns';
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Controls how the agent handles irreversible UI actions.
|
|
253
|
+
* 'copilot' (default): AI pauses before final commit actions (place order, delete, submit).
|
|
254
|
+
* 'autopilot': Full autonomy — all actions execute without confirmation.
|
|
255
|
+
*
|
|
256
|
+
* In copilot mode, the AI works silently (navigates, fills forms, scrolls) and
|
|
257
|
+
* pauses ONCE before the final irreversible action. Elements with aiConfirm={true}
|
|
258
|
+
* also trigger a code-level confirmation gate as a safety net.
|
|
259
|
+
*/
|
|
260
|
+
interactionMode?: InteractionMode;
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Show a one-time discovery tooltip above the chat FAB.
|
|
264
|
+
* Tells new users the AI can navigate and interact with the app.
|
|
265
|
+
* Default: true (shows once, then remembered via AsyncStorage)
|
|
266
|
+
*/
|
|
267
|
+
showDiscoveryTooltip?: boolean;
|
|
226
268
|
}
|
|
227
269
|
|
|
228
270
|
|
|
@@ -275,6 +317,8 @@ export function AIAgent({
|
|
|
275
317
|
userContext,
|
|
276
318
|
pushToken,
|
|
277
319
|
pushTokenType,
|
|
320
|
+
interactionMode,
|
|
321
|
+
showDiscoveryTooltip: showDiscoveryTooltipProp = true,
|
|
278
322
|
}: AIAgentProps) {
|
|
279
323
|
// Configure logger based on debug prop
|
|
280
324
|
React.useEffect(() => {
|
|
@@ -319,6 +363,33 @@ export function AIAgent({
|
|
|
319
363
|
|
|
320
364
|
const totalUnread = Object.values(unreadCounts).reduce((sum, count) => sum + count, 0);
|
|
321
365
|
|
|
366
|
+
// ── Discovery Tooltip (one-time) ──────────────────────────
|
|
367
|
+
const [tooltipVisible, setTooltipVisible] = useState(false);
|
|
368
|
+
|
|
369
|
+
useEffect(() => {
|
|
370
|
+
if (!showDiscoveryTooltipProp) return;
|
|
371
|
+
void (async () => {
|
|
372
|
+
try {
|
|
373
|
+
const AS = getTooltipStorage();
|
|
374
|
+
if (!AS) { setTooltipVisible(true); return; }
|
|
375
|
+
const seen = await AS.getItem('@mobileai_tooltip_seen');
|
|
376
|
+
if (!seen) setTooltipVisible(true);
|
|
377
|
+
} catch {
|
|
378
|
+
setTooltipVisible(true);
|
|
379
|
+
}
|
|
380
|
+
})();
|
|
381
|
+
}, [showDiscoveryTooltipProp]);
|
|
382
|
+
|
|
383
|
+
const handleTooltipDismiss = useCallback(() => {
|
|
384
|
+
setTooltipVisible(false);
|
|
385
|
+
void (async () => {
|
|
386
|
+
try {
|
|
387
|
+
const AS = getTooltipStorage();
|
|
388
|
+
await AS?.setItem('@mobileai_tooltip_seen', 'true');
|
|
389
|
+
} catch { /* graceful */ }
|
|
390
|
+
})();
|
|
391
|
+
}, []);
|
|
392
|
+
|
|
322
393
|
// CRITICAL: clearSupport uses REFS and functional setters — never closure values.
|
|
323
394
|
// This function is captured by long-lived callbacks (escalation sockets, restored
|
|
324
395
|
// sockets) that may hold stale references. Using refs guarantees the current
|
|
@@ -870,6 +941,7 @@ export function AIAgent({
|
|
|
870
941
|
screenMap: useScreenMap ? screenMap : undefined,
|
|
871
942
|
maxTokenBudget,
|
|
872
943
|
maxCostUSD,
|
|
944
|
+
interactionMode,
|
|
873
945
|
// Block the agent loop until user responds
|
|
874
946
|
onAskUser: mode === 'voice' ? undefined : ((question: string) => {
|
|
875
947
|
return new Promise<string>((resolve) => {
|
|
@@ -1605,6 +1677,8 @@ export function AIAgent({
|
|
|
1605
1677
|
autoExpandTrigger={autoExpandTrigger}
|
|
1606
1678
|
unreadCounts={unreadCounts}
|
|
1607
1679
|
totalUnread={totalUnread}
|
|
1680
|
+
showDiscoveryTooltip={tooltipVisible}
|
|
1681
|
+
onTooltipDismiss={handleTooltipDismiss}
|
|
1608
1682
|
/>
|
|
1609
1683
|
</ProactiveHint>
|
|
1610
1684
|
)}
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
} from './Icons';
|
|
31
31
|
import type { SupportTicket } from '../support/types';
|
|
32
32
|
import { logger } from '../utils/logger';
|
|
33
|
+
import { DiscoveryTooltip } from './DiscoveryTooltip';
|
|
33
34
|
|
|
34
35
|
// ─── Props ─────────────────────────────────────────────────────
|
|
35
36
|
|
|
@@ -78,6 +79,10 @@ interface AgentChatBarProps {
|
|
|
78
79
|
unreadCounts?: Record<string, number>;
|
|
79
80
|
/** Total unread messages across all tickets */
|
|
80
81
|
totalUnread?: number;
|
|
82
|
+
/** Show first-use discovery tooltip above FAB */
|
|
83
|
+
showDiscoveryTooltip?: boolean;
|
|
84
|
+
/** Called when discovery tooltip is dismissed */
|
|
85
|
+
onTooltipDismiss?: () => void;
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
// ─── Mode Selector ─────────────────────────────────────────────
|
|
@@ -445,6 +450,8 @@ export function AgentChatBar({
|
|
|
445
450
|
lastUserMessage,
|
|
446
451
|
unreadCounts = {},
|
|
447
452
|
totalUnread = 0,
|
|
453
|
+
showDiscoveryTooltip = false,
|
|
454
|
+
onTooltipDismiss,
|
|
448
455
|
}: AgentChatBarProps) {
|
|
449
456
|
const [text, setText] = useState('');
|
|
450
457
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
@@ -531,11 +538,22 @@ export function AgentChatBar({
|
|
|
531
538
|
>
|
|
532
539
|
<Pressable
|
|
533
540
|
style={[styles.fab, theme?.primaryColor ? { backgroundColor: theme.primaryColor } : undefined]}
|
|
534
|
-
onPress={() =>
|
|
541
|
+
onPress={() => {
|
|
542
|
+
onTooltipDismiss?.();
|
|
543
|
+
setIsExpanded(true);
|
|
544
|
+
}}
|
|
535
545
|
accessibilityLabel={totalUnread > 0 ? `Open AI Agent Chat - ${totalUnread} unread messages` : 'Open AI Agent Chat'}
|
|
536
546
|
>
|
|
537
547
|
{isThinking ? <LoadingDots size={28} color={theme?.textColor || '#fff'} /> : <AIBadge size={28} />}
|
|
538
548
|
</Pressable>
|
|
549
|
+
{/* Discovery tooltip — shows above FAB on first use */}
|
|
550
|
+
{showDiscoveryTooltip && (
|
|
551
|
+
<DiscoveryTooltip
|
|
552
|
+
language={language}
|
|
553
|
+
primaryColor={theme?.primaryColor}
|
|
554
|
+
onDismiss={() => onTooltipDismiss?.()}
|
|
555
|
+
/>
|
|
556
|
+
)}
|
|
539
557
|
{/* Unread badge on collapsed FAB */}
|
|
540
558
|
{totalUnread > 0 && (
|
|
541
559
|
<View style={styles.fabUnreadBadge} pointerEvents="none">
|