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
@@ -75,5 +75,67 @@ export declare function cleanupStaleDaemonPid(): boolean;
75
75
  * }
76
76
  * ```
77
77
  */
78
- export declare function cleanupOrphanedDaemons(): number;
78
+ export declare function cleanupOrphanedDaemons(): Promise<number>;
79
+ /**
80
+ * Options for unified session cleanup.
81
+ */
82
+ export interface SessionCleanupOptions {
83
+ /** Kill the associated Chrome process. */
84
+ killChrome?: boolean | undefined;
85
+ /** Force cleanup even if session appears active. */
86
+ force?: boolean | undefined;
87
+ /** Aggressively kill all orphaned processes. */
88
+ aggressive?: boolean | undefined;
89
+ /** Also remove the session.json output file. */
90
+ removeOutput?: boolean | undefined;
91
+ /** Chrome PID from daemon response (for stop command). */
92
+ chromePid?: number | undefined;
93
+ }
94
+ /**
95
+ * Result of session cleanup operation.
96
+ */
97
+ export interface SessionCleanupResult {
98
+ /** What was cleaned up. */
99
+ cleaned: {
100
+ /** Session files (PID, metadata, socket, lock). */
101
+ session: boolean;
102
+ /** Chrome browser process. */
103
+ chrome: boolean;
104
+ /** Orphaned daemon processes. */
105
+ daemons: boolean;
106
+ /** Session output file (session.json). */
107
+ output: boolean;
108
+ };
109
+ /** Number of orphaned daemons killed. */
110
+ orphanedDaemonsCount: number;
111
+ /** Warnings encountered during cleanup. */
112
+ warnings: string[];
113
+ }
114
+ /**
115
+ * Unified session cleanup for stop and cleanup commands.
116
+ *
117
+ * Consolidates cleanup logic from stop.ts and cleanup.ts into a single
118
+ * reusable function. Handles Chrome processes, daemon PIDs, session files,
119
+ * and orphaned processes.
120
+ *
121
+ * @param options - Cleanup options
122
+ * @returns Cleanup result with what was cleaned and any warnings
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // From stop command
127
+ * const result = await performSessionCleanup({
128
+ * killChrome: opts.killChrome,
129
+ * chromePid: response.chromePid,
130
+ * });
131
+ *
132
+ * // From cleanup command
133
+ * const result = await performSessionCleanup({
134
+ * force: true,
135
+ * aggressive: true,
136
+ * removeOutput: true,
137
+ * });
138
+ * ```
139
+ */
140
+ export declare function performSessionCleanup(options: SessionCleanupOptions): Promise<SessionCleanupResult>;
79
141
  //# sourceMappingURL=cleanup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/session/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2GH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CA0F7C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA6BrC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAoD/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAuB/C"}
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/session/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgHH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAmE7C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAcrC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAoD/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAuB9D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,OAAO,EAAE;QACP,mDAAmD;QACnD,OAAO,EAAE,OAAO,CAAC;QACjB,8BAA8B;QAC9B,MAAM,EAAE,OAAO,CAAC;QAChB,iCAAiC;QACjC,OAAO,EAAE,OAAO,CAAC;QACjB,0CAA0C;QAC1C,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAyHD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAkD/B"}
@@ -4,16 +4,20 @@
4
4
  * Handles cleanup of session files (PID, metadata, lock, socket).
5
5
  * WHY: Centralized cleanup logic ensures consistent cleanup across error paths and normal shutdown.
6
6
  */
7
- import { execSync } from 'child_process';
7
+ import { exec } from 'child_process';
8
8
  import * as fs from 'fs';
9
+ import { promisify } from 'util';
10
+ const execAsync = promisify(exec);
9
11
  import { getErrorMessage } from '../connection/errors.js';
10
- import { createLogger } from '../ui/logging/index.js';
12
+ import { createLogger, logDebugError } from '../ui/logging/index.js';
13
+ import { safeRemoveFile } from '../utils/file.js';
11
14
  import { isProcessAlive, killChromeProcess } from '../utils/process.js';
15
+ import { QueryCacheManager } from './QueryCacheManager.js';
12
16
  import { readChromePid, clearChromePid } from './chrome.js';
13
17
  import { acquireSessionLock, releaseSessionLock } from './lock.js';
14
18
  import { getSessionFilePath, ensureSessionDir } from './paths.js';
15
19
  import { readPid, cleanupPidFile, readPidFromFile } from './pid.js';
