browser-debugger-cli 0.6.6 → 0.6.8

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 (238) hide show
  1. package/README.md +48 -269
  2. package/dist/commands/__tests__/console.contract.test.d.ts +9 -0
  3. package/dist/commands/__tests__/console.contract.test.d.ts.map +1 -0
  4. package/dist/commands/__tests__/console.contract.test.js +118 -0
  5. package/dist/commands/__tests__/console.contract.test.js.map +1 -0
  6. package/dist/commands/__tests__/helpJson.contract.test.d.ts +12 -0
  7. package/dist/commands/__tests__/helpJson.contract.test.d.ts.map +1 -0
  8. package/dist/commands/__tests__/helpJson.contract.test.js +121 -0
  9. package/dist/commands/__tests__/helpJson.contract.test.js.map +1 -0
  10. package/dist/commands/__tests__/machineReadableHelp.contract.test.js +26 -7
  11. package/dist/commands/__tests__/machineReadableHelp.contract.test.js.map +1 -1
  12. package/dist/commands/cdp.d.ts.map +1 -1
  13. package/dist/commands/cdp.js.map +1 -1
  14. package/dist/commands/cleanup.d.ts.map +1 -1
  15. package/dist/commands/cleanup.js +17 -91
  16. package/dist/commands/cleanup.js.map +1 -1
  17. package/dist/commands/console.d.ts +17 -0
  18. package/dist/commands/console.d.ts.map +1 -1
  19. package/dist/commands/console.js +158 -56
  20. package/dist/commands/console.js.map +1 -1
  21. package/dist/commands/details.d.ts.map +1 -1
  22. package/dist/commands/details.js +3 -1
  23. package/dist/commands/details.js.map +1 -1
  24. package/dist/commands/dom/DomElementResolver.d.ts +138 -0
  25. package/dist/commands/dom/DomElementResolver.d.ts.map +1 -0
  26. package/dist/commands/dom/DomElementResolver.js +173 -0
  27. package/dist/commands/dom/DomElementResolver.js.map +1 -0
  28. package/dist/commands/dom/a11y.d.ts.map +1 -1
  29. package/dist/commands/dom/a11y.js +4 -28
  30. package/dist/commands/dom/a11y.js.map +1 -1
  31. package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
  32. package/dist/commands/dom/evalHelpers.js +1 -1
  33. package/dist/commands/dom/evalHelpers.js.map +1 -1
  34. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  35. package/dist/commands/dom/formFillHelpers.js +11 -11
  36. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  37. package/dist/commands/dom/formInteraction.d.ts.map +1 -1
  38. package/dist/commands/dom/formInteraction.js +5 -5
  39. package/dist/commands/dom/formInteraction.js.map +1 -1
  40. package/dist/commands/dom/helpers.d.ts +0 -50
  41. package/dist/commands/dom/helpers.d.ts.map +1 -1
  42. package/dist/commands/dom/helpers.js +2 -56
  43. package/dist/commands/dom/helpers.js.map +1 -1
  44. package/dist/commands/dom/index.d.ts.map +1 -1
  45. package/dist/commands/dom/index.js +50 -44
  46. package/dist/commands/dom/index.js.map +1 -1
  47. package/dist/commands/dom/keyMapping.d.ts +0 -6
  48. package/dist/commands/dom/keyMapping.d.ts.map +1 -1
  49. package/dist/commands/dom/keyMapping.js +0 -8
  50. package/dist/commands/dom/keyMapping.js.map +1 -1
  51. package/dist/commands/dom/reactEventHelpers.d.ts +12 -18
  52. package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
  53. package/dist/commands/dom/reactEventHelpers.js +21 -70
  54. package/dist/commands/dom/reactEventHelpers.js.map +1 -1
  55. package/dist/commands/helpJson.d.ts +165 -0
  56. package/dist/commands/helpJson.d.ts.map +1 -0
  57. package/dist/commands/helpJson.js +252 -0
  58. package/dist/commands/helpJson.js.map +1 -0
  59. package/dist/commands/machineReadableHelp.d.ts +21 -2
  60. package/dist/commands/machineReadableHelp.d.ts.map +1 -1
  61. package/dist/commands/machineReadableHelp.js +95 -60
  62. package/dist/commands/machineReadableHelp.js.map +1 -1
  63. package/dist/commands/network.d.ts.map +1 -1
  64. package/dist/commands/network.js.map +1 -1
  65. package/dist/commands/peek.d.ts.map +1 -1
  66. package/dist/commands/peek.js +5 -7
  67. package/dist/commands/peek.js.map +1 -1
  68. package/dist/commands/shared/CommandRunner.d.ts +4 -10
  69. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  70. package/dist/commands/shared/CommandRunner.js +2 -2
  71. package/dist/commands/shared/CommandRunner.js.map +1 -1
  72. package/dist/commands/shared/commonOptions.d.ts +0 -15
  73. package/dist/commands/shared/commonOptions.d.ts.map +1 -1
  74. package/dist/commands/shared/commonOptions.js +0 -32
  75. package/dist/commands/shared/commonOptions.js.map +1 -1
  76. package/dist/commands/shared/optionTypes.d.ts +247 -0
  77. package/dist/commands/shared/optionTypes.d.ts.map +1 -0
  78. package/dist/commands/shared/optionTypes.js +20 -0
  79. package/dist/commands/shared/optionTypes.js.map +1 -0
  80. package/dist/commands/shared/startHelpers.d.ts.map +1 -1
  81. package/dist/commands/shared/startHelpers.js +3 -3
  82. package/dist/commands/shared/startHelpers.js.map +1 -1
  83. package/dist/commands/start.d.ts.map +1 -1
  84. package/dist/commands/start.js +8 -6
  85. package/dist/commands/start.js.map +1 -1
  86. package/dist/commands/status.d.ts.map +1 -1
  87. package/dist/commands/status.js.map +1 -1
  88. package/dist/commands/stop.d.ts.map +1 -1
  89. package/dist/commands/stop.js +17 -43
  90. package/dist/commands/stop.js.map +1 -1
  91. package/dist/commands/tail.d.ts.map +1 -1
  92. package/dist/commands/tail.js +49 -59
  93. package/dist/commands/tail.js.map +1 -1
  94. package/dist/connection/types.d.ts +2 -1
  95. package/dist/connection/types.d.ts.map +1 -1
  96. package/dist/constants.d.ts +14 -0
  97. package/dist/constants.d.ts.map +1 -1
  98. package/dist/constants.js +39 -0
  99. package/dist/constants.js.map +1 -1
  100. package/dist/daemon/handlers/responseHandler.d.ts.map +1 -1
  101. package/dist/daemon/handlers/responseHandler.js +1 -0
  102. package/dist/daemon/handlers/responseHandler.js.map +1 -1
  103. package/dist/daemon/ipcServer.js +8 -8
  104. package/dist/daemon/ipcServer.js.map +1 -1
  105. package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
  106. package/dist/daemon/lifecycle/signalHandlers.js +19 -3
  107. package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
  108. package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
  109. package/dist/daemon/lifecycle/workerCleanup.js +5 -2
  110. package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
  111. package/dist/daemon/patternDefinitions.d.ts +0 -13
  112. package/dist/daemon/patternDefinitions.d.ts.map +1 -1
  113. package/dist/daemon/patternDefinitions.js +0 -17
  114. package/dist/daemon/patternDefinitions.js.map +1 -1
  115. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
  116. package/dist/daemon/worker/commandRegistry.js +3 -0
  117. package/dist/daemon/worker/commandRegistry.js.map +1 -1
  118. package/dist/index.js +34 -2
  119. package/dist/index.js.map +1 -1
  120. package/dist/ipc/protocol/commands.d.ts +2 -0
  121. package/dist/ipc/protocol/commands.d.ts.map +1 -1
  122. package/dist/ipc/protocol/commands.js.map +1 -1
  123. package/dist/ipc/session/queries.d.ts +2 -0
  124. package/dist/ipc/session/queries.d.ts.map +1 -1
  125. package/dist/ipc/utils/responseValidator.d.ts +7 -1
  126. package/dist/ipc/utils/responseValidator.d.ts.map +1 -1
  127. package/dist/ipc/utils/responseValidator.js +6 -1
  128. package/dist/ipc/utils/responseValidator.js.map +1 -1
  129. package/dist/session/QueryCacheManager.d.ts +140 -0
  130. package/dist/session/QueryCacheManager.d.ts.map +1 -0
  131. package/dist/session/QueryCacheManager.js +233 -0
  132. package/dist/session/QueryCacheManager.js.map +1 -0
  133. package/dist/session/cleanup.d.ts +63 -1
  134. package/dist/session/cleanup.d.ts.map +1 -1
  135. package/dist/session/cleanup.js +191 -65
  136. package/dist/session/cleanup.js.map +1 -1
  137. package/dist/session/queryCache.d.ts +25 -14
  138. package/dist/session/queryCache.d.ts.map +1 -1
  139. package/dist/session/queryCache.js +31 -60
  140. package/dist/session/queryCache.js.map +1 -1
  141. package/dist/telemetry/__tests__/roleInference.unit.test.d.ts +9 -0
  142. package/dist/telemetry/__tests__/roleInference.unit.test.d.ts.map +1 -0
  143. package/dist/telemetry/__tests__/roleInference.unit.test.js +138 -0
  144. package/dist/telemetry/__tests__/roleInference.unit.test.js.map +1 -0
  145. package/dist/telemetry/console.d.ts.map +1 -1
  146. package/dist/telemetry/console.js +29 -17
  147. package/dist/telemetry/console.js.map +1 -1
  148. package/dist/telemetry/dom.d.ts +1 -0
  149. package/dist/telemetry/dom.d.ts.map +1 -1
  150. package/dist/telemetry/dom.js +9 -4
  151. package/dist/telemetry/dom.js.map +1 -1
  152. package/dist/telemetry/filters.d.ts +3 -0
  153. package/dist/telemetry/filters.d.ts.map +1 -1
  154. package/dist/telemetry/filters.js +25 -3
  155. package/dist/telemetry/filters.js.map +1 -1
  156. package/dist/telemetry/network.d.ts.map +1 -1
  157. package/dist/telemetry/network.js +35 -6
  158. package/dist/telemetry/network.js.map +1 -1
  159. package/dist/telemetry/remoteObject.d.ts +58 -0
  160. package/dist/telemetry/remoteObject.d.ts.map +1 -0
  161. package/dist/telemetry/remoteObject.js +134 -0
  162. package/dist/telemetry/remoteObject.js.map +1 -0
  163. package/dist/telemetry/roleInference.d.ts +50 -0
  164. package/dist/telemetry/roleInference.d.ts.map +1 -0
  165. package/dist/telemetry/roleInference.js +163 -0
  166. package/dist/telemetry/roleInference.js.map +1 -0
  167. package/dist/telemetry/utils.d.ts +0 -57
  168. package/dist/telemetry/utils.d.ts.map +1 -1
  169. package/dist/telemetry/utils.js +0 -71
  170. package/dist/telemetry/utils.js.map +1 -1
  171. package/dist/types/dom.d.ts +2 -0
  172. package/dist/types/dom.d.ts.map +1 -1
  173. package/dist/types.d.ts +23 -0
  174. package/dist/types.d.ts.map +1 -1
  175. package/dist/ui/formatters/a11y.d.ts +0 -9
  176. package/dist/ui/formatters/a11y.d.ts.map +1 -1
  177. package/dist/ui/formatters/a11y.js +0 -45
  178. package/dist/ui/formatters/a11y.js.map +1 -1
  179. package/dist/ui/formatters/console.d.ts +131 -0
  180. package/dist/ui/formatters/console.d.ts.map +1 -0
  181. package/dist/ui/formatters/console.js +400 -0
  182. package/dist/ui/formatters/console.js.map +1 -0
  183. package/dist/ui/formatters/preview.d.ts.map +1 -1
  184. package/dist/ui/formatters/preview.js +2 -39
  185. package/dist/ui/formatters/preview.js.map +1 -1
  186. package/dist/ui/logging/index.d.ts +1 -1
  187. package/dist/ui/logging/index.d.ts.map +1 -1
  188. package/dist/ui/logging/index.js +1 -1
  189. package/dist/ui/logging/index.js.map +1 -1
  190. package/dist/ui/logging/logger.d.ts +21 -0
  191. package/dist/ui/logging/logger.d.ts.map +1 -1
  192. package/dist/ui/logging/logger.js +24 -6
  193. package/dist/ui/logging/logger.js.map +1 -1
  194. package/dist/ui/messages/commands.d.ts +0 -14
  195. package/dist/ui/messages/commands.d.ts.map +1 -1
  196. package/dist/ui/messages/commands.js +0 -18
  197. package/dist/ui/messages/commands.js.map +1 -1
  198. package/dist/ui/messages/consoleMessages.d.ts +12 -27
  199. package/dist/ui/messages/consoleMessages.d.ts.map +1 -1
  200. package/dist/ui/messages/consoleMessages.js +16 -31
  201. package/dist/ui/messages/consoleMessages.js.map +1 -1
  202. package/dist/ui/messages/errors.d.ts +0 -16
  203. package/dist/ui/messages/errors.d.ts.map +1 -1
  204. package/dist/ui/messages/errors.js +0 -18
  205. package/dist/ui/messages/errors.js.map +1 -1
  206. package/dist/ui/messages/hints.d.ts +0 -10
  207. package/dist/ui/messages/hints.d.ts.map +1 -1
  208. package/dist/ui/messages/hints.js +0 -12
  209. package/dist/ui/messages/hints.js.map +1 -1
  210. package/dist/utils/decisionTrees.d.ts +0 -17
  211. package/dist/utils/decisionTrees.d.ts.map +1 -1
  212. package/dist/utils/decisionTrees.js +17 -23
  213. package/dist/utils/decisionTrees.js.map +1 -1
  214. package/dist/utils/errorMapping.d.ts +60 -0
  215. package/dist/utils/errorMapping.d.ts.map +1 -0
  216. package/dist/utils/errorMapping.js +97 -0
  217. package/dist/utils/errorMapping.js.map +1 -0
  218. package/dist/utils/file.d.ts +27 -0
  219. package/dist/utils/file.d.ts.map +1 -0
  220. package/dist/utils/file.js +37 -0
  221. package/dist/utils/file.js.map +1 -0
  222. package/dist/utils/levenshtein.d.ts +0 -17
  223. package/dist/utils/levenshtein.d.ts.map +1 -1
  224. package/dist/utils/levenshtein.js +0 -31
  225. package/dist/utils/levenshtein.js.map +1 -1
  226. package/dist/utils/strings.d.ts +14 -0
  227. package/dist/utils/strings.d.ts.map +1 -0
  228. package/dist/utils/strings.js +23 -0
  229. package/dist/utils/strings.js.map +1 -0
  230. package/dist/utils/taskMappings.d.ts +0 -17
  231. package/dist/utils/taskMappings.d.ts.map +1 -1
  232. package/dist/utils/taskMappings.js +18 -24
  233. package/dist/utils/taskMappings.js.map +1 -1
  234. package/dist/utils/typeGuards.d.ts +62 -0
  235. package/dist/utils/typeGuards.d.ts.map +1 -0
  236. package/dist/utils/typeGuards.js +94 -0
  237. package/dist/utils/typeGuards.js.map +1 -0
  238. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reactEventHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,o8FA4G7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,isEA8EhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,+pDAkEvC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"reactEventHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,o8FA4G7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,isEA8EhC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAIlE"}
