react-native-ai-debugger 1.0.11 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +165 -8
  2. package/build/core/android.js +2 -2
  3. package/build/core/android.js.map +1 -1
  4. package/build/core/bundle.d.ts.map +1 -1
  5. package/build/core/bundle.js +51 -1
  6. package/build/core/bundle.js.map +1 -1
  7. package/build/core/connection.d.ts +2 -2
  8. package/build/core/connection.d.ts.map +1 -1
  9. package/build/core/connection.js +104 -5
  10. package/build/core/connection.js.map +1 -1
  11. package/build/core/connectionState.d.ts +79 -0
  12. package/build/core/connectionState.d.ts.map +1 -0
  13. package/build/core/connectionState.js +202 -0
  14. package/build/core/connectionState.js.map +1 -0
  15. package/build/core/httpServer.d.ts.map +1 -1
  16. package/build/core/httpServer.js +60 -1
  17. package/build/core/httpServer.js.map +1 -1
  18. package/build/core/httpServerProcess.d.ts +25 -0
  19. package/build/core/httpServerProcess.d.ts.map +1 -0
  20. package/build/core/httpServerProcess.js +153 -0
  21. package/build/core/httpServerProcess.js.map +1 -0
  22. package/build/core/index.d.ts +4 -0
  23. package/build/core/index.d.ts.map +1 -1
  24. package/build/core/index.js +6 -0
  25. package/build/core/index.js.map +1 -1
  26. package/build/core/ios.js +2 -2
  27. package/build/core/ios.js.map +1 -1
  28. package/build/core/ocr.d.ts +70 -0
  29. package/build/core/ocr.d.ts.map +1 -0
  30. package/build/core/ocr.js +322 -0
  31. package/build/core/ocr.js.map +1 -0
  32. package/build/core/types.d.ts +29 -0
  33. package/build/core/types.d.ts.map +1 -1
  34. package/build/httpServerStandalone.d.ts +7 -0
  35. package/build/httpServerStandalone.d.ts.map +1 -0
  36. package/build/httpServerStandalone.js +31 -0
  37. package/build/httpServerStandalone.js.map +1 -0
  38. package/build/index.js +273 -12
  39. package/build/index.js.map +1 -1
  40. package/package.json +8 -3
