browser-debugger-cli 0.6.4 → 0.6.6

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 (154) 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 +83 -19
  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 +68 -2
  18. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  19. package/dist/commands/dom/formFillHelpers.js +240 -66
  20. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  21. package/dist/commands/dom/formInteraction.d.ts.map +1 -1
  22. package/dist/commands/dom/formInteraction.js +128 -15
  23. package/dist/commands/dom/formInteraction.js.map +1 -1
  24. package/dist/commands/dom/helpers.d.ts +61 -2
  25. package/dist/commands/dom/helpers.d.ts.map +1 -1
  26. package/dist/commands/dom/helpers.js +103 -0
  27. package/dist/commands/dom/helpers.js.map +1 -1
  28. package/dist/commands/dom/index.d.ts.map +1 -1
  29. package/dist/commands/dom/index.js +135 -16
  30. package/dist/commands/dom/index.js.map +1 -1
  31. package/dist/commands/dom/keyMapping.d.ts +62 -0
  32. package/dist/commands/dom/keyMapping.d.ts.map +1 -0
  33. package/dist/commands/dom/keyMapping.js +118 -0
  34. package/dist/commands/dom/keyMapping.js.map +1 -0
  35. package/dist/commands/dom/reactEventHelpers.d.ts +10 -5
  36. package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
  37. package/dist/commands/dom/reactEventHelpers.js +55 -13
  38. package/dist/commands/dom/reactEventHelpers.js.map +1 -1
  39. package/dist/commands/machineReadableHelp.d.ts +48 -0
  40. package/dist/commands/machineReadableHelp.d.ts.map +1 -1
  41. package/dist/commands/machineReadableHelp.js +80 -0
  42. package/dist/commands/machineReadableHelp.js.map +1 -1
  43. package/dist/commands/network.d.ts.map +1 -1
  44. package/dist/commands/network.js +28 -2
  45. package/dist/commands/network.js.map +1 -1
  46. package/dist/commands/peek.d.ts.map +1 -1
  47. package/dist/commands/peek.js +16 -7
  48. package/dist/commands/peek.js.map +1 -1
  49. package/dist/commands/shared/CommandRunner.d.ts +2 -0
  50. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  51. package/dist/commands/shared/CommandRunner.js +3 -0
  52. package/dist/commands/shared/CommandRunner.js.map +1 -1
  53. package/dist/commands/shared/validation.d.ts +2 -0
  54. package/dist/commands/shared/validation.d.ts.map +1 -1
  55. package/dist/commands/shared/validation.js +5 -2
  56. package/dist/commands/shared/validation.js.map +1 -1
  57. package/dist/commands/stop.d.ts.map +1 -1
  58. package/dist/commands/stop.js +2 -1
  59. package/dist/commands/stop.js.map +1 -1
  60. package/dist/commands/tail.d.ts.map +1 -1
  61. package/dist/commands/tail.js +6 -0
  62. package/dist/commands/tail.js.map +1 -1
  63. package/dist/connection/cdp.js +9 -9
  64. package/dist/constants.d.ts +5 -1
  65. package/dist/constants.d.ts.map +1 -1
  66. package/dist/constants.js +9 -3
  67. package/dist/constants.js.map +1 -1
  68. package/dist/daemon/patternDefinitions.d.ts +47 -0
  69. package/dist/daemon/patternDefinitions.d.ts.map +1 -0
  70. package/dist/daemon/patternDefinitions.js +71 -0
  71. package/dist/daemon/patternDefinitions.js.map +1 -0
  72. package/dist/daemon/patternDetector.d.ts +60 -0
  73. package/dist/daemon/patternDetector.d.ts.map +1 -0
  74. package/dist/daemon/patternDetector.js +74 -0
  75. package/dist/daemon/patternDetector.js.map +1 -0
  76. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts +11 -0
  77. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts.map +1 -0
  78. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js +136 -0
  79. package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js.map +1 -0
  80. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
  81. package/dist/daemon/worker/commandRegistry.js +13 -2
  82. package/dist/daemon/worker/commandRegistry.js.map +1 -1
  83. package/dist/ipc/__tests__/jsonl.unit.test.js +5 -5
  84. package/dist/ipc/__tests__/jsonl.unit.test.js.map +1 -1
  85. package/dist/ipc/protocol/commands.d.ts +2 -0
  86. package/dist/ipc/protocol/commands.d.ts.map +1 -1
  87. package/dist/ipc/protocol/commands.js.map +1 -1
  88. package/dist/session/cleanup.d.ts.map +1 -1
  89. package/dist/session/cleanup.js +2 -0
  90. package/dist/session/cleanup.js.map +1 -1
  91. package/dist/session/queryCache.d.ts +35 -0
  92. package/dist/session/queryCache.d.ts.map +1 -0
  93. package/dist/session/queryCache.js +83 -0
  94. package/dist/session/queryCache.js.map +1 -0
  95. package/dist/telemetry/a11y.d.ts +8 -5
  96. package/dist/telemetry/a11y.d.ts.map +1 -1
  97. package/dist/telemetry/a11y.js +34 -19
  98. package/dist/telemetry/a11y.js.map +1 -1
  99. package/dist/types/dom.d.ts +9 -0
  100. package/dist/types/dom.d.ts.map +1 -1
  101. package/dist/ui/errors/CommandError.d.ts +5 -1
  102. package/dist/ui/errors/CommandError.d.ts.map +1 -1
  103. package/dist/ui/errors/CommandError.js.map +1 -1
  104. package/dist/ui/formatters/__tests__/preview.unit.test.d.ts +13 -0
  105. package/dist/ui/formatters/__tests__/preview.unit.test.d.ts.map +1 -0
  106. package/dist/ui/formatters/__tests__/preview.unit.test.js +180 -0
  107. package/dist/ui/formatters/__tests__/preview.unit.test.js.map +1 -0
  108. package/dist/ui/formatters/a11y.d.ts +19 -0
  109. package/dist/ui/formatters/a11y.d.ts.map +1 -1
  110. package/dist/ui/formatters/a11y.js +60 -0
  111. package/dist/ui/formatters/a11y.js.map +1 -1
  112. package/dist/ui/formatters/dom.d.ts.map +1 -1
  113. package/dist/ui/formatters/dom.js +5 -2
  114. package/dist/ui/formatters/dom.js.map +1 -1
  115. package/dist/ui/formatters/helpFormatters.d.ts +41 -0
  116. package/dist/ui/formatters/helpFormatters.d.ts.map +1 -0
  117. package/dist/ui/formatters/helpFormatters.js +80 -0
  118. package/dist/ui/formatters/helpFormatters.js.map +1 -0
  119. package/dist/ui/formatters/preview.d.ts +4 -0
  120. package/dist/ui/formatters/preview.d.ts.map +1 -1
  121. package/dist/ui/formatters/preview.js +91 -23
  122. package/dist/ui/formatters/preview.js.map +1 -1
  123. package/dist/ui/formatters/sessionFormatters.d.ts +58 -0
  124. package/dist/ui/formatters/sessionFormatters.d.ts.map +1 -0
  125. package/dist/ui/formatters/sessionFormatters.js +118 -0
  126. package/dist/ui/formatters/sessionFormatters.js.map +1 -0
  127. package/dist/ui/messages/commands.d.ts +9 -0
  128. package/dist/ui/messages/commands.d.ts.map +1 -1
  129. package/dist/ui/messages/commands.js +11 -1
  130. package/dist/ui/messages/commands.js.map +1 -1
  131. package/dist/ui/messages/errors.d.ts +53 -0
  132. package/dist/ui/messages/errors.d.ts.map +1 -1
  133. package/dist/ui/messages/errors.js +59 -0
  134. package/dist/ui/messages/errors.js.map +1 -1
  135. package/dist/ui/messages/hints.d.ts +33 -0
  136. package/dist/ui/messages/hints.d.ts.map +1 -0
  137. package/dist/ui/messages/hints.js +37 -0
  138. package/dist/ui/messages/hints.js.map +1 -0
  139. package/dist/ui/messages/session.d.ts +11 -1
  140. package/dist/ui/messages/session.d.ts.map +1 -1
  141. package/dist/ui/messages/session.js +14 -21
  142. package/dist/ui/messages/session.js.map +1 -1
  143. package/dist/utils/decisionTrees.d.ts +54 -0
  144. package/dist/utils/decisionTrees.d.ts.map +1 -0
  145. package/dist/utils/decisionTrees.js +176 -0
  146. package/dist/utils/decisionTrees.js.map +1 -0
  147. package/dist/utils/taskMappings.d.ts +47 -0
  148. package/dist/utils/taskMappings.d.ts.map +1 -0
  149. package/dist/utils/taskMappings.js +123 -0
  150. package/dist/utils/taskMappings.js.map +1 -0
  151. package/dist/utils/url.d.ts.map +1 -1
  152. package/dist/utils/url.js +15 -2
  153. package/dist/utils/url.js.map +1 -1
  154. package/package.json +3 -3