@@ -213,76 +213,27 @@ export const CLICK_ELEMENT_SCRIPT = `
213
213
  })
214
214
  `;
215
215
  /**
216
- * JavaScript function to get multiple elements by selector.
216
+ * Type guard for FillResult.
217
217
  *
218
- * @remarks
219
- * Used when --index is specified to select from multiple matches.
218
+ * @param value - Value to check
219
+ * @returns True if value is a valid FillResult
220
220
  */
221
- export const GET_ELEMENT_BY_INDEX_SCRIPT = `
222
- (function(selector, index) {
223
- const elements = document.querySelectorAll(selector);
224
-
225
- if (elements.length === 0) {
226
- return {
227
- success: false,
228
- error: 'No elements found',
229
- selector: selector,
230
- matchCount: 0
231
- };
232
- }
233
-
234
- if (index < 1 || index > elements.length) {
235
- return {
236
- success: false,
237
- error: 'Index out of range',
238
- selector: selector,
239
- matchCount: elements.length,
240
- requestedIndex: index,
241
- suggestion: \`Use --index between 1 and \${elements.length}\`
242
- };
243
- }
244
-
245
- const el = elements[index - 1]; // Convert to 0-based
246
-
247
- function buildUniquePath(element) {
248
- if (element.id) {
249
- return \`#\${CSS.escape(element.id)}\`;
250
- }
251
-
252
- const path = [];
253
- let current = element;
254
-
255
- while (current && current !== document.documentElement) {
256
- let selector = current.tagName.toLowerCase();
257
-
258
- if (current.parentElement) {
259
- const siblings = Array.from(current.parentElement.children);
260
- const sameTagSiblings = siblings.filter(
261
- (sibling) => sibling.tagName === current!.tagName
262
- );
263
-
264
- if (sameTagSiblings.length > 1) {
265
- const index = sameTagSiblings.indexOf(current) + 1;
266
- selector += \`:nth-of-type(\${index})\`;
267
- }
268
- }
269
-
270
- path.unshift(selector);
271
- current = current.parentElement;
272
- }
273
-
274
- return 'html > ' + path.join(' > ');
275
- }
276
-
277
- const uniqueSelector = buildUniquePath(el);
278
-
279
- return {
280
- success: true,
281
- selector: selector,
282
- matchCount: elements.length,
283
- selectedIndex: index,
284
- uniqueSelector: uniqueSelector
285
- };
286
- })
287
- `;
221
+ export function isFillResult(value) {
222
+ if (typeof value !== 'object' || value === null)
223
+ return false;
224
+ const obj = value;
225
+ return typeof obj['success'] === 'boolean';
226
+ }
227
+ /**
228
+ * Type guard for ClickResult.
229
+ *
230
+ * @param value - Value to check
231
+ * @returns True if value is a valid ClickResult
232
+ */
233
+ export function isClickResult(value) {
234
+ if (typeof value !== 'object' || value === null)
235
+ return false;
236
+ const obj = value;
237
+ return typeof obj['success'] === 'boolean';
238
+ }
288
239
  //# sourceMappingURL=reactEventHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactEventHelpers.js","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GhC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EnC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkE1C,CAAC"}
