execbro 1.10.25 → 1.11.1

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 (135) hide show
  1. package/README.md +1 -1
  2. package/build/__tests__/integration/native-logs.test.d.ts +2 -0
  3. package/build/__tests__/integration/native-logs.test.d.ts.map +1 -0
  4. package/build/__tests__/integration/native-logs.test.js +39 -0
  5. package/build/__tests__/integration/native-logs.test.js.map +1 -0
  6. package/build/__tests__/unit/clearLogsNative.test.d.ts +2 -0
  7. package/build/__tests__/unit/clearLogsNative.test.d.ts.map +1 -0
  8. package/build/__tests__/unit/clearLogsNative.test.js +43 -0
  9. package/build/__tests__/unit/clearLogsNative.test.js.map +1 -0
  10. package/build/__tests__/unit/componentFormatNaming.test.d.ts +2 -0
  11. package/build/__tests__/unit/componentFormatNaming.test.d.ts.map +1 -0
  12. package/build/__tests__/unit/componentFormatNaming.test.js +32 -0
  13. package/build/__tests__/unit/componentFormatNaming.test.js.map +1 -0
  14. package/build/__tests__/unit/getLogsEmptyContract.test.js +20 -7
  15. package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -1
  16. package/build/__tests__/unit/getLogsNativeSource.test.d.ts +2 -0
  17. package/build/__tests__/unit/getLogsNativeSource.test.d.ts.map +1 -0
  18. package/build/__tests__/unit/getLogsNativeSource.test.js +138 -0
  19. package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -0
  20. package/build/__tests__/unit/jsLogEvents.test.d.ts +2 -0
  21. package/build/__tests__/unit/jsLogEvents.test.d.ts.map +1 -0
  22. package/build/__tests__/unit/jsLogEvents.test.js +58 -0
  23. package/build/__tests__/unit/jsLogEvents.test.js.map +1 -0
  24. package/build/__tests__/unit/logEventFormat.test.d.ts +2 -0
  25. package/build/__tests__/unit/logEventFormat.test.d.ts.map +1 -0
  26. package/build/__tests__/unit/logEventFormat.test.js +210 -0
  27. package/build/__tests__/unit/logEventFormat.test.js.map +1 -0
  28. package/build/__tests__/unit/logEvents.test.d.ts +2 -0
  29. package/build/__tests__/unit/logEvents.test.d.ts.map +1 -0
  30. package/build/__tests__/unit/logEvents.test.js +118 -0
  31. package/build/__tests__/unit/logEvents.test.js.map +1 -0
  32. package/build/__tests__/unit/logGrouping.test.d.ts +2 -0
  33. package/build/__tests__/unit/logGrouping.test.d.ts.map +1 -0
  34. package/build/__tests__/unit/logGrouping.test.js +104 -0
  35. package/build/__tests__/unit/logGrouping.test.js.map +1 -0
  36. package/build/__tests__/unit/logOwnership.test.d.ts +2 -0
  37. package/build/__tests__/unit/logOwnership.test.d.ts.map +1 -0
  38. package/build/__tests__/unit/logOwnership.test.js +118 -0
  39. package/build/__tests__/unit/logOwnership.test.js.map +1 -0
  40. package/build/__tests__/unit/logRelevance.test.d.ts +2 -0
  41. package/build/__tests__/unit/logRelevance.test.d.ts.map +1 -0
  42. package/build/__tests__/unit/logRelevance.test.js +30 -0
  43. package/build/__tests__/unit/logRelevance.test.js.map +1 -0
  44. package/build/__tests__/unit/logSourceAndroid.test.d.ts +2 -0
  45. package/build/__tests__/unit/logSourceAndroid.test.d.ts.map +1 -0
  46. package/build/__tests__/unit/logSourceAndroid.test.js +61 -0
  47. package/build/__tests__/unit/logSourceAndroid.test.js.map +1 -0
  48. package/build/__tests__/unit/logSourceIos.test.d.ts +2 -0
  49. package/build/__tests__/unit/logSourceIos.test.d.ts.map +1 -0
  50. package/build/__tests__/unit/logSourceIos.test.js +64 -0
  51. package/build/__tests__/unit/logSourceIos.test.js.map +1 -0
  52. package/build/__tests__/unit/logs.test.js +23 -0
  53. package/build/__tests__/unit/logs.test.js.map +1 -1
  54. package/build/__tests__/unit/nativeLogs.test.d.ts +2 -0
  55. package/build/__tests__/unit/nativeLogs.test.d.ts.map +1 -0
  56. package/build/__tests__/unit/nativeLogs.test.js +230 -0
  57. package/build/__tests__/unit/nativeLogs.test.js.map +1 -0
  58. package/build/__tests__/unit/toolsJson.test.js +11 -0
  59. package/build/__tests__/unit/toolsJson.test.js.map +1 -1
  60. package/build/core/componentSearch.d.ts +1 -1
  61. package/build/core/componentSearch.d.ts.map +1 -1
  62. package/build/core/componentSearch.js +8 -8
  63. package/build/core/componentSearch.js.map +1 -1
  64. package/build/core/componentTree.d.ts +1 -1
  65. package/build/core/componentTree.d.ts.map +1 -1
  66. package/build/core/componentTree.js +8 -8
  67. package/build/core/componentTree.js.map +1 -1
  68. package/build/core/guides.d.ts.map +1 -1
  69. package/build/core/guides.js +25 -0
  70. package/build/core/guides.js.map +1 -1
  71. package/build/core/index.d.ts +0 -2
  72. package/build/core/index.d.ts.map +1 -1
  73. package/build/core/index.js +0 -2
  74. package/build/core/index.js.map +1 -1
  75. package/build/core/jsLogEvents.d.ts +13 -0
  76. package/build/core/jsLogEvents.d.ts.map +1 -0
  77. package/build/core/jsLogEvents.js +65 -0
  78. package/build/core/jsLogEvents.js.map +1 -0
  79. package/build/core/logEventFormat.d.ts +14 -0
  80. package/build/core/logEventFormat.d.ts.map +1 -0
  81. package/build/core/logEventFormat.js +85 -0
  82. package/build/core/logEventFormat.js.map +1 -0
  83. package/build/core/logEvents.d.ts +115 -0
  84. package/build/core/logEvents.d.ts.map +1 -0
  85. package/build/core/logEvents.js +146 -0
  86. package/build/core/logEvents.js.map +1 -0
  87. package/build/core/logGrouping.d.ts +17 -0
  88. package/build/core/logGrouping.d.ts.map +1 -0
  89. package/build/core/logGrouping.js +134 -0
  90. package/build/core/logGrouping.js.map +1 -0
  91. package/build/core/logOwnership.d.ts +29 -0
  92. package/build/core/logOwnership.d.ts.map +1 -0
  93. package/build/core/logOwnership.js +83 -0
  94. package/build/core/logOwnership.js.map +1 -0
  95. package/build/core/logRelevance.d.ts +13 -0
  96. package/build/core/logRelevance.d.ts.map +1 -0
  97. package/build/core/logRelevance.js +23 -0
  98. package/build/core/logRelevance.js.map +1 -0
  99. package/build/core/logSourceAndroid.d.ts +27 -0
  100. package/build/core/logSourceAndroid.d.ts.map +1 -0
  101. package/build/core/logSourceAndroid.js +89 -0
  102. package/build/core/logSourceAndroid.js.map +1 -0
  103. package/build/core/logSourceIos.d.ts +26 -0
  104. package/build/core/logSourceIos.d.ts.map +1 -0
  105. package/build/core/logSourceIos.js +119 -0
  106. package/build/core/logSourceIos.js.map +1 -0
  107. package/build/core/logs.d.ts +5 -1
  108. package/build/core/logs.d.ts.map +1 -1
  109. package/build/core/logs.js +8 -1
  110. package/build/core/logs.js.map +1 -1
  111. package/build/core/nativeLogs.d.ts +75 -0
  112. package/build/core/nativeLogs.d.ts.map +1 -0
  113. package/build/core/nativeLogs.js +260 -0
  114. package/build/core/nativeLogs.js.map +1 -0
  115. package/build/core/screenLayout.d.ts +1 -1
  116. package/build/core/screenLayout.d.ts.map +1 -1
  117. package/build/core/screenLayout.js +3 -3
  118. package/build/core/screenLayout.js.map +1 -1
  119. package/build/core/types.d.ts +3 -2
  120. package/build/core/types.d.ts.map +1 -1
  121. package/build/tools/componentTools.js +6 -6
  122. package/build/tools/componentTools.js.map +1 -1
  123. package/build/tools/logTools.d.ts +25 -0
  124. package/build/tools/logTools.d.ts.map +1 -1
  125. package/build/tools/logTools.js +246 -70
  126. package/build/tools/logTools.js.map +1 -1
  127. package/build/tools/networkTools.d.ts.map +1 -1
  128. package/build/tools/networkTools.js +5 -44
  129. package/build/tools/networkTools.js.map +1 -1
  130. package/package.json +6 -4
  131. package/tools.json +447 -0
  132. package/build/core/format.d.ts +0 -8
  133. package/build/core/format.d.ts.map +0 -1
  134. package/build/core/format.js +0 -34
  135. package/build/core/format.js.map +0 -1
