browser-debugger-cli 0.6.4 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/commands/__tests__/machineReadableHelp.contract.test.d.ts +12 -0
  2. package/dist/commands/__tests__/machineReadableHelp.contract.test.d.ts.map +1 -0
  3. package/dist/commands/__tests__/machineReadableHelp.contract.test.js +102 -0
  4. package/dist/commands/__tests__/machineReadableHelp.contract.test.js.map +1 -0
  5. package/dist/commands/cdp.js +8 -4
  6. package/dist/commands/cdp.js.map +1 -1
  7. package/dist/commands/console.d.ts.map +1 -1
  8. package/dist/commands/console.js +22 -2
  9. package/dist/commands/console.js.map +1 -1
  10. package/dist/commands/dom/a11y.d.ts.map +1 -1
  11. package/dist/commands/dom/a11y.js +51 -15
  12. package/dist/commands/dom/a11y.js.map +1 -1
  13. package/dist/commands/dom/evalHelpers.d.ts +1 -1
  14. package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
  15. package/dist/commands/dom/evalHelpers.js +3 -2
  16. package/dist/commands/dom/evalHelpers.js.map +1 -1
  17. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  18. package/dist/commands/dom/formFillHelpers.js +30 -2
  19. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  20. package/dist/commands/dom/index.d.ts.map +1 -1
  21. package/dist/commands/dom/index.js +85 -13
  22. package/dist/commands/dom/index.js.map +1 -1
  23. package/dist/commands/dom/reactEventHelpers.d.ts +1 -1
  24. package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
  25. package/dist/commands/dom/reactEventHelpers.js +3 -3
  26. package/dist/commands/machineReadableHelp.d.ts +48 -0
  27. package/dist/commands/machineReadableHelp.d.ts.map +1 -1
  28. package/dist/commands/machineReadableHelp.js +80 -0
  29. package/dist/commands/machineReadableHelp.js.map +1 -1
  30. package/dist/commands/network.d.ts.map +1 -1
  31. package/dist/commands/network.js +28 -2
  32. package/dist/commands/network.js.map +1 -1
  33. package/dist/commands/peek.js +2 -2
  34. package/dist/commands/peek.js.map +1 -1
  35. package/dist/commands/shared/CommandRunner.d.ts +2 -0
  36. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  37. package/dist/commands/shared/CommandRunner.js +3 -0
  38. package/dist/commands/shared/CommandRunner.js.map +1 -1
  39. package/dist/commands/shared/validation.d.ts +2 -0
  40. package/dist/commands/shared/validation.d.ts.map +1 -1
  41. package/dist/commands/shared/validation.js +5 -2
  42. package/dist/commands/shared/validation.js.map +1 -1
  43. package/dist/commands/stop.d.ts.map +1 -1
  44. package/dist/commands/stop.js +2 -1
  45. package/dist/commands/stop.js.map +1 -1
  46. package/dist/commands/tail.d.ts.map +1 -1
  47. package/dist/commands/tail.js +6 -0
  48. package/dist/commands/tail.js.map +1 -1
  49. package/dist/connection/cdp.js +9 -9
  50. package/dist/constants.d.ts.map +1 -1
  51. package/dist/constants.js +3 -1
  52. package/dist/constants.js.map +1 -1
  53. package/dist/daemon/patternDefinitions.d.ts +47 -0
  54. package/dist/daemon/patternDefinitions.d.ts.map +1 -0
  55. package/dist/daemon/patternDefinitions.js +71 -0
  56. package/dist/daemon/patternDefinitions.js.map +1 -0
  57. package/dist/daemon/patternDetector.d.ts +60 -0
  58. package/dist/daemon/patternDetector.d.ts.map +1 -0
  59. package/dist/daemon/patternDetector.js +74 -0
  60. package/dist/daemon/patternDetector.js.map +1 -0
  61. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts +11 -0
  62. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts.map +1 -0
  63. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js +136 -0
  64. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js.map +1 -0
  65. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
  66. package/dist/daemon/worker/commandRegistry.js +13 -2
  67. package/dist/daemon/worker/commandRegistry.js.map +1 -1
  68. package/dist/ipc/protocol/commands.d.ts +2 -0
  69. package/dist/ipc/protocol/commands.d.ts.map +1 -1
  70. package/dist/ipc/protocol/commands.js.map +1 -1
  71. package/dist/session/cleanup.d.ts.map +1 -1
  72. package/dist/session/cleanup.js +2 -0
  73. package/dist/session/cleanup.js.map +1 -1
  74. package/dist/session/queryCache.d.ts +35 -0
  75. package/dist/session/queryCache.d.ts.map +1 -0
  76. package/dist/session/queryCache.js +83 -0
  77. package/dist/session/queryCache.js.map +1 -0
  78. package/dist/telemetry/a11y.d.ts +8 -5
  79. package/dist/telemetry/a11y.d.ts.map +1 -1
  80. package/dist/telemetry/a11y.js +34 -19
  81. package/dist/telemetry/a11y.js.map +1 -1
  82. package/dist/ui/errors/CommandError.d.ts +5 -1
  83. package/dist/ui/errors/CommandError.d.ts.map +1 -1
  84. package/dist/ui/errors/CommandError.js.map +1 -1
  85. package/dist/ui/formatters/__tests__/preview.unit.test.d.ts +13 -0
  86. package/dist/ui/formatters/__tests__/preview.unit.test.d.ts.map +1 -0
  87. package/dist/ui/formatters/__tests__/preview.unit.test.js +180 -0
  88. package/dist/ui/formatters/__tests__/preview.unit.test.js.map +1 -0
  89. package/dist/ui/formatters/dom.d.ts.map +1 -1
  90. package/dist/ui/formatters/dom.js +5 -2
  91. package/dist/ui/formatters/dom.js.map +1 -1
  92. package/dist/ui/formatters/helpFormatters.d.ts +41 -0
  93. package/dist/ui/formatters/helpFormatters.d.ts.map +1 -0
  94. package/dist/ui/formatters/helpFormatters.js +80 -0
  95. package/dist/ui/formatters/helpFormatters.js.map +1 -0
  96. package/dist/ui/formatters/preview.d.ts.map +1 -1
  97. package/dist/ui/formatters/preview.js +67 -19
  98. package/dist/ui/formatters/preview.js.map +1 -1
  99. package/dist/ui/formatters/sessionFormatters.d.ts +58 -0
  100. package/dist/ui/formatters/sessionFormatters.d.ts.map +1 -0
  101. package/dist/ui/formatters/sessionFormatters.js +116 -0
  102. package/dist/ui/formatters/sessionFormatters.js.map +1 -0
  103. package/dist/ui/messages/commands.d.ts +9 -0
  104. package/dist/ui/messages/commands.d.ts.map +1 -1
  105. package/dist/ui/messages/commands.js +11 -1
  106. package/dist/ui/messages/commands.js.map +1 -1
  107. package/dist/ui/messages/errors.d.ts +53 -0
  108. package/dist/ui/messages/errors.d.ts.map +1 -1
  109. package/dist/ui/messages/errors.js +59 -0
  110. package/dist/ui/messages/errors.js.map +1 -1
  111. package/dist/ui/messages/hints.d.ts +33 -0
  112. package/dist/ui/messages/hints.d.ts.map +1 -0
  113. package/dist/ui/messages/hints.js +37 -0
  114. package/dist/ui/messages/hints.js.map +1 -0
  115. package/dist/ui/messages/session.d.ts +11 -1
  116. package/dist/ui/messages/session.d.ts.map +1 -1
  117. package/dist/ui/messages/session.js +14 -21
  118. package/dist/ui/messages/session.js.map +1 -1
  119. package/dist/utils/decisionTrees.d.ts +54 -0
  120. package/dist/utils/decisionTrees.d.ts.map +1 -0
  121. package/dist/utils/decisionTrees.js +171 -0
  122. package/dist/utils/decisionTrees.js.map +1 -0
  123. package/dist/utils/taskMappings.d.ts +47 -0
  124. package/dist/utils/taskMappings.d.ts.map +1 -0
  125. package/dist/utils/taskMappings.js +118 -0
  126. package/dist/utils/taskMappings.js.map +1 -0
  127. package/package.json +3 -3