1
+ {"version":3,"file":"reactEventHelpers.js","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GhC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EnC,CAAC;AAyCF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Machine-readable help generation using Commander.js introspection API.
3
+ */
4
+ import type { Command } from 'commander';
5
+ import { type DecisionTree } from '../utils/decisionTrees.js';
6
+ import { type TaskMapping } from '../utils/taskMappings.js';
7
+ /**
8
+ * Option metadata for machine-readable help.
9
+ */
10
+ export interface OptionMetadata {
11
+ /** Option flags (e.g., "-j, --json") */
12
+ flags: string;
13
+ /** Option description */
14
+ description: string;
15
+ /** Whether option is required */
16
+ required: boolean;
17
+ /** Whether option has an optional value */
18
+ optional: boolean;
19
+ /** Default value if any */
20
+ defaultValue?: unknown;
21
+ /** Description of default value */
22
+ defaultValueDescription?: string;
23
+ /** Allowed choices if restricted */
24
+ choices?: readonly string[];
25
+ }
26
+ /**
27
+ * Argument metadata for machine-readable help.
28
+ */
29
+ export interface ArgumentMetadata {
30
+ /** Argument name */
31
+ name: string;
32
+ /** Argument description */
33
+ description: string;
34
+ /** Whether argument is required */
35
+ required: boolean;
36
+ /** Whether argument accepts multiple values */
37
+ variadic: boolean;
38
+ /** Default value if any */
39
+ defaultValue?: unknown;
40
+ /** Allowed choices if restricted */
41
+ choices?: readonly string[];
42
+ }
43
+ /**
44
+ * Command metadata for machine-readable help.
45
+ */
46
+ export interface CommandMetadata {
47
+ /** Command name */
48
+ name: string;
49
+ /** Command aliases */
50
+ aliases: readonly string[];
51
+ /** Command description */
52
+ description: string;
53
+ /** Command usage string */
54
+ usage: string;
55
+ /** Command arguments */
56
+ arguments: ArgumentMetadata[];
57
+ /** Command options */
58
+ options: OptionMetadata[];
59
+ /** Subcommands */
60
+ subcommands: CommandMetadata[];
61
+ }
62
+ /**
63
+ * Runtime state information for dynamic command availability.
64
+ */
65
+ export interface RuntimeState {
66
+ /** Whether a session is currently active */
67
+ sessionActive: boolean;
68
+ /** Whether the daemon is running */
69
+ daemonRunning: boolean;
70
+ /** Commands available in current state */
71
+ availableCommands: string[];
72
+ }
73
+ /**
74
+ * Tool capabilities summary for agent discovery.
75
+ */
76
+ export interface Capabilities {
77
+ /** CDP protocol capabilities */
78
+ cdp: {
79
+ /** Number of CDP domains */
80
+ domains: number;
81
+ /** Number of CDP methods (approximate) */
82
+ methods: string;
83
+ };
84
+ /** High-level command capabilities */
85
+ highLevel: {
86
+ /** List of high-level commands available */
87
+ commands: string[];
88
+ /** Domain coverage areas */
89
+ coverage: string[];
90
+ };
91
+ }
92
+ /**
93
+ * Root machine-readable help structure.
94
+ */
95
+ export interface MachineReadableHelp {
96
+ /** CLI name */
97
+ name: string;
98
+ /** CLI version */
99
+ version: string;
100
+ /** CLI description */
101
+ description: string;
102
+ /** Root command metadata */
103
+ command: CommandMetadata;
104
+ /** Exit code documentation */
105
+ exitCodes: {
106
+ /** Exit code value */
107
+ code: number;
108
+ /** Exit code name */
109
+ name: string;
110
+ /** Exit code description */
111
+ description: string;
112
+ }[];
113
+ /** Task-to-command mappings with CDP alternatives */
114
+ taskMappings: Record<string, TaskMapping>;
115
+ /** Current runtime state */
116
+ runtimeState: RuntimeState;
117
+ /** Intent-based decision trees */
118
+ decisionTrees: Record<string, DecisionTree>;
119
+ /** Tool capabilities summary */
120
+ capabilities: Capabilities;
121
+ }
122
+ /**
123
+ * Generates machine-readable help from a Commander program.
124
+ *
125
+ * Includes comprehensive metadata for agent discovery:
126
+ * - Command structure and options
127
+ * - Exit codes with semantic meanings
128
+ * - Task-to-command mappings with CDP alternatives
129
+ * - Runtime state and command availability
130
+ * - Intent-based decision trees
131
+ * - Capabilities summary
132
+ *
133
+ * @param program - Commander program instance
134
+ * @returns Machine-readable help structure
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * import { program } from 'commander';
139
+ * import { generateMachineReadableHelp } from './help/machineReadableHelp.js';
140
+ *
141
+ * const help = generateMachineReadableHelp(program);
142
+ * console.log(JSON.stringify(help, null, 2));
143
+ * ```
144
+ */
145
+ export declare function generateMachineReadableHelp(program: Command): MachineReadableHelp;
146
+ /**
147
+ * Generates machine-readable help for a specific subcommand.
148
+ *
149
+ * Returns the same structure as generateMachineReadableHelp but with
150
+ * the command field focused on the requested subcommand. If the subcommand
151
+ * is not found, falls back to full root help.
152
+ *
153
+ * @param program - Root Commander program instance
154
+ * @param commandPath - Array of command names (e.g., ['dom', 'query'])
155
+ * @returns Machine-readable help structure for the subcommand
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * // Get help for 'bdg dom query'
160
+ * const help = generateSubcommandHelp(program, ['dom', 'query']);
161
+ * console.log(help.command.name); // 'query'
162
+ * ```
163
+ */
164
+ export declare function generateSubcommandHelp(program: Command, commandPath: string[]): MachineReadableHelp;
165
+ //# sourceMappingURL=helpJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpJson.d.ts","sourceRoot":"","sources":["../../src/commands/helpJson.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Machine-readable help generation using Commander.js introspection API.
3
+ */
4
+ import { getAllDomainSummaries } from '../cdp/schema.js';
5
+ import { isDaemonRunning } from '../daemon/launcher.js';
6
+ import { readPid } from '../session/pid.js';
7
+ import { getAllDecisionTrees } from '../utils/decisionTrees.js';
8
+ import { filterDefined } from '../utils/objects.js';
9
+ import { isProcessAlive } from '../utils/process.js';
10
+ import { getAllTaskMappings } from '../utils/taskMappings.js';
11
+ /**
12
+ * Converts a Commander Option to OptionMetadata.
13
+ *
14
+ * @param option - Commander option instance
15
+ * @returns Option metadata
16
+ */
17
+ function convertOption(option) {
18
+ return filterDefined({
19
+ flags: option.flags,
20
+ description: option.description,
21
+ required: option.required,
22
+ optional: option.optional,
23
+ defaultValue: option.defaultValue,
24
+ defaultValueDescription: option.defaultValueDescription,
25
+ choices: option.argChoices,
26
+ });
27
+ }
28
+ /**
29
+ * Converts a Commander Argument to ArgumentMetadata.
30
+ *
31
+ * @param argument - Commander argument instance
32
+ * @returns Argument metadata
33
+ */
34
+ function convertArgument(argument) {
35
+ return filterDefined({
36
+ name: argument.name(),
37
+ description: argument.description,
38
+ required: argument.required,
39
+ variadic: argument.variadic,
40
+ defaultValue: argument.defaultValue,
41
+ choices: argument.argChoices,
42
+ });
43
+ }
44
+ /**
45
+ * Recursively converts a Commander Command to CommandMetadata.
46
+ *
47
+ * @param command - Commander command instance
48
+ * @returns Command metadata
49
+ */
50
+ function convertCommand(command) {
51
+ return {
52
+ name: command.name(),
53
+ aliases: command.aliases(),
54
+ description: command.description(),
55
+ usage: command.usage(),
56
+ arguments: command.registeredArguments.map(convertArgument),
57
+ options: command.options.map(convertOption),
58
+ subcommands: command.commands.map(convertCommand),
59
+ };
60
+ }
61
+ /**
62
+ * Checks if a session is currently active.
63
+ *
64
+ * @returns True if session is active, false otherwise
65
+ */
66
+ function isSessionActive() {
67
+ const sessionPid = readPid();
68
+ if (sessionPid === null) {
69
+ return false;
70
+ }
71
+ return isProcessAlive(sessionPid);
72
+ }
73
+ /**
74
+ * Generates runtime state information.
75
+ *
76
+ * Checks current daemon and session status to provide state-aware
77
+ * command availability information.
78
+ *
79
+ * @returns Runtime state object
80
+ */
81
+ function generateRuntimeState() {
82
+ const daemonRunning = isDaemonRunning();
83
+ const sessionActive = isSessionActive();
84
+ const availableCommands = [];
85
+ if (!daemonRunning && !sessionActive) {
86
+ availableCommands.push('bdg <url>', 'cleanup', '--help', '--version');
87
+ }
88
+ else if (daemonRunning && sessionActive) {
89
+ availableCommands.push('peek', 'tail', 'details', 'dom', 'network', 'console', 'cdp', 'status', 'stop');
90
+ }
91
+ else if (daemonRunning && !sessionActive) {
92
+ availableCommands.push('bdg <url>', 'cleanup', 'status');
93
+ }
94
+ return {
95
+ sessionActive,
96
+ daemonRunning,
97
+ availableCommands,
98
+ };
99
+ }
100
+ /**
101
+ * Extracts unique command strings from task mappings.
102
+ *
103
+ * Flattens all command arrays from task mappings and deduplicates them.
104
+ *
105
+ * @param taskMappings - Task mapping registry
106
+ * @returns Sorted array of unique command strings
107
+ */
108
+ function extractCommandList(taskMappings) {
109
+ const allCommands = Object.values(taskMappings).flatMap((mapping) => mapping.commands);
110
+ const uniqueCommands = [...new Set(allCommands)];
111
+ return uniqueCommands.sort();
112
+ }
113
+ /**
114
+ * Exit code documentation for machine-readable help.
115
+ */
116
+ const EXIT_CODE_DOCS = [
117
+ { code: 0, name: 'SUCCESS', description: 'Operation completed successfully' },
118
+ { code: 1, name: 'GENERIC_FAILURE', description: 'Generic failure' },
119
+ { code: 80, name: 'INVALID_URL', description: 'Invalid URL format provided' },
120
+ { code: 81, name: 'INVALID_ARGUMENTS', description: 'Invalid command arguments' },
121
+ { code: 82, name: 'PERMISSION_DENIED', description: 'Insufficient permissions' },
122
+ { code: 83, name: 'RESOURCE_NOT_FOUND', description: 'Required resource not found' },
123
+ { code: 84, name: 'RESOURCE_BUSY', description: 'Resource is currently in use' },
124
+ {
125
+ code: 85,
126
+ name: 'OPERATION_NOT_PERMITTED',
127
+ description: 'Operation not permitted in current state',
128
+ },
129
+ { code: 86, name: 'DAEMON_ALREADY_RUNNING', description: 'Daemon is already running' },
130
+ { code: 100, name: 'CHROME_LAUNCH_FAILURE', description: 'Failed to launch Chrome browser' },
131
+ {
132
+ code: 101,
133
+ name: 'CDP_CONNECTION_FAILURE',
134
+ description: 'Failed to connect to Chrome DevTools Protocol',
135
+ },
136
+ { code: 102, name: 'CDP_TIMEOUT', description: 'CDP operation timed out' },
137
+ { code: 110, name: 'IPC_ERROR', description: 'Inter-process communication error' },
138
+ ];
139
+ /**
140
+ * Generates capabilities summary.
141
+ *
142
+ * Dynamically calculates CDP and high-level command capabilities
143
+ * from protocol schema and task mappings.
144
+ *
145
+ * @returns Capabilities object
146
+ */
147
+ function generateCapabilities() {
148
+ const domainSummaries = getAllDomainSummaries();
149
+ const taskMappings = getAllTaskMappings();
150
+ const totalMethods = domainSummaries.reduce((sum, domain) => sum + domain.commandCount, 0);
151
+ const commandList = extractCommandList(taskMappings);
152
+ return {
153
+ cdp: {
154
+ domains: domainSummaries.length,
155
+ methods: totalMethods.toString(),
156
+ },
157
+ highLevel: {
158
+ commands: commandList,
159
+ coverage: ['dom', 'network', 'console', 'session', 'monitoring'],
160
+ },
161
+ };
162
+ }
163
+ /**
164
+ * Generates machine-readable help from a Commander program.
165
+ *
166
+ * Includes comprehensive metadata for agent discovery:
167
+ * - Command structure and options
168
+ * - Exit codes with semantic meanings
169
+ * - Task-to-command mappings with CDP alternatives
170
+ * - Runtime state and command availability
171
+ * - Intent-based decision trees
172
+ * - Capabilities summary
173
+ *
174
+ * @param program - Commander program instance
175
+ * @returns Machine-readable help structure
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * import { program } from 'commander';
180
+ * import { generateMachineReadableHelp } from './help/machineReadableHelp.js';
181
+ *
182
+ * const help = generateMachineReadableHelp(program);
183
+ * console.log(JSON.stringify(help, null, 2));
184
+ * ```
185
+ */
186
+ export function generateMachineReadableHelp(program) {
187
+ return {
188
+ name: program.name(),
189
+ version: program.version() ?? 'unknown',
190
+ description: program.description(),
191
+ command: convertCommand(program),
192
+ exitCodes: [...EXIT_CODE_DOCS],
193
+ taskMappings: getAllTaskMappings(),
194
+ runtimeState: generateRuntimeState(),
195
+ decisionTrees: getAllDecisionTrees(),
196
+ capabilities: generateCapabilities(),
197
+ };
198
+ }
199
+ /**
200
+ * Finds a subcommand by traversing the command path.
201
+ *
202
+ * @param program - Root Commander program instance
203
+ * @param commandPath - Array of command names to traverse (e.g., ['dom', 'query'])
204
+ * @returns The target Command if found, null otherwise
205
+ */
206
+ function findSubcommand(program, commandPath) {
207
+ let current = program;
208
+ for (const name of commandPath) {
209
+ const found = current.commands.find((cmd) => cmd.name() === name || cmd.aliases().includes(name));
210
+ if (!found) {
211
+ return null;
212
+ }
213
+ current = found;
214
+ }
215
+ return current;
216
+ }
217
+ /**
218
+ * Generates machine-readable help for a specific subcommand.
219
+ *
220
+ * Returns the same structure as generateMachineReadableHelp but with
221
+ * the command field focused on the requested subcommand. If the subcommand
222
+ * is not found, falls back to full root help.
223
+ *
224
+ * @param program - Root Commander program instance
225
+ * @param commandPath - Array of command names (e.g., ['dom', 'query'])
226
+ * @returns Machine-readable help structure for the subcommand
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * // Get help for 'bdg dom query'
231
+ * const help = generateSubcommandHelp(program, ['dom', 'query']);
232
+ * console.log(help.command.name); // 'query'
233
+ * ```
234
+ */
235
+ export function generateSubcommandHelp(program, commandPath) {
236
+ const targetCommand = findSubcommand(program, commandPath);
237
+ if (!targetCommand) {
238
+ return generateMachineReadableHelp(program);
239
+ }
240
+ return {
241
+ name: program.name(),
242
+ version: program.version() ?? 'unknown',
243
+ description: program.description(),
244
+ command: convertCommand(targetCommand),
245
+ exitCodes: [...EXIT_CODE_DOCS],
246
+ taskMappings: getAllTaskMappings(),
247
+ runtimeState: generateRuntimeState(),
248
+ decisionTrees: getAllDecisionTrees(),
249
+ capabilities: generateCapabilities(),
250
+ };
251
+ }
252
+ //# sourceMappingURL=helpJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpJson.js","sourceRoot":"","sources":["../../src/commands/helpJson.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAqB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAoB,MAAM,yBAAyB,CAAC;AA2H/E;;;;;GAKG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,aAAa,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAuB;QAC5C,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,OAAO,EAAE,MAAM,CAAC,UAAU;KAC3B,CAA8B,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAkB;IACzC,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,QAAQ,CAAC,YAAuB;QAC9C,OAAO,EAAE,QAAQ,CAAC,UAAU;KAC7B,CAAgC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,OAAgB;IACtC,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QACtB,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC;QAC3D,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC3C,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe;IACtB,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC;IAC7B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB;IAC3B,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;IAExC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;QAC1C,iBAAiB,CAAC,IAAI,CACpB,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,aAAa;QACb,aAAa;QACb,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,YAAyC;IACnE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACjD,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,cAAc,GAAG;IACrB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kCAAkC,EAAE;IAC7E,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE;IACpE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC7E,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACjF,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAChF,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,6BAA6B,EAAE;IACpF,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAChF;QACE,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,0CAA0C;KACxD;IACD,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACtF,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,iCAAiC,EAAE;IAC5F;QACE,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,+CAA+C;KAC7D;IACD,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC1E,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mCAAmC,EAAE;CAC1E,CAAC;AAEX;;;;;;;GAOG;AACH,SAAS,oBAAoB;IAC3B,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,EAAE;YACH,OAAO,EAAE,eAAe,CAAC,MAAM;YAC/B,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE;SACjC;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;SACjE;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS;QACvC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;QAClC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;QAChC,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC;QAC9B,YAAY,EAAE,kBAAkB,EAAE;QAClC,YAAY,EAAE,oBAAoB,EAAE;QACpC,aAAa,EAAE,mBAAmB,EAAE;QACpC,YAAY,EAAE,oBAAoB,EAAE;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,OAAgB,EAAE,WAAqB;IAC7D,IAAI,OAAO,GAAY,OAAO,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACjC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC7D,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,WAAqB;IAErB,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE3D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS;QACvC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;QAClC,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC;QACtC,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC;QAC9B,YAAY,EAAE,kBAAkB,EAAE;QAClC,YAAY,EAAE,oBAAoB,EAAE;QACpC,aAAa,EAAE,mBAAmB,EAAE;QACpC,YAAY,EAAE,oBAAoB,EAAE;KACrC,CAAC;AACJ,CAAC"}
@@ -83,8 +83,8 @@ export interface Capabilities {
83
83
  };
84
84
  /** High-level command capabilities */
85
85
  highLevel: {
86
- /** Number of high-level commands */
87
- commands: number;
86
+ /** List of high-level commands available */
87
+ commands: string[];
88
88
  /** Domain coverage areas */
89
89
  coverage: string[];
90
90
  };
@@ -143,4 +143,23 @@ export interface MachineReadableHelp {
143
143
  * ```
144
144
  */
145
145
  export declare function generateMachineReadableHelp(program: Command): MachineReadableHelp;
146
+ /**
147
+ * Generates machine-readable help for a specific subcommand.
148
+ *
149
+ * Returns the same structure as generateMachineReadableHelp but with
150
+ * the command field focused on the requested subcommand. If the subcommand
151
+ * is not found, falls back to full root help.
152
+ *
153
+ * @param program - Root Commander program instance
154
+ * @param commandPath - Array of command names (e.g., ['dom', 'query'])
155
+ * @returns Machine-readable help structure for the subcommand
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * // Get help for 'bdg dom query'
160
+ * const help = generateSubcommandHelp(program, ['dom', 'query']);
161
+ * console.log(help.command.name); // 'query'
162
+ * ```
163
+ */
164
+ export declare function generateSubcommandHelp(program: Command, commandPath: string[]): MachineReadableHelp;
146
165
  //# sourceMappingURL=machineReadableHelp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"machineReadableHelp.d.ts","sourceRoot":"","sources":["../../src/commands/machineReadableHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,WAAW,CAAC;AAK3D,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlF,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oCAAoC;IACpC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,sBAAsB;IACtB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,kBAAkB;IAClB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,GAAG,EAAE;QACH,4BAA4B;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,sCAAsC;IACtC,SAAS,EAAE;QACT,oCAAoC;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,4BAA4B;QAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,8BAA8B;IAC9B,SAAS,EAAE;QACT,sBAAsB;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,qBAAqB;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,4BAA4B;QAC5B,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IACJ,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,4BAA4B;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,gCAAgC;IAChC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAqID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAsEjF"}
1
+ {"version":3,"file":"machineReadableHelp.d.ts","sourceRoot":"","sources":["../../src/commands/machineReadableHelp.ts"],"names":[],"mappings":"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"}