@ceraph/react-native-mcp 0.3.3 → 0.4.5
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 +335 -68
- package/dist/babel-plugin/index.cjs +1 -0
- package/dist/babel-plugin/index.js +1 -0
- package/dist/cli.d.ts +3 -1
- package/dist/cli.js +1 -47
- package/dist/index.d.ts +106 -1
- package/dist/index.js +2 -1651
- package/dist/shim/async-storage-ops.d.ts +26 -0
- package/dist/shim/async-storage-ops.js +1 -0
- package/dist/shim/boot.d.ts +9 -0
- package/dist/shim/boot.js +1 -141
- package/dist/shim/camera.js +1 -62
- package/dist/shim/command-poll.d.ts +18 -0
- package/dist/shim/command-poll.js +1 -0
- package/dist/shim/config.js +1 -56
- package/dist/shim/console-capture.d.ts +16 -0
- package/dist/shim/console-capture.js +1 -0
- package/dist/shim/deep-link.js +1 -25
- package/dist/shim/dev-guard.js +1 -3
- package/dist/shim/dev-host.d.ts +1 -0
- package/dist/shim/dev-host.js +1 -0
- package/dist/shim/error-handler.js +1 -66
- package/dist/shim/fetch-interceptor.js +1 -93
- package/dist/shim/index.d.ts +3 -0
- package/dist/shim/index.js +1 -6
- package/dist/shim/keep-awake.js +1 -118
- package/dist/shim/network-ownership.d.ts +4 -0
- package/dist/shim/network-ownership.js +1 -0
- package/dist/shim/optimistic-observer.d.ts +29 -0
- package/dist/shim/optimistic-observer.js +1 -0
- package/dist/shim/reload.js +1 -76
- package/dist/shim/reset.d.ts +30 -0
- package/dist/shim/reset.js +1 -0
- package/dist/shim/signal-capture.d.ts +8 -0
- package/dist/shim/signal-capture.js +1 -15
- package/dist/shim/signal-transport.d.ts +14 -1
- package/dist/shim/signal-transport.js +1 -43
- package/dist/shim/xhr-interceptor.d.ts +39 -0
- package/dist/shim/xhr-interceptor.js +1 -0
- package/package.json +40 -11
- package/dist/app-lifecycle.d.ts +0 -50
- package/dist/app-lifecycle.js +0 -487
- package/dist/camera-image-writer.d.ts +0 -43
- package/dist/camera-image-writer.js +0 -280
- package/dist/camera-registry-sync.d.ts +0 -18
- package/dist/camera-registry-sync.js +0 -117
- package/dist/device-autonomy.d.ts +0 -30
- package/dist/device-autonomy.js +0 -117
- package/dist/error-parser.d.ts +0 -51
- package/dist/error-parser.js +0 -275
- package/dist/expo-manager.d.ts +0 -62
- package/dist/expo-manager.js +0 -447
- package/dist/init/ast-camera.d.ts +0 -29
- package/dist/init/ast-camera.js +0 -267
- package/dist/init/ast-layout.d.ts +0 -15
- package/dist/init/ast-layout.js +0 -167
- package/dist/init/claude-hook-constants.d.ts +0 -9
- package/dist/init/claude-hook-constants.js +0 -91
- package/dist/init/lan-ip.d.ts +0 -11
- package/dist/init/lan-ip.js +0 -51
- package/dist/init/monorepo.d.ts +0 -13
- package/dist/init/monorepo.js +0 -185
- package/dist/init/oauth.d.ts +0 -52
- package/dist/init/oauth.js +0 -220
- package/dist/init/package-manager.d.ts +0 -11
- package/dist/init/package-manager.js +0 -60
- package/dist/init/prompt.d.ts +0 -12
- package/dist/init/prompt.js +0 -68
- package/dist/init/shell-profile.d.ts +0 -22
- package/dist/init/shell-profile.js +0 -85
- package/dist/init/steps.d.ts +0 -135
- package/dist/init/steps.js +0 -399
- package/dist/init/url-scheme.d.ts +0 -42
- package/dist/init/url-scheme.js +0 -187
- package/dist/init/walkthrough.d.ts +0 -76
- package/dist/init/walkthrough.js +0 -340
- package/dist/init.d.ts +0 -8
- package/dist/init.js +0 -395
- package/dist/iproxy-manager.d.ts +0 -32
- package/dist/iproxy-manager.js +0 -216
- package/dist/mac-caffeinate.d.ts +0 -10
- package/dist/mac-caffeinate.js +0 -56
- package/dist/permission-interceptor.d.ts +0 -29
- package/dist/permission-interceptor.js +0 -185
- package/dist/prebuild-detector.d.ts +0 -19
- package/dist/prebuild-detector.js +0 -174
- package/dist/preflight.d.ts +0 -34
- package/dist/preflight.js +0 -847
- package/dist/screen.d.ts +0 -184
- package/dist/screen.js +0 -931
- package/dist/signal-listener.d.ts +0 -27
- package/dist/signal-listener.js +0 -135
- package/dist/simulator-boot.d.ts +0 -52
- package/dist/simulator-boot.js +0 -227
- package/dist/target.d.ts +0 -48
- package/dist/target.js +0 -267
- package/dist/uninstall/cli-runner.d.ts +0 -32
- package/dist/uninstall/cli-runner.js +0 -223
- package/dist/uninstall/footprint.d.ts +0 -40
- package/dist/uninstall/footprint.js +0 -288
- package/dist/uninstall/mcp-tools.d.ts +0 -14
- package/dist/uninstall/mcp-tools.js +0 -175
- package/dist/uninstall/revert-auth.d.ts +0 -22
- package/dist/uninstall/revert-auth.js +0 -31
- package/dist/uninstall/revert-boot.d.ts +0 -24
- package/dist/uninstall/revert-boot.js +0 -242
- package/dist/uninstall/revert-camera.d.ts +0 -12
- package/dist/uninstall/revert-camera.js +0 -199
- package/dist/uninstall/revert-ceraph-dir.d.ts +0 -27
- package/dist/uninstall/revert-ceraph-dir.js +0 -38
- package/dist/uninstall/revert-claude-hooks.d.ts +0 -19
- package/dist/uninstall/revert-claude-hooks.js +0 -191
- package/dist/uninstall/revert-gitignore.d.ts +0 -17
- package/dist/uninstall/revert-gitignore.js +0 -43
- package/dist/uninstall/revert-mcp-clients.d.ts +0 -57
- package/dist/uninstall/revert-mcp-clients.js +0 -194
- package/dist/uninstall/revert-package.d.ts +0 -34
- package/dist/uninstall/revert-package.js +0 -98
- package/dist/uninstall/revert-scheme.d.ts +0 -36
- package/dist/uninstall/revert-scheme.js +0 -139
- package/dist/uninstall/revert-signal-host-env.d.ts +0 -31
- package/dist/uninstall/revert-signal-host-env.js +0 -61
- package/dist/uninstall/walkthrough.d.ts +0 -80
- package/dist/uninstall/walkthrough.js +0 -1244
- package/dist/utils/atomic-write.d.ts +0 -1
- package/dist/utils/atomic-write.js +0 -30
- package/dist/wait-for-device.d.ts +0 -68
- package/dist/wait-for-device.js +0 -368
- package/dist/wda-manager.d.ts +0 -38
- package/dist/wda-manager.js +0 -186
- package/dist/wda-simulator.d.ts +0 -28
- package/dist/wda-simulator.js +0 -257
package/dist/cli.js
CHANGED
|
@@ -1,48 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const argv = process.argv.slice(2);
|
|
3
|
-
const command = argv[0];
|
|
4
|
-
const flags = new Set(argv.slice(1));
|
|
5
|
-
const HELP_TEXT = `@ceraph/react-native-mcp
|
|
6
|
-
|
|
7
|
-
USAGE
|
|
8
|
-
npx @ceraph/react-native-mcp <command> [flags]
|
|
9
|
-
|
|
10
|
-
COMMANDS
|
|
11
|
-
init Wire up MCP clients, hooks, AST replacements, and preflight.
|
|
12
|
-
uninstall Reverse the mutations init applied.
|
|
13
|
-
(no command) Start the MCP server over stdio.
|
|
14
|
-
|
|
15
|
-
FLAGS
|
|
16
|
-
--agent Pass when an AI tool is driving the install — defers
|
|
17
|
-
interactive camera setup to the agent via a single
|
|
18
|
-
CERAPH_INIT_AGENT_HINT={...} JSON line emitted on
|
|
19
|
-
stdout at completion. Equivalent to CERAPH_AGENT_MODE=1.
|
|
20
|
-
--help, -h Show this help text.
|
|
21
|
-
`;
|
|
22
|
-
if (command === "--help" || command === "-h" || command === "help") {
|
|
23
|
-
process.stdout.write(HELP_TEXT);
|
|
24
|
-
process.exit(0);
|
|
25
|
-
}
|
|
26
|
-
if (command === "init") {
|
|
27
|
-
const agentMode = flags.has("--agent") || process.env.CERAPH_AGENT_MODE === "1";
|
|
28
|
-
const { runInit } = await import("./init.js");
|
|
29
|
-
await runInit({ agentMode }).catch((err) => {
|
|
30
|
-
console.error("Init failed:", err);
|
|
31
|
-
process.exit(1);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
else if (command === "uninstall") {
|
|
35
|
-
const { runUninstallCli } = await import("./uninstall/cli-runner.js");
|
|
36
|
-
try {
|
|
37
|
-
const res = await runUninstallCli({ argv: process.argv.slice(3) });
|
|
38
|
-
process.exit(res.exitCode);
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
console.error("Uninstall failed:", err);
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
await import("./index.js");
|
|
47
|
-
}
|
|
48
|
-
export {};
|
|
2
|
+
const _0x5ccc4b=_0x4997;(function(_0x2a8867,_0x4f64b7){const _0x3317a4=_0x4997,_0x595907=_0x2a8867();while(!![]){try{const _0x197c1c=parseInt(_0x3317a4(0x1a1))/0x1*(parseInt(_0x3317a4(0x48d))/0x2)+-parseInt(_0x3317a4(0x1e5))/0x3*(parseInt(_0x3317a4(0x1df))/0x4)+parseInt(_0x3317a4(0x41b))/0x5*(parseInt(_0x3317a4(0x4a2))/0x6)+-parseInt(_0x3317a4(0x247))/0x7*(-parseInt(_0x3317a4(0x33c))/0x8)+-parseInt(_0x3317a4(0x2a2))/0x9*(parseInt(_0x3317a4(0x18e))/0xa)+-parseInt(_0x3317a4(0x171))/0xb*(parseInt(_0x3317a4(0x184))/0xc)+parseInt(_0x3317a4(0x3a5))/0xd*(parseInt(_0x3317a4(0x552))/0xe);if(_0x197c1c===_0x4f64b7)break;else _0x595907['push'](_0x595907['shift']());}catch(_0x167a67){_0x595907['push'](_0x595907['shift']());}}}(_0x2223,0xd28fb));var _0x67f5e0=Object[_0x5ccc4b(0x57e)],_0xc06bdb=Object[_0x5ccc4b(0x1f5)],_0x4d3071=(_0x4b8761,_0x3a5c00)=>function _0x56f53d(){return _0x4b8761&&(_0x3a5c00=(0x0,_0x4b8761[_0xc06bdb(_0x4b8761)[0x0]])(_0x4b8761=0x0)),_0x3a5c00;},_0x22ce2d=(_0x234621,_0x619c47)=>{for(var _0x2c4dd2 in _0x619c47)_0x67f5e0(_0x234621,_0x2c4dd2,{'get':_0x619c47[_0x2c4dd2],'enumerable':!![]});};import{readFile,access}from'fs/promises';import{join}from'path';async function _0x4a5871(_0x2e5dfc){try{return await access(_0x2e5dfc),!![];}catch{return![];}}async function _0x2fc139(_0xefb68){for(const {file:_0x21da90,pm:_0x105151}of _0x4d7e6b){if(await _0x4a5871(join(_0xefb68,_0x21da90)))return _0x105151;}return'npm';}function _0x1a9f91(_0x3e17a0,_0x4bda3e=_0x5ccc4b(0x22b)){const _0x5b2094=_0x5ccc4b;switch(_0x3e17a0){case'pnpm':return{'bin':_0x5b2094(0x54c),'args':['add',_0x4bda3e]};case _0x5b2094(0x571):return{'bin':_0x5b2094(0x571),'args':['add',_0x4bda3e]};case'bun':return{'bin':'bun','args':[_0x5b2094(0x532),_0x4bda3e]};case'npm':return{'bin':'npm','args':[_0x5b2094(0x400),_0x4bda3e]};}}async function _0x58f9a6(_0x46f85f,_0x2badac=_0x5ccc4b(0x22b)){const _0x4c53a7=_0x5ccc4b;let _0x3d20b2;try{_0x3d20b2=await readFile(join(_0x46f85f,'package.json'),'utf-8');}catch{return![];}let _0x30a527;try{_0x30a527=JSON[_0x4c53a7(0x398)](_0x3d20b2);}catch{return![];}if(!_0x30a527||typeof _0x30a527!=='object')return![];const _0x13cb28=_0x30a527,_0x5cb949=_0x13cb28[_0x4c53a7(0x282)],_0x3e24b5=_0x13cb28[_0x4c53a7(0x3d3)];return Boolean(_0x5cb949?.[_0x2badac]||_0x3e24b5?.[_0x2badac]);}var _0x4d7e6b,_0x26287f=_0x4d3071({'src/init/package-manager.ts'(){'use strict';const _0x1c2e66=_0x5ccc4b;_0x4d7e6b=[{'file':_0x1c2e66(0x275),'pm':_0x1c2e66(0x54c)},{'file':'yarn.lock','pm':'yarn'},{'file':_0x1c2e66(0x481),'pm':'bun'},{'file':_0x1c2e66(0x20a),'pm':_0x1c2e66(0x2a0)},{'file':'package-lock.json','pm':'npm'}];}});import{promises as _0x236a90,constants as _0x38ecee}from'fs';import{homedir,platform}from'os';import{join as _0x4a07b5,dirname}from'path';import{spawn}from'child_process';import{randomBytes}from'crypto';import{createServer}from'http';import{createInterface}from'readline';function _0x1ea8cf(){const _0x50b42e=_0x5ccc4b,_0x5e0d24=process.env.CERAPH_WEB_BASE_URL?.['trim']();if(_0x5e0d24)return _0x5e0d24;const _0x137f4d=process.env.CERAPH_API_URL?.[_0x50b42e(0x1cd)]();if(_0x137f4d){const _0x170e9b=_0x137f4d['replace'](/\/+$/,'')[_0x50b42e(0x2be)](/\/api\/mcp$/,'');if(_0x170e9b&&_0x170e9b!==_0x137f4d['replace'](/\/+$/,''))return _0x170e9b;}return'https://ceraph.dev';}function _0x3cde31(_0x53f93b={}){const _0x363763=_0x5ccc4b,_0x549055=_0x1ea8cf()['replace'](/\/+$/,''),_0x35cf56=_0x53f93b['intent']==='pro'?'?intent=pro':'';return _0x549055+_0x363763(0x24a)+_0x35cf56;}async function _0x8c9830(_0x13462e={}){const _0x4e625d=_0x5ccc4b,_0x3d7d7a=_0x13462e['token']?.[_0x4e625d(0x1cd)]()||process.env.CERAPH_AUTH_TOKEN?.['trim']();if(_0x3d7d7a)return _0x535ac0(_0x3d7d7a,void 0x0,_0x13462e['authFilePath']);const _0x2bc852=_0x13462e[_0x4e625d(0x15e)]??_0x4adae5,_0x324bbe=(_0x13462e[_0x4e625d(0x208)]??_0x1ea8cf())['replace'](/\/+$/,''),_0x1ef8fd=randomBytes(0x10)['toString'](_0x4e625d(0x39d)),_0x4d5e02=await _0x1bdabb(_0x1ef8fd,_0x324bbe),_0x4990a7=_0x13462e[_0x4e625d(0x4a3)]===_0x4e625d(0x55d)?'&intent=pro':'',_0x1c1f43=_0x324bbe+_0x4e625d(0x4b7)+_0x4d5e02['port']+'&state='+encodeURIComponent(_0x1ef8fd)+_0x4990a7,_0xb3265a=new AbortController();if(_0x13462e['signal']){if(_0x13462e[_0x4e625d(0x1fd)]['aborted']){_0x4d5e02[_0x4e625d(0x308)]();throw new DOMException('aborted','AbortError');}_0x13462e[_0x4e625d(0x1fd)]['addEventListener']('abort',()=>{const _0x4b9a3d=_0x4e625d;_0x4d5e02['abort'](new DOMException('aborted',_0x4b9a3d(0x1a6))),_0xb3265a['abort']();},{'once':!![]});}_0x2bee48(_0x1c1f43),process['stderr'][_0x4e625d(0x2c9)](_0x4e625d(0x4cf)+_0x324bbe+'/cli-auth\x20in\x20your\x20browser\x20to\x20sign\x20in.\x20If\x20the\x20browser\x20didn\x27t\x20open,\x20visit\x20the\x20URL\x20manually:\x0a\x20\x20'+_0x1c1f43+'\x0a');try{const _0x5eeb84=await _0x69ee90(_0x4d5e02['tokenPromise'],_0x2bc852);return _0x535ac0(_0x5eeb84[_0x4e625d(0x25c)],_0x5eeb84['email'],_0x13462e['authFilePath']);}catch(_0x3c9f85){if(_0x3c9f85 instanceof _0x3a4d94){process['stderr'][_0x4e625d(0x2c9)]('Sign-in\x20timed\x20out.\x20Reload\x20the\x20browser\x20tab\x20to\x20retry\x20—\x20or\x20paste\x20your\x20token\x20below:\x0a');const _0x46d96a=await Promise['race']([_0x4d5e02['tokenPromise'][_0x4e625d(0x341)](_0x29b38d=>({'kind':_0x4e625d(0x26b),'payload':_0x29b38d})),_0x1f115c(_0xb3265a['signal'])[_0x4e625d(0x341)](_0x20244e=>({'kind':'stdin','line':_0x20244e}))]);if(_0x46d96a[_0x4e625d(0x2b7)]===_0x4e625d(0x26b))return _0xb3265a[_0x4e625d(0x511)](),_0x535ac0(_0x46d96a['payload']['token'],_0x46d96a['payload']['email'],_0x13462e['authFilePath']);if(!_0x46d96a[_0x4e625d(0x222)]){if(_0x13462e['signal']?.['aborted'])throw new DOMException('aborted','AbortError');throw new Error('No\x20token\x20provided.');}return _0x535ac0(_0x46d96a[_0x4e625d(0x222)],void 0x0,_0x13462e[_0x4e625d(0x14f)]);}throw _0x3c9f85;}finally{_0x4d5e02[_0x4e625d(0x308)]();}}async function _0x3c35dd(_0x2b3509){return new Promise(_0x3f4bd2=>{const _0x10b5b7=_0x4997;let _0xfe3eb4=0x0;const _0x1167d9=[];_0x2b3509['on']('data',_0x152bcb=>{const _0x22084b=_0x4997;if('YQrVP'!==_0x22084b(0x145)){const _0x535566=this[_0x22084b(0x320)]?_0x49874f[_0x22084b(0x173)](_0x1d953c=>_0x1d953c[_0x22084b(0x55e)]===this[_0x22084b(0x320)])??_0x1b9ceb[0x0]:_0x573533[0x0],_0x1506fc=this['simulatorWdaUdid']!==null&&_0xadb297[_0x22084b(0x28e)](_0x1a2cd9=>_0x1a2cd9[_0x22084b(0x55e)]===this[_0x22084b(0x320)]),_0x103ff2=this[_0x22084b(0x2bc)]!==null&&this[_0x22084b(0x320)]!==null&&_0x1506fc&&_0x535566[_0x22084b(0x55e)]===this[_0x22084b(0x320)];return{'target':'simulator','udid':_0x535566['udid'],'baseUrl':_0x103ff2?_0x1f7590(this[_0x22084b(0x2bc)]):_0x5f1876,'wdaReady':_0x103ff2,'reason':'auto-only-simulator'};}else{_0xfe3eb4+=_0x152bcb['length'];if(_0xfe3eb4>_0x426f26){_0x2b3509['destroy'](),_0x3f4bd2(null);return;}_0x1167d9[_0x22084b(0x359)](_0x152bcb);}}),_0x2b3509['on']('end',()=>{const _0x1b8320=_0x4997,_0x245621=Buffer['concat'](_0x1167d9)[_0x1b8320(0x2a9)](_0x1b8320(0x1b2));if(!_0x245621){_0x3f4bd2(null);return;}try{const _0x15512d=JSON['parse'](_0x245621);_0x15512d&&typeof _0x15512d==='object'?_0x3f4bd2(_0x15512d):_0x3f4bd2(null);}catch{_0x3f4bd2(null);}}),_0x2b3509['on'](_0x10b5b7(0x51e),()=>_0x3f4bd2(null));});}async function _0x1bdabb(_0x114f68,_0x6400e1){const _0x5f5db5=_0x5ccc4b;let _0x53d2af,_0x26a4fb;const _0x232438=new Promise((_0x4f0ddc,_0x5b7f0c)=>{'tRPlL'==='BQoAZ'?_0x91a4ed in _0x583d52&&(delete _0x457ed9[_0x2c8136],_0x58d7f1=!![]):(_0x53d2af=_0x4f0ddc,_0x26a4fb=_0x5b7f0c);});let _0x274320=![],_0x8a65c=![],_0x2d2453,_0x4e4f37;try{_0x4e4f37=new URL(_0x6400e1)['origin'];}catch(_0x2403fe){throw new Error(_0x5f5db5(0x51c)+_0x6400e1+'\x22\x20—\x20must\x20be\x20a\x20valid\x20URL\x20with\x20scheme\x20(e.g.\x20https://ceraph.dev\x20or\x20http://localhost:3000).\x20Original\x20error:\x20'+(_0x2403fe instanceof Error?_0x2403fe['message']:String(_0x2403fe)));}_0x2d2453=createServer((_0xf55929,_0x52b45c)=>{const _0x53390c=_0x5f5db5;_0x52b45c['setHeader']('Access-Control-Allow-Origin',_0x4e4f37),_0x52b45c[_0x53390c(0x4b8)]('Access-Control-Allow-Methods',_0x53390c(0x35d)),_0x52b45c[_0x53390c(0x4b8)](_0x53390c(0x2a5),'content-type');if(_0xf55929[_0x53390c(0x2d9)]==='OPTIONS'){_0x52b45c[_0x53390c(0x248)]=0xcc,_0x52b45c['end']();return;}const _0x41e407=new URL(_0xf55929[_0x53390c(0x19d)]??'/','http://127.0.0.1:'+_0x166ce4);if(_0x41e407[_0x53390c(0x4a5)]!=='/callback'){_0x52b45c[_0x53390c(0x248)]=0x194,_0x52b45c[_0x53390c(0x428)]('not\x20found');return;}const _0x47c39f=_0x41e407[_0x53390c(0x386)]['get'](_0x53390c(0x31d))??'';if(_0x47c39f!==_0x114f68){if(_0x53390c(0x2d1)!=='ZmZsU'){_0x52b45c[_0x53390c(0x248)]=0x190,_0x52b45c['end']('invalid\x20state');return;}else{const _0x409fca=_0x5b8501[_0x56a831];_0x54d7fb['push'](...this['buildTapPointerActions'](_0x409fca[_0x53390c(0x3fc)]['x'],_0x409fca['center']['y'])),_0x5836d6<_0x275ca5['length']-0x1&&_0x11a0d5[_0x53390c(0x359)]({'type':_0x53390c(0x1e6),'duration':0x64});}}if(_0x8a65c||_0x274320){_0x52b45c[_0x53390c(0x248)]=0x199,_0x52b45c['end'](_0x8a65c?_0x53390c(0x270):'in-flight');return;}if(_0xf55929[_0x53390c(0x2d9)]!=='POST'){_0x52b45c[_0x53390c(0x248)]=0x195,_0x52b45c[_0x53390c(0x428)]('method\x20not\x20allowed');return;}_0x274320=!![],void _0x3c35dd(_0xf55929)[_0x53390c(0x341)](_0x428525=>{const _0x204d71=_0x53390c,_0x5de92e=_0x428525&&typeof _0x428525['token']===_0x204d71(0x40a)?_0x428525['token']['trim']():'',_0x2d7ff2=_0x428525&&typeof _0x428525['email']==='string'?_0x428525[_0x204d71(0x34e)]:'';if(!_0x5de92e){_0x274320=![],_0x52b45c[_0x204d71(0x248)]=0x190,_0x52b45c[_0x204d71(0x428)](_0x204d71(0x46e));return;}_0x8a65c=!![],_0x52b45c[_0x204d71(0x248)]=0xc8,_0x52b45c['setHeader']('content-type',_0x204d71(0x2c2)),_0x52b45c[_0x204d71(0x428)](_0x204d71(0x496));try{_0x2d2453['close']();}catch{}_0x53d2af({'token':_0x5de92e,'email':_0x2d7ff2||void 0x0});});return;});const _0x166ce4=await new Promise((_0x3b9482,_0x5caac1)=>{const _0x3eaf36=_0x5f5db5;_0x2d2453['once'](_0x3eaf36(0x51e),_0x5caac1),_0x2d2453['listen'](0x0,'127.0.0.1',()=>{const _0x3a9cf3=_0x3eaf36,_0x3e8aab=_0x2d2453[_0x3a9cf3(0x253)]();if(!_0x3e8aab||typeof _0x3e8aab==='string'||typeof _0x3e8aab['port']!=='number'){try{if(_0x3a9cf3(0x502)!=='bClHX')_0x2d2453[_0x3a9cf3(0x308)]();else return{'awake':!![],'lockState':_0x3a9cf3(0x479)};}catch{}_0x5caac1(new Error(_0x3a9cf3(0x4ed)));return;}_0x3b9482(_0x3e8aab['port']);});});return _0x2d2453['on']('error',_0x1b15e6=>_0x26a4fb(_0x1b15e6)),{'port':_0x166ce4,'tokenPromise':_0x232438,'close':()=>{const _0x9f0414=_0x5f5db5;try{_0x2d2453[_0x9f0414(0x308)]();}catch{}},'abort':_0x2838f6=>{const _0x4e52ce=_0x5f5db5;_0x26a4fb(_0x2838f6);try{_0x2d2453[_0x4e52ce(0x308)]();}catch{}}};}function _0x2bee48(_0x1dbcfd){const _0xd42718=_0x5ccc4b;try{if('Axxfp'!==_0xd42718(0x36b)){const _0x2eb765=platform();let _0x2a1b31,_0x34b014;if(_0x2eb765===_0xd42718(0x328))_0x2a1b31=_0xd42718(0x379),_0x34b014=[_0x1dbcfd];else _0x2eb765===_0xd42718(0x2a7)?(_0x2a1b31='cmd',_0x34b014=['/c',_0xd42718(0x53e),'',_0x1dbcfd]):(_0x2a1b31=_0xd42718(0x456),_0x34b014=[_0x1dbcfd]);const _0x439a44=spawn(_0x2a1b31,_0x34b014,{'stdio':'ignore','detached':!![]});_0x439a44['on'](_0xd42718(0x51e),()=>{}),_0x439a44[_0xd42718(0x4ff)]();}else this['targetResolver']=_0x59096b;}catch{}}function _0x69ee90(_0x49bf1e,_0x1287b4){return new Promise((_0x35b716,_0x26e0a2)=>{const _0x4f9ea8=_0x4997,_0x295642=setTimeout(()=>_0x26e0a2(new _0x3a4d94()),_0x1287b4);_0x49bf1e[_0x4f9ea8(0x341)](_0x2283ab=>{clearTimeout(_0x295642),_0x35b716(_0x2283ab);},_0x236605=>{const _0x110a49=_0x4f9ea8;if(_0x110a49(0x438)===_0x110a49(0x438))clearTimeout(_0x295642),_0x26e0a2(_0x236605);else{'use strict';_0x2bf129();}});});}function _0x1f115c(_0x3994b6){return new Promise(_0x4f78db=>{const _0x26a38f=_0x4997,_0x3e3510=createInterface({'input':process[_0x26a38f(0x263)],'crlfDelay':Infinity});let _0x411416=![];const _0x41cc46=_0x5c148f=>{const _0x438fd2=_0x26a38f;if(_0x411416)return;_0x411416=!![];try{if(_0x438fd2(0x351)!==_0x438fd2(0x351)){_0x175be4({'code':0x7f,'stdout':'','stderr':_0x5a0dab instanceof _0x12aed0?_0x36e13e[_0x438fd2(0x554)]:_0x29a21c(_0x162dff)});return;}else _0x3e3510[_0x438fd2(0x308)]();}catch{}_0x4f78db(_0x5c148f);};_0x3e3510['once'](_0x26a38f(0x222),_0x4b2a38=>_0x41cc46(_0x4b2a38['trim']()||null)),_0x3e3510[_0x26a38f(0x1fe)]('close',()=>_0x41cc46(null));if(_0x3994b6['aborted']){_0x41cc46(null);return;}_0x3994b6['addEventListener']('abort',()=>_0x41cc46(null),{'once':!![]});});}function _0x2c28a6(_0x326816){const _0x4597c9=_0x5ccc4b;return _0x326816??_0x4a07b5(homedir(),_0x4597c9(0x2f8),'auth.json');}async function _0x535ac0(_0x564580,_0x247033,_0x1e228f){const _0x1eb5e5=_0x5ccc4b,_0x47ca48={'accessToken':_0x564580,'expiresAt':0x0,'githubUser':{'login':'','id':0x0},'storedAt':new Date()[_0x1eb5e5(0x3ba)](),..._0x247033?{'email':_0x247033}:{}};return await _0x98031b(_0x47ca48,_0x1e228f),{'token':_0x564580,..._0x247033?{'email':_0x247033}:{}};}async function _0x98031b(_0x10cbf8,_0x4a4a98){const _0x64724f=_0x5ccc4b,_0x25dbbf=_0x2c28a6(_0x4a4a98);await _0x236a90['mkdir'](dirname(_0x25dbbf),{'recursive':!![],'mode':0x1c0});const _0x4000e3=JSON[_0x64724f(0x2ba)](_0x10cbf8,null,0x2)+'\x0a',_0x5e04b7=_0x25dbbf+'.tmp.'+process['pid']+'.'+Math[_0x64724f(0x4c9)]()[_0x64724f(0x2a9)](0x24)['slice'](0x2);try{const _0x1fe2cc=await _0x236a90[_0x64724f(0x379)](_0x5e04b7,_0x38ecee['O_CREAT']|_0x38ecee['O_WRONLY']|_0x38ecee['O_EXCL'],0x180);try{await _0x1fe2cc[_0x64724f(0x330)](_0x4000e3);}finally{await _0x1fe2cc[_0x64724f(0x308)]();}await _0x236a90[_0x64724f(0x21e)](_0x5e04b7,_0x25dbbf);}catch(_0x3b349f){try{await _0x236a90[_0x64724f(0x288)](_0x5e04b7);}catch{}throw _0x3b349f;}try{await _0x236a90['chmod'](dirname(_0x25dbbf),0x1c0);}catch{}}var _0x4adae5,_0x426f26,_0x3a4d94,_0xe6e8e7=_0x4d3071({'src/init/browser-auth.ts'(){'use strict';_0x4adae5=0x5*0x3c*0x3e8,_0x426f26=0x10*0x400,_0x3a4d94=class extends Error{constructor(){const _0x5ed55d=_0x4997;super('listener-timeout'),this[_0x5ed55d(0x34d)]='TimeoutError';}};}});import{promises as _0x50e366}from'fs';import{homedir as _0x1d15d2}from'os';import{join as _0x231864}from'path';function _0x4ba940(){return _0x231864(_0x1d15d2(),'.ceraph','auth.json');}function _0x2e42fc(_0x2206fd){const _0x36bde9=_0x5ccc4b;if(!_0x2206fd||typeof _0x2206fd!==_0x36bde9(0x382))return![];const _0x369d67=_0x2206fd;if(typeof _0x369d67['accessToken']!==_0x36bde9(0x40a)||_0x369d67['accessToken'][_0x36bde9(0x471)]===0x0)return![];if(typeof _0x369d67[_0x36bde9(0x47e)]!==_0x36bde9(0x429))return![];if(_0x369d67[_0x36bde9(0x356)]!==void 0x0){if(!_0x369d67['githubUser']||typeof _0x369d67[_0x36bde9(0x356)]!==_0x36bde9(0x382))return![];const _0x1b6f8c=_0x369d67[_0x36bde9(0x356)];if(typeof _0x1b6f8c['login']!==_0x36bde9(0x40a)||typeof _0x1b6f8c['id']!==_0x36bde9(0x429))return![];}if(typeof _0x369d67['storedAt']!==_0x36bde9(0x40a))return![];return!![];}function _0x2237a7(_0x50cae8){if(_0x50cae8['githubUser'])return _0x50cae8;return{..._0x50cae8,'githubUser':{'login':'','id':0x0}};}async function _0x1ddc8c(_0x202484={}){const _0x1f8964=_0x5ccc4b,_0x48aeec=_0x202484[_0x1f8964(0x47a)]??_0x4ba940();let _0x2aaa5a;try{_0x2aaa5a=await _0x50e366['readFile'](_0x48aeec,'utf-8');}catch{return null;}let _0x1e63b7;try{_0x1e63b7=JSON[_0x1f8964(0x398)](_0x2aaa5a);}catch{return null;}if(!_0x2e42fc(_0x1e63b7))return null;if(_0x1e63b7['expiresAt']>0x0&&_0x1e63b7[_0x1f8964(0x47e)]<Date[_0x1f8964(0x239)]())return null;const _0x2d7c14=_0x2237a7(_0x1e63b7);if(_0x2d7c14['accessToken']===_0xef0f97){if(_0x1f8964(0x443)===_0x1f8964(0x3f2)){'use strict';_0x11e41f=![],_0x2c0a59=['app','src','screens'],_0xff60f=new _0x22d8bd([_0x1f8964(0x3b3),'.jsx']),_0x5cc62d=new _0x48187c([_0x1f8964(0x1b8),_0x1f8964(0x42c),_0x1f8964(0x34b),_0x1f8964(0x325),_0x1f8964(0x2f8),'.expo','.next',_0x1f8964(0x4b3),_0x1f8964(0x559)]),_0x2f02c4=_0x1f8964(0x2e7),_0x2aecfd=_0x1f8964(0x410);}else return null;}return _0x2d7c14;}var _0xef0f97,_0x553117=_0x4d3071({'src/auth.ts'(){'use strict';_0xef0f97='__keychain__';}});import{readFile as _0x383d8d,writeFile,readdir}from'fs/promises';import{basename,dirname as _0x512c6c,join as _0x9c6c45,relative,sep}from'path';async function _0x577f4a(){if(_0x5bd92a)return;const _0x38e241=await import('ts-morph');({IndentationText:_0x5b1221,Project:_0x14d1c6,SyntaxKind:_0xa10fa,Node:_0x5e8716}=_0x38e241,_0x5bd92a=!![]);}function _0x426c72(_0x14f3fb){const _0x3b5e45=_0x5ccc4b,_0x1dd02e=basename(_0x14f3fb)['replace'](/\.(tsx|jsx)$/i,''),_0x397c1f=basename(_0x512c6c(_0x14f3fb)),_0x3b39fe=new Set([_0x3b5e45(0x519),_0x3b5e45(0x3d4),_0x3b5e45(0x212),_0x3b5e45(0x1fb),'layout']),_0x47e8a3=_0x3b39fe[_0x3b5e45(0x466)](_0x1dd02e['toLowerCase']())?_0x397c1f:_0x1dd02e,_0x1e66cf=_0x47e8a3[_0x3b5e45(0x2be)](/([a-z0-9])([A-Z])/g,'$1-$2')['toLowerCase']()[_0x3b5e45(0x2be)](/[^a-z0-9]+/g,'-')['replace'](/^-+|-+$/g,'');return _0x1e66cf[_0x3b5e45(0x471)]>0x0?_0x1e66cf:_0x3b5e45(0x4eb);}async function _0xde371b(_0x1dc087){const _0x11d585=_0x5ccc4b,_0x3cc564=[];async function _0x55103a(_0x13a823){const _0x23934c=_0x4997;let _0x4cbe1b;try{_0x4cbe1b=await readdir(_0x13a823,{'withFileTypes':!![]});}catch{if(_0x23934c(0x43b)!=='uQPui')_0x1b9882['push']({'bundleId':_0x1a2a24,'name':_0x5d1f80??_0x2a3492??_0x3a27f1,'version':_0x57bf06??_0x3182e2??void 0x0});else return;}for(const _0x166036 of _0x4cbe1b){const _0x27c1b0=_0x9c6c45(_0x13a823,_0x166036['name']);if(_0x166036[_0x23934c(0x1c7)]()){if(_0xe8ebf8[_0x23934c(0x466)](_0x166036['name']))continue;await _0x55103a(_0x27c1b0);continue;}if(!_0x166036['isFile']())continue;const _0x29a6d4=_0x166036['name']['lastIndexOf']('.');if(_0x29a6d4<0x0)continue;const _0x173ffa=_0x166036['name']['slice'](_0x29a6d4)[_0x23934c(0x223)]();if(!_0x254a85['has'](_0x173ffa))continue;_0x3cc564['push'](_0x27c1b0);}}for(const _0x24d583 of _0x4e86dd){await _0x55103a(_0x9c6c45(_0x1dc087,_0x24d583));}for(const _0x10da92 of[_0x11d585(0x204),'App.jsx']){_0x3cc564['push'](_0x9c6c45(_0x1dc087,_0x10da92));}return _0x3cc564;}function _0x10bdce(_0x591894){const _0x2e1eed=_0x5ccc4b,_0x3f0358=new _0x14d1c6({'useInMemoryFileSystem':![],'skipAddingFilesFromTsConfig':!![],'skipFileDependencyResolution':!![],'skipLoadingLibFiles':!![],'compilerOptions':{'allowJs':!![],'jsx':0x1},'manipulationSettings':{'indentationText':_0x5b1221['TwoSpaces']}});for(const _0xe3cd3a of _0x591894){try{_0x3f0358[_0x2e1eed(0x1e7)](_0xe3cd3a);}catch{}}return _0x3f0358;}function _0x2efdb2(_0x390d86,_0x1fa575){const _0x3abf5e=_0x5ccc4b,_0x316c24=[];return _0x390d86[_0x3abf5e(0x311)](_0xa8456a=>{const _0x104317=_0x3abf5e;if(_0x5e8716[_0x104317(0x1aa)](_0xa8456a)||_0x5e8716[_0x104317(0x256)](_0xa8456a)){const _0x1d69eb=_0xa8456a[_0x104317(0x50e)]();_0x1d69eb[_0x104317(0x1a9)]()===_0x1fa575&&_0x316c24['push'](_0xa8456a);}}),_0x316c24;}function _0x5ee009(_0x5c8c35){const _0x30de23=_0x5ccc4b,_0x325336=_0x5c8c35[_0x30de23(0x27a)]();for(const _0x26b74b of _0x325336){if(_0x5e8716[_0x30de23(0x1f0)](_0x26b74b)){const _0x3d20ab=_0x26b74b['getNameNode']();if(_0x3d20ab['getText']()===_0x30de23(0x272))return!![];}}return![];}async function _0x1a3350(_0x38c861){const _0x1dd74b=_0x5ccc4b;await _0x577f4a();const _0x3ea2b0=await _0xde371b(_0x38c861),_0x2b8432=_0x10bdce(_0x3ea2b0),_0x3d55f1=[];for(const _0x142eda of _0x2b8432[_0x1dd74b(0x549)]()){const _0x56bad6=_0x2efdb2(_0x142eda,'CameraView');if(_0x56bad6['length']===0x0)continue;for(const _0x322c53 of _0x56bad6){const _0x162e37=_0x322c53['getStart'](),_0xf60ae=_0x142eda['getLineAndColumnAtPos'](_0x162e37);_0x3d55f1[_0x1dd74b(0x359)]({'filePath':_0x142eda['getFilePath'](),'relPath':relative(_0x38c861,_0x142eda[_0x1dd74b(0x525)]())['split'](sep)[_0x1dd74b(0x3aa)]('/'),'line':_0xf60ae['line'],'suggestedKey':_0x426c72(_0x142eda['getFilePath']()),'alreadyHasImageKey':_0x5ee009(_0x322c53)});}}return _0x3d55f1['sort']((_0x227e32,_0x4d427f)=>_0x227e32[_0x1dd74b(0x2ec)]===_0x4d427f['relPath']?_0x227e32['line']-_0x4d427f['line']:_0x227e32[_0x1dd74b(0x2ec)]<_0x4d427f[_0x1dd74b(0x2ec)]?-0x1:0x1),{'edits':_0x3d55f1,'filesScanned':_0x2b8432['getSourceFiles']()['length']};}async function _0x174b73(_0x534aba,_0x4bb060,_0x4a5e0a={}){const _0x15a54c=_0x5ccc4b;await _0x577f4a();const _0x18f258=new Map();for(const _0x5d994f of _0x4bb060){const _0x60ee9e=_0x18f258['get'](_0x5d994f[_0x15a54c(0x47a)])??[];_0x60ee9e[_0x15a54c(0x359)](_0x5d994f),_0x18f258[_0x15a54c(0x4fb)](_0x5d994f['filePath'],_0x60ee9e);}const _0x2436a6=_0x10bdce(Array['from'](_0x18f258[_0x15a54c(0x250)]())),_0x28d4eb=[];let _0x28a7a5=0x0;for(const [_0x52c40e,_0x1676c1]of _0x18f258){const _0x49af77=_0x2436a6[_0x15a54c(0x548)](_0x52c40e);if(!_0x49af77)continue;let _0x3974e1=0x0;for(const _0x397a96 of _0x1676c1){const _0x1e8127=_0x2efdb2(_0x49af77,_0x15a54c(0x324)),_0x31ffe7=_0x1e8127[_0x15a54c(0x173)](_0x17fb1c=>{const _0x2c97ff=_0x15a54c;if('vAqwp'==='FvKKE')return{'action':'already','scheme':_0x31772e,'previousScheme':_0x132e36,'nextScheme':[..._0x3c32a7]};else{const _0x29cc1e=_0x49af77['getLineAndColumnAtPos'](_0x17fb1c['getStart']());return _0x29cc1e[_0x2c97ff(0x222)]===_0x397a96[_0x2c97ff(0x222)];}});if(!_0x31ffe7)continue;_0x31ffe7['getTagNameNode']()[_0x15a54c(0x50c)](_0x15a54c(0x410));if(_0x5e8716['isJsxOpeningElement'](_0x31ffe7)){const _0x1e8508=_0x31ffe7[_0x15a54c(0x317)](_0xa10fa[_0x15a54c(0x39e)]);if(_0x1e8508){const _0x186023=_0x1e8508[_0x15a54c(0x2e5)]();_0x186023['getTagNameNode']()[_0x15a54c(0x50c)](_0x15a54c(0x410));}}!_0x397a96['alreadyHasImageKey']&&!_0x4a5e0a['omitImageKey']&&_0x31ffe7[_0x15a54c(0x281)]({'name':'imageKey','initializer':'\x22'+_0x397a96['suggestedKey']+'\x22'}),_0x3974e1++,_0x28a7a5++;}const _0x1b9f18=_0x49af77['getImportDeclaration'](_0x52abab);if(_0x1b9f18){if('XtiSb'!=='XtiSb')_0x76546e=![];else{const _0x157459=_0x1b9f18[_0x15a54c(0x437)]();!_0x157459['some'](_0x4ec0f8=>_0x4ec0f8[_0x15a54c(0x1a3)]()===_0x5c8cb6)&&_0x1b9f18[_0x15a54c(0x2eb)](_0x5c8cb6);}}else _0x49af77[_0x15a54c(0x534)]({'moduleSpecifier':_0x52abab,'namedImports':[_0x5c8cb6]});const _0x511357=_0x49af77[_0x15a54c(0x19c)](_0x15a54c(0x242));if(_0x511357){const _0x384989=_0x2efdb2(_0x49af77,_0x15a54c(0x324));if(_0x384989[_0x15a54c(0x471)]===0x0){const _0x504a57=_0x511357['getNamedImports'](),_0x4941e3=_0x504a57[_0x15a54c(0x173)](_0x957bd1=>_0x957bd1[_0x15a54c(0x1a3)]()===_0x15a54c(0x324));if(_0x4941e3){_0x4941e3['remove']();const _0x1dafc2=_0x511357['getNamedImports'](),_0x3fc4fd=_0x511357['getDefaultImport']()!=null;_0x1dafc2['length']===0x0&&!_0x3fc4fd&&_0x511357['remove']();}}}if(_0x3974e1>0x0){const _0x46ab35=_0x49af77['getFullText']();await writeFile(_0x52c40e,_0x46ab35,'utf-8'),_0x28d4eb['push'](_0x52c40e);}}return{'filesEdited':_0x28d4eb,'totalReplacements':_0x28a7a5};}async function _0x3f3777(_0x37e719){const _0x4650f7=_0x5ccc4b;try{return await _0x383d8d(_0x37e719,_0x4650f7(0x449));}catch{return null;}}async function _0x4db18c(_0x54fc2d,_0x577279){const _0x5f09ee=_0x5ccc4b;await writeFile(_0x54fc2d,_0x577279,_0x5f09ee(0x449));}var _0x5b1221,_0x14d1c6,_0xa10fa,_0x5e8716,_0x5bd92a,_0x4e86dd,_0x254a85,_0xe8ebf8,_0x52abab,_0x5c8cb6,_0x1c9166=_0x4d3071({'src/init/ast-camera.ts'(){'use strict';const _0x3e2d5e=_0x5ccc4b;_0x5bd92a=![],_0x4e86dd=['app','src','screens'],_0x254a85=new Set([_0x3e2d5e(0x3b3),'.jsx']),_0xe8ebf8=new Set(['node_modules','dist','build','.git',_0x3e2d5e(0x2f8),'.expo',_0x3e2d5e(0x528),'ios',_0x3e2d5e(0x559)]),_0x52abab=_0x3e2d5e(0x2e7),_0x5c8cb6='CeraphCamera';}});import{readFile as _0x1b8f80,writeFile as _0x8a1d33}from'fs/promises';import{dirname as _0x1585a4,join as _0x40b444,relative as _0x2f775d,sep as _0x1f6c80}from'path';async function _0x499cf2(){if(_0x12ed6f)return;const _0x2d0025=await import('ts-morph');({IndentationText:_0x25d916,Project:_0x5aa955,Node:_0x4ad803,SyntaxKind:_0x4e5589}=_0x2d0025,_0x12ed6f=!![]);}function _0x2e02a0(_0x5a141e){const _0x37eed7=_0x5ccc4b,_0x41bdf6=_0x1585a4(_0x5a141e['filePath']),_0x465a54=_0x5a141e[_0x37eed7(0x2b7)]===_0x37eed7(0x37b)?_0x1585a4(_0x41bdf6):_0x41bdf6,_0xce5767=_0x40b444(_0x465a54,_0x2cf0b8);let _0x114b31=_0x2f775d(_0x41bdf6,_0xce5767);if(_0x1f6c80!=='/')_0x114b31=_0x114b31['split'](_0x1f6c80)[_0x37eed7(0x3aa)]('/');if(!_0x114b31['startsWith']('./')&&!_0x114b31[_0x37eed7(0x425)](_0x37eed7(0x520)))_0x114b31='./'+_0x114b31;return _0x114b31;}function _0x338159(_0x1d0f4c){const _0x3d95b0=_0x5ccc4b,_0x3dca52=_0x2e02a0(_0x1d0f4c);return _0x357560+'({\x20readTestidConfig:\x20()\x20=>\x20{\x20try\x20{\x20return\x20require(\x22'+_0x3dca52+_0x3d95b0(0x1b7);}async function _0x3ea35c(_0x15b5d4){const _0x211d60=_0x5ccc4b;try{return await _0x1b8f80(_0x15b5d4,'utf-8'),!![];}catch{return _0x211d60(0x34a)==='tqzMv'?![]:{'success':![],'error':_0x3bbc56 instanceof _0x15b108?_0x2ca95d[_0x211d60(0x554)]:'Unknown\x20error\x20during\x20longPress'};}}async function _0x5bc2f4(_0x881ac3){const _0x3ef00=_0x5ccc4b,_0x5da6a3=_0x40b444(_0x881ac3,'app','_layout.tsx');if(await _0x3ea35c(_0x5da6a3)){if(_0x3ef00(0x30d)!==_0x3ef00(0x30d)){const _0x199b2b=_0x32906d['files'][_0x3ef00(0x170)]((_0xdc7d89,_0x511328)=>_0xdc7d89+_0x511328[_0x3ef00(0x2e6)],0x0),_0x56694b=_0x199b2b;if(_0x440ffd['files'][_0x3ef00(0x471)]===0x0)return{'name':_0x3ef00(0x4eb),'status':_0x3ef00(0x1b6),'details':{'filesScanned':_0x315783['filesScanned'],..._0xb0c32a['dryRun']?{'dryRun':!![]}:{}}};const _0x1a9e59=_0x56694b>0x0?'warning':_0x3ef00(0x28d),_0xd34db0={'name':_0x3ef00(0x4eb),'status':_0x1a9e59,'details':{'filesScanned':_0x4c933a['filesScanned'],'filesEdited':_0x879f5a['files'][_0x3ef00(0x362)](_0x512298=>_0x512298['relPath']),'ceraphCamerasRemoved':_0x199b2b,'importDropped':_0x5141be['files'][_0x3ef00(0x235)](_0x81556=>_0x81556[_0x3ef00(0x1be)])[_0x3ef00(0x471)],'importRestored':_0x1a22ca[_0x3ef00(0x33e)]['filter'](_0x19d279=>_0x19d279[_0x3ef00(0x3b4)])['length'],'imageKeysStripped':_0x56694b,..._0x59c603['dryRun']?{'dryRun':!![]}:{}}};return _0x1a9e59===_0x3ef00(0x473)&&(_0xd34db0['remediation']=_0x3ef00(0x2f0)+_0x56694b+_0x3ef00(0x4d5)),_0xd34db0;}else return{'kind':_0x3ef00(0x37b),'filePath':_0x5da6a3};}const _0x1bf7d5=_0x40b444(_0x881ac3,'app',_0x3ef00(0x17d));if(await _0x3ea35c(_0x1bf7d5))return _0x3ef00(0x191)!=='lCMSc'?{'kind':_0x3ef00(0x37b),'filePath':_0x1bf7d5}:![];for(const _0x4229a4 of[_0x3ef00(0x204),_0x3ef00(0x355)]){const _0x13765e=_0x40b444(_0x881ac3,_0x4229a4);if(await _0x3ea35c(_0x13765e))return{'kind':_0x3ef00(0x213),'filePath':_0x13765e};}return null;}function _0x1796c2(_0x4c32d1){const _0x3dce6e=_0x5ccc4b;for(const _0x17e6cd of _0x4c32d1[_0x3dce6e(0x433)]()){if(_0x17e6cd[_0x3dce6e(0x280)]())return _0x17e6cd;}const _0x396ec8=_0x4c32d1['getStatements']()[_0x3dce6e(0x173)](_0x4fca33=>_0x4ad803['isExportAssignment'](_0x4fca33));if(_0x396ec8&&_0x4ad803[_0x3dce6e(0x365)](_0x396ec8)){const _0x5d9ee7=_0x396ec8['getExpression']();if(_0x4ad803[_0x3dce6e(0x431)](_0x5d9ee7)){const _0x2d7ceb=_0x5d9ee7[_0x3dce6e(0x45b)]();if(_0x2d7ceb){const _0x16221e=_0x2d7ceb[_0x3dce6e(0x3c6)]()[0x0];if(_0x16221e&&_0x4ad803[_0x3dce6e(0x41e)](_0x16221e)){const _0x32ff18=_0x16221e['getInitializer']();if(_0x32ff18&&_0x4ad803[_0x3dce6e(0x518)](_0x32ff18))return _0x32ff18;if(_0x32ff18&&_0x4ad803['isFunctionExpression'](_0x32ff18))return _0x32ff18;}}}if(_0x4ad803[_0x3dce6e(0x518)](_0x5d9ee7))return _0x5d9ee7;if(_0x4ad803[_0x3dce6e(0x32d)](_0x5d9ee7))return _0x5d9ee7;}return null;}function _0x734f2(_0x3af817){const _0x4ddb0b=_0x5ccc4b,_0x29464f=_0x3af817['getImportDeclaration']('react');if(!_0x29464f)return _0x3af817['addImportDeclaration']({'moduleSpecifier':_0x4ddb0b(0x409),'namedImports':['useEffect']}),!![];const _0x4fb2d9=_0x29464f['getNamedImports']();if(!_0x4fb2d9[_0x4ddb0b(0x28e)](_0x36e700=>_0x36e700[_0x4ddb0b(0x1a3)]()===_0x4ddb0b(0x2b5)))return _0x29464f['addNamedImport'](_0x4ddb0b(0x2b5)),!![];return![];}function _0xdc5a63(_0x912ece){const _0x572b82=_0x5ccc4b,_0x1fbfa6=_0x912ece[_0x572b82(0x19c)](_0x16945e);if(!_0x1fbfa6)return _0x912ece[_0x572b82(0x534)]({'moduleSpecifier':_0x16945e,'namedImports':[_0x357560]}),!![];const _0x61fdcd=_0x1fbfa6[_0x572b82(0x437)]();if(!_0x61fdcd[_0x572b82(0x28e)](_0x1b992e=>_0x1b992e['getName']()===_0x357560))return _0x1fbfa6[_0x572b82(0x2eb)](_0x357560),!![];return![];}function _0x12dc44(_0x171ac3){const _0x530e18=_0x5ccc4b,_0x4b3945=_0x171ac3[_0x530e18(0x540)]();if(!_0x4b3945||!_0x4ad803[_0x530e18(0x374)](_0x4b3945))return null;let _0x24336b=null,_0x201ea4=null;return _0x4b3945['forEachDescendant']((_0x17941b,_0x15ccbb)=>{const _0x5e232b=_0x530e18;if(_0x201ea4){_0x15ccbb['stop']();return;}if(_0x4ad803['isCallExpression'](_0x17941b)){const _0x499621=_0x17941b[_0x5e232b(0x4a7)]();if(_0x4ad803['isIdentifier'](_0x499621)&&_0x499621[_0x5e232b(0x1a9)]()===_0x357560){if(_0x24336b===null)_0x24336b=_0x17941b;_0x17941b['getArguments']()['length']===0x0&&(_0x201ea4=_0x17941b,_0x15ccbb[_0x5e232b(0x20b)]());}}}),_0x201ea4??_0x24336b;}function _0xbf1031(_0x45322b){return _0x12dc44(_0x45322b)!==null;}function _0x5dd97d(_0x439665,_0x56c7a0){const _0x3253a3=_0x5ccc4b;if(_0x439665['getArguments']()['length']>0x0)return![];const _0x27462e=_0x2e02a0(_0x56c7a0);return _0x439665[_0x3253a3(0x2cc)](_0x3253a3(0x334)+_0x27462e+'\x22);\x20}\x20catch\x20{\x20return\x20null;\x20}\x20}\x20}'),!![];}async function _0xbcad8e(_0x5a1f0f){const _0x4d8c68=_0x5ccc4b;await _0x499cf2();let _0x63bb31;try{const _0x294796=new _0x5aa955({'useInMemoryFileSystem':![],'skipAddingFilesFromTsConfig':!![],'skipFileDependencyResolution':!![],'skipLoadingLibFiles':!![],'compilerOptions':{'allowJs':!![],'jsx':0x1}});_0x63bb31=_0x294796['addSourceFileAtPath'](_0x5a1f0f);}catch{return _0x4d8c68(0x4c5);}const _0x490b46=_0x1796c2(_0x63bb31);if(!_0x490b46)return'none';const _0x266880=_0x12dc44(_0x490b46);if(!_0x266880)return _0x4d8c68(0x4c5);return _0x266880[_0x4d8c68(0x3b7)]()['length']===0x0?'bare':'seamed';}function _0x147bf8(_0x276916,_0x26c003){const _0x2caffe=_0x5ccc4b;if(_0xbf1031(_0x276916))return![];if(_0x4ad803['isArrowFunction'](_0x276916)){if('kUQTB'!=='kUQTB')return new _0x3b40f1(_0x2caffe(0x54a),_0x656be4,_0x2caffe(0x2e8));else{const _0x5f3b2f=_0x276916['getBody']();if(!_0x4ad803[_0x2caffe(0x374)](_0x5f3b2f)){const _0x3d7a73=_0x5f3b2f['getText']();_0x5f3b2f[_0x2caffe(0x50c)](_0x2caffe(0x194)+_0x3d7a73+';\x20}');}}}const _0x2a361a=_0x276916[_0x2caffe(0x540)]();if(!_0x2a361a||!_0x4ad803[_0x2caffe(0x374)](_0x2a361a))return![];return _0x2a361a['insertStatements'](0x0,'useEffect(()\x20=>\x20{\x20'+_0x338159(_0x26c003)+_0x2caffe(0x535)),!![];}async function _0x1b70d4(_0x54dbb4){const _0x1b55c6=_0x5ccc4b;await _0x499cf2();const _0x25494e=new _0x5aa955({'useInMemoryFileSystem':![],'skipAddingFilesFromTsConfig':!![],'skipFileDependencyResolution':!![],'skipLoadingLibFiles':!![],'compilerOptions':{'allowJs':!![],'jsx':0x1},'manipulationSettings':{'indentationText':_0x25d916['TwoSpaces']}}),_0x30c9ff=_0x25494e['addSourceFileAtPath'](_0x54dbb4['filePath']),_0x4536f6=_0x1796c2(_0x30c9ff);if(!_0x4536f6)return{'applied':![],'alreadyPresent':![],'reason':'Could\x20not\x20locate\x20the\x20default-exported\x20function\x20component.\x20Manually\x20add\x20the\x20following\x20near\x20the\x20top\x20of\x20your\x20root\x20component\x20in\x20'+_0x54dbb4[_0x1b55c6(0x47a)]+_0x1b55c6(0x49e)+_0x16945e+_0x1b55c6(0x310)+_0x338159(_0x54dbb4)+_0x1b55c6(0x535)};const _0x158571=_0x12dc44(_0x4536f6);if(_0x158571){const _0x19a0a8=_0x5dd97d(_0x158571,_0x54dbb4),_0x176431=_0xdc5a63(_0x30c9ff),_0x1c65fe=_0x734f2(_0x30c9ff),_0x50f9e0=_0x19a0a8||_0x176431||_0x1c65fe;return _0x50f9e0&&await _0x8a1d33(_0x54dbb4['filePath'],_0x30c9ff[_0x1b55c6(0x175)](),_0x1b55c6(0x449)),{'applied':_0x50f9e0,'alreadyPresent':!![],'reason':_0x19a0a8?'Upgraded\x20existing\x20installCeraph()\x20with\x20the\x20testID\x20sentinel\x20seam.':_0x50f9e0?_0x1b55c6(0x31e):'Already\x20wired\x20—\x20no\x20changes\x20needed.'};}const _0x11e52b=_0x147bf8(_0x4536f6,_0x54dbb4);if(!_0x11e52b)return{'applied':![],'alreadyPresent':![],'reason':_0x1b55c6(0x4d6)+_0x54dbb4[_0x1b55c6(0x47a)]+':\x0a\x20\x20import\x20{\x20installCeraph\x20}\x20from\x20\x22'+_0x16945e+_0x1b55c6(0x310)+_0x338159(_0x54dbb4)+_0x1b55c6(0x535)};_0xdc5a63(_0x30c9ff),_0x734f2(_0x30c9ff);const _0x5874fd=_0x30c9ff['getFullText']();return await _0x8a1d33(_0x54dbb4['filePath'],_0x5874fd,'utf-8'),{'applied':!![],'alreadyPresent':![]};}async function _0x1d6eff(_0xcd2886){const _0x1e9e35=_0x5ccc4b;try{return await _0x1b8f80(_0xcd2886['filePath'],_0x1e9e35(0x449));}catch{return null;}}async function _0x1b4fb8(_0x24adad,_0x31de74){await _0x8a1d33(_0x24adad['filePath'],_0x31de74,'utf-8');}var _0x25d916,_0x5aa955,_0x4ad803,_0x4e5589,_0x12ed6f,_0x16945e,_0x357560,_0x2cf0b8,_0x3cac80=_0x4d3071({'src/init/ast-layout.ts'(){'use strict';const _0x29c77e=_0x5ccc4b;_0x12ed6f=![],_0x16945e=_0x29c77e(0x2e7),_0x357560=_0x29c77e(0x35e),_0x2cf0b8=_0x40b444('.ceraph','testid-config.json');}});import{createInterface as _0x1608e2}from'readline';function _0x14a0a0(_0x518bc5){const _0x3d93ce=_0x5ccc4b;if(_0x518bc5[_0x3d93ce(0x41d)]!==void 0x0)return _0x518bc5[_0x3d93ce(0x41d)];if(process.env.CERAPH_NON_INTERACTIVE==='1')return!![];return!process['stdin'][_0x3d93ce(0x346)];}function _0x473d42(_0x26f09c){return new Promise(_0x5a8400=>{const _0x1e383e=_0x4997,_0x27a6d9=_0x1608e2({'input':process[_0x1e383e(0x263)],'output':process['stdout']});_0x27a6d9[_0x1e383e(0x3c5)](_0x26f09c,_0x593068=>{const _0x51e11d=_0x1e383e;_0x27a6d9[_0x51e11d(0x308)](),_0x5a8400(_0x593068);});});}async function _0x98335a(_0x1f8ec7,_0x4c55ab={}){const _0x577bc8=_0x5ccc4b,_0x362901=_0x4c55ab[_0x577bc8(0x3b9)]??!![];if(_0x14a0a0(_0x4c55ab))return _0x362901;const _0x29266e=_0x4c55ab[_0x577bc8(0x42f)]??_0x473d42,_0x400854=_0x362901?_0x577bc8(0x538):'\x20[y/N]\x20',_0x1045ea=(await _0x29266e(_0x1f8ec7+_0x400854))[_0x577bc8(0x1cd)]()[_0x577bc8(0x223)]();if(_0x1045ea['length']===0x0)return _0x362901;return _0x1045ea==='y'||_0x1045ea===_0x577bc8(0x393);}function _0x136036(_0x464101,_0x22a653={}){const _0xcf5a92=_0x5ccc4b,_0x5102ec=_0x22a653['write']??(_0x2e56dd=>process[_0xcf5a92(0x16e)]['write'](_0x2e56dd));_0x5102ec(_0x464101);}function _0x3a9fdf(_0x5b7cc6,_0x464c67){const _0x4e5f6d=_0x5ccc4b,_0x49ecc9=_0x464c67??_0x5b7cc6;if(process[_0x4e5f6d(0x16e)]['isTTY']!==!![]||process[_0x4e5f6d(0x4ca)][_0x4e5f6d(0x346)]!==!![])return _0x49ecc9;return'\x1b]8;;'+_0x5b7cc6+'\x07'+_0x49ecc9+_0x4e5f6d(0x55c);}async function _0x5fa9d4(_0x297c86,_0x2c575f,_0xed9b8b={}){const _0x1408fc=_0x5ccc4b;if(_0x2c575f['length']===0x0)return null;if(_0x14a0a0(_0xed9b8b))return 0x0;const _0x3510a3=_0xed9b8b[_0x1408fc(0x42f)]??_0x473d42,_0x45a808=[_0x297c86];_0x2c575f['forEach']((_0x4b69bd,_0x1d43d9)=>{_0x45a808['push']('\x20\x20'+(_0x1d43d9+0x1)+'.\x20'+_0x4b69bd);}),_0x45a808[_0x1408fc(0x359)]('');const _0x2c0523=_0x45a808[_0x1408fc(0x3aa)]('\x0a')+('Select\x20[1-'+_0x2c575f[_0x1408fc(0x471)]+']:\x20'),_0x529c48=(await _0x3510a3(_0x2c0523))['trim']();if(_0x529c48[_0x1408fc(0x471)]===0x0)return 0x0;const _0x157b3c=Number[_0x1408fc(0x576)](_0x529c48,0xa)-0x1;if(Number[_0x1408fc(0x2ab)](_0x157b3c)||_0x157b3c<0x0||_0x157b3c>=_0x2c575f['length'])return null;return _0x157b3c;}var _0x30ec70=_0x4d3071({'src/init/prompt.ts'(){'use strict';}});import{readdir as _0x3611e4,readFile as _0x32bd61,writeFile as _0x3891f9,mkdir,stat}from'fs/promises';import{join as _0x39d7e1,relative as _0x2e81d4}from'path';function _0x425534(_0x33296a){const _0x2187e6=_0x5ccc4b;return _0x340fc2[_0x2187e6(0x26f)](_0x33296a);}function _0x5629f8(_0x505b0e){const _0x37c550=_0x5ccc4b;return _0x340fc2[_0x37c550(0x35c)](_0x505b0e);}function _0x559faf(_0x515472){const _0x51afe8=_0x5ccc4b,_0x509b10=_0x515472['lastIndexOf']('.');if(_0x509b10<=0x0)return null;const _0x473925=_0x515472[_0x51afe8(0x54d)](0x0,_0x509b10),_0x26191b=_0x515472[_0x51afe8(0x54d)](_0x509b10)[_0x51afe8(0x223)]();if(!_0x425534(_0x26191b))return null;if(_0x473925[_0x51afe8(0x471)]===0x0)return null;return{'stem':_0x473925,'ext':_0x26191b};}function _0x467646(_0x42d1b8){const _0x29919e=_0x5ccc4b,_0x217316=_0x29919e(0x2c6);if(_0x42d1b8[_0x29919e(0x471)]===0x0)return _0x217316+_0x29919e(0x1e2);const _0x511099=Math['max'](..._0x42d1b8['map'](_0x32238e=>_0x32238e[_0x29919e(0x23b)][_0x29919e(0x471)]+0x2)),_0x1cb934=_0x42d1b8[_0x29919e(0x362)](_0x29727b=>{const _0x137ece=_0x29919e,_0x5bb1cd='\x22'+_0x29727b[_0x137ece(0x23b)]+'\x22,',_0x54a387=_0x5bb1cd[_0x137ece(0x21a)](_0x511099+0x1,'\x20');return'\x20\x20configureTestImage('+_0x54a387+'\x20require(\x22'+_0x29727b['relativePath']+_0x137ece(0x514);});return _0x217316+_0x1cb934['join']('\x0a')+'\x0a}\x0a';}async function _0x3117a7(_0x5f1b53){const _0x131470=_0x5ccc4b,_0x455f18=_0x39d7e1(_0x5f1b53,_0x3ef9e7),_0x47b057=_0x39d7e1(_0x455f18,_0x5502a1);let _0x2de31d;try{const _0x2dc097=await stat(_0x455f18);if(!_0x2dc097['isDirectory']())return{'registered':[],'registryPath':_0x47b057,'writtenOrUnchanged':'missing-dir'};_0x2de31d=await _0x3611e4(_0x455f18);}catch{return{'registered':[],'registryPath':_0x47b057,'writtenOrUnchanged':'missing-dir'};}const _0x36875c=new Map();for(const _0x297c22 of _0x2de31d){if(_0x297c22===_0x5502a1)continue;if(_0x297c22['startsWith']('_')||_0x297c22[_0x131470(0x425)]('.'))continue;if(_0x297c22===_0x131470(0x3c8))continue;const _0x222346=_0x559faf(_0x297c22);if(!_0x222346)continue;const _0xb36669={'key':_0x222346['stem'],'relativePath':'./'+_0x297c22,'ext':_0x222346['ext']},_0x4c2146=_0x36875c['get'](_0x222346[_0x131470(0x4f2)]);if(!_0x4c2146){_0x36875c['set'](_0x222346[_0x131470(0x4f2)],_0xb36669);continue;}_0x5629f8(_0xb36669['ext'])<_0x5629f8(_0x4c2146['ext'])&&_0x36875c[_0x131470(0x4fb)](_0x222346[_0x131470(0x4f2)],_0xb36669);}const _0x4edaa3=Array[_0x131470(0x38f)](_0x36875c[_0x131470(0x45f)]())[_0x131470(0x158)]((_0x1344e5,_0x2cd87c)=>_0x1344e5['key']<_0x2cd87c['key']?-0x1:_0x1344e5['key']>_0x2cd87c[_0x131470(0x23b)]?0x1:0x0),_0x1be146=_0x467646(_0x4edaa3);let _0x32e192=null;try{_0x32e192=await _0x32bd61(_0x47b057,_0x131470(0x449));}catch{_0x32e192=null;}if(_0x32e192===_0x1be146)return{'registered':_0x4edaa3,'registryPath':_0x47b057,'writtenOrUnchanged':'unchanged'};return await mkdir(_0x455f18,{'recursive':!![]}),await _0x3891f9(_0x47b057,_0x1be146,_0x131470(0x449)),{'registered':_0x4edaa3,'registryPath':_0x47b057,'writtenOrUnchanged':'written'};}function _0x33dfff(_0x52d972,_0x4616ed){const _0x21bc87=_0x5ccc4b,_0x48e2f3=_0x2e81d4(_0x52d972,_0x4616ed);return _0x48e2f3[_0x21bc87(0x471)]>0x0?_0x48e2f3:_0x4616ed;}var _0x340fc2,_0x5502a1,_0x3ef9e7,_0x4bd0b6=_0x4d3071({'src/camera-registry-sync.ts'(){'use strict';const _0x2c4be6=_0x5ccc4b;_0x340fc2=[_0x2c4be6(0x17e),_0x2c4be6(0x396),_0x2c4be6(0x509),_0x2c4be6(0x1e0),'.heic'],_0x5502a1=_0x2c4be6(0x210),_0x3ef9e7=_0x39d7e1('.ceraph','camera-images');}});import{readFile as _0x31e755,readdir as _0x2db817,stat as _0x53c84a}from'fs/promises';import{join as _0x3f35f9,relative as _0x3b81ce,sep as _0xbcc762}from'path';async function _0x2052d0(_0x53e3f5){try{return await _0x53c84a(_0x53e3f5),!![];}catch{return![];}}async function _0x18d824(_0x2e7e46){const _0x50f762=_0x5ccc4b;try{const _0x363bc7=await _0x31e755(_0x2e7e46,'utf-8'),_0x210016=JSON[_0x50f762(0x398)](_0x363bc7);if(!_0x210016||typeof _0x210016!==_0x50f762(0x382))return null;return _0x210016;}catch{return null;}}function _0xc8a5c9(_0x250042){const _0x4fc0ed=_0x5ccc4b;if(!_0x250042)return{'expo':![],'rn':![]};const _0x286705=_0x250042['dependencies']??{},_0x5cc82d=_0x250042[_0x4fc0ed(0x3d3)]??{},_0x215915={..._0x286705,..._0x5cc82d};return{'expo':Boolean(_0x215915['expo']||_0x215915['expo-router']),'rn':Boolean(_0x215915['react-native'])};}async function _0x435e11(_0x251159){const _0x3d5130=_0x5ccc4b,_0x1590cc=_0x3f35f9(_0x251159,_0x3d5130(0x262));let _0x3305b7;try{_0x3305b7=await _0x31e755(_0x1590cc,'utf-8');}catch{return null;}return _0x3b0497(_0x3305b7);}function _0x3b0497(_0x536469){const _0x442b10=_0x5ccc4b,_0x2a83f0=[];let _0x267c3f=![];for(const _0x549b40 of _0x536469['split'](/\r?\n/)){const _0x35a597=_0x549b40[_0x442b10(0x2be)](/#.*$/,'')[_0x442b10(0x1dc)]();if(_0x35a597['length']===0x0)continue;if(/^packages\s*:\s*$/['test'](_0x35a597)){_0x267c3f=!![];continue;}if(!_0x549b40[_0x442b10(0x425)]('\x20')&&!_0x549b40['startsWith']('-')&&_0x35a597[_0x442b10(0x227)](':')){_0x267c3f=![];continue;}if(!_0x267c3f)continue;const _0xa9ad08=_0x35a597['match'](/^\s*-\s*['"]?([^'"]+?)['"]?\s*$/);if(_0xa9ad08&&_0xa9ad08[0x1])_0x2a83f0[_0x442b10(0x359)](_0xa9ad08[0x1]);}return _0x2a83f0;}async function _0x235152(_0x5a416b,_0x2f56e8){const _0x38bec2=_0x5ccc4b,_0xd911bf=_0x2f56e8[_0x38bec2(0x2be)](/^\.\//,'')['replace'](/\/+$/,'');if(_0xd911bf['length']===0x0)return[];if(!_0xd911bf[_0x38bec2(0x26f)]('*')){const _0x3172af=_0x3f35f9(_0x5a416b,_0xd911bf),_0x153434=await _0x2052d0(_0x3172af);return _0x153434?[_0x3172af]:[];}const _0x2c4888=_0xd911bf['match'](/^([^*]+)\/\*$/);if(!_0x2c4888||!_0x2c4888[0x1])return[];const _0x390a14=_0x2c4888[0x1][_0x38bec2(0x2be)](/\/+$/,''),_0xae7543=_0x3f35f9(_0x5a416b,_0x390a14);let _0x26ae39;try{_0x26ae39=await _0x2db817(_0xae7543,{'withFileTypes':!![]});}catch{return[];}const _0x3ad6fd=[];for(const _0x3f8fb3 of _0x26ae39){if(!_0x3f8fb3['isDirectory']())continue;if(_0x3f8fb3['name']['startsWith']('.'))continue;_0x3ad6fd[_0x38bec2(0x359)](_0x3f35f9(_0xae7543,_0x3f8fb3[_0x38bec2(0x34d)]));}return _0x3ad6fd;}async function _0x4d6086(_0x54cf93){const _0xbfac1e=_0x5ccc4b,_0x4afea4=new Set();let _0x13c8e5=![];const _0x2964cb=await _0x18d824(_0x3f35f9(_0x54cf93,_0xbfac1e(0x16f)));if(_0x2964cb?.['workspaces']){_0x13c8e5=!![];if(Array[_0xbfac1e(0x178)](_0x2964cb[_0xbfac1e(0x48e)])){for(const _0x3a352b of _0x2964cb[_0xbfac1e(0x48e)])_0x4afea4[_0xbfac1e(0x532)](_0x3a352b);}else{if(_0x2964cb['workspaces']&&typeof _0x2964cb[_0xbfac1e(0x48e)]===_0xbfac1e(0x382)&&Array['isArray'](_0x2964cb['workspaces']['packages']))for(const _0x41a9e6 of _0x2964cb[_0xbfac1e(0x48e)][_0xbfac1e(0x23f)]){_0x4afea4[_0xbfac1e(0x532)](_0x41a9e6);}}}const _0x575356=await _0x435e11(_0x54cf93);if(_0x575356!=null){_0x13c8e5=!![];for(const _0x5e08e4 of _0x575356)_0x4afea4[_0xbfac1e(0x532)](_0x5e08e4);}const _0x2642cd=await _0x18d824(_0x3f35f9(_0x54cf93,'lerna.json'));if(_0x2642cd){const _0x460efe=_0x2642cd['packages'];if(Array[_0xbfac1e(0x178)](_0x460efe)){_0x13c8e5=!![];for(const _0x211e95 of _0x460efe){if(typeof _0x211e95===_0xbfac1e(0x40a))_0x4afea4['add'](_0x211e95);}}else await _0x2052d0(_0x3f35f9(_0x54cf93,'lerna.json'))&&(_0x13c8e5=!![]);}if(!_0x13c8e5)return null;return Array['from'](_0x4afea4);}async function _0x5ec4d2(_0x2829b9){const _0x4d5cf1=_0x5ccc4b,_0x23d950=await _0x18d824(_0x3f35f9(_0x2829b9,'package.json')),_0x47fe1f=_0xc8a5c9(_0x23d950);if(_0x47fe1f[_0x4d5cf1(0x172)]||_0x47fe1f['rn'])return{'kind':'none','matches':[],'rootIsRnApp':!![],'isMonorepo':await _0x4d6086(_0x2829b9)!=null};const _0x298239=await _0x4d6086(_0x2829b9);if(_0x298239==null){if('ekWkf'===_0x4d5cf1(0x402))this[_0x4d5cf1(0x196)]=_0x5078d2,this['cachedAt']=_0x5641be[_0x4d5cf1(0x239)]();else return{'kind':'none','matches':[],'rootIsRnApp':![],'isMonorepo':![]};}const _0xdc18cb=new Set();for(const _0xfcb67a of _0x298239){for(const _0x821270 of await _0x235152(_0x2829b9,_0xfcb67a)){_0xdc18cb['add'](_0x821270);}}const _0x17f28b=[];for(const _0x5d8746 of _0xdc18cb){const _0x3f90b3=_0x3f35f9(_0x5d8746,'package.json'),_0x340e6a=await _0x18d824(_0x3f90b3),_0x54db94=_0xc8a5c9(_0x340e6a),_0x2644ef=await _0x2052d0(_0x3f35f9(_0x5d8746,_0x4d5cf1(0x271))),_0x42c6e7=[];if(_0x54db94['expo'])_0x42c6e7[_0x4d5cf1(0x359)](_0x4d5cf1(0x172));if(_0x54db94['rn'])_0x42c6e7[_0x4d5cf1(0x359)](_0x4d5cf1(0x4f6));if(_0x2644ef)_0x42c6e7['push']('app.json');if(_0x42c6e7['length']===0x0)continue;const _0x11b007=_0x3b81ce(_0x2829b9,_0x5d8746)['split'](_0xbcc762)['join']('/');_0x17f28b[_0x4d5cf1(0x359)]({'absPath':_0x5d8746,'relPath':_0x11b007[_0x4d5cf1(0x471)]>0x0?_0x11b007:'.','signals':_0x42c6e7});}_0x17f28b[_0x4d5cf1(0x158)]((_0x328589,_0x5ad215)=>_0x328589[_0x4d5cf1(0x2ec)]<_0x5ad215['relPath']?-0x1:_0x328589['relPath']>_0x5ad215[_0x4d5cf1(0x2ec)]?0x1:0x0);const _0x3f858f=_0x17f28b['length']===0x0?_0x4d5cf1(0x4c5):_0x17f28b['length']===0x1?'single':_0x4d5cf1(0x21b);return{'kind':_0x3f858f,'matches':_0x17f28b,'rootIsRnApp':![],'isMonorepo':!![]};}var _0x1ecc92=_0x4d3071({'src/init/monorepo.ts'(){'use strict';}});import{readFile as _0x32980c,writeFile as _0x50a123,access as _0x1cd01c}from'fs/promises';import{join as _0xd99d0a}from'path';async function _0xb11aa3(_0x4a8de7){try{return await _0x1cd01c(_0x4a8de7),!![];}catch{return![];}}async function _0x24cc98(_0x18a828,_0x98a92a={}){const _0x435cc5=_0x5ccc4b,_0x3bc096=_0x98a92a[_0x435cc5(0x318)]??_0xb11aa3,_0x451b8a=_0x98a92a['readFile']??(_0x350a21=>_0x32980c(_0x350a21,_0x435cc5(0x449))),_0x54e5ae=_0x98a92a['writeFile']??((_0x323b30,_0x2b2d8f)=>_0x50a123(_0x323b30,_0x2b2d8f,_0x435cc5(0x449))),_0x211918=_0xd99d0a(_0x18a828,_0x435cc5(0x271)),_0x7dea0=_0xd99d0a(_0x18a828,'app.config.js'),_0x5b3aec=_0xd99d0a(_0x18a828,_0x435cc5(0x3a7)),_0x3e0ded=_0xd99d0a(_0x18a828,_0x435cc5(0x4b3)),_0x6c98f5=_0xd99d0a(_0x18a828,_0x435cc5(0x559)),_0x57205d=await _0x3bc096(_0x7dea0),_0x45275d=await _0x3bc096(_0x5b3aec);if(_0x57205d||_0x45275d)return{'kind':_0x435cc5(0x18a),'path':_0x45275d?_0x5b3aec:_0x7dea0};if(await _0x3bc096(_0x211918)){const _0x15f9d7=await _0x451b8a(_0x211918),_0x750e8f=_0x26515d(_0x15f9d7);if(!_0x750e8f['ok'])return{'kind':_0x435cc5(0x18a),'path':_0x211918};const _0x20ba40=_0x181ebc(_0x750e8f[_0x435cc5(0x36e)],_0x36932a);if(_0x20ba40[_0x435cc5(0x4d9)]===_0x435cc5(0x35b))return{'kind':'expo-json-already-registered','scheme':_0x20ba40['scheme'],'path':_0x211918};return await _0x54e5ae(_0x211918,_0xbc0894(_0x750e8f['parsed'],_0x15f9d7)),{'kind':_0x435cc5(0x231),'previousScheme':_0x20ba40[_0x435cc5(0x483)],'nextScheme':_0x20ba40['nextScheme'],'path':_0x211918};}if(await _0x3bc096(_0x3e0ded)||await _0x3bc096(_0x6c98f5)){if(_0x435cc5(0x523)===_0x435cc5(0x47f)){for(var _0x3dd5f1 in _0x3da6af)_0x1013d4(_0x4b97c0,_0x3dd5f1,{'get':_0x3b787e[_0x3dd5f1],'enumerable':!![]});}else return{'kind':'bare-rn-needs-manual'};}return{'kind':_0x435cc5(0x4af)};}function _0x26515d(_0x3ff6e7){const _0xf83480=_0x5ccc4b;try{if(_0xf83480(0x211)!==_0xf83480(0x28b)){const _0x267938=JSON[_0xf83480(0x398)](_0x3ff6e7);if(!_0x267938||typeof _0x267938!==_0xf83480(0x382)||Array[_0xf83480(0x178)](_0x267938))return{'ok':![],'parsed':{}};return{'ok':!![],'parsed':_0x267938};}else _0x26082a[_0xf83480(0x359)](_0x5aec23),_0xdcf691['onStep']?.(_0x14fab2);}catch{return{'ok':![],'parsed':{}};}}function _0xbc0894(_0xf9311b,_0x2b8e53){const _0x35ecee=_0x2b8e53['match'](/\n(\s+)"/),_0x5d84b6=_0x35ecee?.[0x1]??'\x20\x20',_0x2e954a=_0x2b8e53['endsWith']('\x0a'),_0x408dd4=JSON['stringify'](_0xf9311b,null,_0x5d84b6);return _0x2e954a?_0x408dd4+'\x0a':_0x408dd4;}function _0x181ebc(_0x5365ba,_0x427333){const _0x1b8756=_0x5ccc4b;(!_0x5365ba[_0x1b8756(0x172)]||typeof _0x5365ba[_0x1b8756(0x172)]!=='object')&&(_0x5365ba['expo']={});const _0x17d09d=_0x5365ba[_0x1b8756(0x172)],_0x2d3d24=_0x17d09d[_0x1b8756(0x18f)];if(typeof _0x2d3d24===_0x1b8756(0x40a)&&_0x2d3d24===_0x427333)return{'action':'already','scheme':_0x2d3d24,'previousScheme':_0x2d3d24,'nextScheme':[_0x2d3d24]};if(Array[_0x1b8756(0x178)](_0x2d3d24)&&_0x2d3d24['includes'](_0x427333))return{'action':_0x1b8756(0x35b),'scheme':_0x2d3d24,'previousScheme':_0x2d3d24,'nextScheme':[..._0x2d3d24]};if(_0x2d3d24===void 0x0)return _0x17d09d[_0x1b8756(0x18f)]=_0x427333,{'action':'added','scheme':_0x427333,'previousScheme':void 0x0,'nextScheme':[_0x427333]};if(typeof _0x2d3d24===_0x1b8756(0x40a)){const _0x458918=[_0x2d3d24,_0x427333];return _0x17d09d[_0x1b8756(0x18f)]=_0x458918,{'action':_0x1b8756(0x38b),'scheme':_0x458918,'previousScheme':_0x2d3d24,'nextScheme':_0x458918};}if(Array['isArray'](_0x2d3d24)){if(_0x1b8756(0x2c3)!=='XODYI')return{'registered':_0x2ad1df,'registryPath':_0x25296b,'writtenOrUnchanged':'unchanged'};else{const _0x24e066=[..._0x2d3d24,_0x427333];return _0x17d09d['scheme']=_0x24e066,{'action':_0x1b8756(0x38b),'scheme':_0x24e066,'previousScheme':_0x2d3d24,'nextScheme':_0x24e066};}}return _0x17d09d[_0x1b8756(0x18f)]=_0x427333,{'action':'added','scheme':_0x427333,'previousScheme':_0x2d3d24,'nextScheme':[_0x427333]};}function _0x140dde(){const _0x1ccb3f=_0x5ccc4b;return _0x1ccb3f(0x1f9)[_0x1ccb3f(0x41c)]();}function _0x4b56ef(_0x7ff2d2){const _0x2153bd=_0x5ccc4b;return('\x0aYour\x20project\x20uses\x20'+_0x7ff2d2+_0x2153bd(0x224))[_0x2153bd(0x41c)]();}var _0x36932a,_0xe1bccc=_0x4d3071({'src/init/url-scheme.ts'(){'use strict';_0x36932a='ceraph';}});import{createHash}from'crypto';import{join as _0x4af6da}from'path';import{readFile as _0x523e78}from'fs/promises';import{Project as _0x5d9981,Node as _0x16906e,SyntaxKind as _0x520ddb}from'ts-morph';function _0x481c28(_0x50aa66){const _0x1bf679=_0x5ccc4b;return createHash(_0x1bf679(0x192))[_0x1bf679(0x15f)](_0x50aa66)['digest']('hex')[_0x1bf679(0x54d)](0x0,0x10);}function _0x100cfe(_0x1e457a,_0x5318a0){const _0x379d20=_0x5ccc4b;if(_0x16906e['isStringLiteral'](_0x1e457a)||_0x16906e[_0x379d20(0x26a)](_0x1e457a))return _0x1e457a[_0x379d20(0x458)]()===_0x5318a0;if(_0x16906e[_0x379d20(0x529)](_0x1e457a)){const _0x1bfd07=_0x1e457a['getElements']()[0x0];return!!_0x1bfd07&&_0x100cfe(_0x1bfd07,_0x5318a0);}if(_0x16906e['isCallExpression'](_0x1e457a)){const _0x584b33=_0x1e457a['getExpression']();if(_0x16906e[_0x379d20(0x431)](_0x584b33)&&_0x584b33['getText']()==='require'){const _0x19970f=_0x1e457a['getArguments']()[0x0];return!!_0x19970f&&_0x100cfe(_0x19970f,_0x5318a0);}}return![];}function _0x49d943(_0x3f3fe6){const _0x12219a=_0x5ccc4b,_0x1c0d50=new _0x5d9981({'useInMemoryFileSystem':!![],'compilerOptions':{'allowJs':!![]}}),_0x2aa248=_0x1c0d50[_0x12219a(0x187)](_0x12219a(0x2cb),_0x3f3fe6);for(const _0x3bf570 of _0x2aa248['getDescendantsOfKind'](_0x520ddb[_0x12219a(0x165)])){if(_0x3bf570['getName']()!=='plugins')continue;const _0x50ce50=_0x3bf570[_0x12219a(0x56f)]();if(_0x50ce50&&_0x16906e['isArrayLiteralExpression'](_0x50ce50))return{'array':_0x50ce50,'sourceText':_0x2aa248[_0x12219a(0x175)]()};}return null;}var _0x2b6942,_0x286703,_0x41f3a0=_0x4d3071({'src/init/babel-config-hash.ts'(){'use strict';const _0x38c23b=_0x5ccc4b;_0x2b6942=_0x38c23b(0x265),_0x286703=['babel.config.js','babel.config.cjs','.babelrc.js'];}});import{join as _0x2fbce7}from'path';import{readFile as _0x4934fd,writeFile as _0x5c6bc1,access as _0xbb1e85,mkdir as _0x7df337}from'fs/promises';function _0x4662a5(_0x41e563){const _0x15e0d2=_0x5ccc4b;return _0x15e0d2(0x417)+_0x41e563+'\x27],\x0a\x20\x20\x20\x20plugins:\x20[\x27'+_0x2b6942+'\x27],\x0a\x20\x20};\x0a};\x0a';}async function _0x5406d3(_0x3b5400){try{return await _0xbb1e85(_0x3b5400),!![];}catch{return![];}}async function _0x5cd6e1(_0x14c695,_0x475423){for(const _0x165a67 of _0x286703){const _0x2af3a6=_0x2fbce7(_0x14c695,_0x165a67);if(await _0x475423(_0x2af3a6))return _0x2af3a6;}return null;}async function _0x14e676(_0x4fc33b,_0x4b7926={}){const _0x2feb34=_0x5ccc4b,_0x4db294=_0x4b7926[_0x2feb34(0x37a)]??(_0x3d6f90=>_0x4934fd(_0x3d6f90,_0x2feb34(0x449))),_0x435e61=_0x4b7926['writeFile']??((_0x41b043,_0x190043)=>_0x5c6bc1(_0x41b043,_0x190043,'utf-8')),_0x356560=_0x4b7926['fileExists']??_0x5406d3,_0x1cac2f=await _0x5cd6e1(_0x4fc33b,_0x356560);if(!_0x1cac2f){let _0x13cd25=_0x2feb34(0x4a4);try{const _0x1080f4=JSON[_0x2feb34(0x398)](await _0x4db294(_0x2fbce7(_0x4fc33b,_0x2feb34(0x16f)))),_0x5b24a6={..._0x1080f4[_0x2feb34(0x282)],..._0x1080f4['devDependencies']};if(!_0x5b24a6['expo'])_0x13cd25=_0x2feb34(0x1b5);}catch{}const _0x1157d9=_0x2fbce7(_0x4fc33b,_0x2feb34(0x2cb)),_0x158904=_0x4662a5(_0x13cd25);return await _0x435e61(_0x1157d9,_0x158904),await _0x27d39c(_0x4fc33b,_0x158904,_0x4b7926,_0x435e61),{'kind':'created','path':_0x1157d9,'preset':_0x13cd25};}let _0x1b3480;try{_0x1b3480=await _0x4db294(_0x1cac2f);}catch{return{'kind':'needs-manual','path':_0x1cac2f,'reason':_0x2feb34(0x2a4)};}const _0x5b1148=_0x49d943(_0x1b3480);if(_0x5b1148){if(_0x2feb34(0x31f)!==_0x2feb34(0x414)){const _0x1c89ba=_0x5b1148['array']['getElements']();if(_0x1c89ba[_0x2feb34(0x28e)](_0x3ca1bd=>_0x100cfe(_0x3ca1bd,_0x2b6942)))return await _0x27d39c(_0x4fc33b,_0x1b3480,_0x4b7926,_0x435e61),{'kind':'already-present','path':_0x1cac2f};const _0x233d60=_0x1c89ba[_0x2feb34(0x1c0)](_0x287a37=>_0x100cfe(_0x287a37,_0x8ebe68)),_0x272da9=_0x233d60>=0x0?_0x233d60:_0x1c89ba['length'];_0x5b1148['array']['insertElement'](_0x272da9,'\x22'+_0x2b6942+'\x22');const _0x2f986e=_0x5b1148[_0x2feb34(0x4ea)][_0x2feb34(0x548)]()[_0x2feb34(0x175)]();return await _0x435e61(_0x1cac2f,_0x2f986e),await _0x27d39c(_0x4fc33b,_0x2f986e,_0x4b7926,_0x435e61),{'kind':'added','path':_0x1cac2f,'beforeReanimated':_0x233d60>=0x0};}else return{'path':_0xf004fc,'status':_0x2feb34(0x4b0)};}return{'kind':_0x2feb34(0x3eb),'path':_0x1cac2f,'reason':'no\x20`plugins:\x20[...]`\x20array\x20found\x20to\x20edit\x20safely\x20(dynamic\x20config?).\x20Add\x20\x22'+_0x2b6942+'\x22\x20to\x20your\x20babel\x20plugins,\x20before\x20any\x20\x22'+_0x8ebe68+_0x2feb34(0x303)};}async function _0x27d39c(_0x2c0f4b,_0x34c85f,_0x3d9336,_0x118d0b){const _0x360a9a=_0x5ccc4b,_0x1e8df8=_0x2fbce7(_0x2c0f4b,'.ceraph');if(!_0x3d9336['writeFile'])try{await _0x7df337(_0x1e8df8,{'recursive':!![]});}catch{}const _0x4a6dd2={'pluginVersion':_0x3d9336[_0x360a9a(0x198)]??_0x4e4761,'babelConfigHash':_0x481c28(_0x34c85f)};await _0x118d0b(_0x2fbce7(_0x1e8df8,_0x360a9a(0x450)),JSON['stringify'](_0x4a6dd2,null,0x2)+'\x0a');}var _0x8ebe68,_0x4e4761,_0x165f87=_0x4d3071({'src/init/babel-config.ts'(){'use strict';const _0x56d417=_0x5ccc4b;_0x41f3a0(),_0x8ebe68=_0x56d417(0x14b),_0x4e4761=_0x56d417(0x286);}});import{execFile}from'child_process';import{constants as _0x3a5880,promises as _0x4c164c}from'fs';import{isAbsolute,join as _0x5d47ae,normalize,relative as _0x5d2da3}from'path';import{promisify}from'util';function _0x3cc824(_0x1bf5f2){const _0x563151=_0x5ccc4b,_0x4fd98a=_0x1bf5f2[_0x563151(0x223)]();for(const _0x533cfe of _0x4c09df){if(_0x533cfe['test'](_0x4fd98a))return![];}const _0x540856=_0x4fd98a[_0x563151(0x4c7)]('/')['pop']()??'';if(/[._-]tokens?($|[._-])/['test'](_0x540856))return![];const _0x195240=_0x1bf5f2[_0x563151(0x326)]('.');if(_0x195240<0x0)return![];const _0x488fe1=_0x1bf5f2['slice'](_0x195240)['toLowerCase']();return _0x5d0f85['has'](_0x488fe1);}async function _0x2fb97f(_0x23710f){const _0x13b1dc=_0x5ccc4b;try{const {stdout:_0x53bff2}=await _0x22ad07(_0x13b1dc(0x2f4),['rev-parse','--abbrev-ref','HEAD'],{'cwd':_0x23710f});return _0x53bff2[_0x13b1dc(0x1cd)]();}catch{return'unknown';}}async function _0x3aa0a3(_0x38d75d,_0x134469){try{const {stdout:_0x33ee00}=await _0x22ad07('git',['rev-parse',_0x134469],{'cwd':_0x38d75d});return _0x33ee00['trim']();}catch{return _0x134469;}}async function _0x5bd14e(_0x299684){const _0x51c91b=_0x5ccc4b;try{const {stdout:_0x4a39dc}=await _0x22ad07('git',[_0x51c91b(0x2e1)],{'cwd':_0x299684,'maxBuffer':0x8*0x400*0x400});return _0x4a39dc[_0x51c91b(0x4c7)]('\x0a')['map'](_0x4110fa=>_0x4110fa[_0x51c91b(0x1cd)]())[_0x51c91b(0x235)](Boolean)['filter'](_0x3cc824);}catch{return[];}}var _0x22ad07,_0x5d0f85,_0x4c09df,_0x4a6690=_0x4d3071({'src/git.ts'(){'use strict';const _0x1d40f3=_0x5ccc4b;_0x22ad07=promisify(execFile),_0x5d0f85=new Set(['.tsx','.ts',_0x1d40f3(0x570),'.js',_0x1d40f3(0x193),_0x1d40f3(0x32e),'.json']),_0x4c09df=[/(^|\/)\.env(\.|$)/,/\.pem$/,/\.key$/,/\.p12$/,/\.pfx$/,/\.keystore$/,/\.jks$/,/\.mobileprovision$/,/(^|\/)credentials?\b/,/(^|\/)secrets?\b/,/private[_-]?key/];}});import{execFile as _0x52d38a}from'child_process';import{promisify as _0xe8985}from'util';async function _0x3cd658(_0x2331e2){const _0x4b7cf5=_0x5ccc4b,{stdout:_0xacc093}=await _0x329a25(_0x4b7cf5(0x2f4),[_0x4b7cf5(0x151),'--get','remote.origin.url'],{'cwd':_0x2331e2,'encoding':'utf-8'}),_0x1297c9=_0xacc093[_0x4b7cf5(0x1cd)](),_0x586ddd=_0x1297c9[_0x4b7cf5(0x2be)](/\.git$/,''),_0x16dfff=_0x586ddd[_0x4b7cf5(0x2ae)](/^(?:https?:\/\/(?:[^/@]+@)?github\.com(?::\d+)?\/|git@github\.com:|ssh:\/\/git@github\.com(?::\d+)?\/)([^/]+)\/([^/]+?)$/);if(!_0x16dfff)throw new Error('Could\x20not\x20resolve\x20GitHub\x20repo\x20from\x20git\x20remote.');return{'owner':_0x16dfff[0x1],'repo':_0x16dfff[0x2]};}var _0x329a25,_0x5f5292=_0x4d3071({'src/github.ts'(){'use strict';_0x329a25=_0xe8985(_0x52d38a);}});function _0x28ecdc(_0x80779e){const _0x407f48=_0x5ccc4b;let _0x46c416;try{_0x46c416=new URL(_0x80779e);}catch{throw new Error(_0x407f48(0x162)+_0x80779e+'\x22\x20—\x20must\x20be\x20an\x20absolute\x20URL\x20with\x20a\x20scheme\x20(e.g.\x20https://ceraph.dev/api/mcp\x20or\x20http://localhost:3000/api/mcp).');}if(_0x46c416[_0x407f48(0x264)]==='https:')return _0x80779e;if(_0x46c416['protocol']==='http:'){const _0x4caf60=_0x46c416['hostname']['toLowerCase']();if(_0x4ad906[_0x407f48(0x466)](_0x4caf60))return _0x80779e;throw new Error(_0x407f48(0x387)+_0x80779e+'\x22.\x20Use\x20https://\x20for\x20remote\x20endpoints\x20(http://\x20is\x20only\x20allowed\x20for\x20localhost\x20/\x20127.0.0.1).');}throw new Error('Refusing\x20to\x20send\x20your\x20Ceraph\x20token\x20to\x20a\x20\x22'+_0x46c416['protocol']+'\x22\x20URL:\x20\x22'+_0x80779e+_0x407f48(0x38d));}function _0x2223(){const _0x31df30=['devDependencies','index','camera-images','VyvDj','LAkuJ','rn-flow-progress-notify.sh','Detected\x20React\x20Native\x20app\x20at\x20','[!]','simulatorUdid','Claude\x20Code:\x20','direction','tapAtPoint','WDA\x20apps/launch\x20failed:\x20','.\x20Open\x20Xcode,\x20run\x20the\x20WebDriverAgentRunner\x20target\x20on\x20your\x20connected\x20iPhone\x20once,\x20then\x20try\x20again\x20on\x20real\x20devices.\x20Simulator\x20support\x20is\x20available\x20via\x20rn_wda_start.','sim:','screenCount','Re-run\x20with\x20--global\x20to\x20delete\x20~/.ceraph/auth.json.\x20Note:\x20this\x20token\x20is\x20shared\x20across\x20every\x20Ceraph\x20install\x20on\x20this\x20machine\x20—\x20removing\x20it\x20logs\x20you\x20out\x20everywhere.','executable','baseUrl','setAppLifecycle','gitignore','Ceraph\x20rate\x20limit\x20hit.\x20Try\x20again\x20in\x20a\x20few\x20seconds.','reqYF','no-github-remote','needs-manual','npm','passed','installCeraph-only','snapshotTarget','children','volumeUp','AmpDD','Install\x20with\x20`brew\x20install\x20ffmpeg`\x20to\x20enable\x20per-chain\x20mp4\x20capture\x20on\x20real-device\x20runs.\x20Tests\x20will\x20continue\x20without\x20video\x20until\x20installed.','unlock','\x0aManual\x20actions\x20needed:\x0a','.gitignore','@ceraph/react-native-mcp\x0a\x0aUSAGE\x0a\x20\x20npx\x20@ceraph/react-native-mcp\x20<command>\x20[flags]\x0a\x0aCOMMANDS\x0a\x20\x20init\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Wire\x20up\x20MCP\x20clients,\x20hooks,\x20AST\x20replacements,\x20and\x20doctor.\x0a\x20\x20uninstall\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Reverse\x20the\x20mutations\x20init\x20applied.\x0a\x20\x20(no\x20command)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Start\x20the\x20MCP\x20server\x20over\x20stdio.\x0a\x0aFLAGS\x0a\x20\x20--agent\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Pass\x20when\x20an\x20AI\x20tool\x20is\x20driving\x20the\x20install\x20—\x20defers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20interactive\x20camera\x20setup\x20to\x20the\x20agent\x20via\x20a\x20single\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CERAPH_INIT_AGENT_HINT={...}\x20JSON\x20line\x20emitted\x20on\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stdout\x20at\x20completion.\x20Equivalent\x20to\x20CERAPH_AGENT_MODE=1.\x0a\x20\x20--tier=<pro|starter>\x20\x20Pre-select\x20the\x20plan,\x20skipping\x20the\x20interactive\x20prompt.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Starter\x20is\x20free\x20(local\x20build/run/device\x20tools,\x20no\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sign-in).\x20Pro\x20($10/mo)\x20adds\x20AI\x20flow\x20testing\x20on\x20a\x20real\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20device\x20and\x20requires\x20sign-in\x20+\x20checkout.\x0a\x20\x20--help,\x20-h\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20text.\x0a','Failed\x20to\x20get\x20element\x20tree:\x20','--dry-run','_findNavBarBackButton','MnSEB','center','accessToken','Replace\x20each\x20<CameraView\x20/>\x20with\x20<CeraphCamera\x20imageKey=\x22...\x22\x20/>\x20from\x20\x22@ceraph/react-native-mcp/shim\x22.\x20The\x20shim\x20falls\x20through\x20to\x20expo-camera\x20in\x20production\x20builds.','CFBundleDisplayName','install','revertCeraphUrlScheme','pQsLp','[X]','Pro\x20is\x20active\x20on\x20this\x20account.','rn-error-notify.sh','currentBaseUrl','glotG','PdkMc','react','string','removedImport','device:','stateVersion','INSTALLED_CACHE_MS','command-failed','CeraphCamera','already-injected','.zshrc','\x20(dynamic\x20Expo\x20config).\x20The\x20init\x20walkthrough\x20never\x20edited\x20this\x20file\x20automatically;\x20if\x20you\x20(or\x20a\x20teammate)\x20added\x20`ceraph`\x20to\x20its\x20`scheme`\x20value,\x20remove\x20that\x20entry\x20by\x20hand.\x20After\x20editing,\x20run\x20`expo\x20prebuild\x20--clean`\x20or\x20restart\x20the\x20dev\x20client.','BCkKI',':\x20configured\x20✓','status','module.exports\x20=\x20function\x20(api)\x20{\x0a\x20\x20api.cache(true);\x0a\x20\x20return\x20{\x0a\x20\x20\x20\x20presets:\x20[\x27','Device\x20is\x20locked.\x20Unlock\x20it\x20manually\x20once,\x20then\x20set\x20Settings\x20→\x20Display\x20&\x20Brightness\x20→\x20Auto-Lock\x20→\x20Never\x20so\x20it\x20stays\x20awake\x20while\x20flows\x20run.\x20WDA\x20can\x27t\x20bypass\x20Face\x20ID\x20or\x20a\x20passcode.','zpfQt','\x20is\x20not\x20installed\x20on\x20the\x20device.','25ezAeWC','trimStart','nonInteractive','isVariableDeclaration','\x20\x20Manual\x20actions:\x20\x20','fetchSourceTree','read','NcUpb','substring','\x20<CameraView>\x20to\x20<CeraphCamera>?','startsWith','lock','#!/bin/bash\x0a#\x20rn-error-notify.sh\x20—\x20Injected\x20by\x20@ceraph/react-native-mcp\x20init\x0a#\x20Reads\x20.rn-errors.json\x20and\x20injects\x20runtime\x20errors\x20into\x20Claude\x27s\x20context.\x0a\x0aERROR_FILE=\x22$CLAUDE_PROJECT_DIR/mobile/.rn-errors.json\x22\x0a\x0a#\x20Also\x20check\x20project\x20root\x20if\x20mobile/\x20doesn\x27t\x20exist\x0aif\x20[\x20!\x20-f\x20\x22$ERROR_FILE\x22\x20];\x20then\x0a\x20\x20ERROR_FILE=\x22$CLAUDE_PROJECT_DIR/.rn-errors.json\x22\x0afi\x0a\x0aif\x20[\x20!\x20-f\x20\x22$ERROR_FILE\x22\x20];\x20then\x0a\x20\x20exit\x200\x0afi\x0a\x0aERROR_COUNT=$(jq\x20-r\x20\x27.errors\x20|\x20length\x27\x20\x22$ERROR_FILE\x22\x202>/dev/null)\x0a\x0aif\x20[\x20\x22$ERROR_COUNT\x22\x20=\x20\x220\x22\x20]\x20||\x20[\x20-z\x20\x22$ERROR_COUNT\x22\x20];\x20then\x0a\x20\x20exit\x200\x0afi\x0a\x0aecho\x20\x22REACT\x20NATIVE\x20RUNTIME\x20ERROR\x20DETECTED:\x22\x0aecho\x20\x22\x22\x0ajq\x20-r\x20\x27.errors[]\x20|\x20\x22Error:\x20\x5c(.message)\x5cnStack:\x20\x5c(.stack)\x5cnTime:\x20\x5c(.timestamp)\x5cn---\x22\x27\x20\x22$ERROR_FILE\x22\x202>/dev/null\x0aecho\x20\x22\x22\x0aecho\x20\x22Use\x20rn_get_errors\x20for\x20full\x20details.\x20Fix\x20the\x20error\x20and\x20rebuild.\x22\x0a','end','number',';\x20udid\x20','BRoOx','dist','install-failed','already-present','ask','DtsyC','isIdentifier','checks','getFunctions','.bashrc','antigravity','min','getNamedImports','cusyC','enabledMcpjsonServers','pipe','uQPui','dJzNl','/source?format=json','entries','booted','test','flavor','scrollToElement','hrOJg','revertUserGlobalMcpClients','sendW3CActions','contents','canonicalScript','ceraph://','utf-8','Failed\x20to\x20parse\x20devicectl\x20output:\x20','text','mGpJy','ffmpeg-installed','nEVXo','\x22$CLAUDE_PROJECT_DIR\x22/.claude/hooks/rn-flow-progress-notify.sh','testid-config.json','\x20image','awake','Hook\x20script:\x20.claude/hooks/rn-error-notify.sh\x20✓','--udid','Set\x20your\x20','xdg-open','.rn-errors.json','getLiteralText','command','Next:\x20ask\x20your\x20AI\x20coding\x20assistant\x20(Claude\x20Code,\x20Cursor,\x20Codex,\x20etc.):','getSymbol','assertVisible','wwhRi','not-found','values','waitFor','process','Found\x20','no\x20.gitignore','bXMkP','buildTapPointerActions','has','__awaitRealDeviceHookForTests','No\x20correction\x20(device\x20coordinates)','auto-no-target-found','hardwareProperties','WDA\x20reachability\x20probe\x20threw:\x20','\x20→\x20<CeraphCamera\x20/>','udidInflight','missing\x20token',').\x20Try\x20again\x20in\x20a\x20few\x20seconds.','LSApplicationWorkspaceErrorDomain','length','iqIoo','warning','\x20installCeraph()\x20in\x20','ipconfig','get','nav-bar','getActiveAppInfo','unlocked','filePath',':\x20existing\x20config\x20at\x20','runDoctor','\x20is\x20malformed\x20JSON\x20—\x20preserving\x20it.\x20Fix\x20the\x20file\x20manually\x20then\x20re-run\x20init.','expiresAt','fECpy','getPixelRatio','bun.lockb','elementMatches','previousScheme','version','ffmpeg','urWpY','auto-prefer-device','\x20file(s)','\x0a@ceraph/react-native-mcp\x20init\x0a','invalidate','findAndTap','data','98492ovQmzi','workspaces','screens','All\x20','stdioToStderr','Rewrite\x20','No\x20iOS\x20target\x20detected.\x20For\x20a\x20real\x20device:\x20tell\x20the\x20user\x20to\x20plug\x20in\x20their\x20iPhone\x20via\x20USB-C\x20and\x20trust\x20this\x20Mac,\x20then\x20call\x20`rn_wait_for_device`\x20(listens\x20on\x20macOS\x27s\x20usbmuxd\x20daemon\x20for\x20sub-second\x20event-driven\x20detection\x20—\x20no\x20polling,\x20no\x20timeout).\x20For\x20a\x20simulator:\x20boot\x20one\x20(Simulator.app\x20or\x20`xcrun\x20simctl\x20boot\x20<udid>`)\x20and\x20call\x20`rn_wda_start`\x20to\x20target\x20it.','/window/size','iOS\x20does\x20not\x20expose\x20an\x20API\x20for\x20disabling\x20Auto-Lock.\x20Open\x20Settings\x20→\x20Display\x20&\x20Brightness\x20→\x20Auto-Lock\x20→\x20Never\x20on\x20the\x20device\x20before\x20running\x20long\x20flows.\x20The\x20flow\x20runner\x20keeps\x20WDA\x27s\x20session\x20warm\x20with\x20a\x20heartbeat,\x20but\x20it\x20cannot\x20prevent\x20Auto-Lock\x20by\x20itself.','<!doctype\x20html><html><body\x20style=\x22font-family:system-ui;padding:32px;background:#0b0f14;color:#e6edf3;\x22><h1>CLI\x20signed\x20in</h1><p>You\x20can\x20close\x20this\x20tab.</p></body></html>','Set\x20the\x20missing\x20vars\x20before\x20running:\x20','see\x20details','owner','Could\x20not\x20auto-wire\x20the\x20testID\x20injector:\x20','found','gate\x20closed','.ceraph/wda-derived/',':\x0a\x20\x20import\x20{\x20installCeraph\x20}\x20from\x20\x22','processIdentifier','WDA\x20tap\x20failed','/tier-check','1505928QZyqiM','intent','babel-preset-expo','pathname','Code=115','getExpression','appium-webdriveragent/package.json','WDA\x20unavailable\x20—\x20call\x20rn_wda_start\x20first\x20if\x20testing\x20on\x20a\x20simulator.','account-invalid','right','delete','keyDown','Unknown\x20error\x20during\x20screenshot','no-rn-project','no-changes','Picked\x20index\x20out\x20of\x20range.','.rn-flow-progress.json','ios','exitCode','PRaZx','--json-output','/cli-auth?port=','setHeader','JQvpn','ceraph-uninstall-boot-preview-','.json','appium-webdriveragent','pyyql','matches','::1','claude-hooks','iYHEx','manual\x20action\x20required\x20—\x20','No\x20working\x20launch\x20transport\x20found.\x20Install\x20Xcode\x20(for\x20devicectl)\x20or\x20idb\x20(https://fbidb.io/)\x20to\x20launch\x20apps\x20on\x20a\x20real\x20device.','skipped-needs-confirmation','none','.expo','split','homeDir','random','stderr','\x20\x20Warnings:\x20\x20\x20\x20\x20\x20\x20\x20','WxMLB','checkIdb','Graph\x20cache\x20seed\x20returned\x20an\x20unexpected\x20response\x20shape.','Opening\x20','xXrDJ','hideKeyboardAfter','wxBQh','clearSimulatorWdaPort','eEoZp','\x20<CeraphCamera>\x20tag(s).\x20If\x20any\x20of\x20those\x20keys\x20were\x20customer-set\x20(not\x20Ceraph-generated),\x20re-apply\x20them\x20after\x20install\x20rebuilds\x20the\x20camera\x20surface.','Default\x20export\x20is\x20not\x20a\x20block-bodied\x20function.\x20Manually\x20add\x20the\x20following\x20at\x20the\x20top\x20of\x20your\x20root\x20component\x20in\x20','Swipe\x20failed\x20during\x20scrollToElement','WDA\x20setOrientation\x20failed:\x20','action','target','simctl\x20launch\x20failed:\x20','App\x20','Could\x20not\x20find\x20app/_layout.tsx\x20or\x20App.tsx.\x20Add\x20this\x20to\x20your\x20root\x20component\x20manually\x20(the\x20require\x20path\x20is\x20relative\x20to\x20that\x20file\x20—\x20`./.ceraph/testid-config.json`\x20from\x20a\x20root\x20App.tsx,\x20`../.ceraph/testid-config.json`\x20from\x20app/_layout.tsx):\x0a\x20\x20useEffect(()\x20=>\x20{\x20installCeraph({\x20readTestidConfig:\x20()\x20=>\x20{\x20try\x20{\x20return\x20require(\x22./.ceraph/testid-config.json\x22);\x20}\x20catch\x20{\x20return\x20null;\x20}\x20}\x20});\x20},\x20[]);','left','simctl','identifier',')\x20—\x20preserved','args','\x20`hooks`\x20is\x20not\x20a\x20JSON\x20object\x20—\x20preserving\x20it.','result','agentMessage','mcp_servers.','dfOQI','signal-host','terminate','array','camera','next','Could\x20not\x20bind\x20a\x20free\x20port\x20for\x20the\x20auth\x20listener.','All\x20<CeraphCamera\x20imageKey>\x20values\x20resolve\x20to\x20files\x20in\x20.ceraph/camera-images/.','permission-interceptor-ready','file://','--tier=','stem','useEffect\x20contains\x20other\x20statements','JwiRJ',')\x20—\x20preserving\x20it.','react-native','findAndTapReturningTree','Failed\x20to\x20type\x20text\x20(serial\x20fallback)','registered','127.0.0.1','set','lockState','.claude','eaaCe','unref','Detected\x20a\x20monorepo\x20at\x20the\x20current\x20directory\x20but\x20could\x20not\x20find\x20a\x20React\x20Native\x20or\x20Expo\x20subpackage.\x20Re-run\x20`npx\x20@ceraph/react-native-mcp\x20init`\x20from\x20inside\x20the\x20RN/Expo\x20app\x20folder,\x20or\x20add\x20the\x20app\x20to\x20your\x20workspaces.','Failed\x20to\x20get\x20window\x20size:\x20','SqkHH','pixelRatio','skipped\x20—\x20','settings.local.json','\x20layout(s)\x20(','skipped','mode','.png','unknown','help','replaceWithText','Ijtxe','getTagNameNode','iproxy\x20bridge\x20already\x20running\x20(external).','apps','abort','/wda/keys','\x20is\x20not\x20a\x20JSON\x20object\x20(got\x20','\x22));','ensureSession','getStatements','Bearer\x20','isArrowFunction','page','camera-registry-synced','layoutCount','Invalid\x20CERAPH_WEB_BASE_URL\x20or\x20CERAPH_API_URL:\x20\x22','No\x20bare\x20<CameraView>\x20usages\x20from\x20expo-camera\x20found\x20in\x20app/src/screens.','error','fetch','../','/wda/unlock','Ceraph\x20server\x20returned\x20an\x20unexpected\x20response\x20shape\x20for\x20','PYoGv','no-layout-found','getFilePath','app','LkHOR','.next','isArrayLiteralExpression','auto-lock-disabled','rGlhc','ExpressionStatement','detectPackageManager','size','launchApp','lock\x20screen','uninstall','add','WDA\x20session\x20creation\x20succeeded\x20but\x20no\x20sessionId\x20returned','addImportDeclaration',';\x20},\x20[]);','tap','actions','\x20[Y/n]\x20','Device\x20is\x20awake\x20(lockState:\x20','pointerMove','pop','Skipped\x20—\x20iproxy\x20auto-bridge\x20not\x20applicable\x20to\x20simulator\x20targets.','ceraph-dir','start','.codex','getBody','Ypjdf','.codeium','fetchedAt','mcpServers','zdhlh','getSimulatorWdaPort','camera-image-key-orphan','getSourceFile','getSourceFiles','tier-gated','\x20matching\x20element(s).','pnpm','slice','query','ceraph-uninstall-preview-','\x20@ceraph/react-native-mcp\x20(','Element\x20not\x20visible\x20after\x203000ms:\x20','32725406eFiOhb','--help','message','Real\x20iOS\x20device\x20connected\x20(udid\x20','WDA\x20apps/terminate\x20failed:\x20','eIKZM','init.js','android','wdaReady','exit','\x1b]8;;\x07','pro','udid','unknown\x20error','log','KsBxy',')\x20—\x20preserving\x20the\x20file.','locked','readdir','Skipped\x20—\x20iproxy\x20auto-bridge\x20not\x20enabled\x20for\x20this\x20doctor\x20call.','KLasN','active','Matched\x20element\x20has\x20no\x20bounds/rect\x20information.','missing','matchCount','details','Signed\x20in','.ts','registryPath','getInitializer','.jsx','yarn','tmpRoot','mobile-mcp','hooks','argv','parseInt','XKezR','WFrHe','kill','Unknown\x20error\x20during\x20clearText','nothing-to-remove','removedPackages','isCallExpression','defineProperty','soKaG','Skipped\x20—\x20no\x20bundleId\x20provided.','ceraph-uninstall-scheme-preview-','\x20+\x20testID\x20injector)\x20—\x20your\x20app\x20had\x20no\x20babel\x20config,\x20so\x20we\x20added\x20one.\x20Rebuild\x20your\x20dev\x20client\x20once\x20to\x20activate.','sessionId','launch','\x20top-level\x20is\x20not\x20a\x20JSON\x20object\x20—\x20preserving\x20it.','clear','Claude\x20Code\x20hook:\x20FileChanged\x20→\x20.rn-flow-progress.json\x20✓','element','/wda/pressButton','YQrVP','Antigravity','Signing\x20in\x20with\x20the\x20provided\x20token…','button','jlFPq','installedAppsCache','react-native-reanimated/plugin','Serial\x20fallback\x20tap\x20failed\x20at\x20index\x20','No\x20graph-relevant\x20files\x20found\x20in\x20the\x20repo\x20—\x20nothing\x20to\x20seed.','rsEjn','authFilePath','WikRB','config','zsh','idb','pressKey','mKiil','code','(?=[\x5cs/>])','sort','pending','mcp_config.json','min.','--global','\x0a@ceraph/react-native-mcp\x20uninstall\x20—\x20dry-run\x20preview\x0a','timeoutMs','update','Serial\x20tap\x20failed','reset','Invalid\x20Ceraph\x20endpoint\x20URL:\x20\x22','json','RpOFw','PropertyAssignment','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20','/\x20\x20[','[mcp_servers.react-native-mcp]','installCeraph()\x20is\x20wrapped\x20in\x20a\x20useEffect\x20that\x20also\x20contains\x20other\x20statements\x20(see\x20','Claude\x20Code\x20hook:\x20','getWindowSize','Claude\x20Code\x20hook\x20(.rn-flow-progress.json):\x20already\x20configured','Skipped\x20(auto-injection):\x20','stdout','package.json','reduce','14996366mWfsDg','expo','find','simulator','getFullText','\x20(imageKey=\x22','KDxVE','isArray','Continue\x20with\x20uninstall?','installCeraph()\x20registers\x20Ceraph\x27s\x20dev-only\x20test\x20hooks\x20—\x20runtime-error\x20capture,\x20state\x20reset/reload,\x20keep-awake\x20—\x20at\x20app\x20start.\x20No-op\x20in\x20production\x20builds.','parseError','granted','_layout.jsx','.jpg','Unknown\x20error\x20during\x20findAndTapReturningTree','screen-off','agentMode','removed-entries','POST','12gdRnPn','cacheTtlMs','existing\x20enabledMcpjsonServers\x20in\x20','createSourceFile','No\x20readable\x20graph-relevant\x20files\x20in\x20the\x20repo\x20—\x20nothing\x20to\x20seed.','HGJpi','expo-config-needs-manual','No\x20element\x20found\x20matching\x20field\x20query:\x20','nxpRP','openUrl','10KuEyFl','scheme','no-gitignore','vAjpU','sha256','.cjs','{\x20return\x20','path','cached','height','pluginVersion','installCeraph-with-others','alreadyHasImageKey','function','getImportDeclaration','url','Divided\x20by\x20','Init\x20failed:','realDeviceHookFiredFor','17AyOxEf','\x0a@ceraph/react-native-mcp\x20uninstall\x0a','getName','env-override-simulator','Verify\x20Settings\x20→\x20Display\x20&\x20Brightness\x20→\x20Auto-Lock\x20is\x20set\x20to\x20Never.\x20Otherwise\x20the\x20phone\x20will\x20sleep\x20mid-flow.','AbortError','edge-swipe','PFkgr','getText','isJsxOpeningElement','\x0aSelecting\x20Pro\x20isn\x27t\x20the\x20same\x20as\x20being\x20Pro\x20—\x20AI\x20flow\x20testing\x20unlocks\x20once\x0acheckout\x20completes.\x20Re-run\x20init\x20in\x20a\x20terminal\x20(or\x20use\x20the\x0aceraph_init_select_tier\x20tool)\x20to\x20finish\x20sign-in.\x0a','Unknown\x20error\x20during\x20swipe','getUdid','longPressElement','WDA\x20actions\x20tap\x20failed','wda-reachable','removeElement','utf8','toFixed',')\x20at\x20','@react-native/babel-preset','already-reverted','\x22);\x20}\x20catch\x20{\x20return\x20null;\x20}\x20}\x20})','node_modules','\x20\x20-\x20','listInstalledAppsSimulator','hasCoverSheet','Multiple\x20React\x20Native\x20subpackages\x20detected.\x20Pass\x20--project-dir\x20to\x20target\x20a\x20specific\x20subpackage,\x20e.g.\x20`--project-dir\x20',':\x20already\x20configured','importDropped','yKHoJ','findIndex','listBooted','hGniK','appium-webdriveragent\x20still\x20isn\x27t\x20resolvable\x20after\x20`','sessionBaseUrl','/wda/touchAndHold','removedKeys','isDirectory','Installing','terminateAppViaWDA','AtRph','lockscreen','tapTransport','trim','intervalMs','Working\x20from\x20','getFirstAncestorByKind','scriptAbsPath','env-override-device','apiBase','iproxy\x20bridge\x20started\x20(pid\x20','mcp-clients','\x0aGitignore:','/screenshot','collectVisibleElements','unrelated','qRbAN','bridge','trimEnd','no-mobile-graph','ms).\x20Check\x20your\x20network\x20connection\x20and\x20try\x20again.','112FppQrH','.webp','legacy','\x20\x20//\x20No\x20images\x20registered\x20yet.\x20Drop\x20files\x20into\x20.ceraph/camera-images/\x0a\x20\x20//\x20and\x20re-run\x20`rn_sync_camera_registry`.\x0a}\x0a','server-error','::ffff:7f00:1','179274IyEpyx','pause','addSourceFileAtPath','WDA\x20screenshot\x20failed:\x20','failed','WDA\x20unreachable\x20and\x20no\x20iOS\x20device\x20detected\x20—\x20cannot\x20auto-bridge.','Boot\x20revert\x20returned\x20an\x20unrecognised\x20status\x20shape.','xcrun','mcp.json','udidResolvedAt','\x20—\x20then\x20re-run\x20init\x20(or\x20any\x20flow\x20tool).\x20Your\x20Pro\x20access\x20refreshes\x20automatically.','isJsxAttribute','[::1]','required-env-vars','manual','installStdioToStderr','getOwnPropertyNames','Unknown\x20error\x20during\x20unlock','pickTransport','Restart\x20Claude\x20Code\x20(or\x20your\x20MCP\x20client)\x20to\x20load\x20the\x20Ceraph\x20tools.','\x0aAdd\x20Ceraph\x27s\x20custom\x20URL\x20scheme\x20so\x20deep\x20links\x20(ceraph://reload,\x0aceraph://reset,\x20ceraph://storage)\x20reach\x20the\x20running\x20app.\x0a\x0aiOS\x20—\x20edit\x20ios/<YourApp>/Info.plist:\x0a\x0a\x20\x20<key>CFBundleURLTypes</key>\x0a\x20\x20<array>\x0a\x20\x20\x20\x20<dict>\x0a\x20\x20\x20\x20\x20\x20<key>CFBundleURLName</key>\x0a\x20\x20\x20\x20\x20\x20<string>com.yourcompany.yourapp</string>\x0a\x20\x20\x20\x20\x20\x20<key>CFBundleURLSchemes</key>\x0a\x20\x20\x20\x20\x20\x20<array>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<string>ceraph</string>\x0a\x20\x20\x20\x20\x20\x20</array>\x0a\x20\x20\x20\x20</dict>\x0a\x20\x20</array>\x0a\x0aAndroid\x20—\x20edit\x20android/app/src/main/AndroidManifest.xml\x20inside\x20the\x0aMainActivity\x20<activity>\x20block:\x0a\x0a\x20\x20<intent-filter>\x0a\x20\x20\x20\x20<action\x20android:name=\x22android.intent.action.VIEW\x22\x20/>\x0a\x20\x20\x20\x20<category\x20android:name=\x22android.intent.category.DEFAULT\x22\x20/>\x0a\x20\x20\x20\x20<category\x20android:name=\x22android.intent.category.BROWSABLE\x22\x20/>\x0a\x20\x20\x20\x20<data\x20android:scheme=\x22ceraph\x22\x20/>\x0a\x20\x20</intent-filter>\x0a\x0aThen\x20rebuild\x20the\x20native\x20app\x20(pod\x20install\x20+\x20xcodebuild\x20on\x20iOS,\x20./gradlew\x0aassembleDebug\x20on\x20Android).\x20Existing\x20JS-only\x20reloads\x20do\x20not\x20pick\x20up\x0anative\x20config\x20changes.\x0a','disableAutoLock','route','Unsupported\x20pressKey:\x20','signal','once','labelledBack','no-profile','activateApp','purgeImages','Resolution\x20failed\x20for\x20query\x20at\x20index\x20','App.tsx','stat','deleted-file','boot','webBaseUrl','npx','bun.lock','stop','Unknown\x20error\x20during\x20typeIntoField','already-running','Codex:\x20already\x20configured','\x20Some\x20files\x20could\x20not\x20be\x20restored:\x20','_registry.ts','WjvIP','screen','bare-rn','missing-dir','Opening\x20browser\x20to\x20sign\x20in…','shortVersionString','x:\x20(','Rskna','export\x20','padEnd','multi','OsEyK','isImportSpecifier','rename','\x20out\x20of\x20range.\x20Found\x20','scriptsLeftAlone','Unable\x20to\x20determine\x20device\x20lock\x20state.\x20Make\x20sure\x20the\x20device\x20is\x20unlocked\x20and\x20the\x20screen\x20is\x20on,\x20then\x20re-run\x20the\x20flow.','line','toLowerCase','\x20(dynamic\x20Expo\x20config)\x20—\x20we\x20can\x27t\x0asafely\x20auto-edit\x20a\x20JS/TS\x20file.\x20Add\x20Ceraph\x27s\x20URL\x20scheme\x20manually:\x0a\x0a\x20\x20export\x20default\x20({\x20config\x20})\x20=>\x20({\x0a\x20\x20\x20\x20...config,\x0a\x20\x20\x20\x20scheme:\x20Array.isArray(config.scheme)\x0a\x20\x20\x20\x20\x20\x20?\x20[...config.scheme,\x20\x22ceraph\x22]\x0a\x20\x20\x20\x20\x20\x20:\x20config.scheme\x0a\x20\x20\x20\x20\x20\x20\x20\x20?\x20[config.scheme,\x20\x22ceraph\x22]\x0a\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x22ceraph\x22,\x0a\x20\x20\x20\x20//\x20...\x20rest\x20of\x20your\x20expo\x20config\x0a\x20\x20});\x0a\x0aThen\x20re-run\x20`expo\x20prebuild\x20--clean`\x20if\x20you\x27ve\x20ejected,\x20or\x20just\x0arestart\x20the\x20dev\x20client.\x0a','devicectlAvailable','getDefaultImport','endsWith','Test\x20images:\x20call\x20`ceraph_add_camera_image`\x20(writes\x20+\x20auto-syncs\x20the\x20registry),\x20or\x20drop\x20files\x20into\x20','/session/','shell','@ceraph/react-native-mcp','ms:\x20','severity','FileChanged','resolve','XybmE','expo-json-added','\x20(before\x20reanimated)','/actions','Failed\x20to\x20spawn\x20','filter','revertGitignore','totalCount','#\x20End\x20Ceraph\x20signal\x20host','now','ignore','key',',\x20ceraph])','wda','\x20(expected\x20an\x20object).','packages','tapChain','revertPackage','expo-camera','catch','.mcp.json','suggestedKey','bSJXu','469cRGOCr','statusCode','spawnRemove','/cli-auth','POSITIVE_INFINITY','remove','target-selected','.vscode','base64','keys','Pro\x20selected.\x0a','isAvailable','address','.\x20Fix\x20the\x20error\x20above\x20and\x20re-run\x20`npx\x20@ceraph/react-native-mcp\x20uninstall`.','/wda/lock','isJsxSelfClosingElement','babel-config','.gemini','Claude\x20Code\x20hook\x20(.rn-errors.json):\x20already\x20configured','assertNotVisible','Skipped\x20—\x20no\x20required\x20env\x20vars\x20declared.','token','/\x20and\x20call\x20`rn_sync_camera_registry`\x20to\x20regenerate.','Unknown\x20error\x20during\x20tap','tapAndVerify','verifySelector','VtAOg','pnpm-workspace.yaml','stdin','protocol','@ceraph/react-native-mcp/babel-plugin','isFile','Ceraph\x20server\x20returned\x20malformed\x20JSON\x20for\x20','Unknown\x20error\x20during\x20getSource','\x20screen(s),\x20','isNoSubstitutionTemplateLiteral','listener','wdaFetch','absPath','dryRun','includes','already-handled','app.json','imageKey','en0','EaviZ','pnpm-lock.yaml','NRoTR','#\x20Ceraph\x20camera\x20test\x20images\x0a\x0aPer-screen\x20test\x20images\x20for\x20`<CeraphCamera\x20/>`\x20from\x0a`@ceraph/react-native-mcp/shim`.\x20The\x20filename\x20(without\x20extension)\x20is\x0athe\x20imageKey\x20you\x20pass\x20on\x20the\x20JSX\x20tag.\x0a\x0a##\x20Three\x20ways\x20to\x20wire\x20a\x20camera\x0a\x0a`<CeraphCamera\x20/>`\x20(no\x20`imageKey`)\x20—\x20uninitialized.\x20Falls\x20back\x20to\x20a\x0abundled\x201024x1024\x20black\x20PNG\x20that\x20ships\x20with\x20the\x20package,\x20so\x20the\x20screen\x0arenders.\x20The\x20MCP\x27s\x20`ceraph_doctor`\x20lists\x20these\x20as\x20info\x20findings\x20so\x20an\x0aAI\x20assistant\x20can\x20prompt\x20you\x20to\x20make\x20a\x20deliberate\x20choice.\x20Pick\x20from:\x0a\x0a1.\x20`<CeraphCamera\x20imageKey=\x22default\x22\x20/>`\x20—\x20explicit\x20acknowledgment\x20of\x0a\x20\x20\x20the\x20black\x20PNG.\x20Right\x20answer\x20for\x20most\x20form\x20/\x20upload\x20/\x20permission\x0a\x20\x20\x20flows\x20where\x20the\x20image\x20content\x20doesn\x27t\x20matter.\x0a2.\x20`<CeraphCamera\x20imageKey=\x22profile\x22\x20/>`\x20—\x20a\x20specific\x20test\x20image\x20you\x0a\x20\x20\x20provide\x20(this\x20folder).\x20Drop\x20`profile.jpg`\x20(or\x20`.png`\x20/\x20`.webp`\x20/\x0a\x20\x20\x20`.heic`)\x20here.\x20The\x20agent\x20can\x20write\x20the\x20file\x20for\x20you\x20via\x0a\x20\x20\x20`ceraph_add_camera_image`.\x0a3.\x20`<CeraphCamera\x20imageKey=\x22@runtime\x22\x20/>`\x20—\x20runtime\x20control.\x20The\x20flow\x0a\x20\x20\x20planner\x20picks\x20the\x20image\x20per-step\x20at\x20test\x20time.\x20Use\x20when\x20one\x20camera\x0a\x20\x20\x20screen\x20feeds\x20different\x20scenarios\x20across\x20multiple\x20flows.\x0a\x0a##\x20Naming\x0a\x0aLowercase\x20+\x20hyphen-separated,\x20descriptive\x20of\x20what\x20the\x20image\x20represents:\x0a\x0a-\x20`profile.jpg`\x20—\x20face\x20photo\x20for\x20a\x20profile\x20picture\x20screen\x0a-\x20`id-card.png`\x20—\x20government-issued\x20ID\x20for\x20a\x20KYC\x20scan\x20screen\x0a-\x20`product-photo.jpg`\x20—\x20a\x20product\x20image\x20for\x20an\x20upload\x20screen\x0a\x0aSupported\x20extensions:\x20`.jpg`,\x20`.jpeg`,\x20`.png`,\x20`.webp`,\x20`.heic`.\x0aExtension\x20priority\x20on\x20collision:\x20jpg\x20>\x20jpeg\x20>\x20png\x20>\x20webp\x20>\x20heic.\x0a\x0a##\x20Workflow\x0a\x0a1.\x20Drop\x20the\x20image\x20into\x20this\x20folder\x20with\x20the\x20right\x20filename.\x0a2.\x20Reference\x20it\x20on\x20the\x20tag:\x0a\x20\x20\x20```tsx\x0a\x20\x20\x20import\x20{\x20CeraphCamera\x20}\x20from\x20\x22@ceraph/react-native-mcp/shim\x22;\x0a\x20\x20\x20<CeraphCamera\x20imageKey=\x22profile\x22\x20/>\x0a\x20\x20\x20```\x0a3.\x20Regenerate\x20the\x20registry:\x20call\x20the\x20MCP\x20tool\x0a\x20\x20\x20`rn_sync_camera_registry`,\x20or\x20just\x20call\x20`ceraph_doctor`\x20—\x20it\x0a\x20\x20\x20syncs\x20the\x20registry\x20automatically.\x0a4.\x20In\x20`App.tsx`\x20or\x20your\x20root\x20layout\x20(once):\x0a\x20\x20\x20```tsx\x0a\x20\x20\x20import\x20{\x20installCeraph\x20}\x20from\x20\x22@ceraph/react-native-mcp/shim\x22;\x0a\x20\x20\x20useEffect(()\x20=>\x20{\x20installCeraph();\x20},\x20[]);\x0a\x20\x20\x20```\x0a\x20\x20\x20`installCeraph()`\x20loads\x20the\x20generated\x20registry\x20from\x0a\x20\x20\x20`./.ceraph/camera-images/_registry`\x20and\x20wires\x20the\x20deep-link\x0a\x20\x20\x20handlers\x20the\x20flow\x20planner\x20uses.\x0a\x0aCommit\x20these\x20images\x20so\x20flows\x20are\x20reproducible\x20across\x20machines\x20and\x20CI.\x0a','home','boolean','getAttributes','Could\x20not\x20reach\x20the\x20Ceraph\x20server.\x20Check\x20your\x20network\x20connection\x20and\x20try\x20again.','Unknown\x20error\x20during\x20openUrl','ttlMs','bad-response','Re-run\x20with\x20--purge-images\x20to\x20delete\x20.ceraph/\x20(camera\x20images,\x20design\x20snapshots,\x20run\x20artifacts).\x20Default\x20leaves\x20them\x20in\x20place\x20so\x20a\x20re-install\x20picks\x20up\x20where\x20you\x20left\x20off.','isDefaultExport','addAttribute','dependencies',')\x20->\x20(','type','DcaBH','0.2.2','info','unlink','_layout.tsx','react-native-mcp','IGirr','malformed','reverted','some','getSource','qvxDL','exec','$1-$2','LMfsg','settingsFilesModified','--project-dir','WebDriverAgent.xcodeproj','Test\x20image\x20registry\x20','projectDir','Which\x20one\x20should\x20init\x20configure?','https://ceraph.dev/#pricing','EVJrZ','removed','zgMVQ','config.toml','finally','bun',':\x20existing\x20mcpServers\x20in\x20','13313835IZevoT','mkdir','could\x20not\x20read\x20the\x20file','Access-Control-Allow-Headers','cachedAt','win32','present','toString','no\x20shell\x20profile','isNaN','SIGKILL','Device\x20is\x20not\x20awake\x20(lockState:\x20','match','setOrientation','detectMonorepo','setSimulatorWdaPort','\x20\x20Mode:\x20\x20\x20\x20live\x20(no\x20--dry-run)\x0a','mobilePro','getNameNode','useEffect','/wda/apps/launch','kind','Index\x20','all','stringify','resolveBranch','simulatorWdaPort','location','replace','<no\x20IP>','getKind','searchElements','text/html;\x20charset=utf-8','XODYI','[::ffff:7f00:1]',',\x20then\x20re-run\x20any\x20flow\x20tool\x20—','//\x20AUTO-GENERATED\x20by\x20@ceraph/react-native-mcp\x20—\x20do\x20not\x20edit\x20by\x20hand.\x0a//\x20Re-run\x20`rn_sync_camera_registry`\x20after\x20adding\x20or\x20removing\x20images.\x0aimport\x20{\x20configureTestImage\x20}\x20from\x20\x22@ceraph/react-native-mcp/shim\x22;\x0a\x0aexport\x20function\x20applyCameraImageRegistry():\x20void\x20{\x0a','Error:\x20--project-dir\x20is\x20not\x20a\x20directory:\x20','remediation','write','finger1','babel.config.js','addArgument','ts-morph','src','xPeTC','WebDriverAgent\x20is\x20not\x20ready\x20(simulator\x20selected,\x20no\x20port\x20captured\x20yet).','IVXtz','sgdTz','Your\x20project\x20uses\x20','HQuRz','WDA\x20tap\x20failed:\x20/actions\x20rejected\x20the\x20tap\x20and\x20legacy\x20/wda/tap/0\x20returned\x20','source','XMwKY','matcher','method','appium-webdriveragent\x20not\x20required\x20for\x20this\x20target.','To\x20add\x20AI\x20flow\x20testing\x20on\x20your\x20real\x20device,\x20re-run\x20init\x20and\x20pick\x20Pro.','accessibilityLabel','keyboard','No\x20element\x20found\x20matching\x20query:\x20','listInstalledApps','file','ls-files','rect','pointer','CFBundleShortVersionString','getClosingElement','ceraphCamerasRemoved','@ceraph/react-native-mcp/shim','Flow\x20intelligence\x20(rn_list_flows\x20/\x20rn_find_flows\x20/\x20rn_test_flows)\x20is\x20a\x20Pro\x20feature\x20—\x20upgrade\x20at\x20https://ceraph.dev/#pricing.\x20If\x20you\x20just\x20upgraded,\x20re-run\x20this\x20—\x20your\x20Pro\x20access\x20refreshes\x20automatically.','isLocked','network-error','addNamedImport','relPath','\x20\x20Project:\x20','not-pro','nextScheme','revert-camera\x20removed\x20imageKey\x20props\x20from\x20','\x20→\x20now\x20[','getBaseUrl','devices','git','.ceraph/last-build-snapshot.json','init-tier.json','\x20file(s):','.ceraph','enableAllProjectMcpServers','getLockState','iXTTl','CpzFr','WDA\x20source\x20failed:\x20','camera-views-unwrapped','Couldn\x27t\x20auto-install\x20appium-webdriveragent\x20(the\x20optional\x20dep\x20the\x20simulator\x20WebDriverAgent\x20builds\x20from).\x20Install\x20it\x20manually\x20with\x20`npm\x20install\x20-D\x20appium-webdriveragent`\x20(or\x20`pnpm\x20add\x20-D\x20appium-webdriveragent`),\x20then\x20re-run\x20doctor.','mHohb','detectBootTarget','unverified','\x22\x20entry.','ScreenManager\x20not\x20provided\x20—\x20cannot\x20query\x20active\x20app\x20via\x20WDA.','revertCeraphDir','\x20(payload\x20was\x20capped\x20at\x20','Unknown\x20error\x20during\x20activateApp','close','targetResolver','tmpHome','installCeraph()\x20wired\x20in\x20','\x20(preview)','qjJsm','totalReplacements','\x20[cached]','\x22;\x0a\x20\x20useEffect(()\x20=>\x20{\x20','forEachDescendant','\x20\x20[WARN]\x20\x20\x20\x20','uWzCX','writtenOrUnchanged','xKDtm','CeraphServerError','getParentIfKind','fileExists','bin','settings.json','\x20<CeraphCamera>\x20component','--agent','state','Already\x20wired\x20—\x20added\x20missing\x20import(s).','aJMyK','simulatorWdaUdid','summary','lpAkn','.cursor','CameraView','.git','lastIndexOf','bundleId','darwin','no-config','screenshot','device','appium-webdriveragent\x20ready\x20—\x20simulator\x20WebDriverAgent\x20can\x20build.','isFunctionExpression','.mjs','\x22$CLAUDE_PROJECT_DIR\x22/.claude/hooks/rn-error-notify.sh','writeFile','Connect\x20your\x20iPhone\x20via\x20USB-C\x20and\x20trust\x20this\x20Mac,\x20then\x20re-run\x20doctor.','claudePreApprovalPreserved','applied','{\x20readTestidConfig:\x20()\x20=>\x20{\x20try\x20{\x20return\x20require(\x22','preferSimulator','maxSwipes','ensureAwake','seamed','Failed\x20to\x20get\x20element\x20tree','getParent','\x20swipes:\x20','113272mACMDd','checkDevicectl','files','success','iproxyManager','then','\x20(missing\x20value)','round','rate-limited','All\x20<CeraphCamera>\x20components\x20have\x20an\x20explicit\x20imageKey\x20(or\x20use\x20a\x20runtime\x20sentinel).','isTTY','Screen\x20Recording\x20permission\x20denied\x20—\x20session\x20video\x20won\x27t\x20record\x20(tests\x20run\x20regardless).\x20Click\x20Allow\x20if\x20the\x20dialog\x20reappears,\x20or\x20grant\x20it\x20manually.','HmUnX','Also\x20purge\x20camera\x20images\x20+\x20snapshots\x20at\x20.ceraph/?','tqzMv','build','Dry-run\x20boot\x20preview\x20failed;\x20re-run\x20without\x20--dry-run\x20to\x20see\x20the\x20real\x20error\x20path.','name','email','Unknown\x20error\x20during\x20tapChain','<unknown>','RdGdA','UDID_TTL_MS','down','EDvOo','App.jsx','githubUser','No\x20real\x20iOS\x20device\x20connected.\x20Connect\x20a\x20device\x20via\x20USB-C\x20and\x20trust\x20this\x20Mac.','deleted','push','Run\x20`iproxy\x208100\x208100\x20-u\x20<udid>`\x20manually\x20to\x20see\x20the\x20full\x20error.','already','indexOf','POST,\x20GET,\x20OPTIONS','installCeraph','wdaFetchAt','\x20(existing\x20imageKey\x20preserved)','--device','map','Skipped\x20—\x20no\x20.ceraph/camera-images/\x20directory.\x20Drop\x20test\x20images\x20there\x20to\x20enable\x20the\x20camera\x20shim.','Missing\x20env\x20var(s):\x20','isExportAssignment','durationMs','tap\x20succeeded\x20but\x20post-tap\x20verify\x20failed:\x20','isImportClause',').\x20WDA\x20base\x20URL:\x20','filesScanned','EsvYG','RefTh','AOAhK','parsed','package','realDeviceHook','\x20exited\x20with\x20code\x20','WDA\x20pressButton\x20failed:\x20','auth.json','isBlock','Failed\x20to\x20get\x20element\x20tree\x20on\x20the\x20pinned\x20session','devicectl','Windsurf','getActiveApp','open','readFile','expo-router','volumeup','Your\x20Ceraph\x20session\x20is\x20no\x20longer\x20valid\x20(the\x20account\x20may\x20have\x20been\x20deleted,\x20or\x20your\x20token\x20expired).\x20Run\x20`npx\x20@ceraph/react-native-mcp\x20init`\x20to\x20sign\x20in\x20again.\x20Your\x20local\x20screenshots\x20and\x20flows\x20are\x20preserved\x20—\x20only\x20the\x20server-side\x20identity\x20needs\x20refreshing.','were\x20not\x20touched\x20in\x20this\x20run.','Unknown\x20error\x20during\x20tapAndVerify','cwd','isExpressionStatement','object','findDeviceAppPid','windsurf','layout','searchParams','Refusing\x20to\x20send\x20your\x20Ceraph\x20token\x20over\x20plaintext\x20HTTP\x20to\x20a\x20non-local\x20host:\x20\x22','\x20files).','value','inflight','added','existing\x20settings\x20at\x20','\x22.\x20Only\x20https://\x20(or\x20http://\x20for\x20localhost\x20/\x20127.0.0.1)\x20endpoints\x20are\x20allowed.','edits','from','Unknown\x20flag(s):\x20','Existing\x20sign-in\x20is\x20from\x20the\x20old\x20GitHub\x20OAuth\x20flow\x20—\x20re-authenticating\x20against\x20the\x20new\x20browser\x20flow.','bundleIdentifier','yes','idbAvailable','YiUFu','.jpeg','Error:\x20--project-dir\x20does\x20not\x20look\x20like\x20an\x20npm/RN\x20project\x20(no\x20package.json\x20at\x20','parse','readPreference','You\x27re\x20set\x20up\x20on\x20Starter\x20—\x20local\x20build,\x20run,\x20and\x20device\x20tools.','kMdfL','TwoSpaces','base64url','JsxElement','width','<CeraphCamera','ceraph-uninstall-mcp-preview-','--yes','Failed\x20to\x20create\x20WDA\x20session:\x20','ENOENT','13MzyzcN','no\x20RN\x20project\x20detected','app.config.ts','preserved','yarn.lock','join','confirm','workingDir','Project\x20cached\x20server-side:\x20','WDA\x20swipe\x20failed:\x20','passedCount','persisted','http://localhost:8100','realDeviceHookInflight','.tsx','importRestored','pingStatus','.\x20Expected\x20\x27','getArguments','application/json','defaultYes','toISOString','label','Unlock\x20the\x20device\x20manually\x20and\x20set\x20Auto-Lock\x20to\x20Never.','Error:\x20--project-dir\x20does\x20not\x20exist:\x20','The\x20`ceraph://`\x20URL\x20scheme\x20isn\x27t\x20registered\x20in\x20the\x20app\x20under\x20test,\x20so\x20this\x20deep\x20link\x20couldn\x27t\x20be\x20delivered.\x20`init`\x20adds\x20the\x20scheme\x20to\x20app.json,\x20but\x20it\x20only\x20lands\x20in\x20the\x20native\x20Info.plist\x20after\x20a\x20rebuild\x20—\x20run\x20`npx\x20expo\x20prebuild`\x20then\x20rebuild/reinstall\x20the\x20dev\x20client\x20(or\x20your\x20EAS/Xcode\x20build),\x20and\x20retry.\x20Tools\x20affected:\x20rn_reset_state,\x20rn_reload,\x20and\x20camera/auth-bypass\x20deep\x20links.','starter','rpetK','outputToStderr','ceraph-dir\x20preview\x20returned\x20an\x20unexpected\x20status;\x20pass\x20--purge-images\x20explicitly\x20to\x20delete\x20.ceraph/.','max','removedLines','question','getDeclarations','--purge-images','README.md','paths','seeded','ceraph-uninstall-gitignore-preview-','laptop-network','auth','SHELL','OElZl','CBbnt','reason','skipInstall'];_0x2223=function(){return _0x31df30;};return _0x2223();}var _0x4ad906,_0xdb8314=_0x4d3071({'src/utils/validate-base-url.ts'(){'use strict';const _0x52577b=_0x5ccc4b;_0x4ad906=new Set(['localhost',_0x52577b(0x4fa),_0x52577b(0x1f1),_0x52577b(0x4bf),_0x52577b(0x2c4),_0x52577b(0x1e4)]);}});async function _0x2cbdae(_0x297603){const _0x28c675=_0x5ccc4b,_0x3c093a=_0x297603['status'];if(_0x3c093a===0x191)return new _0x5de461('account-invalid',0x191,'Your\x20Ceraph\x20session\x20is\x20no\x20longer\x20valid\x20(the\x20account\x20may\x20have\x20been\x20deleted,\x20or\x20your\x20token\x20expired).\x20Run\x20`npx\x20@ceraph/react-native-mcp\x20init`\x20to\x20sign\x20in\x20again.\x20Your\x20local\x20screenshots\x20and\x20flows\x20are\x20preserved\x20—\x20only\x20the\x20server-side\x20identity\x20needs\x20refreshing.');if(_0x3c093a===0x192||_0x3c093a===0x193)return new _0x5de461('tier-gated',_0x3c093a,'Flow\x20intelligence\x20(rn_list_flows\x20/\x20rn_find_flows\x20/\x20rn_test_flows)\x20is\x20a\x20Pro\x20feature\x20—\x20upgrade\x20at\x20https://ceraph.dev/#pricing.\x20If\x20you\x20just\x20upgraded,\x20re-run\x20this\x20—\x20your\x20Pro\x20access\x20refreshes\x20automatically.');if(_0x3c093a===0x1ad)return new _0x5de461(_0x28c675(0x344),0x1ad,_0x28c675(0x3e8));if(_0x3c093a>=0x1f4)return new _0x5de461(_0x28c675(0x1e3),_0x3c093a,'Ceraph\x20server\x20is\x20having\x20a\x20moment\x20(HTTP\x20'+_0x3c093a+_0x28c675(0x46f));let _0x12361a,_0x527209;try{const _0x18d777=await _0x297603[_0x28c675(0x163)]();if(_0x18d777&&typeof _0x18d777==='object'){_0x527209=_0x18d777;const _0xf7b317=_0x18d777,_0x4302a8=typeof _0xf7b317[_0x28c675(0x554)]===_0x28c675(0x40a)&&_0xf7b317[_0x28c675(0x554)]||typeof _0xf7b317[_0x28c675(0x51e)]==='string'&&_0xf7b317['error']||void 0x0;if(_0x4302a8)_0x12361a=_0x4302a8;}}catch{}return new _0x5de461(_0x28c675(0x27e),_0x3c093a,'Ceraph\x20request\x20failed\x20(HTTP\x20'+_0x3c093a+(_0x12361a?':\x20'+_0x12361a:'')+').',void 0x0,_0x527209);}function _0x113b4b(_0x2e69ef){const _0x2369e7=_0x5ccc4b,_0x14693e=_0x2e69ef?.[_0x2369e7(0x1d3)]?.['trim']()||process.env.CERAPH_API_URL?.[_0x2369e7(0x1cd)]()||_0x12d14f;return _0x28ecdc(_0x14693e),_0x14693e[_0x2369e7(0x2be)](/\/+$/,'');}async function _0x5c506c(_0x4100b0,_0xf75112,_0x284360,_0xdd0b8f){const _0x590764=_0x5ccc4b;if(!_0x284360)throw new _0x5de461(_0x590764(0x4aa),0x191,_0x590764(0x37d));const _0x5b4f5a=_0xdd0b8f?.['timeoutMs']??_0x5106c5,_0x2169d0=_0x113b4b(_0xdd0b8f),_0x45dae3=''+_0x2169d0+(_0x4100b0[_0x590764(0x425)]('/')?_0x4100b0:'/'+_0x4100b0),_0x4b8eca=new AbortController(),_0x45eb52=setTimeout(()=>_0x4b8eca['abort'](),_0x5b4f5a);let _0x4f9c41;try{_0x4f9c41=await fetch(_0x45dae3,{'method':_0x590764(0x183),'headers':{'Content-Type':'application/json','Authorization':_0x590764(0x517)+_0x284360[_0x590764(0x3fd)]},'body':JSON[_0x590764(0x2ba)](_0xf75112??{}),'signal':_0x4b8eca[_0x590764(0x1fd)]});}catch(_0x552e0e){const _0x4316c5=_0x552e0e;if(_0x4316c5?.[_0x590764(0x34d)]==='AbortError')throw new _0x5de461('network-error',0x0,'Could\x20not\x20reach\x20the\x20Ceraph\x20server\x20(request\x20timed\x20out\x20after\x20'+_0x5b4f5a+_0x590764(0x1de),_0x552e0e);throw new _0x5de461(_0x590764(0x2ea),0x0,_0x590764(0x27b),_0x552e0e);}finally{clearTimeout(_0x45eb52);}if(!_0x4f9c41['ok']){if(_0x590764(0x164)!=='RpOFw'){'use strict';_0x4126b4(),_0x51ddfb(),_0x27e6ec(),_0x567b06=['app','src',_0x590764(0x48f)],_0x4fc6d0=new _0x4ecb60([_0x590764(0x3b3),'.jsx']),_0x1c8961=new _0x11806f(['node_modules',_0x590764(0x42c),'build','.git','.ceraph',_0x590764(0x4c6),'.next',_0x590764(0x4b3),'android']);}else throw await _0x2cbdae(_0x4f9c41);}let _0x3a5c62;try{_0x3a5c62=await _0x4f9c41['json']();}catch(_0x44318d){const _0x1fa175=_0x44318d;throw new _0x5de461('bad-response',_0x4f9c41[_0x590764(0x416)],_0x590764(0x267)+_0x4100b0+':\x20'+(_0x1fa175?.[_0x590764(0x554)]??String(_0x44318d)),_0x44318d);}if(!_0x3a5c62||typeof _0x3a5c62!==_0x590764(0x382)||Array[_0x590764(0x178)](_0x3a5c62))throw new _0x5de461(_0x590764(0x27e),_0x4f9c41['status'],_0x590764(0x522)+_0x4100b0+_0x590764(0x23e));return _0x3a5c62;}var _0x12d14f,_0x5106c5,_0x5de461,_0x142a1c=_0x4d3071({'src/api-client.ts'(){'use strict';const _0xf79348=_0x5ccc4b;_0xdb8314(),_0x12d14f='https://ceraph.dev/api/mcp',_0x5106c5=0x7530,_0x5de461=class extends Error{[_0xf79348(0x2b7)];['status'];['agentMessage'];[_0xf79348(0x56b)];constructor(_0x51534f,_0x305955,_0x1b9de9,_0x98af45,_0x2ee44e){const _0x552eaf=_0xf79348;super(_0x1b9de9),this['name']=_0x552eaf(0x316),this[_0x552eaf(0x2b7)]=_0x51534f,this['status']=_0x305955,this[_0x552eaf(0x4e5)]=_0x1b9de9;if(_0x98af45!==void 0x0)this['cause']=_0x98af45;if(_0x2ee44e!==void 0x0)this['details']=_0x2ee44e;}};}});import{promises as _0x349d24}from'fs';import{join as _0x34495e}from'path';async function _0x3c5083(_0x3baef7,_0xf82c74={}){const _0x3125bd=_0x5ccc4b,_0x8e2244=_0xf82c74['fetcher']??_0x5c506c,_0x547184=_0xf82c74['listFiles']??_0x5bd14e,_0x4170a5=_0xf82c74['resolveRepo']??(async _0xb1e11=>{try{return await _0x3cd658(_0xb1e11);}catch{return null;}}),_0x45a7c6=_0xf82c74['resolveSha']??_0x3aa0a3,_0x3283dd=_0xf82c74[_0x3125bd(0x2bb)]??_0x2fb97f,_0x309c03=_0xf82c74[_0x3125bd(0x37a)]??(_0xa775a1=>_0x349d24['readFile'](_0xa775a1,'utf-8')),_0x28032d=await _0x4170a5(_0x3baef7[_0x3125bd(0x3ac)])['catch'](()=>null);if(!_0x28032d)return{'status':'skipped','reason':_0x3125bd(0x3ea),'message':'No\x20GitHub\x20remote\x20detected\x20—\x20graph\x20cache\x20seed\x20skipped.\x20First\x20rn_test_*\x20call\x20will\x20build\x20the\x20graph\x20from\x20scratch.'};const _0x105c23=await _0x3283dd(_0x3baef7['workingDir']),_0x806550=await _0x45a7c6(_0x3baef7[_0x3125bd(0x3ac)],'HEAD');if(_0x806550==='HEAD'||_0x806550[_0x3125bd(0x471)]<0x7||_0x105c23==='unknown')return{'status':'skipped','reason':'no-git-repo','message':'Not\x20in\x20a\x20git\x20repo\x20(or\x20no\x20HEAD\x20commit\x20yet)\x20—\x20graph\x20cache\x20seed\x20skipped.\x20First\x20rn_test_*\x20call\x20will\x20build\x20the\x20graph\x20from\x20scratch.'};const _0x559818=await _0x547184(_0x3baef7['workingDir']);if(_0x559818['length']===0x0)return{'status':'skipped','reason':'no-graph-files','message':_0x3125bd(0x14d)};const _0x9f5408={};let _0x17d37b=![],_0x44122e=0x0;for(const _0x4f1cc2 of _0x559818){if(!_0x3cc824(_0x4f1cc2))continue;if(Object[_0x3125bd(0x250)](_0x9f5408)['length']>=_0x449e5d){_0x17d37b=!![];break;}let _0x42dffb;try{'XvkZS'==='XvkZS'?_0x42dffb=await _0x309c03(_0x34495e(_0x3baef7[_0x3125bd(0x3ac)],_0x4f1cc2)):_0x34ad69(_0x46b71f('\x20\x20-\x20'+_0x2155da['relPath']+':'+_0x2da3a1['line']+_0x3125bd(0x46c)+(_0x1b158e[_0x3125bd(0x19a)]?_0x3125bd(0x360):'')));}catch{continue;}const _0x4fdc81=Buffer['byteLength'](_0x42dffb);if(_0x4fdc81>_0x213b27)continue;if(_0x44122e+_0x4fdc81>_0xb70397){_0x17d37b=!![];break;}_0x9f5408[_0x4f1cc2]=_0x42dffb,_0x44122e+=_0x4fdc81;}if(Object[_0x3125bd(0x250)](_0x9f5408)['length']===0x0)return{'status':'skipped','reason':'no-graph-files','message':_0x3125bd(0x188)};let _0xced0d2;_0x9f5408['app.json']&&(_0xced0d2=_0x9f5408[_0x3125bd(0x271)]);try{const _0x9c9dd4=await _0x8e2244('/rn-init-graph',{'repoOwner':_0x28032d[_0x3125bd(0x499)],'repoName':_0x28032d['repo'],'branch':_0x105c23,'headSha':_0x806550,'appFiles':_0x9f5408,..._0xced0d2?{'appJsonContent':_0xced0d2}:{}},_0x3baef7[_0x3125bd(0x3cd)]);if(_0x9c9dd4['ok']&&_0x9c9dd4['flavor']&&typeof _0x9c9dd4[_0x3125bd(0x3e2)]==='number'&&typeof _0x9c9dd4['layoutCount']===_0x3125bd(0x429))return{'status':_0x3125bd(0x3ca),'flavor':_0x9c9dd4['flavor'],'screenCount':_0x9c9dd4[_0x3125bd(0x3e2)],'layoutCount':_0x9c9dd4[_0x3125bd(0x51b)],'bundleId':_0x9c9dd4['bundleId']??null,'persisted':_0x9c9dd4['persisted']===!![]};return{'status':_0x3125bd(0x507),'reason':_0x3125bd(0x1e3),'message':_0x3125bd(0x4ce)};}catch(_0x18162c){if(_0x18162c instanceof _0x5de461){const _0x24c904=_0x18162c['kind']===_0x3125bd(0x27e)&&_0x18162c[_0x3125bd(0x4e5)]['includes'](_0x3125bd(0x1dd))?'no-mobile-graph':'server-error';return{'status':_0x3125bd(0x507),'reason':_0x24c904,'message':_0x17d37b?_0x18162c[_0x3125bd(0x4e5)]+_0x3125bd(0x306)+_0x449e5d+_0x3125bd(0x388):_0x18162c[_0x3125bd(0x4e5)]};}return{'status':_0x3125bd(0x507),'reason':_0x3125bd(0x1e3),'message':_0x18162c instanceof Error?_0x18162c['message']:'Graph\x20cache\x20seed\x20failed\x20(unknown\x20error).'};}}var _0x213b27,_0x449e5d,_0xb70397,_0x21caea=_0x4d3071({'src/init/graph-seed.ts'(){'use strict';_0x4a6690(),_0x5f5292(),_0x142a1c(),_0x213b27=0x7a120,_0x449e5d=0x1f4,_0xb70397=0x8*0x400*0x400;}});import{promises as _0x1212a1}from'fs';import{homedir as _0x4063a9}from'os';import{join as _0x4d84bc,dirname as _0x588577}from'path';function _0x490036(){const _0x4a7e7=_0x5ccc4b;return _0x4d84bc(_0x4063a9(),'.ceraph',_0x4a7e7(0x2f6));}async function _0x13b611(_0x37ea52,_0x2e8206,_0x403c0b=Date['now']){const _0x19f37b=_0x5ccc4b,_0x39d856=_0x2e8206??_0x490036(),_0x316eaf={'tier':_0x37ea52,'selectedAt':new Date(_0x403c0b())['toISOString']()};return await _0x1212a1[_0x19f37b(0x2a3)](_0x588577(_0x39d856),{'recursive':!![],'mode':0x1c0}),await _0x1212a1[_0x19f37b(0x330)](_0x39d856,JSON['stringify'](_0x316eaf,null,0x2)+'\x0a','utf-8'),_0x316eaf;}var _0x5cecd5=_0x4d3071({'src/init/tier-store.ts'(){'use strict';}});function _0x4e332a(_0x4a9c5b){const _0x117ab3=_0x5ccc4b,_0x55149d=_0x4a9c5b['apiBase']?.['trim']()||process.env.CERAPH_API_URL?.[_0x117ab3(0x1cd)]()||_0x4a9ac6;return _0x55149d[_0x117ab3(0x2be)](/\/+$/,'')+_0x117ab3(0x4a1);}async function _0x1fe526(_0x524573={}){const _0x493373=_0x5ccc4b;return _0xe58b1b(_0x524573,_0x493373(0x2b3));}async function _0xe58b1b(_0x59ea2f,_0xcd189d){const _0x1557a6=_0x5ccc4b,_0x59650c=_0x59ea2f[_0x1557a6(0x27d)]??_0x3fdf51,_0x1d56f8=_0x59ea2f['now']??Date['now'],_0x385690=_0x59ea2f['loadAuth']??_0x1ddc8c,_0xc2d8f7=_0x59ea2f['fetcher']??((_0xf3c731,_0x115f23)=>globalThis[_0x1557a6(0x51f)](_0xf3c731,_0x115f23)),_0x573f23=()=>_0xcd189d==='mobilePro'?_0x28aa77:_0x21e1e4,_0x91cc0f=_0x165ff5=>{const _0x5e5370=_0x1557a6;if(_0xcd189d===_0x5e5370(0x2b3))_0x28aa77=_0x165ff5;else _0x21e1e4=_0x165ff5;},_0xb2fb45=_0x573f23();if(_0xb2fb45&&_0x1d56f8()-_0xb2fb45[_0x1557a6(0x543)]<_0x59650c)return _0xb2fb45[_0x1557a6(0x389)];let _0x4c1032=![];try{const _0x1140c8=await _0x385690();if(!_0x1140c8?.['accessToken'])return _0x91cc0f({'value':![],'fetchedAt':_0x1d56f8()}),![];const _0x4f5026=_0x4e332a(_0x59ea2f),_0x4eddfe=await _0xc2d8f7(_0x4f5026,{'headers':{'Authorization':'Bearer\x20'+_0x1140c8[_0x1557a6(0x3fd)],'Accept':_0x1557a6(0x3b8)}});if(!_0x4eddfe['ok'])return _0x91cc0f({'value':![],'fetchedAt':_0x1d56f8()}),![];const _0x3e9ade=await _0x4eddfe['json']();_0x4c1032=_0x3e9ade!==null&&typeof _0x3e9ade==='object'&&_0x3e9ade[_0xcd189d]===!![];}catch{if('cbCJW'!=='EKeTo')_0x4c1032=![];else{const _0x49fccc=_0xc26aa9(_0x580b10)['replace'](/\.(tsx|jsx)$/i,''),_0x2a8685=_0x32d076(_0x830dcc(_0x2c48c1)),_0x254108=new _0x3bf7c4([_0x1557a6(0x519),_0x1557a6(0x3d4),'screen','route',_0x1557a6(0x385)]),_0x4c2fba=_0x254108['has'](_0x49fccc['toLowerCase']())?_0x2a8685:_0x49fccc,_0x212ac3=_0x4c2fba[_0x1557a6(0x2be)](/([a-z0-9])([A-Z])/g,_0x1557a6(0x292))['toLowerCase']()[_0x1557a6(0x2be)](/[^a-z0-9]+/g,'-')['replace'](/^-+|-+$/g,'');return _0x212ac3['length']>0x0?_0x212ac3:_0x1557a6(0x4eb);}}return _0x91cc0f({'value':_0x4c1032,'fetchedAt':_0x1d56f8()}),_0x4c1032;}var _0x3fdf51,_0x21e1e4,_0x28aa77,_0x4a9ac6,_0x20405c=_0x4d3071({'src/check-pro-tier.ts'(){'use strict';_0x553117(),_0x3fdf51=0x5*0x3c*0x3e8,_0x21e1e4=null,_0x28aa77=null,_0x4a9ac6='https://ceraph.dev/api/mcp';}});import{spawn as _0x4de1a9}from'child_process';import{join as _0x476c50}from'path';async function _0x307102(){return _0x1ddc8c();}function _0x387e2e(_0x4bc839){return new Promise(_0x2cc3c8=>{const _0x4ac696=_0x4997,_0x25773b=_0x4de1a9(_0x4bc839['bin'],_0x4bc839[_0x4ac696(0x4e2)],{'cwd':_0x4bc839['cwd'],'stdio':_0x4bc839[_0x4ac696(0x491)]?['ignore',0x2,0x2]:'inherit'});_0x25773b['on'](_0x4ac696(0x51e),()=>_0x2cc3c8({'exitCode':0x7f})),_0x25773b['on']('exit',_0x151adb=>_0x2cc3c8({'exitCode':_0x151adb??0x1}));});}function _0x39cb6d(_0x2c916c){return'\x20\x20'+_0x2c916c+'\x0a';}async function _0x105c3d(_0x3f98f2,_0x537772={}){const _0x4fb185=_0x5ccc4b,_0x3c6aa0=_0x15480b=>_0x136036(_0x15480b,_0x537772),_0x3c09ff=()=>{_0x3c6aa0('\x0a');},_0x31dd15=await _0x42d2ca(_0x3f98f2,_0x537772),_0xfdd9c3=await _0x2fc139(_0x31dd15),_0x258f99=await _0x58f9a6(_0x31dd15);let _0x1f43de=_0x258f99;if(!_0x537772[_0x4fb185(0x3d2)]){_0x3c09ff();const _0x4c0883=_0x1a9f91(_0xfdd9c3,'@ceraph/react-native-mcp@latest');_0x3c6aa0(_0x39cb6d((_0x258f99?'Updating':_0x4fb185(0x1c8))+_0x4fb185(0x550)+_0xfdd9c3+')…'));const _0x2dec27=_0x537772['installPackage']??_0x387e2e,_0x6ddd7=await _0x2dec27({'bin':_0x4c0883[_0x4fb185(0x319)],'args':_0x4c0883[_0x4fb185(0x4e2)],'cwd':_0x31dd15,'stdioToStderr':_0x537772[_0x4fb185(0x1f4)]===!![]});if(_0x6ddd7['exitCode']!==0x0)throw new Error(_0xfdd9c3+'\x20install\x20exited\x20with\x20code\x20'+_0x6ddd7['exitCode']+'.\x20Fix\x20the\x20error\x20above\x20and\x20re-run\x20`npx\x20@ceraph/react-native-mcp\x20init`.');_0x1f43de=!![];}let _0x4a8e48;if(_0x537772['tier'])_0x4a8e48=_0x537772['tier'];else{_0x3c09ff(),_0x3c6aa0(_0x39cb6d('More\x20about\x20the\x20plans\x20→\x20'+_0x3a9fdf(_0x21cb85))),_0x3c6aa0('\x0a');const _0x11a829=await _0x5fa9d4(_0x31a105,_0x8dea1,_0x537772);_0x4a8e48=_0x11a829===0x1?_0x4fb185(0x55d):_0x4fb185(0x3bf);}const _0x305cce=_0x537772['writeTier']??(_0x2c9075=>_0x13b611(_0x2c9075)['then'](()=>void 0x0));await _0x305cce(_0x4a8e48)['catch'](()=>void 0x0);const _0x28c875=_0x537772['loadAuth']??_0x307102;let _0x153c6c=null,_0x53ff9f=null;_0x3c09ff();if(_0x4a8e48===_0x4fb185(0x3bf))_0x3c6aa0(_0x39cb6d('Starter\x20selected\x20—\x20local\x20build,\x20run,\x20and\x20device\x20tools.\x20No\x20sign-in\x20needed.'));else{const _0x143f69=await _0x28c875(),_0x34acd6=_0x143f69!==null&&(_0x143f69[_0x4fb185(0x356)]['id']!==0x0||_0x143f69[_0x4fb185(0x356)]['login']!=='');_0x153c6c=_0x143f69;if(_0x143f69&&!_0x34acd6)_0x3c6aa0(_0x39cb6d(_0x143f69[_0x4fb185(0x34e)]?'Signed\x20in\x20as\x20'+_0x143f69['email']+_0x4fb185(0x30f):'Signed\x20in\x20[cached]'));else{if(_0x34acd6){if(_0x4fb185(0x274)!==_0x4fb185(0x322))_0x3c6aa0(_0x39cb6d(_0x4fb185(0x391)));else{const _0x2a73d7=_0x5377a5()[_0x4fb185(0x2be)](/\/+$/,''),_0xffe0f5=_0x2f3c17[_0x4fb185(0x4a3)]===_0x4fb185(0x55d)?'?intent=pro':'';return _0x2a73d7+_0x4fb185(0x24a)+_0xffe0f5;}}_0x3c6aa0(_0x39cb6d(process.env.CERAPH_AUTH_TOKEN?.[_0x4fb185(0x1cd)]()?_0x4fb185(0x147):_0x4fb185(0x215)));const _0x3a3691=_0x537772['authenticate']??_0x4b5cc2;_0x153c6c=await _0x3a3691(),_0x3c6aa0(_0x39cb6d(_0x153c6c['email']?'Signed\x20in\x20as\x20'+_0x153c6c['email']:_0x4fb185(0x56c)));}const _0x321983=_0x537772['checkMobilePro']??_0x1fe526,_0x2bccf0=await _0x321983()['catch'](()=>![]);_0x53ff9f=_0x2bccf0?_0x4fb185(0x567):'pending',!_0x2bccf0?_0x3c6aa0(_0x39cb6d('Pro\x20selected.\x20To\x20start\x20AI\x20flow\x20testing,\x20complete\x20checkout\x20at\x20'+_0x3a9fdf(_0x21cb85)+_0x4fb185(0x1ef))):_0x3c6aa0(_0x39cb6d(_0x4fb185(0x404)));}const _0x1a92cd=await _0x1a3350(_0x31dd15),_0xcdd524=new Map();let _0xd5be6f={'filesEdited':[],'totalReplacements':0x0};_0x3c09ff();if(_0x1a92cd['edits'][_0x4fb185(0x471)]===0x0)_0x3c6aa0(_0x39cb6d('No\x20<CameraView>\x20usages\x20found\x20in\x20app/,\x20src/,\x20screens/,\x20App.tsx'));else{_0x3c6aa0(_0x39cb6d(_0x4fb185(0x462)+_0x1a92cd[_0x4fb185(0x38e)][_0x4fb185(0x471)]+'\x20<CameraView>\x20usage(s)\x20across\x20'+_0x1a92cd[_0x4fb185(0x36a)]+_0x4fb185(0x2f7)));for(const _0xa019f7 of _0x1a92cd[_0x4fb185(0x38e)]){_0x3c6aa0(_0x39cb6d('\x20\x20-\x20'+_0xa019f7[_0x4fb185(0x2ec)]+':'+_0xa019f7['line']+'\x20→\x20<CeraphCamera\x20/>'+(_0xa019f7['alreadyHasImageKey']?'\x20(existing\x20imageKey\x20preserved)':'')));}_0x3c6aa0(_0x39cb6d('<CeraphCamera>\x20is\x20a\x20drop-in\x20for\x20<CameraView>\x20(same\x20props):\x20during\x20a\x20flow\x20run\x20it\x20returns\x20your\x20test\x20image;\x20in\x20a\x20production\x20build\x20it\x20renders\x20the\x20real\x20camera.'));const _0x3401fb=await _0x98335a(_0x4fb185(0x492)+_0x1a92cd['edits'][_0x4fb185(0x471)]+_0x4fb185(0x424),{..._0x537772,'defaultYes':!![]});_0x3401fb?_0xd5be6f=await _0x385d29(_0x31dd15,_0x1a92cd[_0x4fb185(0x38e)],_0xcdd524,_0x537772,{'omitImageKey':!![]}):_0x3c6aa0(_0x39cb6d('Skipped\x20<CameraView>\x20rewrite.\x20Re-run\x20`npx\x20@ceraph/react-native-mcp\x20init`\x20to\x20apply.'));}const _0x38feaa=await _0x5bc2f4(_0x31dd15);let _0x3c3367={'applied':![],'target':_0x38feaa};const _0x2ad452=_0x38feaa?await _0xbcad8e(_0x38feaa[_0x4fb185(0x47a)]):'none';_0x3c09ff();if(!_0x38feaa)_0x3c6aa0(_0x39cb6d(_0x4fb185(0x4dd)));else{if(_0x2ad452===_0x4fb185(0x338))_0x3c6aa0(_0x39cb6d('installCeraph()\x20already\x20wired\x20in\x20'+_0x51f8ce(_0x31dd15,_0x38feaa[_0x4fb185(0x47a)]))),_0x3c3367={'applied':![],'target':_0x38feaa,'reason':_0x4fb185(0x411)};else{if(_0x4fb185(0x57f)!=='soKaG')return _0x48f2b9(_0x272ac+_0x4fb185(0x2a1)+_0x173e25+'\x20is\x20not\x20a\x20JSON\x20object\x20(got\x20'+(_0x2c705e[_0x4fb185(0x178)](_0x578f17)?'array':typeof _0xfb9e53)+_0x4fb185(0x562)),![];else{const _0xb5531e=_0x2ad452==='bare'?'Upgrade':'Wire';_0x3c6aa0(_0x39cb6d(_0x4fb185(0x17a)));const _0x144984=await _0x98335a(_0xb5531e+_0x4fb185(0x474)+_0x51f8ce(_0x31dd15,_0x38feaa[_0x4fb185(0x47a)])+'?',{..._0x537772,'defaultYes':!![]});if(_0x144984){const _0x1eede6=await _0x1d6eff(_0x38feaa);try{const _0x5e824e=await _0x1b70d4(_0x38feaa);_0x3c3367={'applied':_0x5e824e[_0x4fb185(0x333)],'target':_0x38feaa,'reason':_0x5e824e[_0x4fb185(0x3d1)]},_0x5e824e['applied']?_0x3c6aa0(_0x39cb6d(_0x4fb185(0x30b)+_0x51f8ce(_0x31dd15,_0x38feaa[_0x4fb185(0x47a)]))):_0x3c6aa0(_0x39cb6d(_0x4fb185(0x16d)+(_0x5e824e[_0x4fb185(0x3d1)]??'unknown\x20reason')));}catch(_0x46831f){if(_0x1eede6!=null)await _0x1b4fb8(_0x38feaa,_0x1eede6);throw _0x46831f;}}else _0x3c6aa0(_0x39cb6d('Skipped\x20installCeraph()\x20injection.\x20Re-run\x20`npx\x20@ceraph/react-native-mcp\x20init`\x20to\x20wire\x20it.'));}}}let _0x40bf0d=null;const _0xcd52ad=_0x537772['ensureUrlScheme']??_0x24cc98,_0x393161=await _0xcd52ad(_0x31dd15);_0x40bf0d=_0x393161;if(_0x393161[_0x4fb185(0x2b7)]!==_0x4fb185(0x4af))_0x3c09ff();switch(_0x393161['kind']){case _0x4fb185(0x231):{const _0x179e14=_0x393161[_0x4fb185(0x483)],_0x506772=_0x51f8ce(_0x31dd15,_0x393161['path']);if(_0x179e14===void 0x0)_0x3c6aa0(_0x39cb6d(_0x4fb185(0x455)+_0x506772+'\x20scheme\x20to\x20ceraph://'));else{const _0x16d3d0=Array['isArray'](_0x179e14)?_0x179e14[_0x4fb185(0x3aa)](',\x20'):_0x179e14;_0x3c6aa0(_0x39cb6d('Added\x20ceraph://\x20to\x20your\x20'+_0x506772+'\x20scheme\x20(kept\x20your\x20existing\x20'+_0x16d3d0+_0x4fb185(0x2f1)+_0x16d3d0+_0x4fb185(0x23c)));}break;}case'expo-json-already-registered':_0x3c6aa0(_0x39cb6d('ceraph://\x20URL\x20scheme\x20already\x20registered\x20in\x20'+_0x51f8ce(_0x31dd15,_0x393161['path'])));break;case _0x4fb185(0x18a):_0x3c6aa0(_0x39cb6d('Detected\x20'+_0x51f8ce(_0x31dd15,_0x393161[_0x4fb185(0x195)])+'\x20(dynamic\x20Expo\x20config).')),_0x3c6aa0(_0x4b56ef(_0x51f8ce(_0x31dd15,_0x393161['path'])));break;case'bare-rn-needs-manual':_0x3c6aa0(_0x39cb6d('Detected\x20bare\x20React\x20Native\x20project\x20(ios/\x20and/or\x20android/).')),_0x3c6aa0(_0x140dde());break;case'no-rn-project':break;}let _0x2513a3=null;const _0x4666e2=_0x537772['ensureBabelPlugin']??_0x14e676,_0x1528db=await _0x4666e2(_0x31dd15);_0x2513a3=_0x1528db,_0x3c09ff();switch(_0x1528db[_0x4fb185(0x2b7)]){case _0x4fb185(0x38b):_0x3c6aa0(_0x39cb6d('Wired\x20the\x20testID\x20injector\x20into\x20'+_0x51f8ce(_0x31dd15,_0x1528db['path'])+(_0x1528db['beforeReanimated']?_0x4fb185(0x232):'')+'.'));break;case _0x4fb185(0x42e):_0x3c6aa0(_0x39cb6d('testID\x20injector\x20already\x20wired\x20in\x20'+_0x51f8ce(_0x31dd15,_0x1528db[_0x4fb185(0x195)])));break;case'needs-manual':_0x3c6aa0(_0x39cb6d(_0x4fb185(0x49a)+_0x1528db['reason']));break;case'created':_0x3c6aa0(_0x39cb6d('Created\x20'+_0x51f8ce(_0x31dd15,_0x1528db['path'])+'\x20('+_0x1528db['preset']+_0x4fb185(0x582)));break;}let _0x4aa138={'state':_0x4fb185(0x214),'registered':0x0};if(_0xd5be6f[_0x4fb185(0x30e)]>0x0){if(_0x4fb185(0x4b9)!=='NiUaE'){_0x3c09ff();const _0x446737=await _0x3117a7(_0x31dd15);_0x4aa138={'state':_0x446737['writtenOrUnchanged'],'registered':_0x446737['registered'][_0x4fb185(0x471)]},_0x446737[_0x4fb185(0x314)]==='missing-dir'?_0x3c6aa0(_0x39cb6d(_0x4fb185(0x228)+_0x476c50(_0x4fb185(0x2f8),_0x4fb185(0x3d5))+_0x4fb185(0x25d))):_0x3c6aa0(_0x39cb6d(_0x4fb185(0x297)+_0x446737['writtenOrUnchanged']+'\x20('+_0x446737[_0x4fb185(0x4f9)]['length']+'\x20image(s))\x20at\x20'+_0x33dfff(_0x31dd15,_0x446737['registryPath'])+'.'));}else return{'name':_0x1498cb,'ok':![],'severity':_0x584235,'message':_0x41e596 instanceof _0x3298ef?_0x46c622['message']:_0x366ab7(_0xa110d0)};}let _0x4c3393=null;if(_0x153c6c&&_0x53ff9f==='active')try{const _0x1ee01c=_0x537772['seedMobileGraph']??_0x3c5083;_0x4c3393=await _0x1ee01c({'workingDir':_0x31dd15,'auth':_0x153c6c}),_0x4c3393[_0x4fb185(0x416)]==='seeded'&&(_0x3c09ff(),_0x3c6aa0(_0x39cb6d(_0x4fb185(0x3ad)+_0x4c3393[_0x4fb185(0x3e2)]+_0x4fb185(0x269)+_0x4c3393[_0x4fb185(0x51b)]+_0x4fb185(0x506)+_0x4c3393[_0x4fb185(0x441)]+').')));}catch{_0x4c3393=null;}else _0x153c6c&&_0x53ff9f===_0x4fb185(0x159)&&(_0x4c3393={'status':'skipped','reason':'not-pro','message':'Pro\x20selected\x20but\x20not\x20yet\x20active\x20—\x20server-side\x20caching\x20is\x20skipped\x20until\x20checkout\x20completes\x20at\x20'+_0x21cb85+'.'});let _0x32a0de=null;if(_0x537772['runDoctor']){_0x3c09ff(),_0x32a0de=await _0x537772[_0x4fb185(0x47c)](),_0x3c6aa0(_0x39cb6d('Doctor:\x20'+_0x32a0de[_0x4fb185(0x3af)]+'/'+_0x32a0de[_0x4fb185(0x237)]+'\x20'+(_0x32a0de['ok']?_0x4fb185(0x3ed):_0x4fb185(0x1e9))));if(_0x32a0de['summary'])_0x3c6aa0(_0x32a0de[_0x4fb185(0x321)]);}_0x3c09ff();let _0x382cfb=![];if(_0x4a8e48==='starter')_0x3c6aa0(_0x39cb6d(_0x4fb185(0x39a))),_0x3c6aa0(_0x39cb6d(_0x4fb185(0x2db))),_0x3c6aa0(_0x39cb6d('More\x20about\x20the\x20plans\x20→\x20'+_0x3a9fdf(_0x21cb85))),_0x382cfb=!![];else _0x53ff9f===_0x4fb185(0x159)&&(!_0x537772['agentMode']&&process['stdout']['isTTY']===!![]&&_0x2bee48(_0x21cb85),_0x3c6aa0(_0x39cb6d('Pro\x20selected.\x20Complete\x20checkout\x20at\x20'+_0x3a9fdf(_0x21cb85)+_0x4fb185(0x2c5))),_0x3c6aa0(_0x39cb6d('your\x20Pro\x20access\x20refreshes\x20automatically.')),_0x382cfb=!![]);if(_0x382cfb)_0x3c6aa0('\x0a');_0x3c6aa0(_0x39cb6d(_0x4fb185(0x1f8)));_0x537772[_0x4fb185(0x332)]&&_0x3c6aa0(_0x39cb6d('Claude\x20Code\x20will\x20ask\x20you\x20to\x20approve\x20the\x20Ceraph\x20MCP\x20server\x20once\x20on\x20restart\x20—\x20your\x20.claude/settings.local.json\x20had\x20an\x20unexpected\x20shape,\x20so\x20it\x20was\x20left\x20untouched.\x20Approve\x20the\x20prompt,\x20or\x20add\x20\x22react-native-mcp\x22\x20to\x20enabledMcpjsonServers\x20in\x20that\x20file\x20by\x20hand.'));_0x3c6aa0('\x0a'),_0x3c6aa0(_0x39cb6d(_0x4fb185(0x45a))),_0x3c6aa0(_0x39cb6d('\x22Run\x20ceraph_init_status\x20to\x20confirm\x20the\x20project\x20is\x20wired\x20up.\x22')),_0x3c6aa0('\x0a');const _0x2bfaaa=_0x1a92cd['edits']['map'](_0x22c43a=>({'file':_0x22c43a['relPath'],'line':_0x22c43a[_0x4fb185(0x222)],'suggestedKey':_0x22c43a[_0x4fb185(0x245)]})),_0x240f2c=_0x537772[_0x4fb185(0x181)]?{'cameras':_0x2bfaaa,'setupRequired':_0x2bfaaa['length']>0x0,'hintText':_0x2bfaaa[_0x4fb185(0x471)]===0x0?'No\x20<CeraphCamera>\x20components\x20detected.\x20No\x20camera-setup\x20conversation\x20needed;\x20proceed\x20with\x20the\x20rest\x20of\x20the\x20project\x20work.':'For\x20each\x20<CeraphCamera>\x20below,\x20ask\x20the\x20user\x20which\x20scenario\x20this\x20camera\x20serves\x20and\x20call\x20ceraph_init_replace_camera\x20with\x20the\x20chosen\x20imageKey.\x20Three\x20options:\x20(A)\x20imageKey=\x22default\x22\x20—\x20bundled\x20black\x20PNG\x20fallback.\x20Right\x20answer\x20when\x20the\x20test\x20doesn\x27t\x20care\x20about\x20image\x20content\x20(most\x20form-submit\x20/\x20file-upload\x20flows).\x20(B)\x20imageKey=\x22<key>\x22\x20—\x20a\x20specific\x20test\x20image.\x20Ask\x20the\x20user\x20for\x20a\x20descriptive\x20lowercase-dashes\x20name\x20AND\x20drop\x20the\x20file\x20at\x20.ceraph/camera-images/<key>.{jpg,png,webp},\x20then\x20call\x20rn_sync_camera_registry.\x20(C)\x20imageKey=\x22@runtime\x22\x20—\x20the\x20camera\x20serves\x20multiple\x20scenarios\x20per\x20flow;\x20the\x20planner\x20picks\x20the\x20image\x20per-step\x20at\x20runtime.\x20Use\x20when\x20one\x20camera\x20screen\x20feeds\x20different\x20outcomes.'}:null;return _0x537772['agentMode']&&_0x240f2c&&_0x3c6aa0(''+_0x4b75f5+JSON[_0x4fb185(0x2ba)](_0x240f2c)+'\x0a'),{'packageInstalled':_0x1f43de,'packageManager':_0xfdd9c3,'tier':_0x4a8e48,'proStatus':_0x53ff9f,'authLogin':_0x153c6c?.[_0x4fb185(0x34e)]??null,'cameraEdits':_0xd5be6f,'layoutInjection':_0x3c3367,'graphSeed':_0x4c3393,'cameraRegistrySync':_0x4aa138,'doctor':_0x32a0de,'workingDir':_0x31dd15,'urlScheme':_0x40bf0d,'babelConfig':_0x2513a3,'agentHint':_0x240f2c};}async function _0x42d2ca(_0x53f30b,_0x3337c7){const _0x5dd690=_0x5ccc4b,_0x4a47cf=_0x3337c7[_0x5dd690(0x2b0)]??_0x5ec4d2,_0x3fdfe5=await _0x4a47cf(_0x53f30b);if(_0x3fdfe5[_0x5dd690(0x2b7)]===_0x5dd690(0x4c5)){if(_0x3fdfe5['isMonorepo']&&!_0x3fdfe5['rootIsRnApp'])throw new Error(_0x5dd690(0x500));return _0x53f30b;}if(_0x3fdfe5['kind']==='single'){const _0x1439be=_0x3fdfe5[_0x5dd690(0x4be)][0x0];if(!_0x1439be)return _0x53f30b;return _0x136036('\x0a',_0x3337c7),_0x136036(_0x39cb6d(_0x5dd690(0x3d9)+_0x1439be[_0x5dd690(0x2ec)]+'/\x20—\x20working\x20from\x20there'),_0x3337c7),_0x1439be[_0x5dd690(0x26d)];}_0x136036('\x0a',_0x3337c7),_0x136036(_0x39cb6d('Multiple\x20React\x20Native\x20subpackages\x20detected:'),_0x3337c7);const _0x3b3bdf=_0x3fdfe5[_0x5dd690(0x4be)][_0x5dd690(0x362)](_0x4bc5c2=>_0x4bc5c2[_0x5dd690(0x2ec)]+_0x5dd690(0x167)+_0x4bc5c2['signals'][_0x5dd690(0x3aa)](',\x20')+']'),_0x551af9=await _0x5fa9d4(_0x5dd690(0x299),_0x3b3bdf,_0x3337c7);if(_0x551af9==null)throw new Error('No\x20valid\x20selection.\x20Re-run\x20init\x20and\x20pick\x20a\x20numbered\x20option.');const _0x5176c1=_0x3fdfe5['matches'][_0x551af9];if(!_0x5176c1){if(_0x5dd690(0x4c1)===_0x5dd690(0x39b))for(const _0x3cd12d of _0x1738ba[_0x5dd690(0x48e)][_0x5dd690(0x23f)]){_0x4ae2a5[_0x5dd690(0x532)](_0x3cd12d);}else throw new Error(_0x5dd690(0x4b1));}return _0x136036(_0x39cb6d(_0x5dd690(0x1cf)+_0x5176c1[_0x5dd690(0x2ec)]+'/'),_0x3337c7),_0x5176c1[_0x5dd690(0x26d)];}function _0x51f8ce(_0x382cc6,_0x31e5ba){const _0x167576=_0x5ccc4b;if(_0x31e5ba['startsWith'](_0x382cc6)){const _0x2d53a7=_0x31e5ba['slice'](_0x382cc6['length']+0x1);return _0x2d53a7[_0x167576(0x471)]>0x0?_0x2d53a7:_0x31e5ba;}return _0x31e5ba;}async function _0x4b5cc2(){const _0x287856=_0x5ccc4b,_0x141775=await _0x8c9830();return{'accessToken':_0x141775[_0x287856(0x25c)],'expiresAt':0x0,'githubUser':{'login':'','id':0x0},'storedAt':new Date()[_0x287856(0x3ba)](),..._0x141775['email']?{'email':_0x141775['email']}:{}};}async function _0x385d29(_0x2ff5cd,_0x4c3202,_0x5d4296,_0xcd4e4d,_0x45768e={}){const _0x98a8e1=_0x5ccc4b;for(const _0x2cc20c of _0x4c3202){!_0x5d4296['has'](_0x2cc20c['filePath'])&&_0x5d4296['set'](_0x2cc20c['filePath'],await _0x3f3777(_0x2cc20c[_0x98a8e1(0x47a)]));}try{const _0x4b9a50=await _0x174b73(_0x2ff5cd,_0x4c3202,_0x45768e);return _0x136036(_0x39cb6d('Replaced\x20'+_0x4b9a50['totalReplacements']+'\x20<CameraView>\x20→\x20<CeraphCamera>\x20across\x20'+_0x4b9a50['filesEdited']['length']+_0x98a8e1(0x488)),_0xcd4e4d),_0x4b9a50;}catch(_0x39ec7b){for(const [_0x49f7c,_0x5e691e]of _0x5d4296){if(_0x5e691e!=null){if(_0x98a8e1(0x313)==='EmacO')return _0x4d1c06;else try{await _0x4db18c(_0x49f7c,_0x5e691e);}catch(_0x4845a3){if('Jqkie'==='swwZG')return{'success':!![],'transport':'simctl','details':{'udid':_0xcd9d7c}};else console[_0x98a8e1(0x51e)]('[ceraph]\x20rollback\x20failed\x20for\x20'+_0x49f7c+':',_0x4845a3 instanceof Error?_0x4845a3['message']:_0x4845a3);}}}throw _0x39ec7b;}}var _0x4b75f5,_0x21cb85,_0x31a105,_0x4f24e1,_0x83a4c9,_0x8dea1,_0x18bca4=_0x4d3071({'src/init/walkthrough.ts'(){'use strict';const _0x45f52b=_0x5ccc4b;_0x26287f(),_0xe6e8e7(),_0x553117(),_0x1c9166(),_0x3cac80(),_0x30ec70(),_0x4bd0b6(),_0x1ecc92(),_0xe1bccc(),_0x165f87(),_0x21caea(),_0x5cecd5(),_0x20405c(),_0x4b75f5='CERAPH_INIT_AGENT_HINT=',_0x21cb85=_0x45f52b(0x29a),_0x31a105='Which\x20plan?',_0x4f24e1='Starter\x20·\x20Free\x20—\x20local\x20build,\x20run,\x20and\x20device\x20tools.\x20No\x20sign-in.',_0x83a4c9='Pro\x20·\x20$10/mo\x20—\x20AI\x20flow\x20testing\x20on\x20your\x20real\x20device.\x20Sign\x20in\x20to\x20start.',_0x8dea1=[_0x4f24e1,_0x83a4c9];}});import{spawn as _0x472b19}from'child_process';function _0x40e203(_0x5580a3,_0x15f0e6,_0x524b48={}){return new Promise(_0x5bd6c3=>{const _0x4d0d22=_0x4997;if('IfJEb'!=='IfJEb'){try{_0x50dd19[_0x4d0d22(0x579)](_0x4d0d22(0x2ac));}catch{}_0x4060ad({'ok':![],'error':'`'+_0x325453+'\x20'+_0x54c3bc['join']('\x20')+'`\x20timed\x20out\x20after\x20'+_0x27b23c/0xea60+_0x4d0d22(0x15b)});}else{let _0x4fc2ba='',_0x4201fa='',_0x2c84aa;try{_0x2c84aa=_0x472b19(_0x5580a3,_0x15f0e6,{'stdio':['ignore',_0x4d0d22(0x43a),'pipe']});}catch(_0x53c336){_0x5bd6c3({'code':0x7f,'stdout':'','stderr':_0x53c336 instanceof Error?_0x53c336['message']:String(_0x53c336)});return;}const _0x135329=setTimeout(()=>{const _0x2d8497=_0x4d0d22;try{_0x2c84aa['kill'](_0x2d8497(0x2ac));}catch{}},_0x524b48['timeoutMs']??0x3a98);_0x2c84aa[_0x4d0d22(0x16e)]?.['on']('data',_0x401597=>{_0x4fc2ba+=_0x401597['toString']();}),_0x2c84aa['stderr']?.['on'](_0x4d0d22(0x48c),_0x404317=>{_0x4201fa+=_0x404317['toString']();});let _0x371ea3=![];_0x2c84aa['on'](_0x4d0d22(0x51e),_0x3333d0=>{if(_0x371ea3)return;_0x371ea3=!![],clearTimeout(_0x135329),_0x5bd6c3({'code':0x7f,'stdout':_0x4fc2ba,'stderr':_0x4201fa+(_0x3333d0['message']??String(_0x3333d0))});}),_0x2c84aa['on']('exit',_0x391901=>{if(_0x371ea3)return;_0x371ea3=!![],clearTimeout(_0x135329),_0x5bd6c3({'code':_0x391901??0x1,'stdout':_0x4fc2ba,'stderr':_0x4201fa});});}});}async function _0x3d4e1(_0x4104c3){const _0x28f34f=_0x5ccc4b,_0x5d8039=await _0x40e203('which',[_0x4104c3],{'timeoutMs':0x7d0});return _0x5d8039['code']===0x0&&_0x5d8039[_0x28f34f(0x16e)]['trim']()[_0x28f34f(0x471)]>0x0;}function _0x53d062(_0x5b6144){const _0x39d53b=_0x5ccc4b,_0x2be9e3=[];let _0xfb59d4=0x0,_0x20e1ba=![],_0x3ab5bd=null,_0x4ba19c=null,_0x348277=null,_0x247e32=null,_0xc2fde8=null,_0xf64bf=null;const _0x2019f5=_0x26e9e6=>{const _0x9aaa0=_0x4997;let _0x37b9ad=_0x26e9e6['trim']();if(_0x37b9ad['endsWith'](';'))_0x37b9ad=_0x37b9ad[_0x9aaa0(0x54d)](0x0,-0x1)['trim']();return(_0x37b9ad[_0x9aaa0(0x425)]('\x22')&&_0x37b9ad[_0x9aaa0(0x227)]('\x22')||_0x37b9ad['startsWith']('\x27')&&_0x37b9ad['endsWith']('\x27'))&&(_0x37b9ad=_0x37b9ad[_0x9aaa0(0x54d)](0x1,-0x1)),_0x37b9ad;};for(const _0x51ebdf of _0x5b6144[_0x39d53b(0x4c7)]('\x0a')){const _0x4cf20b=_0x51ebdf['trim']();if(_0x4cf20b['length']===0x0)continue;if(_0xfb59d4===0x1&&!_0x20e1ba&&_0x4cf20b['endsWith']('{')){const _0x3043aa=_0x4cf20b['indexOf']('=');if(_0x3043aa>0x0){const _0x1ba217=_0x2019f5(_0x4cf20b[_0x39d53b(0x54d)](0x0,_0x3043aa));_0x3ab5bd=_0x1ba217,_0x4ba19c=_0x1ba217,_0x348277=null,_0x247e32=null,_0xc2fde8=null,_0xf64bf=null,_0x20e1ba=!![];}_0xfb59d4+=0x1;continue;}if(_0x4cf20b['endsWith']('{')){_0xfb59d4+=0x1;continue;}if(_0x4cf20b==='};'||_0x4cf20b==='}'){if(_0x20e1ba&&_0xfb59d4===0x2){if(_0x39d53b(0x18c)==='XfWCx')return this[_0x39d53b(0x1cc)]=_0x39d53b(0x1e1),{'ok':!![]};else{const _0x343cc6=_0x4ba19c??_0x3ab5bd;_0x343cc6&&_0x2be9e3['push']({'bundleId':_0x343cc6,'name':_0x247e32??_0x348277??_0x343cc6,'version':_0xc2fde8??_0xf64bf??void 0x0}),_0x20e1ba=![],_0x3ab5bd=null,_0x4ba19c=null,_0x348277=null,_0x247e32=null,_0xc2fde8=null,_0xf64bf=null;}}_0xfb59d4=Math[_0x39d53b(0x3c3)](0x0,_0xfb59d4-0x1);continue;}if(_0x20e1ba&&_0xfb59d4===0x2){const _0x50e690=_0x4cf20b[_0x39d53b(0x35c)]('=');if(_0x50e690<0x0)continue;const _0x53008e=_0x4cf20b[_0x39d53b(0x54d)](0x0,_0x50e690)['trim'](),_0x4e5d2e=_0x2019f5(_0x4cf20b[_0x39d53b(0x54d)](_0x50e690+0x1));switch(_0x53008e){case'CFBundleIdentifier':_0x4ba19c=_0x4e5d2e;break;case'CFBundleName':_0x348277=_0x4e5d2e;break;case _0x39d53b(0x3ff):_0x247e32=_0x4e5d2e;break;case _0x39d53b(0x2e4):_0xc2fde8=_0x4e5d2e;break;case'CFBundleVersion':_0xf64bf=_0x4e5d2e;break;default:break;}}}return _0x2be9e3;}var _0x650c57,_0x40fba2=_0x4d3071({'src/app-lifecycle.ts'(){'use strict';const _0x31afea=_0x5ccc4b;_0x650c57=class _0x4936dc{constructor(_0x22e88c,_0xcef57b){this['screen']=_0x22e88c,this['targetResolver']=_0xcef57b;}[_0x31afea(0x55e)]=null;['udidResolved']=![];['udidResolvedAt']=0x0;static [_0x31afea(0x352)]=0x1388;[_0x31afea(0x46d)]=null;[_0x31afea(0x225)]=null;['idbAvailable']=null;['installedAppsCache']=null;[_0x31afea(0x40e)]=0x7530;['setTargetResolver'](_0x59b7b7){this['targetResolver']=_0x59b7b7;}async[_0x31afea(0x1f7)](){const _0x38698e=_0x31afea;if(!this['targetResolver'])return{'preferSimulator':![],'simulatorUdid':'booted'};const _0x369fc2=await this['targetResolver']['resolve'](),_0xc7061=_0x369fc2[_0x38698e(0x4da)]==='simulator',_0x334e3c=_0x369fc2[_0x38698e(0x4da)]==='simulator'&&_0x369fc2['udid']?_0x369fc2[_0x38698e(0x55e)]:_0x38698e(0x43f);return{'preferSimulator':_0xc7061,'simulatorUdid':_0x334e3c};}async['getUdid'](){const _0x363444=_0x31afea;if(this['udidResolved']&&this['udid']&&Date['now']()-this['udidResolvedAt']<_0x4936dc['UDID_TTL_MS'])return this[_0x363444(0x55e)];if(this['udidInflight'])return this[_0x363444(0x46d)];const _0x333646=((async()=>{const _0x4fd1cf=_0x363444;try{if('xKDtm'===_0x4fd1cf(0x315)){const _0x3967c8=await _0x3d4e1('xcrun');if(!_0x3967c8)return null;const _0x3dc429=await _0x40e203('xcrun',[_0x4fd1cf(0x376),'list',_0x4fd1cf(0x2f3),_0x4fd1cf(0x4b6),'-'],{'timeoutMs':0x1f40});if(_0x3dc429['code']!==0x0)return null;const _0x203d38=JSON[_0x4fd1cf(0x398)](_0x3dc429['stdout']),_0x4f523f=_0x203d38[_0x4fd1cf(0x4e4)]?.['devices']??[],_0x19f043=_0x4f523f[_0x4fd1cf(0x173)](_0x3b1c87=>{const _0x386992=_0x4fd1cf,_0xf65c1c=_0x3b1c87[_0x386992(0x46a)]?.['platform']?.[_0x386992(0x223)]()??'',_0x512b48=_0x3b1c87['connectionProperties']?.['tunnelState']?.['toLowerCase']()??'';return _0xf65c1c['includes']('ios')&&_0x512b48==='connected';});if(_0x19f043?.['identifier'])return this[_0x4fd1cf(0x55e)]=_0x19f043[_0x4fd1cf(0x4e0)],this['udidResolved']=!![],this[_0x4fd1cf(0x1ee)]=Date[_0x4fd1cf(0x239)](),this['udid'];const _0x57f1ec=_0x4f523f['find'](_0x5af30a=>(_0x5af30a['hardwareProperties']?.['platform']?.[_0x4fd1cf(0x223)]()??'')['includes']('ios'));if(_0x57f1ec?.[_0x4fd1cf(0x4e0)])return this['udid']=_0x57f1ec[_0x4fd1cf(0x4e0)],this['udidResolved']=!![],this[_0x4fd1cf(0x1ee)]=Date[_0x4fd1cf(0x239)](),this[_0x4fd1cf(0x55e)];}else _0x3520eb['remediation']=_0x4fd1cf(0x2f0)+_0x36c6b7+'\x20<CeraphCamera>\x20tag(s).\x20If\x20any\x20of\x20those\x20keys\x20were\x20customer-set\x20(not\x20Ceraph-generated),\x20re-apply\x20them\x20after\x20install\x20rebuilds\x20the\x20camera\x20surface.';}catch{}return null;})());this['udidInflight']=_0x333646;try{return await _0x333646;}finally{this[_0x363444(0x46d)]=null;}}async['checkDevicectl'](){const _0x537036=_0x31afea;if(this[_0x537036(0x225)]!==null)return this[_0x537036(0x225)];const _0x30e249=await _0x3d4e1('xcrun');if(!_0x30e249)return this['devicectlAvailable']=![],![];const _0x313089=await _0x40e203(_0x537036(0x1ec),[_0x537036(0x376),_0x537036(0x553)],{'timeoutMs':0xfa0});return this['devicectlAvailable']=_0x313089[_0x537036(0x156)]===0x0,this[_0x537036(0x225)];}async['checkIdb'](){const _0x1becab=_0x31afea;if(this['idbAvailable']!==null)return this[_0x1becab(0x394)];return this[_0x1becab(0x394)]=await _0x3d4e1('idb'),this[_0x1becab(0x394)];}async[_0x31afea(0x52f)](_0x39e4d0){const _0x1d2703=_0x31afea,_0x185cce=await this['pickTransport']();if(_0x185cce['preferSimulator']){const _0x1042e0=_0x185cce['simulatorUdid'],_0x46eb49=await _0x40e203(_0x1d2703(0x1ec),[_0x1d2703(0x4df),_0x1d2703(0x584),_0x1042e0,_0x39e4d0],{'timeoutMs':0x3a98});if(_0x46eb49[_0x1d2703(0x156)]===0x0)return{'success':!![],'transport':'simctl','details':{'udid':_0x1042e0}};return{'success':![],'transport':_0x1d2703(0x4df),'error':_0x1d2703(0x4db)+(_0x46eb49[_0x1d2703(0x4ca)]||_0x46eb49['stdout'])['trim'](),'details':{'udid':_0x1042e0}};}const _0x440c5c=await this[_0x1d2703(0x1ad)]();if(_0x440c5c&&await this['checkDevicectl']()){if('FljEm'==='zOerP')_0x355f82={'status':'skipped','reason':_0x1d2703(0x2ee),'message':'Pro\x20selected\x20but\x20not\x20yet\x20active\x20—\x20server-side\x20caching\x20is\x20skipped\x20until\x20checkout\x20completes\x20at\x20'+_0x29b788+'.'};else{const _0x38560b=await _0x40e203(_0x1d2703(0x1ec),['devicectl','device',_0x1d2703(0x461),'launch',_0x1d2703(0x361),_0x440c5c,'--terminate-existing',_0x39e4d0],{'timeoutMs':0x7530});if(_0x38560b[_0x1d2703(0x156)]===0x0)return{'success':!![],'transport':_0x1d2703(0x376),'details':{'udid':_0x440c5c}};const _0x68df8=_0x38560b[_0x1d2703(0x4ca)]||_0x38560b[_0x1d2703(0x16e)];if(!await this['checkIdb']())return{'success':![],'transport':'devicectl','error':'devicectl\x20launch\x20failed:\x20'+_0x68df8['trim']()};}}if(await this[_0x1d2703(0x4cd)]()){const _0x2ea041=['launch',_0x39e4d0];if(_0x440c5c)_0x2ea041[_0x1d2703(0x359)](_0x1d2703(0x454),_0x440c5c);const _0x379544=await _0x40e203(_0x1d2703(0x153),_0x2ea041,{'timeoutMs':0x7530});if(_0x379544['code']===0x0)return{'success':!![],'transport':_0x1d2703(0x153),'details':{'udid':_0x440c5c}};if(!_0x440c5c){}else{if('MekOw'==='MekOw')return{'success':![],'transport':'idb','error':'idb\x20launch\x20failed:\x20'+(_0x379544['stderr']||_0x379544[_0x1d2703(0x16e)])['trim']()};else'use strict';}}if(!_0x440c5c){const _0x45d3b1=await _0x40e203(_0x1d2703(0x1ec),['simctl',_0x1d2703(0x584),_0x1d2703(0x43f),_0x39e4d0],{'timeoutMs':0x3a98});if(_0x45d3b1[_0x1d2703(0x156)]===0x0)return{'success':!![],'transport':_0x1d2703(0x4df)};return{'success':![],'transport':_0x1d2703(0x4df),'error':_0x1d2703(0x4db)+(_0x45d3b1[_0x1d2703(0x4ca)]||_0x45d3b1['stdout'])['trim']()};}return{'success':![],'transport':_0x1d2703(0x4c5),'error':_0x1d2703(0x4c3)};}async['terminateApp'](_0x189d66){const _0x19212c=_0x31afea,_0x22a242=await this[_0x19212c(0x1f7)]();if(_0x22a242[_0x19212c(0x335)]){const _0x721437=_0x22a242[_0x19212c(0x3db)],_0x4bf123=await _0x40e203(_0x19212c(0x1ec),['simctl','terminate',_0x721437,_0x189d66],{'timeoutMs':0x2710});if(_0x4bf123[_0x19212c(0x156)]===0x0)return{'success':!![],'transport':'simctl','details':{'udid':_0x721437}};return{'success':![],'transport':_0x19212c(0x4df),'error':'simctl\x20terminate\x20failed:\x20'+(_0x4bf123['stderr']||_0x4bf123[_0x19212c(0x16e)])['trim'](),'details':{'udid':_0x721437}};}if(this['screen']){if(_0x19212c(0x3d6)==='qOkhV')return _0x3b384c(_0x32f2e5)!==null;else{const _0x17ab73=await this[_0x19212c(0x212)]['isAvailable']();if(_0x17ab73){const _0x39a2a9=await this['screen'][_0x19212c(0x1c9)](_0x189d66);if(_0x39a2a9[_0x19212c(0x33f)])return{'success':!![],'transport':_0x19212c(0x23d)};}}}const _0x282c59=await this[_0x19212c(0x1ad)]();if(_0x282c59&&await this[_0x19212c(0x33d)]()){const _0x5db77d=await this[_0x19212c(0x383)](_0x282c59,_0x189d66);if(_0x5db77d!==null){const _0x1323bd=await _0x40e203(_0x19212c(0x1ec),['devicectl','device',_0x19212c(0x461),_0x19212c(0x4e9),_0x19212c(0x361),_0x282c59,'--pid',String(_0x5db77d)],{'timeoutMs':0x3a98});if(_0x1323bd[_0x19212c(0x156)]===0x0)return{'success':!![],'transport':'devicectl','details':{'pid':_0x5db77d}};}}if(await this[_0x19212c(0x4cd)]()){const _0x397304=[_0x19212c(0x4e9),_0x189d66];if(_0x282c59)_0x397304['push'](_0x19212c(0x454),_0x282c59);const _0x4066e5=await _0x40e203('idb',_0x397304,{'timeoutMs':0x3a98});if(_0x4066e5['code']===0x0)return{'success':!![],'transport':'idb'};}if(!_0x282c59){const _0x1fe660=await _0x40e203(_0x19212c(0x1ec),['simctl','terminate','booted',_0x189d66],{'timeoutMs':0x2710});if(_0x1fe660['code']===0x0)return{'success':!![],'transport':_0x19212c(0x4df)};return{'success':![],'transport':_0x19212c(0x4df),'error':'simctl\x20terminate\x20failed:\x20'+(_0x1fe660[_0x19212c(0x4ca)]||_0x1fe660['stdout'])[_0x19212c(0x1cd)]()};}return{'success':![],'transport':'none','error':'Failed\x20to\x20terminate\x20via\x20WDA,\x20devicectl,\x20or\x20idb.\x20The\x20app\x20may\x20not\x20be\x20running,\x20or\x20(devicectl\x20path)\x20it\x20is\x20not\x20a\x20user-installed\x20app\x20so\x20its\x20PID\x20could\x20not\x20be\x20resolved.'};}async['findDeviceAppPid'](_0x4ee1f8,_0x26b875){const _0x43a9ac=_0x31afea;if(_0x43a9ac(0x276)!=='NRoTR'){const _0x3f3091=_0x1540cb?{'dryRun':!![]}:{};switch(_0x1038b9['status']){case'reverted':return{'name':_0x43a9ac(0x18f),'status':_0x43a9ac(0x28d),'details':{'path':_0x7507ea['path'],'previousScheme':_0x2e9c13[_0x43a9ac(0x483)],'nextScheme':_0x546b98[_0x43a9ac(0x2ef)],..._0x3f3091}};case'already-reverted':return{'name':'scheme','status':'already-reverted','details':{'path':_0x37393a[_0x43a9ac(0x195)],..._0x3f3091}};case _0x43a9ac(0x1f3):return{'name':'scheme','status':_0x43a9ac(0x1f3),'details':{'kind':_0x48bd54['kind'],'path':_0x5af45a[_0x43a9ac(0x195)],..._0x3f3091},'remediation':_0x1d5659['remediation']};case _0x43a9ac(0x4af):return{'name':_0x43a9ac(0x18f),'status':_0x43a9ac(0x1b6),'details':{'reason':'no\x20RN\x20project\x20detected',..._0x3f3091}};}}else{const _0x40d221=await _0x40e203('xcrun',[_0x43a9ac(0x376),_0x43a9ac(0x32b),'info','apps','--device',_0x4ee1f8,'--json-output','-'],{'timeoutMs':0x4e20});if(_0x40d221['code']!==0x0)return null;let _0x5f8b8d=null;try{const _0x1b68f1=JSON['parse'](_0x40d221['stdout']);_0x5f8b8d=(_0x1b68f1['result']?.[_0x43a9ac(0x510)]??[])['find'](_0x1731f4=>_0x1731f4[_0x43a9ac(0x392)]===_0x26b875)?.[_0x43a9ac(0x19d)]??null;}catch{return null;}if(!_0x5f8b8d)return null;const _0x2728d4=_0x5f8b8d['endsWith']('/')?_0x5f8b8d:_0x5f8b8d+'/',_0x1c3c5c=await _0x40e203('xcrun',[_0x43a9ac(0x376),'device',_0x43a9ac(0x287),'processes','--device',_0x4ee1f8,'--json-output','-'],{'timeoutMs':0x4e20});if(_0x1c3c5c['code']!==0x0)return null;try{const _0x4a4912=JSON['parse'](_0x1c3c5c[_0x43a9ac(0x16e)]),_0x353218=(_0x4a4912[_0x43a9ac(0x4e4)]?.['runningProcesses']??[])[_0x43a9ac(0x235)](_0x243794=>typeof _0x243794['processIdentifier']===_0x43a9ac(0x429)&&(_0x243794[_0x43a9ac(0x3e4)]??'')[_0x43a9ac(0x425)](_0x2728d4));if(_0x353218[_0x43a9ac(0x471)]===0x0)return null;const _0x488ae7=_0x353218[_0x43a9ac(0x173)](_0x357621=>!_0x357621['executable'][_0x43a9ac(0x54d)](_0x2728d4[_0x43a9ac(0x471)])[_0x43a9ac(0x26f)]('/'));return(_0x488ae7??_0x353218[0x0])[_0x43a9ac(0x49f)];}catch{return null;}}}async['activateApp'](_0xfb8206){const _0x421f68=_0x31afea;if(this[_0x421f68(0x212)]){const _0x43888b=await this[_0x421f68(0x212)]['isAvailable']();if(_0x43888b){const _0x3f5040=await this[_0x421f68(0x212)][_0x421f68(0x201)](_0xfb8206);if(_0x3f5040[_0x421f68(0x33f)])return{'success':!![],'transport':'wda'};}}return this['launchApp'](_0xfb8206);}async[_0x31afea(0x2df)](){const _0x248434=_0x31afea,_0x45026f=await this[_0x248434(0x1f7)](),_0x301e02=_0x45026f['preferSimulator']?null:await this['getUdid'](),_0x1b97dd=_0x45026f['preferSimulator']?_0x248434(0x3e1)+_0x45026f[_0x248434(0x3db)]:_0x248434(0x40c)+(_0x301e02??'none');if(this['installedAppsCache']&&this[_0x248434(0x14a)][_0x248434(0x23b)]===_0x1b97dd&&Date['now']()-this['installedAppsCache']['at']<this[_0x248434(0x40e)])return{'success':!![],'apps':this[_0x248434(0x14a)][_0x248434(0x510)]};if(_0x45026f[_0x248434(0x335)])return this['listInstalledAppsSimulator'](_0x45026f[_0x248434(0x3db)],_0x1b97dd);const _0x5e9147=_0x301e02;if(!_0x5e9147)return{'success':![],'apps':[],'error':_0x248434(0x357)};if(!await this[_0x248434(0x33d)]())return{'success':![],'apps':[],'error':'xcrun\x20devicectl\x20not\x20available\x20—\x20install\x20Xcode\x2015\x20or\x20newer.'};const _0x3bab3b=await _0x40e203('xcrun',['devicectl',_0x248434(0x32b),'info','apps',_0x248434(0x361),_0x5e9147,_0x248434(0x4b6),'-'],{'timeoutMs':0x4e20});if(_0x3bab3b['code']!==0x0)return{'success':![],'apps':[],'error':'devicectl\x20info\x20apps\x20failed:\x20'+(_0x3bab3b['stderr']||_0x3bab3b[_0x248434(0x16e)])['trim']()};try{const _0x3399fd=JSON['parse'](_0x3bab3b['stdout']),_0x318344=(_0x3399fd[_0x248434(0x4e4)]?.['apps']??[])[_0x248434(0x235)](_0x30b141=>!!_0x30b141[_0x248434(0x392)])['map'](_0xe73d1c=>({'bundleId':_0xe73d1c['bundleIdentifier'],'name':_0xe73d1c[_0x248434(0x34d)]??_0xe73d1c[_0x248434(0x392)],'version':_0xe73d1c[_0x248434(0x216)]??_0xe73d1c['version']}));return this['installedAppsCache']={'at':Date[_0x248434(0x239)](),'key':_0x1b97dd,'apps':_0x318344},{'success':!![],'apps':_0x318344};}catch(_0x326cd9){return{'success':![],'apps':[],'error':_0x248434(0x44a)+(_0x326cd9 instanceof Error?_0x326cd9['message']:String(_0x326cd9))};}}async[_0x31afea(0x1ba)](_0x281e67,_0x3364fb){const _0xcc2a9=_0x31afea,_0x204c7c=await _0x40e203(_0xcc2a9(0x1ec),[_0xcc2a9(0x4df),'listapps',_0x281e67],{'timeoutMs':0x3a98});if(_0x204c7c['code']!==0x0)return{'success':![],'apps':[],'error':'simctl\x20listapps\x20failed:\x20'+(_0x204c7c['stderr']||_0x204c7c[_0xcc2a9(0x16e)])[_0xcc2a9(0x1cd)]()};const _0x20e462=_0x53d062(_0x204c7c['stdout']);return this['installedAppsCache']={'at':Date['now'](),'key':_0x3364fb,'apps':_0x20e462},{'success':!![],'apps':_0x20e462};}async[_0x31afea(0x378)](){const _0x16c259=_0x31afea;if(!this['screen'])return{'success':![],'error':_0x16c259(0x304)};return this[_0x16c259(0x212)][_0x16c259(0x478)]();}['reset'](){const _0x1c8c6f=_0x31afea;this[_0x1c8c6f(0x55e)]=null,this['udidResolved']=![],this['udidResolvedAt']=0x0,this[_0x1c8c6f(0x225)]=null,this[_0x1c8c6f(0x394)]=null,this[_0x1c8c6f(0x14a)]=null;}};}});import{spawn as _0x19f3d4}from'child_process';function _0x1de7d4(_0x58adac,_0x311f6d,_0xe18ca1={}){return new Promise(_0x516ce5=>{const _0x536cc5=_0x4997;let _0x369169='',_0x11f39a='',_0x326227;try{_0x326227=_0x19f3d4(_0x58adac,_0x311f6d,{'stdio':['ignore','pipe',_0x536cc5(0x43a)]});}catch(_0x2015e3){_0x516ce5({'code':0x7f,'stdout':'','stderr':_0x2015e3 instanceof Error?_0x2015e3['message']:String(_0x2015e3)});return;}const _0x18e574=setTimeout(()=>{const _0x27de9c=_0x536cc5;try{_0x326227[_0x27de9c(0x579)]('SIGKILL');}catch{}},_0xe18ca1['timeoutMs']??0x1f40);_0x326227[_0x536cc5(0x16e)]?.['on'](_0x536cc5(0x48c),_0x1748c4=>{const _0x24c87a=_0x536cc5;if('ZVmkT'!=='ZVmkT'){const _0x1487ec=_0x25796e?{'dryRun':!![]}:{};switch(_0x19e98f[_0x24c87a(0x416)]){case _0x24c87a(0x29c):return{'name':'package','status':'reverted','details':{'packageManager':_0x906d68['pm'],'removedPackages':_0x3b133e['removedPackages'],'command':_0x5da662[_0x24c87a(0x459)],..._0x1487ec}};case'nothing-to-remove':return{'name':_0x24c87a(0x36f),'status':'already-reverted','details':{'packageManager':_0x19dfae['pm'],..._0x1487ec}};case'command-failed':return{'name':_0x24c87a(0x36f),'status':'error','details':{'packageManager':_0x20ebed['pm'],'command':_0x33861c[_0x24c87a(0x459)],'exitCode':_0x38f966[_0x24c87a(0x4b4)],..._0x1487ec},'remediation':_0x3b7b56['pm']+'\x20'+(_0x4d339d['command']?.[_0x24c87a(0x4e2)][_0x24c87a(0x3aa)]('\x20')??'')+'\x20exited\x20with\x20code\x20'+_0xc40ddf['exitCode']+_0x24c87a(0x254)};}}else _0x369169+=_0x1748c4['toString']();}),_0x326227['stderr']?.['on'](_0x536cc5(0x48c),_0x2391a3=>{const _0xc4e455=_0x536cc5;_0x11f39a+=_0x2391a3[_0xc4e455(0x2a9)]();});let _0x244fad=![];_0x326227['on'](_0x536cc5(0x51e),_0x46fd98=>{if(_0x244fad)return;_0x244fad=!![],clearTimeout(_0x18e574),_0x516ce5({'code':0x7f,'stdout':_0x369169,'stderr':_0x11f39a+(_0x46fd98['message']??String(_0x46fd98))});}),_0x326227['on']('exit',_0x36030f=>{if(_0x244fad)return;_0x244fad=!![],clearTimeout(_0x18e574),_0x516ce5({'code':_0x36030f??0x1,'stdout':_0x369169,'stderr':_0x11f39a});});});}function _0x28aec2(_0xfb1095){const _0x480af2=_0x5ccc4b,_0x3d7cf1=(_0xfb1095??'')[_0x480af2(0x1cd)]()[_0x480af2(0x223)]();if(_0x3d7cf1==='device')return'device';if(_0x3d7cf1==='simulator'||_0x3d7cf1==='sim')return'simulator';return'auto';}async function _0x8bd12e(){const _0x1eeb05=_0x5ccc4b,_0x4d3ec5=await _0x1de7d4(_0x1eeb05(0x1ec),['simctl','list',_0x1eeb05(0x2f3),_0x1eeb05(0x43f),'-j']);if(_0x4d3ec5[_0x1eeb05(0x156)]!==0x0)return[];try{const _0x2840aa=JSON[_0x1eeb05(0x398)](_0x4d3ec5['stdout']),_0x510af3=[],_0xb3a20=_0x2840aa['devices']??{};for(const [_0x3de0df,_0x189290]of Object[_0x1eeb05(0x43e)](_0xb3a20)){const _0x56d55b=_0x3de0df['toLowerCase']()[_0x1eeb05(0x26f)](_0x1eeb05(0x4b3))||_0x3de0df[_0x1eeb05(0x223)]()[_0x1eeb05(0x26f)]('iphone');if(!_0x56d55b)continue;if(!Array['isArray'](_0x189290))continue;for(const _0x4435fd of _0x189290){if(!_0x4435fd[_0x1eeb05(0x55e)])continue;if((_0x4435fd[_0x1eeb05(0x31d)]??'')[_0x1eeb05(0x223)]()!=='booted')continue;_0x510af3['push']({'udid':_0x4435fd['udid'],'name':_0x4435fd['name']??_0x4435fd['udid'],'runtime':_0x4435fd['runtime']??_0x3de0df});}}return _0x510af3;}catch{return[];}}function _0x53d803(_0x630a24){return'http://localhost:'+_0x630a24;}var _0x11330c,_0x377424,_0x495988=_0x4d3071({'src/target.ts'(){'use strict';const _0x3e4ce0=_0x5ccc4b;_0x11330c=_0x3e4ce0(0x3b1),_0x377424=class{[_0x3e4ce0(0x510)];['readPreference'];['cached']=null;[_0x3e4ce0(0x2a6)]=0x0;[_0x3e4ce0(0x185)];[_0x3e4ce0(0x38a)]=null;['stateVersion']=0x0;[_0x3e4ce0(0x2bc)]=null;['simulatorWdaUdid']=null;[_0x3e4ce0(0x370)]=null;['realDeviceHookFiredFor']=new Set();['realDeviceHookInflight']=new Map();[_0x3e4ce0(0x1c1)];constructor(_0x51ccd3={}){const _0x1be76c=_0x3e4ce0;this['apps']=_0x51ccd3['apps']??null,this[_0x1be76c(0x399)]=_0x51ccd3['readPreference']??(()=>_0x28aec2(process.env.CERAPH_TARGET)),this['cacheTtlMs']=_0x51ccd3['cacheTtlMs']??0x1388,this['listBooted']=_0x51ccd3[_0x1be76c(0x1c1)]??_0x8bd12e;}[_0x3e4ce0(0x3e6)](_0x5bc802){const _0x116082=_0x3e4ce0;if('UZqEC'!=='Omjqf')this[_0x116082(0x510)]=_0x5bc802,this[_0x116082(0x196)]=null,this[_0x116082(0x40d)]++;else{if(_0x10ba6c)return;_0x4b3cad=!![],_0x57d093(_0x4d7bc3),_0x5d03b5({'code':_0x23f224??0x1,'stdout':_0x3d6de5,'stderr':_0x11b979});}}[_0x3e4ce0(0x2b1)](_0x232e81,_0x2d5100){const _0x4ae07a=_0x3e4ce0;this[_0x4ae07a(0x2bc)]=_0x232e81,this[_0x4ae07a(0x320)]=_0x2d5100,this[_0x4ae07a(0x196)]=null,this['stateVersion']++;}[_0x3e4ce0(0x4d3)](){const _0x29771b=_0x3e4ce0;this['simulatorWdaPort']=null,this['simulatorWdaUdid']=null,this[_0x29771b(0x196)]=null,this[_0x29771b(0x40d)]++;}[_0x3e4ce0(0x546)](){return this['simulatorWdaPort'];}['getSimulatorWdaUdid'](){const _0x2c0f01=_0x3e4ce0;return this[_0x2c0f01(0x320)];}[_0x3e4ce0(0x48a)](){const _0x1b0122=_0x3e4ce0;this[_0x1b0122(0x196)]=null,this['stateVersion']++;}['setRealDeviceHook'](_0x3280d3){this['realDeviceHook']=_0x3280d3;}async[_0x3e4ce0(0x2f2)](){const _0x53e52d=await this['resolve']();return _0x53e52d['baseUrl'];}async['getTarget'](){const _0xd5ed80=await this['resolve']();return _0xd5ed80['target'];}async[_0x3e4ce0(0x22f)](){const _0x470cc0=_0x3e4ce0;if(this['cached']&&this[_0x470cc0(0x185)]>0x0&&Date[_0x470cc0(0x239)]()-this[_0x470cc0(0x2a6)]<this['cacheTtlMs'])return this[_0x470cc0(0x196)];if(this['inflight'])return this[_0x470cc0(0x38a)];const _0x1fa22d=this[_0x470cc0(0x40d)],_0x458ebe=((async()=>{const _0x5c825e=_0x470cc0,_0x5a3290=this[_0x5c825e(0x399)]();if(_0x5a3290==='device'){const _0x4c1fc3=await this['apps']?.[_0x5c825e(0x1ad)]()??null;return{'target':_0x5c825e(0x32b),'udid':_0x4c1fc3,'baseUrl':_0x11330c,'wdaReady':!![],'reason':_0x5c825e(0x1d2)};}if(_0x5a3290===_0x5c825e(0x174)){if(_0x5c825e(0x43c)!==_0x5c825e(0x43c))return{'ok':!![],'severity':_0x5c825e(0x473),'message':_0x5c825e(0x51d)};else{const _0x399b91=await this['listBooted'](),_0x6ae1a9=this[_0x5c825e(0x320)]?_0x399b91[_0x5c825e(0x173)](_0x4dd293=>_0x4dd293[_0x5c825e(0x55e)]===this[_0x5c825e(0x320)])??_0x399b91[0x0]:_0x399b91[0x0],_0x423a16=_0x6ae1a9?.[_0x5c825e(0x55e)]??this[_0x5c825e(0x320)]??null,_0x256eba=this[_0x5c825e(0x320)]!==null&&_0x399b91['some'](_0x1291af=>_0x1291af['udid']===this[_0x5c825e(0x320)]),_0x181323=this['simulatorWdaPort']!==null&&this['simulatorWdaUdid']!==null&&_0x256eba&&_0x423a16===this['simulatorWdaUdid'];return{'target':'simulator','udid':_0x423a16,'baseUrl':_0x181323?_0x53d803(this[_0x5c825e(0x2bc)]):_0x11330c,'wdaReady':_0x181323,'reason':_0x5c825e(0x1a4)};}}const [_0x1f8d00,_0x364664]=await Promise['all']([this[_0x5c825e(0x510)]?.['getUdid']()??Promise[_0x5c825e(0x22f)](null),this['listBooted']()]);if(_0x1f8d00)return{'target':_0x5c825e(0x32b),'udid':_0x1f8d00,'baseUrl':_0x11330c,'wdaReady':!![],'reason':_0x5c825e(0x487)};if(_0x364664[_0x5c825e(0x471)]>0x0){const _0x228934=this[_0x5c825e(0x320)]?_0x364664['find'](_0xa8b594=>_0xa8b594[_0x5c825e(0x55e)]===this['simulatorWdaUdid'])??_0x364664[0x0]:_0x364664[0x0],_0x379a9a=this['simulatorWdaUdid']!==null&&_0x364664[_0x5c825e(0x28e)](_0x743a88=>_0x743a88[_0x5c825e(0x55e)]===this[_0x5c825e(0x320)]),_0x1d3ab6=this[_0x5c825e(0x2bc)]!==null&&this[_0x5c825e(0x320)]!==null&&_0x379a9a&&_0x228934[_0x5c825e(0x55e)]===this['simulatorWdaUdid'];return{'target':'simulator','udid':_0x228934[_0x5c825e(0x55e)],'baseUrl':_0x1d3ab6?_0x53d803(this['simulatorWdaPort']):_0x11330c,'wdaReady':_0x1d3ab6,'reason':'auto-only-simulator'};}return{'target':_0x5c825e(0x32b),'udid':null,'baseUrl':_0x11330c,'wdaReady':!![],'reason':_0x5c825e(0x469)};})());this['inflight']=_0x458ebe;try{if(_0x470cc0(0x246)==='PhYGS')return{'changed':![],'previousScheme':[..._0x1798a4],'nextScheme':[..._0x3ceb86]};else{const _0x19f1f0=await _0x458ebe;this['stateVersion']===_0x1fa22d&&(this['cached']=_0x19f1f0,this['cachedAt']=Date['now']());if(this[_0x470cc0(0x370)]&&_0x19f1f0['target']===_0x470cc0(0x32b)&&_0x19f1f0['udid']&&!this['realDeviceHookFiredFor'][_0x470cc0(0x466)](_0x19f1f0['udid'])&&!this[_0x470cc0(0x3b2)]['has'](_0x19f1f0[_0x470cc0(0x55e)])){const _0x28e774=_0x19f1f0['udid'];this['realDeviceHookFiredFor'][_0x470cc0(0x532)](_0x28e774);const _0x47f126=Promise['resolve']()['then'](()=>this[_0x470cc0(0x370)]?.(_0x19f1f0))[_0x470cc0(0x243)](()=>{})[_0x470cc0(0x29f)](()=>{const _0xe2919=_0x470cc0;this['realDeviceHookInflight'][_0xe2919(0x4ac)](_0x28e774);});this[_0x470cc0(0x3b2)][_0x470cc0(0x4fb)](_0x28e774,_0x47f126);}return _0x19f1f0;}}finally{this[_0x470cc0(0x38a)]=null;}}async[_0x3e4ce0(0x467)](_0x453cb8){const _0xdd5038=this['realDeviceHookInflight']['get'](_0x453cb8);if(_0xdd5038)await _0xdd5038;}[_0x3e4ce0(0x161)](){const _0x38eaff=_0x3e4ce0;this[_0x38eaff(0x196)]=null,this['inflight']=null,this[_0x38eaff(0x2bc)]=null,this['simulatorWdaUdid']=null,this['realDeviceHookFiredFor'][_0x38eaff(0x141)](),this['realDeviceHookInflight'][_0x38eaff(0x141)](),this[_0x38eaff(0x40d)]++;}};}}),_0x36a78f,_0x2a4caf,_0x24177a=_0x4d3071({'src/screen.ts'(){'use strict';const _0x3ecb81=_0x5ccc4b;_0x495988(),_0x36a78f=0x1388,_0x2a4caf=class{['sessionId']=null;['pixelRatio']=null;[_0x3ecb81(0x309)];[_0x3ecb81(0x1c4)]=null;[_0x3ecb81(0x1cc)]=null;constructor(_0x2717f5={}){this['targetResolver']=_0x2717f5['targetResolver']??new _0x377424();}async['tapAtPoint'](_0x5a1af9,_0x377936,_0x205611){const _0x4bafff=_0x3ecb81;if(this['tapTransport']!=='legacy'){const _0xf0c1ca=await this['sendW3CActions'](_0x5a1af9,[{'type':_0x4bafff(0x2e3),'id':'finger1','parameters':{'pointerType':'touch'},'actions':this[_0x4bafff(0x465)](_0x377936,_0x205611)}]);if(_0xf0c1ca)return this['tapTransport']=_0x4bafff(0x537),{'ok':!![]};if(this['tapTransport']==='actions')return{'ok':![],'error':_0x4bafff(0x1af)};}const _0x32e5f9=await this['wdaFetch']('/session/'+_0x5a1af9+'/wda/tap/0',{'method':_0x4bafff(0x183),'body':JSON[_0x4bafff(0x2ba)]({'x':_0x377936,'y':_0x205611})});if(_0x32e5f9['ok'])return this[_0x4bafff(0x1cc)]=_0x4bafff(0x1e1),{'ok':!![]};const _0x5c545c=await _0x32e5f9['text']()['catch'](()=>_0x4bafff(0x50a));return{'ok':![],'error':_0x4bafff(0x2d5)+_0x32e5f9[_0x4bafff(0x416)]+'\x20'+_0x5c545c};}async[_0x3ecb81(0x3ef)](){const _0x488d7c=_0x3ecb81;try{const _0x4224ca=await this[_0x488d7c(0x309)]['resolve']();return{'baseUrl':_0x4224ca[_0x488d7c(0x3e5)],'ready':_0x4224ca[_0x488d7c(0x55a)]};}catch{return _0x488d7c(0x4f4)!==_0x488d7c(0x541)?{'baseUrl':_0x11330c,'ready':!![]}:{'success':![],'visible':![],'error':_0x2f47aa['error']};}}async['wdaFetchAt'](_0x4539a2,_0x19396,_0xffae79={},_0x29b7db=_0x36a78f){const _0x30f17e=_0x3ecb81,_0x41b982=''+_0x4539a2+_0x19396,_0x23531a=new AbortController(),_0x11b16d=setTimeout(()=>_0x23531a[_0x30f17e(0x511)](),_0x29b7db);try{const _0x4db3a1=await fetch(_0x41b982,{..._0xffae79,'signal':_0x23531a[_0x30f17e(0x1fd)],'headers':{'Content-Type':_0x30f17e(0x3b8),..._0xffae79['headers']}});return _0x4db3a1;}finally{clearTimeout(_0x11b16d);}}async[_0x3ecb81(0x26c)](_0x4fda23,_0x2353fc={},_0x4fdc1e=_0x36a78f){const _0x2ab44c=_0x3ecb81,_0x1e6034=await this['snapshotTarget']();if(!_0x1e6034['ready'])throw new Error(_0x2ab44c(0x4a9));const _0x47cc5b=this['sessionBaseUrl']??_0x1e6034['baseUrl'];return this[_0x2ab44c(0x35f)](_0x47cc5b,_0x4fda23,_0x2353fc,_0x4fdc1e);}async[_0x3ecb81(0x406)](){if(this['sessionBaseUrl'])return this['sessionBaseUrl'];const _0x24f90d=await this['snapshotTarget']();return _0x24f90d['baseUrl'];}async['isAvailable'](){const _0x2c0b57=_0x3ecb81,_0x56263d=await this['snapshotTarget']();if(!_0x56263d['ready'])return![];try{const _0x1ccc03=await this['wdaFetchAt'](_0x56263d[_0x2c0b57(0x3e5)],'/status');return _0x1ccc03['ok'];}catch{return![];}}async['ensureSession'](){const _0x440475=_0x3ecb81,_0x15ce66=await this[_0x440475(0x3ef)]();if(!_0x15ce66['ready'])throw new Error(_0x440475(0x4a9));const _0x4eaa63=_0x15ce66[_0x440475(0x3e5)];this[_0x440475(0x1c4)]&&this['sessionBaseUrl']!==_0x4eaa63&&(this['sessionId']=null,this['pixelRatio']=null);this[_0x440475(0x1c4)]=_0x4eaa63;if(this['sessionId']){try{const _0x2067fe=await this['wdaFetchAt'](_0x4eaa63,_0x440475(0x229)+this['sessionId']);if(_0x2067fe['ok'])return this[_0x440475(0x583)];}catch{}this[_0x440475(0x583)]=null;}try{if(_0x440475(0x4bd)!==_0x440475(0x4bd))throw new _0x188014('WDA\x20unavailable\x20—\x20call\x20rn_wda_start\x20first\x20if\x20testing\x20on\x20a\x20simulator.');else{const _0xbc0297=await this['wdaFetchAt'](_0x4eaa63,'/status');if(_0xbc0297['ok']){const _0x37f482=await _0xbc0297['json'](),_0xa4e474=_0x37f482['sessionId']||_0x37f482[_0x440475(0x389)]?.[_0x440475(0x583)];if(_0xa4e474)return this['sessionId']=_0xa4e474,_0xa4e474;}}}catch{}const _0x29fe35=await this['wdaFetchAt'](_0x4eaa63,'/session',{'method':'POST','body':JSON[_0x440475(0x2ba)]({'capabilities':{'alwaysMatch':{}}})});if(!_0x29fe35['ok']){if(_0x440475(0x408)!=='flkYJ'){const _0x299240=await _0x29fe35['text']()['catch'](()=>_0x440475(0x55f));throw new Error(_0x440475(0x3a3)+_0x29fe35['status']+'\x20'+_0x299240);}else return new _0x26fc34(_0x440475(0x4aa),0x191,'Your\x20Ceraph\x20session\x20is\x20no\x20longer\x20valid\x20(the\x20account\x20may\x20have\x20been\x20deleted,\x20or\x20your\x20token\x20expired).\x20Run\x20`npx\x20@ceraph/react-native-mcp\x20init`\x20to\x20sign\x20in\x20again.\x20Your\x20local\x20screenshots\x20and\x20flows\x20are\x20preserved\x20—\x20only\x20the\x20server-side\x20identity\x20needs\x20refreshing.');}const _0x246bf8=await _0x29fe35['json'](),_0x1d65d1=_0x246bf8[_0x440475(0x583)]||_0x246bf8['value']?.['sessionId'];if(!_0x1d65d1)throw new Error(_0x440475(0x533));return this[_0x440475(0x583)]=_0x1d65d1,_0x1d65d1;}async[_0x3ecb81(0x480)](){const _0xa5a406=_0x3ecb81;if(this[_0xa5a406(0x503)])return this['pixelRatio'];const _0x3365ce=await this['ensureSession'](),_0x36cec2=await this['wdaFetch'](_0xa5a406(0x229)+_0x3365ce+'/window/size');if(!_0x36cec2['ok'])throw new Error(_0xa5a406(0x501)+_0x36cec2[_0xa5a406(0x416)]);const _0x5ad9c4=await _0x36cec2[_0xa5a406(0x163)](),_0x496b3f=_0x5ad9c4['value']['width'],_0x2d5398=await this[_0xa5a406(0x26c)]('/session/'+_0x3365ce+'/screenshot');if(!_0x2d5398['ok']){if(_0xa5a406(0x4d4)==='eEoZp')return this['pixelRatio']=0x3,this[_0xa5a406(0x503)];else this[_0xa5a406(0x212)]['pingStatus']()[_0xa5a406(0x243)](()=>void 0x0);}const _0x23248f=await _0x2d5398[_0xa5a406(0x163)](),_0x56161e=_0x23248f[_0xa5a406(0x389)],_0x64e673=Buffer[_0xa5a406(0x38f)](_0x56161e,_0xa5a406(0x24f));if(_0x64e673[_0xa5a406(0x471)]<0x18)return this[_0xa5a406(0x503)]=0x3,this['pixelRatio'];const _0x3e09b7=_0x64e673['readUInt32BE'](0x10);return this[_0xa5a406(0x503)]=Math[_0xa5a406(0x343)](_0x3e09b7/_0x496b3f),(this['pixelRatio']<0x1||this['pixelRatio']>0x4)&&(this[_0xa5a406(0x503)]=0x3),this[_0xa5a406(0x503)];}async[_0x3ecb81(0x16b)](){const _0x16bf28=_0x3ecb81,_0x4d9cb8=await this['ensureSession'](),_0x59ef99=await this['wdaFetch']('/session/'+_0x4d9cb8+_0x16bf28(0x494));if(!_0x59ef99['ok'])throw new Error('Failed\x20to\x20get\x20window\x20size:\x20'+_0x59ef99['status']);const _0x50d539=await _0x59ef99['json']();return _0x50d539['value'];}async[_0x3ecb81(0x536)](_0x381f1e,_0x3f5d6a,_0x57a89e=!![]){const _0x592cf5=_0x3ecb81;try{const _0x5ea1b2=await this['ensureSession'](),_0x19abc5=await this[_0x592cf5(0x480)](),_0x2dc5ca=_0x57a89e?_0x381f1e/_0x19abc5:_0x381f1e,_0x4277b3=_0x57a89e?_0x3f5d6a/_0x19abc5:_0x3f5d6a,_0x5efdd1=await this[_0x592cf5(0x3de)](_0x5ea1b2,_0x2dc5ca,_0x4277b3);if(!_0x5efdd1['ok'])return{'success':![],'tappedAt':{'x':_0x2dc5ca,'y':_0x4277b3},'pixelRatio':_0x19abc5,'correction':_0x57a89e?_0x592cf5(0x19e)+_0x19abc5+_0x592cf5(0x217)+_0x381f1e+','+_0x3f5d6a+_0x592cf5(0x283)+_0x2dc5ca['toFixed'](0x1)+','+_0x4277b3[_0x592cf5(0x1b3)](0x1)+')':_0x592cf5(0x468),'error':_0x5efdd1['error']??'WDA\x20tap\x20failed'};return{'success':!![],'tappedAt':{'x':_0x2dc5ca,'y':_0x4277b3},'pixelRatio':_0x19abc5,'correction':_0x57a89e?_0x592cf5(0x19e)+_0x19abc5+'x:\x20('+_0x381f1e+','+_0x3f5d6a+')\x20->\x20('+_0x2dc5ca['toFixed'](0x1)+','+_0x4277b3['toFixed'](0x1)+')':'No\x20correction\x20(device\x20coordinates)'};}catch(_0xfbebbd){return{'success':![],'tappedAt':{'x':_0x381f1e,'y':_0x3f5d6a},'pixelRatio':this['pixelRatio']??0x0,'correction':'Failed\x20before\x20correction\x20could\x20be\x20applied','error':_0xfbebbd instanceof Error?_0xfbebbd[_0x592cf5(0x554)]:_0x592cf5(0x25e)};}}async[_0x3ecb81(0x48b)](_0x47821d){const _0x20977c=_0x3ecb81;try{const _0x4493ef=await this[_0x20977c(0x515)](),_0x326165=await this['wdaFetch']('/session/'+_0x4493ef+_0x20977c(0x43d));if(!_0x326165['ok'])return{'success':![],'error':_0x20977c(0x3f8)+_0x326165['status']};const _0x470b9f=await _0x326165['json'](),_0x4dd55f=_0x470b9f['value'],_0x2d8593=this[_0x20977c(0x2c1)](_0x4dd55f,_0x47821d);if(_0x2d8593['length']===0x0){const _0x3d706b=this[_0x20977c(0x1d8)](_0x4dd55f,0x32);return{'success':![],'matchCount':0x0,'availableElements':_0x3d706b,'error':'No\x20element\x20found\x20matching\x20query:\x20'+JSON[_0x20977c(0x2ba)](_0x47821d)};}const _0x29d448=_0x47821d['index']??0x0;if(_0x29d448>=_0x2d8593['length'])return{'success':![],'matchCount':_0x2d8593['length'],'error':_0x20977c(0x2b8)+_0x29d448+_0x20977c(0x21f)+_0x2d8593['length']+_0x20977c(0x54b),'availableElements':_0x2d8593[_0x20977c(0x362)](_0x1d33cf=>({'type':_0x1d33cf[_0x20977c(0x284)]??'unknown','label':_0x1d33cf['label']??'','text':String(_0x1d33cf[_0x20977c(0x389)]??_0x1d33cf['label']??'')}))};const _0x4424f8=_0x2d8593[_0x29d448],_0x4f52e7=_0x4424f8[_0x20977c(0x2e2)];if(!_0x4f52e7)return{'success':![],'matchCount':_0x2d8593['length'],'error':_0x20977c(0x568)};const _0x27186e=_0x4f52e7['x']+_0x4f52e7['width']/0x2,_0x2e64f1=_0x4f52e7['y']+_0x4f52e7[_0x20977c(0x197)]/0x2,_0x3438a1=await this[_0x20977c(0x3de)](_0x4493ef,_0x27186e,_0x2e64f1);if(!_0x3438a1['ok'])return{'success':![],'matchCount':_0x2d8593['length'],'error':_0x3438a1['error']??_0x20977c(0x4a0),'element':{'type':_0x4424f8['type']??_0x20977c(0x50a),'label':_0x4424f8['label']??_0x4424f8[_0x20977c(0x34d)]??'','bounds':_0x4f52e7},'tappedAt':{'x':_0x27186e,'y':_0x2e64f1}};return{'success':!![],'matchCount':_0x2d8593[_0x20977c(0x471)],'element':{'type':_0x4424f8['type']??_0x20977c(0x50a),'label':_0x4424f8[_0x20977c(0x3bb)]??_0x4424f8['name']??'','bounds':_0x4f52e7},'tappedAt':{'x':_0x27186e,'y':_0x2e64f1}};}catch(_0x1b0b7e){return{'success':![],'error':_0x1b0b7e instanceof Error?_0x1b0b7e['message']:'Unknown\x20error\x20during\x20findAndTap'};}}async['findElement'](_0x5b293e){const _0x161c92=_0x3ecb81;try{const _0x9093bc=await this['ensureSession'](),_0x4a04b4=await this['wdaFetch'](_0x161c92(0x229)+_0x9093bc+'/source?format=json');if(!_0x4a04b4['ok'])return{'success':![],'error':_0x161c92(0x3f8)+_0x4a04b4[_0x161c92(0x416)]};const _0x133d8d=await _0x4a04b4['json'](),_0x4abd9b=this[_0x161c92(0x2c1)](_0x133d8d['value'],_0x5b293e);if(_0x4abd9b['length']===0x0)return{'success':![],'matchCount':0x0};const _0x5a91de=_0x5b293e[_0x161c92(0x3d4)]??0x0;if(_0x5a91de>=_0x4abd9b['length'])return{'success':![],'matchCount':_0x4abd9b['length']};return{'success':!![],'element':_0x4abd9b[_0x5a91de],'matchCount':_0x4abd9b['length']};}catch(_0x220140){return{'success':![],'error':_0x220140 instanceof Error?_0x220140[_0x161c92(0x554)]:'Unknown\x20error\x20during\x20findElement'};}}async['swipe'](_0x33a5af){const _0x3edbd0=_0x3ecb81;try{const _0x2e1827=await this[_0x3edbd0(0x515)](),_0x31c3cd=await this['getWindowSize'](),_0x276b97=await this[_0x3edbd0(0x480)](),_0x43c2d4=(_0x33a5af['coordinateSource']??_0x3edbd0(0x32b))===_0x3edbd0(0x32a);let _0xe5ed59=_0x33a5af[_0x3edbd0(0x38f)]?.['x']??_0x31c3cd['width']/0x2,_0x203187=_0x33a5af['from']?.['y']??_0x31c3cd['height']/0x2;_0x43c2d4&&(_0xe5ed59=_0xe5ed59/_0x276b97,_0x203187=_0x203187/_0x276b97);const _0xe6e07f=_0x33a5af[_0x3edbd0(0x3dd)]==='up'||_0x33a5af[_0x3edbd0(0x3dd)]===_0x3edbd0(0x353)?_0x31c3cd[_0x3edbd0(0x197)]:_0x31c3cd['width'],_0x4a6858=_0x33a5af['distancePx']??Math['floor'](_0xe6e07f*0.6);let _0xa90f53=_0xe5ed59,_0x426ffc=_0x203187;switch(_0x33a5af[_0x3edbd0(0x3dd)]){case'up':_0x426ffc=_0x203187-_0x4a6858;break;case _0x3edbd0(0x353):_0x426ffc=_0x203187+_0x4a6858;break;case _0x3edbd0(0x4de):_0xa90f53=_0xe5ed59-_0x4a6858;break;case'right':_0xa90f53=_0xe5ed59+_0x4a6858;break;}_0xa90f53=Math['max'](0x0,Math['min'](_0x31c3cd[_0x3edbd0(0x39f)]-0x1,_0xa90f53)),_0x426ffc=Math[_0x3edbd0(0x3c3)](0x0,Math['min'](_0x31c3cd['height']-0x1,_0x426ffc)),_0xe5ed59=Math[_0x3edbd0(0x3c3)](0x0,Math[_0x3edbd0(0x436)](_0x31c3cd[_0x3edbd0(0x39f)]-0x1,_0xe5ed59)),_0x203187=Math[_0x3edbd0(0x3c3)](0x0,Math['min'](_0x31c3cd['height']-0x1,_0x203187));const _0x32e539=_0x33a5af['durationMs']??0x12c,_0x19c871=await this['wdaFetch'](_0x3edbd0(0x229)+_0x2e1827+'/wda/dragfromtoforduration',{'method':'POST','body':JSON['stringify']({'fromX':_0xe5ed59,'fromY':_0x203187,'toX':_0xa90f53,'toY':_0x426ffc,'duration':_0x32e539/0x3e8})});if(!_0x19c871['ok']){const _0x477f27=await _0x19c871['text']()['catch'](()=>'unknown');return{'success':![],'from':{'x':_0xe5ed59,'y':_0x203187},'to':{'x':_0xa90f53,'y':_0x426ffc},'durationMs':_0x32e539,'error':_0x3edbd0(0x3ae)+_0x19c871[_0x3edbd0(0x416)]+'\x20'+_0x477f27};}return{'success':!![],'from':{'x':_0xe5ed59,'y':_0x203187},'to':{'x':_0xa90f53,'y':_0x426ffc},'durationMs':_0x32e539};}catch(_0x57e3ee){return{'success':![],'from':{'x':0x0,'y':0x0},'to':{'x':0x0,'y':0x0},'durationMs':_0x33a5af[_0x3edbd0(0x366)]??0x12c,'error':_0x57e3ee instanceof Error?_0x57e3ee['message']:_0x3edbd0(0x1ac)};}}async[_0x3ecb81(0x442)](_0xc5ebea,_0x49bc4c={}){const _0xa5ed11=_0x3ecb81,_0x3f4415=_0x49bc4c[_0xa5ed11(0x336)]??0xa,_0x599696=_0x49bc4c[_0xa5ed11(0x3dd)]??'up';let _0x479ac7=void 0x0;for(let _0x5921e8=0x0;_0x5921e8<=_0x3f4415;_0x5921e8++){const _0x58fed4=await this['findElement'](_0xc5ebea);if(_0x58fed4[_0xa5ed11(0x33f)]&&_0x58fed4['element']?.['rect'])return{'success':!![],'swipes':_0x5921e8,'element':{'type':_0x58fed4['element'][_0xa5ed11(0x284)]??_0xa5ed11(0x50a),'label':_0x58fed4['element']['label']??_0x58fed4[_0xa5ed11(0x143)]['name']??'','bounds':_0x58fed4[_0xa5ed11(0x143)]['rect']}};_0x58fed4['matchCount']!==void 0x0&&('eMlrR'==='gNkcp'?_0x523ff4['push'](_0x555d7d):_0x479ac7=_0x479ac7===void 0x0?_0x58fed4['matchCount']:Math[_0xa5ed11(0x3c3)](_0x479ac7,_0x58fed4['matchCount']));if(_0x5921e8===_0x3f4415)break;const _0x478d19=await this['swipe']({'direction':_0x599696,'distancePx':_0x49bc4c['distancePx']});if(!_0x478d19[_0xa5ed11(0x33f)])return{'success':![],'swipes':_0x5921e8,'error':_0x478d19['error']??_0xa5ed11(0x4d7)};}return{'success':![],'swipes':_0x3f4415,'matchCount':_0x479ac7,'error':'Element\x20not\x20found\x20after\x20'+_0x3f4415+_0xa5ed11(0x33b)+JSON[_0xa5ed11(0x2ba)](_0xc5ebea)};}async['longPress'](_0x31214f,_0x3a152f,_0x1da58d=0x3e8,_0x1fb3df=![]){const _0x11b23c=_0x3ecb81;try{const _0x28ddc4=await this[_0x11b23c(0x515)]();let _0x132a5e=_0x31214f,_0x5d16a2=_0x3a152f;if(_0x1fb3df){const _0x1a4528=await this['getPixelRatio']();_0x132a5e=_0x31214f/_0x1a4528,_0x5d16a2=_0x3a152f/_0x1a4528;}const _0x512c3f=await this['wdaFetch'](_0x11b23c(0x229)+_0x28ddc4+_0x11b23c(0x1c5),{'method':'POST','body':JSON['stringify']({'x':_0x132a5e,'y':_0x5d16a2,'duration':_0x1da58d/0x3e8})});if(!_0x512c3f['ok']){const _0x5baa42=await _0x512c3f[_0x11b23c(0x44b)]()[_0x11b23c(0x243)](()=>'unknown');return{'success':![],'error':'WDA\x20touchAndHold\x20failed:\x20'+_0x512c3f['status']+'\x20'+_0x5baa42};}return{'success':!![],'details':{'x':_0x132a5e,'y':_0x5d16a2,'durationMs':_0x1da58d}};}catch(_0x54a2ce){return _0x11b23c(0x430)!==_0x11b23c(0x261)?{'success':![],'error':_0x54a2ce instanceof Error?_0x54a2ce['message']:'Unknown\x20error\x20during\x20longPress'}:{'name':_0x11b23c(0x53d),'status':_0x11b23c(0x51e),'details':{'error':_0x1bf8bf(_0x14a25f),'dryRun':!![]}};}}async[_0x3ecb81(0x1ae)](_0x244a4f,_0x164a7a=0x3e8){const _0x7fd525=_0x3ecb81,_0xece78=await this['findElement'](_0x244a4f);if(!_0xece78['success']||!_0xece78['element']?.['rect'])return{'success':![],'matchCount':_0xece78[_0x7fd525(0x56a)],'error':_0xece78['error']??'No\x20element\x20found\x20matching\x20'+JSON[_0x7fd525(0x2ba)](_0x244a4f)};const _0x36be2e=_0xece78[_0x7fd525(0x143)]['rect'],_0x170bfa=_0x36be2e['x']+_0x36be2e[_0x7fd525(0x39f)]/0x2,_0x60db3c=_0x36be2e['y']+_0x36be2e['height']/0x2,_0x44c86c=await this['longPress'](_0x170bfa,_0x60db3c,_0x164a7a,![]);return{..._0x44c86c,'matchCount':_0xece78[_0x7fd525(0x56a)],'element':{'type':_0xece78['element'][_0x7fd525(0x284)]??_0x7fd525(0x50a),'label':_0xece78[_0x7fd525(0x143)][_0x7fd525(0x3bb)]??_0xece78[_0x7fd525(0x143)][_0x7fd525(0x34d)]??'','bounds':_0x36be2e}};}async[_0x3ecb81(0x284)](_0x5e1a29,_0xc19a1c={}){const _0x2011da=_0x3ecb81;try{const _0x1c17a7=await this[_0x2011da(0x515)](),_0x59d520=Array[_0x2011da(0x38f)](_0x5e1a29),_0x3467e2=await this['wdaFetch'](_0x2011da(0x229)+_0x1c17a7+_0x2011da(0x512),{'method':_0x2011da(0x183),'body':JSON['stringify']({'value':_0x59d520})});if(!_0x3467e2['ok']){if('HOkKc'!=='HOkKc'){const _0x50614b=_0x1dd689[_0x2011da(0x27a)]();for(const _0x591a75 of _0x50614b){if(_0x30c348[_0x2011da(0x1f0)](_0x591a75)){const _0xdbcdd4=_0x591a75['getNameNode']();if(_0xdbcdd4['getText']()===_0x2011da(0x272))return!![];}}return![];}else{const _0x46ed71=await _0x3467e2['text']()[_0x2011da(0x243)](()=>'unknown');return{'success':![],'error':'WDA\x20keys\x20failed:\x20'+_0x3467e2['status']+'\x20'+_0x46ed71};}}return _0xc19a1c[_0x2011da(0x4d1)]&&await this['wdaFetch'](_0x2011da(0x229)+_0x1c17a7+'/wda/keys',{'method':'POST','body':JSON[_0x2011da(0x2ba)]({'value':['\x0a']})})['catch'](()=>void 0x0),{'success':!![]};}catch(_0x4d35ef){return{'success':![],'error':_0x4d35ef instanceof Error?_0x4d35ef['message']:'Unknown\x20error\x20during\x20type'};}}async['clearText'](_0x3c3c17){const _0x5bf305=_0x3ecb81;try{const _0x15dd76=await this['findElement'](_0x3c3c17);if(!_0x15dd76[_0x5bf305(0x33f)]||!_0x15dd76['element']?.[_0x5bf305(0x2e2)])return{'success':![],'error':_0x15dd76['error']??'No\x20element\x20found\x20matching\x20'+JSON['stringify'](_0x3c3c17)};const _0x345bcd=_0x15dd76[_0x5bf305(0x143)][_0x5bf305(0x2e2)],_0x540b98=String(_0x15dd76['element']['value']??'');if(_0x540b98['length']===0x0)return{'success':!![]};const _0x2626d8=await this[_0x5bf305(0x536)](_0x345bcd['x']+_0x345bcd[_0x5bf305(0x39f)]/0x2,_0x345bcd['y']+_0x345bcd['height']/0x2,![]);if(!_0x2626d8[_0x5bf305(0x33f)])return{'success':![],'error':_0x2626d8[_0x5bf305(0x51e)]??'Failed\x20to\x20focus\x20element\x20before\x20clearing'};const _0xf8c29=new Array(_0x540b98[_0x5bf305(0x471)])['fill'](''),_0x35905f=await this[_0x5bf305(0x515)](),_0xdecb11=await this[_0x5bf305(0x26c)](_0x5bf305(0x229)+_0x35905f+_0x5bf305(0x512),{'method':_0x5bf305(0x183),'body':JSON['stringify']({'value':_0xf8c29})});if(!_0xdecb11['ok']){const _0x58b872=await _0xdecb11[_0x5bf305(0x44b)]()[_0x5bf305(0x243)](()=>_0x5bf305(0x50a));return{'success':![],'error':'WDA\x20keys\x20(backspace)\x20failed:\x20'+_0xdecb11['status']+'\x20'+_0x58b872};}return{'success':!![],'details':{'cleared':_0x540b98['length']}};}catch(_0x1ca48b){return{'success':![],'error':_0x1ca48b instanceof Error?_0x1ca48b[_0x5bf305(0x554)]:_0x5bf305(0x57a)};}}async[_0x3ecb81(0x154)](_0x33954c){const _0x4d13db=_0x3ecb81;try{const _0x256425=await this['ensureSession']();if(_0x33954c===_0x4d13db(0x426)){const _0x5c2b4f=await this['wdaFetch'](_0x4d13db(0x229)+_0x256425+_0x4d13db(0x255),{'method':_0x4d13db(0x183),'body':JSON[_0x4d13db(0x2ba)]({})});if(!_0x5c2b4f['ok']){const _0x32de48=await _0x5c2b4f[_0x4d13db(0x44b)]()['catch'](()=>_0x4d13db(0x50a));return{'success':![],'error':'WDA\x20lock\x20failed:\x20'+_0x5c2b4f['status']+'\x20'+_0x32de48};}return{'success':!![]};}if(_0x33954c==='back')return await this['_systemBack']();if(_0x33954c!==_0x4d13db(0x278)&&_0x33954c!==_0x4d13db(0x3f1)&&_0x33954c!=='volumeDown')return{'success':![],'error':_0x4d13db(0x1fc)+String(_0x33954c)};const _0x23767f=_0x33954c===_0x4d13db(0x278)?_0x4d13db(0x278):_0x33954c===_0x4d13db(0x3f1)?_0x4d13db(0x37c):'volumedown',_0xcc0b77=await this[_0x4d13db(0x26c)](_0x4d13db(0x229)+_0x256425+_0x4d13db(0x144),{'method':_0x4d13db(0x183),'body':JSON['stringify']({'name':_0x23767f})});if(!_0xcc0b77['ok']){const _0x50f8fb=await _0xcc0b77['text']()['catch'](()=>_0x4d13db(0x50a));return{'success':![],'error':_0x4d13db(0x372)+_0xcc0b77[_0x4d13db(0x416)]+'\x20'+_0x50f8fb};}return{'success':!![]};}catch(_0x1455aa){return{'success':![],'error':_0x1455aa instanceof Error?_0x1455aa['message']:'Unknown\x20error\x20during\x20pressKey'};}}async['_systemBack'](){const _0x4a16f9=_0x3ecb81;if('kKvnu'!=='kKvnu')return{'success':![],'results':[],'batched':![],'error':_0x4a16f9(0x339)};else{const _0x14f5d8=await this['_findNavBarBackButton']();if(_0x14f5d8){const _0x38b7d1=_0x14f5d8['x']+_0x14f5d8[_0x4a16f9(0x39f)]/0x2,_0x56e279=_0x14f5d8['y']+_0x14f5d8['height']/0x2,_0x5a74e6=await this[_0x4a16f9(0x515)](),_0x5943f9=await this[_0x4a16f9(0x3de)](_0x5a74e6,_0x38b7d1,_0x56e279);if(_0x5943f9['ok'])return'EVJrZ'===_0x4a16f9(0x29b)?{'success':!![],'details':{'method':_0x4a16f9(0x477),'tappedAt':{'x':_0x38b7d1,'y':_0x56e279}}}:{'name':'mcp-clients','status':'error','details':{'error':_0x28991c(_0x85e386)}};}const _0x2c2766=await this[_0x4a16f9(0x16b)](),_0x132528=await this['swipe']({'direction':_0x4a16f9(0x4ab),'from':{'x':0x0,'y':Math['floor'](_0x2c2766['height']/0x2)},'coordinateSource':'device'});return{'success':_0x132528['success'],'error':_0x132528[_0x4a16f9(0x51e)],'details':{'method':_0x4a16f9(0x1a7),'from':_0x132528['from'],'to':_0x132528['to']}};}}async[_0x3ecb81(0x3fa)](){const _0x580d56=_0x3ecb81;if(_0x580d56(0x1a8)===_0x580d56(0x1a8)){const _0x2980ba=await this[_0x580d56(0x28f)]();if(!_0x2980ba[_0x580d56(0x33f)]||!_0x2980ba[_0x580d56(0x2d6)])return null;const _0x3713f5=await this['getWindowSize'](),_0x227b1c=_0x3713f5['width']/0x2,_0x44b0cf=0x8c,_0x29bed8=[],_0x40b121=_0x126a0a=>{const _0x295743=_0x580d56,_0x155c0f=String(_0x126a0a['type']??''),_0x4d9ab5=_0x126a0a['rect'],_0x5be4a8=_0x155c0f[_0x295743(0x223)]()[_0x295743(0x26f)](_0x295743(0x148));if(_0x5be4a8&&_0x4d9ab5&&typeof _0x4d9ab5['x']===_0x295743(0x429)){const _0x18a3cb=_0x4d9ab5['x']<_0x227b1c&&_0x4d9ab5['y']<_0x44b0cf;if(_0x18a3cb&&_0x4d9ab5[_0x295743(0x39f)]>0x0&&_0x4d9ab5['height']>0x0){const _0x578208=String(_0x126a0a[_0x295743(0x3bb)]??_0x126a0a['name']??'')['toLowerCase']();_0x29bed8[_0x295743(0x359)]({'rect':_0x4d9ab5,'labelledBack':_0x578208[_0x295743(0x26f)]('back')});}}const _0x5e7f31=_0x126a0a[_0x295743(0x3f0)];if(Array[_0x295743(0x178)](_0x5e7f31)){if(_0x295743(0x2fc)!==_0x295743(0x2fc))_0x1e3e1b=!![];else{for(const _0x414051 of _0x5e7f31)_0x40b121(_0x414051);}}};_0x40b121(_0x2980ba[_0x580d56(0x2d6)]);if(_0x29bed8['length']===0x0)return null;return _0x29bed8[_0x580d56(0x158)]((_0x3b898f,_0x19db6f)=>{const _0x2b9611=_0x580d56;if('RCpmO'!=='RCpmO')_0x58f2fe=_0x501da3,_0x3949f7=_0xbcacb4;else{if(_0x3b898f[_0x2b9611(0x1ff)]!==_0x19db6f[_0x2b9611(0x1ff)])return _0x3b898f['labelledBack']?-0x1:0x1;if(_0x3b898f['rect']['x']!==_0x19db6f['rect']['x'])return _0x3b898f['rect']['x']-_0x19db6f['rect']['x'];return _0x3b898f['rect']['y']-_0x19db6f[_0x2b9611(0x2e2)]['y'];}}),_0x29bed8[0x0][_0x580d56(0x2e2)];}else{const _0x1e6aaa=new _0x29ac9a({'useInMemoryFileSystem':![],'skipAddingFilesFromTsConfig':!![],'skipFileDependencyResolution':!![],'skipLoadingLibFiles':!![],'compilerOptions':{'allowJs':!![],'jsx':0x1},'manipulationSettings':{'indentationText':_0x47c121['TwoSpaces']}});for(const _0x203bc8 of _0x484f54){try{_0x1e6aaa[_0x580d56(0x1e7)](_0x203bc8);}catch{}}return _0x1e6aaa;}}async[_0x3ecb81(0x3f4)](){const _0x1e4456=_0x3ecb81;try{const _0x51fb20=await this[_0x1e4456(0x515)](),_0xeea8fa=await this[_0x1e4456(0x26c)](_0x1e4456(0x229)+_0x51fb20+_0x1e4456(0x521),{'method':_0x1e4456(0x183),'body':JSON['stringify']({})});if(!_0xeea8fa['ok']){const _0x418a9c=await _0xeea8fa[_0x1e4456(0x44b)]()['catch'](()=>_0x1e4456(0x50a));return{'success':![],'error':'WDA\x20unlock\x20failed:\x20'+_0xeea8fa[_0x1e4456(0x416)]+'\x20'+_0x418a9c};}return{'success':!![]};}catch(_0x4eedd2){return{'success':![],'error':_0x4eedd2 instanceof Error?_0x4eedd2[_0x1e4456(0x554)]:_0x1e4456(0x1f6)};}}async[_0x3ecb81(0x2e9)](){const _0x965fd3=_0x3ecb81;try{if('HoCYc'!=='fiXKy'){const _0x5f397c=await this['ensureSession'](),_0x19e244=await this['wdaFetch'](_0x965fd3(0x229)+_0x5f397c+'/wda/locked');if(!_0x19e244['ok'])return null;const _0x58db43=await _0x19e244['json']();return typeof _0x58db43['value']===_0x965fd3(0x279)?_0x58db43[_0x965fd3(0x389)]:null;}else _0x3b2de4(_0x5183c8);}catch{return null;}}async[_0x3ecb81(0x32a)](){const _0x544b13=_0x3ecb81;try{const _0x1782e9=await this[_0x544b13(0x515)](),_0x3baaea=await this['wdaFetch'](_0x544b13(0x229)+_0x1782e9+_0x544b13(0x1d7));if(!_0x3baaea['ok']){const _0x54e43f=await _0x3baaea[_0x544b13(0x44b)]()['catch'](()=>_0x544b13(0x50a));return{'success':![],'error':_0x544b13(0x1e8)+_0x3baaea['status']+'\x20'+_0x54e43f};}const _0x4d4a23=await _0x3baaea['json']();return{'success':!![],'base64':_0x4d4a23[_0x544b13(0x389)]};}catch(_0x41a2d5){return{'success':![],'error':_0x41a2d5 instanceof Error?_0x41a2d5['message']:_0x544b13(0x4ae)};}}async['getSource'](){const _0x30c161=_0x3ecb81;try{const _0x9cd310=await this[_0x30c161(0x515)](),_0x114ab2=await this['wdaFetch'](_0x30c161(0x229)+_0x9cd310+_0x30c161(0x43d));if(!_0x114ab2['ok']){const _0x3aecff=await _0x114ab2['text']()['catch'](()=>'unknown');return{'success':![],'error':_0x30c161(0x2fd)+_0x114ab2[_0x30c161(0x416)]+'\x20'+_0x3aecff};}const _0x1fad25=await _0x114ab2['json']();return{'success':!![],'source':_0x1fad25['value']};}catch(_0x4b9a4d){return{'success':![],'error':_0x4b9a4d instanceof Error?_0x4b9a4d[_0x30c161(0x554)]:_0x30c161(0x268)};}}async[_0x3ecb81(0x460)](_0x41bce2,_0x4106f6={}){const _0x70ad6f=_0x3ecb81,_0x39c36e=_0x4106f6['timeoutMs']??0x1388,_0x534535=_0x4106f6['pollIntervalMs']??0x96,_0x5a396e=_0x4106f6['disappear']??![],_0x4d9f02=Date[_0x70ad6f(0x239)]();while(Date['now']()-_0x4d9f02<_0x39c36e){if('WFrHe'===_0x70ad6f(0x578)){const _0x256545=await this['findElement'](_0x41bce2),_0x4f8240=_0x256545['success']&&!!_0x256545[_0x70ad6f(0x143)];if(!_0x5a396e&&_0x4f8240){const _0xc9060e=_0x256545[_0x70ad6f(0x143)][_0x70ad6f(0x2e2)];return{'success':!![],'found':!![],'elapsedMs':Date[_0x70ad6f(0x239)]()-_0x4d9f02,'element':_0xc9060e?{'type':_0x256545[_0x70ad6f(0x143)][_0x70ad6f(0x284)]??'unknown','label':_0x256545['element']['label']??_0x256545['element']['name']??'','bounds':_0xc9060e}:void 0x0};}if(_0x5a396e&&!_0x4f8240)return{'success':!![],'found':![],'elapsedMs':Date[_0x70ad6f(0x239)]()-_0x4d9f02};await new Promise(_0x5beb9c=>setTimeout(_0x5beb9c,_0x534535));}else delete _0x35f263[_0x70ad6f(0x439)];}return{'success':![],'found':!_0x5a396e,'elapsedMs':Date['now']()-_0x4d9f02,'error':_0x5a396e?'Element\x20still\x20visible\x20after\x20'+_0x39c36e+'ms:\x20'+JSON['stringify'](_0x41bce2):'Element\x20not\x20visible\x20after\x20'+_0x39c36e+_0x70ad6f(0x22c)+JSON['stringify'](_0x41bce2)};}async[_0x3ecb81(0x45c)](_0x5c5040){const _0x4c1592=_0x3ecb81,_0x55710c=await this['findElement'](_0x5c5040);if(_0x55710c[_0x4c1592(0x51e)])return{'success':![],'visible':![],'error':_0x55710c[_0x4c1592(0x51e)]};if(_0x55710c['success']&&_0x55710c[_0x4c1592(0x143)]?.[_0x4c1592(0x2e2)])return{'success':!![],'visible':!![],'element':{'type':_0x55710c[_0x4c1592(0x143)][_0x4c1592(0x284)]??'unknown','label':_0x55710c[_0x4c1592(0x143)][_0x4c1592(0x3bb)]??_0x55710c['element']['name']??'','bounds':_0x55710c['element']['rect']}};return{'success':!![],'visible':![]};}async[_0x3ecb81(0x25a)](_0x5a353f){const _0xf5af64=_0x3ecb81,_0x19274d=await this['findElement'](_0x5a353f);if(_0x19274d[_0xf5af64(0x51e)])return{'success':![],'visible':![],'error':_0x19274d['error']};const _0xcba30a=_0x19274d[_0xf5af64(0x33f)]&&!!_0x19274d['element'];return{'success':!![],'visible':_0xcba30a};}async['fetchSourceTree'](_0x30c272){const _0x5c00d9=_0x3ecb81;try{const _0x2652ea=_0x30c272??await this[_0x5c00d9(0x515)](),_0x48b695=await this[_0x5c00d9(0x26c)](_0x5c00d9(0x229)+_0x2652ea+'/source?format=json');if(!_0x48b695['ok']){if(!_0x30c272){this[_0x5c00d9(0x583)]=null;const _0x4be193=await this['ensureSession'](),_0x5ea098=await this[_0x5c00d9(0x26c)]('/session/'+_0x4be193+'/source?format=json');if(!_0x5ea098['ok'])return null;const _0x9fdd31=await _0x5ea098['json']();return _0x9fdd31[_0x5c00d9(0x389)]??null;}return null;}const _0x105240=await _0x48b695[_0x5c00d9(0x163)]();return _0x105240['value']??null;}catch{return null;}}['findElementFromTree'](_0x1ce0b6,_0x595b8f){const _0xa89793=_0x3ecb81;return this[_0xa89793(0x2c1)](_0x1ce0b6,_0x595b8f);}async[_0x3ecb81(0x4f7)](_0x45fdff){const _0x45cf05=_0x3ecb81;try{const _0x19647c=await this['ensureSession'](),_0x3e2a75=await this['fetchSourceTree'](_0x19647c);if(!_0x3e2a75)return{'result':{'success':![],'error':_0x45cf05(0x339)},'tree':null};const _0x2f94d7=this[_0x45cf05(0x2c1)](_0x3e2a75,_0x45fdff);if(_0x2f94d7['length']===0x0){const _0x43f0ee=this[_0x45cf05(0x1d8)](_0x3e2a75,0x32);return{'result':{'success':![],'matchCount':0x0,'availableElements':_0x43f0ee,'error':'No\x20element\x20found\x20matching\x20query:\x20'+JSON['stringify'](_0x45fdff)},'tree':_0x3e2a75};}const _0x590a39=_0x45fdff[_0x45cf05(0x3d4)]??0x0;if(_0x590a39>=_0x2f94d7['length'])return{'result':{'success':![],'matchCount':_0x2f94d7['length'],'error':'Index\x20'+_0x590a39+'\x20out\x20of\x20range.\x20Found\x20'+_0x2f94d7[_0x45cf05(0x471)]+'\x20matching\x20element(s).','availableElements':_0x2f94d7[_0x45cf05(0x362)](_0x19ba6a=>({'type':_0x19ba6a['type']??_0x45cf05(0x50a),'label':_0x19ba6a[_0x45cf05(0x3bb)]??'','text':String(_0x19ba6a[_0x45cf05(0x389)]??_0x19ba6a[_0x45cf05(0x3bb)]??'')}))},'tree':_0x3e2a75};const _0x405196=_0x2f94d7[_0x590a39],_0x5dc8f3=_0x405196[_0x45cf05(0x2e2)];if(!_0x5dc8f3)return{'result':{'success':![],'matchCount':_0x2f94d7[_0x45cf05(0x471)],'error':'Matched\x20element\x20has\x20no\x20bounds/rect\x20information.'},'tree':_0x3e2a75};const _0x55d880=_0x5dc8f3['x']+_0x5dc8f3['width']/0x2,_0x3698eb=_0x5dc8f3['y']+_0x5dc8f3[_0x45cf05(0x197)]/0x2,_0x36e810=await this['tapAtPoint'](_0x19647c,_0x55d880,_0x3698eb);if(!_0x36e810['ok'])return{'result':{'success':![],'matchCount':_0x2f94d7['length'],'error':_0x36e810[_0x45cf05(0x51e)]??'WDA\x20tap\x20failed','element':{'type':_0x405196['type']??_0x45cf05(0x50a),'label':_0x405196['label']??_0x405196[_0x45cf05(0x34d)]??'','bounds':_0x5dc8f3},'tappedAt':{'x':_0x55d880,'y':_0x3698eb}},'tree':_0x3e2a75};return{'result':{'success':!![],'matchCount':_0x2f94d7['length'],'element':{'type':_0x405196[_0x45cf05(0x284)]??_0x45cf05(0x50a),'label':_0x405196[_0x45cf05(0x3bb)]??_0x405196[_0x45cf05(0x34d)]??'','bounds':_0x5dc8f3},'tappedAt':{'x':_0x55d880,'y':_0x3698eb}},'tree':_0x3e2a75};}catch(_0x80f368){return{'result':{'success':![],'error':_0x80f368 instanceof Error?_0x80f368['message']:_0x45cf05(0x17f)},'tree':null};}}async['sendW3CActions'](_0x1efaec,_0x538a54){const _0xf4ea6c=_0x3ecb81;try{if('GHiSn'==='dLIBb')_0x244d43['push']({'type':_0xf4ea6c(0x1e6),'duration':0x0});else{const _0x52b59e=await this['wdaFetch'](_0xf4ea6c(0x229)+_0x1efaec+_0xf4ea6c(0x233),{'method':_0xf4ea6c(0x183),'body':JSON[_0xf4ea6c(0x2ba)]({'actions':_0x538a54})});return _0x52b59e['ok'];}}catch{return![];}}[_0x3ecb81(0x465)](_0x2a1730,_0x11c631){const _0x5cd64b=_0x3ecb81;return[{'type':_0x5cd64b(0x53a),'duration':0x0,'x':_0x2a1730,'y':_0x11c631},{'type':'pointerDown','button':0x0},{'type':_0x5cd64b(0x1e6),'duration':0x32},{'type':'pointerUp','button':0x0}];}async[_0x3ecb81(0x25f)](_0x24cdcd,_0x842b7b={}){const _0x48440b=_0x3ecb81;try{const _0x57cc56=_0x842b7b[_0x48440b(0x583)]??await this[_0x48440b(0x515)](),_0x4cc76d=await this[_0x48440b(0x420)](_0x57cc56);if(!_0x4cc76d){if('eAgJj'!=='eAgJj')_0x5ad69f[_0x48440b(0x359)](_0x3e9601['file']['relPath']+':'+_0x2a25f3['line']);else return{'success':![],'error':_0x48440b(0x339),'batched':![]};}const _0x817f29=this[_0x48440b(0x2c1)](_0x4cc76d,_0x24cdcd);if(_0x817f29[_0x48440b(0x471)]===0x0)return{'success':![],'error':'No\x20element\x20found\x20matching\x20query:\x20'+JSON['stringify'](_0x24cdcd),'batched':![]};const _0x41f72c=_0x24cdcd[_0x48440b(0x3d4)]??0x0,_0x31a7a8=_0x817f29[_0x41f72c];if(!_0x31a7a8||!_0x31a7a8['rect'])return{'success':![],'error':_0x41f72c>=_0x817f29['length']?'Index\x20'+_0x41f72c+'\x20out\x20of\x20range.\x20Found\x20'+_0x817f29[_0x48440b(0x471)]+'\x20matching\x20element(s).':_0x48440b(0x568),'batched':![]};const _0x3f2394=_0x31a7a8['rect'],_0x5afd1e=_0x3f2394['x']+_0x3f2394[_0x48440b(0x39f)]/0x2,_0x29cc38=_0x3f2394['y']+_0x3f2394[_0x48440b(0x197)]/0x2,_0x3fc926={'type':_0x31a7a8['type']??'unknown','label':_0x31a7a8['label']??_0x31a7a8[_0x48440b(0x34d)]??'','bounds':_0x3f2394},_0x4966b4=await this[_0x48440b(0x445)](_0x57cc56,[{'type':_0x48440b(0x2e3),'id':'finger1','parameters':{'pointerType':'touch'},'actions':this[_0x48440b(0x465)](_0x5afd1e,_0x29cc38)}]);let _0x18f044=_0x4966b4;if(!_0x4966b4){const _0x202abb=await this['tap'](_0x5afd1e,_0x29cc38,![]);if(!_0x202abb['success'])return{'success':![],'error':_0x202abb['error']??'WDA\x20tap\x20failed\x20(serial\x20fallback)','element':_0x3fc926,'tappedAt':{'x':_0x5afd1e,'y':_0x29cc38},'batched':![]};_0x18f044=![];}let _0x147113,_0x3c224e,_0x3db917=!![];if(_0x842b7b[_0x48440b(0x260)]){let _0xefae5c,_0x2048a3;if(_0x842b7b[_0x48440b(0x583)]){const _0x3f3ca3=Date['now']()+0xbb8;for(;;){const _0x10a711=await this['fetchSourceTree'](_0x842b7b[_0x48440b(0x583)]);if(_0x10a711){const _0x2f411f=this[_0x48440b(0x2c1)](_0x10a711,_0x842b7b[_0x48440b(0x260)]);if(_0x2f411f['length']>0x0&&_0x2f411f[0x0]){_0xefae5c=_0x2f411f[0x0];break;}}if(Date[_0x48440b(0x239)]()>=_0x3f3ca3){_0x2048a3=_0x10a711?_0x48440b(0x551)+JSON['stringify'](_0x842b7b['verifySelector']):_0x48440b(0x375);break;}await new Promise(_0x543124=>setTimeout(_0x543124,0x1f4));}_0x147113={'visible':!!_0xefae5c,'element':_0xefae5c&&_0xefae5c[_0x48440b(0x2e2)]?{'type':_0xefae5c[_0x48440b(0x284)]??'unknown','label':_0xefae5c['label']??_0xefae5c[_0x48440b(0x34d)]??'','bounds':_0xefae5c['rect']}:void 0x0},_0x3db917=!!_0xefae5c,!_0x3db917&&(_0x3c224e=_0x48440b(0x367)+_0x2048a3);}else{const _0x3f2b76=await this[_0x48440b(0x460)](_0x842b7b[_0x48440b(0x260)],{'timeoutMs':0xbb8});_0x147113={'visible':_0x3f2b76['found']&&_0x3f2b76['success'],'element':_0x3f2b76[_0x48440b(0x143)]},_0x3db917=_0x3f2b76[_0x48440b(0x33f)]&&_0x3f2b76[_0x48440b(0x49b)],!_0x3db917&&(_0x3c224e=_0x48440b(0x367)+(_0x3f2b76['error']??'expected\x20element\x20'+JSON['stringify'](_0x842b7b[_0x48440b(0x260)])+'\x20not\x20visible'));}}return{'success':_0x3db917,'element':_0x3fc926,'tappedAt':{'x':_0x5afd1e,'y':_0x29cc38},'verifyResult':_0x147113,'batched':_0x18f044,..._0x3c224e?{'error':_0x3c224e}:{}};}catch(_0x2bc8e0){if(_0x48440b(0x36c)!=='RefTh'){const _0x29dc2a=/import\s*\{([^}]*)\}\s*from\s*["']expo-camera["']/g;let _0x42ec66;while((_0x42ec66=_0x29dc2a[_0x48440b(0x291)](_0x5496f5))!==null){const _0x5f1cea=_0x42ec66[0x1]['split'](',')[_0x48440b(0x362)](_0x455fb8=>_0x455fb8['trim']()['split'](/\s+as\s+/)[0x0][_0x48440b(0x1cd)]());if(_0x5f1cea[_0x48440b(0x26f)]('CameraView'))return!![];}return![];}else return{'success':![],'error':_0x2bc8e0 instanceof Error?_0x2bc8e0[_0x48440b(0x554)]:_0x48440b(0x37f),'batched':![]};}}async['typeIntoField'](_0x4bfbf0,_0x35f226,_0x4ab271={}){const _0x351f94=_0x3ecb81;try{const _0x591043=await this['ensureSession'](),_0x2ad930=await this[_0x351f94(0x420)](_0x591043);if(!_0x2ad930)return{'success':![],'error':_0x351f94(0x339),'batched':![]};const _0x52b0df=this['searchElements'](_0x2ad930,_0x4bfbf0);if(_0x52b0df['length']===0x0)return{'success':![],'matchCount':0x0,'error':_0x351f94(0x18b)+JSON[_0x351f94(0x2ba)](_0x4bfbf0),'batched':![]};const _0x43e382=_0x4bfbf0[_0x351f94(0x3d4)]??0x0,_0x426b3b=_0x52b0df[_0x43e382];if(!_0x426b3b||!_0x426b3b['rect'])return{'success':![],'matchCount':_0x52b0df['length'],'error':_0x43e382>=_0x52b0df['length']?_0x351f94(0x2b8)+_0x43e382+_0x351f94(0x21f)+_0x52b0df['length']+_0x351f94(0x54b):'Matched\x20element\x20has\x20no\x20bounds/rect\x20information.','batched':![]};const _0x66f38a=_0x426b3b[_0x351f94(0x2e2)],_0x386317=_0x66f38a['x']+_0x66f38a[_0x351f94(0x39f)]/0x2,_0x5a2153=_0x66f38a['y']+_0x66f38a['height']/0x2,_0x2095d9={'type':_0x426b3b['type']??'unknown','label':_0x426b3b['label']??_0x426b3b[_0x351f94(0x34d)]??'','bounds':_0x66f38a};if(_0x4ab271['clearFirst']){const _0x15f262=await this['clearText'](_0x4bfbf0);if(!_0x15f262['success'])return{'success':![],'matchCount':_0x52b0df['length'],'element':_0x2095d9,'error':_0x15f262['error']??'Failed\x20to\x20clear\x20field\x20before\x20typing','batched':![]};}const _0x3f539b=Array['from'](_0x35f226),_0x54120c=[],_0x529e5f=0x4;for(let _0x33be59=0x0;_0x33be59<_0x529e5f;_0x33be59++){_0x54120c['push']({'type':_0x351f94(0x1e6),'duration':0x0});}_0x54120c[_0x351f94(0x359)]({'type':_0x351f94(0x1e6),'duration':0x12c});for(const _0x13430f of _0x3f539b){if(_0x351f94(0x42b)!==_0x351f94(0x14e))_0x54120c[_0x351f94(0x359)]({'type':_0x351f94(0x4ad),'value':_0x13430f}),_0x54120c['push']({'type':'keyUp','value':_0x13430f});else'use strict';}const _0x5da844=await this[_0x351f94(0x445)](_0x591043,[{'type':'pointer','id':_0x351f94(0x2ca),'parameters':{'pointerType':'touch'},'actions':this['buildTapPointerActions'](_0x386317,_0x5a2153)},{'type':_0x351f94(0x23b),'id':_0x351f94(0x2dd),'actions':_0x54120c}]);if(_0x5da844)return{'success':!![],'matchCount':_0x52b0df['length'],'element':_0x2095d9,'batched':!![]};const _0x6c5a5f=await this[_0x351f94(0x48b)](_0x4bfbf0);if(!_0x6c5a5f[_0x351f94(0x33f)])return{'success':![],'matchCount':_0x52b0df['length'],'element':_0x2095d9,'error':_0x6c5a5f['error']??'Failed\x20to\x20focus\x20field\x20(serial\x20fallback)','batched':![]};const _0x4790e8=await this['type'](_0x35f226);if(!_0x4790e8['success']){if('gLouG'===_0x351f94(0x52b))_0xbc0eb1(_0x5bdbbd('Skipped\x20installCeraph()\x20injection.\x20Re-run\x20`npx\x20@ceraph/react-native-mcp\x20init`\x20to\x20wire\x20it.'));else return{'success':![],'matchCount':_0x52b0df[_0x351f94(0x471)],'element':_0x2095d9,'error':_0x4790e8[_0x351f94(0x51e)]??_0x351f94(0x4f8),'batched':![]};}return{'success':!![],'matchCount':_0x52b0df['length'],'element':_0x2095d9,'batched':![]};}catch(_0x4b924f){return{'success':![],'error':_0x4b924f instanceof Error?_0x4b924f['message']:_0x351f94(0x20c),'batched':![]};}}async[_0x3ecb81(0x240)](_0x1eeb77){const _0x20c1aa=_0x3ecb81;if(_0x20c1aa(0x561)!=='DIByo'){if(_0x1eeb77[_0x20c1aa(0x471)]===0x0)return{'success':![],'results':[],'batched':![],'error':'tapChain\x20called\x20with\x20empty\x20queries\x20array'};try{const _0x590710=await this[_0x20c1aa(0x515)](),_0x109c7b=await this[_0x20c1aa(0x420)](_0x590710);if(!_0x109c7b)return{'success':![],'results':[],'batched':![],'error':'Failed\x20to\x20get\x20element\x20tree'};const _0x4f178a=[];for(const _0x5987c6 of _0x1eeb77){const _0x519fdb=this[_0x20c1aa(0x2c1)](_0x109c7b,_0x5987c6);if(_0x519fdb[_0x20c1aa(0x471)]===0x0)return{'success':![],'results':[..._0x4f178a['map'](_0x2e5d5e=>({'query':_0x2e5d5e[_0x20c1aa(0x54e)],'element':_0x2e5d5e['element'],'tappedAt':_0x2e5d5e['center']})),{'query':_0x5987c6,'error':_0x20c1aa(0x2de)+JSON[_0x20c1aa(0x2ba)](_0x5987c6)}],'batched':![],'error':'No\x20element\x20found\x20for\x20query\x20at\x20index\x20'+_0x4f178a['length']};const _0x4d8574=_0x5987c6[_0x20c1aa(0x3d4)]??0x0,_0x470278=_0x519fdb[_0x4d8574];if(!_0x470278||!_0x470278[_0x20c1aa(0x2e2)])return{'success':![],'results':[..._0x4f178a['map'](_0x17f627=>({'query':_0x17f627[_0x20c1aa(0x54e)],'element':_0x17f627[_0x20c1aa(0x143)],'tappedAt':_0x17f627['center']})),{'query':_0x5987c6,'error':_0x4d8574>=_0x519fdb['length']?_0x20c1aa(0x2b8)+_0x4d8574+_0x20c1aa(0x21f)+_0x519fdb['length']+_0x20c1aa(0x54b):_0x20c1aa(0x568)}],'batched':![],'error':_0x20c1aa(0x203)+_0x4f178a['length']};_0x4f178a[_0x20c1aa(0x359)]({'query':_0x5987c6,'element':{'type':_0x470278[_0x20c1aa(0x284)]??'unknown','label':_0x470278[_0x20c1aa(0x3bb)]??_0x470278['name']??'','bounds':_0x470278['rect']},'center':{'x':_0x470278[_0x20c1aa(0x2e2)]['x']+_0x470278['rect'][_0x20c1aa(0x39f)]/0x2,'y':_0x470278['rect']['y']+_0x470278['rect'][_0x20c1aa(0x197)]/0x2}});}const _0x5e5ccb=[];for(let _0x5336aa=0x0;_0x5336aa<_0x4f178a['length'];_0x5336aa++){const _0x2f98a0=_0x4f178a[_0x5336aa];_0x5e5ccb[_0x20c1aa(0x359)](...this[_0x20c1aa(0x465)](_0x2f98a0['center']['x'],_0x2f98a0['center']['y'])),_0x5336aa<_0x4f178a[_0x20c1aa(0x471)]-0x1&&_0x5e5ccb['push']({'type':'pause','duration':0x64});}const _0x1452e1=await this['sendW3CActions'](_0x590710,[{'type':'pointer','id':_0x20c1aa(0x2ca),'parameters':{'pointerType':'touch'},'actions':_0x5e5ccb}]);if(_0x1452e1)return{'success':!![],'results':_0x4f178a['map'](_0x1ea77d=>({'query':_0x1ea77d[_0x20c1aa(0x54e)],'element':_0x1ea77d[_0x20c1aa(0x143)],'tappedAt':_0x1ea77d[_0x20c1aa(0x3fc)]})),'batched':!![]};const _0x477c17=[];for(const _0x5b5f80 of _0x4f178a){const _0x2f9f62=await this[_0x20c1aa(0x536)](_0x5b5f80[_0x20c1aa(0x3fc)]['x'],_0x5b5f80[_0x20c1aa(0x3fc)]['y'],![]);if(!_0x2f9f62[_0x20c1aa(0x33f)])return _0x477c17[_0x20c1aa(0x359)]({'query':_0x5b5f80[_0x20c1aa(0x54e)],'element':_0x5b5f80[_0x20c1aa(0x143)],'tappedAt':_0x5b5f80['center'],'error':_0x2f9f62[_0x20c1aa(0x51e)]??_0x20c1aa(0x160)}),{'success':![],'results':_0x477c17,'batched':![],'error':_0x20c1aa(0x14c)+(_0x477c17['length']-0x1)};_0x477c17[_0x20c1aa(0x359)]({'query':_0x5b5f80['query'],'element':_0x5b5f80['element'],'tappedAt':_0x5b5f80[_0x20c1aa(0x3fc)]});}return{'success':!![],'results':_0x477c17,'batched':![]};}catch(_0x504c8d){return{'success':![],'results':[],'batched':![],'error':_0x504c8d instanceof Error?_0x504c8d['message']:_0x20c1aa(0x34f)};}}else return{'success':!![],'results':_0x58c5c9['map'](_0x706a67=>({'query':_0x706a67[_0x20c1aa(0x54e)],'element':_0x706a67['element'],'tappedAt':_0x706a67['center']})),'batched':!![]};}async['getOrientation'](){const _0x5068f3=_0x3ecb81;try{const _0x2c4256=await this[_0x5068f3(0x515)](),_0x54c114=await this[_0x5068f3(0x26c)](_0x5068f3(0x229)+_0x2c4256+'/orientation');if(!_0x54c114['ok'])return null;const _0x38a34c=await _0x54c114[_0x5068f3(0x163)]();return _0x38a34c['value']??null;}catch{return null;}}async[_0x3ecb81(0x2af)](_0x26d27e){const _0x2af371=_0x3ecb81;if(_0x2af371(0x230)===_0x2af371(0x4cc))_0x821c41(_0x1019ed(_0x2af371(0x404)));else try{const _0x9fbe0f=await this['ensureSession'](),_0x1c1614=await this['wdaFetch'](_0x2af371(0x229)+_0x9fbe0f+'/orientation',{'method':_0x2af371(0x183),'body':JSON['stringify']({'orientation':_0x26d27e['toUpperCase']()})});if(!_0x1c1614['ok']){const _0x34284b=await _0x1c1614['text']()['catch'](()=>_0x2af371(0x50a));return{'success':![],'error':_0x2af371(0x4d8)+_0x1c1614[_0x2af371(0x416)]+'\x20'+_0x34284b};}return{'success':!![]};}catch(_0x1676fa){return{'success':![],'error':_0x1676fa instanceof Error?_0x1676fa['message']:'Unknown\x20error\x20during\x20setOrientation'};}}async['getActiveAppInfo'](){const _0x26bdac=_0x3ecb81;try{const _0x3b9595=await this[_0x26bdac(0x515)](),_0x449608=await this[_0x26bdac(0x26c)](_0x26bdac(0x229)+_0x3b9595+'/wda/activeAppInfo');if(!_0x449608['ok']){const _0x35f671=await _0x449608['text']()[_0x26bdac(0x243)](()=>_0x26bdac(0x50a));return{'success':![],'error':'WDA\x20activeAppInfo\x20failed:\x20'+_0x449608[_0x26bdac(0x416)]+'\x20'+_0x35f671};}const _0x1c1d02=await _0x449608['json']();return{'success':!![],'bundleId':_0x1c1d02[_0x26bdac(0x389)]?.['bundleId'],'pid':_0x1c1d02[_0x26bdac(0x389)]?.['pid'],'name':_0x1c1d02['value']?.[_0x26bdac(0x34d)]};}catch(_0x5a1edc){return{'success':![],'error':_0x5a1edc instanceof Error?_0x5a1edc['message']:'Unknown\x20error\x20during\x20getActiveAppInfo'};}}async[_0x3ecb81(0x201)](_0x35acdc){const _0x1ba89b=_0x3ecb81;try{const _0x5799fa=await this['ensureSession'](),_0x1788ee=await this[_0x1ba89b(0x26c)]('/session/'+_0x5799fa+_0x1ba89b(0x2b6),{'method':_0x1ba89b(0x183),'body':JSON[_0x1ba89b(0x2ba)]({'bundleId':_0x35acdc})});if(!_0x1788ee['ok']){const _0x380b04=await _0x1788ee[_0x1ba89b(0x44b)]()[_0x1ba89b(0x243)](()=>_0x1ba89b(0x50a));return{'success':![],'error':_0x1ba89b(0x3df)+_0x1788ee['status']+'\x20'+_0x380b04};}return{'success':!![]};}catch(_0x519935){return{'success':![],'error':_0x519935 instanceof Error?_0x519935['message']:_0x1ba89b(0x307)};}}async[_0x3ecb81(0x18d)](_0x2388a5){const _0x17c7c0=_0x3ecb81;try{const _0x3c54d9=await this[_0x17c7c0(0x515)](),_0x2a3476=await this['wdaFetch'](_0x17c7c0(0x229)+_0x3c54d9+'/url',{'method':_0x17c7c0(0x183),'body':JSON['stringify']({'url':_0x2388a5})});if(!_0x2a3476['ok']){const _0x4413f9=await _0x2a3476['text']()[_0x17c7c0(0x243)](()=>'unknown'),_0x9b516b=_0x4413f9['includes'](_0x17c7c0(0x470))&&_0x4413f9['includes'](_0x17c7c0(0x4a6));if(_0x9b516b&&_0x2388a5['startsWith'](_0x17c7c0(0x448)))return{'success':![],'error':_0x17c7c0(0x3be)};return{'success':![],'error':'WDA\x20openUrl\x20failed:\x20'+_0x2a3476[_0x17c7c0(0x416)]+'\x20'+_0x4413f9};}return{'success':!![]};}catch(_0x2bbb77){return{'success':![],'error':_0x2bbb77 instanceof Error?_0x2bbb77[_0x17c7c0(0x554)]:_0x17c7c0(0x27c)};}}async['terminateAppViaWDA'](_0x4bcca3){const _0x4e54ef=_0x3ecb81;try{const _0x1687d9=await this['ensureSession'](),_0x5ab12a=await this['wdaFetch'](_0x4e54ef(0x229)+_0x1687d9+'/wda/apps/terminate',{'method':'POST','body':JSON['stringify']({'bundleId':_0x4bcca3})});if(!_0x5ab12a['ok']){const _0x47c101=await _0x5ab12a[_0x4e54ef(0x44b)]()['catch'](()=>_0x4e54ef(0x50a));return{'success':![],'error':_0x4e54ef(0x556)+_0x5ab12a[_0x4e54ef(0x416)]+'\x20'+_0x47c101};}return this[_0x4e54ef(0x583)]=null,{'success':!![]};}catch(_0x15f74c){return{'success':![],'error':_0x15f74c instanceof Error?_0x15f74c['message']:'Unknown\x20error\x20during\x20terminateAppViaWDA'};}}async[_0x3ecb81(0x3b5)](){try{const _0x50f43e=await this['wdaFetch']('/status',{},0x7d0);return _0x50f43e['ok'];}catch{return![];}}['searchElements'](_0x18c056,_0x2dc502){const _0x52011f=_0x3ecb81,_0x3f4255=[];this[_0x52011f(0x482)](_0x18c056,_0x2dc502)&&_0x3f4255['push'](_0x18c056);const _0x33bcce=_0x18c056[_0x52011f(0x3f0)];if(Array['isArray'](_0x33bcce))for(const _0x123c72 of _0x33bcce){_0x3f4255['push'](...this['searchElements'](_0x123c72,_0x2dc502));}return _0x3f4255;}['elementMatches'](_0x581602,_0x899689){const _0x55e307=_0x3ecb81;if(_0x899689['text']!==void 0x0){const _0x56c5ba=_0x899689[_0x55e307(0x44b)][_0x55e307(0x223)](),_0xb84c94=[_0x581602['value'],_0x581602[_0x55e307(0x3bb)],_0x581602['name']]['filter'](Boolean)['map'](_0x547100=>String(_0x547100)['toLowerCase']());if(!_0xb84c94[_0x55e307(0x28e)](_0x2102a4=>_0x2102a4[_0x55e307(0x26f)](_0x56c5ba))){if('JMolb'!=='hjGhN')return![];else{const _0x5b0b81=_0xc0e636['getNamedImports']();!_0x5b0b81[_0x55e307(0x28e)](_0x174abf=>_0x174abf[_0x55e307(0x1a3)]()===_0x3fd19a)&&_0x4d2151['addNamedImport'](_0x19901b);}}}if(_0x899689[_0x55e307(0x2dc)]!==void 0x0){const _0x2b1d88=String(_0x581602['label']??_0x581602['name']??'');if(!_0x2b1d88['toLowerCase']()['includes'](_0x899689['accessibilityLabel'][_0x55e307(0x223)]()))return![];}if(_0x899689[_0x55e307(0x284)]!==void 0x0){const _0x577ec2=String(_0x581602[_0x55e307(0x284)]??'');if(!_0x577ec2[_0x55e307(0x223)]()['includes'](_0x899689[_0x55e307(0x284)][_0x55e307(0x223)]())){if('loRVz'===_0x55e307(0x2fb)){const _0x5a892d=_0xb9e343['getImportDeclaration'](_0x266d34);if(!_0x5a892d)return![];const _0x208ba2=_0x5a892d[_0x55e307(0x437)](),_0x58a1ce=_0x208ba2['find'](_0x49921d=>_0x49921d[_0x55e307(0x1a3)]()===_0x1cfe50);if(!_0x58a1ce)return![];_0x58a1ce[_0x55e307(0x24c)]();const _0x208a68=_0x5a892d[_0x55e307(0x437)](),_0x5c8bed=_0x5a892d['getDefaultImport']()!=null;return _0x208a68['length']===0x0&&!_0x5c8bed&&_0x5a892d['remove'](),!![];}else return![];}}return _0x899689['text']!==void 0x0||_0x899689['accessibilityLabel']!==void 0x0||_0x899689['type']!==void 0x0||_0x899689['index']!==void 0x0;}['collectVisibleElements'](_0x28ee4d,_0x53f376){const _0x132876=_0x3ecb81,_0x2f5eb1=[];if(_0x53f376<=0x0)return _0x2f5eb1;const _0x1d29cf=String(_0x28ee4d[_0x132876(0x3bb)]??_0x28ee4d['name']??''),_0x282b38=String(_0x28ee4d[_0x132876(0x389)]??''),_0x2f89d5=String(_0x28ee4d[_0x132876(0x284)]??'');(_0x1d29cf||_0x282b38)&&_0x2f5eb1['push']({'type':_0x2f89d5,'label':_0x1d29cf,'text':_0x282b38});const _0x277cbf=_0x28ee4d[_0x132876(0x3f0)];if(Array['isArray'](_0x277cbf))for(const _0x63e21a of _0x277cbf){const _0x28bda0=_0x53f376-_0x2f5eb1[_0x132876(0x471)];if(_0x28bda0<=0x0)break;_0x2f5eb1['push'](...this[_0x132876(0x1d8)](_0x63e21a,_0x28bda0));}return _0x2f5eb1;}[_0x3ecb81(0x161)](){const _0x4a572e=_0x3ecb81;this['sessionId']=null,this[_0x4a572e(0x503)]=null,this[_0x4a572e(0x1c4)]=null;}};}}),_0x15dafc,_0xc961e7=_0x4d3071({'src/device-autonomy.ts'(){'use strict';const _0x4794f4=_0x5ccc4b;_0x15dafc=class{constructor(_0x30b9dc){this['screen']=_0x30b9dc;}async[_0x4794f4(0x337)](){const _0x44136a=_0x4794f4,_0x3d0815=await this['screen'][_0x44136a(0x252)]();if(!_0x3d0815){const _0x441e59=await this[_0x44136a(0x212)][_0x44136a(0x406)]()[_0x44136a(0x243)](()=>'http://localhost:8100'),_0x43c3fa=_0x441e59[_0x44136a(0x2be)](/^https?:\/\//,'');return{'awake':![],'lockState':_0x44136a(0x50a),'remediation':'WebDriverAgent\x20is\x20not\x20reachable\x20at\x20'+_0x43c3fa+_0x44136a(0x3e0)};}const _0x3cda38=await this['getLockState']();if(_0x3cda38==='unlocked')return'cXifV'===_0x44136a(0x486)?{'result':{'success':![],'error':_0x57cc67 instanceof _0x51bd7d?_0x5d8ebe[_0x44136a(0x554)]:_0x44136a(0x17f)},'tree':null}:{'awake':!![],'lockState':_0x44136a(0x479)};if(_0x3cda38==='locked'||_0x3cda38===_0x44136a(0x180)){const _0x1ebacf=await this[_0x44136a(0x212)][_0x44136a(0x3f4)]();if(_0x1ebacf[_0x44136a(0x33f)]){const _0x269fa2=await this['getLockState']();if(_0x269fa2==='unlocked')return{'awake':!![],'lockState':'unlocked'};}await this[_0x44136a(0x212)][_0x44136a(0x154)]('home')['catch'](()=>void 0x0);const _0x3bdd35=await this[_0x44136a(0x2fa)]();if(_0x3bdd35==='unlocked')return{'awake':!![],'lockState':_0x44136a(0x479)};return{'awake':![],'lockState':_0x3bdd35,'remediation':_0x44136a(0x418)};}return{'awake':![],'lockState':_0x3cda38,'remediation':_0x44136a(0x221)};}['keepAliveHeartbeat'](_0x68788f={}){const _0x4d6304=_0x4794f4,_0x2aa75a=_0x68788f['intervalMs']??0x5dc,_0x135d55=setInterval(()=>{const _0x190bde=_0x4997;this['screen'][_0x190bde(0x3b5)]()['catch'](()=>void 0x0);},_0x2aa75a);if(typeof _0x135d55[_0x4d6304(0x4ff)]===_0x4d6304(0x19b))_0x135d55[_0x4d6304(0x4ff)]();let _0x5ccda0=![];return{'intervalMs':_0x2aa75a,'stop':()=>{if(_0x5ccda0)return;_0x5ccda0=!![],clearInterval(_0x135d55);}};}async['getLockState'](){const _0x495b23=_0x4794f4,_0x3edfc1=await this[_0x495b23(0x212)]['isLocked']();if(_0x3edfc1===!![])return'locked';if(_0x3edfc1===![]){const _0x4d9505=await this[_0x495b23(0x1bb)]();return _0x4d9505?_0x495b23(0x563):'unlocked';}const _0x4f2d33=await this['hasCoverSheet']();if(_0x4f2d33===null)return _0x495b23(0x50a);return _0x4f2d33?'locked':'unlocked';}async['hasCoverSheet'](){const _0x4e84fb=_0x4794f4,_0x9d029a=await this[_0x4e84fb(0x212)][_0x4e84fb(0x28f)]();if(!_0x9d029a['success']||!_0x9d029a[_0x4e84fb(0x2d6)])return null;const _0x20ade9=['sbcoversheet',_0x4e84fb(0x530),_0x4e84fb(0x1cb)];let _0x2a593d=![];const _0x486e46=_0x43f997=>{const _0x53dcfe=_0x4e84fb;if(_0x2a593d)return;const _0x3293d0=[_0x43f997['name'],_0x43f997['label'],_0x43f997['type']][_0x53dcfe(0x235)](Boolean)[_0x53dcfe(0x3aa)]('\x20')['toLowerCase']();if(_0x20ade9[_0x53dcfe(0x28e)](_0x38d382=>_0x3293d0['includes'](_0x38d382))){if(_0x53dcfe(0x419)!=='etQrt'){_0x2a593d=!![];return;}else{if(_0x3719ca(_0x2a430d))_0xc8395d[_0x53dcfe(0x359)](_0x141042);else _0x971846[_0x53dcfe(0x359)](_0x4c49b0);}}const _0x5a75b8=_0x43f997['children'];if(Array['isArray'](_0x5a75b8)){for(const _0x358e59 of _0x5a75b8)_0x486e46(_0x358e59);}};return _0x486e46(_0x9d029a['source']),_0x2a593d;}async['setOrientation'](_0x4ea620){const _0x4b252c=_0x4794f4;if('xXylw'===_0x4b252c(0x4d2)){if(_0x1fad87)return;if(_0x8375b3['isIdentifier'](_0x4ac275)&&_0x10351f['getText']()==='useEffect'){const _0x18de31=_0x5ef35c[_0x4b252c(0x33a)]();if(_0x18de31&&(_0x58f3b1[_0x4b252c(0x21d)](_0x18de31)||_0x2d15d9['isImportClause'](_0x18de31)))return;_0x53abf2=!![];}}else return this[_0x4b252c(0x212)]['setOrientation'](_0x4ea620);}[_0x4794f4(0x1fa)](){const _0x8a3109=_0x4794f4;return'njxwG'!==_0x8a3109(0x1bf)?{'success':![],'message':_0x8a3109(0x495)}:_0x14d1ae??_0x3a3da8(_0x1f0f7e(),_0x8a3109(0x2f8),_0x8a3109(0x373));}};}});import{spawn as _0x1746b0}from'child_process';import{mkdir as _0x400de0,rm,stat as _0x15d59e}from'fs/promises';import{dirname as _0x2c8865,join as _0x4a4f51}from'path';function _0x35fb1a(){return _0x4526cf;}var _0x4526cf,_0x512dbf,_0x3eb806=_0x4d3071({'src/video-recorder.ts'(){'use strict';_0x4526cf='unverified',_0x512dbf='macOS\x20Screen\x20Recording\x20permission\x20not\x20granted.\x20Open\x20System\x20Settings\x20→\x20Privacy\x20&\x20Security\x20→\x20Screen\x20Recording\x20and\x20enable\x20your\x20terminal\x20app\x20(Terminal\x20/\x20iTerm\x20/\x20Warp\x20/\x20Cursor\x20/\x20VS\x20Code\x20—\x20whichever\x20launched\x20the\x20MCP).\x20After\x20granting,\x20fully\x20quit\x20and\x20relaunch\x20the\x20terminal,\x20then\x20unplug\x20and\x20replug\x20your\x20iPhone\x20before\x20retrying.';}});import{spawn as _0x3b4351}from'child_process';import{createRequire}from'module';import{createServer as _0x2c37f1}from'net';import{dirname as _0x34cde5,join as _0x590df3}from'path';function _0x5a41d4(_0x3d0b2a){const _0x53438f=_0x5ccc4b,_0x249ad9=_0x35ac71=>{const _0xf6f3c2=_0x4997;try{const _0x1c3aac=createRequire(_0x35ac71),_0x5c58a0=_0x1c3aac['resolve'](_0xf6f3c2(0x4a8)),_0x2b30e1=_0x34cde5(_0x5c58a0);return _0x590df3(_0x2b30e1,_0xf6f3c2(0x296));}catch{return null;}};if(_0x3d0b2a){const _0x249ecc=_0x249ad9(new URL('package.json',_0x53438f(0x4f0)+(_0x3d0b2a['endsWith']('/')?_0x3d0b2a:_0x3d0b2a+'/')));if(_0x249ecc)return _0x249ecc;}return _0x249ad9(import.meta.url);}var _0x30d819=_0x4d3071({'src/wda-simulator.ts'(){'use strict';_0x495988();}});import{spawn as _0x41cf56}from'child_process';import{access as _0x544066}from'fs/promises';import{join as _0x54b1f0}from'path';function _0x28f71f(_0x280307){const _0x487a70=_0x5ccc4b;switch(_0x280307){case'npm':return{'bin':'npm','args':['install','-D',_0x2062e7]};case _0x487a70(0x54c):return{'bin':_0x487a70(0x54c),'args':[_0x487a70(0x532),'-D',_0x2062e7]};case'yarn':return{'bin':_0x487a70(0x571),'args':[_0x487a70(0x532),'-D',_0x2062e7]};case'bun':return{'bin':_0x487a70(0x2a0),'args':[_0x487a70(0x532),'-D',_0x2062e7]};}}function _0x6d3f23(_0x14aada){return _0x5a41d4(_0x14aada)!==null;}async function _0x7fee99(_0x23c6e9){try{return await _0x544066(_0x23c6e9),!![];}catch{return![];}}async function _0x1f1024(_0x5c4c67){for(const {file:_0x351f85,pm:_0x603379}of _0x1dc57e){if(await _0x7fee99(_0x54b1f0(_0x5c4c67,_0x351f85)))return _0x603379;}return'npm';}function _0x433ca4(_0x1475f3,_0x564086){const {bin:_0x34ca47,args:_0x52b987}=_0x28f71f(_0x1475f3),_0x412f12=0x5*0xea60;return new Promise(_0x1498da=>{const _0x17a7b5=_0x4997;let _0x54c5ca;try{_0x54c5ca=_0x41cf56(_0x34ca47,_0x52b987,{'cwd':_0x564086,'stdio':[_0x17a7b5(0x23a),0x2,0x2]});}catch(_0x2464cd){_0x1498da({'ok':![],'error':_0x17a7b5(0x234)+_0x34ca47+':\x20'+(_0x2464cd instanceof Error?_0x2464cd[_0x17a7b5(0x554)]:String(_0x2464cd))});return;}let _0x38c528=![];const _0x18a80a=_0x2ff463=>{const _0x504b86=_0x17a7b5;if(_0x504b86(0x50d)==='Ijtxe'){if(_0x38c528)return;_0x38c528=!![],clearTimeout(_0x1a4554),_0x1498da(_0x2ff463);}else return{'result':{'success':![],'matchCount':_0x2107f6['length'],'error':_0x5155cb['error']??'WDA\x20tap\x20failed','element':{'type':_0x358ffc[_0x504b86(0x284)]??_0x504b86(0x50a),'label':_0x5cba0d['label']??_0x5d6953['name']??'','bounds':_0x4f57f2},'tappedAt':{'x':_0x53401b,'y':_0x4ea98f}},'tree':_0x2bcec1};},_0x1a4554=setTimeout(()=>{const _0x24e131=_0x17a7b5;try{_0x54c5ca['kill']('SIGKILL');}catch{}_0x18a80a({'ok':![],'error':'`'+_0x34ca47+'\x20'+_0x52b987[_0x24e131(0x3aa)]('\x20')+'`\x20timed\x20out\x20after\x20'+_0x412f12/0xea60+'min.'});},_0x412f12);_0x54c5ca['on']('error',_0x2884ea=>_0x18a80a({'ok':![],'error':'`'+_0x34ca47+'\x20'+_0x52b987['join']('\x20')+'`\x20failed\x20to\x20run:\x20'+_0x2884ea[_0x17a7b5(0x554)]})),_0x54c5ca['on'](_0x17a7b5(0x55b),_0x4dac60=>{const _0x101a8b=_0x17a7b5;_0x4dac60===0x0?_0x18a80a({'ok':!![]}):_0x18a80a({'ok':![],'error':'`'+_0x34ca47+'\x20'+_0x52b987[_0x101a8b(0x3aa)]('\x20')+'`\x20exited\x20with\x20code\x20'+(_0x4dac60??0x1)+'.'});});});}async function _0x364d37(_0x59cf2f,_0x447afd={}){const _0x2c729e=_0x5ccc4b,_0x22a924=_0x447afd['isInstalled']??_0x6d3f23,_0x1d1fdc=_0x447afd[_0x2c729e(0x52d)]??_0x1f1024,_0x53e6dc=_0x447afd['runInstall']??_0x433ca4,_0x3c704d=_0x447afd['log'];try{if(_0x22a924(_0x59cf2f))return{'status':'present'};_0x3c704d?.('Installing\x20appium-webdriveragent\x20for\x20simulator\x20support\x20(one-time,\x20~200MB)…');const _0xad8729=await _0x1d1fdc(_0x59cf2f),_0x243b9a=await _0x53e6dc(_0xad8729,_0x59cf2f);if(_0x22a924(_0x59cf2f))return{'status':'installed'};return{'status':_0x2c729e(0x42d),'error':_0x243b9a['error']??_0x2c729e(0x1c3)+_0x28f71f(_0xad8729)['bin']+'\x20'+_0x28f71f(_0xad8729)[_0x2c729e(0x4e2)]['join']('\x20')+'`.'};}catch(_0x5979bd){return{'status':_0x2c729e(0x42d),'error':_0x5979bd instanceof Error?_0x5979bd[_0x2c729e(0x554)]:String(_0x5979bd)};}}var _0x2062e7,_0x1dc57e,_0x49dabf=_0x4d3071({'src/ensure-appium.ts'(){'use strict';const _0x24db1b=_0x5ccc4b;_0x30d819(),_0x2062e7=_0x24db1b(0x4bc),_0x1dc57e=[{'file':_0x24db1b(0x275),'pm':'pnpm'},{'file':_0x24db1b(0x3a9),'pm':_0x24db1b(0x571)},{'file':_0x24db1b(0x481),'pm':'bun'},{'file':_0x24db1b(0x20a),'pm':'bun'},{'file':'package-lock.json','pm':'npm'}];}});import{spawn as _0x29fd86}from'child_process';import{readdir as _0x80e747,readFile as _0x30ed74}from'fs/promises';import{join as _0x45a5d4,relative as _0x5a8b99,sep as _0x311376}from'path';function _0x3a29f0(_0x597cd9,_0x199a2d,_0x135cde=0xfa0){return new Promise(_0x2802e5=>{const _0x126ce6=_0x4997;let _0x3aff14='',_0x5e42c8='',_0x334650;try{_0x334650=_0x29fd86(_0x597cd9,_0x199a2d,{'stdio':['ignore',_0x126ce6(0x43a),'pipe']});}catch(_0xd2e9a0){_0x2802e5({'code':0x7f,'stdout':'','stderr':_0xd2e9a0 instanceof Error?_0xd2e9a0[_0x126ce6(0x554)]:String(_0xd2e9a0)});return;}const _0x3e0dd6=setTimeout(()=>{const _0x5a5dfc=_0x126ce6;try{_0x334650[_0x5a5dfc(0x579)]('SIGKILL');}catch{}},_0x135cde);_0x334650[_0x126ce6(0x16e)]?.['on'](_0x126ce6(0x48c),_0x18829=>{_0x3aff14+=_0x18829['toString']();}),_0x334650[_0x126ce6(0x4ca)]?.['on']('data',_0x468509=>{const _0x28e24a=_0x126ce6;_0x5e42c8+=_0x468509[_0x28e24a(0x2a9)]();});let _0x4deede=![];_0x334650['on'](_0x126ce6(0x51e),_0x614304=>{if(_0x4deede)return;_0x4deede=!![],clearTimeout(_0x3e0dd6),_0x2802e5({'code':0x7f,'stdout':_0x3aff14,'stderr':_0x5e42c8+(_0x614304['message']??String(_0x614304))});}),_0x334650['on']('exit',_0x38e736=>{if(_0x4deede)return;_0x4deede=!![],clearTimeout(_0x3e0dd6),_0x2802e5({'code':_0x38e736??0x1,'stdout':_0x3aff14,'stderr':_0x5e42c8});});});}async function _0x2c631d(_0x4db916,_0xe19bbd,_0x427ead){try{const _0x35c4a1=await _0x427ead();return{'name':_0x4db916,..._0x35c4a1};}catch(_0x2b0f5a){return{'name':_0x4db916,'ok':![],'severity':_0xe19bbd,'message':_0x2b0f5a instanceof Error?_0x2b0f5a['message']:String(_0x2b0f5a)};}}async function _0x5ce44c(_0x30b368,_0x355540){const _0x900f2c=_0x5ccc4b,_0x3c8552=Date['now']()+_0x355540[_0x900f2c(0x15e)];try{if(await _0x30b368())return!![];}catch{}while(Date['now']()<_0x3c8552){await new Promise(_0x49007f=>setTimeout(_0x49007f,_0x355540[_0x900f2c(0x1ce)]));try{if(await _0x30b368())return!![];}catch{}}return![];}async function _0x19903d(){const _0x285fa9=_0x5ccc4b,_0x2cc1e6=await _0x3a29f0('networksetup',['-getairportnetwork',_0x285fa9(0x273)]);if(_0x2cc1e6[_0x285fa9(0x156)]!==0x0)return null;const _0x3ac2e7=_0x2cc1e6[_0x285fa9(0x16e)]['match'](/Current Wi-Fi Network:\s*(.+)$/m);if(!_0x3ac2e7)return null;const _0x495517=_0x3ac2e7[0x1]['trim']();if(!_0x495517||_0x495517['toLowerCase']()[_0x285fa9(0x26f)]('not\x20associated'))return null;return _0x495517;}async function _0xe72c4d(){const _0x456826=_0x5ccc4b,_0xe5af0f=await _0x3a29f0(_0x456826(0x475),['getifaddr',_0x456826(0x273)]);if(_0xe5af0f['code']!==0x0)return null;const _0x2ea9a4=_0xe5af0f[_0x456826(0x16e)][_0x456826(0x1cd)]();return _0x2ea9a4['length']>0x0?_0x2ea9a4:null;}function _0x4997(_0x42baa4,_0x197cb7){_0x42baa4=_0x42baa4-0x141;const _0x2223e6=_0x2223();let _0x4997fe=_0x2223e6[_0x42baa4];return _0x4997fe;}async function _0x2aa4a8(_0xf04f5e){const _0x5e3295=[];async function _0x39ed96(_0x1b67ad){const _0x411e1e=_0x4997;let _0x20ba09;try{_0x20ba09=await _0x80e747(_0x1b67ad,{'withFileTypes':!![]});}catch{return;}for(const _0xa2f896 of _0x20ba09){const _0x11d032=_0x45a5d4(_0x1b67ad,_0xa2f896[_0x411e1e(0x34d)]);if(_0xa2f896[_0x411e1e(0x1c7)]()){if(_0xd8d791['has'](_0xa2f896[_0x411e1e(0x34d)]))continue;await _0x39ed96(_0x11d032);continue;}if(!_0xa2f896['isFile']())continue;const _0x3143e8=_0xa2f896['name']['lastIndexOf']('.');if(_0x3143e8<0x0)continue;const _0x3787fe=_0xa2f896[_0x411e1e(0x34d)][_0x411e1e(0x54d)](_0x3143e8)[_0x411e1e(0x223)]();if(!_0x3d54da[_0x411e1e(0x466)](_0x3787fe))continue;let _0xa3e05f;try{_0xa3e05f=await _0x30ed74(_0x11d032,_0x411e1e(0x449));}catch{continue;}const _0x2615e0=_0x5a8b99(_0xf04f5e,_0x11d032)['split'](_0x311376)['join']('/');_0x5e3295['push']({'absPath':_0x11d032,'relPath':_0x2615e0,'contents':_0xa3e05f});}}for(const _0x43741a of _0x4b9362){await _0x39ed96(_0x45a5d4(_0xf04f5e,_0x43741a));}return _0x5e3295;}function _0x49ecb3(_0x28f9e5,_0x58b4dc){const _0x12a3ad=_0x5ccc4b,_0xa71054=[],_0xb5c85d=_0x28f9e5['contents'],_0x3dfcb2=_0x58b4dc[_0x12a3ad(0x2be)](/[.*+?^${}()|[\]\\]/g,'\x5c$&'),_0x57be83=new RegExp('<'+_0x3dfcb2+_0x12a3ad(0x157),'g');let _0x7b99ec;while((_0x7b99ec=_0x57be83[_0x12a3ad(0x291)](_0xb5c85d))!==null){const _0xc07989=_0x7b99ec['index'],_0xeb4f=_0x149bad(_0xb5c85d,_0xc07989+_0x7b99ec[0x0]['length']);if(_0xeb4f===-0x1)continue;const _0x194472=_0xb5c85d[_0x12a3ad(0x54d)](_0xc07989,_0xeb4f+0x1),_0x1e0740=_0xb5c85d['slice'](0x0,_0xc07989),_0x1114e6=(_0x1e0740['match'](/\n/g)?.['length']??0x0)+0x1;_0xa71054[_0x12a3ad(0x359)]({'file':_0x28f9e5,'line':_0x1114e6,'openingTag':_0x194472});}return _0xa71054;}function _0x149bad(_0x218bb2,_0x2d8be4){let _0x421113=0x0,_0xb19fef=![],_0x598c1a=![],_0x2a6ebb=![];for(let _0x4c6a32=_0x2d8be4;_0x4c6a32<_0x218bb2['length'];_0x4c6a32++){const _0x49f2a6=_0x218bb2[_0x4c6a32];if(_0xb19fef){if(_0x49f2a6==='\x22'&&!_0x5f0b27(_0x218bb2,_0x4c6a32))_0xb19fef=![];continue;}if(_0x598c1a){if(_0x49f2a6==='\x27'&&!_0x5f0b27(_0x218bb2,_0x4c6a32))_0x598c1a=![];continue;}if(_0x2a6ebb){if(_0x49f2a6==='`'&&!_0x5f0b27(_0x218bb2,_0x4c6a32))_0x2a6ebb=![];continue;}if(_0x49f2a6==='\x22'){if('cUMkU'!=='cUMkU')_0x30dc42(null);else{_0xb19fef=!![];continue;}}if(_0x49f2a6==='\x27'){_0x598c1a=!![];continue;}if(_0x49f2a6==='`'){_0x2a6ebb=!![];continue;}if(_0x49f2a6==='{'){_0x421113++;continue;}if(_0x49f2a6==='}'){_0x421113=Math['max'](0x0,_0x421113-0x1);continue;}if(_0x421113===0x0&&_0x49f2a6==='>')return _0x4c6a32;}return-0x1;}function _0x5f0b27(_0x2bfbd3,_0x58d3d7){let _0x517014=0x0,_0x4fe604=_0x58d3d7-0x1;while(_0x4fe604>=0x0&&_0x2bfbd3[_0x4fe604]==='\x5c'){_0x517014++,_0x4fe604--;}return _0x517014%0x2===0x1;}function _0x5ef9e1(_0x52af51){const _0x56be16=_0x5ccc4b,_0x274fe0=_0x52af51['replace'](/\.(tsx|jsx)$/i,''),_0x5cfdb8=_0x274fe0[_0x56be16(0x4c7)](/[\\/]/)['filter'](_0x4d28f1=>_0x4d28f1['length']>0x0);if(_0x5cfdb8[_0x56be16(0x471)]===0x0)return _0x56be16(0x4eb);const _0x3aee17=_0x5cfdb8[_0x5cfdb8['length']-0x1],_0x5b8125=_0x5cfdb8[_0x56be16(0x471)]>0x1?_0x5cfdb8[_0x5cfdb8[_0x56be16(0x471)]-0x2]:_0x3aee17,_0x599183=new Set(['page','index','screen',_0x56be16(0x1fb),_0x56be16(0x385)]),_0x10274b=_0x599183[_0x56be16(0x466)](_0x3aee17['toLowerCase']())?_0x5b8125:_0x3aee17,_0x433f22=_0x10274b['replace'](/([a-z0-9])([A-Z])/g,_0x56be16(0x292))[_0x56be16(0x223)]()[_0x56be16(0x2be)](/[^a-z0-9]+/g,'-')[_0x56be16(0x2be)](/^-+|-+$/g,'');return _0x433f22['length']>0x0?_0x433f22:'camera';}function _0xaa9fb2(_0x275233){const _0x485759=_0x5ccc4b,_0x1b3a60=/import\s*\{([^}]*)\}\s*from\s*["']expo-camera["']/g;let _0x519713;while((_0x519713=_0x1b3a60['exec'](_0x275233))!==null){const _0x1add35=_0x519713[0x1][_0x485759(0x4c7)](',')['map'](_0x2996cc=>_0x2996cc['trim']()[_0x485759(0x4c7)](/\s+as\s+/)[0x0][_0x485759(0x1cd)]());if(_0x1add35['includes']('CameraView'))return!![];}return![];}function _0x378b4a(_0x22cea8){const _0x17b87a=_0x5ccc4b,_0x5e2fed=_0x17b87a(0x272);let _0x2fe396=0x0,_0x2e1128=![],_0x4b42ad=![],_0x324534=![];for(let _0x3e3f4f=0x0;_0x3e3f4f<_0x22cea8[_0x17b87a(0x471)];_0x3e3f4f++){const _0x1f9ab2=_0x22cea8[_0x3e3f4f];if(_0x2e1128){if(_0x1f9ab2==='\x22'&&!_0x5f0b27(_0x22cea8,_0x3e3f4f))_0x2e1128=![];continue;}if(_0x4b42ad){if(_0x1f9ab2==='\x27'&&!_0x5f0b27(_0x22cea8,_0x3e3f4f))_0x4b42ad=![];continue;}if(_0x324534){if(_0x1f9ab2==='`'&&!_0x5f0b27(_0x22cea8,_0x3e3f4f))_0x324534=![];continue;}if(_0x1f9ab2==='\x22'){_0x2e1128=!![];continue;}if(_0x1f9ab2==='\x27'){_0x4b42ad=!![];continue;}if(_0x1f9ab2==='`'){_0x324534=!![];continue;}if(_0x1f9ab2==='{'){_0x2fe396++;continue;}if(_0x1f9ab2==='}'){_0x2fe396=Math[_0x17b87a(0x3c3)](0x0,_0x2fe396-0x1);continue;}if(_0x2fe396!==0x0)continue;if(_0x1f9ab2!=='i')continue;if(_0x22cea8[_0x17b87a(0x423)](_0x3e3f4f,_0x3e3f4f+_0x5e2fed['length'])!==_0x5e2fed)continue;const _0x866677=_0x3e3f4f===0x0?'\x20':_0x22cea8[_0x3e3f4f-0x1];if(/[A-Za-z0-9_$]/['test'](_0x866677))continue;const _0xa8be2e=_0x22cea8[_0x3e3f4f+_0x5e2fed['length']]??'';if(_0xa8be2e!=='='&&!/\s/['test'](_0xa8be2e))continue;let _0x269c5d=_0x3e3f4f+_0x5e2fed[_0x17b87a(0x471)];while(_0x269c5d<_0x22cea8['length']&&/\s/['test'](_0x22cea8[_0x269c5d]))_0x269c5d++;if(_0x22cea8[_0x269c5d]!=='='){_0x3e3f4f=_0x269c5d-0x1;continue;}_0x269c5d++;while(_0x269c5d<_0x22cea8[_0x17b87a(0x471)]&&/\s/[_0x17b87a(0x440)](_0x22cea8[_0x269c5d]))_0x269c5d++;const _0x2c6bfb=_0x22cea8[_0x269c5d];if(_0x2c6bfb==='\x22'||_0x2c6bfb==='\x27'){if('HmUnX'!==_0x17b87a(0x348))return this[_0x17b87a(0x2bc)];else{let _0x5a739a=_0x269c5d+0x1;while(_0x5a739a<_0x22cea8['length']&&!(_0x22cea8[_0x5a739a]===_0x2c6bfb&&!_0x5f0b27(_0x22cea8,_0x5a739a))){_0x5a739a++;}const _0x432237=_0x22cea8['slice'](_0x269c5d+0x1,_0x5a739a);if(_0x432237['trim']()[_0x17b87a(0x471)]===0x0)return{'present':![]};return{'present':!![],'value':_0x432237};}}if(_0x2c6bfb==='{')return{'present':!![],'value':null};return{'present':![]};}return{'present':![]};}async function _0x3291dc(_0x415fef){const _0x1c3051=_0x5ccc4b,{screen:_0x1b78d7,apps:_0x50fc4c,autonomy:_0x12d0c0,bundleId:_0x12e798,requiredEnv:_0x574f04,expectedNetwork:_0xdccb18,projectDir:projectDir=process[_0x1c3051(0x380)](),target:_0x2c64c9,excludeRuntimeChecks:excludeRuntimeChecks=![],screenRecordingStatus:screenRecordingStatus=_0x35fb1a,ensureAppium:ensureAppium=_0x364d37}=_0x415fef,_0x26baa2=!excludeRuntimeChecks&&_0x2c64c9?await _0x2c64c9[_0x1c3051(0x22f)]()['catch'](()=>null):null,_0x3c2746=_0x26baa2?.['target']==='simulator',_0x2c1fa0=_0x3117a7(projectDir),_0x50b1b8=_0x2c1fa0[_0x1c3051(0x341)](_0x2ace0f=>{const _0x397c24=_0x1c3051;if(_0x2ace0f[_0x397c24(0x314)]==='missing-dir')return{'name':_0x397c24(0x51a),'ok':!![],'severity':'info','message':_0x397c24(0x363)};return{'name':'camera-registry-synced','ok':!![],'severity':'info','message':'Camera\x20image\x20registry\x20'+_0x2ace0f['writtenOrUnchanged']+'\x20('+_0x2ace0f['registered'][_0x397c24(0x471)]+_0x397c24(0x451)+(_0x2ace0f['registered']['length']===0x1?'':'s')+_0x397c24(0x1b4)+_0x33dfff(projectDir,_0x2ace0f[_0x397c24(0x56e)])+'.','details':{'registered':_0x2ace0f['registered'][_0x397c24(0x362)](_0xe80c60=>_0xe80c60['key']),'state':_0x2ace0f[_0x397c24(0x314)]}};},_0x5e8fe8=>({'name':_0x1c3051(0x51a),'ok':![],'severity':'warning','message':'Camera\x20registry\x20sync\x20failed:\x20'+(_0x5e8fe8 instanceof Error?_0x5e8fe8[_0x1c3051(0x554)]:String(_0x5e8fe8))})),_0x330615=_0x2aa4a8(projectDir),_0x188db3=_0x2c631d(_0x1c3051(0x2fe),_0x1c3051(0x473),async()=>{const _0x12200e=_0x1c3051,_0x32c2bf=await _0x330615,_0x1e4a21=[];for(const _0x54f4cd of _0x32c2bf){if(_0x12200e(0x29d)==='lienR'){if(_0x3ba1b4===null)_0x158cc2=_0x2f8dab;_0x5527d8[_0x12200e(0x3b7)]()[_0x12200e(0x471)]===0x0&&(_0x1e45fc=_0x38571c,_0x30c4d7['stop']());}else{if(!_0xaa9fb2(_0x54f4cd[_0x12200e(0x446)]))continue;const _0x3df6d6=_0x49ecb3(_0x54f4cd,'CameraView');for(const _0x555e5a of _0x3df6d6){_0x1e4a21[_0x12200e(0x359)](_0x555e5a[_0x12200e(0x2e0)][_0x12200e(0x2ec)]+':'+_0x555e5a['line']);}}}if(_0x1e4a21['length']===0x0)return{'ok':!![],'severity':'warning','message':'No\x20bare\x20<CameraView>\x20usages\x20from\x20expo-camera\x20found\x20in\x20app/src/screens.'};return{'ok':![],'severity':'warning','message':_0x12200e(0x462)+_0x1e4a21[_0x12200e(0x471)]+'\x20<CameraView>\x20usage(s)\x20not\x20wrapped\x20by\x20<CeraphCamera>.','remediation':_0x12200e(0x3fe),'details':{'offenders':_0x1e4a21}};}),_0x471f5a=_0x2c631d('camera-imageKey-setup','info',async()=>{const _0x2c5883=_0x1c3051,_0x9754c2=await _0x330615,_0x510f79=[];for(const _0x559be5 of _0x9754c2){const _0x26860c=_0x49ecb3(_0x559be5,'CeraphCamera');for(const _0x26d068 of _0x26860c){const _0x3648d2=_0x378b4a(_0x26d068['openingTag']);!_0x3648d2[_0x2c5883(0x2a8)]&&_0x510f79['push']({'location':_0x26d068['file'][_0x2c5883(0x2ec)]+':'+_0x26d068[_0x2c5883(0x222)],'file':_0x26d068['file'][_0x2c5883(0x2ec)],'line':_0x26d068['line'],'suggestedKey':_0x5ef9e1(_0x26d068[_0x2c5883(0x2e0)][_0x2c5883(0x2ec)])});}}if(_0x510f79[_0x2c5883(0x471)]===0x0)return{'ok':!![],'severity':_0x2c5883(0x287),'message':_0x2c5883(0x345)};return{'ok':!![],'severity':_0x2c5883(0x287),'message':_0x510f79[_0x2c5883(0x471)]+_0x2c5883(0x31b)+(_0x510f79[_0x2c5883(0x471)]===0x1?'':'s')+'\x20awaiting\x20imageKey\x20assignment\x20('+_0x510f79[_0x2c5883(0x362)](_0x5f3ba8=>_0x5f3ba8['location'])['join'](',\x20')+').','remediation':'Ask\x20the\x20user\x20about\x20each\x20camera\x20screen\x20and\x20use\x20`ceraph_init_replace_camera`\x20to\x20set\x20the\x20imageKey.\x20Three\x20options\x20per\x20camera:\x20(A)\x20imageKey=\x22default\x22\x20—\x20bundled\x201024x1024\x20black\x20PNG.\x20Right\x20for\x20tests\x20that\x20don\x27t\x20care\x20about\x20image\x20content\x20(most\x20form/upload\x20flows).\x20(B)\x20imageKey=\x22<scenario>\x22\x20—\x20a\x20specific\x20test\x20image.\x20Drop\x20the\x20file\x20at\x20.ceraph/camera-images/<scenario>.{jpg,png,webp}\x20(use\x20`ceraph_add_camera_image`\x20to\x20write\x20it\x20programmatically)\x20and\x20re-run\x20`rn_sync_camera_registry`.\x20(C)\x20imageKey=\x22@runtime\x22\x20—\x20multi-image\x20flows\x20where\x20the\x20planner\x20picks\x20the\x20image\x20per-step\x20at\x20runtime;\x20the\x20shim\x20won\x27t\x20lock\x20the\x20camera\x20to\x20any\x20static\x20key.','details':{'uninitializedCameras':_0x510f79}};}),_0x6cdefc=_0x2c631d(_0x1c3051(0x547),'error',async()=>{const _0x37cee0=_0x1c3051,[_0x1530f3,_0x195316]=await Promise[_0x37cee0(0x2b9)]([_0x2c1fa0,_0x330615]),_0x37d0f2=new Set(_0x1530f3['registered']['map'](_0x31190f=>_0x31190f['key'])),_0x5c3549=[];for(const _0x146a46 of _0x195316){const _0xd3801a=_0x49ecb3(_0x146a46,'CeraphCamera');for(const _0x24ed26 of _0xd3801a){const _0x39455c=_0x378b4a(_0x24ed26['openingTag']);if(!_0x39455c['present'])continue;if(_0x39455c['value']===null)continue;if(_0x39455c[_0x37cee0(0x389)]==='default')continue;if(_0x39455c[_0x37cee0(0x389)][_0x37cee0(0x425)]('@'))continue;!_0x37d0f2['has'](_0x39455c['value'])&&_0x5c3549[_0x37cee0(0x359)]({'location':_0x24ed26['file']['relPath']+':'+_0x24ed26[_0x37cee0(0x222)],'key':_0x39455c['value']});}}if(_0x5c3549['length']===0x0)return{'ok':!![],'severity':'error','message':_0x37cee0(0x4ee)};const _0xbc9379=_0x5c3549['map'](_0x37b363=>_0x37b363[_0x37cee0(0x2bd)]+_0x37cee0(0x176)+_0x37b363[_0x37cee0(0x23b)]+'\x22)')[_0x37cee0(0x3aa)](';\x20');return{'ok':![],'severity':_0x37cee0(0x51e),'message':'Found\x20'+_0x5c3549[_0x37cee0(0x471)]+'\x20orphan\x20imageKey\x20reference(s):\x20'+_0xbc9379+'.','remediation':'Add\x20the\x20matching\x20image\x20file\x20to\x20.ceraph/camera-images/\x20(e.g.\x20<key>.jpg)\x20and\x20re-run\x20`rn_sync_camera_registry`,\x20or\x20fix\x20the\x20imageKey\x20prop\x20value.','details':{'orphans':_0x5c3549}};}),_0x1f9dbd=excludeRuntimeChecks?null:_0x2c64c9?Promise[_0x1c3051(0x22f)]({'name':_0x1c3051(0x24d),'ok':!![],'severity':_0x1c3051(0x287),'message':_0x26baa2?'Target:\x20'+_0x26baa2['target']+'\x20('+_0x26baa2['reason']+_0x1c3051(0x369)+_0x26baa2['baseUrl']+(_0x26baa2['udid']?_0x1c3051(0x42a)+_0x26baa2[_0x1c3051(0x55e)]:''):'Target:\x20unknown\x20(resolver\x20failed).\x20Falling\x20back\x20to\x20device\x20defaults.','details':_0x26baa2?{'target':_0x26baa2[_0x1c3051(0x4da)],'reason':_0x26baa2[_0x1c3051(0x3d1)],'baseUrl':_0x26baa2['baseUrl'],'udid':_0x26baa2['udid'],'preferenceEnv':process.env.CERAPH_TARGET??null}:void 0x0}):null,_0x411376='Call\x20rn_wda_start\x20to\x20launch\x20WebDriverAgent\x20on\x20the\x20simulator,\x20then\x20retry\x20(first\x20launch\x20runs\x20a\x20one-time\x20xcodebuild\x20for\x20code\x20signing;\x20later\x20launches\x20reuse\x20the\x20cache).',_0x29a47c='Ensure\x20WebDriverAgent\x20is\x20running\x20on\x20the\x20device\x20(Xcode\x20→\x20run\x20WDA\x20target\x20on\x20your\x20iPhone,\x20or\x20check\x20`iproxy\x208100\x208100`).',_0x422487=_0x26baa2?.['wdaReady']??!![],_0x3cce2c=_0x422487?_0x26baa2?.[_0x1c3051(0x3e5)]??_0x1c3051(0x3b1):null;let _0x2df9aa,_0x280eb3;if(excludeRuntimeChecks)_0x2df9aa=null,_0x280eb3=null;else{if(!_0x3c2746&&_0x415fef[_0x1c3051(0x340)]){const _0x4ab637=_0x415fef[_0x1c3051(0x340)],_0x3b935b=(async()=>{const _0xcf16bc=_0x1c3051;let _0x3e1197=await _0x1b78d7[_0xcf16bc(0x252)](),_0x5f0d85,_0x1b03c8=!![],_0x4a0c7c,_0x2eb715;if(_0x3e1197)_0x5f0d85='WebDriverAgent\x20already\x20reachable\x20—\x20skipped\x20iproxy\x20auto-bridge.';else{const _0x5bc0c3=await _0x50fc4c['getUdid']()['catch'](()=>null);if(!_0x5bc0c3)_0x1b03c8=![],_0x5f0d85=_0xcf16bc(0x1ea),_0x4a0c7c=_0xcf16bc(0x331);else{const _0x2de5e7=await _0x4ab637['start'](_0x5bc0c3);if(_0x2de5e7['ok']){if(_0xcf16bc(0x3c0)==='tLeMU')return _0x174af4;else _0x3e1197=await _0x5ce44c(()=>_0x1b78d7['isAvailable'](),{'intervalMs':0xfa,'timeoutMs':0x9c4}),_0x5f0d85=_0xcf16bc(0x1d4)+_0x2de5e7['pid']+').',_0x2eb715={'pid':_0x2de5e7['pid'],'udid':_0x5bc0c3};}else{if(_0x2de5e7['reason']===_0xcf16bc(0x20d))_0x3e1197=await _0x5ce44c(()=>_0x1b78d7['isAvailable'](),{'intervalMs':0xfa,'timeoutMs':0x9c4}),_0x5f0d85=_0xcf16bc(0x50f);else{if(_0x2de5e7['reason']==='not-installed')_0x1b03c8=![],_0x5f0d85='iproxy\x20is\x20not\x20installed\x20—\x20cannot\x20auto-bridge\x20WDA.',_0x4a0c7c='Install\x20with\x20`brew\x20install\x20libimobiledevice`,\x20then\x20re-run\x20doctor.';else{if(_0xcf16bc(0x4b5)==='iuppI'){const _0x401e2a=_0x1dee84?_0x51ad6b:_0x181357;return{'status':_0xcf16bc(0x1f3),'kind':'expo-dynamic','path':_0x401e2a,'remediation':_0x67eeda(_0x401e2a)};}else _0x1b03c8=![],_0x5f0d85='iproxy\x20auto-bridge\x20failed\x20to\x20start:\x20'+(_0x2de5e7[_0xcf16bc(0x4ca)]?.[0x0]??'unknown\x20error')+'.',_0x4a0c7c='Run\x20`iproxy\x208100\x208100\x20-u\x20<udid>`\x20manually\x20to\x20see\x20the\x20full\x20error.',_0x2eb715={'stderr':_0x2de5e7[_0xcf16bc(0x4ca)]};}}}}}const _0x15a761={'name':'iproxy-bridge','ok':_0x1b03c8,'severity':_0xcf16bc(0x473),'message':_0x5f0d85,'remediation':_0x4a0c7c,'details':_0x2eb715},_0x2b4787=_0x3e1197?{'name':'wda-reachable','ok':!![],'severity':'error','message':'WebDriverAgent\x20is\x20reachable\x20at\x20'+_0x3cce2c+'.'}:{'name':_0xcf16bc(0x1b0),'ok':![],'severity':'error','message':_0x3cce2c?'WebDriverAgent\x20is\x20not\x20reachable\x20at\x20'+_0x3cce2c+'.':_0xcf16bc(0x2d0),'remediation':_0x29a47c};return{'bridge':_0x15a761,'wda':_0x2b4787};})()[_0x1c3051(0x243)](_0x56a0dc=>({'bridge':{'name':'iproxy-bridge','ok':![],'severity':'warning','message':'iproxy\x20auto-bridge\x20threw:\x20'+(_0x56a0dc instanceof Error?_0x56a0dc[_0x1c3051(0x554)]:String(_0x56a0dc))},'wda':{'name':_0x1c3051(0x1b0),'ok':![],'severity':_0x1c3051(0x51e),'message':_0x1c3051(0x46b)+(_0x56a0dc instanceof Error?_0x56a0dc[_0x1c3051(0x554)]:String(_0x56a0dc))}}));_0x2df9aa=_0x3b935b[_0x1c3051(0x341)](_0x42791e=>_0x42791e[_0x1c3051(0x1db)]),_0x280eb3=_0x3b935b['then'](_0x255516=>_0x255516['wda']);}else _0x2df9aa=Promise[_0x1c3051(0x22f)]({'name':'iproxy-bridge','ok':!![],'severity':_0x1c3051(0x287),'message':_0x3c2746?_0x1c3051(0x53c):_0x1c3051(0x565)}),_0x280eb3=_0x2c631d(_0x1c3051(0x1b0),'error',async()=>{const _0x145f22=_0x1c3051,_0x2c8cc1=await _0x1b78d7[_0x145f22(0x252)]();if(_0x2c8cc1)return{'ok':!![],'severity':'error','message':'WebDriverAgent\x20is\x20reachable\x20at\x20'+_0x3cce2c+'.'};return{'ok':![],'severity':_0x145f22(0x51e),'message':_0x3cce2c?'WebDriverAgent\x20is\x20not\x20reachable\x20at\x20'+_0x3cce2c+'.':'WebDriverAgent\x20is\x20not\x20ready\x20(simulator\x20selected,\x20no\x20port\x20captured\x20yet).','remediation':_0x3c2746?_0x411376:_0x29a47c};});}const _0x43e066=_0x3c2746?'warning':_0x1c3051(0x51e),_0x66edfe=excludeRuntimeChecks?null:_0x2c631d('real-device-connected',_0x43e066,async()=>{const _0x50b655=_0x1c3051,_0x4039f1=await _0x50fc4c['getUdid']();if(_0x4039f1)return{'ok':!![],'severity':_0x43e066,'message':_0x50b655(0x555)+_0x4039f1+').','details':{'udid':_0x4039f1}};if(_0x3c2746)return{'ok':!![],'severity':_0x50b655(0x287),'message':'No\x20real\x20iOS\x20device\x20detected\x20—\x20target\x20is\x20simulator,\x20so\x20this\x20is\x20fine.'};return{'ok':![],'severity':_0x43e066,'message':'No\x20iOS\x20target\x20available.','remediation':_0x50b655(0x493)};}),_0x1d30cb=excludeRuntimeChecks?null:_0x2c631d('device-awake',_0x1c3051(0x51e),async()=>{const _0x3cbeac=_0x1c3051,_0x284c19=await _0x12d0c0['ensureAwake']();if(_0x284c19[_0x3cbeac(0x452)])return{'ok':!![],'severity':_0x3cbeac(0x51e),'message':_0x3cbeac(0x539)+_0x284c19['lockState']+').','details':{'lockState':_0x284c19[_0x3cbeac(0x4fc)]}};return{'ok':![],'severity':'error','message':_0x3cbeac(0x2ad)+_0x284c19[_0x3cbeac(0x4fc)]+').','remediation':_0x284c19[_0x3cbeac(0x2c8)]??_0x3cbeac(0x3bc),'details':{'lockState':_0x284c19['lockState']}};}),_0x16766f=excludeRuntimeChecks?null:Promise[_0x1c3051(0x22f)]({'name':_0x1c3051(0x52a),'ok':!![],'severity':_0x1c3051(0x287),'message':_0x1c3051(0x1a5)}),_0x194246=excludeRuntimeChecks?null:_0x2c631d(_0x1c3051(0x44d),'warning',async()=>{const _0x39907c=_0x1c3051;if(_0x3c2746)return{'ok':!![],'severity':_0x39907c(0x287),'message':'ffmpeg\x20not\x20required\x20for\x20simulator\x20targets\x20—\x20`xcrun\x20simctl\x20io\x20recordVideo`\x20(shipped\x20with\x20Xcode)\x20handles\x20video\x20capture.'};const _0x5cb7e2=await _0x3a29f0('which',[_0x39907c(0x485)]),_0x5162c7=_0x5cb7e2['code']===0x0&&_0x5cb7e2[_0x39907c(0x16e)]['trim']()['length']>0x0;if(_0x5162c7)return{'ok':!![],'severity':'info','message':'ffmpeg\x20available\x20at\x20'+_0x5cb7e2[_0x39907c(0x16e)][_0x39907c(0x1cd)]()+'\x20—\x20continuous\x20chain-run\x20video\x20capture\x20is\x20wired.','details':{'path':_0x5cb7e2['stdout']['trim']()}};return{'ok':![],'severity':_0x39907c(0x473),'message':'ffmpeg\x20not\x20found\x20—\x20continuous\x20chain-run\x20video\x20capture\x20will\x20be\x20skipped.\x20Tests\x20still\x20execute\x20normally.','remediation':_0x39907c(0x3f3)};}),_0x5d9dd3=excludeRuntimeChecks||!_0x3c2746?null:_0x2c631d('appium-webdriveragent',_0x1c3051(0x51e),async()=>{const _0x541a82=_0x1c3051,_0x1bcbe9=await ensureAppium(projectDir);if(_0x1bcbe9[_0x541a82(0x416)]==='present')return{'ok':!![],'severity':'info','message':_0x541a82(0x32c),'details':{'status':_0x1bcbe9[_0x541a82(0x416)]}};if(_0x1bcbe9[_0x541a82(0x416)]==='installed')return{'ok':!![],'severity':_0x541a82(0x287),'message':'Installed\x20appium-webdriveragent\x20—\x20simulator\x20WebDriverAgent\x20can\x20build.','details':{'status':_0x1bcbe9[_0x541a82(0x416)]}};if(_0x1bcbe9['status']==='skipped-not-needed'){if(_0x541a82(0x44e)===_0x541a82(0x44e))return{'ok':!![],'severity':'info','message':_0x541a82(0x2da),'details':{'status':_0x1bcbe9['status']}};else{if(_0x303b2d[_0x541a82(0x425)](_0x265b5c)){const _0x1a690a=_0x55bbc1['slice'](_0x4473da[_0x541a82(0x471)]+0x1);return _0x1a690a[_0x541a82(0x471)]>0x0?_0x1a690a:_0x20aa0c;}return _0x2970bd;}}return{'ok':![],'severity':'error','message':'Couldn\x27t\x20ensure\x20appium-webdriveragent:\x20'+_0x1bcbe9['error'],'remediation':_0x541a82(0x2ff),'details':{'status':_0x1bcbe9[_0x541a82(0x416)]}};}),_0x22a4fa=excludeRuntimeChecks||!screenRecordingStatus||_0x26baa2?.['target']!=='device'?null:_0x2c631d('screen-recording-permission',_0x1c3051(0x473),async()=>{const _0x1cd1d5=_0x1c3051,_0x1de7f5=screenRecordingStatus();if(_0x1de7f5===_0x1cd1d5(0x17c))return{'ok':!![],'severity':'info','message':'Screen\x20Recording\x20granted\x20—\x20session\x20video\x20will\x20record.','details':{'status':_0x1de7f5}};const _0x1a40bd=_0x1de7f5===_0x1cd1d5(0x302)?'Screen\x20Recording\x20not\x20yet\x20verified\x20—\x20a\x20macOS\x20dialog\x20appears\x20the\x20first\x20time\x20Ceraph\x20drives\x20the\x20device\x20(click\x20Allow;\x20no\x20Settings\x20navigation\x20needed).\x20Session\x20video\x20only;\x20tests\x20run\x20regardless.':_0x1cd1d5(0x347);return{'ok':![],'severity':'warning','message':_0x1a40bd,'remediation':_0x512dbf,'details':{'status':_0x1de7f5}};}),_0xd8aaac=excludeRuntimeChecks?null:_0x12e798?_0x2c631d('app-installed','error',async()=>{const _0x4ed93e=_0x1c3051,_0x37ef3e=await _0x50fc4c['listInstalledApps']();if(!_0x37ef3e[_0x4ed93e(0x33f)])return{'ok':![],'severity':_0x4ed93e(0x51e),'message':'Could\x20not\x20list\x20installed\x20apps:\x20'+(_0x37ef3e['error']??_0x4ed93e(0x55f)),'remediation':'Ensure\x20your\x20device\x20is\x20connected\x20and\x20Xcode\x20is\x20installed\x20(`xcrun\x20devicectl\x20list\x20devices`).'};const _0x24c13b=_0x37ef3e['apps']['find'](_0x3caf4f=>_0x3caf4f['bundleId']===_0x12e798);if(_0x24c13b)return{'ok':!![],'severity':_0x4ed93e(0x51e),'message':_0x4ed93e(0x4dc)+_0x12e798+'\x20is\x20installed\x20('+_0x24c13b[_0x4ed93e(0x34d)]+(_0x24c13b['version']?'\x20v'+_0x24c13b['version']:'')+').','details':{'bundleId':_0x12e798,'name':_0x24c13b[_0x4ed93e(0x34d)],'version':_0x24c13b[_0x4ed93e(0x484)]}};return{'ok':![],'severity':'error','message':_0x4ed93e(0x4dc)+_0x12e798+_0x4ed93e(0x41a),'remediation':'Build\x20and\x20install\x20the\x20app:\x20`expo\x20run:ios\x20--device\x20<udid>`\x20or\x20`npx\x20react-native\x20run-ios\x20--udid\x20<udid>`.','details':{'bundleId':_0x12e798,'installedCount':_0x37ef3e['apps']['length']}};}):Promise[_0x1c3051(0x22f)]({'name':'app-installed','ok':!![],'severity':'info','message':_0x1c3051(0x580)}),_0x2243e9=excludeRuntimeChecks?null:_0x574f04&&_0x574f04['length']>0x0?_0x2c631d('required-env-vars','error',async()=>{const _0x32cfef=_0x1c3051,_0x324579=_0x574f04['filter'](_0x1c014b=>{const _0x28a055=process.env[_0x1c014b];return _0x28a055===void 0x0||_0x28a055==='';});if(_0x324579[_0x32cfef(0x471)]===0x0)return{'ok':!![],'severity':'error','message':_0x32cfef(0x490)+_0x574f04['length']+'\x20required\x20env\x20var(s)\x20present.','details':{'required':_0x574f04}};return{'ok':![],'severity':_0x32cfef(0x51e),'message':_0x32cfef(0x364)+_0x324579['join'](',\x20')+'.','remediation':'Set\x20the\x20missing\x20vars\x20before\x20running:\x20'+_0x324579[_0x32cfef(0x362)](_0x360e6d=>'export\x20'+_0x360e6d+'=...')[_0x32cfef(0x3aa)](';\x20')+'\x20(or\x20add\x20them\x20to\x20.env.local).','details':{'missing':_0x324579,'required':_0x574f04}};}):Promise[_0x1c3051(0x22f)]({'name':_0x1c3051(0x1f2),'ok':!![],'severity':_0x1c3051(0x287),'message':_0x1c3051(0x25b)}),_0x45f2ab=excludeRuntimeChecks?null:_0x2c631d(_0x1c3051(0x3cc),'warning',async()=>{const _0x26cc25=_0x1c3051;if(_0x26cc25(0x422)!=='rokuf'){const [_0x30b90b,_0x1712fa]=await Promise['all']([_0x19903d(),_0xe72c4d()]),_0x23fc7e={'ssid':_0x30b90b,'ip':_0x1712fa};if(_0xdccb18&&_0x30b90b&&_0x30b90b!==_0xdccb18)return{'ok':![],'severity':'warning','message':'Laptop\x20is\x20on\x20WiFi\x20\x27'+_0x30b90b+'\x27\x20at\x20'+(_0x1712fa??_0x26cc25(0x2bf))+_0x26cc25(0x3b6)+_0xdccb18+'\x27.','remediation':'Join\x20the\x20same\x20WiFi\x20network\x20as\x20your\x20phone,\x20or\x20update\x20the\x20expectedNetwork\x20doctor\x20option.','details':_0x23fc7e};return{'ok':!![],'severity':_0x26cc25(0x287),'message':'Laptop\x20is\x20on\x20WiFi\x20\x27'+(_0x30b90b??_0x26cc25(0x350))+'\x27\x20at\x20'+(_0x1712fa??'<no\x20IP>')+'.\x20If\x20you\x20see\x20network\x20timeout\x20errors\x20during\x20the\x20run,\x20verify\x20your\x20phone\x20is\x20on\x20the\x20same\x20network.','details':_0x23fc7e};}else return{'kind':_0x26cc25(0x37b),'filePath':_0x2c877a};}),_0x2f7122=excludeRuntimeChecks?null:Promise['resolve']({'name':_0x1c3051(0x4ef),'ok':!![],'severity':'info','message':'Permission\x20interceptor\x20middleware\x20is\x20wired.\x20iOS\x20system\x20permission\x20dialogs\x20will\x20be\x20auto-accepted\x20during\x20flows\x20(configurable\x20via\x20the\x20`CERAPH_AUTO_ACCEPT_PERMISSIONS`\x20env\x20var:\x20`auto-accept`\x20|\x20`ask`\x20|\x20`off`).'}),_0xaeac06=await Promise['all']([_0x50b1b8,_0x1f9dbd,_0x2df9aa,_0x280eb3,_0x66edfe,_0x1d30cb,_0x16766f,_0xd8aaac,_0x2243e9,_0x45f2ab,_0x2f7122,_0x194246,_0x5d9dd3,_0x22a4fa,_0x188db3,_0x471f5a,_0x6cdefc][_0x1c3051(0x235)](_0x17b54b=>_0x17b54b!==null)),_0x3187b7=!_0xaeac06[_0x1c3051(0x28e)](_0x21bc69=>_0x21bc69[_0x1c3051(0x22d)]==='error'&&!_0x21bc69['ok']),_0x3de71d=_0xaeac06['find'](_0x35d712=>_0x35d712[_0x1c3051(0x34d)]===_0x1c3051(0x44d));let _0x3ee002;return _0x3de71d&&(_0x3c2746?_0x3ee002=void 0x0:_0x3ee002=_0x3de71d['ok']),{'ok':_0x3187b7,'checks':_0xaeac06,'ffmpegInstalled':_0x3ee002};}var _0x4b9362,_0x3d54da,_0xd8d791,_0x2cd4f8=_0x4d3071({'src/doctor.ts'(){'use strict';const _0x3573e0=_0x5ccc4b;_0x3eb806(),_0x4bd0b6(),_0x49dabf(),_0x4b9362=['app',_0x3573e0(0x2ce),'screens'],_0x3d54da=new Set([_0x3573e0(0x3b3),'.jsx']),_0xd8d791=new Set([_0x3573e0(0x1b8),_0x3573e0(0x42c),'build','.git','.ceraph',_0x3573e0(0x4c6),_0x3573e0(0x528),_0x3573e0(0x4b3),'android']);}}),_0x3482ec,_0x304ac8,_0x58c37d,_0x1b1309,_0x41cfcf,_0xf5693,_0x4c2ca2,_0x122d85,_0x413b65,_0x103dd1=_0x4d3071({'src/init/claude-hook-constants.ts'(){'use strict';const _0x24357b=_0x5ccc4b;_0x3482ec=_0x24357b(0x427),_0x304ac8='#!/bin/bash\x0a#\x20rn-flow-progress-notify.sh\x20—\x20Injected\x20by\x20@ceraph/react-native-mcp\x20init\x0a#\x20Reads\x20.rn-flow-progress.json\x20and\x20injects\x20a\x20one-line\x20heartbeat\x20into\x0a#\x20Claude\x27s\x20context.\x20HEARTBEAT\x20ONLY\x20—\x20no\x20step-level\x20failure\x20details.\x0a\x0aENTRY_FILE=\x22$CLAUDE_PROJECT_DIR/mobile/.rn-flow-progress.json\x22\x0aif\x20[\x20!\x20-f\x20\x22$ENTRY_FILE\x22\x20];\x20then\x0a\x20\x20ENTRY_FILE=\x22$CLAUDE_PROJECT_DIR/.rn-flow-progress.json\x22\x0afi\x0aif\x20[\x20!\x20-f\x20\x22$ENTRY_FILE\x22\x20];\x20then\x0a\x20\x20exit\x200\x0afi\x0a\x0a#\x20If\x20jq\x20isn\x27t\x20installed,\x20exit\x20quietly\x20—\x20the\x20heartbeat\x20is\x20best-effort.\x0aif\x20!\x20command\x20-v\x20jq\x20>/dev/null\x202>&1;\x20then\x0a\x20\x20exit\x200\x0afi\x0a\x0aENTRY=$(jq\x20-r\x20\x27.entry\x27\x20\x22$ENTRY_FILE\x22\x202>/dev/null)\x0aif\x20[\x20\x22$ENTRY\x22\x20=\x20\x22null\x22\x20]\x20||\x20[\x20-z\x20\x22$ENTRY\x22\x20];\x20then\x0a\x20\x20exit\x200\x0afi\x0a\x0a#\x20jq\x20\x27//\x20\x22\x22\x27\x20(works\x20in\x20jq\x201.4+;\x20\x22//\x20empty\x22\x20needed\x201.5+\x20and\x20would\x20have\x0a#\x20silently\x20aborted\x20older\x20shells)\x20makes\x20jq\x20emit\x20an\x20empty\x20string\x20for\x0a#\x20missing\x20fields\x20rather\x20than\x20the\x20literal\x20\x22null\x22.\x20Defaults\x20below\x20keep\x0a#\x20set\x20-e\x20shells\x20happy\x20in\x20the\x20arithmetic\x20+\x20awk\x20expansions\x20even\x20when\x0a#\x20the\x20entry\x20is\x20partial\x20(transient\x20state\x20if\x20the\x20file\x20is\x20read\x0a#\x20mid-write).\x0aFLOW=$(jq\x20-r\x20\x27.entry.flow\x20//\x20\x22\x22\x27\x20\x22$ENTRY_FILE\x22\x202>/dev/null)\x0aINDEX=$(jq\x20-r\x20\x27.entry.index\x20//\x20\x22\x22\x27\x20\x22$ENTRY_FILE\x22\x202>/dev/null)\x0aTOTAL=$(jq\x20-r\x20\x27.entry.total\x20//\x20\x22\x22\x27\x20\x22$ENTRY_FILE\x22\x202>/dev/null)\x0aSUCCESS=$(jq\x20-r\x20\x27.entry.success\x20//\x20\x22\x22\x27\x20\x22$ENTRY_FILE\x22\x202>/dev/null)\x0aDURATION=$(jq\x20-r\x20\x27.entry.durationMs\x20//\x20\x22\x22\x27\x20\x22$ENTRY_FILE\x22\x202>/dev/null)\x0a\x0aINDEX=${INDEX:-0}\x0aTOTAL=${TOTAL:-0}\x0aDURATION=${DURATION:-0}\x0aFLOW=${FLOW:-unknown}\x0a\x0aDISPLAY_INDEX=$((INDEX\x20+\x201))\x0aif\x20[\x20\x22$SUCCESS\x22\x20=\x20\x22true\x22\x20];\x20then\x0a\x20\x20STATUS=\x22passed\x22\x0aelse\x0a\x20\x20STATUS=\x22failed\x22\x0afi\x0a\x0aecho\x20\x22Flow\x20$DISPLAY_INDEX/$TOTAL\x20—\x20$FLOW:\x20$STATUS\x20in\x20$(awk\x20\x22BEGIN\x20{printf\x20\x5c\x22%.1f\x5c\x22,\x20$DURATION/1000}\x22)s\x22\x0aecho\x20\x22(Wait\x20for\x20the\x20end-of-run\x20summary\x20before\x20making\x20any\x20code\x20changes\x20—\x20the\x20flows\x20in\x20this\x20run\x20reference\x20your\x20pre-edit\x20code.)\x22\x0a',_0x58c37d=['.claude',_0x24357b(0x574),_0x24357b(0x405)],_0x1b1309=[_0x24357b(0x4fd),_0x24357b(0x574),_0x24357b(0x3d8)],_0x41cfcf='.rn-errors.json',_0xf5693=_0x24357b(0x4b2),_0x4c2ca2=_0x24357b(0x32f),_0x122d85=_0x24357b(0x44f),_0x413b65=[[_0x24357b(0x4fd),'settings.json'],['.claude','settings.local.json']];}});import{chmod,rename,stat as _0x2fec1e,unlink,writeFile as _0x4167b2}from'fs/promises';import{dirname as _0x2aebd1,join as _0x262d82}from'path';async function _0x182e89(_0x43204f,_0x2a232b){const _0x35a987=_0x5ccc4b,_0x2bfa76=_0x2aebd1(_0x43204f),_0x11f4aa=_0x262d82(_0x2bfa76,_0x43204f[_0x35a987(0x54d)](_0x2bfa76['length']+0x1)+'.tmp.'+process['pid']+'.'+Math[_0x35a987(0x4c9)]()[_0x35a987(0x2a9)](0x24)['slice'](0x2));let _0x22d5e3;try{const _0x260e25=await _0x2fec1e(_0x43204f);_0x22d5e3=_0x260e25[_0x35a987(0x508)]&0x1ff;}catch{}try{await _0x4167b2(_0x11f4aa,_0x2a232b,'utf-8'),_0x22d5e3!==void 0x0&&await chmod(_0x11f4aa,_0x22d5e3),await rename(_0x11f4aa,_0x43204f);}catch(_0x74b369){try{'xBWCt'==='xBWCt'?await unlink(_0x11f4aa):(this[_0x35a987(0x196)]=null,this['inflight']=null,this[_0x35a987(0x2bc)]=null,this['simulatorWdaUdid']=null,this[_0x35a987(0x1a0)][_0x35a987(0x141)](),this[_0x35a987(0x3b2)]['clear'](),this['stateVersion']++);}catch{}throw _0x74b369;}}var _0x2f5028=_0x4d3071({'src/utils/atomic-write.ts'(){'use strict';}});import{readFile as _0x5142f6}from'fs/promises';async function _0x40a1b0(_0x5a8df6){const _0x669b26=_0x5ccc4b;let _0x5b1ae4;try{_0x5b1ae4=await _0x5142f6(_0x5a8df6,'utf-8');}catch(_0x4a6439){const _0x437eff=_0x4a6439;if(_0x437eff&&_0x437eff['code']==='ENOENT')return{'kind':_0x669b26(0x569)};throw _0x4a6439;}try{return{'kind':'ok','value':JSON['parse'](_0x5b1ae4)};}catch(_0x4d52d1){return{'kind':_0x669b26(0x28c),'raw':_0x5b1ae4,'error':_0x4d52d1};}}function _0x1daa49(_0x4af3f9){const _0x345290=_0x5ccc4b;return _0x4af3f9!=null&&typeof _0x4af3f9==='object'&&!Array[_0x345290(0x178)](_0x4af3f9);}var _0x229532=_0x4d3071({'src/utils/json-config.ts'(){'use strict';}});import{mkdir as _0x43ffa0}from'fs/promises';import{join as _0x4a02e2}from'path';async function _0x5463e3(_0xf502fd){const _0x14d0b8=_0x5ccc4b,_0x401baf=_0x4a02e2(_0xf502fd,..._0x35a7fe),_0x3ba9e0=await _0x40a1b0(_0x401baf);if(_0x3ba9e0[_0x14d0b8(0x2b7)]===_0x14d0b8(0x28c))return{'status':_0x14d0b8(0x3a8),'settingsPath':_0x401baf,'reason':_0x14d0b8(0x38c)+_0x401baf+'\x20is\x20malformed\x20JSON\x20—\x20preserved;\x20fix\x20it\x20manually\x20then\x20re-run'};if(_0x3ba9e0['kind']==='ok'&&!_0x1daa49(_0x3ba9e0[_0x14d0b8(0x389)]))return{'status':'preserved','settingsPath':_0x401baf,'reason':_0x14d0b8(0x38c)+_0x401baf+_0x14d0b8(0x513)+(Array[_0x14d0b8(0x178)](_0x3ba9e0[_0x14d0b8(0x389)])?'array':typeof _0x3ba9e0[_0x14d0b8(0x389)])+_0x14d0b8(0x4e1)};const _0x2f4a4a=_0x3ba9e0['kind']==='ok'?_0x3ba9e0['value']:{};if(_0x2f4a4a[_0x14d0b8(0x2f9)]===!![])return{'status':'already-approved','settingsPath':_0x401baf};const _0x4bf731=_0x2f4a4a['enabledMcpjsonServers'];if(_0x4bf731!==void 0x0){if(!Array[_0x14d0b8(0x178)](_0x4bf731)||!_0x4bf731['every'](_0x35c545=>typeof _0x35c545==='string'))return{'status':_0x14d0b8(0x3a8),'settingsPath':_0x401baf,'reason':_0x14d0b8(0x186)+_0x401baf+'\x20is\x20not\x20an\x20array\x20of\x20strings\x20—\x20preserved'};if(_0x4bf731[_0x14d0b8(0x26f)](_0x141574))return _0x14d0b8(0x4fe)!==_0x14d0b8(0x4fe)?(_0x334126['scheme']=_0x160fb5,{'action':'added','scheme':_0x448b0f,'previousScheme':void 0x0,'nextScheme':[_0x1df246]}):{'status':'already-approved','settingsPath':_0x401baf};}const _0x40bf81=Array['isArray'](_0x4bf731)?[..._0x4bf731,_0x141574]:[_0x141574];return _0x2f4a4a[_0x14d0b8(0x439)]=_0x40bf81,await _0x43ffa0(_0x4a02e2(_0xf502fd,_0x14d0b8(0x4fd)),{'recursive':!![]}),await _0x182e89(_0x401baf,JSON['stringify'](_0x2f4a4a,null,0x2)+'\x0a'),{'status':'approved','settingsPath':_0x401baf};}var _0x141574,_0x35a7fe,_0x5c2b33=_0x4d3071({'src/init/claude-preapproval.ts'(){'use strict';const _0x301019=_0x5ccc4b;_0x2f5028(),_0x229532(),_0x141574=_0x301019(0x28a),_0x35a7fe=[_0x301019(0x4fd),_0x301019(0x505)];}});import{readFile as _0xedbfdc,unlink as _0x539133,access as _0x1b363a}from'fs/promises';import{homedir as _0x569270}from'os';import{join as _0x4c155c}from'path';function _0x3409ed(_0x23aaf4){const _0xda9777=_0x5ccc4b,_0x1db369=_0x23aaf4??_0x569270();return _0x32a964['map'](_0x1250ca=>({'label':_0x1250ca[_0xda9777(0x3bb)],'path':_0x4c155c(_0x1db369,..._0x1250ca['file'])}));}async function _0x366d55(_0x498119){const _0x20d6e6=_0x5ccc4b;try{return await _0x1b363a(_0x498119),!![];}catch{return'wwhRi'===_0x20d6e6(0x45d)?![]:{'success':![],'error':_0x20d6e6(0x304)};}}async function _0x119630(_0x141de5,_0x484747={}){const _0x2dc702=_0x5ccc4b,_0x2cd441=_0x484747['readFile']??(_0x54486a=>_0xedbfdc(_0x54486a,_0x2dc702(0x449))),_0x441f7c=_0x484747[_0x2dc702(0x330)]??_0x182e89,_0x5f411a=_0x484747[_0x2dc702(0x288)]??(_0x45cf09=>_0x539133(_0x45cf09)),_0x175cb4=_0x484747[_0x2dc702(0x318)]??_0x366d55,_0xf42ced=[];for(const _0x30f1a4 of _0x16ef5a){const _0x1cb31b=_0x4c155c(_0x141de5,_0x30f1a4);if(!await _0x175cb4(_0x1cb31b)){_0xf42ced['push']({'path':_0x1cb31b,'status':_0x2dc702(0x45e)});continue;}_0xf42ced[_0x2dc702(0x359)](await _0x4bd547(_0x1cb31b,{'read':_0x2cd441,'write':_0x441f7c,'unlink':_0x5f411a}));}for(const _0x17ed5d of _0x3ece5a){const _0x45b93d=_0x4c155c(_0x141de5,_0x17ed5d);if(!await _0x175cb4(_0x45b93d)){_0xf42ced['push']({'path':_0x45b93d,'status':_0x2dc702(0x45e)});continue;}_0xf42ced[_0x2dc702(0x359)](await _0x255c3e(_0x45b93d,{'read':_0x2cd441,'write':_0x441f7c,'unlink':_0x5f411a}));}const _0x1cde1a=_0x4c155c(_0x141de5,_0x56b0a1);return!await _0x175cb4(_0x1cde1a)?_0xf42ced['push']({'path':_0x1cde1a,'status':'not-found'}):_0xf42ced[_0x2dc702(0x359)](await _0x1a83cf(_0x1cde1a,{'read':_0x2cd441,'write':_0x441f7c,'unlink':_0x5f411a})),{'files':_0xf42ced};}async function _0x4bd547(_0x46f095,_0xfe9758){const _0x327be3=_0x5ccc4b,_0x1aa07a=await _0xfe9758[_0x327be3(0x421)](_0x46f095);let _0x59f2fe;try{'KDxVE'===_0x327be3(0x177)?_0x59f2fe=JSON[_0x327be3(0x398)](_0x1aa07a):_0x6cb6eb['push'](_0x4a3a2e+':\x20'+_0x2cd4b0(_0x2a8647));}catch{return{'path':_0x46f095,'status':_0x327be3(0x28c)};}if(!_0x59f2fe||typeof _0x59f2fe!=='object'||Array[_0x327be3(0x178)](_0x59f2fe))return{'path':_0x46f095,'status':_0x327be3(0x28c)};const _0x4e7f47=_0x59f2fe,_0x323e16=_0x4e7f47[_0x327be3(0x544)];if(!_0x323e16||typeof _0x323e16!=='object'||Array['isArray'](_0x323e16))return{'path':_0x46f095,'status':_0x327be3(0x4b0)};const _0x2143cc=_0x323e16,_0x5f3d86=[];for(const _0x30fff7 of _0x245b28){_0x30fff7 in _0x2143cc&&(delete _0x2143cc[_0x30fff7],_0x5f3d86[_0x327be3(0x359)](_0x30fff7));}if(_0x5f3d86['length']===0x0)return{'path':_0x46f095,'status':'no-changes'};const _0x550499=Object['keys'](_0x4e7f47)['filter'](_0x28ac58=>_0x28ac58!=='mcpServers'),_0x617c52=Object[_0x327be3(0x250)](_0x2143cc)[_0x327be3(0x471)]===0x0;if(_0x617c52&&_0x550499[_0x327be3(0x471)]===0x0)return await _0xfe9758[_0x327be3(0x288)](_0x46f095),{'path':_0x46f095,'status':'deleted-file','removedKeys':_0x5f3d86};const _0x219d52=_0x1aa07a['match'](/\n(\s+)"/),_0x386374=_0x219d52?.[0x1]??'\x20\x20',_0x166c2a=_0x1aa07a['endsWith']('\x0a'),_0x3fc9e8=JSON['stringify'](_0x4e7f47,null,_0x386374);return await _0xfe9758['write'](_0x46f095,_0x166c2a?_0x3fc9e8+'\x0a':_0x3fc9e8),{'path':_0x46f095,'status':_0x327be3(0x182),'removedKeys':_0x5f3d86};}async function _0x1a83cf(_0x4a9248,_0x3f807f){const _0x4b3025=_0x5ccc4b,_0x5531df=await _0x3f807f[_0x4b3025(0x421)](_0x4a9248);let _0x321843;try{_0x321843=JSON[_0x4b3025(0x398)](_0x5531df);}catch{return{'path':_0x4a9248,'status':_0x4b3025(0x28c)};}if(!_0x321843||typeof _0x321843!=='object'||Array[_0x4b3025(0x178)](_0x321843))return{'path':_0x4a9248,'status':'malformed'};const _0x400f4e=_0x321843,_0x43fe57=_0x400f4e[_0x4b3025(0x439)];if(!Array['isArray'](_0x43fe57)||!_0x43fe57['includes'](_0x141574))return{'path':_0x4a9248,'status':'no-changes'};const _0x3e70a3=_0x43fe57[_0x4b3025(0x235)](_0xabad1f=>_0xabad1f!==_0x141574);_0x3e70a3['length']===0x0?delete _0x400f4e['enabledMcpjsonServers']:_0x400f4e['enabledMcpjsonServers']=_0x3e70a3;if(Object[_0x4b3025(0x250)](_0x400f4e)['length']===0x0)return await _0x3f807f['unlink'](_0x4a9248),{'path':_0x4a9248,'status':_0x4b3025(0x206),'removedKeys':[_0x141574]};const _0x250b94=_0x5531df['match'](/\n(\s+)"/),_0x56250a=_0x250b94?.[0x1]??'\x20\x20',_0x1f4385=_0x5531df[_0x4b3025(0x227)]('\x0a'),_0x88afbf=JSON['stringify'](_0x400f4e,null,_0x56250a);return await _0x3f807f['write'](_0x4a9248,_0x1f4385?_0x88afbf+'\x0a':_0x88afbf),{'path':_0x4a9248,'status':_0x4b3025(0x182),'removedKeys':[_0x141574]};}function _0x3298a5(_0x57a68e,_0x599124){const _0x9f4b4b=_0x5ccc4b,_0x2e3fa9=_0x57a68e['split'](/\r?\n/),_0x2a520f=_0x57a68e['endsWith']('\x0a');if(_0x2a520f&&_0x2e3fa9['length']>0x0&&_0x2e3fa9[_0x2e3fa9[_0x9f4b4b(0x471)]-0x1]===''){if('KLasN'===_0x9f4b4b(0x566))_0x2e3fa9['pop']();else return{'ok':!![],'severity':'info','message':_0x9f4b4b(0x345)};}const _0x363794=[],_0x4b3c0c=[];let _0x4db61b=![],_0x58ba1=![];for(let _0x28d2fe=0x0;_0x28d2fe<_0x2e3fa9[_0x9f4b4b(0x471)];_0x28d2fe++){const _0x4696d6=_0x2e3fa9[_0x28d2fe],_0x2fc6be=_0x4696d6['trim'](),_0x28aa30=_0x2fc6be[_0x9f4b4b(0x425)]('[')&&_0x2fc6be[_0x9f4b4b(0x227)](']');if(_0x28aa30){if('CyNyY'!==_0x9f4b4b(0x464)){const _0x4b1115=_0x2fc6be['slice'](0x1,-0x1)[_0x9f4b4b(0x1cd)](),_0x2388f8=_0x599124[_0x9f4b4b(0x466)](_0x4b1115);if(_0x2388f8){_0x363794['length']>0x0&&_0x363794[_0x363794['length']-0x1]===''&&_0x363794['pop']();const _0x301e3c=_0x4b1115[_0x9f4b4b(0x425)](_0x9f4b4b(0x4e6))?_0x4b1115[_0x9f4b4b(0x54d)]('mcp_servers.'[_0x9f4b4b(0x471)]):_0x4b1115;_0x4b3c0c[_0x9f4b4b(0x359)](_0x301e3c),_0x4db61b=!![],_0x58ba1=![];continue;}(_0x4db61b||_0x58ba1)&&_0x363794[_0x9f4b4b(0x471)]>0x0&&_0x363794[_0x363794[_0x9f4b4b(0x471)]-0x1]!==''&&_0x363794['push']('');_0x4db61b=![],_0x58ba1=![],_0x363794['push'](_0x4696d6);continue;}else _0x27346b=![],_0x260170='iproxy\x20auto-bridge\x20failed\x20to\x20start:\x20'+(_0x33834f['stderr']?.[0x0]??_0x9f4b4b(0x55f))+'.',_0x409740=_0x9f4b4b(0x35a),_0x14b343={'stderr':_0xca13c2[_0x9f4b4b(0x4ca)]};}if(_0x4db61b){_0x58ba1=!![];continue;}if(_0x58ba1){if(_0x2fc6be==='')continue;_0x363794['length']>0x0&&_0x363794[_0x363794['length']-0x1]!==''&&_0x363794[_0x9f4b4b(0x359)]('');_0x58ba1=![],_0x363794[_0x9f4b4b(0x359)](_0x4696d6);continue;}_0x363794[_0x9f4b4b(0x359)](_0x4696d6);}while(_0x363794['length']>0x0&&_0x363794[_0x363794['length']-0x1]===''){_0x363794[_0x9f4b4b(0x53b)]();}const _0x59d47b=_0x363794[_0x9f4b4b(0x3aa)]('\x0a'),_0x2ad6de=_0x2a520f&&_0x59d47b['length']>0x0?_0x59d47b+'\x0a':_0x59d47b;return{'next':_0x2ad6de,'removedKeys':_0x4b3c0c};}async function _0x255c3e(_0x5c412a,_0x30767e){const _0x25d8bb=_0x5ccc4b,_0x2bb2ef=await _0x30767e[_0x25d8bb(0x421)](_0x5c412a),_0x33553c=new Set(_0x245b28['map'](_0x105cb9=>'mcp_servers.'+_0x105cb9)),{next:_0x450347,removedKeys:_0x24257f}=_0x3298a5(_0x2bb2ef,_0x33553c);if(_0x24257f[_0x25d8bb(0x471)]===0x0)return{'path':_0x5c412a,'status':_0x25d8bb(0x4b0)};if(_0x450347['trim']()['length']===0x0)return await _0x30767e[_0x25d8bb(0x288)](_0x5c412a),{'path':_0x5c412a,'status':'deleted-file','removedKeys':_0x24257f};return await _0x30767e[_0x25d8bb(0x2c9)](_0x5c412a,_0x450347),{'path':_0x5c412a,'status':_0x25d8bb(0x182),'removedKeys':_0x24257f};}async function _0x4baf00(_0x22d703={}){const _0x5219b5=_0x5ccc4b,_0xbb8c63=_0x22d703['readFile']??(_0x3de249=>_0xedbfdc(_0x3de249,_0x5219b5(0x449))),_0xcc6fe7=_0x22d703[_0x5219b5(0x330)]??_0x182e89,_0x1f12ff=_0x22d703['unlink']??(_0x79c77e=>_0x539133(_0x79c77e)),_0xd97c35=_0x22d703['fileExists']??_0x366d55,_0x1068aa=[];for(const {path:_0x546f3f}of _0x3409ed(_0x22d703[_0x5219b5(0x278)])){if(!await _0xd97c35(_0x546f3f)){_0x1068aa['push']({'path':_0x546f3f,'status':_0x5219b5(0x45e)});continue;}_0x1068aa['push'](await _0x4bd547(_0x546f3f,{'read':_0xbb8c63,'write':_0xcc6fe7,'unlink':_0x1f12ff}));}return{'files':_0x1068aa};}var _0x16ef5a,_0x3ece5a,_0x56b0a1,_0x32a964,_0x245b28,_0x3e10cf,_0x15447a=_0x4d3071({'src/uninstall/revert-mcp-clients.ts'(){'use strict';const _0x32f6e6=_0x5ccc4b;_0x2f5028(),_0x5c2b33(),_0x16ef5a=[_0x32f6e6(0x244),_0x4c155c(_0x32f6e6(0x323),'mcp.json'),_0x4c155c(_0x32f6e6(0x24e),_0x32f6e6(0x1ed))],_0x3ece5a=[_0x4c155c(_0x32f6e6(0x53f),_0x32f6e6(0x29e))],_0x56b0a1=_0x4c155c('.claude',_0x32f6e6(0x505)),_0x32a964=[{'label':'Windsurf','dir':[_0x32f6e6(0x542),'windsurf'],'file':[_0x32f6e6(0x542),'windsurf',_0x32f6e6(0x15a)]},{'label':_0x32f6e6(0x146),'dir':['.gemini','antigravity'],'file':[_0x32f6e6(0x258),_0x32f6e6(0x435),_0x32f6e6(0x15a)]}],_0x245b28=['mobile-mcp',_0x32f6e6(0x28a)],_0x3e10cf=['mobile-mcp'];}}),_0x537b6c={};_0x22ce2d(_0x537b6c,{'runInit':()=>_0x2f1474,'setupClaudeHook':()=>_0x3d991e,'setupCodexToml':()=>_0x1b7299,'setupJsonMcp':()=>_0x1a430f,'setupMcpClients':()=>_0x520d9c});import{readFile as _0x124659,writeFile as _0x79be54,mkdir as _0x5666ff,access as _0x531a7d,chmod as _0x2c2c01}from'fs/promises';import{join as _0x32f9f4}from'path';async function _0xf74da4(_0x20cfda){try{return await _0x531a7d(_0x20cfda),!![];}catch{return![];}}async function _0x2cd518(_0x239560,_0x13ab69){const _0x17cf57=_0x5ccc4b;await _0x5666ff(_0x32f9f4(_0x239560,'..'),{'recursive':!![]}),await _0x182e89(_0x239560,JSON[_0x17cf57(0x2ba)](_0x13ab69,null,0x2)+'\x0a');}function _0x2d4ce(_0x416697){console['log']('\x20\x20'+_0x416697);}async function _0x1a430f(_0x767e37,_0x2de6a1){const _0x5626b6=_0x5ccc4b,_0x53676c=await _0x40a1b0(_0x767e37);if(_0x53676c[_0x5626b6(0x2b7)]==='malformed')return _0x2d4ce(_0x2de6a1+_0x5626b6(0x47b)+_0x767e37+_0x5626b6(0x47d)),![];const _0x25d61a=_0x53676c['kind']==='ok'?_0x53676c[_0x5626b6(0x389)]:{};if(_0x53676c['kind']==='ok'&&!_0x1daa49(_0x25d61a))return'qvxDL'===_0x5626b6(0x290)?(_0x2d4ce(_0x2de6a1+_0x5626b6(0x47b)+_0x767e37+_0x5626b6(0x513)+(Array['isArray'](_0x25d61a)?'array':typeof _0x25d61a)+_0x5626b6(0x4f5)),![]):null;const _0x3d0258=_0x1daa49(_0x25d61a)?_0x25d61a:{},_0x471266=_0x3d0258[_0x5626b6(0x544)];if(_0x471266!==void 0x0&&!_0x1daa49(_0x471266))return _0x2d4ce(_0x2de6a1+':\x20existing\x20mcpServers\x20in\x20'+_0x767e37+'\x20is\x20not\x20a\x20JSON\x20object\x20(got\x20'+(Array[_0x5626b6(0x178)](_0x471266)?_0x5626b6(0x4ea):typeof _0x471266)+')\x20—\x20preserving\x20the\x20file.'),![];const _0x49f145=_0x1daa49(_0x471266)?_0x471266:{};let _0x1f5a19=![];for(const _0x1aad66 of _0x3e10cf){_0x1aad66 in _0x49f145&&(delete _0x49f145[_0x1aad66],_0x1f5a19=!![]);}const _0x218576=Boolean(_0x49f145['react-native-mcp']);if(_0x218576&&!_0x1f5a19)return _0x2d4ce(_0x2de6a1+_0x5626b6(0x1bd)),![];return _0x49f145['react-native-mcp']=_0x48e0b2['react-native-mcp'],_0x3d0258['mcpServers']=_0x49f145,await _0x2cd518(_0x767e37,_0x3d0258),_0x2d4ce(_0x2de6a1+_0x5626b6(0x415)),!![];}async function _0x1b7299(_0x1d266d){const _0x4742d2=_0x5ccc4b;let _0x1b0ac6='';try{if('qCKpU'!=='MylNj')_0x1b0ac6=await _0x124659(_0x1d266d,_0x4742d2(0x449));else{const _0x35beba=_0x1ce850[_0x4742d2(0x19c)]('react');if(!_0x35beba)return _0x2b9feb['addImportDeclaration']({'moduleSpecifier':'react','namedImports':['useEffect']}),!![];const _0x15256c=_0x35beba['getNamedImports']();if(!_0x15256c[_0x4742d2(0x28e)](_0x85d803=>_0x85d803['getName']()===_0x4742d2(0x2b5)))return _0x35beba[_0x4742d2(0x2eb)](_0x4742d2(0x2b5)),!![];return![];}}catch{}const _0x5b07d1=new Set(_0x3e10cf[_0x4742d2(0x362)](_0x3e5d24=>'mcp_servers.'+_0x3e5d24)),_0x38b116=_0x3298a5(_0x1b0ac6,_0x5b07d1);_0x1b0ac6=_0x38b116[_0x4742d2(0x4ec)];const _0x9f22e4=_0x38b116[_0x4742d2(0x1c6)][_0x4742d2(0x471)]>0x0,_0x4bc6e8=_0x1b0ac6[_0x4742d2(0x26f)](_0x4742d2(0x168));if(_0x4bc6e8&&!_0x9f22e4)return _0x2d4ce(_0x4742d2(0x20e)),![];if(!_0x4bc6e8){const _0x2ea5fa='\x0a[mcp_servers.react-native-mcp]\x0acommand\x20=\x20\x22npx\x22\x0aargs\x20=\x20[\x22-y\x22,\x20\x22@ceraph/react-native-mcp@latest\x22]\x0a';_0x1b0ac6=_0x1b0ac6+_0x2ea5fa;}return await _0x5666ff(_0x32f9f4(_0x1d266d,'..'),{'recursive':!![]}),await _0x182e89(_0x1d266d,_0x1b0ac6),_0x2d4ce('Codex:\x20configured\x20✓'),!![];}async function _0x3d991e(_0x5d0de0=_0x1ccac1){const _0x5751b2=_0x5ccc4b,_0x304c8d=_0x32f9f4(_0x5d0de0,'.claude',_0x5751b2(0x574)),_0x1de1a9=_0x32f9f4(_0x304c8d,'rn-error-notify.sh'),_0x5d7ca9=_0x32f9f4(_0x304c8d,_0x5751b2(0x3d8));await _0x5666ff(_0x304c8d,{'recursive':!![]}),await _0x182e89(_0x1de1a9,_0x3482ec),await _0x2c2c01(_0x1de1a9,0x1ed),_0x2d4ce(_0x5751b2(0x453)),await _0x182e89(_0x5d7ca9,_0x304ac8),await _0x2c2c01(_0x5d7ca9,0x1ed),_0x2d4ce('Hook\x20script:\x20.claude/hooks/rn-flow-progress-notify.sh\x20✓');const _0x5609fd=_0x32f9f4(_0x5d0de0,'.claude','settings.json'),_0xf7728c=_0x32f9f4(_0x5d0de0,_0x5751b2(0x4fd),'settings.local.json'),_0x317f33=(_0x304fd5,_0x3a6aad,_0x25538a)=>{const _0x4e49fc=_0x5751b2;if('beely'!=='tcPPW'){const _0x48430c=_0x1daa49(_0x304fd5)?_0x304fd5:{},_0x9714bf=_0x48430c[_0x4e49fc(0x574)],_0x52d9fc=_0x1daa49(_0x9714bf)?_0x9714bf:{},_0x190d8d=_0x52d9fc[_0x4e49fc(0x22e)];if(!Array['isArray'](_0x190d8d))return _0x190d8d!==void 0x0;return _0x190d8d['some'](_0x41788a=>{const _0x558741=_0x4e49fc;if(!_0x1daa49(_0x41788a))return![];if(_0x41788a['matcher']!==_0x3a6aad)return![];const _0x2f2272=_0x41788a[_0x558741(0x574)];if(!Array[_0x558741(0x178)](_0x2f2272))return![];return _0x2f2272[_0x558741(0x28e)](_0x2d114c=>{const _0x1e5d8a=_0x558741;if(!_0x1daa49(_0x2d114c))return![];const _0x1d37f5=_0x2d114c['command'];return typeof _0x1d37f5===_0x1e5d8a(0x40a)&&_0x1d37f5===_0x25538a;});});}else{for(const _0x3a1387 of _0x1a04d2[_0x4e49fc(0x48e)])_0x34dae9[_0x4e49fc(0x532)](_0x3a1387);}},_0x1ea40c=await _0x40a1b0(_0x5609fd),_0x19250e=await _0x40a1b0(_0xf7728c);if(_0x1ea40c['kind']==='malformed'){_0x2d4ce('Claude\x20Code\x20hook:\x20'+_0x5609fd+'\x20is\x20malformed\x20JSON\x20—\x20preserving\x20it.\x20Fix\x20the\x20file\x20manually\x20then\x20re-run\x20init.');return;}if(_0x19250e['kind']===_0x5751b2(0x28c)){_0x2d4ce(_0x5751b2(0x16a)+_0xf7728c+'\x20is\x20malformed\x20JSON\x20—\x20preserving\x20it.\x20Fix\x20the\x20file\x20manually\x20then\x20re-run\x20init.');return;}const _0x5734b2=_0x1ea40c['kind']==='ok'?_0x1ea40c[_0x5751b2(0x389)]:null,_0x50111f=_0x19250e['kind']==='ok'?_0x19250e[_0x5751b2(0x389)]:null;if(_0x5734b2!==null&&!_0x1daa49(_0x5734b2)){_0x2d4ce('Claude\x20Code\x20hook:\x20'+_0x5609fd+_0x5751b2(0x585));return;}if(_0x50111f!==null&&!_0x1daa49(_0x50111f)){if(_0x5751b2(0x1ca)!==_0x5751b2(0x3cf)){_0x2d4ce('Claude\x20Code\x20hook:\x20'+_0xf7728c+_0x5751b2(0x585));return;}else{'use strict';_0x180d94=_0x5f2742(_0x490e07),_0x372cf8=new _0x1a9f7c([_0x5751b2(0x3b3),_0x5751b2(0x56d),'.jsx','.js','.cjs',_0x5751b2(0x32e),_0x5751b2(0x4bb)]),_0x5c1c7b=[/(^|\/)\.env(\.|$)/,/\.pem$/,/\.key$/,/\.p12$/,/\.pfx$/,/\.keystore$/,/\.jks$/,/\.mobileprovision$/,/(^|\/)credentials?\b/,/(^|\/)secrets?\b/,/private[_-]?key/];}}const _0xc75403=_0x5734b2??{},_0x745bcf=_0xc75403[_0x5751b2(0x574)];if(_0x745bcf!==void 0x0&&!_0x1daa49(_0x745bcf)){_0x2d4ce('Claude\x20Code\x20hook:\x20'+_0x5609fd+_0x5751b2(0x4e3));return;}const _0x147a5a=_0x1daa49(_0x745bcf)?_0x745bcf:{},_0x105d75=_0x147a5a['FileChanged'],_0xdd2230=Array['isArray'](_0x105d75)?_0x105d75:[];let _0x32a7be=![];!_0x317f33(_0x5734b2,_0x41cfcf,_0x4c2ca2)&&!_0x317f33(_0x50111f,_0x41cfcf,_0x4c2ca2)?(_0xdd2230[_0x5751b2(0x359)]({'matcher':_0x41cfcf,'hooks':[{'type':'command','command':_0x4c2ca2}]}),_0x32a7be=!![],_0x2d4ce('Claude\x20Code\x20hook:\x20FileChanged\x20→\x20.rn-errors.json\x20✓')):_0x2d4ce(_0x5751b2(0x259));if(!_0x317f33(_0x5734b2,_0xf5693,_0x122d85)&&!_0x317f33(_0x50111f,_0xf5693,_0x122d85))_0xdd2230['push']({'matcher':_0xf5693,'hooks':[{'type':_0x5751b2(0x459),'command':_0x122d85}]}),_0x32a7be=!![],_0x2d4ce('Claude\x20Code\x20hook:\x20FileChanged\x20→\x20.rn-flow-progress.json\x20✓');else{if('sePrO'!==_0x5751b2(0x189))_0x2d4ce(_0x5751b2(0x16c));else{const _0x4c58d3=_0x4e57fc?{'dryRun':!![]}:{};switch(_0x1682c7['status']){case'reverted':return{'name':'signal-host','status':_0x5751b2(0x28d),'details':{'path':_0x546c63['path'],'shell':_0x1f523b[_0x5751b2(0x22a)],'removedIp':_0x33304c['removedIp'],..._0x4c58d3}};case _0x5751b2(0x1b6):return{'name':_0x5751b2(0x4e8),'status':_0x5751b2(0x1b6),'details':{'path':_0x2b49db['path'],'shell':_0x4bb8d3[_0x5751b2(0x22a)],..._0x4c58d3}};case _0x5751b2(0x200):return{'name':_0x5751b2(0x4e8),'status':'already-reverted','details':{'reason':_0x5751b2(0x2aa),'path':_0x4f0a33['path'],..._0x4c58d3}};}}}_0x32a7be&&(_0x147a5a[_0x5751b2(0x22e)]=_0xdd2230,_0xc75403['hooks']=_0x147a5a,await _0x2cd518(_0x5609fd,_0xc75403));}async function _0x26855f(){const _0x5ccc64=_0x32f9f4(_0x1ccac1,'.ceraph','camera-images');await _0x5666ff(_0x5ccc64,{'recursive':!![]});const _0xfabe55=_0x32f9f4(_0x5ccc64,'README.md');!await _0xf74da4(_0xfabe55)?(await _0x79be54(_0xfabe55,_0xff7f59,'utf-8'),_0x2d4ce('Camera\x20images:\x20.ceraph/camera-images/\x20+\x20README.md\x20✓')):_0x2d4ce('Camera\x20images:\x20.ceraph/camera-images/\x20already\x20exists');}async function _0x1fbd9a(){const _0x1eaf5d=_0x5ccc4b,_0x55b5da=_0x32f9f4(_0x1ccac1,'.gitignore');let _0xee541c='';try{_0xee541c=await _0x124659(_0x55b5da,_0x1eaf5d(0x449));}catch{}const _0x28de9b=[_0x1eaf5d(0x457),_0x1eaf5d(0x4b2),'.ceraph/runs/',_0x1eaf5d(0x49d),_0x1eaf5d(0x2f5)],_0x3bde18=_0x28de9b[_0x1eaf5d(0x235)](_0x23a392=>!_0xee541c[_0x1eaf5d(0x26f)](_0x23a392));if(_0x3bde18[_0x1eaf5d(0x471)]===0x0){_0x2d4ce('.gitignore:\x20entries\x20already\x20present');return;}const _0x909b8e=_0xee541c===''||_0xee541c[_0x1eaf5d(0x227)]('\x0a')?'':'\x0a',_0x4473c0=_0x909b8e+_0x3bde18['join']('\x0a')+'\x0a';await _0x182e89(_0x55b5da,_0xee541c+_0x4473c0),_0x2d4ce('.gitignore:\x20added\x20'+_0x3bde18[_0x1eaf5d(0x3aa)](',\x20')+'\x20✓');}async function _0x520d9c(){const _0x37fdbb=_0x5ccc4b;console['log']('MCP\x20configuration:'),await _0x1a430f(_0x32f9f4(_0x1ccac1,_0x37fdbb(0x244)),'Claude\x20Code');const _0x202493=await _0x5463e3(_0x1ccac1);_0x202493['status']==='preserved'?_0x2d4ce(_0x37fdbb(0x3dc)+_0x202493['settingsPath']+'\x20has\x20an\x20unexpected\x20shape\x20—\x20preserving\x20it.\x20'+_0x202493[_0x37fdbb(0x3d1)]):_0x2d4ce('Claude\x20Code:\x20pre-approved\x20the\x20Ceraph\x20MCP\x20server\x20(no\x20trust\x20prompt)\x20✓');await _0x1a430f(_0x32f9f4(_0x1ccac1,_0x37fdbb(0x323),_0x37fdbb(0x1ed)),'Cursor'),await _0x1b7299(_0x32f9f4(_0x1ccac1,'.codex','config.toml')),await _0x1a430f(_0x32f9f4(_0x1ccac1,_0x37fdbb(0x24e),_0x37fdbb(0x1ed)),'VS\x20Code');const _0x574748=process.env.HOME??process.env.USERPROFILE??'';if(_0x574748){const _0x3638d1=_0x32f9f4(_0x574748,_0x37fdbb(0x542),'windsurf','mcp_config.json');await _0xf74da4(_0x32f9f4(_0x574748,_0x37fdbb(0x542),_0x37fdbb(0x384)))&&await _0x1a430f(_0x3638d1,'Windsurf');const _0x4d1661=_0x32f9f4(_0x574748,_0x37fdbb(0x258),'antigravity',_0x37fdbb(0x15a));await _0xf74da4(_0x32f9f4(_0x574748,_0x37fdbb(0x258),_0x37fdbb(0x435)))&&await _0x1a430f(_0x4d1661,'Antigravity');}return _0x202493;}function _0xdd2fef(_0x1af2af){const _0x56dd44=_0x5ccc4b,_0x3b2ada=_0x1af2af['filter'](_0x3e0792=>_0x3e0792[_0x56dd44(0x22d)]===_0x56dd44(0x51e)&&!_0x3e0792['ok']),_0x287a04=_0x1af2af[_0x56dd44(0x235)](_0x134737=>_0x134737['severity']===_0x56dd44(0x473)&&!_0x134737['ok']);if(_0x3b2ada[_0x56dd44(0x471)]===0x0&&_0x287a04[_0x56dd44(0x471)]===0x0)return'';const _0x1988db=[];for(const _0x193766 of _0x3b2ada){if(_0x56dd44(0x1da)==='XxrTc'){const _0x42d03f=_0x3e3bd5['kind']==='bad-response'&&_0x43e6b4[_0x56dd44(0x4e5)]['includes']('no-mobile-graph')?_0x56dd44(0x1dd):_0x56dd44(0x1e3);return{'status':'skipped','reason':_0x42d03f,'message':_0x4cf96f?_0x3af531['agentMessage']+'\x20(payload\x20was\x20capped\x20at\x20'+_0x1b876c+'\x20files).':_0x264c88[_0x56dd44(0x4e5)]};}else{_0x1988db['push']('\x20\x20[BLOCKER]\x20'+_0x193766[_0x56dd44(0x34d)]+':\x20'+_0x193766['message']);if(_0x193766['remediation'])_0x1988db[_0x56dd44(0x359)](_0x56dd44(0x166)+_0x193766['remediation']);}}for(const _0x114d5b of _0x287a04){_0x1988db['push'](_0x56dd44(0x312)+_0x114d5b[_0x56dd44(0x34d)]+':\x20'+_0x114d5b['message']);if(_0x114d5b[_0x56dd44(0x2c8)])_0x1988db['push']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20'+_0x114d5b['remediation']);}return _0x1988db['join']('\x0a')+'\x0a';}function _0x5c9261(_0x5a39a0){const _0x277fe3=_0x5ccc4b;if(_0x5a39a0)return!![];if(process.env.CERAPH_NON_INTERACTIVE==='1')return!![];return!process[_0x277fe3(0x263)][_0x277fe3(0x346)];}async function _0x2f1474(_0x45737d={}){const _0x475f8f=_0x5ccc4b,_0x26bf53=console['log'];_0x45737d['outputToStderr']&&(console[_0x475f8f(0x560)]=(..._0x15c792)=>{const _0x36d431=_0x475f8f;process['stderr'][_0x36d431(0x2c9)](_0x15c792['map'](_0x5bfce5=>typeof _0x5bfce5==='string'?_0x5bfce5:String(_0x5bfce5))['join']('\x20')+'\x0a');});try{return await _0x1f8bc2(_0x45737d);}finally{_0x45737d['outputToStderr']&&(console['log']=_0x26bf53);}}async function _0x1f8bc2(_0x4a94fc){const _0x53d811=_0x5ccc4b,_0x477e5b=_0x4a94fc['agentMode']===!![],_0x169d77=_0x4a94fc['outputToStderr']?_0x3fca8d=>{const _0x512ffa=_0x4997;if('EMRvM'!=='VFZeq')process['stderr'][_0x512ffa(0x2c9)](_0x3fca8d);else{if(!_0x3be207(_0x21d9dc))return![];if(_0x210350['matcher']!==_0x4ca4ae)return![];const _0x34e05a=_0x18b353['hooks'];if(!_0x3b2f14[_0x512ffa(0x178)](_0x34e05a))return![];return _0x34e05a[_0x512ffa(0x28e)](_0x3f28f0=>{const _0x358505=_0x512ffa;if(!_0x38f29d(_0x3f28f0))return![];const _0x3a2ee9=_0x3f28f0[_0x358505(0x459)];return typeof _0x3a2ee9===_0x358505(0x40a)&&_0x3a2ee9===_0x37328c;});}}:void 0x0;if(_0x4a94fc['tier']==='pro'&&_0x5c9261(_0x477e5b))return await _0x13b611(_0x53d811(0x55d))['catch'](()=>void 0x0),console['log']('\x0a@ceraph/react-native-mcp\x20init\x0a'),console['log'](_0x53d811(0x251)),console['log']('\x20\x201.\x20Sign\x20in:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3cde31({'intent':_0x53d811(0x55d)})),console[_0x53d811(0x560)]('\x20\x202.\x20Complete\x20checkout:\x20https://ceraph.dev/#pricing'),console['log'](_0x53d811(0x1ab)),{'proSignInDeferred':!![],'walkthrough':null};console[_0x53d811(0x560)](_0x53d811(0x489));const _0x43fae2=await _0x520d9c();console[_0x53d811(0x560)]('\x0aRuntime\x20error\x20hook:'),await _0x3d991e(),console[_0x53d811(0x560)]('\x0aCamera\x20test\x20images:'),await _0x26855f(),console['log'](_0x53d811(0x1d6)),await _0x1fbd9a();const _0x59608b=await _0x105c3d(_0x1ccac1,{'agentMode':_0x477e5b,'nonInteractive':_0x477e5b?!![]:void 0x0,'write':_0x169d77,'installStdioToStderr':_0x4a94fc[_0x53d811(0x3c1)]===!![],'tier':_0x4a94fc['tier'],'claudePreApprovalPreserved':_0x43fae2['status']==='preserved','runDoctor':async()=>{const _0x337bb2=_0x53d811,_0x4afb01=new _0x2a4caf(),_0x251446=new _0x650c57(_0x4afb01),_0x96b8fb=new _0x15dafc(_0x4afb01),_0x182d03=await _0x3291dc({'screen':_0x4afb01,'apps':_0x251446,'autonomy':_0x96b8fb,'projectDir':_0x1ccac1,'excludeRuntimeChecks':!![]}),_0x22dab7=_0x182d03[_0x337bb2(0x432)][_0x337bb2(0x235)](_0xb52cbc=>_0xb52cbc['ok'])[_0x337bb2(0x471)];return{'ok':_0x182d03['ok'],'summary':_0xdd2fef(_0x182d03[_0x337bb2(0x432)]),'passedCount':_0x22dab7,'totalCount':_0x182d03[_0x337bb2(0x432)][_0x337bb2(0x471)]};}});return{'proSignInDeferred':![],'walkthrough':_0x59608b};}var _0x1ccac1,_0x48e0b2,_0xff7f59,_0x28c613,_0x331bb0=_0x4d3071({'src/init.ts'(){'use strict';const _0x4dc438=_0x5ccc4b;_0x18bca4(),_0x5cecd5(),_0xe6e8e7(),_0x40fba2(),_0x24177a(),_0xc961e7(),_0x2cd4f8(),_0x103dd1(),_0x2f5028(),_0x229532(),_0x5c2b33(),_0x15447a(),_0x1ccac1=process[_0x4dc438(0x380)](),_0x48e0b2={'react-native-mcp':{'command':_0x4dc438(0x209),'args':['-y','@ceraph/react-native-mcp@latest']}},_0xff7f59=_0x4dc438(0x277),_0x28c613=process['argv'][0x1]??'';if(_0x28c613[_0x4dc438(0x227)](_0x4dc438(0x558))||_0x28c613[_0x4dc438(0x227)]('init.ts')){const _0x39d683=process.env.CERAPH_AGENT_MODE==='1'||process[_0x4dc438(0x575)][_0x4dc438(0x26f)]('--agent');_0x2f1474({'agentMode':_0x39d683})['catch'](_0x2f8ad4=>{const _0x3d69fc=_0x4dc438;console[_0x3d69fc(0x51e)](_0x3d69fc(0x19f),_0x2f8ad4),process[_0x3d69fc(0x55b)](0x1);});}}});import{existsSync,readFileSync,readdirSync}from'fs';import{isAbsolute as _0x440740,join as _0x57d3c9,relative as _0x72845e,resolve,sep as _0x31cb5c}from'path';function _0x2d729b(_0x1e3f44,_0x2d0385){const _0x391183=_0x5ccc4b;if(!_0x1e3f44||_0x1e3f44[_0x391183(0x471)]===0x0)return _0x2d0385;const _0x33776c=_0x440740(_0x1e3f44)?_0x1e3f44:resolve(_0x2d0385,_0x1e3f44),_0x544001=_0x72845e(_0x2d0385,_0x33776c),_0x518047=_0x544001===''||_0x544001!=='..'&&!_0x544001['startsWith']('..'+_0x31cb5c)&&!_0x440740(_0x544001);return _0x518047?_0x2d0385:_0x33776c;}var _0x15ef18=_0x4d3071({'src/resolve-project-dir.ts'(){'use strict';_0x1ecc92();}});import{readFile as _0x216e76,unlink as _0x16fc0c,writeFile as _0x98c618}from'fs/promises';import{join as _0x215fab}from'path';async function _0x5bbb26(_0x26a591,_0x113e7a={}){const _0x2edea2=_0x5ccc4b,_0x5539b1=_0x215fab(_0x26a591,_0x2edea2(0x3f6)),_0x2ee75c=_0x113e7a['readFile']??(_0x446b52=>_0x216e76(_0x446b52,_0x2edea2(0x449))),_0x527e8c=_0x113e7a[_0x2edea2(0x330)]??((_0x496634,_0x760d2c)=>_0x98c618(_0x496634,_0x760d2c,_0x2edea2(0x449))),_0xcf4b11=_0x113e7a['unlink']??(_0x3d9758=>_0x16fc0c(_0x3d9758)),_0x155c17=[];for(const _0x13bb16 of _0x1423ee){if(_0x2edea2(0x2d7)===_0x2edea2(0x155))_0x440519['pop']();else{const _0xee0991=_0x215fab(_0x26a591,_0x13bb16);try{await _0xcf4b11(_0xee0991),_0x155c17[_0x2edea2(0x359)](_0x13bb16);}catch{}}}let _0x26796f;try{_0x2edea2(0x395)===_0x2edea2(0x395)?_0x26796f=await _0x2ee75c(_0x5539b1):(_0x5bdba8['push']({'matcher':_0x1fb92f,'hooks':[{'type':_0x2edea2(0x459),'command':_0x3f5952}]}),_0x70cfec=!![],_0x19e974(_0x2edea2(0x142)));}catch{return{'status':_0x2edea2(0x190),'path':_0x5539b1,'removedRuntimeFiles':_0x155c17};}const _0x46455c=_0x26796f[_0x2edea2(0x227)]('\x0a'),_0xff1185=_0x26796f['split'](/\r?\n/);_0x46455c&&_0xff1185['length']>0x0&&_0xff1185[_0xff1185[_0x2edea2(0x471)]-0x1]===''&&_0xff1185[_0x2edea2(0x53b)]();const _0x40acdd=new Set(_0x38d59b),_0x34080c=[],_0x3fdc8e=[];for(const _0x1589e8 of _0xff1185){if(_0x40acdd['has'](_0x1589e8[_0x2edea2(0x1cd)]())){_0x34080c['push'](_0x1589e8);continue;}_0x3fdc8e['push'](_0x1589e8);}if(_0x34080c[_0x2edea2(0x471)]===0x0){if('MnSEB'===_0x2edea2(0x3fb))return{'status':'already-reverted','path':_0x5539b1,'removedRuntimeFiles':_0x155c17};else _0x2cb5e6(_0x49d848);}const _0x3085c8=_0x46455c?_0x3fdc8e[_0x2edea2(0x3aa)]('\x0a')+'\x0a':_0x3fdc8e['join']('\x0a');return await _0x527e8c(_0x5539b1,_0x3085c8),{'status':'reverted','path':_0x5539b1,'removedLines':_0x34080c,'removedRuntimeFiles':_0x155c17};}var _0x38d59b,_0x1423ee,_0x2477a0=_0x4d3071({'src/uninstall/revert-gitignore.ts'(){'use strict';const _0x3176cc=_0x5ccc4b;_0x38d59b=[_0x3176cc(0x457),_0x3176cc(0x4b2),'.ceraph/runs/',_0x3176cc(0x49d),_0x3176cc(0x2f5)],_0x1423ee=['.rn-errors.json',_0x3176cc(0x4b2)];}});import{readFile as _0x58acdf,writeFile as _0x1973d3}from'fs/promises';import{homedir as _0x1cd68f}from'os';import{join as _0x4ebade}from'path';function _0x59e282(_0x458277={}){const _0x4a61d3=_0x5ccc4b,_0xf51c91=_0x458277['env']??process.env,_0x23a4f2=_0x458277['home']??_0x1cd68f(),_0x1df824=_0xf51c91[_0x4a61d3(0x3ce)]??'';if(_0x1df824['endsWith']('/bash'))return{'path':_0x4ebade(_0x23a4f2,_0x4a61d3(0x434)),'shell':'bash'};return{'path':_0x4ebade(_0x23a4f2,_0x4a61d3(0x412)),'shell':_0x4a61d3(0x152)};}async function _0xd296a9(_0xc06b81={}){const _0x11daf8=_0x5ccc4b,_0x40c4a4=_0xc06b81[_0x11daf8(0x4da)]??_0x59e282({'env':_0xc06b81['env'],'home':_0xc06b81['home']}),_0x3dad6a=_0xc06b81[_0x11daf8(0x37a)]??(_0x4fc513=>_0x58acdf(_0x4fc513,_0x11daf8(0x449))),_0x3b8a57=_0xc06b81['writeFile']??((_0x30c754,_0x151fac)=>_0x1973d3(_0x30c754,_0x151fac,_0x11daf8(0x449)));let _0x8a2986;try{'HNFwX'!=='HNFwX'?_0x276131['addSourceFileAtPath'](_0x37f31d):_0x8a2986=await _0x3dad6a(_0x40c4a4['path']);}catch{return{'status':'no-profile','path':_0x40c4a4[_0x11daf8(0x195)],'shell':_0x40c4a4[_0x11daf8(0x22a)]};}const _0x569767=_0x8a2986[_0x11daf8(0x35c)](_0x2979bf);if(_0x569767===-0x1)return{'status':'already-reverted','path':_0x40c4a4[_0x11daf8(0x195)],'shell':_0x40c4a4[_0x11daf8(0x22a)]};const _0x2d4898=_0x8a2986[_0x11daf8(0x35c)](_0x85c845,_0x569767);if(_0x2d4898===-0x1)return'YqyOJ'!=='tImSw'?{'status':'already-reverted','path':_0x40c4a4['path'],'shell':_0x40c4a4['shell']}:{'kind':'malformed','raw':_0x191ae3,'error':_0x5d7ba8};const _0x1e8e39=_0x2d4898+_0x85c845[_0x11daf8(0x471)],_0x3c4b3f=_0x8a2986[_0x1e8e39]==='\x0a'?_0x1e8e39+0x1:_0x1e8e39,_0x4c3532=_0x8a2986[_0x11daf8(0x54d)](_0x569767,_0x3c4b3f),_0x516b6c=_0x4c3532[_0x11daf8(0x2ae)](/export\s+CERAPH_SIGNAL_HOST=(\S+)/),_0x25fb36=_0x516b6c?_0x516b6c[0x1]:null;let _0x3e4166=_0x569767;_0x3e4166>=0x1&&_0x8a2986[_0x3e4166-0x1]==='\x0a'&&(_0x3e4166>=0x2&&_0x8a2986[_0x3e4166-0x2]==='\x0a'&&(_0x3e4166-=0x1));const _0xb7b35=_0x8a2986['slice'](0x0,_0x3e4166)+_0x8a2986[_0x11daf8(0x54d)](_0x3c4b3f);return await _0x3b8a57(_0x40c4a4['path'],_0xb7b35),{'status':'reverted','path':_0x40c4a4[_0x11daf8(0x195)],'shell':_0x40c4a4['shell'],'removedIp':_0x25fb36};}var _0x2979bf,_0x85c845,_0x4fcba6=_0x4d3071({'src/uninstall/revert-signal-host-env.ts'(){'use strict';const _0x4e303e=_0x5ccc4b;_0x2979bf='#\x20Ceraph\x20signal\x20host\x20—\x20auto-set\x20by\x20@ceraph/react-native-mcp\x20init',_0x85c845=_0x4e303e(0x238);}});import{rm as _0x5297de,readdir as _0x1fe975,stat as _0x48e49c}from'fs/promises';import{join as _0x3c87fe}from'path';async function _0x1dbdeb(_0x475c0c,_0x1f32be){const _0x50369c=_0x5ccc4b;try{if(_0x50369c(0x4d0)==='vMbqs'){const _0x5da273=_0x335b96[_0x50369c(0x1d3)]?.['trim']()||_0x17d862.env.CERAPH_API_URL?.[_0x50369c(0x1cd)]()||_0x7ed0b0;return _0x5da273[_0x50369c(0x2be)](/\/+$/,'')+'/tier-check';}else{const _0x29387d=await _0x1f32be(_0x475c0c);return _0x29387d['isDirectory']();}}catch{return![];}}async function _0x507d3d(_0x1019bd,_0x25c5ec={}){const _0x1ea0eb=_0x5ccc4b,_0x350e46=_0x3c87fe(_0x1019bd['projectDir'],'.ceraph'),_0x5de8da=_0x25c5ec['rm']??((_0x35a2f0,_0x1be9a4)=>_0x5297de(_0x35a2f0,_0x1be9a4)),_0x17e92b=_0x25c5ec[_0x1ea0eb(0x564)]??(_0xf34f91=>_0x1fe975(_0xf34f91)),_0x53774e=_0x25c5ec[_0x1ea0eb(0x205)]??(_0x254121=>_0x48e49c(_0x254121)),_0x4bec1e=await _0x1dbdeb(_0x350e46,_0x53774e);if(!_0x4bec1e){if(_0x1ea0eb(0x3e9)==='hnyCa'){const _0x118dba=_0x2e0523[_0x1ea0eb(0x235)](_0x23a566=>{const _0x592565=_0x1b4051.env[_0x23a566];return _0x592565===void 0x0||_0x592565==='';});if(_0x118dba['length']===0x0)return{'ok':!![],'severity':'error','message':'All\x20'+_0x12ce37['length']+'\x20required\x20env\x20var(s)\x20present.','details':{'required':_0x1bb68e}};return{'ok':![],'severity':'error','message':_0x1ea0eb(0x364)+_0x118dba['join'](',\x20')+'.','remediation':_0x1ea0eb(0x497)+_0x118dba['map'](_0x311ec3=>_0x1ea0eb(0x219)+_0x311ec3+'=...')['join'](';\x20')+'\x20(or\x20add\x20them\x20to\x20.env.local).','details':{'missing':_0x118dba,'required':_0x1e3d99}};}else return{'status':_0x1ea0eb(0x1b6),'path':_0x350e46};}let _0xa1e889=[];try{_0xa1e889=await _0x17e92b(_0x350e46);}catch{_0xa1e889=[];}_0xa1e889[_0x1ea0eb(0x158)]();if(!_0x1019bd[_0x1ea0eb(0x3ab)])return{'status':_0x1ea0eb(0x4c4),'path':_0x350e46,'paths':_0xa1e889[_0x1ea0eb(0x362)](_0x1fdabe=>_0x3c87fe(_0x350e46,_0x1fdabe))};return await _0x5de8da(_0x350e46,{'recursive':!![],'force':!![]}),{'status':'deleted','path':_0x350e46,'deletedEntries':_0xa1e889};}var _0x28f550=_0x4d3071({'src/uninstall/revert-ceraph-dir.ts'(){'use strict';}});import{rmdir,unlink as _0xa83181}from'fs/promises';import{homedir as _0x3cc2c6}from'os';import{dirname as _0x292b2d,join as _0x10ed8e}from'path';function _0xdf4cef(_0x4f8b99={}){const _0x561457=_0x5ccc4b;return _0x10ed8e(_0x4f8b99['home']??_0x3cc2c6(),_0x561457(0x2f8),'auth.json');}async function _0x4a1b8e(_0x4717d6,_0x1b4b9c={}){const _0xb0ec99=_0x5ccc4b,_0x43d600=_0xdf4cef({'home':_0x1b4b9c[_0xb0ec99(0x278)]}),_0x4a4a26=_0x1b4b9c['unlink']??(_0x35c467=>_0xa83181(_0x35c467));if(!_0x4717d6['global'])return{'status':'skipped','path':_0x43d600,'note':'Pass\x20global:\x20true\x20to\x20remove\x20~/.ceraph/auth.json\x20—\x20the\x20token\x20is\x20user-global\x20and\x20removing\x20it\x20logs\x20you\x20out\x20of\x20every\x20Ceraph\x20install.'};const _0x12dd59=_0x1b4b9c['rmdir']??(_0x28c754=>rmdir(_0x28c754));try{await _0x4a4a26(_0x43d600);try{await _0x12dd59(_0x292b2d(_0x43d600));}catch{}return{'status':'deleted','path':_0x43d600};}catch(_0x28aadf){if('YTLum'!==_0xb0ec99(0x21c)){const _0x220b37=typeof _0x28aadf==='object'&&_0x28aadf!==null&&'code'in _0x28aadf&&_0x28aadf['code']===_0xb0ec99(0x3a4);if(_0x220b37){try{await _0x12dd59(_0x292b2d(_0x43d600));}catch{}return{'status':_0xb0ec99(0x1b6),'path':_0x43d600};}throw _0x28aadf;}else{const _0x490571=_0x5a9a69['getClosingElement']();_0x490571['getTagNameNode']()[_0xb0ec99(0x50c)]('CeraphCamera');}}}var _0x25614a=_0x4d3071({'src/uninstall/revert-auth.ts'(){'use strict';}});import{readFile as _0x19bf77,writeFile as _0x3d1e09,unlink as _0x4af8de}from'fs/promises';import{join as _0x346030}from'path';import{Project as _0x1dc618,SyntaxKind as _0x5bcaaf}from'ts-morph';async function _0x5b2342(_0x538876){const _0x56b860=_0x5ccc4b,_0x2390f7=_0x538876['readFile']??(_0x3d0343=>_0x19bf77(_0x3d0343,'utf-8')),_0x1a6557=_0x538876[_0x56b860(0x330)]??((_0x5c974a,_0x5a7af6)=>_0x3d1e09(_0x5c974a,_0x5a7af6,_0x56b860(0x449))),_0xa937f3=_0x538876[_0x56b860(0x288)]??(_0x32b33b=>_0x4af8de(_0x32b33b));let _0x4e75db,_0x52cad9;for(const _0x26bf68 of _0x286703){const _0x568258=_0x346030(_0x538876[_0x56b860(0x298)],_0x26bf68);try{_0x52cad9=await _0x2390f7(_0x568258),_0x4e75db=_0x568258;break;}catch{}}if(!_0x4e75db||_0x52cad9===void 0x0)return{'status':_0x56b860(0x329)};if(!_0x52cad9['includes'](_0x2b6942))return{'status':_0x56b860(0x1b6),'path':_0x4e75db};if(_0x3b271b[_0x56b860(0x26f)](_0x52cad9))return await _0xa937f3(_0x4e75db),{'status':_0x56b860(0x28d),'path':_0x4e75db,'action':_0x56b860(0x358)};const _0x58319e=new _0x1dc618({'useInMemoryFileSystem':!![]}),_0x271322=_0x58319e[_0x56b860(0x187)](_0x56b860(0x2cb),_0x52cad9);let _0x377592=![];_0x271322['forEachDescendant'](_0x23690e=>{const _0x4e6fd8=_0x56b860;if(_0x4e6fd8(0x218)!==_0x4e6fd8(0x218)){const _0x1eaa8e=_0x5550a4['lastIndexOf']('.');if(_0x1eaa8e<=0x0)return null;const _0x330949=_0x35479b['slice'](0x0,_0x1eaa8e),_0x39e7db=_0x182fe6[_0x4e6fd8(0x54d)](_0x1eaa8e)[_0x4e6fd8(0x223)]();if(!_0xf75fdf(_0x39e7db))return null;if(_0x330949['length']===0x0)return null;return{'stem':_0x330949,'ext':_0x39e7db};}else{if(_0x377592)return;if(_0x23690e[_0x4e6fd8(0x2c0)]()!==_0x5bcaaf['ArrayLiteralExpression'])return;const _0xc6b29=_0x23690e,_0x587d94=_0xc6b29['getElements']();for(let _0xbbfbae=0x0;_0xbbfbae<_0x587d94['length'];_0xbbfbae++){if(_0x4e6fd8(0x1c2)!=='dICUu'){if(_0x587d94[_0xbbfbae][_0x4e6fd8(0x1a9)]()['includes'](_0x2b6942)){_0xc6b29[_0x4e6fd8(0x1b1)](_0xbbfbae),_0x377592=!![];break;}}else _0x56c4dc='tap\x20succeeded\x20but\x20post-tap\x20verify\x20failed:\x20'+_0x300bf1;}}});if(!_0x377592)return{'status':_0x56b860(0x1b6),'path':_0x4e75db};return await _0x1a6557(_0x4e75db,_0x271322[_0x56b860(0x175)]()),{'status':_0x56b860(0x28d),'path':_0x4e75db,'action':'stripped'};}var _0x3b271b,_0xa7ca1d=_0x4d3071({'src/uninstall/revert-babel-config.ts'(){'use strict';const _0x1cfff1=_0x5ccc4b;_0x165f87(),_0x3b271b=[_0x4662a5(_0x1cfff1(0x4a4)),_0x4662a5('@react-native/babel-preset')];}});import{readFile as _0x251e5a,writeFile as _0x48480f,access as _0x2b9ef8}from'fs/promises';import{join as _0x4b0863}from'path';async function _0x252440(_0x18791c){try{return await _0x2b9ef8(_0x18791c),!![];}catch{return![];}}function _0x2637f1(_0x238406){const _0x3b031a=_0x5ccc4b;if(!_0x238406[_0x3b031a(0x172)]||typeof _0x238406['expo']!=='object')return{'changed':![],'previousScheme':void 0x0,'nextScheme':void 0x0};const _0x327302=_0x238406[_0x3b031a(0x172)],_0x40fdcf=_0x327302[_0x3b031a(0x18f)];if(typeof _0x40fdcf==='string'){if(_0x40fdcf===_0x55e68b)return delete _0x327302[_0x3b031a(0x18f)],{'changed':!![],'previousScheme':_0x40fdcf,'nextScheme':void 0x0};return{'changed':![],'previousScheme':_0x40fdcf,'nextScheme':_0x40fdcf};}if(Array['isArray'](_0x40fdcf)){const _0x630e47=_0x40fdcf[_0x3b031a(0x26f)](_0x55e68b);if(!_0x630e47)return{'changed':![],'previousScheme':[..._0x40fdcf],'nextScheme':[..._0x40fdcf]};const _0x374032=_0x40fdcf[_0x3b031a(0x235)](_0x2ef06c=>_0x2ef06c!==_0x55e68b),_0x30a4f4=[..._0x40fdcf];if(_0x374032[_0x3b031a(0x471)]===0x0)return delete _0x327302['scheme'],{'changed':!![],'previousScheme':_0x30a4f4,'nextScheme':void 0x0};if(_0x374032[_0x3b031a(0x471)]===0x1)return _0x327302['scheme']=_0x374032[0x0],{'changed':!![],'previousScheme':_0x30a4f4,'nextScheme':_0x374032[0x0]};return _0x327302['scheme']=_0x374032,{'changed':!![],'previousScheme':_0x30a4f4,'nextScheme':_0x374032};}return{'changed':![],'previousScheme':void 0x0,'nextScheme':void 0x0};}function _0x595b4a(_0x2a0096){const _0x13eca8=_0x5ccc4b;try{const _0x1c0914=JSON[_0x13eca8(0x398)](_0x2a0096);if(!_0x1c0914||typeof _0x1c0914!=='object'||Array['isArray'](_0x1c0914))return null;return _0x1c0914;}catch{return null;}}function _0xba5796(_0x32c9dd,_0x449f08){const _0x5c82e3=_0x5ccc4b,_0x54518f=_0x449f08[_0x5c82e3(0x2ae)](/\n(\s+)"/),_0x14f1ec=_0x54518f?.[0x1]??'\x20\x20',_0x89f18a=_0x449f08['endsWith']('\x0a'),_0x4507b6=JSON[_0x5c82e3(0x2ba)](_0x32c9dd,null,_0x14f1ec);return _0x89f18a?_0x4507b6+'\x0a':_0x4507b6;}function _0x2ffcbf(_0x546032){const _0x46da8a=_0x5ccc4b;return _0x46da8a(0x2d3)+_0x546032+_0x46da8a(0x413);}async function _0x2a567c(_0x213341,_0x373698={}){const _0x2b43e1=_0x5ccc4b,_0x1ea5af=_0x373698[_0x2b43e1(0x318)]??_0x252440,_0x4c5173=_0x373698[_0x2b43e1(0x37a)]??(_0x22aedf=>_0x251e5a(_0x22aedf,_0x2b43e1(0x449))),_0x1c40e5=_0x373698[_0x2b43e1(0x330)]??((_0x4c6ccd,_0x1d9602)=>_0x48480f(_0x4c6ccd,_0x1d9602,_0x2b43e1(0x449))),_0x323d61=_0x4b0863(_0x213341,_0x2b43e1(0x271)),_0xb67d36=_0x4b0863(_0x213341,'app.config.js'),_0x4a0ecb=_0x4b0863(_0x213341,_0x2b43e1(0x3a7)),_0x19e303=_0x4b0863(_0x213341,'ios'),_0x21a592=_0x4b0863(_0x213341,_0x2b43e1(0x559)),_0x5089cd=await _0x1ea5af(_0xb67d36),_0x3f567e=await _0x1ea5af(_0x4a0ecb);if(_0x5089cd||_0x3f567e){const _0x17eae7=_0x3f567e?_0x4a0ecb:_0xb67d36;return{'status':'manual','kind':'expo-dynamic','path':_0x17eae7,'remediation':_0x2ffcbf(_0x17eae7)};}if(await _0x1ea5af(_0x323d61)){const _0x232156=await _0x4c5173(_0x323d61),_0x55e784=_0x595b4a(_0x232156);if(!_0x55e784)return{'status':'already-reverted','path':_0x323d61};const {changed:_0x33d2ec,previousScheme:_0xb0ba89,nextScheme:_0x245566}=_0x2637f1(_0x55e784);if(!_0x33d2ec)return{'status':_0x2b43e1(0x1b6),'path':_0x323d61};return await _0x1c40e5(_0x323d61,_0xba5796(_0x55e784,_0x232156)),{'status':_0x2b43e1(0x28d),'path':_0x323d61,'previousScheme':_0xb0ba89,'nextScheme':_0x245566};}if(await _0x1ea5af(_0x19e303)||await _0x1ea5af(_0x21a592))return{'status':_0x2b43e1(0x1f3),'kind':'bare-rn','remediation':_0x61df2b};return{'status':_0x2b43e1(0x4af)};}var _0x55e68b,_0x61df2b,_0x4a4dae=_0x4d3071({'src/uninstall/revert-scheme.ts'(){'use strict';_0x55e68b='ceraph',_0x61df2b='Remove\x20the\x20ceraph\x20scheme\x20from\x20ios/<App>/Info.plist\x20CFBundleURLTypes\x20and\x20android/app/src/main/AndroidManifest.xml.\x20Both\x20files\x20were\x20never\x20written\x20by\x20init\x20—\x20they\x20require\x20manual\x20edits\x20because\x20they\x20are\x20inside\x20the\x20customer\x27s\x20native\x20project\x20tree.';}});import{access as _0x169c1d,readFile as _0x4e76b0,unlink as _0x430075}from'fs/promises';import{join as _0x4f1f70}from'path';async function _0x7039ae(_0x2185ec){try{return await _0x169c1d(_0x2185ec),!![];}catch{return![];}}async function _0x175dd8(_0x16ef19,_0x5f41b3={}){const _0x2dd4d7=_0x5ccc4b,_0x29c0de=_0x5f41b3[_0x2dd4d7(0x37a)]??(_0x76e627=>_0x4e76b0(_0x76e627,_0x2dd4d7(0x449))),_0x1e60e4=_0x5f41b3['writeFile']??_0x182e89,_0x1420f0=_0x5f41b3[_0x2dd4d7(0x288)]??(_0x330d6f=>_0x430075(_0x330d6f)),_0x587d4b=_0x5f41b3['fileExists']??_0x7039ae,_0x3a0913=[{'scriptAbsPath':_0x4f1f70(_0x16ef19[_0x2dd4d7(0x298)],..._0x58c37d),'canonicalScript':_0x3482ec,'matcher':_0x41cfcf,'command':_0x4c2ca2},{'scriptAbsPath':_0x4f1f70(_0x16ef19['projectDir'],..._0x1b1309),'canonicalScript':_0x304ac8,'matcher':_0xf5693,'command':_0x122d85}],_0xd0bba6=[],_0x568e87=[];for(const _0x3d7a9a of _0x3a0913){if(!await _0x587d4b(_0x3d7a9a[_0x2dd4d7(0x1d1)]))continue;let _0x57307f;try{_0x57307f=await _0x29c0de(_0x3d7a9a['scriptAbsPath']);}catch{_0x568e87[_0x2dd4d7(0x359)](_0x3d7a9a['scriptAbsPath']);continue;}_0x57307f===_0x3d7a9a[_0x2dd4d7(0x447)]?(await _0x1420f0(_0x3d7a9a['scriptAbsPath']),_0xd0bba6['push'](_0x3d7a9a[_0x2dd4d7(0x1d1)])):_0x568e87['push'](_0x3d7a9a['scriptAbsPath']);}const _0x15a7ba=[],_0x3f7d24=[];for(const _0x4f3802 of _0x413b65){const _0x2d5271=_0x4f1f70(_0x16ef19[_0x2dd4d7(0x298)],..._0x4f3802);if(!await _0x587d4b(_0x2d5271))continue;let _0x110ffd;try{_0x110ffd=await _0x29c0de(_0x2d5271);}catch{_0x3f7d24['push'](_0x2d5271);continue;}let _0x5054c3;try{_0x5054c3=JSON['parse'](_0x110ffd);}catch{_0x3f7d24[_0x2dd4d7(0x359)](_0x2d5271);continue;}if(!_0x5054c3||typeof _0x5054c3!=='object'||Array[_0x2dd4d7(0x178)](_0x5054c3)){_0x3f7d24[_0x2dd4d7(0x359)](_0x2d5271);continue;}const _0x43a08a=_0xbef984(_0x5054c3,_0x3a0913);if(!_0x43a08a['mutated']){_0x3f7d24[_0x2dd4d7(0x359)](_0x2d5271);continue;}const _0x23875d=_0x110ffd['match'](/\n(\s+)"/),_0x9f43c3=_0x23875d?.[0x1]??'\x20\x20',_0x253158=_0x110ffd['endsWith']('\x0a'),_0x57a408=JSON[_0x2dd4d7(0x2ba)](_0x43a08a[_0x2dd4d7(0x4ec)],null,_0x9f43c3);await _0x1e60e4(_0x2d5271,_0x253158?_0x57a408+'\x0a':_0x57a408),_0x15a7ba['push'](_0x2d5271);}const _0x352a40=_0xd0bba6[_0x2dd4d7(0x471)]>0x0||_0x15a7ba[_0x2dd4d7(0x471)]>0x0;let _0xe5ad18;if(_0x568e87[_0x2dd4d7(0x471)]>0x0)_0xe5ad18='manual';else _0x352a40?_0xe5ad18='reverted':_0xe5ad18=_0x2dd4d7(0x1b6);return{'status':_0xe5ad18,'details':{'scriptsDeleted':_0xd0bba6,'scriptsLeftAlone':_0x568e87,'settingsFilesModified':_0x15a7ba,'settingsFilesUntouched':_0x3f7d24}};}function _0xbef984(_0x1c4009,_0x4ab837){const _0x4adb0b=_0x5ccc4b,_0x417f78=_0x1c4009[_0x4adb0b(0x574)];if(!_0x417f78||typeof _0x417f78!=='object'||Array[_0x4adb0b(0x178)](_0x417f78)){if('wPFnx'!=='wPFnx')_0x30f155(_0x2ae6d4);else return{'mutated':![],'next':_0x1c4009};}const _0x4c0add=_0x417f78,_0x5a3239=_0x4c0add['FileChanged'];if(!Array[_0x4adb0b(0x178)](_0x5a3239))return{'mutated':![],'next':_0x1c4009};const _0x4cebf5=new Map();for(const _0xb4aaeb of _0x4ab837)_0x4cebf5[_0x4adb0b(0x4fb)](_0xb4aaeb[_0x4adb0b(0x2d8)],_0xb4aaeb);const _0x16d535=[];let _0x2b058a=![];for(const _0x5ee66d of _0x5a3239){if(!_0x5ee66d||typeof _0x5ee66d!==_0x4adb0b(0x382)||Array[_0x4adb0b(0x178)](_0x5ee66d)){_0x16d535[_0x4adb0b(0x359)](_0x5ee66d);continue;}const _0x441378=_0x5ee66d,_0x3688f2=_0x441378[_0x4adb0b(0x2d8)];if(typeof _0x3688f2!=='string'){_0x16d535[_0x4adb0b(0x359)](_0x5ee66d);continue;}const _0x5bf0f3=_0x4cebf5[_0x4adb0b(0x476)](_0x3688f2);if(!_0x5bf0f3){_0x16d535[_0x4adb0b(0x359)](_0x5ee66d);continue;}const _0x43fd5d=_0x441378['hooks'];if(!Array[_0x4adb0b(0x178)](_0x43fd5d)){_0x16d535[_0x4adb0b(0x359)](_0x5ee66d);continue;}const _0x4b006b=[];let _0x5e6186=![];for(const _0x548033 of _0x43fd5d){if(!_0x548033||typeof _0x548033!=='object'||Array[_0x4adb0b(0x178)](_0x548033)){if('qriIE'==='QTdiC')_0x3c5be3[_0x4adb0b(0x579)]('SIGKILL');else{_0x4b006b['push'](_0x548033);continue;}}const _0x44e4f0=_0x548033,_0x3a3eec=_0x44e4f0[_0x4adb0b(0x459)];if(typeof _0x3a3eec===_0x4adb0b(0x40a)&&_0x3a3eec===_0x5bf0f3[_0x4adb0b(0x459)]){_0x5e6186=!![];continue;}_0x4b006b['push'](_0x548033);}if(!_0x5e6186){_0x16d535[_0x4adb0b(0x359)](_0x5ee66d);continue;}_0x2b058a=!![];if(_0x4b006b[_0x4adb0b(0x471)]===0x0)continue;_0x16d535['push']({..._0x441378,'hooks':_0x4b006b});}if(!_0x2b058a)return{'mutated':![],'next':_0x1c4009};const _0x4d6c15={..._0x4c0add};_0x16d535[_0x4adb0b(0x471)]===0x0?delete _0x4d6c15[_0x4adb0b(0x22e)]:_0x4d6c15[_0x4adb0b(0x22e)]=_0x16d535;const _0x5f5387={..._0x1c4009};return Object[_0x4adb0b(0x250)](_0x4d6c15)['length']===0x0?delete _0x5f5387['hooks']:_0x5f5387['hooks']=_0x4d6c15,{'mutated':!![],'next':_0x5f5387};}var _0x130ec9=_0x4d3071({'src/uninstall/revert-claude-hooks.ts'(){'use strict';_0x103dd1(),_0x2f5028();}});import{readFile as _0x18512d,writeFile as _0x2756c9}from'fs/promises';import{join as _0x2ef5f4}from'path';async function _0x240c07(){if(_0x145529)return;const _0x28b23e=await import('ts-morph');({IndentationText:_0x184176,Node:_0x3861f3,Project:_0x3b20ab,SyntaxKind:_0xeef8a5}=_0x28b23e,_0x145529=!![]);}async function _0x58bece(_0x8fd2ed){const _0x180971=_0x5ccc4b;try{return await _0x18512d(_0x8fd2ed,_0x180971(0x449)),!![];}catch{return![];}}async function _0x26350c(_0x3682eb){const _0x30d6be=_0x5ccc4b,_0x1d2506=_0x2ef5f4(_0x3682eb,'app',_0x30d6be(0x289));if(await _0x58bece(_0x1d2506))return{'kind':'expo-router','filePath':_0x1d2506};const _0x3432db=_0x2ef5f4(_0x3682eb,_0x30d6be(0x526),'_layout.jsx');if(await _0x58bece(_0x3432db))return{'kind':'expo-router','filePath':_0x3432db};for(const _0x4dff2f of['App.tsx','App.jsx']){const _0x33b4aa=_0x2ef5f4(_0x3682eb,_0x4dff2f);if(await _0x58bece(_0x33b4aa))return{'kind':_0x30d6be(0x213),'filePath':_0x33b4aa};}return null;}function _0x1d3d3e(_0xc31f8f){const _0x62dd43=_0x5ccc4b;for(const _0x476e29 of _0xc31f8f['getFunctions']()){if(_0x476e29[_0x62dd43(0x280)]())return _0x476e29;}const _0x5e5e79=_0xc31f8f['getStatements']()[_0x62dd43(0x173)](_0x3301aa=>_0x3861f3['isExportAssignment'](_0x3301aa));if(_0x5e5e79&&_0x3861f3['isExportAssignment'](_0x5e5e79)){const _0xb0724a=_0x5e5e79['getExpression']();if(_0x3861f3[_0x62dd43(0x431)](_0xb0724a)){if('glotG'!==_0x62dd43(0x407))_0x42a26a(_0x527d11('Could\x20not\x20find\x20app/_layout.tsx\x20or\x20App.tsx.\x20Add\x20this\x20to\x20your\x20root\x20component\x20manually\x20(the\x20require\x20path\x20is\x20relative\x20to\x20that\x20file\x20—\x20`./.ceraph/testid-config.json`\x20from\x20a\x20root\x20App.tsx,\x20`../.ceraph/testid-config.json`\x20from\x20app/_layout.tsx):\x0a\x20\x20useEffect(()\x20=>\x20{\x20installCeraph({\x20readTestidConfig:\x20()\x20=>\x20{\x20try\x20{\x20return\x20require(\x22./.ceraph/testid-config.json\x22);\x20}\x20catch\x20{\x20return\x20null;\x20}\x20}\x20});\x20},\x20[]);'));else{const _0x22f8c6=_0xb0724a['getSymbol']();if(_0x22f8c6){const _0x293179=_0x22f8c6[_0x62dd43(0x3c6)]()[0x0];if(_0x293179&&_0x3861f3[_0x62dd43(0x41e)](_0x293179)){const _0x5ea48a=_0x293179[_0x62dd43(0x56f)]();if(_0x5ea48a&&_0x3861f3['isArrowFunction'](_0x5ea48a))return _0x5ea48a;if(_0x5ea48a&&_0x3861f3['isFunctionExpression'](_0x5ea48a))return _0x5ea48a;}}}}if(_0x3861f3['isArrowFunction'](_0xb0724a))return _0xb0724a;if(_0x3861f3[_0x62dd43(0x32d)](_0xb0724a))return _0xb0724a;}return null;}function _0x310c48(_0x2f7553){const _0x2242e4=_0x5ccc4b;if(_0x3861f3[_0x2242e4(0x381)](_0x2f7553)){const _0x438268=_0x2f7553[_0x2242e4(0x4a7)]();if(_0x3861f3[_0x2242e4(0x57d)](_0x438268)){const _0x974f82=_0x438268[_0x2242e4(0x4a7)]();if(_0x3861f3[_0x2242e4(0x431)](_0x974f82)&&_0x974f82[_0x2242e4(0x1a9)]()===_0x59ed1a)return!![];}}return![];}function _0x2cce57(_0x4627b7){const _0x54294f=_0x5ccc4b,_0x11b566=_0x4627b7['getArguments']();if(_0x11b566['length']===0x0)return'unrelated';const _0x464d4b=_0x11b566[0x0];let _0x5999fe=null;if(_0x3861f3['isArrowFunction'](_0x464d4b)||_0x3861f3[_0x54294f(0x32d)](_0x464d4b)){const _0x5647de=_0x464d4b['getBody']();if(_0x3861f3['isBlock'](_0x5647de))_0x5999fe=_0x5647de;else{if(_0x3861f3['isCallExpression'](_0x5647de)){const _0x4f8239=_0x5647de['getExpression']();if(_0x3861f3[_0x54294f(0x431)](_0x4f8239)&&_0x4f8239[_0x54294f(0x1a9)]()===_0x59ed1a)return _0x54294f(0x3ee);}return _0x54294f(0x1d9);}}else return'unrelated';if(!_0x5999fe)return _0x54294f(0x1d9);const _0x47fddd=_0x5999fe['getStatements']();if(_0x47fddd[_0x54294f(0x471)]===0x0)return _0x54294f(0x1d9);let _0x15fe2e=![],_0x294665=![];for(const _0x2bb647 of _0x47fddd){_0x310c48(_0x2bb647)?_0x15fe2e=!![]:_0x294665=!![];}if(!_0x15fe2e)return'unrelated';return _0x294665?_0x54294f(0x199):_0x54294f(0x3ee);}function _0x261bb0(_0x6a08fd){const _0x483d51=_0x6a08fd['getBody']();if(!_0x483d51||!_0x3861f3['isBlock'](_0x483d51))return[];const _0x536821=[];return _0x483d51['forEachDescendant'](_0x5cdfc0=>{const _0x50f926=_0x4997;if(_0x3861f3[_0x50f926(0x57d)](_0x5cdfc0)){const _0x5b7bd4=_0x5cdfc0[_0x50f926(0x4a7)]();if(_0x3861f3['isIdentifier'](_0x5b7bd4)&&_0x5b7bd4['getText']()==='useEffect'){if(_0x50f926(0x527)!==_0x50f926(0x44c))_0x536821[_0x50f926(0x359)](_0x5cdfc0);else{_0x23069b[_0x50f926(0x359)]('\x20\x20[WARN]\x20\x20\x20\x20'+_0x556d52['name']+':\x20'+_0x344292[_0x50f926(0x554)]);if(_0x15a8d1['remediation'])_0x47d17a['push'](_0x50f926(0x166)+_0x9119bd['remediation']);}}}}),_0x536821;}function _0xcc39b1(_0x4e3dcc){const _0x37ff2c=_0x5ccc4b,_0x332d85=_0x4e3dcc['getImportDeclaration'](_0x37ff2c(0x409));if(!_0x332d85)return![];const _0x1725b1=_0x332d85[_0x37ff2c(0x437)](),_0x4be074=_0x1725b1[_0x37ff2c(0x173)](_0x57cbf6=>_0x57cbf6['getName']()==='useEffect');if(!_0x4be074)return![];const _0x25846a=_0x4be074['getAliasNode']();if(_0x25846a)return![];let _0x3f0858=![];_0x4e3dcc[_0x37ff2c(0x311)](_0x2e8ecb=>{const _0x563327=_0x37ff2c;if(_0x3f0858)return;if(_0x3861f3['isIdentifier'](_0x2e8ecb)&&_0x2e8ecb['getText']()==='useEffect'){const _0x277c9a=_0x2e8ecb[_0x563327(0x33a)]();if(_0x277c9a&&(_0x3861f3[_0x563327(0x21d)](_0x277c9a)||_0x3861f3[_0x563327(0x368)](_0x277c9a)))return;_0x3f0858=!![];}});if(_0x3f0858)return![];_0x4be074['remove']();const _0x49813c=_0x332d85['getNamedImports'](),_0x4e1948=_0x332d85[_0x37ff2c(0x226)]()!=null,_0x2a95d6=_0x332d85['getNamespaceImport']()!=null;return _0x49813c['length']===0x0&&!_0x4e1948&&!_0x2a95d6&&_0x332d85[_0x37ff2c(0x24c)](),!![];}function _0x1efc16(_0x11e6de){const _0x310586=_0x5ccc4b,_0x1614d2=_0x11e6de[_0x310586(0x19c)](_0x2437bc);if(!_0x1614d2)return![];const _0x1db13c=_0x1614d2[_0x310586(0x437)](),_0x47959c=_0x1db13c[_0x310586(0x173)](_0xf49b32=>_0xf49b32['getName']()===_0x59ed1a);if(!_0x47959c)return![];_0x47959c['remove']();const _0x111e52=_0x1614d2[_0x310586(0x437)](),_0x159a69=_0x1614d2[_0x310586(0x226)]()!=null;return _0x111e52[_0x310586(0x471)]===0x0&&!_0x159a69&&_0x1614d2[_0x310586(0x24c)](),!![];}async function _0x25a542(_0x4c503a){const _0x330561=_0x5ccc4b;await _0x240c07();const _0x40c23d=await _0x26350c(_0x4c503a);if(!_0x40c23d)return{'status':_0x330561(0x524)};const _0x1597bd=new _0x3b20ab({'useInMemoryFileSystem':![],'skipAddingFilesFromTsConfig':!![],'skipFileDependencyResolution':!![],'skipLoadingLibFiles':!![],'compilerOptions':{'allowJs':!![],'jsx':0x1},'manipulationSettings':{'indentationText':_0x184176[_0x330561(0x39c)]}}),_0x5cb428=_0x1597bd['addSourceFileAtPath'](_0x40c23d['filePath']),_0x33f84f=_0x1d3d3e(_0x5cb428);if(!_0x33f84f){const _0x564c3e=_0x1efc16(_0x5cb428);if(_0x564c3e)return await _0x2756c9(_0x40c23d['filePath'],_0x5cb428['getFullText'](),'utf-8'),{'status':'reverted','target':_0x40c23d,'removedUseEffect':![],'removedImport':!![]};return{'status':'already-reverted','target':_0x40c23d};}const _0x1872d8=_0x261bb0(_0x33f84f),_0x1a74ba=_0x1872d8[_0x330561(0x362)](_0x4a3118=>({'call':_0x4a3118,'kind':_0x2cce57(_0x4a3118)})),_0x39e9bb=_0x1a74ba['filter'](_0x174825=>_0x174825['kind']===_0x330561(0x3ee)),_0x492b88=_0x1a74ba[_0x330561(0x235)](_0x453967=>_0x453967['kind']==='installCeraph-with-others');if(_0x492b88['length']>0x0)return{'status':_0x330561(0x507),'target':_0x40c23d,'reason':_0x330561(0x4f3)};let _0x37dd0b=![];for(const _0x403d9f of _0x39e9bb){const _0x522ba8=_0x403d9f['call'][_0x330561(0x1d0)](_0xeef8a5[_0x330561(0x52c)]);_0x522ba8&&(_0x522ba8['remove'](),_0x37dd0b=!![]);}const _0x2b0006=_0x1efc16(_0x5cb428);_0x37dd0b&&_0xcc39b1(_0x5cb428);if(!_0x37dd0b&&!_0x2b0006)return{'status':'already-reverted','target':_0x40c23d};return await _0x2756c9(_0x40c23d['filePath'],_0x5cb428['getFullText'](),_0x330561(0x449)),{'status':'reverted','target':_0x40c23d,'removedUseEffect':_0x37dd0b,'removedImport':_0x2b0006};}var _0x184176,_0x3861f3,_0x3b20ab,_0xeef8a5,_0x145529,_0x2437bc,_0x59ed1a,_0xb98eca=_0x4d3071({'src/uninstall/revert-boot.ts'(){'use strict';_0x145529=![],_0x2437bc='@ceraph/react-native-mcp/shim',_0x59ed1a='installCeraph';}});import{writeFile as _0x381c4e,readdir as _0x37ced8}from'fs/promises';import{join as _0x24357f,relative as _0x4ad312,sep as _0x53bbf7}from'path';async function _0x4e750d(){const _0x2fded2=_0x5ccc4b;if(_0x341bcd)return;const _0x362911=await import(_0x2fded2(0x2cd));({IndentationText:_0x49afea,Node:_0x13bd16,Project:_0x58e31b,SyntaxKind:_0x18a111}=_0x362911,_0x341bcd=!![]);}async function _0x34ce04(_0x34b1a5){const _0x1211ea=_0x5ccc4b,_0xdbdbff=[];async function _0x1db404(_0x259c60){const _0x185c1c=_0x4997;let _0x156d80;try{_0x156d80=await _0x37ced8(_0x259c60,{'withFileTypes':!![]});}catch{return;}for(const _0x42e495 of _0x156d80){const _0x2dab38=_0x24357f(_0x259c60,_0x42e495[_0x185c1c(0x34d)]);if(_0x42e495[_0x185c1c(0x1c7)]()){if('YangL'==='YangL'){if(_0x45d910['has'](_0x42e495[_0x185c1c(0x34d)]))continue;await _0x1db404(_0x2dab38);continue;}else return[];}if(!_0x42e495[_0x185c1c(0x266)]())continue;const _0x3711f6=_0x42e495['name'][_0x185c1c(0x326)]('.');if(_0x3711f6<0x0)continue;const _0x382fe8=_0x42e495[_0x185c1c(0x34d)][_0x185c1c(0x54d)](_0x3711f6)[_0x185c1c(0x223)]();if(!_0x5b99b4[_0x185c1c(0x466)](_0x382fe8))continue;_0xdbdbff['push'](_0x2dab38);}}for(const _0x3391ef of _0x13af8d){await _0x1db404(_0x24357f(_0x34b1a5,_0x3391ef));}for(const _0x66b429 of['App.tsx','App.jsx']){_0xdbdbff[_0x1211ea(0x359)](_0x24357f(_0x34b1a5,_0x66b429));}return _0xdbdbff;}function _0xb976f1(_0x178cde){const _0x4f6728=_0x5ccc4b,_0x25f93e=new _0x58e31b({'useInMemoryFileSystem':![],'skipAddingFilesFromTsConfig':!![],'skipFileDependencyResolution':!![],'skipLoadingLibFiles':!![],'compilerOptions':{'allowJs':!![],'jsx':0x1},'manipulationSettings':{'indentationText':_0x49afea['TwoSpaces']}});for(const _0xbd6d03 of _0x178cde){try{_0x25f93e[_0x4f6728(0x1e7)](_0xbd6d03);}catch{}}return _0x25f93e;}function _0x301fe7(_0x1e5880,_0x3b8c83){const _0x4eb6c9=_0x5ccc4b,_0x124293=[];return _0x1e5880[_0x4eb6c9(0x311)](_0x187a1e=>{const _0x1649b3=_0x4eb6c9;if(_0x13bd16['isJsxOpeningElement'](_0x187a1e)||_0x13bd16['isJsxSelfClosingElement'](_0x187a1e)){const _0x3ede00=_0x187a1e[_0x1649b3(0x50e)]();_0x3ede00[_0x1649b3(0x1a9)]()===_0x3b8c83&&_0x124293['push'](_0x187a1e);}}),_0x124293;}function _0x23ae27(_0xc5fa84){const _0x3cb002=_0x5ccc4b,_0x1ddb40=_0xc5fa84[_0x3cb002(0x27a)]();for(const _0x58223e of _0x1ddb40){if(_0x13bd16[_0x3cb002(0x1f0)](_0x58223e)){const _0x35fd94=_0x58223e[_0x3cb002(0x2b4)]();_0x35fd94['getText']()==='imageKey'&&_0x58223e[_0x3cb002(0x24c)]();}}}function _0x33f7b7(_0x880b41){const _0x272da7=_0x5ccc4b;let _0xa26dd1=0x0,_0x386817=Number[_0x272da7(0x24b)];for(let _0x5c0960=0x0;_0x5c0960<0x2710;_0x5c0960++){const _0x5f1a7e=_0x301fe7(_0x880b41,_0x58ac42);if(_0x5f1a7e[_0x272da7(0x471)]===0x0)break;if(_0x5f1a7e['length']>=_0x386817)break;_0x386817=_0x5f1a7e['length'];const _0x25d19a=_0x5f1a7e[0x0];_0x25d19a[_0x272da7(0x50e)]()['replaceWithText'](_0x3c4c22);if(_0x13bd16['isJsxOpeningElement'](_0x25d19a)){const _0x56e247=_0x25d19a[_0x272da7(0x317)](_0x18a111['JsxElement']);if(_0x56e247){const _0x36a037=_0x56e247['getClosingElement']();_0x36a037[_0x272da7(0x50e)]()[_0x272da7(0x50c)](_0x3c4c22);}}_0x23ae27(_0x25d19a),_0xa26dd1++;}return _0xa26dd1;}function _0x2ae4bc(_0x1e791f){const _0x1d762b=_0x5ccc4b,_0x5c53fd=_0x1e791f['getImportDeclaration'](_0x40d4a6);if(!_0x5c53fd)return![];const _0x18fa8d=_0x5c53fd[_0x1d762b(0x437)](),_0x15d689=_0x18fa8d['find'](_0x307640=>_0x307640[_0x1d762b(0x1a3)]()===_0x58ac42);if(!_0x15d689)return![];_0x15d689['remove']();const _0x439a4b=_0x5c53fd[_0x1d762b(0x437)](),_0xa7adb8=_0x5c53fd['getDefaultImport']()!=null;return _0x439a4b['length']===0x0&&!_0xa7adb8&&_0x5c53fd[_0x1d762b(0x24c)](),!![];}function _0x33f3a4(_0x258ec9){const _0x37cfab=_0x5ccc4b,_0x204380=_0x258ec9[_0x37cfab(0x19c)](_0x4d488c);if(_0x204380){const _0x1d57d8=_0x204380[_0x37cfab(0x437)]();if(_0x1d57d8[_0x37cfab(0x28e)](_0x92ec14=>_0x92ec14[_0x37cfab(0x1a3)]()===_0x3c4c22))return![];return _0x204380[_0x37cfab(0x2eb)](_0x3c4c22),!![];}return _0x258ec9['addImportDeclaration']({'moduleSpecifier':_0x4d488c,'namedImports':[_0x3c4c22]}),!![];}async function _0x190423(_0x16c125){const _0x5b0319=_0x5ccc4b;await _0x4e750d();const _0x137035=await _0x34ce04(_0x16c125),_0x37fa17=_0xb976f1(_0x137035),_0x571547=[];let _0x58d0e6=0x0;for(const _0x167258 of _0x37fa17['getSourceFiles']()){_0x58d0e6++;const _0x9e8421=_0x301fe7(_0x167258,_0x58ac42);if(_0x9e8421['length']===0x0){const _0x1d09f2=_0x167258[_0x5b0319(0x19c)](_0x40d4a6),_0x43a1a2=_0x1d09f2!=null&&_0x1d09f2['getNamedImports']()['some'](_0x433154=>_0x433154[_0x5b0319(0x1a3)]()===_0x58ac42);if(!_0x43a1a2)continue;const _0x3417fd=_0x2ae4bc(_0x167258);if(!_0x3417fd)continue;const _0x2db48a=_0x167258[_0x5b0319(0x525)]();await _0x381c4e(_0x2db48a,_0x167258['getFullText'](),_0x5b0319(0x449)),_0x571547[_0x5b0319(0x359)]({'path':_0x2db48a,'relPath':_0x4ad312(_0x16c125,_0x2db48a)[_0x5b0319(0x4c7)](_0x53bbf7)[_0x5b0319(0x3aa)]('/'),'ceraphCamerasRemoved':0x0,'importDropped':!![],'importRestored':![]});continue;}const _0x4ddaa4=_0x33f7b7(_0x167258),_0x585e29=_0x301fe7(_0x167258,_0x58ac42),_0x23d5f6=_0x585e29['length']===0x0?_0x2ae4bc(_0x167258):![],_0x1576e4=_0x301fe7(_0x167258,_0x3c4c22)['length']>0x0,_0x5b3642=_0x1576e4?_0x33f3a4(_0x167258):![],_0x421d20=_0x167258[_0x5b0319(0x525)]();await _0x381c4e(_0x421d20,_0x167258[_0x5b0319(0x175)](),_0x5b0319(0x449)),_0x571547[_0x5b0319(0x359)]({'path':_0x421d20,'relPath':_0x4ad312(_0x16c125,_0x421d20)[_0x5b0319(0x4c7)](_0x53bbf7)['join']('/'),'ceraphCamerasRemoved':_0x4ddaa4,'importDropped':_0x23d5f6,'importRestored':_0x5b3642});}return{'files':_0x571547,'filesScanned':_0x58d0e6};}var _0x49afea,_0x13bd16,_0x58e31b,_0x18a111,_0x341bcd,_0x40d4a6,_0x58ac42,_0x4d488c,_0x3c4c22,_0x13af8d,_0x5b99b4,_0x45d910,_0x1dbe7f=_0x4d3071({'src/uninstall/revert-camera.ts'(){'use strict';const _0x10f1d0=_0x5ccc4b;_0x341bcd=![],_0x40d4a6=_0x10f1d0(0x2e7),_0x58ac42='CeraphCamera',_0x4d488c='expo-camera',_0x3c4c22='CameraView',_0x13af8d=[_0x10f1d0(0x526),_0x10f1d0(0x2ce),_0x10f1d0(0x48f)],_0x5b99b4=new Set([_0x10f1d0(0x3b3),'.jsx']),_0x45d910=new Set([_0x10f1d0(0x1b8),'dist','build',_0x10f1d0(0x325),'.ceraph',_0x10f1d0(0x4c6),_0x10f1d0(0x528),_0x10f1d0(0x4b3),_0x10f1d0(0x559)]);}});import{spawn as _0x434776}from'child_process';import{readFile as _0x4f6481,access as _0x4abc6f}from'fs/promises';import{join as _0x19765c}from'path';async function _0x56bb0d(_0x4c934b){try{return await _0x4abc6f(_0x4c934b),!![];}catch{return![];}}async function _0x554bce(_0x5da617){const _0x16b73e=_0x5ccc4b;for(const {file:_0x2d5f97,pm:_0x29e1fc}of _0x33ad9d){if(await _0x56bb0d(_0x19765c(_0x5da617,_0x2d5f97)))return _0x29e1fc;}return _0x16b73e(0x3ec);}function _0xc8fa43(_0x42259b,_0xe6cec1){const _0x282ab9=_0x5ccc4b;switch(_0x42259b){case _0x282ab9(0x54c):return{'bin':_0x282ab9(0x54c),'args':[_0x282ab9(0x24c),..._0xe6cec1]};case _0x282ab9(0x571):return{'bin':'yarn','args':[_0x282ab9(0x24c),..._0xe6cec1]};case'bun':return{'bin':'bun','args':['remove',..._0xe6cec1]};case'npm':return{'bin':'npm','args':[_0x282ab9(0x531),..._0xe6cec1]};}}async function _0x3e6940(_0x226027,_0x4214d8){const _0x5e7a76=_0x5ccc4b;let _0xd93029;try{_0xd93029=await _0x4f6481(_0x19765c(_0x226027,'package.json'),_0x5e7a76(0x449));}catch{return _0x5e7a76(0x293)===_0x5e7a76(0x472)?{'kind':_0x5e7a76(0x4c5),'matches':[],'rootIsRnApp':![],'isMonorepo':![]}:[];}let _0x49f469;try{_0x49f469=JSON['parse'](_0xd93029);}catch{return[];}if(!_0x49f469||typeof _0x49f469!==_0x5e7a76(0x382))return[];const _0x1c466f=_0x49f469['dependencies']??{},_0x3e41c7=_0x49f469[_0x5e7a76(0x3d3)]??{};return _0x4214d8[_0x5e7a76(0x235)](_0x470a73=>Boolean(_0x1c466f[_0x470a73]||_0x3e41c7[_0x470a73]));}async function _0x38d246(_0x5e8ab1,_0x1a0c86={}){const _0x1f9c69=_0x5ccc4b,_0x16a004=await _0x554bce(_0x5e8ab1),_0x15c60b=[_0x3ef306],_0x401bc6=await _0x3e6940(_0x5e8ab1,_0x15c60b);if(_0x401bc6['length']===0x0)return{'status':'nothing-to-remove','pm':_0x16a004,'removedPackages':[]};const _0x486b0a=_0xc8fa43(_0x16a004,_0x401bc6),_0x29c3f7=_0x1a0c86['spawnRemove']??_0x57808b,_0x574d35=await _0x29c3f7({'bin':_0x486b0a['bin'],'args':_0x486b0a['args'],'cwd':_0x5e8ab1});if(_0x574d35['exitCode']!==0x0)return{'status':'command-failed','pm':_0x16a004,'removedPackages':[],'command':_0x486b0a,'exitCode':_0x574d35['exitCode']};return{'status':_0x1f9c69(0x29c),'pm':_0x16a004,'removedPackages':_0x401bc6,'command':_0x486b0a};}function _0x57808b(_0x39d175){return new Promise(_0x241147=>{const _0x57d194=_0x4997,_0x7bece1=_0x434776(_0x39d175[_0x57d194(0x319)],_0x39d175[_0x57d194(0x4e2)],{'cwd':_0x39d175[_0x57d194(0x380)],'stdio':'inherit'});_0x7bece1['on'](_0x57d194(0x51e),()=>_0x241147({'exitCode':0x7f})),_0x7bece1['on']('exit',_0x5193d0=>_0x241147({'exitCode':_0x5193d0??0x1}));});}var _0x33ad9d,_0x3ef306,_0x3683d8=_0x4d3071({'src/uninstall/revert-package.ts'(){'use strict';const _0x47fa54=_0x5ccc4b;_0x33ad9d=[{'file':'pnpm-lock.yaml','pm':_0x47fa54(0x54c)},{'file':_0x47fa54(0x3a9),'pm':_0x47fa54(0x571)},{'file':_0x47fa54(0x481),'pm':_0x47fa54(0x2a0)},{'file':_0x47fa54(0x20a),'pm':'bun'},{'file':'package-lock.json','pm':'npm'}],_0x3ef306='@ceraph/react-native-mcp';}});import{copyFile,mkdir as _0x1bb544,readFile as _0xe5a94a,rm as _0x419e6d,stat as _0x1bf787}from'fs/promises';import{tmpdir,homedir as _0x20bd55}from'os';import{dirname as _0xb15ead,isAbsolute as _0x436214,join as _0x51ae54,relative as _0x125da6}from'path';async function _0x45d624(){if(_0x5ac651)return;const _0xae7aa7=await import('ts-morph');({Node:_0x2f5cc6,Project:_0x559f04}=_0xae7aa7,_0x5ac651=!![]);}async function _0x403979(_0x50d6be){const _0x5e4fe7=_0x5ccc4b,_0x453c3f=[],_0x15d242=_0x10ab9a=>{const _0x1d8687=_0x4997;_0x453c3f[_0x1d8687(0x359)](_0x10ab9a),_0x50d6be['onStep']?.(_0x10ab9a);},_0x55c05f=await _0x27e77b(_0x50d6be);if(_0x55c05f[_0x5e4fe7(0x2b7)]==='error'){if(_0x5e4fe7(0x3d0)===_0x5e4fe7(0x3d0)){const _0x27cd8b={'name':'monorepo','status':'error','details':{'matches':_0x55c05f[_0x5e4fe7(0x4be)]},'remediation':_0x55c05f[_0x5e4fe7(0x2c8)]};return _0x15d242(_0x27cd8b),_0x2a75bb(_0x50d6be['projectDir'],_0x453c3f);}else return{'status':_0x5e4fe7(0x3ca),'flavor':_0x4789fe[_0x5e4fe7(0x441)],'screenCount':_0xcf7f1f['screenCount'],'layoutCount':_0x3c10ea[_0x5e4fe7(0x51b)],'bundleId':_0x43b088[_0x5e4fe7(0x327)]??null,'persisted':_0x22fe36[_0x5e4fe7(0x3b0)]===!![]};}const _0x22af15=_0x55c05f[_0x5e4fe7(0x3ac)],_0x4a4f27=_0x50d6be['rootDir']??_0x50d6be['projectDir'],_0x4565de=_0x50d6be['dryRun']===!![],_0x2d7e92=await _0x59a763(_0x22af15,_0x50d6be,_0x4565de);_0x15d242(_0x2d7e92);const _0x553a41=await _0x3e90f6(_0x22af15,_0x50d6be,_0x4565de);_0x15d242(_0x553a41);const _0x31dc87=await _0x5b34d4(_0x22af15,_0x50d6be,_0x4565de);_0x15d242(_0x31dc87);const _0x2a59c6=await _0x1dc157(_0x22af15,_0x50d6be,_0x4565de);_0x15d242(_0x2a59c6);const _0x3510b9=await _0x54b12b(_0x4a4f27,_0x50d6be,_0x4565de);_0x15d242(_0x3510b9);const _0xdd9348=await _0xfeecbe(_0x4a4f27,_0x50d6be,_0x4565de);_0x15d242(_0xdd9348);const _0x41f6b6=await _0x484852(_0x22af15,_0x50d6be,_0x4565de);_0x15d242(_0x41f6b6);const _0x50357f=await _0x1b6756(_0x50d6be,_0x4565de);_0x15d242(_0x50357f);const _0x2d3a4b=await _0x198201(_0x22af15,_0x50d6be,_0x4565de);_0x15d242(_0x2d3a4b);const _0x5435f1=await _0x178efa(_0x50d6be,_0x4565de);_0x15d242(_0x5435f1);const _0x27c9a4=await _0x545ce6(_0x22af15,_0x50d6be,_0x4565de);return _0x15d242(_0x27c9a4),_0x2a75bb(_0x22af15,_0x453c3f);}async function _0x27e77b(_0x4803a0){const _0x1a81a3=_0x5ccc4b,_0xdffbec=_0x4803a0['detectMonorepo']??_0x5ec4d2,_0x50f641=await _0xdffbec(_0x4803a0['projectDir']);if(_0x50f641['kind']===_0x1a81a3(0x4c5))return{'kind':'ok','workingDir':_0x4803a0[_0x1a81a3(0x298)]};if(_0x50f641['kind']==='single'){const _0x4ffb35=_0x50f641['matches'][0x0];if(!_0x4ffb35)return{'kind':'ok','workingDir':_0x4803a0[_0x1a81a3(0x298)]};return{'kind':'ok','workingDir':_0x4ffb35[_0x1a81a3(0x26d)]};}return{'kind':_0x1a81a3(0x51e),'matches':_0x50f641['matches']['map'](_0x479444=>({'relPath':_0x479444['relPath'],'absPath':_0x479444[_0x1a81a3(0x26d)]})),'remediation':_0x1a81a3(0x1bc)+(_0x50f641['matches'][0x0]?.['relPath']??'apps/mobile')+'`.'};}async function _0x59a763(_0x364fe8,_0x202271,_0x3e1f79){const _0x4d70f7=_0x5ccc4b,_0xb8c43e=_0x202271['revertCamera']??_0x190423;if(_0x3e1f79)try{const _0x5d1a4e=await _0x1c5aa3(_0x364fe8,_0xb8c43e);return _0x3ee066(_0x5d1a4e,{'dryRun':!![]});}catch(_0xc086c){return{'name':_0x4d70f7(0x4eb),'status':_0x4d70f7(0x51e),'details':{'error':_0x1b253d(_0xc086c)},'remediation':'Dry-run\x20camera\x20preview\x20failed.\x20Re-run\x20without\x20--dry-run\x20after\x20fixing\x20the\x20error\x20above,\x20or\x20pass\x20--project-dir\x20if\x20the\x20path\x20is\x20wrong.'};}const _0x45bc41=new Map();try{const _0x3e7c67=await _0x1475ea(_0x364fe8);for(const _0x342727 of _0x3e7c67){_0x45bc41[_0x4d70f7(0x4fb)](_0x342727,await _0x3f3777(_0x342727));}const _0x16c734=await _0xb8c43e(_0x364fe8);return _0x3ee066(_0x16c734,{'dryRun':![]});}catch(_0x4e801d){const _0x46ec86=[];for(const [_0x5669c5,_0xdf3480]of _0x45bc41){if(_0xdf3480==null)continue;try{await _0x4db18c(_0x5669c5,_0xdf3480);}catch(_0x14109e){_0x46ec86[_0x4d70f7(0x359)](_0x5669c5+':\x20'+_0x1b253d(_0x14109e));}}const _0x57d0ad='Camera\x20revert\x20failed:\x20'+_0x1b253d(_0x4e801d)+'.',_0x3f8b1f=_0x46ec86['length']===0x0?_0x57d0ad+'\x20All\x20edited\x20files\x20were\x20restored\x20from\x20snapshots.':_0x57d0ad+_0x4d70f7(0x20f)+_0x46ec86[_0x4d70f7(0x3aa)](';\x20');return{'name':'camera','status':_0x4d70f7(0x51e),'details':{'error':_0x1b253d(_0x4e801d),'snapshotCount':_0x45bc41[_0x4d70f7(0x52e)],'restoreFailures':_0x46ec86},'remediation':_0x3f8b1f};}}function _0x3ee066(_0x257860,_0x549425){const _0x354340=_0x5ccc4b,_0x8384a6=_0x257860[_0x354340(0x33e)][_0x354340(0x170)]((_0x367c37,_0x39c87e)=>_0x367c37+_0x39c87e['ceraphCamerasRemoved'],0x0),_0x1a3007=_0x8384a6;if(_0x257860[_0x354340(0x33e)]['length']===0x0)return{'name':_0x354340(0x4eb),'status':_0x354340(0x1b6),'details':{'filesScanned':_0x257860['filesScanned'],..._0x549425[_0x354340(0x26e)]?{'dryRun':!![]}:{}}};const _0x30e12c=_0x1a3007>0x0?'warning':'reverted',_0x3e2962={'name':_0x354340(0x4eb),'status':_0x30e12c,'details':{'filesScanned':_0x257860['filesScanned'],'filesEdited':_0x257860['files']['map'](_0x57433c=>_0x57433c['relPath']),'ceraphCamerasRemoved':_0x8384a6,'importDropped':_0x257860['files'][_0x354340(0x235)](_0x44ea9e=>_0x44ea9e[_0x354340(0x1be)])[_0x354340(0x471)],'importRestored':_0x257860[_0x354340(0x33e)][_0x354340(0x235)](_0x5e9502=>_0x5e9502[_0x354340(0x3b4)])['length'],'imageKeysStripped':_0x1a3007,..._0x549425[_0x354340(0x26e)]?{'dryRun':!![]}:{}}};return _0x30e12c===_0x354340(0x473)&&(_0x3e2962['remediation']=_0x354340(0x2f0)+_0x1a3007+'\x20<CeraphCamera>\x20tag(s).\x20If\x20any\x20of\x20those\x20keys\x20were\x20customer-set\x20(not\x20Ceraph-generated),\x20re-apply\x20them\x20after\x20install\x20rebuilds\x20the\x20camera\x20surface.'),_0x3e2962;}async function _0x1475ea(_0x2fcd61){const _0x334128=_0x5ccc4b,_0x227ce2=['app','src','screens'],_0x18f627=new Set([_0x334128(0x3b3),'.jsx']),_0x47daf5=new Set([_0x334128(0x1b8),'dist',_0x334128(0x34b),_0x334128(0x325),'.ceraph',_0x334128(0x4c6),'.next','ios',_0x334128(0x559)]),_0x3c0049=[],_0x30f293=async _0x5ad228=>{const _0x1997f5=_0x334128;let _0x288783;try{const {readdir:_0x220d39}=await import('fs/promises');_0x288783=await _0x220d39(_0x5ad228,{'withFileTypes':!![]});}catch{return;}for(const _0x32d298 of _0x288783){if(_0x32d298['isDirectory']()){if(_0x47daf5[_0x1997f5(0x466)](_0x32d298[_0x1997f5(0x34d)]))continue;await _0x30f293(_0x51ae54(_0x5ad228,_0x32d298['name']));continue;}if(!_0x32d298['isFile']())continue;const _0x409d21=_0x32d298[_0x1997f5(0x34d)]['lastIndexOf']('.');if(_0x409d21<0x0)continue;const _0x543eac=_0x32d298['name']['slice'](_0x409d21)[_0x1997f5(0x223)]();if(!_0x18f627['has'](_0x543eac))continue;_0x3c0049['push'](_0x51ae54(_0x5ad228,_0x32d298[_0x1997f5(0x34d)]));}};for(const _0x55bd7c of _0x227ce2){await _0x30f293(_0x51ae54(_0x2fcd61,_0x55bd7c));}for(const _0x28c00c of['App.tsx','App.jsx']){_0x3c0049[_0x334128(0x359)](_0x51ae54(_0x2fcd61,_0x28c00c));}const _0x4f3f5d=[];for(const _0x30cfff of _0x3c0049){let _0x14c5d7;try{_0x14c5d7=await _0xe5a94a(_0x30cfff,_0x334128(0x449));}catch{if(_0x334128(0x545)!=='senvZ')continue;else return{'mutated':![],'next':_0x2e18fa};}if(_0x14c5d7[_0x334128(0x26f)](_0x334128(0x3a0)))_0x4f3f5d['push'](_0x30cfff);}return _0x4f3f5d;}async function _0x1c5aa3(_0x284bdb,_0x182be7){const _0x35ed3d=_0x5ccc4b,_0x501459=await _0x1475ea(_0x284bdb),_0x3d8a77=_0x51ae54(tmpdir(),_0x35ed3d(0x54f)+Date['now']()+'-'+Math[_0x35ed3d(0x4c9)]()[_0x35ed3d(0x2a9)](0x24)[_0x35ed3d(0x54d)](0x2));try{await _0x1bb544(_0x3d8a77,{'recursive':!![]});for(const _0x5797cd of _0x501459){const _0x198f16=_0x125da6(_0x284bdb,_0x5797cd),_0x5d712e=_0x51ae54(_0x3d8a77,_0x198f16);await _0x1bb544(_0xb15ead(_0x5d712e),{'recursive':!![]}),await copyFile(_0x5797cd,_0x5d712e);}return await _0x182be7(_0x3d8a77);}finally{try{await _0x419e6d(_0x3d8a77,{'recursive':!![],'force':!![]});}catch{}}}async function _0x3e90f6(_0x2ab71a,_0x1b458b,_0x5acdcc){const _0x4a6b7e=_0x5ccc4b,_0x55aa4a=_0x1b458b['revertBoot']??_0x25a542,_0x241aed=_0x1b458b[_0x4a6b7e(0x301)]??_0x26350c;if(_0x5acdcc){if('xPeTC'!==_0x4a6b7e(0x2cf)){'use strict';_0x38a153(),_0x3a98cb=[_0x2a84f7(_0x4a6b7e(0x4a4)),_0x49084f('@react-native/babel-preset')];}else try{const _0x4cba28=await _0x241aed(_0x2ab71a);if(!_0x4cba28)return{'name':_0x4a6b7e(0x207),'status':'already-reverted','details':{'reason':'no\x20layout\x20file\x20detected','dryRun':!![]}};const _0x5b4c5c=await _0x274760(_0x4cba28['filePath'],_0x2ab71a);try{const _0x4af07d=await _0x55aa4a(_0x5b4c5c['projectDir']);return await _0x483490(_0x4af07d,_0x2ab71a,_0x4cba28,_0x1b458b,!![]);}finally{await _0x419e6d(_0x5b4c5c[_0x4a6b7e(0x572)],{'recursive':!![],'force':!![]})['catch'](()=>void 0x0);}}catch(_0x16960c){return{'name':'boot','status':'error','details':{'error':_0x1b253d(_0x16960c),'dryRun':!![]},'remediation':_0x4a6b7e(0x34c)};}}try{const _0x186665=await _0x55aa4a(_0x2ab71a),_0x14ef99=_0x186665['status']===_0x4a6b7e(0x524)?null:_0x186665[_0x4a6b7e(0x4da)];return await _0x483490(_0x186665,_0x2ab71a,_0x14ef99,_0x1b458b,![]);}catch(_0x104557){return{'name':_0x4a6b7e(0x207),'status':'error','details':{'error':_0x1b253d(_0x104557)},'remediation':'Boot\x20revert\x20raised.\x20Check\x20the\x20layout\x20file\x20for\x20syntax\x20errors\x20before\x20re-running.'};}}async function _0x483490(_0x5a3057,_0xd91b2d,_0x1b8b5c,_0x1b0e5b,_0x5835d2){const _0x4ba881=_0x5ccc4b;switch(_0x5a3057[_0x4ba881(0x416)]){case'reverted':return{'name':'boot','status':'reverted','details':{'target':_0x5a3057['target'],'removedUseEffect':_0x5a3057['removedUseEffect'],'removedImport':_0x5a3057[_0x4ba881(0x40b)],..._0x5835d2?{'dryRun':!![]}:{}}};case _0x4ba881(0x1b6):return{'name':'boot','status':'already-reverted','details':{'target':_0x5a3057['target'],..._0x5835d2?{'dryRun':!![]}:{}}};case _0x4ba881(0x524):return{'name':_0x4ba881(0x207),'status':_0x4ba881(0x1b6),'details':{'reason':'no\x20layout\x20file\x20detected',..._0x5835d2?{'dryRun':!![]}:{}}};case'skipped':{const _0x35adf7=await _0x337f54(_0x5a3057['target'][_0x4ba881(0x47a)]);return{'name':'boot','status':_0x4ba881(0x1f3),'details':{'target':_0x5a3057[_0x4ba881(0x4da)],'reason':_0x5a3057[_0x4ba881(0x3d1)],'location':_0x35adf7[_0x4ba881(0x2bd)],'otherStatements':_0x35adf7['otherStatements'],..._0x35adf7['parseError']!==void 0x0?{'parseError':_0x35adf7[_0x4ba881(0x17b)]}:{},..._0x5835d2?{'dryRun':!![]}:{}},'remediation':_0x4ba881(0x169)+_0x5a3057[_0x4ba881(0x4da)]['filePath']+(_0x35adf7[_0x4ba881(0x2bd)]?':'+_0x35adf7[_0x4ba881(0x2bd)]['line']:'')+').\x20Remove\x20the\x20`installCeraph()`\x20call\x20by\x20hand\x20without\x20dropping\x20your\x20own\x20code,\x20then\x20re-run\x20`npx\x20@ceraph/react-native-mcp\x20uninstall`.'+(_0x35adf7['parseError']!==void 0x0?'\x20(Note:\x20re-parse\x20failed\x20—\x20line\x20info\x20missing:\x20'+_0x35adf7[_0x4ba881(0x17b)]+')':'')};}}return{'name':'boot','status':_0x4ba881(0x51e),'details':{'result':_0x5a3057},'remediation':_0x4ba881(0x1eb)};}async function _0x337f54(_0x536ba8){const _0x394db8=_0x5ccc4b;try{await _0x45d624();const _0x67a01d=new _0x559f04({'useInMemoryFileSystem':![],'skipAddingFilesFromTsConfig':!![],'skipFileDependencyResolution':!![],'skipLoadingLibFiles':!![],'compilerOptions':{'allowJs':!![],'jsx':0x1}}),_0x47ba56=_0x67a01d[_0x394db8(0x1e7)](_0x536ba8),_0x1af9cc=_0x5cec58(_0x47ba56);if(!_0x1af9cc)return{'location':null,'otherStatements':[]};const _0x19b93a=_0x1af9cc['getBody']();if(!_0x19b93a||!_0x2f5cc6[_0x394db8(0x374)](_0x19b93a))return{'location':null,'otherStatements':[]};let _0x2e9937=null,_0x33950d=[];return _0x19b93a[_0x394db8(0x311)](_0x27f5a5=>{const _0xe99322=_0x394db8;if(_0x2e9937)return;if(!_0x2f5cc6[_0xe99322(0x57d)](_0x27f5a5))return;const _0x190873=_0x27f5a5['getExpression']();if(!_0x2f5cc6[_0xe99322(0x431)](_0x190873)||_0x190873['getText']()!=='useEffect'){if(_0xe99322(0x36d)!==_0xe99322(0x36d))_0x16f45b in _0x395d93&&(delete _0x457def[_0xe6e3d8],_0xdbb16f[_0xe99322(0x359)](_0x15d9e7));else return;}const _0x45c1cc=_0x27f5a5['getArguments'](),_0x2e8eb1=_0x45c1cc[0x0];if(!_0x2e8eb1)return;if(!_0x2f5cc6['isArrowFunction'](_0x2e8eb1)&&!_0x2f5cc6['isFunctionExpression'](_0x2e8eb1))return;const _0x4acc2c=_0x2e8eb1[_0xe99322(0x540)]();if(!_0x2f5cc6[_0xe99322(0x374)](_0x4acc2c))return;const _0x4f5753=_0x4acc2c[_0xe99322(0x516)](),_0x59a55f=[],_0xaf4565=[];for(const _0x3afd3f of _0x4f5753){if(_0x4f63cc(_0x3afd3f))_0x59a55f[_0xe99322(0x359)](_0x3afd3f);else _0xaf4565[_0xe99322(0x359)](_0x3afd3f);}_0x59a55f['length']>0x0&&_0xaf4565[_0xe99322(0x471)]>0x0&&(_0x2e9937={'line':_0x27f5a5['getStartLineNumber']()},_0x33950d=_0xaf4565['map'](_0x262638=>_0x262638['getText']()));}),{'location':_0x2e9937,'otherStatements':_0x33950d};}catch(_0xe328e6){return{'location':null,'otherStatements':[],'parseError':_0x1b253d(_0xe328e6)};}}function _0x5cec58(_0x1723e4){const _0x370549=_0x5ccc4b;for(const _0x3c355f of _0x1723e4['getFunctions']()){if('sgdTz'===_0x370549(0x2d2)){if(_0x3c355f['isDefaultExport']())return _0x3c355f;}else return![];}const _0x56b813=_0x1723e4['getStatements']()[_0x370549(0x173)](_0x47a60a=>_0x2f5cc6['isExportAssignment'](_0x47a60a));if(_0x56b813&&_0x2f5cc6['isExportAssignment'](_0x56b813)){const _0x5c82a7=_0x56b813['getExpression']();if(_0x2f5cc6[_0x370549(0x431)](_0x5c82a7)){const _0x38e66f=_0x5c82a7['getSymbol']();if(_0x38e66f){const _0x44a5b2=_0x38e66f[_0x370549(0x3c6)]()[0x0];if(_0x44a5b2&&_0x2f5cc6[_0x370549(0x41e)](_0x44a5b2)){const _0x3498a1=_0x44a5b2[_0x370549(0x56f)]();if(_0x3498a1&&_0x2f5cc6['isArrowFunction'](_0x3498a1))return _0x3498a1;if(_0x3498a1&&_0x2f5cc6['isFunctionExpression'](_0x3498a1))return _0x3498a1;}}}if(_0x2f5cc6['isArrowFunction'](_0x5c82a7))return _0x5c82a7;if(_0x2f5cc6[_0x370549(0x32d)](_0x5c82a7))return _0x5c82a7;}return null;}function _0x4f63cc(_0x1cc5d7){const _0x4f75a1=_0x5ccc4b;if(!_0x2f5cc6[_0x4f75a1(0x381)](_0x1cc5d7))return![];const _0x129b15=_0x1cc5d7[_0x4f75a1(0x4a7)]();if(!_0x2f5cc6[_0x4f75a1(0x57d)](_0x129b15))return![];const _0x433736=_0x129b15['getExpression']();return _0x2f5cc6[_0x4f75a1(0x431)](_0x433736)&&_0x433736[_0x4f75a1(0x1a9)]()===_0x4f75a1(0x35e);}async function _0x1dc157(_0x5ba712,_0x33978e,_0x34eadb){const _0x136dd3=_0x5ccc4b,_0x56be5d=_0x33978e[_0x136dd3(0x401)]??_0x2a567c;if(_0x34eadb)try{const _0x1cec1c=await _0x463783(_0x5ba712);try{const _0x5b65fe=await _0x56be5d(_0x1cec1c['projectDir']);return _0x43ec38(_0x5b65fe,!![]);}finally{await _0x419e6d(_0x1cec1c['tmpRoot'],{'recursive':!![],'force':!![]})['catch'](()=>void 0x0);}}catch(_0x21ef9a){return{'name':_0x136dd3(0x18f),'status':'error','details':{'error':_0x1b253d(_0x21ef9a),'dryRun':!![]}};}try{const _0x40ac58=await _0x56be5d(_0x5ba712);return _0x43ec38(_0x40ac58,![]);}catch(_0x377537){return{'name':_0x136dd3(0x18f),'status':_0x136dd3(0x51e),'details':{'error':_0x1b253d(_0x377537)}};}}function _0x43ec38(_0x595e1d,_0x4db4a7){const _0x21cca7=_0x5ccc4b,_0x1a63ab=_0x4db4a7?{'dryRun':!![]}:{};switch(_0x595e1d['status']){case'reverted':return{'name':'scheme','status':_0x21cca7(0x28d),'details':{'path':_0x595e1d['path'],'previousScheme':_0x595e1d['previousScheme'],'nextScheme':_0x595e1d['nextScheme'],..._0x1a63ab}};case'already-reverted':return{'name':_0x21cca7(0x18f),'status':_0x21cca7(0x1b6),'details':{'path':_0x595e1d['path'],..._0x1a63ab}};case'manual':return{'name':'scheme','status':'manual','details':{'kind':_0x595e1d[_0x21cca7(0x2b7)],'path':_0x595e1d['path'],..._0x1a63ab},'remediation':_0x595e1d[_0x21cca7(0x2c8)]};case _0x21cca7(0x4af):return{'name':'scheme','status':_0x21cca7(0x1b6),'details':{'reason':_0x21cca7(0x3a6),..._0x1a63ab}};}}async function _0x463783(_0x5b72c4){const _0x515551=_0x5ccc4b,_0xacc90f=_0x51ae54(tmpdir(),_0x515551(0x581)+Date['now']()+'-'+Math['random']()[_0x515551(0x2a9)](0x24)[_0x515551(0x54d)](0x2));return _0x3d9e6f(_0xacc90f,async()=>{const _0x206db8=_0x515551;await _0x1bb544(_0xacc90f,{'recursive':!![]});for(const _0x1a35c1 of[_0x206db8(0x271),'app.config.js','app.config.ts']){const _0x3832a4=_0x51ae54(_0x5b72c4,_0x1a35c1);try{await copyFile(_0x3832a4,_0x51ae54(_0xacc90f,_0x1a35c1));}catch{}}for(const _0x48e770 of['ios',_0x206db8(0x559)]){try{await _0x1bf787(_0x51ae54(_0x5b72c4,_0x48e770)),await _0x1bb544(_0x51ae54(_0xacc90f,_0x48e770),{'recursive':!![]});}catch{}}return{'projectDir':_0xacc90f,'tmpRoot':_0xacc90f};});}async function _0x54b12b(_0x3dcf35,_0x22ad71,_0x678ede){const _0x438028=_0x5ccc4b,_0x5c2a52=_0x22ad71['revertMcpClients']??_0x119630,_0x55a51c=_0x22ad71[_0x438028(0x444)]??_0x4baf00,_0x5b9dec=_0x22ad71[_0x438028(0x4c8)]?.();if(_0x678ede){let _0x4549c4=null,_0xb315dc=null;try{if(_0x438028(0x557)==='ybSLl'){if(_0x1fee6b[_0x438028(0x41d)]!==void 0x0)return _0x2bac3d['nonInteractive'];if(_0x5bdec6.env.CERAPH_NON_INTERACTIVE==='1')return!![];return!_0x5895cb['stdin']['isTTY'];}else{_0x4549c4=await _0x4f742d(_0x3dcf35),_0xb315dc=await _0x4dd9c2(_0x5b9dec);const _0x23a4de=await _0x5c2a52(_0x4549c4['projectDir']),_0x12c04d=await _0x55a51c({'home':_0xb315dc['tmpHome']});return _0x18afa4(_0x23a4de,_0x12c04d,!![]);}}catch(_0xa8d6cf){return{'name':'mcp-clients','status':_0x438028(0x51e),'details':{'error':_0x1b253d(_0xa8d6cf),'dryRun':!![]}};}finally{if('cWBgA'!==_0x438028(0x285))_0x4549c4&&await _0x419e6d(_0x4549c4['tmpRoot'],{'recursive':!![],'force':!![]})['catch'](()=>void 0x0),_0xb315dc&&await _0x419e6d(_0xb315dc[_0x438028(0x572)],{'recursive':!![],'force':!![]})[_0x438028(0x243)](()=>void 0x0);else return{'success':![],'matchCount':_0xccf1a1['length'],'element':_0x46cf2b,'error':_0x406d82['error']??_0x438028(0x4f8),'batched':![]};}}try{const _0xecee25=await _0x5c2a52(_0x3dcf35),_0x5e5bc3=await _0x55a51c({'home':_0x5b9dec});return _0x18afa4(_0xecee25,_0x5e5bc3,![]);}catch(_0x4c16ab){if('HQuRz'===_0x438028(0x2d4))return{'name':_0x438028(0x1d5),'status':'error','details':{'error':_0x1b253d(_0x4c16ab)}};else{'use strict';_0x1d989b(),_0x1bd3e3(),_0x1d18c2=['.mcp.json',_0x3b585b('.cursor','mcp.json'),_0x2a1ed2('.vscode','mcp.json')],_0x3de8b2=[_0x44d1f7('.codex',_0x438028(0x29e))],_0x183200=_0x8c90e6('.claude',_0x438028(0x505)),_0x3b1da8=[{'label':_0x438028(0x377),'dir':['.codeium',_0x438028(0x384)],'file':['.codeium',_0x438028(0x384),_0x438028(0x15a)]},{'label':_0x438028(0x146),'dir':['.gemini','antigravity'],'file':[_0x438028(0x258),_0x438028(0x435),'mcp_config.json']}],_0x2db37e=[_0x438028(0x573),'react-native-mcp'],_0x423d44=['mobile-mcp'];}}}function _0x18afa4(_0x49c636,_0x2348df,_0x239012){const _0x21bdb0=_0x5ccc4b,_0x538b5a=[..._0x49c636['files'],..._0x2348df[_0x21bdb0(0x33e)]],_0x53b7be=_0x538b5a['filter'](_0x4bf78c=>_0x4bf78c[_0x21bdb0(0x416)]==='removed-entries'||_0x4bf78c[_0x21bdb0(0x416)]===_0x21bdb0(0x206)),_0x1068f9=_0x239012?{'dryRun':!![]}:{};if(_0x53b7be[_0x21bdb0(0x471)]===0x0)return{'name':'mcp-clients','status':_0x21bdb0(0x1b6),'details':{'files':_0x49c636['files'],'userGlobalFiles':_0x2348df['files'],..._0x1068f9}};return{'name':_0x21bdb0(0x1d5),'status':'reverted','details':{'files':_0x49c636[_0x21bdb0(0x33e)],'userGlobalFiles':_0x2348df[_0x21bdb0(0x33e)],'touched':_0x53b7be[_0x21bdb0(0x471)],..._0x1068f9}};}async function _0x4f742d(_0x4cf7d0){const _0x38f9da=_0x5ccc4b,_0x285af8=_0x51ae54(tmpdir(),_0x38f9da(0x3a1)+Date[_0x38f9da(0x239)]()+'-'+Math['random']()[_0x38f9da(0x2a9)](0x24)[_0x38f9da(0x54d)](0x2));return _0x3d9e6f(_0x285af8,async()=>{const _0x191983=_0x38f9da;await _0x1bb544(_0x285af8,{'recursive':!![]});const _0x26550a=[_0x191983(0x244),_0x51ae54(_0x191983(0x323),_0x191983(0x1ed)),_0x51ae54(_0x191983(0x24e),'mcp.json'),_0x51ae54(_0x191983(0x53f),_0x191983(0x29e)),_0x51ae54(_0x191983(0x4fd),'settings.local.json')];for(const _0x2e4613 of _0x26550a){const _0x2fdef4=_0x51ae54(_0x4cf7d0,_0x2e4613),_0x1664d9=_0x51ae54(_0x285af8,_0x2e4613);try{await _0x1bb544(_0xb15ead(_0x1664d9),{'recursive':!![]}),await copyFile(_0x2fdef4,_0x1664d9);}catch{}}return{'projectDir':_0x285af8,'tmpRoot':_0x285af8};});}async function _0x4dd9c2(_0xcc6f4c){const _0x1e7834=_0x51ae54(tmpdir(),'ceraph-uninstall-mcp-global-preview-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['slice'](0x2));return _0x3d9e6f(_0x1e7834,async()=>{const _0x208f40=_0x4997,_0x4e7e63=_0x51ae54(_0x1e7834,'home');await _0x1bb544(_0x4e7e63,{'recursive':!![]});const _0x25492d=_0x3409ed(_0xcc6f4c);for(let _0x1d16d1=0x0;_0x1d16d1<_0x32a964[_0x208f40(0x471)];_0x1d16d1++){if('cKKjX'!=='cKKjX'){'use strict';_0x410778=![],_0xa945f9='@ceraph/react-native-mcp/shim',_0x5028e5=_0x208f40(0x410),_0x71a7c5=_0x208f40(0x242),_0x4bc1d4='CameraView',_0x319a70=[_0x208f40(0x526),'src','screens'],_0x519b32=new _0x127005(['.tsx',_0x208f40(0x570)]),_0x16475d=new _0x1212f6(['node_modules','dist','build',_0x208f40(0x325),_0x208f40(0x2f8),'.expo','.next',_0x208f40(0x4b3),_0x208f40(0x559)]);}else{const _0x327819=_0x32a964[_0x1d16d1],_0x13c7f4=_0x25492d[_0x1d16d1];if(!_0x327819||!_0x13c7f4)continue;const _0x253658=_0x51ae54(_0x4e7e63,..._0x327819[_0x208f40(0x2e0)]);try{await _0x1bb544(_0xb15ead(_0x253658),{'recursive':!![]}),await copyFile(_0x13c7f4[_0x208f40(0x195)],_0x253658);}catch{}}}return{'tmpHome':_0x4e7e63,'tmpRoot':_0x1e7834};});}async function _0xfeecbe(_0x419fce,_0x590320,_0x587ff9){const _0x478e52=_0x5ccc4b,_0x81faa2=_0x590320['revertClaudeHooks']??_0x175dd8;if(_0x587ff9)try{const _0x21efc5=await _0x2b0e4c(_0x419fce);try{const _0xe0f9d0=await _0x81faa2({'projectDir':_0x21efc5[_0x478e52(0x298)]});return _0x55ef1e(_0xe0f9d0,!![]);}finally{await _0x419e6d(_0x21efc5[_0x478e52(0x572)],{'recursive':!![],'force':!![]})['catch'](()=>void 0x0);}}catch(_0x1e3d6e){return{'name':'claude-hooks','status':'error','details':{'error':_0x1b253d(_0x1e3d6e),'dryRun':!![]}};}try{const _0x31a1d9=await _0x81faa2({'projectDir':_0x419fce});return _0x55ef1e(_0x31a1d9,![]);}catch(_0x264148){return{'name':'claude-hooks','status':'error','details':{'error':_0x1b253d(_0x264148)}};}}function _0x55ef1e(_0x5c6a16,_0x978b46){const _0x48f539=_0x5ccc4b,_0x411c0e=_0x978b46?{'dryRun':!![]}:{};switch(_0x5c6a16['status']){case _0x48f539(0x28d):return{'name':_0x48f539(0x4c0),'status':'reverted','details':{..._0x5c6a16['details'],..._0x411c0e}};case'already-reverted':return{'name':_0x48f539(0x4c0),'status':_0x48f539(0x1b6),'details':{..._0x5c6a16[_0x48f539(0x56b)],..._0x411c0e}};case _0x48f539(0x1f3):return{'name':'claude-hooks','status':'manual','details':{..._0x5c6a16['details'],..._0x411c0e},'remediation':'Hook\x20script(s)\x20were\x20customized\x20after\x20init\x20wrote\x20them,\x20so\x20the\x20reverter\x20left\x20them\x20in\x20place:\x20'+_0x5c6a16['details'][_0x48f539(0x220)]['join'](',\x20')+'.\x20If\x20you\x20no\x20longer\x20need\x20the\x20customized\x20version,\x20delete\x20the\x20file\x20manually.\x20Settings\x20entries\x20pointing\x20at\x20the\x20script(s)\x20'+(_0x5c6a16[_0x48f539(0x56b)]['settingsFilesModified'][_0x48f539(0x471)]>0x0?'were\x20removed\x20from\x20'+_0x5c6a16[_0x48f539(0x56b)][_0x48f539(0x294)]['join'](',\x20')+'.':_0x48f539(0x37e))};case _0x48f539(0x507):return{'name':_0x48f539(0x4c0),'status':'skipped','details':{..._0x5c6a16['details'],..._0x411c0e}};}}async function _0x2b0e4c(_0x43e75f){const _0x459cd6=_0x5ccc4b,_0x22de5d=_0x51ae54(tmpdir(),'ceraph-uninstall-claude-hooks-preview-'+Date[_0x459cd6(0x239)]()+'-'+Math[_0x459cd6(0x4c9)]()['toString'](0x24)[_0x459cd6(0x54d)](0x2));return _0x3d9e6f(_0x22de5d,async()=>{const _0x36477a=_0x459cd6;await _0x1bb544(_0x22de5d,{'recursive':!![]});const _0x2e357b=[_0x51ae54(_0x36477a(0x4fd),_0x36477a(0x574),_0x36477a(0x405)),_0x51ae54('.claude',_0x36477a(0x574),'rn-flow-progress-notify.sh'),_0x51ae54(_0x36477a(0x4fd),_0x36477a(0x31a)),_0x51ae54('.claude',_0x36477a(0x505))];for(const _0x558800 of _0x2e357b){const _0x9c7001=_0x51ae54(_0x43e75f,_0x558800),_0x1ed9d7=_0x51ae54(_0x22de5d,_0x558800);try{await _0x1bb544(_0xb15ead(_0x1ed9d7),{'recursive':!![]}),await copyFile(_0x9c7001,_0x1ed9d7);}catch{}}return{'projectDir':_0x22de5d,'tmpRoot':_0x22de5d};});}async function _0x484852(_0x2d0ba0,_0x40b9a7,_0x81fbbe){const _0x1766b5=_0x5ccc4b,_0x2cd403=_0x40b9a7[_0x1766b5(0x236)]??_0x5bbb26;if(_0x81fbbe){const _0x53fe53=_0x51ae54(tmpdir(),_0x1766b5(0x3cb)+Date['now']()+'-'+Math['random']()[_0x1766b5(0x2a9)](0x24)['slice'](0x2));try{try{await _0x1bb544(_0x53fe53,{'recursive':!![]});try{await copyFile(_0x51ae54(_0x2d0ba0,_0x1766b5(0x3f6)),_0x51ae54(_0x53fe53,'.gitignore'));}catch{}for(const _0x260872 of[_0x1766b5(0x457),'.rn-flow-progress.json']){try{if('VGgNJ'!==_0x1766b5(0x149))await copyFile(_0x51ae54(_0x2d0ba0,_0x260872),_0x51ae54(_0x53fe53,_0x260872));else return _0x2ea48b&&(_0xcf2fb2=(0x0,_0x552646[_0x4abb5d(_0x4c513c)[0x0]])(_0x322692=0x0)),_0x44a308;}catch{}}const _0x34b489=await _0x2cd403(_0x53fe53);return _0x146f73(_0x34b489,!![]);}finally{await _0x419e6d(_0x53fe53,{'recursive':!![],'force':!![]})[_0x1766b5(0x243)](()=>void 0x0);}}catch(_0x17c18a){return{'name':'gitignore','status':'error','details':{'error':_0x1b253d(_0x17c18a),'dryRun':!![]}};}}try{const _0x5533f8=await _0x2cd403(_0x2d0ba0);return _0x146f73(_0x5533f8,![]);}catch(_0x22d334){return{'name':'gitignore','status':'error','details':{'error':_0x1b253d(_0x22d334)}};}}function _0x146f73(_0x2c5c47,_0x5a49bd){const _0x2c50c0=_0x5ccc4b,_0xb7d3f2=_0x5a49bd?{'dryRun':!![]}:{},_0x7e884a=_0x2c5c47['removedRuntimeFiles'];switch(_0x2c5c47['status']){case'reverted':return{'name':_0x2c50c0(0x3e7),'status':_0x2c50c0(0x28d),'details':{'path':_0x2c5c47[_0x2c50c0(0x195)],'removedLines':_0x2c5c47[_0x2c50c0(0x3c4)],'removedRuntimeFiles':_0x7e884a,..._0xb7d3f2}};case _0x2c50c0(0x1b6):return{'name':'gitignore','status':_0x7e884a['length']>0x0?_0x2c50c0(0x28d):_0x2c50c0(0x1b6),'details':{'path':_0x2c5c47[_0x2c50c0(0x195)],'removedRuntimeFiles':_0x7e884a,..._0xb7d3f2}};case _0x2c50c0(0x190):return{'name':_0x2c50c0(0x3e7),'status':_0x7e884a['length']>0x0?_0x2c50c0(0x28d):'already-reverted','details':{'reason':_0x2c50c0(0x463),'removedRuntimeFiles':_0x7e884a,..._0xb7d3f2}};}}async function _0x1b6756(_0x1dc3a0,_0x212981){const _0x39f08a=_0x5ccc4b,_0x1d18d1=_0x1dc3a0['revertSignalHostEnv']??_0xd296a9,_0x278ea5=_0x1dc3a0[_0x39f08a(0x4c8)]?.();if(_0x212981)try{const _0x2574fa=await _0x2cdb7f(_0x278ea5);try{const _0x77fa2e=await _0x1d18d1({'home':_0x2574fa[_0x39f08a(0x30a)]});return _0x11b103(_0x77fa2e,!![]);}finally{await _0x419e6d(_0x2574fa['tmpRoot'],{'recursive':!![],'force':!![]})['catch'](()=>void 0x0);}}catch(_0x435484){return{'name':_0x39f08a(0x4e8),'status':'error','details':{'error':_0x1b253d(_0x435484),'dryRun':!![]}};}try{if(_0x39f08a(0x354)==='jOKfa'){const _0x94e39d=_0x4e501d(_0x382f5b[_0x39f08a(0x54d)](0x0,_0x5f5879));_0xcfd7c2=_0x94e39d,_0x4b95b8=_0x94e39d,_0x3438bc=null,_0x330004=null,_0x3b571b=null,_0xfe18cc=null,_0x4e89bc=!![];}else{const _0x169cda=await _0x1d18d1({'home':_0x278ea5});return _0x11b103(_0x169cda,![]);}}catch(_0x61b1aa){return{'name':'signal-host','status':'error','details':{'error':_0x1b253d(_0x61b1aa)}};}}function _0x11b103(_0x478382,_0x1f66d5){const _0x1fe1b7=_0x5ccc4b,_0x4429a8=_0x1f66d5?{'dryRun':!![]}:{};switch(_0x478382[_0x1fe1b7(0x416)]){case'reverted':return{'name':_0x1fe1b7(0x4e8),'status':'reverted','details':{'path':_0x478382['path'],'shell':_0x478382['shell'],'removedIp':_0x478382['removedIp'],..._0x4429a8}};case'already-reverted':return{'name':'signal-host','status':_0x1fe1b7(0x1b6),'details':{'path':_0x478382[_0x1fe1b7(0x195)],'shell':_0x478382[_0x1fe1b7(0x22a)],..._0x4429a8}};case'no-profile':return{'name':_0x1fe1b7(0x4e8),'status':_0x1fe1b7(0x1b6),'details':{'reason':_0x1fe1b7(0x2aa),'path':_0x478382[_0x1fe1b7(0x195)],..._0x4429a8}};}}async function _0x2cdb7f(_0x21bb3c){const _0x454116=_0x5ccc4b,_0x40e667=_0x21bb3c??_0x20bd55(),_0x52ec16=_0x51ae54(tmpdir(),'ceraph-uninstall-shell-preview-'+Date['now']()+'-'+Math[_0x454116(0x4c9)]()['toString'](0x24)['slice'](0x2));return _0x3d9e6f(_0x52ec16,async()=>{const _0xcd50a6=_0x454116,_0x693955=_0x51ae54(_0x52ec16,_0xcd50a6(0x278));await _0x1bb544(_0x693955,{'recursive':!![]});for(const _0x22c8bb of['.zshrc','.bashrc']){try{await copyFile(_0x51ae54(_0x40e667,_0x22c8bb),_0x51ae54(_0x693955,_0x22c8bb));}catch{}}return{'tmpHome':_0x693955,'tmpRoot':_0x52ec16};});}async function _0x198201(_0x431832,_0x2baa9d,_0x36dc41){const _0x252071=_0x5ccc4b,_0xdac12f=_0x2baa9d[_0x252071(0x305)]??_0x507d3d;if(!_0x2baa9d[_0x252071(0x202)])try{const _0x5c1d94=await _0xdac12f({'projectDir':_0x431832,'confirm':![]});if(_0x5c1d94[_0x252071(0x416)]==='already-reverted')return{'name':'ceraph-dir','status':'already-reverted','details':{'path':_0x5c1d94['path'],..._0x36dc41?{'dryRun':!![]}:{}}};if(_0x5c1d94[_0x252071(0x416)]===_0x252071(0x4c4))return _0x252071(0x577)==='Lmjzb'?{'status':'install-failed','error':_0x58fd36 instanceof _0x46955d?_0x400a54['message']:_0x14e4c1(_0x141fd4)}:{'name':_0x252071(0x53d),'status':_0x252071(0x507),'details':{'path':_0x5c1d94[_0x252071(0x195)],'paths':_0x5c1d94[_0x252071(0x3c9)],..._0x36dc41?{'dryRun':!![]}:{}},'remediation':_0x252071(0x27f)};return{'name':_0x252071(0x53d),'status':_0x252071(0x51e),'details':{'unexpectedStatus':_0x5c1d94['status'],..._0x36dc41?{'dryRun':!![]}:{}},'remediation':_0x252071(0x3c2)};}catch(_0x3161f5){return{'name':'ceraph-dir','status':_0x252071(0x51e),'details':{'error':_0x1b253d(_0x3161f5),..._0x36dc41?{'dryRun':!![]}:{}}};}if(_0x36dc41)try{const _0x6b59da=await _0xdac12f({'projectDir':_0x431832,'confirm':![]});if(_0x6b59da['status']===_0x252071(0x1b6))return _0x252071(0x3d7)==='LAkuJ'?{'name':'ceraph-dir','status':'already-reverted','details':{'path':_0x6b59da[_0x252071(0x195)],'dryRun':!![]}}:{'status':'present'};if(_0x6b59da[_0x252071(0x416)]===_0x252071(0x4c4))return{'name':_0x252071(0x53d),'status':'reverted','details':{'path':_0x6b59da[_0x252071(0x195)],'paths':_0x6b59da[_0x252071(0x3c9)],'dryRun':!![]}};return{'name':'ceraph-dir','status':_0x252071(0x51e),'details':{'unexpectedStatus':_0x6b59da['status'],'dryRun':!![]}};}catch(_0x533bd7){return{'name':_0x252071(0x53d),'status':'error','details':{'error':_0x1b253d(_0x533bd7),'dryRun':!![]}};}try{if('WHPSQ'!=='WHPSQ'){_0x5b246a=_0x4fb41a;const _0x5bb6a0=_0x22d637,_0x239188=typeof _0x5bb6a0['message']==='string'&&_0x5bb6a0[_0x252071(0x554)]||typeof _0x5bb6a0[_0x252071(0x51e)]==='string'&&_0x5bb6a0[_0x252071(0x51e)]||void 0x0;if(_0x239188)_0x2c0642=_0x239188;}else{const _0x129107=await _0xdac12f({'projectDir':_0x431832,'confirm':!![]});switch(_0x129107[_0x252071(0x416)]){case _0x252071(0x358):return{'name':_0x252071(0x53d),'status':'reverted','details':{'path':_0x129107[_0x252071(0x195)],'deletedEntries':_0x129107['deletedEntries']}};case _0x252071(0x1b6):return{'name':_0x252071(0x53d),'status':'already-reverted','details':{'path':_0x129107['path']}};case'skipped-needs-confirmation':return{'name':_0x252071(0x53d),'status':_0x252071(0x507),'details':{'path':_0x129107[_0x252071(0x195)],'unexpected':!![]}};}}}catch(_0x334d12){return{'name':_0x252071(0x53d),'status':'error','details':{'error':_0x1b253d(_0x334d12)}};}}async function _0x178efa(_0x5a0b7c,_0x4afc00){const _0x382215=_0x5ccc4b,_0x20ed67=_0x5a0b7c['revertAuth']??_0x4a1b8e,_0x118bda=_0x5a0b7c['homeDir']?.();if(!_0x5a0b7c['global'])try{const _0x46fe25=await _0x20ed67({'global':![]},{'home':_0x118bda});return{'name':_0x382215(0x3cd),'status':_0x382215(0x507),'details':{'path':_0x46fe25[_0x382215(0x195)],..._0x4afc00?{'dryRun':!![]}:{}},'remediation':_0x382215(0x3e3)};}catch(_0x377919){return{'name':'auth','status':'error','details':{'error':_0x1b253d(_0x377919),..._0x4afc00?{'dryRun':!![]}:{}}};}if(_0x4afc00)try{const _0x4dcc22=_0x118bda??_0x20bd55(),_0x1fb259=_0x51ae54(_0x4dcc22,_0x382215(0x2f8),'auth.json');let _0x4eacef=![];try{await _0x1bf787(_0x1fb259),_0x4eacef=!![];}catch{_0x4eacef=![];}return{'name':'auth','status':_0x4eacef?_0x382215(0x28d):_0x382215(0x1b6),'details':{'path':_0x1fb259,'dryRun':!![],'wouldDelete':_0x4eacef}};}catch(_0x5cca9f){return{'name':_0x382215(0x3cd),'status':'error','details':{'error':_0x1b253d(_0x5cca9f),'dryRun':!![]}};}try{const _0x66f16d=await _0x20ed67({'global':!![]},{'home':_0x118bda});switch(_0x66f16d[_0x382215(0x416)]){case'deleted':return{'name':'auth','status':_0x382215(0x28d),'details':{'path':_0x66f16d['path']}};case'already-reverted':return{'name':'auth','status':_0x382215(0x1b6),'details':{'path':_0x66f16d['path']}};case _0x382215(0x507):return{'name':_0x382215(0x3cd),'status':_0x382215(0x507),'details':{'path':_0x66f16d[_0x382215(0x195)],'unexpected':!![]}};}}catch(_0x35db1a){return{'name':'auth','status':_0x382215(0x51e),'details':{'error':_0x1b253d(_0x35db1a)}};}}async function _0x545ce6(_0x4328d8,_0x29d61c,_0x4eed7b){const _0x3ab395=_0x5ccc4b,_0x184d3f=_0x29d61c[_0x3ab395(0x241)]??_0x38d246,_0x2817a3=_0x29d61c[_0x3ab395(0x249)];if(_0x4eed7b)try{const _0x48c64a=await _0x184d3f(_0x4328d8,{'spawnRemove':_0x44416d});return _0x4f9c49(_0x48c64a,!![]);}catch(_0x5e57f8){return{'name':_0x3ab395(0x36f),'status':'error','details':{'error':_0x1b253d(_0x5e57f8),'dryRun':!![]}};}try{const _0x287344=await _0x184d3f(_0x4328d8,_0x2817a3?{'spawnRemove':_0x2817a3}:{});return _0x4f9c49(_0x287344,![]);}catch(_0x2cd987){return{'name':_0x3ab395(0x36f),'status':'error','details':{'error':_0x1b253d(_0x2cd987)}};}}function _0x4f9c49(_0x531656,_0x3800ea){const _0x21a073=_0x5ccc4b,_0x4b1426=_0x3800ea?{'dryRun':!![]}:{};switch(_0x531656['status']){case _0x21a073(0x29c):return{'name':'package','status':'reverted','details':{'packageManager':_0x531656['pm'],'removedPackages':_0x531656[_0x21a073(0x57c)],'command':_0x531656[_0x21a073(0x459)],..._0x4b1426}};case _0x21a073(0x57b):return{'name':'package','status':_0x21a073(0x1b6),'details':{'packageManager':_0x531656['pm'],..._0x4b1426}};case _0x21a073(0x40f):return{'name':_0x21a073(0x36f),'status':_0x21a073(0x51e),'details':{'packageManager':_0x531656['pm'],'command':_0x531656[_0x21a073(0x459)],'exitCode':_0x531656[_0x21a073(0x4b4)],..._0x4b1426},'remediation':_0x531656['pm']+'\x20'+(_0x531656['command']?.[_0x21a073(0x4e2)]['join']('\x20')??'')+_0x21a073(0x371)+_0x531656[_0x21a073(0x4b4)]+_0x21a073(0x254)};}}function _0x1b253d(_0x214545){const _0xd6d872=_0x5ccc4b;return _0x214545 instanceof Error?_0x214545[_0xd6d872(0x554)]:String(_0x214545);}async function _0x5b34d4(_0x2eb2f5,_0x4d0759,_0x369fcd){const _0x1257cf=_0x5ccc4b,_0xec6c08=_0x4d0759['revertBabelConfig']??(_0x2f4459=>_0x5b2342({'projectDir':_0x2f4459,..._0x369fcd?{'writeFile':async()=>void 0x0,'unlink':async()=>void 0x0}:{}}));try{const _0x964218=await _0xec6c08(_0x2eb2f5);return _0x1122cf(_0x964218,_0x369fcd);}catch(_0x2662f4){return{'name':'babel-config','status':_0x1257cf(0x51e),'details':{'error':_0x1b253d(_0x2662f4),..._0x369fcd?{'dryRun':!![]}:{}}};}}function _0x1122cf(_0x3c822c,_0x52bec3){const _0x514335=_0x5ccc4b,_0x483471=_0x52bec3?{'dryRun':!![]}:{};switch(_0x3c822c['status']){case'reverted':return{'name':_0x514335(0x257),'status':_0x514335(0x28d),'details':{'path':_0x3c822c['path'],'action':_0x3c822c[_0x514335(0x4d9)],..._0x483471}};case _0x514335(0x1b6):return{'name':'babel-config','status':'already-reverted','details':{'path':_0x3c822c[_0x514335(0x195)],..._0x483471}};case _0x514335(0x329):return{'name':'babel-config','status':'already-reverted','details':{..._0x483471}};}}async function _0x3d9e6f(_0x4b6d6e,_0x2106a9){try{return await _0x2106a9();}catch(_0x37e42d){try{await _0x419e6d(_0x4b6d6e,{'recursive':!![],'force':!![]});}catch{}throw _0x37e42d;}}async function _0x274760(_0x5bd4b,_0x46ecf9){const _0x57e08c=_0x5ccc4b,_0x3d966f=_0x51ae54(tmpdir(),_0x57e08c(0x4ba)+Date[_0x57e08c(0x239)]()+'-'+Math[_0x57e08c(0x4c9)]()['toString'](0x24)[_0x57e08c(0x54d)](0x2));return _0x3d9e6f(_0x3d966f,async()=>{const _0xa14057=_0x125da6(_0x46ecf9,_0x5bd4b),_0x2d2d7f=_0x436214(_0xa14057)?'App.tsx':_0xa14057,_0x2b21ec=_0x51ae54(_0x3d966f,_0x2d2d7f);return await _0x1bb544(_0xb15ead(_0x2b21ec),{'recursive':!![]}),await copyFile(_0x5bd4b,_0x2b21ec),{'projectDir':_0x3d966f,'tmpRoot':_0x3d966f};});}function _0x2a75bb(_0x9b4f70,_0x40ecef){const _0x1a7ce4=_0x5ccc4b,_0x1ce9c0=[],_0x345d89=[];let _0x47f0d6=0x0,_0x3bab4b=0x0;for(const _0x4cb5bb of _0x40ecef){if(_0x4cb5bb['status']==='reverted'||_0x4cb5bb[_0x1a7ce4(0x416)]==='warning')_0x47f0d6++;else(_0x4cb5bb['status']===_0x1a7ce4(0x507)||_0x4cb5bb['status']==='already-reverted')&&_0x3bab4b++;_0x4cb5bb['status']===_0x1a7ce4(0x473)&&_0x4cb5bb['remediation']&&_0x1ce9c0[_0x1a7ce4(0x359)](_0x4cb5bb['remediation']),_0x4cb5bb['status']==='manual'&&_0x4cb5bb['remediation']&&_0x345d89['push'](_0x4cb5bb['remediation']);}return{'workingDir':_0x9b4f70,'steps':_0x40ecef,'summary':{'reverted':_0x47f0d6,'skipped':_0x3bab4b,'warnings':_0x1ce9c0,'manualSteps':_0x345d89}};}var _0x2f5cc6,_0x559f04,_0x5ac651,_0x44416d,_0x32cf9d=_0x4d3071({'src/uninstall/walkthrough.ts'(){'use strict';_0x1ecc92(),_0x1c9166(),_0x2477a0(),_0x4fcba6(),_0x28f550(),_0x25614a(),_0xa7ca1d(),_0x4a4dae(),_0x15447a(),_0x130ec9(),_0xb98eca(),_0x1dbe7f(),_0x3683d8(),_0x5ac651=![],_0x44416d=async _0x3c4da5=>({'exitCode':0x0});}}),_0x16dbe1={};_0x22ce2d(_0x16dbe1,{'formatStepLine':()=>_0x3198d2,'formatSummary':()=>_0x463243,'parseArgs':()=>_0x31b281,'runUninstallCli':()=>_0x44027c});import{spawn as _0x1149c9}from'child_process';import{stat as _0x4c0c18}from'fs/promises';import{join as _0x5c683d}from'path';async function _0x44027c(_0x587687){const _0x5e3a34=_0x5ccc4b,_0x259590=_0x31b281(_0x587687[_0x5e3a34(0x575)]);if(_0x259590['help']){if(_0x5e3a34(0x4e7)!=='WxRQy')return _0x136036(_0x4bd4b7,_0x587687),{'exitCode':0x0,'walkthrough':null,'parsedFlags':_0x259590};else{const _0x60da33='\x0a[mcp_servers.react-native-mcp]\x0acommand\x20=\x20\x22npx\x22\x0aargs\x20=\x20[\x22-y\x22,\x20\x22@ceraph/react-native-mcp@latest\x22]\x0a';_0x16d0ba=_0x21ecac+_0x60da33;}}if(_0x259590['unknown']['length']>0x0)return _0x136036(_0x5e3a34(0x390)+_0x259590[_0x5e3a34(0x50a)][_0x5e3a34(0x3aa)](',\x20')+'\x0a\x0a'+_0x4bd4b7,_0x587687),{'exitCode':0x1,'walkthrough':null,'parsedFlags':_0x259590};const _0xd14b32=_0x259590['projectDir']??_0x587687['cwd']??process['cwd']();if(_0x259590[_0x5e3a34(0x298)]!=null){const _0x4345d4=await _0x3dd9c1(_0x259590['projectDir']);if(_0x4345d4!==null)return _0x136036(_0x4345d4+'\x0a',_0x587687),{'exitCode':0x1,'walkthrough':null,'parsedFlags':_0x259590};}let _0x53527e=_0x259590[_0x5e3a34(0x202)],_0x10b029=_0x259590['global'];if(!_0x259590[_0x5e3a34(0x393)]&&!_0x259590['dryRun']){_0x136036(_0x5e3a34(0x1a2),_0x587687),_0x136036('\x20\x20Project:\x20'+_0xd14b32+'\x0a',_0x587687),_0x136036(_0x5e3a34(0x2b2),_0x587687),_0x136036('\x20\x20Default-safe:\x20leaves\x20.ceraph/\x20and\x20~/.ceraph/auth.json\x20untouched.\x0a\x0a',_0x587687);const _0x3c50b0=await _0x98335a(_0x5e3a34(0x179),{..._0x587687,'defaultYes':![]});if(!_0x3c50b0)return _0x136036('\x0aAborted\x20—\x20no\x20changes\x20made.\x0a',_0x587687),{'exitCode':0x0,'walkthrough':null,'parsedFlags':_0x259590};!_0x53527e&&(_0x53527e=await _0x98335a(_0x5e3a34(0x349),{..._0x587687,'defaultYes':![]})),!_0x10b029&&(_0x10b029=await _0x98335a('Also\x20sign\x20out\x20(delete\x20~/.ceraph/auth.json)?',{..._0x587687,'defaultYes':![]}));}_0x259590[_0x5e3a34(0x26e)]&&(_0x136036(_0x5e3a34(0x15d),_0x587687),_0x136036(_0x5e3a34(0x2ed)+_0xd14b32+'\x0a\x0a',_0x587687));const _0x546178=await _0x403979({'projectDir':_0xd14b32,'rootDir':_0x2d729b(_0x259590[_0x5e3a34(0x298)]??void 0x0,_0x587687['cwd']??process['cwd']()),'purgeImages':_0x53527e,'global':_0x10b029,'dryRun':_0x259590[_0x5e3a34(0x26e)],'nonInteractive':_0x259590['yes'],'homeDir':_0x587687['homeDir'],'spawnRemove':_0x587687[_0x5e3a34(0x249)]??_0x47cc76,'onStep':_0x166361=>{_0x136036(_0x3198d2(_0x166361),_0x587687);}});_0x136036(_0x463243(_0x546178),_0x587687);const _0x2e6f4b=_0x546178['steps']['some'](_0x2bb984=>_0x2bb984['status']==='error'||_0x2bb984['status']==='manual');return{'exitCode':_0x2e6f4b?0x1:0x0,'walkthrough':_0x546178,'parsedFlags':{..._0x259590,'purgeImages':_0x53527e,'global':_0x10b029}};}function _0x3198d2(_0x2d6c36){const _0xfb548a=_0x5ccc4b,_0x527879=_0x2bbfcb(_0x2d6c36['status']),_0x3727e2=_0x52abde(_0x2d6c36);return'\x20\x20'+_0x527879+'\x20'+_0x2d6c36[_0xfb548a(0x34d)]['padEnd'](0xd)+'\x20'+_0x3727e2+'\x0a';}function _0x2bbfcb(_0x3acc10){const _0x36c014=_0x5ccc4b;switch(_0x3acc10){case _0x36c014(0x28d):return'[ok]';case'already-reverted':return'[--]';case'skipped':return'[--]';case'warning':return _0x36c014(0x3da);case'manual':return _0x36c014(0x3da);case'error':return _0x36c014(0x403);}}function _0x52abde(_0x55df1a){const _0x49811d=_0x5ccc4b;switch(_0x55df1a[_0x49811d(0x416)]){case _0x49811d(0x28d):return'reverted'+(_0x55df1a['details']?.['dryRun']?_0x49811d(0x30c):'');case'already-reverted':return'nothing\x20to\x20do'+(_0x55df1a[_0x49811d(0x56b)]?.['dryRun']?_0x49811d(0x30c):'');case _0x49811d(0x507):return _0x49811d(0x504)+(_0x55df1a[_0x49811d(0x2c8)]??_0x49811d(0x49c));case'warning':return'reverted\x20with\x20warning\x20—\x20'+(_0x55df1a[_0x49811d(0x2c8)]??'');case _0x49811d(0x1f3):return _0x49811d(0x4c2)+(_0x55df1a[_0x49811d(0x2c8)]??'');case'error':return'error\x20—\x20'+(_0x55df1a[_0x49811d(0x2c8)]??_0x55df1a['details']?.[_0x49811d(0x51e)]??_0x49811d(0x498));}}function _0x463243(_0x4787d4){const _0x589a05=_0x5ccc4b,{reverted:_0x527557,skipped:_0x755987,warnings:_0x204ab4,manualSteps:_0x31f4ba}=_0x4787d4['summary'],_0x183130=['\x0aSummary:\x0a'];_0x183130[_0x589a05(0x359)]('\x20\x20Reverted:\x20\x20\x20\x20\x20\x20\x20\x20'+_0x527557+'\x0a'),_0x183130[_0x589a05(0x359)]('\x20\x20Skipped/no-op:\x20\x20\x20'+_0x755987+'\x0a'),_0x183130[_0x589a05(0x359)](_0x589a05(0x4cb)+_0x204ab4[_0x589a05(0x471)]+'\x0a'),_0x183130['push'](_0x589a05(0x41f)+_0x31f4ba[_0x589a05(0x471)]+'\x0a');if(_0x204ab4['length']>0x0){_0x183130['push']('\x0aWarnings:\x0a');for(const _0x2c177c of _0x204ab4)_0x183130['push']('\x20\x20-\x20'+_0x2c177c+'\x0a');}if(_0x31f4ba[_0x589a05(0x471)]>0x0){_0x183130[_0x589a05(0x359)](_0x589a05(0x3f5));for(const _0x510092 of _0x31f4ba)_0x183130[_0x589a05(0x359)](_0x589a05(0x1b9)+_0x510092+'\x0a');}return _0x183130[_0x589a05(0x3aa)]('');}function _0x31b281(_0x32e2bf){const _0x291ac5=_0x5ccc4b,_0x578431={'yes':![],'purgeImages':![],'global':![],'dryRun':![],'projectDir':null,'help':![],'unknown':[]};for(let _0x4ca547=0x0;_0x4ca547<_0x32e2bf['length'];_0x4ca547++){const _0x102cf6=_0x32e2bf[_0x4ca547];switch(_0x102cf6){case'-y':case _0x291ac5(0x3a2):_0x578431['yes']=!![];break;case _0x291ac5(0x3c7):_0x578431['purgeImages']=!![];break;case _0x291ac5(0x15c):_0x578431['global']=!![];break;case _0x291ac5(0x3f9):_0x578431[_0x291ac5(0x26e)]=!![];break;case _0x291ac5(0x295):{const _0xae5541=_0x32e2bf[_0x4ca547+0x1];_0xae5541==null?_0x291ac5(0x150)!==_0x291ac5(0x150)?_0x31291a=_0x16e6d8[_0x291ac5(0x398)](_0x3bd4ac):_0x578431[_0x291ac5(0x50a)]['push'](_0x102cf6+_0x291ac5(0x342)):(_0x578431['projectDir']=_0xae5541,_0x4ca547++);break;}case'-h':case _0x291ac5(0x553):_0x578431[_0x291ac5(0x50b)]=!![];break;default:if(_0x102cf6!==void 0x0)_0x578431['unknown']['push'](_0x102cf6);}}return _0x578431;}async function _0x3dd9c1(_0x26c62b){const _0x372c71=_0x5ccc4b;let _0x220953;try{_0x220953=await _0x4c0c18(_0x26c62b);}catch{return _0x372c71(0x3bd)+_0x26c62b;}if(!_0x220953['isDirectory']())return _0x372c71(0x300)==='aRgdk'?{'changed':![],'previousScheme':void 0x0,'nextScheme':void 0x0}:_0x372c71(0x2c7)+_0x26c62b;try{await _0x4c0c18(_0x5c683d(_0x26c62b,_0x372c71(0x16f)));}catch{return _0x372c71(0x397)+_0x5c683d(_0x26c62b,_0x372c71(0x16f))+')';}return null;}function _0x47cc76(_0x46a4bc){return new Promise(_0x41caa6=>{const _0x1fedbe=_0x4997,_0x15b714=_0x1149c9(_0x46a4bc[_0x1fedbe(0x319)],_0x46a4bc[_0x1fedbe(0x4e2)],{'cwd':_0x46a4bc['cwd'],'stdio':'inherit'});_0x15b714['on'](_0x1fedbe(0x51e),()=>_0x41caa6({'exitCode':0x7f})),_0x15b714['on'](_0x1fedbe(0x55b),_0x4d8c9=>_0x41caa6({'exitCode':_0x4d8c9??0x1}));});}var _0x4bd4b7,_0x30757a=_0x4d3071({'src/uninstall/cli-runner.ts'(){'use strict';_0x30ec70(),_0x15ef18(),_0x32cf9d(),_0x4bd4b7='Usage:\x20npx\x20@ceraph/react-native-mcp\x20uninstall\x20[flags]\x0a\x0aRemoves\x20Ceraph\x20from\x20the\x20current\x20React\x20Native\x20/\x20Expo\x20project.\x20By\x20default:\x0a-\x20Reverts\x20source-tree\x20edits\x20(CameraView,\x20layout\x20boot,\x20ceraph\x20URL\x20scheme)\x0a-\x20Strips\x20MCP\x20client\x20configs\x20(.mcp.json,\x20.cursor/,\x20.vscode/,\x20.codex/)\x0a-\x20Removes\x20gitignore\x20entries\x0a-\x20Removes\x20CERAPH_SIGNAL_HOST\x20from\x20your\x20shell\x20rc\x0a-\x20Removes\x20@ceraph/react-native-mcp\x20from\x20package.json\x0a-\x20LEAVES\x20.ceraph/\x20(test\x20images,\x20design\x20snapshots)\x20in\x20place\x0a-\x20LEAVES\x20~/.ceraph/auth.json\x20in\x20place\x20(token\x20is\x20user-global)\x0a\x0aFlags:\x0a\x20\x20-y,\x20--yes\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Skip\x20confirmation\x20prompts.\x0a\x20\x20\x20\x20\x20\x20--purge-images\x20\x20\x20\x20\x20Also\x20delete\x20.ceraph/\x20(camera\x20images\x20+\x20snapshots).\x0a\x20\x20\x20\x20\x20\x20--global\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Also\x20delete\x20~/.ceraph/auth.json\x20(logs\x20you\x20out\x20of\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20every\x20Ceraph\x20install\x20on\x20this\x20machine).\x0a\x20\x20\x20\x20\x20\x20--dry-run\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Preview\x20the\x20revert\x20without\x20mutating\x20anything.\x0a\x20\x20\x20\x20\x20\x20--project-dir\x20<p>\x20\x20Operate\x20on\x20this\x20subpackage.\x20Required\x20when\x20a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20monorepo\x20has\x20more\x20than\x20one\x20RN\x20app.\x0a\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Print\x20this\x20help\x20and\x20exit.\x0a';}});function _0x3a3e14(_0x3a4c3e){const _0x4be998=_0x5ccc4b;let _0x582966;for(let _0x3c6eed=0x0;_0x3c6eed<_0x3a4c3e['length'];_0x3c6eed++){const _0x461865=_0x3a4c3e[_0x3c6eed];let _0x1b82a2;if(_0x461865==='--tier')_0x1b82a2=_0x3a4c3e[_0x3c6eed+0x1];else _0x461865[_0x4be998(0x425)]('--tier=')&&(_0x1b82a2=_0x461865[_0x4be998(0x54d)](_0x4be998(0x4f1)['length']));(_0x1b82a2==='pro'||_0x1b82a2==='starter')&&(_0x582966=_0x1b82a2);}return _0x582966;}if(process.env.VITEST){}else await _0x89c3ea();async function _0x89c3ea(){const _0xd477d5=_0x5ccc4b,_0x29d34d=process[_0xd477d5(0x575)][_0xd477d5(0x54d)](0x2),_0x4d8cd5=_0x29d34d[0x0],_0x747f7a=new Set(_0x29d34d['slice'](0x1)),_0x43543c=_0xd477d5(0x3f7);(_0x4d8cd5==='--help'||_0x4d8cd5==='-h'||_0x4d8cd5===_0xd477d5(0x50b))&&(process['stdout'][_0xd477d5(0x2c9)](_0x43543c),process['exit'](0x0));if(_0x4d8cd5==='init'){const _0x59f5f4=_0x747f7a[_0xd477d5(0x466)](_0xd477d5(0x31c))||process.env.CERAPH_AGENT_MODE==='1',_0x72cfdf=_0x3a3e14(_0x29d34d[_0xd477d5(0x54d)](0x1)),{runInit:_0x59e985}=await Promise[_0xd477d5(0x22f)]()[_0xd477d5(0x341)](()=>(_0x331bb0(),_0x537b6c));await _0x59e985({'agentMode':_0x59f5f4,'tier':_0x72cfdf})['catch'](_0x28a16f=>{const _0x4be725=_0xd477d5;console['error'](_0x4be725(0x19f),_0x28a16f),process['exit'](0x1);});}else{if(_0x4d8cd5===_0xd477d5(0x531)){const {runUninstallCli:_0x4d1747}=await Promise['resolve']()[_0xd477d5(0x341)](()=>(_0x30757a(),_0x16dbe1));try{const _0x5c28a4=await _0x4d1747({'argv':process['argv']['slice'](0x3)});process[_0xd477d5(0x55b)](_0x5c28a4['exitCode']);}catch(_0x139b94){console['error']('Uninstall\x20failed:',_0x139b94),process[_0xd477d5(0x55b)](0x1);}}else await import('./index.js');}}export{_0x3a3e14 as parseTierFlag};
|