@@ -22,7 +22,7 @@ import { EXIT_CODES } from '../../utils/exitCodes.js';
22
22
  * ```
23
23
  */
24
24
  export function positiveIntRule(options = {}) {
25
- const { min, max, default: defaultValue, required = true } = options;
25
+ const { min, max, default: defaultValue, required = true, allowZeroForAll = false } = options;
26
26
  return {
27
27
  validate: (value) => {
28
28
  if (value === undefined || value === null) {
@@ -30,7 +30,7 @@ export function positiveIntRule(options = {}) {
30
30
  return defaultValue;
31
31
  }
32
32
  if (!required) {
33
- return 0; // Return 0 for optional fields (caller should check)
33
+ return 0;
34
34
  }
35
35
  throw new CommandError('Value is required', {}, EXIT_CODES.INVALID_ARGUMENTS);
36
36
  }
@@ -48,6 +48,9 @@ export function positiveIntRule(options = {}) {
48
48
  const message = invalidIntegerError('value', strValue, errorOptions);
49
49
  throw new CommandError(message, {}, EXIT_CODES.INVALID_ARGUMENTS);
50
50
  }
51
+ if (parsed === 0 && allowZeroForAll) {
52
+ return 0;
53
+ }
51
54
  if (min !== undefined && parsed < min) {
52
55
  const message = invalidIntegerError('value', strValue, errorOptions);
53
56
  throw new CommandError(message, {}, EXIT_CODES.INVALID_ARGUMENTS);
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/commands/shared/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/commands/shared/validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiEzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuF1D"}
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiEzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2F1D"}
@@ -45,9 +45,10 @@ function getExitCodeForDaemonError(errorCode) {
45
45
  export function registerStopCommand(program) {
46
46
  program
47
47
  .command('stop')
48
- .description('Stop daemon and write collected telemetry to session.json')
48
+ .description('Stop daemon and write collected telemetry to ~/.bdg/session.json')
49
49
  .option('--kill-chrome', 'Also kill Chrome browser process', false)
50
50
  .addOption(jsonOption)
51
+ .addHelpText('after', '\nOutput Location:\n Default: ~/.bdg/session.json\n Tip: Copy to custom location with: cp ~/.bdg/session.json /path/to/output.json')
51
52
  .action(async (options) => {
52
53
  await runCommand(async (opts) => {
53
54
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAUvD;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAgB;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,oBAAoB;QAC/C,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,SAAS,CACd,UAAU,EACV,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,mBAAmB,EAAE,EAC5C,WAAW,EACX,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,yBAAyB,CAAC,SAAwB;IACzD,OAAO,SAAS,KAAK,YAAY,CAAC,UAAU;QAC1C,CAAC,CAAC,UAAU,CAAC,kBAAkB;QAC/B,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kEAAkE,CAAC;SAC/E,MAAM,CAAC,eAAe,EAAE,kCAAkC,EAAE,KAAK,CAAC;SAClE,SAAS,CAAC,UAAU,CAAC;SACrB,WAAW,CACV,OAAO,EACP,sIAAsI,CACvI;SACA,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QACrC,MAAM,UAAU,CACd,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;gBAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC7B,IAAI,aAAa,GAAG,KAAK,CAAC;oBAC1B,IAAI,oBAAoB,GAAG,CAAC,CAAC;oBAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAE9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;wBACrC,IAAI,SAAS,EAAE,CAAC;4BACd,IAAI,CAAC;gCACH,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gCACxC,aAAa,GAAG,IAAI,CAAC;gCACrB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC9C,cAAc,EAAE,CAAC;4BACnB,CAAC;4BAAC,OAAO,WAAoB,EAAE,CAAC;gCAC9B,MAAM,YAAY,GAChB,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gCAC3E,QAAQ,CAAC,IAAI,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;4BAC1D,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;wBACzE,CAAC;oBACH,CAAC;oBAED,oBAAoB,GAAG,sBAAsB,EAAE,CAAC;oBAEhD,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,CAAC,EAAE;4BAChF,oBAAoB;4BACpB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO;4BAClD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;yBACzC;qBACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,QAAQ,CAAC,SAAS,KAAK,YAAY,CAAC,UAAU,EAAE,CAAC;wBACnD,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,QAAQ,CAAC,OAAO,IAAI,aAAa,CAAC,UAAU;4BACnD,QAAQ,EAAE,UAAU,CAAC,kBAAkB;yBACxC,CAAC;oBACJ,CAAC;oBAED,MAAM,QAAQ,GAAG,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/D,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,QAAQ,CAAC,OAAO,IAAI,aAAa,CAAC,MAAM;wBAC/C,QAAQ;qBACT,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBAE5C,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC7E,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,aAAa,CAAC,kBAAkB;wBACvC,QAAQ,EAAE,UAAU,CAAC,kBAAkB;wBACvC,YAAY,EAAE;4BACZ,UAAU,EAAE,uCAAuC;yBACpD;qBACF,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC;oBACpC,QAAQ,EAAE,UAAU,CAAC,mBAAmB;iBACzC,CAAC;YACJ,CAAC;QACH,CAAC,EACD,OAAO,EACP,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwG1D"}
1
+ {"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G1D"}
@@ -110,6 +110,12 @@ export function registerTailCommand(program) {
110
110
  console.error(stoppedFollowingPreviewMessage());
111
111
  process.exit(EXIT_CODES.SUCCESS);
112
112
  });
113
+ process.stdout.on('error', (err) => {
114
+ if (err.code === 'EPIPE') {
115
+ clearInterval(followInterval);
116
+ process.exit(EXIT_CODES.SUCCESS);
117
+ }
118
+ });
113
119
  });
114
120
  }
115
121
  //# sourceMappingURL=tail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tail.js","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tail.js","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"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"}
@@ -476,16 +476,16 @@ export class CDPConnection {
476
476
  const errorMessage = `Command timeout: ${method}\n\n` +
477
477
  `The browser did not respond within ${timeoutSeconds}s.\n\n` +
478
478
  `Possible causes:\n` +
479
- ` • Browser became unresponsive or frozen\n` +
480
- ` • Heavy page load or JavaScript execution\n` +
481
- ` • Network issues or slow connection\n` +
482
- ` • Method requires user interaction\n\n` +
479
+ ` - Browser became unresponsive or frozen\n` +
480
+ ` - Heavy page load or JavaScript execution\n` +
481
+ ` - Network issues or slow connection\n` +
482
+ ` - Method requires user interaction\n\n` +
483
483
  `Try:\n` +
484
- ` • Check if page is still loading (look for spinner)\n` +
485
- ` • Open Chrome DevTools to check for JavaScript errors\n` +
486
- ` • Reload page and retry: bdg stop && bdg <url>\n` +
487
- ` • Use simpler CDP method or reduce data size\n` +
488
- ` • Check Chrome console: chrome://inspect`;
484
+ ` - Check if page is still loading (look for spinner)\n` +
485
+ ` - Open Chrome DevTools to check for JavaScript errors\n` +
486
+ ` - Reload page and retry: bdg stop && bdg <url>\n` +
487
+ ` - Use simpler CDP method or reduce data size\n` +
488
+ ` - Check Chrome console: chrome://inspect`;
489
489
  reject(new CDPTimeoutError(errorMessage));