@@ -0,0 +1,322 @@
1
+ import { createWorker } from "tesseract.js";
2
+ import sharp from "sharp";
3
+ import { tmpdir } from "os";
4
+ import { join } from "path";
5
+ import { writeFile, unlink } from "fs/promises";
6
+ import { randomUUID } from "crypto";
7
+ // Cached Tesseract worker for fallback
8
+ let cachedTesseractWorker = null;
9
+ let tesseractWorkerPromise = null;
10
+ // EasyOCR instance
11
+ let easyOCRInstance = null;
12
+ let easyOCRInitPromise = null;
13
+ let easyOCRAvailable = null;
14
+ /**
15
+ * Promise with timeout helper
16
+ */
17
+ function withTimeout(promise, ms, errorMsg) {
18
+ return Promise.race([
19
+ promise,
20
+ new Promise((_, reject) => setTimeout(() => reject(new Error(errorMsg)), ms))
21
+ ]);
22
+ }
23
+ /**
24
+ * Get configured OCR languages from environment variable
25
+ * English is always included as fallback
26
+ * Default: "en" (English only)
27
+ * Example: EASYOCR_LANGUAGES="es,fr" for Spanish, French (+ English)
28
+ */
29
+ function getOCRLanguages() {
30
+ const envLangs = process.env.EASYOCR_LANGUAGES;
31
+ const languages = envLangs
32
+ ? envLangs.split(",").map(lang => lang.trim()).filter(Boolean)
33
+ : [];
34
+ // Always include English as fallback
35
+ if (!languages.includes("en")) {
36
+ languages.push("en");
37
+ }
38
+ return languages;
39
+ }
40
+ /**
41
+ * Initialize EasyOCR (Python-based, better for colored backgrounds)
42
+ * Times out after 10 seconds to fall back to Tesseract
43
+ */
44
+ async function getEasyOCR() {
45
+ if (easyOCRAvailable === false) {
46
+ return null;
47
+ }
48
+ if (easyOCRInstance) {
49
+ return easyOCRInstance;
50
+ }
51
+ if (easyOCRInitPromise) {
52
+ return easyOCRInitPromise;
53
+ }
54
+ easyOCRInitPromise = (async () => {
55
+ try {
56
+ const languages = getOCRLanguages();
57
+ const { EasyOCR } = await import("node-easyocr");
58
+ const ocr = new EasyOCR();
59
+ await withTimeout(ocr.init(languages), 10000, "EasyOCR init timeout");
60
+ easyOCRInstance = ocr;
61
+ easyOCRAvailable = true;
62
+ return ocr;
63
+ }
64
+ catch {
65
+ easyOCRAvailable = false;
66
+ return null;
67
+ }
68
+ })();
69
+ return easyOCRInitPromise;
70
+ }
71
+ /**
72
+ * Initialize Tesseract worker (fallback)
73
+ */
74
+ async function getTesseractWorker() {
75
+ if (cachedTesseractWorker) {
76
+ return cachedTesseractWorker;
77
+ }
78
+ if (tesseractWorkerPromise) {
79
+ return tesseractWorkerPromise;
80
+ }
81
+ tesseractWorkerPromise = (async () => {
82
+ const worker = await createWorker("eng", 1, {
83
+ logger: () => { } // Suppress progress logs
84
+ });
85
+ cachedTesseractWorker = worker;
86
+ return worker;
87
+ })();
88
+ return tesseractWorkerPromise;
89
+ }
90
+ /**
91
+ * Infer iOS device pixel ratio from screenshot dimensions
92
+ * @3x devices: Most modern iPhones (width >= 1080)
93
+ * @2x devices: Older iPhones, iPads (width 640-1080 or width >= 1500 for iPads)
94
+ * @1x devices: Very old (rare)
95
+ */
96
+ export function inferIOSDevicePixelRatio(width, height) {
97
+ // Ensure we're looking at the shorter dimension for width
98
+ const shortSide = Math.min(width, height);
99
+ const longSide = Math.max(width, height);
100
+ // iPads are typically @2x regardless of size
101
+ // iPad resolutions have aspect ratios closer to 4:3 (e.g., 2048x2732)
102
+ const aspectRatio = longSide / shortSide;
103
+ if (aspectRatio < 1.5) {
104
+ // Likely an iPad (4:3 ish aspect ratio)
105
+ return 2;
106
+ }
107
+ // iPhones: Check short side dimension
108
+ // @3x phones have short side >= 1080 (e.g., 1170, 1179, 1284, 1290)
109
+ // @2x phones have short side < 1080 (e.g., 640, 750)
110
+ if (shortSide >= 1080) {
111
+ return 3;
112
+ }
113
+ // Older @2x iPhones (iPhone 8, SE, etc.)
114
+ return 2;
115
+ }
116
+ /**
117
+ * Convert OCR coordinates to tap-ready coordinates
118
+ * iOS: (ocrCoord * scaleFactor) / devicePixelRatio (points)
119
+ * Android: ocrCoord * scaleFactor (pixels)
120
+ */
121
+ function toTapCoord(ocrCoord, scaleFactor, platform, devicePixelRatio = 3) {
122
+ const pixelCoord = ocrCoord * scaleFactor;
123
+ return platform === "ios" ? Math.round(pixelCoord / devicePixelRatio) : Math.round(pixelCoord);
124
+ }
125
+ /**
126
+ * Run OCR using EasyOCR (better for colored backgrounds)
127
+ */
128
+ async function runEasyOCR(imageBuffer, scaleFactor, platform, devicePixelRatio) {
129
+ const startTime = Date.now();
130
+ const ocr = await getEasyOCR();
131
+ if (!ocr) {
132
+ return null;
133
+ }
134
+ // Write buffer to temp file (EasyOCR requires file path)
135
+ const tempPath = join(tmpdir(), `ocr-${randomUUID()}.png`);
136
+ try {
137
+ await writeFile(tempPath, imageBuffer);
138
+ const results = await withTimeout(ocr.readText(tempPath), 15000, "EasyOCR readText timeout");
139
+ const words = [];
140
+ const textParts = [];
141
+ let totalConfidence = 0;
142
+ for (const result of results) {
143
+ if (result.text && result.bbox) {
144
+ // EasyOCR bbox is [[x1,y1], [x2,y2], [x3,y3], [x4,y4]] (4 corners)
145
+ const x0 = Math.min(result.bbox[0][0], result.bbox[3][0]);
146
+ const y0 = Math.min(result.bbox[0][1], result.bbox[1][1]);
147
+ const x1 = Math.max(result.bbox[1][0], result.bbox[2][0]);
148
+ const y1 = Math.max(result.bbox[2][1], result.bbox[3][1]);
149
+ const centerX = Math.round((x0 + x1) / 2);
150
+ const centerY = Math.round((y0 + y1) / 2);
151
+ words.push({
152
+ text: result.text.trim(),
153
+ confidence: result.confidence * 100,
154
+ bbox: { x0, y0, x1, y1 },
155
+ center: { x: centerX, y: centerY },
156
+ tapCenter: {
157
+ x: toTapCoord(centerX, scaleFactor, platform, devicePixelRatio),
158
+ y: toTapCoord(centerY, scaleFactor, platform, devicePixelRatio)
159
+ }
160
+ });
161
+ textParts.push(result.text.trim());
162
+ totalConfidence += result.confidence;
163
+ }
164
+ }
165
+ return {
166
+ success: true,
167
+ fullText: textParts.join(" "),
168
+ confidence: results.length > 0 ? (totalConfidence / results.length) * 100 : 0,
169
+ words,
170
+ lines: [], // EasyOCR returns words/phrases, not lines
171
+ processingTimeMs: Date.now() - startTime,
172
+ engine: "easyocr"
173
+ };
174
+ }
175
+ finally {
176
+ // Clean up temp file
177
+ try {
178
+ await unlink(tempPath);
179
+ }
180
+ catch {
181
+ // Ignore cleanup errors
182
+ }
183
+ }
184
+ }
185
+ /**
186
+ * Run OCR using Tesseract (fallback)
187
+ */
188
+ async function runTesseract(imageBuffer, scaleFactor, platform, devicePixelRatio) {
189
+ const startTime = Date.now();
190
+ try {
191
+ // Preprocess for Tesseract
192
+ const processedImage = await sharp(imageBuffer)
193
+ .normalize()
194
+ .sharpen({ sigma: 1.5 })
195
+ .toBuffer();
196
+ const worker = await getTesseractWorker();
197
+ const { data } = await worker.recognize(processedImage, {}, { blocks: true, text: true });
198
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
199
+ const anyData = data;
200
+ const allWords = [];
201
+ const allLines = [];
202
+ if (anyData.blocks && Array.isArray(anyData.blocks)) {
203
+ for (const block of anyData.blocks) {
204
+ if (block.paragraphs) {
205
+ for (const para of block.paragraphs) {
206
+ if (para.lines) {
207
+ for (const line of para.lines) {
208
+ if (line.text && line.bbox) {
209
+ const centerX = Math.round((line.bbox.x0 + line.bbox.x1) / 2);
210
+ const centerY = Math.round((line.bbox.y0 + line.bbox.y1) / 2);
211
+ allLines.push({
212
+ text: line.text.trim(),
213
+ confidence: line.confidence || 90,
214
+ bbox: line.bbox,
215
+ center: { x: centerX, y: centerY },
216
+ tapCenter: {
217
+ x: toTapCoord(centerX, scaleFactor, platform, devicePixelRatio),
218
+ y: toTapCoord(centerY, scaleFactor, platform, devicePixelRatio)
219
+ }
220
+ });
221
+ }
222
+ if (line.words) {
223
+ for (const word of line.words) {
224
+ if (word.text && word.bbox) {
225
+ const centerX = Math.round((word.bbox.x0 + word.bbox.x1) / 2);
226
+ const centerY = Math.round((word.bbox.y0 + word.bbox.y1) / 2);
227
+ allWords.push({
228
+ text: word.text.trim(),
229
+ confidence: word.confidence || 90,
230
+ bbox: word.bbox,
231
+ center: { x: centerX, y: centerY },
232
+ tapCenter: {
233
+ x: toTapCoord(centerX, scaleFactor, platform, devicePixelRatio),
234
+ y: toTapCoord(centerY, scaleFactor, platform, devicePixelRatio)
235
+ }
236
+ });
237
+ }
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ return {
247
+ success: true,
248
+ fullText: anyData.text || "",
249
+ confidence: anyData.confidence || 0,
250
+ words: allWords,
251
+ lines: allLines,
252
+ processingTimeMs: Date.now() - startTime,
253
+ engine: "tesseract"
254
+ };
255
+ }
256
+ catch {
257
+ return {
258
+ success: false,
259
+ fullText: "",
260
+ confidence: 0,
261
+ words: [],
262
+ lines: [],
263
+ processingTimeMs: Date.now() - startTime,
264
+ engine: "tesseract"
265
+ };
266
+ }
267
+ }
268
+ /**
269
+ * Main OCR function - tries EasyOCR first (better for colors), falls back to Tesseract
270
+ */
271
+ export async function recognizeText(imageBuffer, options) {
272
+ const scaleFactor = options?.scaleFactor ?? 1;
273
+ const platform = options?.platform ?? "ios";
274
+ const engine = options?.engine ?? "auto";
275
+ const devicePixelRatio = options?.devicePixelRatio ?? 3;
276
+ // If tesseract explicitly requested, use it
277
+ if (engine === "tesseract") {
278
+ return runTesseract(imageBuffer, scaleFactor, platform, devicePixelRatio);
279
+ }
280
+ // If easyocr explicitly requested, try it (fail if not available)
281
+ if (engine === "easyocr") {
282
+ const easyResult = await runEasyOCR(imageBuffer, scaleFactor, platform, devicePixelRatio);
283
+ if (easyResult) {
284
+ return easyResult;
285
+ }
286
+ // EasyOCR not available, return error result
287
+ return {
288
+ success: false,
289
+ fullText: "",
290
+ confidence: 0,
291
+ words: [],
292
+ lines: [],
293
+ processingTimeMs: 0,
294
+ engine: "easyocr"
295
+ };
296
+ }
297
+ // Auto mode: Try EasyOCR first (better for white text on colored backgrounds)
298
+ const easyResult = await runEasyOCR(imageBuffer, scaleFactor, platform, devicePixelRatio);
299
+ if (easyResult) {
300
+ return easyResult;
301
+ }
302
+ // Fall back to Tesseract
303
+ return runTesseract(imageBuffer, scaleFactor, platform, devicePixelRatio);
304
+ }
305
+ export async function terminateOCRWorker() {
306
+ if (cachedTesseractWorker) {
307
+ await cachedTesseractWorker.terminate();
308
+ cachedTesseractWorker = null;
309
+ tesseractWorkerPromise = null;
310
+ }
311
+ if (easyOCRInstance) {
312
+ try {
313
+ await easyOCRInstance.close();
314
+ }
315
+ catch {
316
+ // Ignore close errors
317
+ }
318
+ easyOCRInstance = null;
319
+ easyOCRInitPromise = null;
320
+ }
321
+ }
322
+ //# sourceMappingURL=ocr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocr.js","sourceRoot":"","sources":["../../src/core/ocr.ts"],"names":[],"mappings":"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"}
@@ -65,4 +65,33 @@ export interface NetworkRequest {
65
65
  error?: string;
66
66
  completed: boolean;
67
67
  }
68
+ export interface ConnectionState {
69
+ status: "connected" | "disconnected" | "reconnecting";
70
+ lastConnectedTime: Date | null;
71
+ lastDisconnectTime: Date | null;
72
+ reconnectionAttempts: number;
73
+ connectionGaps: ConnectionGap[];
74
+ }
75
+ export interface ConnectionGap {
76
+ disconnectedAt: Date;
77
+ reconnectedAt: Date | null;
78
+ durationMs: number | null;
79
+ reason: string;
80
+ }
81
+ export interface ConnectionMetadata {
82
+ port: number;
83
+ deviceInfo: DeviceInfo;
84
+ webSocketUrl: string;
85
+ }
86
+ export interface ReconnectionConfig {
87
+ enabled: boolean;
88
+ maxAttempts: number;
89
+ initialDelayMs: number;
90
+ maxDelayMs: number;
91
+ backoffMultiplier: number;
92
+ }
93
+ export interface ConnectOptions {
94
+ isReconnection?: boolean;
95
+ reconnectionConfig?: ReconnectionConfig;
96
+ }
68
97
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Standalone HTTP Debug Server
4
+ * Can be run independently and hot-reloaded without restarting the MCP session
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=httpServerStandalone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpServerStandalone.d.ts","sourceRoot":"","sources":["../src/httpServerStandalone.ts"],"names":[],"mappings":";AACA;;;GAGG"}
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Standalone HTTP Debug Server
4
+ * Can be run independently and hot-reloaded without restarting the MCP session
5
+ */
6
+ import { startDebugHttpServer } from "./core/index.js";
7
+ const PORT = parseInt(process.env.DEBUG_SERVER_PORT || "9876", 10);
8
+ console.log(`[HTTP Server] Starting standalone debug server on port ${PORT}...`);
9
+ startDebugHttpServer({ port: PORT })
10
+ .then((actualPort) => {
11
+ console.log(`[HTTP Server] Running at http://localhost:${actualPort}`);
12
+ console.log(`[HTTP Server] Ready for hot-reload. Restart this process to apply changes.`);
13
+ // Send port to parent process if spawned
14
+ if (process.send) {
15
+ process.send({ type: "ready", port: actualPort });
16
+ }
17
+ })
18
+ .catch((err) => {
19
+ console.error(`[HTTP Server] Failed to start:`, err);
20
+ process.exit(1);
21
+ });
22
+ // Handle graceful shutdown
23
+ process.on("SIGTERM", () => {
24
+ console.log(`[HTTP Server] Shutting down...`);
25
+ process.exit(0);
26
+ });
27
+ process.on("SIGINT", () => {
28
+ console.log(`[HTTP Server] Interrupted, shutting down...`);
29
+ process.exit(0);
30
+ });
31
+ //# sourceMappingURL=httpServerStandalone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpServerStandalone.js","sourceRoot":"","sources":["../src/httpServerStandalone.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAEnE,OAAO,CAAC,GAAG,CAAC,0DAA0D,IAAI,KAAK,CAAC,CAAC;AAEjF,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KAC/B,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,6CAA6C,UAAU,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAE1F,yCAAyC;IACzC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC;AACL,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,2BAA2B;AAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}