wiretap-mcp 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +68 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/monitors/crash-android.d.ts +20 -0
  8. package/dist/monitors/crash-android.d.ts.map +1 -0
  9. package/dist/monitors/crash-android.js +134 -0
  10. package/dist/monitors/crash-android.js.map +1 -0
  11. package/dist/monitors/crash-ios.d.ts +17 -0
  12. package/dist/monitors/crash-ios.d.ts.map +1 -0
  13. package/dist/monitors/crash-ios.js +116 -0
  14. package/dist/monitors/crash-ios.js.map +1 -0
  15. package/dist/monitors/hermes.d.ts +26 -0
  16. package/dist/monitors/hermes.d.ts.map +1 -0
  17. package/dist/monitors/hermes.js +175 -0
  18. package/dist/monitors/hermes.js.map +1 -0
  19. package/dist/monitors/reactotron.d.ts +18 -0
  20. package/dist/monitors/reactotron.d.ts.map +1 -0
  21. package/dist/monitors/reactotron.js +106 -0
  22. package/dist/monitors/reactotron.js.map +1 -0
  23. package/dist/monitors/terminal.d.ts +25 -0
  24. package/dist/monitors/terminal.d.ts.map +1 -0
  25. package/dist/monitors/terminal.js +154 -0
  26. package/dist/monitors/terminal.js.map +1 -0
  27. package/dist/parsers/cdp-parser.d.ts +64 -0
  28. package/dist/parsers/cdp-parser.d.ts.map +1 -0
  29. package/dist/parsers/cdp-parser.js +115 -0
  30. package/dist/parsers/cdp-parser.js.map +1 -0
  31. package/dist/parsers/crash-parser.d.ts +5 -0
  32. package/dist/parsers/crash-parser.d.ts.map +1 -0
  33. package/dist/parsers/crash-parser.js +112 -0
  34. package/dist/parsers/crash-parser.js.map +1 -0
  35. package/dist/parsers/log-parser.d.ts +5 -0
  36. package/dist/parsers/log-parser.d.ts.map +1 -0
  37. package/dist/parsers/log-parser.js +141 -0
  38. package/dist/parsers/log-parser.js.map +1 -0
  39. package/dist/parsers/reactotron-parser.d.ts +17 -0
  40. package/dist/parsers/reactotron-parser.d.ts.map +1 -0
  41. package/dist/parsers/reactotron-parser.js +83 -0
  42. package/dist/parsers/reactotron-parser.js.map +1 -0
  43. package/dist/server.d.ts +19 -0
  44. package/dist/server.d.ts.map +1 -0
  45. package/dist/server.js +224 -0
  46. package/dist/server.js.map +1 -0
  47. package/dist/storage/log-store.d.ts +41 -0
  48. package/dist/storage/log-store.d.ts.map +1 -0
  49. package/dist/storage/log-store.js +118 -0
  50. package/dist/storage/log-store.js.map +1 -0
  51. package/dist/storage/persistence.d.ts +26 -0
  52. package/dist/storage/persistence.d.ts.map +1 -0
  53. package/dist/storage/persistence.js +123 -0
  54. package/dist/storage/persistence.js.map +1 -0
  55. package/dist/tools/clear-logs.d.ts +8 -0
  56. package/dist/tools/clear-logs.d.ts.map +1 -0
  57. package/dist/tools/clear-logs.js +15 -0
  58. package/dist/tools/clear-logs.js.map +1 -0
  59. package/dist/tools/get-api-calls.d.ts +11 -0
  60. package/dist/tools/get-api-calls.d.ts.map +1 -0
  61. package/dist/tools/get-api-calls.js +26 -0
  62. package/dist/tools/get-api-calls.js.map +1 -0
  63. package/dist/tools/get-crashes.d.ts +11 -0
  64. package/dist/tools/get-crashes.d.ts.map +1 -0
  65. package/dist/tools/get-crashes.js +42 -0
  66. package/dist/tools/get-crashes.js.map +1 -0
  67. package/dist/tools/get-errors.d.ts +12 -0
  68. package/dist/tools/get-errors.d.ts.map +1 -0
  69. package/dist/tools/get-errors.js +52 -0
  70. package/dist/tools/get-errors.js.map +1 -0
  71. package/dist/tools/get-hermes-logs.d.ts +12 -0
  72. package/dist/tools/get-hermes-logs.d.ts.map +1 -0
  73. package/dist/tools/get-hermes-logs.js +33 -0
  74. package/dist/tools/get-hermes-logs.js.map +1 -0
  75. package/dist/tools/get-logs.d.ts +21 -0
  76. package/dist/tools/get-logs.d.ts.map +1 -0
  77. package/dist/tools/get-logs.js +50 -0
  78. package/dist/tools/get-logs.js.map +1 -0
  79. package/dist/tools/get-network.d.ts +12 -0
  80. package/dist/tools/get-network.d.ts.map +1 -0
  81. package/dist/tools/get-network.js +35 -0
  82. package/dist/tools/get-network.js.map +1 -0
  83. package/dist/tools/get-performance.d.ts +10 -0
  84. package/dist/tools/get-performance.d.ts.map +1 -0
  85. package/dist/tools/get-performance.js +32 -0
  86. package/dist/tools/get-performance.js.map +1 -0
  87. package/dist/tools/get-state.d.ts +11 -0
  88. package/dist/tools/get-state.d.ts.map +1 -0
  89. package/dist/tools/get-state.js +26 -0
  90. package/dist/tools/get-state.js.map +1 -0
  91. package/dist/tools/get-status.d.ts +20 -0
  92. package/dist/tools/get-status.d.ts.map +1 -0
  93. package/dist/tools/get-status.js +52 -0
  94. package/dist/tools/get-status.js.map +1 -0
  95. package/dist/tools/search-logs.d.ts +11 -0
  96. package/dist/tools/search-logs.d.ts.map +1 -0
  97. package/dist/tools/search-logs.js +68 -0
  98. package/dist/tools/search-logs.js.map +1 -0
  99. package/dist/types.d.ts +123 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +3 -0
  102. package/dist/types.js.map +1 -0
  103. package/package.json +65 -0
  104. package/scripts/install.sh +33 -0
  105. package/wiretap.config.json +8 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-api-calls.js","sourceRoot":"","sources":["../../src/tools/get-api-calls.ts"],"names":[],"mappings":";;AAEA,8CA8BC;AA9BD,SAAgB,iBAAiB,CAC/B,KAAe,EACf,IAAmD;IAEnD,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEpC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACpD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,KAAK,CAAC,MAAM;oBAChB,CAAC,CAAC,KAAK;yBACF,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,eAAe,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CACtO;yBACA,IAAI,CAAC,aAAa,CAAC;oBACxB,CAAC,CAAC,4BAA4B;aACjC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleGetCrashes(store: LogStore, args: {
3
+ platform?: string;
4
+ last_n?: number;
5
+ }): {
6
+ content: {
7
+ type: "text";
8
+ text: string;
9
+ }[];
10
+ };
11
+ //# sourceMappingURL=get-crashes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-crashes.d.ts","sourceRoot":"","sources":["../../src/tools/get-crashes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EA4C7C"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetCrashes = handleGetCrashes;
4
+ function handleGetCrashes(store, args) {
5
+ let crashes = store.crashLogs.getAll();
6
+ if (args.platform && args.platform !== "all") {
7
+ crashes = crashes.filter((c) => c.platform === args.platform);
8
+ }
9
+ if (args.last_n) {
10
+ crashes = crashes.slice(-args.last_n);
11
+ }
12
+ return {
13
+ content: [
14
+ {
15
+ type: "text",
16
+ text: crashes.length
17
+ ? `### Native Crashes (${crashes.length} entries)\n\n` +
18
+ crashes
19
+ .map((c) => {
20
+ const header = `[${c.timestamp}] [${c.platform.toUpperCase()}] ${c.processName}`;
21
+ const reason = `**Reason:** ${c.crashReason}`;
22
+ const exType = c.exceptionType
23
+ ? `**Exception:** ${c.exceptionType}`
24
+ : "";
25
+ const sig = c.signal ? `**Signal:** ${c.signal}` : "";
26
+ const file = c.rawFilePath
27
+ ? `**File:** ${c.rawFilePath}`
28
+ : "";
29
+ const stack = c.stackTrace
30
+ ? `\`\`\`\n${c.stackTrace}\n\`\`\``
31
+ : "";
32
+ return [header, reason, exType, sig, file, stack]
33
+ .filter(Boolean)
34
+ .join("\n");
35
+ })
36
+ .join("\n\n---\n\n")
37
+ : "No native crashes captured.",
38
+ },
39
+ ],
40
+ };
41
+ }
42
+ //# sourceMappingURL=get-crashes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-crashes.js","sourceRoot":"","sources":["../../src/tools/get-crashes.ts"],"names":[],"mappings":";;AAGA,4CA8CC;AA9CD,SAAgB,gBAAgB,CAC9B,KAAe,EACf,IAA4C;IAE5C,IAAI,OAAO,GAAoB,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAExD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7C,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAM,IAAI,CAAC,QAA8B,CAC3D,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,OAAO,CAAC,MAAM;oBAClB,CAAC,CAAC,uBAAuB,OAAO,CAAC,MAAM,eAAe;wBACpD,OAAO;6BACJ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACT,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;4BACjF,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;4BAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa;gCAC5B,CAAC,CAAC,kBAAkB,CAAC,CAAC,aAAa,EAAE;gCACrC,CAAC,CAAC,EAAE,CAAC;4BACP,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACtD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW;gCACxB,CAAC,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE;gCAC9B,CAAC,CAAC,EAAE,CAAC;4BACP,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU;gCACxB,CAAC,CAAC,WAAW,CAAC,CAAC,UAAU,UAAU;gCACnC,CAAC,CAAC,EAAE,CAAC;4BAEP,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;iCAC9C,MAAM,CAAC,OAAO,CAAC;iCACf,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChB,CAAC,CAAC;6BACD,IAAI,CAAC,aAAa,CAAC;oBACxB,CAAC,CAAC,6BAA6B;aAClC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleGetErrors(store: LogStore, args?: {
3
+ source?: "terminal" | "reactotron" | "hermes" | "all";
4
+ filter?: string;
5
+ last_n?: number;
6
+ }): {
7
+ content: {
8
+ type: "text";
9
+ text: string;
10
+ }[];
11
+ };
12
+ //# sourceMappingURL=get-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-errors.d.ts","sourceRoot":"","sources":["../../src/tools/get-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,EACf,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ;;;;;EAgDP"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetErrors = handleGetErrors;
4
+ function handleGetErrors(store, args = {}) {
5
+ let errors = store.getErrors();
6
+ const source = args.source ?? "all";
7
+ if (source !== "all") {
8
+ errors = errors.filter((e) => {
9
+ if (source === "terminal")
10
+ return "severity" in e && "raw" in e;
11
+ if (source === "hermes")
12
+ return "source" in e && e.source === "hermes";
13
+ if (source === "reactotron")
14
+ return "type" in e && !("severity" in e) && !("level" in e);
15
+ return true;
16
+ });
17
+ }
18
+ if (args.filter) {
19
+ const regex = new RegExp(args.filter, "i");
20
+ errors = errors.filter((e) => {
21
+ if ("message" in e)
22
+ return regex.test(e.message);
23
+ if ("name" in e)
24
+ return regex.test(e.name ?? "");
25
+ return regex.test(JSON.stringify(e));
26
+ });
27
+ }
28
+ if (args.last_n) {
29
+ errors = errors.slice(-args.last_n);
30
+ }
31
+ return {
32
+ content: [
33
+ {
34
+ type: "text",
35
+ text: errors.length
36
+ ? errors
37
+ .map((e) => {
38
+ if ("severity" in e && "raw" in e) {
39
+ return `[TERMINAL] [${e.timestamp}] ${e.message}${e.stackTrace ? "\n" + e.stackTrace : ""}`;
40
+ }
41
+ if ("source" in e && e.source === "hermes") {
42
+ return `[HERMES] [${e.timestamp}] [${e.level.toUpperCase()}] ${e.message}${e.stackTrace ? "\n" + e.stackTrace : ""}`;
43
+ }
44
+ return `[REACTOTRON] [${e.timestamp}] [${e.type}] ${e.name ?? ""}\n${JSON.stringify(e.payload, null, 2)}`;
45
+ })
46
+ .join("\n\n---\n\n")
47
+ : "No errors detected.",
48
+ },
49
+ ],
50
+ };
51
+ }
52
+ //# sourceMappingURL=get-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-errors.js","sourceRoot":"","sources":["../../src/tools/get-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleGetHermesLogs(store: LogStore, args: {
3
+ level?: string;
4
+ filter?: string;
5
+ last_n?: number;
6
+ }): {
7
+ content: {
8
+ type: "text";
9
+ text: string;
10
+ }[];
11
+ };
12
+ //# sourceMappingURL=get-hermes-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-hermes-logs.d.ts","sourceRoot":"","sources":["../../src/tools/get-hermes-logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EAmC3D"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetHermesLogs = handleGetHermesLogs;
4
+ function handleGetHermesLogs(store, args) {
5
+ let logs;
6
+ if (args.level && args.level !== "all") {
7
+ logs = store.hermesLogs.filter((l) => l.level === args.level);
8
+ }
9
+ else {
10
+ logs = store.hermesLogs.getAll();
11
+ }
12
+ if (args.filter) {
13
+ const regex = new RegExp(args.filter, "i");
14
+ logs = logs.filter((l) => regex.test(l.message));
15
+ }
16
+ if (args.last_n) {
17
+ logs = logs.slice(-args.last_n);
18
+ }
19
+ return {
20
+ content: [
21
+ {
22
+ type: "text",
23
+ text: logs.length
24
+ ? `### Hermes/JS Logs (${logs.length} entries)\n\n` +
25
+ logs
26
+ .map((l) => `[${l.timestamp}] [${l.level.toUpperCase()}] ${l.message}${l.stackTrace ? "\n" + l.stackTrace : ""}`)
27
+ .join("\n")
28
+ : "No Hermes logs captured. Make sure the app is running with Hermes and Metro debugger is accessible.",
29
+ },
30
+ ],
31
+ };
32
+ }
33
+ //# sourceMappingURL=get-hermes-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-hermes-logs.js","sourceRoot":"","sources":["../../src/tools/get-hermes-logs.ts"],"names":[],"mappings":";;AAGA,kDAqCC;AArCD,SAAgB,mBAAmB,CACjC,KAAe,EACf,IAA0D;IAE1D,IAAI,IAAsB,CAAC;IAE3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACvC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAM,IAAI,CAAC,KAAqB,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,MAAM;oBACf,CAAC,CAAC,uBAAuB,IAAI,CAAC,MAAM,eAAe;wBACjD,IAAI;6BACD,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CACvG;6BACA,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,qGAAqG;aAC1G;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleGetTerminalLogs(store: LogStore, args: {
3
+ filter?: string;
4
+ severity?: string;
5
+ last_n?: number;
6
+ }): {
7
+ content: {
8
+ type: "text";
9
+ text: string;
10
+ }[];
11
+ };
12
+ export declare function handleGetReactotronLogs(store: LogStore, args: {
13
+ type?: string;
14
+ last_n?: number;
15
+ }): {
16
+ content: {
17
+ type: "text";
18
+ text: string;
19
+ }[];
20
+ };
21
+ //# sourceMappingURL=get-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-logs.d.ts","sourceRoot":"","sources":["../../src/tools/get-logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EA+B9D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EAyBzC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetTerminalLogs = handleGetTerminalLogs;
4
+ exports.handleGetReactotronLogs = handleGetReactotronLogs;
5
+ function handleGetTerminalLogs(store, args) {
6
+ let logs = args.last_n
7
+ ? store.terminalLogs.getLast(args.last_n)
8
+ : store.terminalLogs.getAll();
9
+ if (args.severity && args.severity !== "all") {
10
+ const sev = args.severity;
11
+ logs = logs.filter((l) => l.severity === sev);
12
+ }
13
+ if (args.filter) {
14
+ const regex = new RegExp(args.filter, "i");
15
+ logs = logs.filter((l) => regex.test(l.message) || regex.test(l.raw));
16
+ }
17
+ return {
18
+ content: [
19
+ {
20
+ type: "text",
21
+ text: logs.length
22
+ ? logs
23
+ .map((l) => `[${l.timestamp}] [${l.severity.toUpperCase()}] [${l.source}] ${l.message}${l.stackTrace ? "\n" + l.stackTrace : ""}`)
24
+ .join("\n\n")
25
+ : "No terminal logs captured yet.",
26
+ },
27
+ ],
28
+ };
29
+ }
30
+ function handleGetReactotronLogs(store, args) {
31
+ let logs = args.last_n
32
+ ? store.reactotronLogs.getLast(args.last_n)
33
+ : store.reactotronLogs.getAll();
34
+ if (args.type && args.type !== "all") {
35
+ logs = logs.filter((l) => l.type === args.type);
36
+ }
37
+ return {
38
+ content: [
39
+ {
40
+ type: "text",
41
+ text: logs.length
42
+ ? logs
43
+ .map((l) => `[${l.timestamp}] [${l.type}] ${l.name ?? ""}\n${JSON.stringify(l.payload, null, 2)}`)
44
+ .join("\n\n---\n\n")
45
+ : "No Reactotron logs captured yet.",
46
+ },
47
+ ],
48
+ };
49
+ }
50
+ //# sourceMappingURL=get-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-logs.js","sourceRoot":"","sources":["../../src/tools/get-logs.ts"],"names":[],"mappings":";;AAGA,sDAiCC;AAED,0DA2BC;AA9DD,SAAgB,qBAAqB,CACnC,KAAe,EACf,IAA6D;IAE7D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM;QACpB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAEhC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAuB,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,MAAM;oBACf,CAAC,CAAC,IAAI;yBACD,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CACxH;yBACA,IAAI,CAAC,MAAM,CAAC;oBACjB,CAAC,CAAC,gCAAgC;aACrC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CACrC,KAAe,EACf,IAAwC;IAExC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM;QACpB,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3C,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;IAElC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACrC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,MAAM;oBACf,CAAC,CAAC,IAAI;yBACD,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACxF;yBACA,IAAI,CAAC,aAAa,CAAC;oBACxB,CAAC,CAAC,kCAAkC;aACvC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleGetNetworkCalls(store: LogStore, args: {
3
+ url_filter?: string;
4
+ status_code?: number;
5
+ last_n?: number;
6
+ }): {
7
+ content: {
8
+ type: "text";
9
+ text: string;
10
+ }[];
11
+ };
12
+ //# sourceMappingURL=get-network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-network.d.ts","sourceRoot":"","sources":["../../src/tools/get-network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EAmCrE"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetNetworkCalls = handleGetNetworkCalls;
4
+ function handleGetNetworkCalls(store, args) {
5
+ let calls = store.networkCalls.getAll();
6
+ if (args.url_filter) {
7
+ const regex = new RegExp(args.url_filter, "i");
8
+ calls = calls.filter((c) => regex.test(c.url));
9
+ }
10
+ if (args.status_code !== undefined) {
11
+ calls = calls.filter((c) => c.status === args.status_code);
12
+ }
13
+ if (args.last_n) {
14
+ calls = calls.slice(-args.last_n);
15
+ }
16
+ return {
17
+ content: [
18
+ {
19
+ type: "text",
20
+ text: calls.length
21
+ ? `### Network Calls (${calls.length} entries)\n\n` +
22
+ calls
23
+ .map((c) => {
24
+ const status = c.status ? ` → ${c.status}` : " → pending";
25
+ const dur = c.duration !== undefined ? ` (${c.duration}ms)` : "";
26
+ const mime = c.mimeType ? ` [${c.mimeType}]` : "";
27
+ return `[${c.timestamp}] ${c.method} ${c.url}${status}${dur}${mime}`;
28
+ })
29
+ .join("\n")
30
+ : "No network calls captured. Make sure CDP network capture is enabled and the app is running.",
31
+ },
32
+ ],
33
+ };
34
+ }
35
+ //# sourceMappingURL=get-network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-network.js","sourceRoot":"","sources":["../../src/tools/get-network.ts"],"names":[],"mappings":";;AAGA,sDAqCC;AArCD,SAAgB,qBAAqB,CACnC,KAAe,EACf,IAAoE;IAEpE,IAAI,KAAK,GAAmB,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAExD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,KAAK,CAAC,MAAM;oBAChB,CAAC,CAAC,sBAAsB,KAAK,CAAC,MAAM,eAAe;wBACjD,KAAK;6BACF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACT,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;4BAC1D,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjE,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClD,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;wBACvE,CAAC,CAAC;6BACD,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,6FAA6F;aAClG;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleGetPerformance(store: LogStore, args?: {
3
+ last_n?: number;
4
+ }): {
5
+ content: {
6
+ type: "text";
7
+ text: string;
8
+ }[];
9
+ };
10
+ //# sourceMappingURL=get-performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-performance.d.ts","sourceRoot":"","sources":["../../src/tools/get-performance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;EA8B/B"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetPerformance = handleGetPerformance;
4
+ function handleGetPerformance(store, args = {}) {
5
+ let entries = store.performanceEntries.getAll();
6
+ if (args.last_n) {
7
+ entries = entries.slice(-args.last_n);
8
+ }
9
+ return {
10
+ content: [
11
+ {
12
+ type: "text",
13
+ text: entries.length
14
+ ? entries
15
+ .map((e) => {
16
+ let text = `[${e.timestamp}] **${e.title}** — ${e.duration}ms`;
17
+ if (e.steps?.length) {
18
+ text +=
19
+ "\n" +
20
+ e.steps
21
+ .map((s) => ` - ${s.title}: ${s.duration}ms`)
22
+ .join("\n");
23
+ }
24
+ return text;
25
+ })
26
+ .join("\n\n")
27
+ : "No performance data captured yet.",
28
+ },
29
+ ],
30
+ };
31
+ }
32
+ //# sourceMappingURL=get-performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-performance.js","sourceRoot":"","sources":["../../src/tools/get-performance.ts"],"names":[],"mappings":";;AAEA,oDAgCC;AAhCD,SAAgB,oBAAoB,CAClC,KAAe,EACf,OAA4B,EAAE;IAE9B,IAAI,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;IAEhD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,OAAO,CAAC,MAAM;oBAClB,CAAC,CAAC,OAAO;yBACJ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACT,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC;wBAC/D,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;4BACpB,IAAI;gCACF,IAAI;oCACJ,CAAC,CAAC,KAAK;yCACJ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC;yCAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC;yBACD,IAAI,CAAC,MAAM,CAAC;oBACjB,CAAC,CAAC,mCAAmC;aACxC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleGetStateChanges(store: LogStore, args: {
3
+ store_name?: string;
4
+ last_n?: number;
5
+ }): {
6
+ content: {
7
+ type: "text";
8
+ text: string;
9
+ }[];
10
+ };
11
+ //# sourceMappingURL=get-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-state.d.ts","sourceRoot":"","sources":["../../src/tools/get-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EA4B/C"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetStateChanges = handleGetStateChanges;
4
+ function handleGetStateChanges(store, args) {
5
+ let changes = store.stateChanges.getAll();
6
+ if (args.store_name) {
7
+ const regex = new RegExp(args.store_name, "i");
8
+ changes = changes.filter((c) => regex.test(c.store) || regex.test(c.action));
9
+ }
10
+ if (args.last_n) {
11
+ changes = changes.slice(-args.last_n);
12
+ }
13
+ return {
14
+ content: [
15
+ {
16
+ type: "text",
17
+ text: changes.length
18
+ ? changes
19
+ .map((c) => `[${c.timestamp}] [${c.store}] Action: ${c.action}${c.path ? ` | Path: ${c.path}` : ""}\nBefore: ${JSON.stringify(c.before, null, 2)}\nAfter: ${JSON.stringify(c.after, null, 2)}`)
20
+ .join("\n\n---\n\n")
21
+ : "No state changes captured yet.",
22
+ },
23
+ ],
24
+ };
25
+ }
26
+ //# sourceMappingURL=get-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-state.js","sourceRoot":"","sources":["../../src/tools/get-state.ts"],"names":[],"mappings":";;AAEA,sDA8BC;AA9BD,SAAgB,qBAAqB,CACnC,KAAe,EACf,IAA8C;IAE9C,IAAI,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAE1C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,OAAO,CAAC,MAAM;oBAClB,CAAC,CAAC,OAAO;yBACJ,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACrL;yBACA,IAAI,CAAC,aAAa,CAAC;oBACxB,CAAC,CAAC,gCAAgC;aACrC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ import { TerminalMonitor } from "../monitors/terminal.js";
3
+ import { ReactotronMonitor } from "../monitors/reactotron.js";
4
+ import { HermesMonitor } from "../monitors/hermes.js";
5
+ import { IOSCrashMonitor } from "../monitors/crash-ios.js";
6
+ import { AndroidCrashMonitor } from "../monitors/crash-android.js";
7
+ export interface StatusMonitors {
8
+ terminalMonitor: TerminalMonitor;
9
+ reactotronMonitor: ReactotronMonitor;
10
+ hermesMonitor: HermesMonitor | null;
11
+ iosCrashMonitor: IOSCrashMonitor | null;
12
+ androidCrashMonitor: AndroidCrashMonitor | null;
13
+ }
14
+ export declare function handleGetStatus(store: LogStore, monitors: StatusMonitors, startTime: number): {
15
+ content: {
16
+ type: "text";
17
+ text: string;
18
+ }[];
19
+ };
20
+ //# sourceMappingURL=get-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-status.d.ts","sourceRoot":"","sources":["../../src/tools/get-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACjD;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM;;;;;EAsDlB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGetStatus = handleGetStatus;
4
+ function handleGetStatus(store, monitors, startTime) {
5
+ const errorCount = store.terminalLogs.filter((l) => l.severity === "error").length;
6
+ const warningCount = store.terminalLogs.filter((l) => l.severity === "warn").length;
7
+ const status = {
8
+ metroRunning: monitors.terminalMonitor.isRunning,
9
+ reactotronConnected: monitors.reactotronMonitor.isConnected,
10
+ hermesConnected: monitors.hermesMonitor?.isConnected ?? false,
11
+ detectedProcess: monitors.terminalMonitor.processName,
12
+ errorCount,
13
+ warningCount,
14
+ lastCrash: store.getLastCrash(),
15
+ uptime: Math.floor((Date.now() - startTime) / 1000),
16
+ terminalLogCount: store.terminalLogs.count(),
17
+ reactotronLogCount: store.reactotronLogs.count(),
18
+ hermesLogCount: store.hermesLogs.count(),
19
+ networkCallCount: store.networkCalls.count(),
20
+ crashCount: store.crashLogs.count(),
21
+ iosCrashMonitorActive: monitors.iosCrashMonitor?.isActive ?? false,
22
+ androidCrashMonitorActive: monitors.androidCrashMonitor?.isActive ?? false,
23
+ };
24
+ return {
25
+ content: [
26
+ {
27
+ type: "text",
28
+ text: [
29
+ `## RN Dev Companion Status`,
30
+ ``,
31
+ `- **Metro/Expo running:** ${status.metroRunning ? `Yes (${status.detectedProcess})` : "No"}`,
32
+ `- **Reactotron connected:** ${status.reactotronConnected ? "Yes" : "No"}`,
33
+ `- **Hermes/CDP connected:** ${status.hermesConnected ? "Yes" : "No"}`,
34
+ `- **Errors:** ${status.errorCount}`,
35
+ `- **Warnings:** ${status.warningCount}`,
36
+ `- **Terminal logs:** ${status.terminalLogCount}`,
37
+ `- **Reactotron logs:** ${status.reactotronLogCount}`,
38
+ `- **Hermes logs:** ${status.hermesLogCount}`,
39
+ `- **Network calls:** ${status.networkCallCount}`,
40
+ `- **Native crashes:** ${status.crashCount}`,
41
+ `- **iOS crash monitor:** ${status.iosCrashMonitorActive ? "Active" : "Inactive"}`,
42
+ `- **Android crash monitor:** ${status.androidCrashMonitorActive ? "Active" : "Inactive"}`,
43
+ `- **Uptime:** ${status.uptime}s`,
44
+ status.lastCrash
45
+ ? `- **Last crash:** [${status.lastCrash.timestamp}] ${"message" in status.lastCrash ? status.lastCrash.message : status.lastCrash.crashReason}`
46
+ : `- **Last crash:** None`,
47
+ ].join("\n"),
48
+ },
49
+ ],
50
+ };
51
+ }
52
+ //# sourceMappingURL=get-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-status.js","sourceRoot":"","sources":["../../src/tools/get-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { LogStore } from "../storage/log-store.js";
2
+ export declare function handleSearchLogs(store: LogStore, args: {
3
+ query: string;
4
+ last_n?: number;
5
+ }): {
6
+ content: {
7
+ type: "text";
8
+ text: string;
9
+ }[];
10
+ };
11
+ //# sourceMappingURL=search-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-logs.d.ts","sourceRoot":"","sources":["../../src/tools/search-logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EAiGzC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleSearchLogs = handleSearchLogs;
4
+ function handleSearchLogs(store, args) {
5
+ const results = store.searchAll(args.query);
6
+ const totalResults = results.terminal.length +
7
+ results.reactotron.length +
8
+ results.hermes.length +
9
+ results.network.length +
10
+ results.crashes.length;
11
+ const sections = [];
12
+ if (results.terminal.length > 0) {
13
+ const items = args.last_n
14
+ ? results.terminal.slice(-args.last_n)
15
+ : results.terminal;
16
+ sections.push(`### Terminal Logs (${results.terminal.length} matches)\n\n` +
17
+ items
18
+ .map((l) => `[${l.timestamp}] [${l.severity.toUpperCase()}] ${l.message}`)
19
+ .join("\n"));
20
+ }
21
+ if (results.reactotron.length > 0) {
22
+ const items = args.last_n
23
+ ? results.reactotron.slice(-args.last_n)
24
+ : results.reactotron;
25
+ sections.push(`### Reactotron Logs (${results.reactotron.length} matches)\n\n` +
26
+ items
27
+ .map((l) => `[${l.timestamp}] [${l.type}] ${l.name ?? ""} — ${JSON.stringify(l.payload)}`)
28
+ .join("\n"));
29
+ }
30
+ if (results.hermes.length > 0) {
31
+ const items = args.last_n
32
+ ? results.hermes.slice(-args.last_n)
33
+ : results.hermes;
34
+ sections.push(`### Hermes/JS Logs (${results.hermes.length} matches)\n\n` +
35
+ items
36
+ .map((l) => `[${l.timestamp}] [${l.level.toUpperCase()}] ${l.message}`)
37
+ .join("\n"));
38
+ }
39
+ if (results.network.length > 0) {
40
+ const items = args.last_n
41
+ ? results.network.slice(-args.last_n)
42
+ : results.network;
43
+ sections.push(`### Network Calls (${results.network.length} matches)\n\n` +
44
+ items
45
+ .map((l) => `[${l.timestamp}] ${l.method} ${l.url} → ${l.status ?? "pending"}`)
46
+ .join("\n"));
47
+ }
48
+ if (results.crashes.length > 0) {
49
+ const items = args.last_n
50
+ ? results.crashes.slice(-args.last_n)
51
+ : results.crashes;
52
+ sections.push(`### Native Crashes (${results.crashes.length} matches)\n\n` +
53
+ items
54
+ .map((l) => `[${l.timestamp}] [${l.platform.toUpperCase()}] ${l.processName}: ${l.crashReason}`)
55
+ .join("\n"));
56
+ }
57
+ return {
58
+ content: [
59
+ {
60
+ type: "text",
61
+ text: totalResults
62
+ ? `Found ${totalResults} results for "${args.query}":\n\n${sections.join("\n\n---\n\n")}`
63
+ : `No results found for "${args.query}".`,
64
+ },
65
+ ],
66
+ };
67
+ }
68
+ //# sourceMappingURL=search-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-logs.js","sourceRoot":"","sources":["../../src/tools/search-logs.ts"],"names":[],"mappings":"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"}