490
490
  }, this.config.commandTimeout);
491
491
  this.pendingMessages.set(id, {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,cAAc,cAAc,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UAS5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAIpD,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAkB,CAAC;AAMjD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,kCAAkC,QAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AAMtD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAO,CAAC;AAMtD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAMD;;GAEG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,cAAc,cAAc,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UAU5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAKpD,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAkB,CAAC;AAMjD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,kCAAkC,QAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AAMtD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAO,CAAC;AAMtD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAMD;;GAEG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC"}
package/dist/constants.js CHANGED
@@ -51,9 +51,10 @@ export const BDG_CHROME_FLAGS = [
51
51
  '--no-default-browser-check',
52
52
  '--disable-search-engine-choice-screen',
53
53
  '--disable-session-crashed-bubble', // Suppress "Restore Pages?" popup after unclean shutdown
54
+ '--hide-crash-restore-bubble', // New flag to hide crash restore bubble
54
55
  '--disable-infobars', // Disable all info bars including restore prompt
55
56
  '--disable-notifications', // Suppress notification permission prompts
56
- '--disable-features=Translate', // Suppress Google Translate popup (replaces deprecated --disable-translate)
57
+ '--disable-features=Translate,SessionCrashedBubble', // Suppress Google Translate popup and SessionCrashedBubble
57
58
  '--disable-background-mode', // Attempt to prevent focus stealing (doesn't work reliably on macOS)
58
59
  ];
59
60
  /**
@@ -78,6 +79,7 @@ export const BDG_CHROME_PREFS = {
78
79
  'browser.show_quit_confirmation_dialog': false, // Disable quit confirmation for automation
79
80
  'translate.enabled': false, // Disable Google Translate popup
80
81
  translate_site_blacklist: ['*'], // Block translate for all sites
82
+ 'profile.exit_type': 'Normal', // Trick Chrome into thinking it shut down correctly
81
83
  };
82
84
  // ============================================================================
83
85
  // DATA COLLECTION LIMITS
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Pattern definitions for detecting verbose CDP usage.
3
+ *
4
+ * Defines patterns that indicate agents are using verbose CDP commands
5
+ * when more efficient high-level wrapper commands are available.
6
+ */
7
+ /**
8
+ * Pattern definition for detecting verbose CDP usage.
9
+ */
10
+ export interface PatternDefinition {
11
+ /** Pattern identifier */
12
+ name: string;
13
+ /** CDP methods that trigger this pattern */
14
+ cdpMethods: string[];
15
+ /** Number of occurrences before showing hint */
16
+ threshold: number;
17
+ /** Suggested high-level alternative command */
18
+ alternative: string;
19
+ }
20
+ /**
21
+ * Registry of all detectable patterns.
22
+ *
23
+ * Each pattern tracks specific CDP method usage and suggests
24
+ * efficient alternatives when threshold is reached.
25
+ */
26
+ export declare const PATTERNS: PatternDefinition[];
27
+ /**
28
+ * Get pattern by name.
29
+ *
30
+ * @param name - Pattern identifier
31
+ * @returns Pattern definition if found, undefined otherwise
32
+ */
33
+ export declare function getPattern(name: string): PatternDefinition | undefined;
34
+ /**
35
+ * Get all patterns.
36
+ *
37
+ * @returns Complete pattern registry
38
+ */
39
+ export declare function getAllPatterns(): PatternDefinition[];
40
+ /**
41
+ * Find patterns matching a CDP method.
42
+ *
43
+ * @param method - CDP method name (e.g., "Runtime.evaluate")
44
+ * @returns Matching pattern definitions
45
+ */
46
+ export declare function findPatternsForMethod(method: string): PatternDefinition[];
47
+ //# sourceMappingURL=patternDefinitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patternDefinitions.d.ts","sourceRoot":"","sources":["../../src/daemon/patternDefinitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,iBAAiB,EA+BvC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,iBAAiB,EAAE,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAEzE"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Pattern definitions for detecting verbose CDP usage.
3
+ *
4
+ * Defines patterns that indicate agents are using verbose CDP commands
5
+ * when more efficient high-level wrapper commands are available.
6
+ */
7
+ /**
8
+ * Registry of all detectable patterns.
9
+ *
10
+ * Each pattern tracks specific CDP method usage and suggests
11
+ * efficient alternatives when threshold is reached.
12
+ */
13
+ export const PATTERNS = [
14
+ {
15
+ name: 'dom_query_with_evaluate',
16
+ cdpMethods: ['Runtime.evaluate'],
17
+ threshold: 2,
18
+ alternative: 'bdg dom query <selector>',
19
+ },
20
+ {
21
+ name: 'screenshot_with_cdp',
22
+ cdpMethods: ['Page.captureScreenshot'],
23
+ threshold: 1,
24
+ alternative: 'bdg dom screenshot [path]',
25
+ },
26
+ {
27
+ name: 'cookies_with_cdp',
28
+ cdpMethods: ['Network.getAllCookies', 'Network.getCookies'],
29
+ threshold: 1,
30
+ alternative: 'bdg network getCookies',
31
+ },
32
+ {
33
+ name: 'multiple_runtime_evaluations',
34
+ cdpMethods: ['Runtime.evaluate'],
35
+ threshold: 4,
36
+ alternative: 'bdg dom eval <javascript>',
37
+ },
38
+ {
39
+ name: 'network_body_fetching',
40
+ cdpMethods: ['Network.getResponseBody'],
41
+ threshold: 3,
42
+ alternative: 'bdg details network <id>',
43
+ },
44
+ ];
45
+ /**
46
+ * Get pattern by name.
47
+ *
48
+ * @param name - Pattern identifier
49
+ * @returns Pattern definition if found, undefined otherwise
50
+ */
51
+ export function getPattern(name) {
52
+ return PATTERNS.find((p) => p.name === name);
53
+ }
54
+ /**
55
+ * Get all patterns.
56
+ *
57
+ * @returns Complete pattern registry
58
+ */
59
+ export function getAllPatterns() {
60
+ return PATTERNS;
61
+ }
62
+ /**
63
+ * Find patterns matching a CDP method.
64
+ *
65
+ * @param method - CDP method name (e.g., "Runtime.evaluate")
66
+ * @returns Matching pattern definitions
67
+ */
68
+ export function findPatternsForMethod(method) {
69
+ return PATTERNS.filter((p) => p.cdpMethods.includes(method));
70
+ }
71
+ //# sourceMappingURL=patternDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patternDefinitions.js","sourceRoot":"","sources":["../../src/daemon/patternDefinitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAwB;IAC3C;QACE,IAAI,EAAE,yBAAyB;QAC/B,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,0BAA0B;KACxC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,2BAA2B;KACzC;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;QAC3D,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,wBAAwB;KACtC;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,2BAA2B;KACzC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,UAAU,EAAE,CAAC,yBAAyB,CAAC;QACvC,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,0BAA0B;KACxC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Pattern detector for identifying verbose CDP usage.
3
+ *
4
+ * Tracks CDP command execution and detects patterns that indicate
5
+ * agents are using verbose approaches when high-level alternatives exist.
6
+ */
7
+ import { type PatternDefinition } from './patternDefinitions.js';
8
+ /**
9
+ * Pattern detection result with hint information.
10
+ */
11
+ export interface PatternDetectionResult {
12
+ /** Whether a hint should be shown */
13
+ shouldShow: boolean;
14
+ /** Pattern that was detected */
15
+ pattern?: PatternDefinition;
16
+ /** How many times this hint has been shown */
17
+ shownCount?: number;
18
+ }
19
+ /**
20
+ * Pattern detector for tracking CDP usage and suggesting alternatives.
21
+ *
22
+ * Maintains state for pattern occurrence counts and hint display limits.
23
+ * Designed to provide helpful guidance without overwhelming users.
24
+ */
25
+ export declare class PatternDetector {
26
+ private readonly methodCounts;
27
+ private readonly hintShownCounts;
28
+ private readonly maxHintsPerPattern;
29
+ /**
30
+ * Track a CDP command execution.
31
+ *
32
+ * Records the command and checks if any patterns are triggered.
33
+ * Returns detection result indicating if a hint should be shown.
34
+ *
35
+ * @param method - CDP method that was executed (e.g., "Runtime.evaluate")
36
+ * @returns Detection result with hint information
37
+ */
38
+ trackCommand(method: string): PatternDetectionResult;
39
+ /**
40
+ * Reset all pattern tracking state.
41
+ *
42
+ * Useful for testing or when starting a fresh analysis.
43
+ */
44
+ reset(): void;
45
+ /**
46
+ * Get current method count for a specific CDP method.
47
+ *
48
+ * @param method - CDP method name
49
+ * @returns Number of times method has been called
50
+ */
51
+ getMethodCount(method: string): number;
52
+ /**
53
+ * Get hint shown count for a specific pattern.
54
+ *
55
+ * @param patternName - Pattern identifier
56
+ * @returns Number of times hint has been shown for this pattern
57
+ */
58
+ getHintShownCount(patternName: string): number;
59
+ }
60
+ //# sourceMappingURL=patternDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patternDetector.d.ts","sourceRoot":"","sources":["../../src/daemon/patternDetector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,gCAAgC;IAChC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAClE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAK;IAExC;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB;IAwBpD;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAItC;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAG/C"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Pattern detector for identifying verbose CDP usage.
3
+ *
4
+ * Tracks CDP command execution and detects patterns that indicate
5
+ * agents are using verbose approaches when high-level alternatives exist.
6
+ */
7
+ import { findPatternsForMethod } from './patternDefinitions.js';
8
+ /**
9
+ * Pattern detector for tracking CDP usage and suggesting alternatives.
10
+ *
11
+ * Maintains state for pattern occurrence counts and hint display limits.
12
+ * Designed to provide helpful guidance without overwhelming users.
13
+ */
14
+ export class PatternDetector {
15
+ methodCounts = new Map();
16
+ hintShownCounts = new Map();
17
+ maxHintsPerPattern = 3;
18
+ /**
19
+ * Track a CDP command execution.
20
+ *
21
+ * Records the command and checks if any patterns are triggered.
22
+ * Returns detection result indicating if a hint should be shown.
23
+ *
24
+ * @param method - CDP method that was executed (e.g., "Runtime.evaluate")
25
+ * @returns Detection result with hint information
26
+ */
27
+ trackCommand(method) {
28
+ const currentCount = (this.methodCounts.get(method) ?? 0) + 1;
29
+ this.methodCounts.set(method, currentCount);
30
+ const matchingPatterns = findPatternsForMethod(method);
31
+ for (const pattern of matchingPatterns) {
32
+ if (currentCount >= pattern.threshold) {
33
+ const shownCount = this.hintShownCounts.get(pattern.name) ?? 0;
34
+ if (shownCount < this.maxHintsPerPattern) {
35
+ this.hintShownCounts.set(pattern.name, shownCount + 1);
36
+ return {
37
+ shouldShow: true,
38
+ pattern,
39
+ shownCount: shownCount + 1,
40
+ };
41
+ }
42
+ }
43
+ }
44
+ return { shouldShow: false };
45
+ }
46
+ /**
47
+ * Reset all pattern tracking state.
48
+ *
49
+ * Useful for testing or when starting a fresh analysis.
50
+ */
51
+ reset() {
52
+ this.methodCounts.clear();
53
+ this.hintShownCounts.clear();
54
+ }
55
+ /**
56
+ * Get current method count for a specific CDP method.
57
+ *
58
+ * @param method - CDP method name
59
+ * @returns Number of times method has been called
60
+ */
61
+ getMethodCount(method) {
62
+ return this.methodCounts.get(method) ?? 0;
63
+ }
64
+ /**
65
+ * Get hint shown count for a specific pattern.
66
+ *
67
+ * @param patternName - Pattern identifier
68
+ * @returns Number of times hint has been shown for this pattern
69
+ */
70
+ getHintShownCount(patternName) {
71
+ return this.hintShownCounts.get(patternName) ?? 0;
72
+ }
73
+ }
74
+ //# sourceMappingURL=patternDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patternDetector.js","sourceRoot":"","sources":["../../src/daemon/patternDetector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAA0B,MAAM,yBAAyB,CAAC;AAcxF;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IACT,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC9C,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IACjD,kBAAkB,GAAG,CAAC,CAAC;IAExC;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAc;QACzB,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE5C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEvD,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACvC,IAAI,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE/D,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;oBACvD,OAAO;wBACL,UAAU,EAAE,IAAI;wBAChB,OAAO;wBACP,UAAU,EAAE,UAAU,GAAG,CAAC;qBAC3B,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Unit tests for PatternDetector.
3
+ *
4
+ * Tests the contract of pattern detection behavior:
5
+ * - Hint display after threshold
6
+ * - Per-pattern threshold respect
7
+ * - Max shows limit
8
+ * - Pattern matching logic
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=PatternDetector.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternDetector.unit.test.d.ts","sourceRoot":"","sources":["../../../../src/daemon/worker/__tests__/PatternDetector.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Unit tests for PatternDetector.
3
+ *
4
+ * Tests the contract of pattern detection behavior:
5
+ * - Hint display after threshold
6
+ * - Per-pattern threshold respect
7
+ * - Max shows limit
8
+ * - Pattern matching logic
9
+ */
10
+ import assert from 'node:assert';
11
+ import { describe, test } from 'node:test';
12
+ import { PatternDetector } from '../../../daemon/patternDetector.js';
13
+ describe('PatternDetector', () => {
14
+ describe('threshold-based hint display', () => {
15
+ test('does not show hint below threshold', () => {
16
+ const detector = new PatternDetector();
17
+ const result1 = detector.trackCommand('Runtime.evaluate');
18
+ assert.strictEqual(result1.shouldShow, false);
19
+ assert.strictEqual(result1.pattern, undefined);
20
+ });
21
+ test('shows hint when threshold is reached', () => {
22
+ const detector = new PatternDetector();
23
+ detector.trackCommand('Runtime.evaluate');
24
+ const result2 = detector.trackCommand('Runtime.evaluate');
25
+ assert.strictEqual(result2.shouldShow, true);
26
+ assert.ok(result2.pattern);
27
+ assert.ok(result2.pattern.alternative.includes('bdg dom query'));
28
+ });
29
+ test('continues showing hint after threshold until max shows', () => {
30
+ const detector = new PatternDetector();
31
+ detector.trackCommand('Runtime.evaluate');
32
+ detector.trackCommand('Runtime.evaluate');
33
+ const result3 = detector.trackCommand('Runtime.evaluate');
34
+ assert.strictEqual(result3.shouldShow, true);
35
+ });
36
+ });
37
+ describe('per-pattern threshold configuration', () => {
38
+ test('respects threshold of 1 for screenshot pattern', () => {
39
+ const detector = new PatternDetector();
40
+ const result = detector.trackCommand('Page.captureScreenshot');
41
+ assert.strictEqual(result.shouldShow, true);
42
+ assert.ok(result.pattern?.alternative.includes('bdg dom screenshot'));
43
+ });
44
+ test('respects threshold of 1 for cookies pattern', () => {
45
+ const detector = new PatternDetector();
46
+ const result1 = detector.trackCommand('Network.getCookies');
47
+ assert.strictEqual(result1.shouldShow, true);
48
+ assert.ok(result1.pattern?.alternative.includes('bdg network getCookies'));
49
+ });
50
+ test('respects threshold of 3 for network body pattern', () => {
51
+ const detector = new PatternDetector();
52
+ const result1 = detector.trackCommand('Network.getResponseBody');
53
+ const result2 = detector.trackCommand('Network.getResponseBody');
54
+ assert.strictEqual(result1.shouldShow, false);
55
+ assert.strictEqual(result2.shouldShow, false);
56
+ const result3 = detector.trackCommand('Network.getResponseBody');
57
+ assert.strictEqual(result3.shouldShow, true);
58
+ assert.ok(result3.pattern?.alternative.includes('bdg details network'));
59
+ });
60
+ test('respects threshold of 4 for multiple runtime evaluations', () => {
61
+ const detector = new PatternDetector();
62
+ detector.trackCommand('Runtime.evaluate');
63
+ detector.trackCommand('Runtime.evaluate');
64
+ detector.trackCommand('Runtime.evaluate');
65
+ const result4 = detector.trackCommand('Runtime.evaluate');
66
+ assert.strictEqual(result4.shouldShow, true);
67
+ assert.ok(result4.pattern?.alternative.includes('bdg dom eval'));
68
+ });
69
+ });
70
+ describe('max shows limit', () => {
71
+ test('stops showing hint after max shows limit reached', () => {
72
+ const detector = new PatternDetector();
73
+ detector.trackCommand('Runtime.evaluate');
74
+ detector.trackCommand('Runtime.evaluate');
75
+ let lastResult;
76
+ for (let i = 0; i < 10; i++) {
77
+ lastResult = detector.trackCommand('Runtime.evaluate');
78
+ }
79
+ assert.strictEqual(lastResult?.shouldShow, false);
80
+ });
81
+ test('tracks hint count per pattern independently', () => {
82
+ const detector = new PatternDetector();
83
+ detector.trackCommand('Runtime.evaluate');
84
+ detector.trackCommand('Runtime.evaluate');
85
+ for (let i = 0; i < 10; i++) {
86
+ detector.trackCommand('Runtime.evaluate');
87
+ }
88
+ const screenshotResult = detector.trackCommand('Page.captureScreenshot');
89
+ assert.strictEqual(screenshotResult.shouldShow, true);
90
+ });
91
+ });
92
+ describe('pattern matching', () => {
93
+ test('matches multiple CDP methods to same pattern', () => {
94
+ const detector = new PatternDetector();
95
+ const result1 = detector.trackCommand('Network.getCookies');
96
+ const result2 = detector.trackCommand('Network.getAllCookies');
97
+ assert.strictEqual(result1.shouldShow, true);
98
+ assert.strictEqual(result2.shouldShow, false);
99
+ assert.strictEqual(result1.pattern?.name, result2.pattern?.name);
100
+ });
101
+ test('returns undefined pattern for unmatched commands', () => {
102
+ const detector = new PatternDetector();
103
+ const result = detector.trackCommand('DOM.getDocument');
104
+ assert.strictEqual(result.shouldShow, false);
105
+ assert.strictEqual(result.pattern, undefined);
106
+ });
107
+ test('handles case-insensitive method names', () => {
108
+ const detector = new PatternDetector();
109
+ detector.trackCommand('runtime.evaluate');
110
+ const result = detector.trackCommand('RUNTIME.EVALUATE');
111
+ assert.strictEqual(result.shouldShow, true);
112
+ assert.ok(result.pattern?.alternative.includes('bdg dom query'));
113
+ });
114
+ });
115
+ describe('state persistence', () => {
116
+ test('maintains count across multiple method calls', () => {
117
+ const detector = new PatternDetector();
118
+ detector.trackCommand('Runtime.evaluate');
119
+ detector.trackCommand('Page.captureScreenshot');
120
+ const result = detector.trackCommand('Runtime.evaluate');
121
+ assert.strictEqual(result.shouldShow, true);
122
+ });
123
+ test('tracks separate counts for different patterns', () => {
124
+ const detector = new PatternDetector();
125
+ detector.trackCommand('Runtime.evaluate');
126
+ detector.trackCommand('Network.getResponseBody');
127
+ detector.trackCommand('Runtime.evaluate');
128
+ const evalResult = detector.trackCommand('Runtime.evaluate');
129
+ assert.strictEqual(evalResult.shouldShow, false);
130
+ detector.trackCommand('Network.getResponseBody');
131
+ const bodyResult = detector.trackCommand('Network.getResponseBody');
132
+ assert.strictEqual(bodyResult.shouldShow, true);
133
+ });
134
+ });
135
+ });
136
+ //# sourceMappingURL=PatternDetector.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternDetector.unit.test.js","sourceRoot":"","sources":["../../../../src/daemon/worker/__tests__/PatternDetector.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC9C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAChD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAClE,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;YAE/D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;YAE5D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC5D,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YAEjE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAE9C,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACpE,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC5D,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1C,IAAI,UAAU,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;YACzE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACxD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;YAE/D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC5D,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;YAExD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YACjD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAEzD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACxD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAEzD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACzD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YACjD,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC7D,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAEjD,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YACpE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}