@@ -82,4 +82,63 @@ export function unknownError() {
82
82
  export function invalidResponseError(reason) {
83
83
  return `[bdg] Invalid response from daemon: ${reason}`;
84
84
  }
85
+ /**
86
+ * Generate session not active error with state-aware suggestion.
87
+ *
88
+ * Provides context-appropriate guidance based on what operation was attempted.
89
+ *
90
+ * @param operation - Operation that was attempted (e.g., "peek", "dom query")
91
+ * @returns Formatted error message with suggestions
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * throw new CommandError(
96
+ * sessionNotActiveError('peek'),
97
+ * {},
98
+ * EXIT_CODES.RESOURCE_NOT_FOUND
99
+ * );
100
+ * ```
101
+ */
102
+ export function sessionNotActiveError(operation) {
103
+ return joinLines(`Error: Cannot ${operation} - no active session`, '', 'Start a session first:', ' bdg <url>', '', 'Example:', ' bdg https://example.com', ` bdg ${operation}`);
104
+ }
105
+ /**
106
+ * Generate element not found error with CDP fallback.
107
+ *
108
+ * Provides guidance for when high-level DOM commands fail to find elements,
109
+ * including CDP alternatives for complex queries.
110
+ *
111
+ * @param selector - CSS selector that failed
112
+ * @returns Formatted error message with fallback suggestions
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * throw new CommandError(
117
+ * elementNotFoundError('#missing-element'),
118
+ * { cdpAlternative: 'Use Runtime.evaluate for complex queries' },
119
+ * EXIT_CODES.RESOURCE_NOT_FOUND
120
+ * );
121
+ * ```
122
+ */
123
+ export function elementNotFoundError(selector) {
124
+ return joinLines(`Error: Element not found: ${selector}`, '', 'Suggestions:', ' - Check the selector syntax', ' - Wait for the element to load (page might still be loading)', ' - Use bdg peek to see if page loaded correctly', '', 'Advanced: Use CDP for complex queries:', ` bdg cdp Runtime.evaluate --params '{"expression":"document.querySelector('${selector}')"}'`);
125
+ }
126
+ /**
127
+ * Generate command requires session error.
128
+ *
129
+ * Generic error for commands that require an active session but one is not found.
130
+ * Provides clear guidance on starting a session.
131
+ *
132
+ * @param commandName - Name of command that was attempted
133
+ * @returns Formatted error message
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const error = commandRequiresSessionError('dom query');
138
+ * console.error(error);
139
+ * ```
140
+ */
141
+ export function commandRequiresSessionError(commandName) {
142
+ return joinLines(`Error: '${commandName}' requires an active session`, '', 'Start a session:', ' bdg <url>', '', 'Check session status:', ' bdg status');
143
+ }
85
144
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/ui/messages/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAAW,EACX,QAAgB,EAChB,SAAkB;IAElB,OAAO,SAAS,CACd,EAAE,EACF,gCAAgC,EAChC,EAAE,EACF,eAAe,GAAG,EAAE,EACpB,SAAS,IAAI,eAAe,SAAS,EAAE,EACvC,eAAe,cAAc,CAAC,QAAQ,CAAC,EAAE,EACzC,EAAE,EACF,cAAc,EACd,gCAAgC,EAChC,2CAA2C,EAC3C,EAAE,CACH,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA4B;IAChE,OAAO,SAAS,CACd,2BAA2B,EAC3B,OAAO,EAAE,cAAc,IAAI,iCAAiC,EAC5D,OAAO,EAAE,SAAS,IAAI,eAAe,OAAO,CAAC,SAAS,EAAE,EACxD,EAAE,EACF,sBAAsB,EACtB,aAAa,EACb,OAAO,EAAE,aAAa,IAAI,EAAE,EAC5B,OAAO,EAAE,aAAa,IAAI,yBAAyB,EACnD,OAAO,EAAE,aAAa,IAAI,cAAc,EACxC,OAAO,EAAE,YAAY,IAAI,EAAE,EAC3B,OAAO,EAAE,YAAY,IAAI,gDAAgD,CAC1E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAAgB;IAC5D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,UAAU,OAAO,KAAK,OAAO,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,UAAU,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO,uCAAuC,MAAM,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/ui/messages/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAAW,EACX,QAAgB,EAChB,SAAkB;IAElB,OAAO,SAAS,CACd,EAAE,EACF,gCAAgC,EAChC,EAAE,EACF,eAAe,GAAG,EAAE,EACpB,SAAS,IAAI,eAAe,SAAS,EAAE,EACvC,eAAe,cAAc,CAAC,QAAQ,CAAC,EAAE,EACzC,EAAE,EACF,cAAc,EACd,gCAAgC,EAChC,2CAA2C,EAC3C,EAAE,CACH,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA4B;IAChE,OAAO,SAAS,CACd,2BAA2B,EAC3B,OAAO,EAAE,cAAc,IAAI,iCAAiC,EAC5D,OAAO,EAAE,SAAS,IAAI,eAAe,OAAO,CAAC,SAAS,EAAE,EACxD,EAAE,EACF,sBAAsB,EACtB,aAAa,EACb,OAAO,EAAE,aAAa,IAAI,EAAE,EAC5B,OAAO,EAAE,aAAa,IAAI,yBAAyB,EACnD,OAAO,EAAE,aAAa,IAAI,cAAc,EACxC,OAAO,EAAE,YAAY,IAAI,EAAE,EAC3B,OAAO,EAAE,YAAY,IAAI,gDAAgD,CAC1E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAAgB;IAC5D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,UAAU,OAAO,KAAK,OAAO,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,UAAU,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO,uCAAuC,MAAM,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,SAAS,CACd,iBAAiB,SAAS,sBAAsB,EAChD,EAAE,EACF,wBAAwB,EACxB,aAAa,EACb,EAAE,EACF,UAAU,EACV,2BAA2B,EAC3B,SAAS,SAAS,EAAE,CACrB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,SAAS,CACd,6BAA6B,QAAQ,EAAE,EACvC,EAAE,EACF,cAAc,EACd,+BAA+B,EAC/B,gEAAgE,EAChE,kDAAkD,EAClD,EAAE,EACF,wCAAwC,EACxC,+EAA+E,QAAQ,OAAO,CAC/F,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAmB;IAC7D,OAAO,SAAS,CACd,WAAW,WAAW,8BAA8B,EACpD,EAAE,EACF,kBAAkB,EAClB,aAAa,EACb,EAAE,EACF,uBAAuB,EACvB,cAAc,CACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Runtime hint message generators.
3
+ *
4
+ * Provides formatted hint messages that guide agents toward more
5
+ * efficient command patterns during active sessions.
6
+ */
7
+ import type { PatternDefinition } from '../../daemon/patternDefinitions.js';
8
+ /**
9
+ * Generate runtime pattern hint message.
10
+ *
11
+ * Creates a formatted hint suggesting a more efficient command alternative.
12
+ *
13
+ * @param pattern - Detected pattern with alternative suggestion
14
+ * @returns Formatted hint message
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const hint = generatePatternHint(pattern);
19
+ * console.error(hint);
20
+ * ```
21
+ */
22
+ export declare function generatePatternHint(pattern: PatternDefinition): string;
23
+ /**
24
+ * Generate hint for multiple Runtime.evaluate calls.
25
+ *
26
+ * Specialized hint for the common pattern of multiple evaluate calls
27
+ * that could be consolidated.
28
+ *
29
+ * @param count - Number of Runtime.evaluate calls detected
30
+ * @returns Formatted hint message
31
+ */
32
+ export declare function generateMultipleEvaluateHint(count: number): string;
33
+ //# sourceMappingURL=hints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/hints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGxE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAMtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQlE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Runtime hint message generators.
3
+ *
4
+ * Provides formatted hint messages that guide agents toward more
5
+ * efficient command patterns during active sessions.
6
+ */
7
+ import { joinLines } from '../../ui/formatting.js';
8
+ /**
9
+ * Generate runtime pattern hint message.
10
+ *
11
+ * Creates a formatted hint suggesting a more efficient command alternative.
12
+ *
13
+ * @param pattern - Detected pattern with alternative suggestion
14
+ * @returns Formatted hint message
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const hint = generatePatternHint(pattern);
19
+ * console.error(hint);
20
+ * ```
21
+ */
22
+ export function generatePatternHint(pattern) {
23
+ return joinLines('', `Hint: Consider using '${pattern.alternative}' instead of ${pattern.cdpMethods.join(' or ')}`, '');
24
+ }
25
+ /**
26
+ * Generate hint for multiple Runtime.evaluate calls.
27
+ *
28
+ * Specialized hint for the common pattern of multiple evaluate calls
29
+ * that could be consolidated.
30
+ *
31
+ * @param count - Number of Runtime.evaluate calls detected
32
+ * @returns Formatted hint message
33
+ */
34
+ export function generateMultipleEvaluateHint(count) {
35
+ return joinLines('', `Hint: Detected ${count} Runtime.evaluate calls`, ` Consider using 'bdg dom eval' for JavaScript execution`, ` Or 'bdg dom query' for DOM queries`, '');
36
+ }
37
+ //# sourceMappingURL=hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints.js","sourceRoot":"","sources":["../../../src/ui/messages/hints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA0B;IAC5D,OAAO,SAAS,CACd,EAAE,EACF,yBAAyB,OAAO,CAAC,WAAW,gBAAgB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAC7F,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,OAAO,SAAS,CACd,EAAE,EACF,kBAAkB,KAAK,yBAAyB,EAChD,2DAA2D,EAC3D,uCAAuC,EACvC,EAAE,CACH,CAAC;AACJ,CAAC"}
@@ -14,7 +14,17 @@ export interface LandingPageOptions {
14
14
  /**
15
15
  * Generate the landing page display for session start.
16
16
  *
17
- * Shows a clean, organized overview of available commands grouped by domain.
17
+ * Shows a clean, organized overview of available commands grouped by priority.
18
+ * High-level commands are presented first to guide agents toward token-efficient
19
+ * wrappers before falling back to verbose CDP commands.
20
+ *
21
+ * Section order optimized for agent discoverability:
22
+ * 1. Common tasks with token savings estimates
23
+ * 2. Comprehensive domain command coverage (12+ commands)
24
+ * 3. Live monitoring capabilities
25
+ * 4. Session management
26
+ * 5. Advanced CDP access (positioned as fallback)
27
+ * 6. Discovery resources for agents
18
28
  *
19
29
  * @param options - Landing page options
20
30
  * @returns Formatted landing page string
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAsC/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAsB/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -4,11 +4,22 @@
4
4
  * Centralized location for all session UI text including landing pages,
5
5
  * status displays, and session management messages.
6
6
  */
7
- import { section, joinLines } from '../../ui/formatting.js';
7
+ import { buildCommonTasksSection, buildDomainCommandsSection, buildLiveMonitoringSection, buildSessionManagementSection, buildCdpSection, buildDiscoverySection, } from '../../ui/formatters/sessionFormatters.js';
8
+ import { joinLines } from '../../ui/formatting.js';
8
9
  /**
9
10
  * Generate the landing page display for session start.
10
11
  *
11
- * Shows a clean, organized overview of available commands grouped by domain.
12
+ * Shows a clean, organized overview of available commands grouped by priority.
13
+ * High-level commands are presented first to guide agents toward token-efficient
14
+ * wrappers before falling back to verbose CDP commands.
15
+ *
16
+ * Section order optimized for agent discoverability:
17
+ * 1. Common tasks with token savings estimates
18
+ * 2. Comprehensive domain command coverage (12+ commands)
19
+ * 3. Live monitoring capabilities
20
+ * 4. Session management
21
+ * 5. Advanced CDP access (positioned as fallback)
22
+ * 6. Discovery resources for agents
12
23
  *
13
24
  * @param options - Landing page options
14
25
  * @returns Formatted landing page string
@@ -23,25 +34,7 @@ import { section, joinLines } from '../../ui/formatting.js';
23
34
  */
24
35
  export function landingPage(options) {
25
36
  const { url } = options;
26
- return joinLines('', '◆ Session Started', '', `Target: ${url}`, '', section('Raw CDP Access (53 domains, 300+ methods):', [
27
- 'bdg cdp --list List all domains',
28
- 'bdg cdp Network --list List Network methods',
29
- 'bdg cdp --search cookie Search methods',
30
- 'bdg cdp runtime.evaluate --params \'{"expression":"document.title"}\'',
31
- ]), '', section('Live Monitoring:', [
32
- 'bdg peek Preview collected data (last 10 items)',
33
- 'bdg tail Continuous monitoring (live updates)',
34
- 'bdg details <type> <id> Full request/console details',
35
- ]), '', section('Domain Wrappers:', [
36
- 'bdg dom query <selector> Query DOM elements',
37
- 'bdg dom eval <js> Execute JavaScript',
38
- ]), '', section('Session:', [
39
- 'bdg status Check session state',
40
- 'bdg stop End session & save output',
41
- ]), '', section('Discovery (for AI agents):', [
42
- 'bdg --help --json Machine-readable schema (commands, options, exit codes)',
43
- '.claude/skills/bdg/ Claude skill with 15+ recipes & patterns',
44
- ]), '');
37
+ return joinLines('', 'Session Started', '', `Target: ${url}`, '', buildCommonTasksSection(), '', buildDomainCommandsSection(), '', buildLiveMonitoringSection(), '', buildSessionManagementSection(), '', buildCdpSection(), '', buildDiscoverySection(), '');
45
38
  }
46
39
  /**
47
40
  * Generate "session stopped" success message.
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAUxD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,OAAO,SAAS,CACd,EAAE,EACF,mBAAmB,EACnB,EAAE,EACF,WAAW,GAAG,EAAE,EAChB,EAAE,EACF,OAAO,CAAC,4CAA4C,EAAE;QACpD,6CAA6C;QAC7C,iDAAiD;QACjD,2CAA2C;QAC3C,uEAAuE;KACxE,CAAC,EACF,EAAE,EACF,OAAO,CAAC,kBAAkB,EAAE;QAC1B,wDAAwD;QACxD,sDAAsD;QACtD,yDAAyD;KAC1D,CAAC,EACF,EAAE,EACF,OAAO,CAAC,kBAAkB,EAAE;QAC1B,+CAA+C;QAC/C,+CAA+C;KAChD,CAAC,EACF,EAAE,EACF,OAAO,CAAC,UAAU,EAAE;QAClB,qCAAqC;QACrC,2CAA2C;KAC5C,CAAC,EACF,EAAE,EACF,OAAO,CAAC,4BAA4B,EAAE;QACpC,oFAAoF;QACpF,qEAAqE;KACtE,CAAC,EACF,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,qCAAqC,UAAU,EAAE,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,8BAA8B;IACvC,UAAU,EAAE,yBAAyB;IACrC,MAAM,EAAE,wBAAwB;IAChC,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,wBAAwB,MAAM,EAAE,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/ui/messages/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,OAAO,SAAS,CACd,EAAE,EACF,iBAAiB,EACjB,EAAE,EACF,WAAW,GAAG,EAAE,EAChB,EAAE,EACF,uBAAuB,EAAE,EACzB,EAAE,EACF,0BAA0B,EAAE,EAC5B,EAAE,EACF,0BAA0B,EAAE,EAC5B,EAAE,EACF,6BAA6B,EAAE,EAC/B,EAAE,EACF,eAAe,EAAE,EACjB,EAAE,EACF,qBAAqB,EAAE,EACvB,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,qCAAqC,UAAU,EAAE,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,8BAA8B;IACvC,UAAU,EAAE,yBAAyB;IACrC,MAAM,EAAE,wBAAwB;IAChC,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,wBAAwB,MAAM,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Decision tree definitions for intent-based command discovery.
3
+ *
4
+ * Provides structured guidance trees that help agents navigate
5
+ * from high-level intents to specific commands through question-based flow.
6
+ */
7
+ /**
8
+ * Decision tree node representing a question and actions.
9
+ */
10
+ export interface DecisionTreeNode {
11
+ /** Question to determine next action */
12
+ question: string;
13
+ /** Command to execute if answer is yes */
14
+ yesCommand: string;
15
+ /** Next action if answer is no (command name or "next" to continue) */
16
+ noAction: string;
17
+ }
18
+ /**
19
+ * Complete decision tree for a specific intent domain.
20
+ */
21
+ export interface DecisionTree {
22
+ /** High-level intent this tree addresses */
23
+ intent: string;
24
+ /** Ordered sequence of decision nodes */
25
+ steps: DecisionTreeNode[];
26
+ }
27
+ /**
28
+ * Decision tree registry mapping intent domains to guidance flows.
29
+ */
30
+ export declare const DECISION_TREES: Record<string, DecisionTree>;
31
+ /**
32
+ * Get decision tree by domain key.
33
+ *
34
+ * @param treeKey - Decision tree identifier
35
+ * @returns Decision tree if found, undefined otherwise
36
+ */
37
+ export declare function getDecisionTree(treeKey: string): DecisionTree | undefined;
38
+ /**
39
+ * Get all decision trees.
40
+ *
41
+ * @returns Complete decision tree registry
42
+ */
43
+ export declare function getAllDecisionTrees(): Record<string, DecisionTree>;
44
+ /**
45
+ * Search decision trees by intent keyword.
46
+ *
47
+ * @param keyword - Search term (case-insensitive)
48
+ * @returns Matching decision trees with keys
49
+ */
50
+ export declare function searchDecisionTrees(keyword: string): Array<{
51
+ key: string;
52
+ tree: DecisionTree;
53
+ }>;
54
+ //# sourceMappingURL=decisionTrees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisionTrees.d.ts","sourceRoot":"","sources":["../../src/utils/decisionTrees.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA4IvD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAK/F"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Decision tree definitions for intent-based command discovery.
3
+ *
4
+ * Provides structured guidance trees that help agents navigate
5
+ * from high-level intents to specific commands through question-based flow.
6
+ */
7
+ /**
8
+ * Decision tree registry mapping intent domains to guidance flows.
9
+ */
10
+ export const DECISION_TREES = {
11
+ dom_interaction: {
12
+ intent: 'Interact with page elements and DOM',
13
+ steps: [
14
+ {
15
+ question: 'Need to capture a screenshot?',
16
+ yesCommand: 'dom screenshot',
17
+ noAction: 'next',
18
+ },
19
+ {
20
+ question: 'Need to query/find elements?',
21
+ yesCommand: 'dom query',
22
+ noAction: 'next',
23
+ },
24
+ {
25
+ question: 'Need to get detailed element information?',
26
+ yesCommand: 'dom get',
27
+ noAction: 'next',
28
+ },
29
+ {
30
+ question: 'Need to fill form input?',
31
+ yesCommand: 'dom fill',
32
+ noAction: 'next',
33
+ },
34
+ {
35
+ question: 'Need to click an element?',
36
+ yesCommand: 'dom click',
37
+ noAction: 'next',
38
+ },
39
+ {
40
+ question: 'Need to press a key (Enter, Tab, Escape)?',
41
+ yesCommand: 'dom pressKey',
42
+ noAction: 'next',
43
+ },
44
+ {
45
+ question: 'Need to execute custom JavaScript?',
46
+ yesCommand: 'dom eval',
47
+ noAction: 'next',
48
+ },
49
+ {
50
+ question: 'Need accessibility tree?',
51
+ yesCommand: 'dom a11y',
52
+ noAction: 'cdp',
53
+ },
54
+ ],
55
+ },
56
+ network_inspection: {
57
+ intent: 'Inspect network traffic and requests',
58
+ steps: [
59
+ {
60
+ question: 'Need to export all traffic as HAR file?',
61
+ yesCommand: 'network har',
62
+ noAction: 'next',
63
+ },
64
+ {
65
+ question: 'Need to get cookies?',
66
+ yesCommand: 'network getCookies',
67
+ noAction: 'next',
68
+ },
69
+ {
70
+ question: 'Need HTTP headers for specific request?',
71
+ yesCommand: 'network headers',
72
+ noAction: 'next',
73
+ },
74
+ {
75
+ question: 'Need full request/response details?',
76
+ yesCommand: 'details network',
77
+ noAction: 'cdp',
78
+ },
79
+ ],
80
+ },
81
+ console_inspection: {
82
+ intent: 'Inspect console logs and messages',
83
+ steps: [
84
+ {
85
+ question: 'Need to query/filter console logs?',
86
+ yesCommand: 'console query',
87
+ noAction: 'next',
88
+ },
89
+ {
90
+ question: 'Need full console message details?',
91
+ yesCommand: 'details console',
92
+ noAction: 'cdp',
93
+ },
94
+ ],
95
+ },
96
+ data_monitoring: {
97
+ intent: 'Monitor and preview collected data',
98
+ steps: [
99
+ {
100
+ question: 'Need real-time live updates?',
101
+ yesCommand: 'peek --follow',
102
+ noAction: 'next',
103
+ },
104
+ {
105
+ question: 'Need continuous monitoring (like tail -f)?',
106
+ yesCommand: 'tail',
107
+ noAction: 'next',
108
+ },
109
+ {
110
+ question: 'Need quick preview of recent data?',
111
+ yesCommand: 'peek',
112
+ noAction: 'next',
113
+ },
114
+ {
115
+ question: 'Need detailed item inspection?',
116
+ yesCommand: 'details',
117
+ noAction: 'status',
118
+ },
119
+ ],
120
+ },
121
+ session_management: {
122
+ intent: 'Manage browser session lifecycle',
123
+ steps: [
124
+ {
125
+ question: 'Starting a new session?',
126
+ yesCommand: 'bdg <url>',
127
+ noAction: 'next',
128
+ },
129
+ {
130
+ question: 'Need to check session status?',
131
+ yesCommand: 'status',
132
+ noAction: 'next',
133
+ },
134
+ {
135
+ question: 'Ready to end session and save output?',
136
+ yesCommand: 'stop',
137
+ noAction: 'next',
138
+ },
139
+ {
140
+ question: 'Need to clean up stale sessions?',
141
+ yesCommand: 'cleanup',
142
+ noAction: 'help',
143
+ },
144
+ ],
145
+ },
146
+ };
147
+ /**
148
+ * Get decision tree by domain key.
149
+ *
150
+ * @param treeKey - Decision tree identifier
151
+ * @returns Decision tree if found, undefined otherwise
152
+ */
153
+ export function getDecisionTree(treeKey) {
154
+ return DECISION_TREES[treeKey];
155
+ }
156
+ /**
157
+ * Get all decision trees.
158
+ *
159
+ * @returns Complete decision tree registry
160
+ */
161
+ export function getAllDecisionTrees() {
162
+ return DECISION_TREES;
163
+ }
164
+ /**
165
+ * Search decision trees by intent keyword.
166
+ *
167
+ * @param keyword - Search term (case-insensitive)
168
+ * @returns Matching decision trees with keys
169
+ */
170
+ export function searchDecisionTrees(keyword) {
171
+ const lowerKeyword = keyword.toLowerCase();
172
+ return Object.entries(DECISION_TREES)
173
+ .filter(([, tree]) => tree.intent.toLowerCase().includes(lowerKeyword))
174
+ .map(([key, tree]) => ({ key, tree }));
175
+ }
176
+ //# sourceMappingURL=decisionTrees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisionTrees.js","sourceRoot":"","sources":["../../src/utils/decisionTrees.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Task-to-command mapping definitions for agent discovery.
3
+ *
4
+ * Provides intent-based guidance mapping common automation tasks
5
+ * to efficient high-level commands with CDP alternatives.
6
+ */
7
+ /**
8
+ * Task mapping from intent to command.
9
+ */
10
+ export interface TaskMapping {
11
+ /** High-level commands that accomplish this task */
12
+ commands: string[];
13
+ /** Human-readable task description */
14
+ description: string;
15
+ /** CDP alternative method(s) */
16
+ cdpAlternative: string;
17
+ }
18
+ /**
19
+ * Complete task mapping registry.
20
+ *
21
+ * Maps common automation intents to optimal command patterns.
22
+ */
23
+ export declare const TASK_MAPPINGS: Record<string, TaskMapping>;
24
+ /**
25
+ * Get task mapping by key.
26
+ *
27
+ * @param taskKey - Task identifier
28
+ * @returns Task mapping if found, undefined otherwise
29
+ */
30
+ export declare function getTaskMapping(taskKey: string): TaskMapping | undefined;
31
+ /**
32
+ * Get all task mappings.
33
+ *
34
+ * @returns Complete task mapping registry
35
+ */
36
+ export declare function getAllTaskMappings(): Record<string, TaskMapping>;
37
+ /**
38
+ * Search task mappings by description keyword.
39
+ *
40
+ * @param keyword - Search term (case-insensitive)
41
+ * @returns Matching task mappings with keys
42
+ */
43
+ export declare function searchTaskMappings(keyword: string): Array<{
44
+ key: string;
45
+ mapping: TaskMapping;
46
+ }>;
47
+ //# sourceMappingURL=taskMappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskMappings.d.ts","sourceRoot":"","sources":["../../src/utils/taskMappings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgGrD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,CAKhG"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Task-to-command mapping definitions for agent discovery.
3
+ *
4
+ * Provides intent-based guidance mapping common automation tasks
5
+ * to efficient high-level commands with CDP alternatives.
6
+ */
7
+ /**
8
+ * Complete task mapping registry.
9
+ *
10
+ * Maps common automation intents to optimal command patterns.
11
+ */
12
+ export const TASK_MAPPINGS = {
13
+ capture_screenshot: {
14
+ commands: ['dom screenshot'],
15
+ description: 'Capture full page screenshot to file',
16
+ cdpAlternative: 'Page.captureScreenshot',
17
+ },
18
+ query_dom_elements: {
19
+ commands: ['dom query'],
20
+ description: 'Query DOM elements by CSS selector',
21
+ cdpAlternative: 'Runtime.evaluate with querySelector',
22
+ },
23
+ execute_javascript: {
24
+ commands: ['dom eval'],
25
+ description: 'Execute arbitrary JavaScript in page context',
26
+ cdpAlternative: 'Runtime.evaluate',
27
+ },
28
+ fill_form_input: {
29
+ commands: ['dom fill'],
30
+ description: 'Fill form input field by selector',
31
+ cdpAlternative: 'Runtime.evaluate with value assignment',
32
+ },
33
+ click_element: {
34
+ commands: ['dom click'],
35
+ description: 'Click element by selector',
36
+ cdpAlternative: 'Runtime.evaluate with click()',
37
+ },
38
+ press_key: {
39
+ commands: ['dom pressKey'],
40
+ description: 'Press keyboard key on element (Enter, Tab, Escape, etc.)',
41
+ cdpAlternative: 'Input.dispatchKeyEvent',
42
+ },
43
+ get_element_details: {
44
+ commands: ['dom get'],
45
+ description: 'Get detailed element information',
46
+ cdpAlternative: 'Runtime.evaluate with property extraction',
47
+ },
48
+ accessibility_tree: {
49
+ commands: ['dom a11y'],
50
+ description: 'Get accessibility tree for page or element',
51
+ cdpAlternative: 'Accessibility.getFullAXTree',
52
+ },
53
+ export_har: {
54
+ commands: ['network har'],
55
+ description: 'Export network traffic as HAR file',
56
+ cdpAlternative: 'Network domain events collection',
57
+ },
58
+ get_cookies: {
59
+ commands: ['network getCookies'],
60
+ description: 'Get all cookies for current page',
61
+ cdpAlternative: 'Network.getAllCookies',
62
+ },
63
+ get_request_headers: {
64
+ commands: ['network headers'],
65
+ description: 'Get HTTP headers for specific request',
66
+ cdpAlternative: 'Network.getResponseBody + event data',
67
+ },
68
+ query_console_logs: {
69
+ commands: ['console query'],
70
+ description: 'Query and filter console log messages',
71
+ cdpAlternative: 'Runtime.consoleAPICalled events',
72
+ },
73
+ preview_data: {
74
+ commands: ['peek'],
75
+ description: 'Preview collected network and console data',
76
+ cdpAlternative: 'Multiple IPC queries to worker state',
77
+ },
78
+ live_monitoring: {
79
+ commands: ['peek --follow', 'tail'],
80
+ description: 'Monitor data collection in real-time',
81
+ cdpAlternative: 'CDP event subscriptions with custom handler',
82
+ },
83
+ get_full_details: {
84
+ commands: ['details network', 'details console'],
85
+ description: 'Get complete request/response or console message details',
86
+ cdpAlternative: 'Worker state query + response body fetch',
87
+ },
88
+ check_session_status: {
89
+ commands: ['status'],
90
+ description: 'Check current session and daemon status',
91
+ cdpAlternative: 'IPC ping + process checks',
92
+ },
93
+ };
94
+ /**
95
+ * Get task mapping by key.
96
+ *
97
+ * @param taskKey - Task identifier
98
+ * @returns Task mapping if found, undefined otherwise
99
+ */
100
+ export function getTaskMapping(taskKey) {
101
+ return TASK_MAPPINGS[taskKey];
102
+ }
103
+ /**
104
+ * Get all task mappings.
105
+ *
106
+ * @returns Complete task mapping registry
107
+ */
108
+ export function getAllTaskMappings() {
109
+ return TASK_MAPPINGS;
110
+ }
111
+ /**
112
+ * Search task mappings by description keyword.
113
+ *
114
+ * @param keyword - Search term (case-insensitive)
115
+ * @returns Matching task mappings with keys
116
+ */
117
+ export function searchTaskMappings(keyword) {
118
+ const lowerKeyword = keyword.toLowerCase();
119
+ return Object.entries(TASK_MAPPINGS)
120
+ .filter(([, mapping]) => mapping.description.toLowerCase().includes(lowerKeyword))
121
+ .map(([key, mapping]) => ({ key, mapping }));
122
+ }
123
+ //# sourceMappingURL=taskMappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskMappings.js","sourceRoot":"","sources":["../../src/utils/taskMappings.ts"],"names":[],"mappings":"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"}