@@ -4,7 +4,7 @@ export declare function getComponentTree(options?: {
4
4
  includeProps?: boolean;
5
5
  includeStyles?: boolean;
6
6
  hideInternals?: boolean;
7
- format?: "json" | "tonl";
7
+ format?: "json" | "compact";
8
8
  structureOnly?: boolean;
9
9
  focusedOnly?: boolean;
10
10
  device?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"componentTree.d.ts","sourceRoot":"","sources":["../../src/core/componentTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA6DlD,wBAAsB,gBAAgB,CAClC,OAAO,GAAE;IACL,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACjB,GACP,OAAO,CAAC,eAAe,CAAC,CA8P1B"}
1
+ {"version":3,"file":"componentTree.d.ts","sourceRoot":"","sources":["../../src/core/componentTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA6DlD,wBAAsB,gBAAgB,CAClC,OAAO,GAAE;IACL,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACjB,GACP,OAAO,CAAC,eAAe,CAAC,CA8P1B"}
@@ -1,6 +1,6 @@
1
1
  import { executeInApp } from "./jsExecute.js";
2
2
  import { VISIBILITY_HELPERS_JS } from "./injected/visibility.js";
3
- function formatTreeToTonl(node, indent = 0) {
3
+ function formatTreeCompact(node, indent = 0) {
4
4
  const prefix = " ".repeat(indent);
5
5
  let result = `${prefix}${node.component}`;
6
6
  // Add props inline if present
@@ -21,7 +21,7 @@ function formatTreeToTonl(node, indent = 0) {
21
21
  // Recurse children
22
22
  if (node.children && node.children.length > 0) {
23
23
  for (const child of node.children) {
24
- result += formatTreeToTonl(child, indent + 1);
24
+ result += formatTreeCompact(child, indent + 1);
25
25
  }
26
26
  }
27
27
  return result;
@@ -38,9 +38,9 @@ function formatTreeStructureOnly(node, indent = 0) {
38
38
  return result;
39
39
  }
40
40
  export async function getComponentTree(options = {}) {
41
- const { includeProps = false, includeStyles = false, hideInternals = true, format = "tonl", structureOnly = false, focusedOnly = false, device, timeoutMs } = options;
41
+ const { includeProps = false, includeStyles = false, hideInternals = true, format = "compact", structureOnly = false, focusedOnly = false, device, timeoutMs } = options;
42
42
  // Use lower default depth for structureOnly to keep output compact (~2-5KB)
43
- // Full mode uses higher depth since TONL format handles it better
43
+ // Full mode uses higher depth since compact format handles it better
44
44
  // focusedOnly mode uses moderate depth since we're already filtering to active screen
45
45
  const maxDepth = options.maxDepth ?? 5000;
46
46
  const expression = `
@@ -266,10 +266,10 @@ export async function getComponentTree(options = {}) {
266
266
  const structure = formatTreeStructureOnly(parsed.tree);
267
267
  return { success: true, result: prefix + structure };
268
268
  }
269
- // TONL format: compact with props/layout
270
- if (format === "tonl") {
271
- const tonl = formatTreeToTonl(parsed.tree);
272
- return { success: true, result: prefix + tonl };
269
+ // Compact format: indented tree with props/layout
270
+ if (format === "compact") {
271
+ const compact = formatTreeCompact(parsed.tree);
272
+ return { success: true, result: prefix + compact };
273
273
  }
274
274
  }
275
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"componentTree.js","sourceRoot":"","sources":["../../src/core/componentTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentTree.js","sourceRoot":"","sources":["../../src/core/componentTree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAajE,SAAS,iBAAiB,CAAC,IAAuB,EAAE,MAAM,GAAG,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAE1C,8BAA8B;IAC9B,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,IAAI,KAAK,QAAQ,GAAG,CAAC;IAC/B,CAAC;IAED,+BAA+B;IAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,IAAI,KAAK,SAAS,GAAG,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,IAAI,CAAC;IAEf,mBAAmB;IACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,SAAS,uBAAuB,CAAC,IAAuB,EAAE,MAAM,GAAG,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC;IAE5C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,UAUI,EAAE;IAEN,MAAM,EACF,YAAY,GAAG,KAAK,EACpB,aAAa,GAAG,KAAK,EACrB,aAAa,GAAG,IAAI,EACpB,MAAM,GAAG,SAAS,EAClB,aAAa,GAAG,KAAK,EACrB,WAAW,GAAG,KAAK,EACnB,MAAM,EACN,SAAS,EACZ,GAAG,OAAO,CAAC;IACZ,4EAA4E;IAC5E,qEAAqE;IACrE,sFAAsF;IACtF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAE1C,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;+BAsBQ,QAAQ;mCACJ,YAAY;oCACX,aAAa;oCACb,aAAa;kCACf,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4B/B,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2J9B,CAAC;IAEF,gFAAgF;IAChF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,EAAE,MAAM,CAAC,CAAC;IAE3I,gCAAgC;IAChC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,aAAa,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAElF,sEAAsE;gBACtE,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;gBACzD,CAAC;gBACD,kDAAkD;gBAClD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;gBACvD,CAAC;YACL,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,2CAA2C;QAC/C,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"guides.d.ts","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AA4YD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAehB,CAAC;AAEb,wBAAgB,gBAAgB,IAAI,MAAM,CAWzC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
1
+ {"version":3,"file":"guides.d.ts","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AAqaD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAehB,CAAC;AAEb,wBAAgB,gBAAgB,IAAI,MAAM,CAWzC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
@@ -199,6 +199,31 @@ tap(text=...) skips fiber for non-ASCII (Hermes limitation) and uses accessibili
199
199
  - search_logs: text search across all captured logs
200
200
  - clear_logs: reset the log buffer
201
201
 
202
+ ## NATIVE LOGS (crashes the JS console cannot see)
203
+
204
+ get_logs(source="native") reads Android logcat / iOS os_log, filtered to your
205
+ app, and returns one row per EVENT rather than per line — a 60-line backtrace
206
+ collapses to a single row.
207
+
208
+ get_logs(source="native") recent native events (>= warn)
209
+ get_logs(source="native", kind="crash") crashes and nothing else
210
+ get_log_details(id="n7") the full backtrace for one event
211
+ get_logs(source="all") native + JS merged
212
+
213
+ WHEN NATIVE BEATS JS: if the app dies before JS runs — a missing .so, a JNI
214
+ abort, a Java exception in MainApplication — CDP never connects and get_logs()
215
+ returns nothing. The crash is in the native log the whole time. You do not
216
+ normally need to ask: when the JS buffer is empty and the app is disconnected,
217
+ get_logs() consults native crash events automatically.
218
+
219
+ COST: native reads shell out to the device (~1-1.5s per device), so source="js"
220
+ stays the default. minLevel defaults to "warn"; crashes and ANRs are returned
221
+ regardless of it.
222
+
223
+ LIMITS: iOS Simulator and Android emulator/device only (physical iOS devices are not
224
+ supported). Event ids stay valid until that device's buffer rolls over or clear_logs
225
+ runs — if get_log_details reports an unknown id, call get_logs again to refresh them.
226
+
202
227
  ## Tips
203
228
  - Always start with summary=true to avoid token overload
204
229
  - Use verbose=true with low maxLogs for full error details
@@ -1 +1 @@
1
- {"version":3,"file":"guides.js","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,MAAM,GAAY;IACpB;QACI,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA8B8B;KAC1C;IACD;QACI,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,mFAAmF;QAC5F,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iIAsCgH;KAC5H;IACD;QACI,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FA4ByE;KACrF;IACD;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAyDwB;KACpC;IACD;QACI,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,8DAA8D;QACvE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;yHAmBwG;KACpH;IACD;QACI,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,oEAAoE;QAC7E,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FAuCyE;KACrF;IACD;QACI,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEA6BiD;KAC7D;IACD;QACI,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,oEAAoE;QAC7E,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;6DAwB4C;KACxD;IACD;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA+B8C;KAC1D;IACD;QACI,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,0CAA0C;QACjD,OAAO,EAAE,yFAAyF;QAClG,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mJAoCkI;KAC9I;CACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAW;IACjC,yIAAyI;IACzI,2PAA2P;IAC3P,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,2DAA2D;IAC3D,yHAAyH;IACzH,oFAAoF;IACpF,oGAAoG;IACpG,mFAAmF;IACnF,qGAAqG;IACrG,+EAA+E;IAC/E,oFAAoF;IACpF,kFAAkF;CACrF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,UAAU,gBAAgB;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO;;EAET,aAAa;;;;EAIb,SAAS;;gEAEqD,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"guides.js","sourceRoot":"","sources":["../../src/core/guides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,MAAM,GAAY;IACpB;QACI,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA8B8B;KAC1C;IACD;QACI,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,mFAAmF;QAC5F,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iIAsCgH;KAC5H;IACD;QACI,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FA4ByE;KACrF;IACD;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAyDwB;KACpC;IACD;QACI,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,8DAA8D;QACvE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yHA4CwG;KACpH;IACD;QACI,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,oEAAoE;QAC7E,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FAuCyE;KACrF;IACD;QACI,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEA6BiD;KAC7D;IACD;QACI,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,oEAAoE;QAC7E,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;6DAwB4C;KACxD;IACD;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA+B8C;KAC1D;IACD;QACI,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,0CAA0C;QACjD,OAAO,EAAE,yFAAyF;QAClG,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mJAoCkI;KAC9I;CACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAW;IACjC,yIAAyI;IACzI,2PAA2P;IAC3P,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,2DAA2D;IAC3D,yHAAyH;IACzH,oFAAoF;IACpF,oGAAoG;IACpG,mFAAmF;IACnF,qGAAqG;IACrG,+EAA+E;IAC/E,oFAAoF;IACpF,kFAAkF;CACrF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,UAAU,gBAAgB;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO;;EAET,aAAa;;;;EAIb,SAAS;;gEAEqD,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC"}
@@ -31,8 +31,6 @@ export type { ParsedErrorScreen } from "./errorScreenParser.js";
31
31
  export { detectLogBox, dismissLogBox, formatLogBoxWarning, formatDismissedEntries, pushLogBox, addLogBoxIgnorePatterns, notifyDriverMissing, getLastLogBoxError, } from "./logbox.js";
32
32
  export type { LogBoxState, LogBoxEntry, LogBoxDismissResult, } from "./logbox.js";
33
33
  export { shouldShowFeedbackHint, markFeedbackHintShown, formatIssueBody, buildGitHubUrl, } from "./feedback.js";
34
- export { formatLogsAsTonl, formatNetworkAsTonl } from "./format.js";
35
- export type { OutputFormat } from "./format.js";
36
34
  export { measureComponent } from "./measureComponentTools.js";
37
35
  export type { MeasureBounds, MeasureOutcome, MeasureToolResult } from "./measureComponentTools.js";
38
36
  export { formatScreenStateSummary } from "./screenState.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -60,8 +60,6 @@ export { parseErrorScreenText, formatParsedError, } from "./errorScreenParser.js
60
60
  export { detectLogBox, dismissLogBox, formatLogBoxWarning, formatDismissedEntries, pushLogBox, addLogBoxIgnorePatterns, notifyDriverMissing, getLastLogBoxError, } from "./logbox.js";
61
61
  // Feedback
62
62
  export { shouldShowFeedbackHint, markFeedbackHintShown, formatIssueBody, buildGitHubUrl, } from "./feedback.js";
63
- // Format utilities (TONL)
64
- export { formatLogsAsTonl, formatNetworkAsTonl } from "./format.js";
65
63
  // Measure (component on-screen geometry)
66
64
  export { measureComponent } from "./measureComponentTools.js";
67
65
  // Screen State
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { LogEntry } from "./types.js";
2
+ import type { LogEvent } from "./logEvents.js";
3
+ /**
4
+ * Derive events from console entries at READ time.
5
+ *
6
+ * The CDP ingest path is deliberately untouched — rewriting the hot path every
7
+ * user depends on, just to gain grouping, would be far riskier than deriving
8
+ * on read. `seq` (assigned in LogBuffer.add) is what keeps ids stable.
9
+ */
10
+ export declare function jsEventsFromEntries(entries: LogEntry[], deviceName: string): LogEvent[];
11
+ /** Scan every device buffer for the entry whose seq matches the id. */
12
+ export declare function findJsEvent(id: string): LogEvent | undefined;
13
+ //# sourceMappingURL=jsLogEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsLogEvents.d.ts","sourceRoot":"","sources":["../../src/core/jsLogEvents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAyB,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAoBlF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE,CA0BvF;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAS5D"}
@@ -0,0 +1,65 @@
1
+ import { createHash } from "node:crypto";
2
+ import { logBuffers } from "./state.js";
3
+ import { registerJsEventResolver } from "./logEvents.js";
4
+ const JS_FRAME = /^\s+at\s/;
5
+ const TITLE_MAX = 160;
6
+ function classify(entry) {
7
+ const lines = entry.message.split("\n");
8
+ const frames = lines.filter((l) => JS_FRAME.test(l)).length;
9
+ const isError = entry.level === "error" || entry.level === "fatal";
10
+ return { kind: isError && frames > 0 ? "exception" : "message", frames };
11
+ }
12
+ function titleFor(entry, frames) {
13
+ const head = entry.message.split("\n")[0];
14
+ const clipped = head.length > TITLE_MAX ? `${head.slice(0, TITLE_MAX)}…` : head;
15
+ return frames > 0 ? `${clipped} (${frames} frames)` : clipped;
16
+ }
17
+ /**
18
+ * Derive events from console entries at READ time.
19
+ *
20
+ * The CDP ingest path is deliberately untouched — rewriting the hot path every
21
+ * user depends on, just to gain grouping, would be far riskier than deriving
22
+ * on read. `seq` (assigned in LogBuffer.add) is what keeps ids stable.
23
+ */
24
+ export function jsEventsFromEntries(entries, deviceName) {
25
+ return entries.map((entry) => {
26
+ const { kind, frames } = classify(entry);
27
+ const line = {
28
+ ts: entry.timestamp,
29
+ level: entry.level,
30
+ pid: 0,
31
+ tag: "console",
32
+ message: entry.message,
33
+ raw: entry.message,
34
+ };
35
+ return {
36
+ id: `j${entry.seq}`,
37
+ source: "js",
38
+ deviceKey: deviceName,
39
+ deviceName,
40
+ ts: entry.timestamp,
41
+ level: entry.level,
42
+ kind,
43
+ title: titleFor(entry, frames),
44
+ lineCount: 1,
45
+ byteSize: entry.message.length,
46
+ fingerprint: createHash("sha1").update(`js|${entry.seq}`).digest("hex"),
47
+ lines: [line],
48
+ };
49
+ });
50
+ }
51
+ /** Scan every device buffer for the entry whose seq matches the id. */
52
+ export function findJsEvent(id) {
53
+ const digits = id.slice(1);
54
+ if (!/^\d+$/.test(digits))
55
+ return undefined;
56
+ const seq = Number(digits);
57
+ for (const [deviceName, buffer] of logBuffers.entries()) {
58
+ const hit = buffer.getAll().find((e) => e.seq === seq);
59
+ if (hit)
60
+ return jsEventsFromEntries([hit], deviceName)[0];
61
+ }
62
+ return undefined;
63
+ }
64
+ registerJsEventResolver(findJsEvent);
65
+ //# sourceMappingURL=jsLogEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsLogEvents.js","sourceRoot":"","sources":["../../src/core/jsLogEvents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { LogEvent } from "./logEvents.js";
2
+ export interface RowOptions {
3
+ showDevice: boolean;
4
+ /** Truncation budget for message-kind rows. 0 or verbose disables it. */
5
+ maxLength?: number;
6
+ verbose?: boolean;
7
+ }
8
+ export declare function formatEventRow(event: LogEvent, opts: RowOptions): string;
9
+ export declare function formatEventList(events: LogEvent[], opts: RowOptions): string;
10
+ export declare function formatEventDetails(event: LogEvent, opts: {
11
+ maxLength: number;
12
+ verbose: boolean;
13
+ }): string;
14
+ //# sourceMappingURL=logEventFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logEventFormat.d.ts","sourceRoot":"","sources":["../../src/core/logEventFormat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAoBxE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAG5E;AAED,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC9C,MAAM,CA0BR"}
@@ -0,0 +1,85 @@
1
+ /** Only worth showing when the payload is big enough to matter. */
2
+ const SIZE_HINT_THRESHOLD = 4096;
3
+ function sizeHint(bytes) {
4
+ if (bytes < SIZE_HINT_THRESHOLD)
5
+ return "";
6
+ return ` [${(bytes / 1024).toFixed(1)} KB]`;
7
+ }
8
+ function frameHint(event) {
9
+ // The title already carries "(N frames)" for crashes it recognized.
10
+ if (event.lineCount <= 1 || /\(\d+ frames\)/.test(event.title))
11
+ return "";
12
+ return ` (${event.lineCount} lines)`;
13
+ }
14
+ /**
15
+ * A message event carries no summary worth substituting for its content — it
16
+ * IS the content. Truncating it to a title would silently break get_logs'
17
+ * documented verbose / maxMessageLength contract, which promises full
18
+ * messages on request.
19
+ */
20
+ function messageBody(event, opts) {
21
+ // `message`, not `raw`: raw carries the logcat epoch/pid/tid/priority/tag
22
+ // prefix, all of which the row already renders as its own columns. `raw`
23
+ // belongs in the detail view (formatEventDetails), where byte-fidelity is
24
+ // the point.
25
+ const body = event.lines.map((l) => l.message).join("\n");
26
+ const budget = opts.maxLength ?? 500;
27
+ return opts.verbose || budget <= 0 || body.length <= budget
28
+ ? body
29
+ : `${body.slice(0, budget)}... [truncated: ${body.length} chars]`;
30
+ }
31
+ export function formatEventRow(event, opts) {
32
+ const time = event.ts.toLocaleTimeString();
33
+ const cols = [`[${event.id}]`, time, event.level.toUpperCase()];
34
+ if (opts.showDevice)
35
+ cols.push(event.deviceName);
36
+ if (event.owner)
37
+ cols.push(event.owner);
38
+ // Compactness matters for crashes/ANRs/exceptions — they keep the
39
+ // one-line title, and get_log_details exists to expand them. Fidelity
40
+ // matters for plain messages, which have no separate summary.
41
+ //
42
+ // Under verbose, a JS event must render its real payload: `exception`
43
+ // events carry the stack an agent asked for, and titleFor() would drop it.
44
+ // Native crash rows stay compact even here — get_log_details is their
45
+ // documented expansion path, and one verbose call should not dump every
46
+ // backtrace on the device.
47
+ const rendersBody = event.kind === "message" || (opts.verbose === true && event.source === "js");
48
+ const text = rendersBody
49
+ ? messageBody(event, opts)
50
+ : event.title + frameHint(event) + sizeHint(event.byteSize);
51
+ cols.push(text);
52
+ return cols.join(" ");
53
+ }
54
+ export function formatEventList(events, opts) {
55
+ if (events.length === 0)
56
+ return "No log events.";
57
+ return events.map((e) => formatEventRow(e, opts)).join("\n");
58
+ }
59
+ export function formatEventDetails(event, opts) {
60
+ const headerLines = [
61
+ `=== ${event.id} — ${event.kind.toUpperCase()} ===`,
62
+ `Device: ${event.deviceName} (${event.deviceKey})`,
63
+ `Time: ${event.ts.toISOString()}`,
64
+ `Level: ${event.level.toUpperCase()}`,
65
+ event.owner ? `Owner: ${event.owner}` : undefined,
66
+ `Lines: ${event.lineCount}`,
67
+ "",
68
+ ];
69
+ // filter(Boolean) would also drop the trailing "" blank-line separator —
70
+ // it's falsy, same as an absent optional field — running the header
71
+ // straight into the payload. Only drop lines that are genuinely absent.
72
+ //
73
+ // Array#join only inserts its separator BETWEEN elements, so a single
74
+ // trailing "" contributes one "\n" (ending the last real line), not a
75
+ // blank row — join(["Lines: 39", ""], "\n") is "Lines: 39\n", not
76
+ // "Lines: 39\n\n". The explicit "\n" below supplies the second newline
77
+ // that actually produces the blank line before the payload.
78
+ const header = headerLines.filter((line) => line !== undefined).join("\n");
79
+ const body = event.lines.map((l) => l.raw).join("\n");
80
+ if (opts.verbose || opts.maxLength <= 0 || body.length <= opts.maxLength) {
81
+ return header + "\n" + body;
82
+ }
83
+ return `${header}\n${body.slice(0, opts.maxLength)}\n... [truncated: ${body.length} chars — pass verbose=true for the full payload]`;
84
+ }
85
+ //# sourceMappingURL=logEventFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logEventFormat.js","sourceRoot":"","sources":["../../src/core/logEventFormat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import type { LogLevel } from "./types.js";
2
+ /**
3
+ * Real severity levels, ordered. Excludes the "all" sentinel that LogLevel
4
+ * carries for the get_logs `level` filter — ranking a sentinel is meaningless,
5
+ * and Record<LogLevel, number> would demand an entry for it.
6
+ */
7
+ export type EventLevel = Exclude<LogLevel, "all">;
8
+ /**
9
+ * A single log line after platform normalization. Everything downstream of
10
+ * acquisition — ownership, grouping, relevance — operates on this shape, so
11
+ * the Android and iOS paths share one implementation each.
12
+ */
13
+ export interface RawLogLine {
14
+ ts: Date;
15
+ level: EventLevel;
16
+ pid: number;
17
+ tid?: number;
18
+ /** Android tag, or iOS "subsystem:category". */
19
+ tag: string;
20
+ message: string;
21
+ /**
22
+ * The owner this line DECLARES as its subject — parsed from `Cmdline:`,
23
+ * `>>> pkg <<<`, or `Process: pkg`. A tombstone is written by tombstoned's
24
+ * pid, not the dead app's, so this is the only way to attribute a crash.
25
+ */
26
+ subject?: string;
27
+ raw: string;
28
+ }
29
+ export type EventKind = "crash" | "anr" | "exception" | "lifecycle" | "message";
30
+ export interface LogEvent {
31
+ /** "n7" (native) | "j12" (js). Globally unique, stable for the session. */
32
+ id: string;
33
+ source: "native" | "js";
34
+ deviceKey: string;
35
+ deviceName: string;
36
+ ts: Date;
37
+ level: EventLevel;
38
+ kind: EventKind;
39
+ title: string;
40
+ owner?: string;
41
+ lineCount: number;
42
+ byteSize: number;
43
+ fingerprint: string;
44
+ lines: RawLogLine[];
45
+ }
46
+ /** An event before the buffer assigns it an id. */
47
+ export type DraftEvent = Omit<LogEvent, "id">;
48
+ export interface AppIdentity {
49
+ /** simulatorUdid ?? adbSerial — the buffer key. Never deviceName. */
50
+ deviceKey: string;
51
+ platform: "ios" | "android";
52
+ /** THIS device's identifier. iOS bundle id and Android package differ. */
53
+ appId: string;
54
+ /** Live pid, when the app is running. Absent after a crash. */
55
+ pid?: number;
56
+ }
57
+ export declare const LEVEL_RANK: Record<EventLevel, number>;
58
+ /**
59
+ * Identity of an event, derived from its FIRST line only.
60
+ *
61
+ * `logcat -T <ts>` is inclusive of the boundary, so the last event seen always
62
+ * comes back on the next fetch — and it may come back truncated if the window
63
+ * cut mid-backtrace. Hashing only the header line keeps the two reads equal.
64
+ * The device timestamp is used, never the host clock: emulators measured 4s
65
+ * of skew, which would make host-derived hashes unstable.
66
+ */
67
+ export declare function fingerprintEvent(lines: RawLogLine[], deviceKey: string): string;
68
+ export declare class NativeLogBuffer {
69
+ private events;
70
+ private seen;
71
+ private lastTs;
72
+ private maxSize;
73
+ /**
74
+ * How many fingerprints to retain relative to stored events.
75
+ *
76
+ * `seen` does NOT need to cover all history: the watermark already stops
77
+ * `logcat -T` from returning anything older than the last fetch, so the
78
+ * only thing `seen` must absorb is the inclusive-boundary overlap — a
79
+ * handful of events. Retaining several times maxSize is far more than
80
+ * that window needs while keeping memory bounded in a long-lived server.
81
+ */
82
+ private static readonly SEEN_RETENTION_MULTIPLE;
83
+ constructor(maxSize?: number);
84
+ /** Append unseen drafts, assigning ids. Returns only what was new. */
85
+ ingest(drafts: DraftEvent[]): LogEvent[];
86
+ list(): LogEvent[];
87
+ get(id: string): LogEvent | undefined;
88
+ /** Retained fingerprint count. Exposed for tests that assert bounded growth. */
89
+ get seenSize(): number;
90
+ /**
91
+ * Clears stored events but NOT the seen-set or watermark — otherwise the
92
+ * next fetch re-ingests everything the caller just cleared.
93
+ */
94
+ clear(): number;
95
+ /** Newest ingested device timestamp. Drives `logcat -T` / `log show --start`. */
96
+ get watermark(): Date | undefined;
97
+ get size(): number;
98
+ }
99
+ export declare const nativeLogBuffers: Map<string, NativeLogBuffer>;
100
+ export declare function getNativeLogBuffer(deviceKey: string): NativeLogBuffer;
101
+ /** Resolve an event id across every device buffer. */
102
+ export declare function findNativeEvent(id: string): LogEvent | undefined;
103
+ /** Test-only. */
104
+ export declare function __resetNativeLogBuffers(): void;
105
+ /**
106
+ * Resolve any event id, native or JS. The prefix selects the space: `n` is a
107
+ * buffered native event, `j` is derived on demand from a console entry's seq.
108
+ * Registered lazily so logEvents.ts does not import the JS side (which imports
109
+ * back for its types).
110
+ */
111
+ type JsResolver = (id: string) => LogEvent | undefined;
112
+ export declare function registerJsEventResolver(fn: JsResolver): void;
113
+ export declare function findLogEvent(id: string): LogEvent | undefined;
114
+ export {};
115
+ //# sourceMappingURL=logEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logEvents.d.ts","sourceRoot":"","sources":["../../src/core/logEvents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,QAAQ;IACrB,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE9C,MAAM,WAAW,WAAW;IACxB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOjD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAe/E;AAQD,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAK;gBAExC,OAAO,GAAE,MAAY;IAIjC,sEAAsE;IACtE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE;IAwBxC,IAAI,IAAI,QAAQ,EAAE;IAIlB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrC,gFAAgF;IAChF,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,KAAK,IAAI,MAAM;IAMf,iFAAiF;IACjF,IAAI,SAAS,IAAI,IAAI,GAAG,SAAS,CAEhC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACJ;AAED,eAAO,MAAM,gBAAgB,8BAAqC,CAAC;AAEnE,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAOrE;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAMhE;AAED,iBAAiB;AACjB,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAED;;;;;GAKG;AACH,KAAK,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;AAGvD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAE5D;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAI7D"}