16
- import { clearSessionQueryCache } from './queryCache.js';
20
+ // Note: QueryCacheManager must be after chrome.js per alphabetical order
17
21
  const log = createLogger('cleanup');
18
22
  function killOrphanedWorker(pid) {
19
23
  try {
@@ -52,7 +56,7 @@ function killCachedChromeProcess(reason) {
52
56
  *
53
57
  * @returns Array of orphaned daemon PIDs
54
58
  */
55
- function findOrphanedDaemons() {
59
+ async function findOrphanedDaemons() {
56
60
  const orphanedPids = [];
57
61
  try {
58
62
  const daemonPidPath = getSessionFilePath('DAEMON_PID');
@@ -60,7 +64,7 @@ function findOrphanedDaemons() {
60
64
  const psCommand = process.platform === 'win32'
61
65
  ? 'wmic process where "commandline like \'%dist/daemon.js%\'" get processid'
62
66
  : 'ps aux | grep -E "node.*dist/daemon\\.js" | grep -v grep';
63
- const output = execSync(psCommand, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] });
67
+ const { stdout: output } = await execAsync(psCommand);
64
68
  const lines = output.trim().split('\n');
65
69
  for (const line of lines) {
66
70
  let pid;
@@ -90,7 +94,7 @@ function findOrphanedDaemons() {
90
94
  }
91
95
  }
92
96
  catch (error) {
93
- log.debug(`Failed to find orphaned daemons: ${getErrorMessage(error)}`);
97
+ logDebugError(log, 'find orphaned daemons', error);
94
98
  }
95
99
  return orphanedPids;
96
100
  }
@@ -127,14 +131,9 @@ export function cleanupStaleSession() {
127
131
  }
128
132
  }
129
133
  catch (error) {
130
- log.debug(`Failed to read stale session lock: ${getErrorMessage(error)}`);
131
- }
132
- try {
133
- fs.rmSync(lockPath, { force: true });
134
- }
135
- catch (error) {
136
- log.debug(`Failed to remove stale session lock: ${getErrorMessage(error)}`);
134
+ logDebugError(log, 'read stale session lock', error);
137
135
  }
136
+ safeRemoveFile(lockPath, 'stale session lock', log);
138
137
  if (!acquireSessionLock()) {
139
138
  return false;
140
139
  }
@@ -160,30 +159,10 @@ export function cleanupStaleSession() {
160
159
  log.info('Removing stale session files...');
161
160
  killCachedChromeProcess('stale session cleanup');
162
161
  cleanupPidFile();
163
- try {
164
- fs.rmSync(getSessionFilePath('METADATA'), { force: true });
165
- }
166
- catch (error) {
167
- log.debug(`Failed to remove metadata file: ${getErrorMessage(error)}`);
168
- }
169
- try {
170
- fs.rmSync(daemonPidPath, { force: true });
171
- }
172
- catch (error) {
173
- log.debug(`Failed to remove daemon PID file: ${getErrorMessage(error)}`);
174
- }
175
- try {
176
- fs.rmSync(getSessionFilePath('DAEMON_SOCKET'), { force: true });
177
- }
178
- catch (error) {
179
- log.debug(`Failed to remove daemon socket: ${getErrorMessage(error)}`);
180
- }
181
- try {
182
- fs.rmSync(getSessionFilePath('DAEMON_LOCK'), { force: true });
183
- }
184
- catch (error) {
185
- log.debug(`Failed to remove daemon lock: ${getErrorMessage(error)}`);
186
- }
162
+ safeRemoveFile(getSessionFilePath('METADATA'), 'metadata file', log);
163
+ safeRemoveFile(daemonPidPath, 'daemon PID file', log);
164
+ safeRemoveFile(getSessionFilePath('DAEMON_SOCKET'), 'daemon socket', log);
165
+ safeRemoveFile(getSessionFilePath('DAEMON_LOCK'), 'daemon lock', log);
187
166
  log.info('Stale session cleanup complete');
188
167
  return true;
189
168
  }
@@ -215,31 +194,15 @@ export function cleanupStaleSession() {
215
194
  export function cleanupSession() {
216
195
  cleanupPidFile();
217
196
  releaseSessionLock();
218
- try {
219
- fs.rmSync(getSessionFilePath('METADATA'), { force: true });
220
- }
221
- catch (error) {
222
- log.debug(`Failed to remove metadata file: ${getErrorMessage(error)}`);
223
- }
224
- try {
225
- fs.rmSync(getSessionFilePath('DAEMON_PID'), { force: true });
226
- }
227
- catch (error) {
228
- log.debug(`Failed to remove daemon PID file: ${getErrorMessage(error)}`);
229
- }
230
- try {
231
- fs.rmSync(getSessionFilePath('DAEMON_SOCKET'), { force: true });
232
- }
233
- catch (error) {
234
- log.debug(`Failed to remove daemon socket: ${getErrorMessage(error)}`);
235
- }
236
- try {
237
- fs.rmSync(getSessionFilePath('DAEMON_LOCK'), { force: true });
238
- }
239
- catch (error) {
240
- log.debug(`Failed to remove daemon lock: ${getErrorMessage(error)}`);
241
- }
242
- clearSessionQueryCache();
197
+ safeRemoveFile(getSessionFilePath('METADATA'), 'metadata file', log);
198
+ safeRemoveFile(getSessionFilePath('DAEMON_PID'), 'daemon PID file', log);
199
+ safeRemoveFile(getSessionFilePath('DAEMON_SOCKET'), 'daemon socket', log);
200
+ safeRemoveFile(getSessionFilePath('DAEMON_LOCK'), 'daemon lock', log);
201
+ void QueryCacheManager.getInstance()
202
+ .clear()
203
+ .catch((error) => {
204
+ logDebugError(log, 'clear query cache', error);
205
+ });
243
206
  }
244
207
  /**
245
208
  * Cleanup stale daemon PID file if daemon process is dead.
@@ -319,8 +282,8 @@ export function cleanupStaleDaemonPid() {
319
282
  * }
320
283
  * ```
321
284
  */
322
- export function cleanupOrphanedDaemons() {
323
- const orphanedPids = findOrphanedDaemons();
285
+ export async function cleanupOrphanedDaemons() {
286
+ const orphanedPids = await findOrphanedDaemons();
324
287
  if (orphanedPids.length === 0) {
325
288
  log.debug('No orphaned daemon processes found');
326
289
  return 0;
@@ -334,9 +297,172 @@ export function cleanupOrphanedDaemons() {
334
297
  killedCount++;
335
298
  }
336
299
  catch (error) {
337
- log.debug(`Failed to kill orphaned daemon ${pid}: ${getErrorMessage(error)}`);
300
+ logDebugError(log, `kill orphaned daemon ${pid}`, error);
338
301
  }
339
302
  }
340
303
  return killedCount;
341
304
  }
305
+ function createCleanupState() {
306
+ return {
307
+ warnings: [],
308
+ sessionCleaned: false,
309
+ chromeCleaned: false,
310
+ daemonsCleaned: false,
311
+ outputCleaned: false,
312
+ orphanedDaemonsCount: 0,
313
+ };
314
+ }
315
+ /**
316
+ * Kill a specific Chrome process by PID.
317
+ */
318
+ function cleanupChromeProcess(chromePid, clearChromePid, state) {
319
+ try {
320
+ killChromeProcess(chromePid, 'SIGTERM');
321
+ state.chromeCleaned = true;
322
+ clearChromePid();
323
+ }
324
+ catch (error) {
325
+ state.warnings.push(`Could not kill Chrome: ${getErrorMessage(error)}`);
326
+ }
327
+ }
328
+ /**
329
+ * Clean up stale daemon PID file and update state.
330
+ */
331
+ function cleanupDaemonPidIfStale(state) {
332
+ const daemonPidPath = getSessionFilePath('DAEMON_PID');
333
+ if (!fs.existsSync(daemonPidPath)) {
334
+ return;
335
+ }
336
+ try {
337
+ const daemonPidStr = fs.readFileSync(daemonPidPath, 'utf-8').trim();
338
+ const daemonPid = parseInt(daemonPidStr, 10);
339
+ if (Number.isNaN(daemonPid) || !isProcessAlive(daemonPid)) {
340
+ log.info(`Removing stale daemon PID file (PID ${daemonPid})`);
341
+ fs.unlinkSync(daemonPidPath);
342
+ state.sessionCleaned = true;
343
+ }
344
+ }
345
+ catch {
346
+ try {
347
+ fs.unlinkSync(daemonPidPath);
348
+ state.sessionCleaned = true;
349
+ }
350
+ catch (removeError) {
351
+ state.warnings.push(`Could not remove daemon.pid: ${getErrorMessage(removeError)}`);
352
+ }
353
+ }
354
+ }
355
+ /**
356
+ * Clean up active session, optionally forcing cleanup if still running.
357
+ */
358
+ async function cleanupActiveSession(force, cleanupStaleChrome, state) {
359
+ const sessionPid = readPid();
360
+ if (!sessionPid) {
361
+ return;
362
+ }
363
+ const isAlive = isProcessAlive(sessionPid);
364
+ if (isAlive && !force) {
365
+ return;
366
+ }
367
+ if (isAlive && force) {
368
+ state.warnings.push(`Process ${sessionPid} is still running but forcing cleanup anyway`);
369
+ log.info(`Force cleanup: killing Chrome for active session ${sessionPid}`);
370
+ try {
371
+ await cleanupStaleChrome();
372
+ state.chromeCleaned = true;
373
+ }
374
+ catch (error) {
375
+ state.warnings.push(`Could not kill Chrome processes: ${getErrorMessage(error)}`);
376
+ }
377
+ }
378
+ cleanupSession();
379
+ state.sessionCleaned = true;
380
+ }
381
+ /**
382
+ * Clean up session output file.
383
+ */
384
+ function cleanupOutputFile(state) {
385
+ const outputPath = getSessionFilePath('OUTPUT');
386
+ if (!fs.existsSync(outputPath)) {
387
+ return;
388
+ }
389
+ try {
390
+ fs.unlinkSync(outputPath);
391
+ state.outputCleaned = true;
392
+ }
393
+ catch (error) {
394
+ state.warnings.push(`Could not remove session.json: ${getErrorMessage(error)}`);
395
+ }
396
+ }
397
+ /**
398
+ * Unified session cleanup for stop and cleanup commands.
399
+ *
400
+ * Consolidates cleanup logic from stop.ts and cleanup.ts into a single
401
+ * reusable function. Handles Chrome processes, daemon PIDs, session files,
402
+ * and orphaned processes.
403
+ *
404
+ * @param options - Cleanup options
405
+ * @returns Cleanup result with what was cleaned and any warnings
406
+ *
407
+ * @example
408
+ * ```typescript
409
+ * // From stop command
410
+ * const result = await performSessionCleanup({
411
+ * killChrome: opts.killChrome,
412
+ * chromePid: response.chromePid,
413
+ * });
414
+ *
415
+ * // From cleanup command
416
+ * const result = await performSessionCleanup({
417
+ * force: true,
418
+ * aggressive: true,
419
+ * removeOutput: true,
420
+ * });
421
+ * ```
422
+ */
423
+ export async function performSessionCleanup(options) {
424
+ const { cleanupStaleChrome, clearChromePid } = await import('./chrome.js');
425
+ const state = createCleanupState();
426
+ if (options.aggressive) {
427
+ const daemonsKilled = await cleanupOrphanedDaemons();
428
+ if (daemonsKilled > 0) {
429
+ state.daemonsCleaned = true;
430
+ state.orphanedDaemonsCount = daemonsKilled;
431
+ console.error(`✓ Killed ${daemonsKilled} orphaned daemon process(es)`);
432
+ }
433
+ const errorCount = await cleanupStaleChrome();
434
+ state.chromeCleaned = true;
435
+ if (errorCount > 0) {
436
+ state.warnings.push('Some Chrome processes could not be killed');
437
+ }
438
+ }
439
+ if (options.killChrome && options.chromePid) {
440
+ cleanupChromeProcess(options.chromePid, clearChromePid, state);
441
+ }
442
+ else if (options.killChrome && !options.chromePid) {
443
+ state.warnings.push('Chrome PID not found (Chrome was not launched by bdg)');
444
+ }
445
+ cleanupDaemonPidIfStale(state);
446
+ await cleanupActiveSession(options.force ?? false, cleanupStaleChrome, state);
447
+ if (!options.aggressive) {
448
+ const daemonsKilled = await cleanupOrphanedDaemons();
449
+ if (daemonsKilled > 0) {
450
+ state.daemonsCleaned = true;
451
+ state.orphanedDaemonsCount = daemonsKilled;
452
+ }
453
+ }
454
+ if (options.removeOutput) {
455
+ cleanupOutputFile(state);
456
+ }
457
+ return {
458
+ cleaned: {
459
+ session: state.sessionCleaned,
460
+ chrome: state.chromeCleaned,
461
+ daemons: state.daemonsCleaned,
462
+ output: state.outputCleaned,
463
+ },
464
+ orphanedDaemonsCount: state.orphanedDaemonsCount,
465
+ warnings: state.warnings,
466
+ };
467
+ }
342
468
  //# sourceMappingURL=cleanup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/session/cleanup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/session/cleanup.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,46 @@
1
1
  /**
2
2
  * Query result cache for index-based element access.
3
3
  *
4
- * Stores the most recent DOM query results in a temporary file to enable
5
- * index-based access patterns like "bdg dom get 0" after running
6
- * "bdg dom query .selector".
4
+ * This module provides backward-compatible functions that delegate to
5
+ * QueryCacheManager. New code should use QueryCacheManager directly.
7
6
  *
8
- * Uses file-based persistence to work across separate CLI process invocations.
9
- * Cache is stored in ~/.bdg/query-cache.json and cleared when session ends.
7
+ * @see QueryCacheManager for the centralized implementation
10
8
  */
9
+ import { type QueryCacheValidation } from '../session/QueryCacheManager.js';
11
10
  import type { DomQueryResult } from '../types/dom.js';
11
+ export type { QueryCacheValidation };
12
12
  /**
13
13
  * Store query results for index-based access.
14
14
  *
15
- * Writes results to ~/.bdg/query-cache.json for cross-process access.
16
- *
17
15
  * @param result - DOM query result to cache
16
+ * @deprecated Use QueryCacheManager.getInstance().set() instead
18
17
  */
19
- export declare function setSessionQueryCache(result: DomQueryResult): void;
18
+ export declare function setSessionQueryCache(result: DomQueryResult): Promise<void>;
20
19
  /**
21
20
  * Retrieve cached query results.
22
21
  *
23
- * Reads from ~/.bdg/query-cache.json if it exists.
24
- *
25
22
  * @returns Cached query result or null if no cache exists
23
+ * @deprecated Use QueryCacheManager.getInstance().getRaw() instead
26
24
  */
27
- export declare function getSessionQueryCache(): DomQueryResult | null;
25
+ export declare function getSessionQueryCache(): Promise<DomQueryResult | null>;
28
26
  /**
29
27
  * Clear the query cache.
30
28
  *
31
- * Removes ~/.bdg/query-cache.json.
32
- * Called when starting a new query or when the session ends.
29
+ * @deprecated Use QueryCacheManager.getInstance().clear() instead
30
+ */
31
+ export declare function clearSessionQueryCache(): Promise<void>;
32
+ /**
33
+ * Get current navigation ID from the daemon.
34
+ *
35
+ * @returns Current navigation ID or null if unavailable
36
+ * @deprecated Use QueryCacheManager.getInstance().getCurrentNavigationId() instead
37
+ */
38
+ export declare function getCurrentNavigationId(): Promise<number | null>;
39
+ /**
40
+ * Validate query cache against current navigation state.
41
+ *
42
+ * @returns Validation result with cache and error info
43
+ * @deprecated Use QueryCacheManager.getInstance().validate() instead
33
44
  */
34
- export declare function clearSessionQueryCache(): void;
45
+ export declare function validateQueryCache(): Promise<QueryCacheValidation>;
35
46
  //# sourceMappingURL=queryCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryCache.d.ts","sourceRoot":"","sources":["../../src/session/queryCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAcrD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQjE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,GAAG,IAAI,CAe5D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAU7C"}
1
+ {"version":3,"file":"queryCache.d.ts","sourceRoot":"","sources":["../../src/session/queryCache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAE3E;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAErE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAExE"}
@@ -1,83 +1,54 @@
1
1
  /**
2
2
  * Query result cache for index-based element access.
3
3
  *
4
- * Stores the most recent DOM query results in a temporary file to enable
5
- * index-based access patterns like "bdg dom get 0" after running
6
- * "bdg dom query .selector".
4
+ * This module provides backward-compatible functions that delegate to
5
+ * QueryCacheManager. New code should use QueryCacheManager directly.
7
6
  *
8
- * Uses file-based persistence to work across separate CLI process invocations.
9
- * Cache is stored in ~/.bdg/query-cache.json and cleared when session ends.
7
+ * @see QueryCacheManager for the centralized implementation
10
8
  */
11
- import { existsSync, readFileSync, rmSync, writeFileSync } from 'fs';
12
- import { join } from 'path';
13
- import { getErrorMessage } from '../connection/errors.js';
14
- import { getSessionDir } from '../session/paths.js';
15
- import { createLogger } from '../ui/logging/index.js';
16
- const log = createLogger('session');
17
- /**
18
- * Get path to query cache file.
19
- *
20
- * @returns Absolute path to query-cache.json
21
- */
22
- function getQueryCachePath() {
23
- return join(getSessionDir(), 'query-cache.json');
24
- }
9
+ import { QueryCacheManager } from '../session/QueryCacheManager.js';
25
10
  /**
26
11
  * Store query results for index-based access.
27
12
  *
28
- * Writes results to ~/.bdg/query-cache.json for cross-process access.
29
- *
30
13
  * @param result - DOM query result to cache
14
+ * @deprecated Use QueryCacheManager.getInstance().set() instead
31
15
  */
32
- export function setSessionQueryCache(result) {
33
- try {
34
- const cachePath = getQueryCachePath();
35
- writeFileSync(cachePath, JSON.stringify(result), 'utf-8');
36
- log.debug(`Cached ${result.nodes.length} query results to ${cachePath}`);
37
- }
38
- catch (error) {
39
- log.debug(`Failed to write query cache: ${getErrorMessage(error)}`);
40
- }
16
+ export async function setSessionQueryCache(result) {
17
+ return QueryCacheManager.getInstance().set(result);
41
18
  }
42
19
  /**
43
20
  * Retrieve cached query results.
44
21
  *
45
- * Reads from ~/.bdg/query-cache.json if it exists.
46
- *
47
22
  * @returns Cached query result or null if no cache exists
23
+ * @deprecated Use QueryCacheManager.getInstance().getRaw() instead
48
24
  */
49
- export function getSessionQueryCache() {
50
- try {
51
- const cachePath = getQueryCachePath();
52
- if (!existsSync(cachePath)) {
53
- return null;
54
- }
55
- const content = readFileSync(cachePath, 'utf-8');
56
- const result = JSON.parse(content);
57
- log.debug(`Retrieved ${result.nodes.length} cached query results`);
58
- return result;
59
- }
60
- catch (error) {
61
- log.debug(`Failed to read query cache: ${getErrorMessage(error)}`);
62
- return null;
63
- }
25
+ export async function getSessionQueryCache() {
26
+ return QueryCacheManager.getInstance().getRaw();
64
27
  }
65
28
  /**
66
29
  * Clear the query cache.
67
30
  *
68
- * Removes ~/.bdg/query-cache.json.
69
- * Called when starting a new query or when the session ends.
31
+ * @deprecated Use QueryCacheManager.getInstance().clear() instead
32
+ */
33
+ export async function clearSessionQueryCache() {
34
+ return QueryCacheManager.getInstance().clear();
35
+ }
36
+ /**
37
+ * Get current navigation ID from the daemon.
38
+ *
39
+ * @returns Current navigation ID or null if unavailable
40
+ * @deprecated Use QueryCacheManager.getInstance().getCurrentNavigationId() instead
41
+ */
42
+ export async function getCurrentNavigationId() {
43
+ return QueryCacheManager.getInstance().getCurrentNavigationId();
44
+ }
45
+ /**
46
+ * Validate query cache against current navigation state.
47
+ *
48
+ * @returns Validation result with cache and error info
49
+ * @deprecated Use QueryCacheManager.getInstance().validate() instead
70
50
  */
71
- export function clearSessionQueryCache() {
72
- try {
73
- const cachePath = getQueryCachePath();
74
- if (existsSync(cachePath)) {
75
- rmSync(cachePath, { force: true });
76
- log.debug('Cleared query cache');
77
- }
78
- }
79
- catch (error) {
80
- log.debug(`Failed to clear query cache: ${getErrorMessage(error)}`);
81
- }
51
+ export async function validateQueryCache() {
52
+ return QueryCacheManager.getInstance().validate();
82
53
  }
83
54
  //# sourceMappingURL=queryCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryCache.js","sourceRoot":"","sources":["../../src/session/queryCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEpC;;;;GAIG;AACH,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1D,GAAG,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,qBAAqB,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,gCAAgC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,+BAA+B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,gCAAgC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"queryCache.js","sourceRoot":"","sources":["../../src/session/queryCache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAA6B,MAAM,gCAAgC,CAAC;AAM9F;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAsB;IAC/D,OAAO,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,iBAAiB,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,OAAO,iBAAiB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,OAAO,iBAAiB,CAAC,WAAW,EAAE,CAAC,sBAAsB,EAAE,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,OAAO,iBAAiB,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Unit tests for role inference utilities.
3
+ *
4
+ * Tests the contract of pure functions:
5
+ * - inferRoleFromTag: HTML tag to ARIA role mapping
6
+ * - synthesizeA11yNode: A11yNode synthesis from DOM context
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=roleInference.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roleInference.unit.test.d.ts","sourceRoot":"","sources":["../../../src/telemetry/__tests__/roleInference.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}