@zenalexa/unicli 0.217.0 → 0.218.0

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 (437) hide show
  1. package/AGENTS.md +36 -196
  2. package/README.md +59 -19
  3. package/README.zh-CN.md +36 -15
  4. package/crates/unicli-atspi/Cargo.toml +47 -0
  5. package/crates/unicli-atspi/README.md +6 -0
  6. package/crates/unicli-atspi/src/errors.rs +213 -0
  7. package/crates/unicli-atspi/src/input.rs +1004 -0
  8. package/crates/unicli-atspi/src/invoke.rs +1132 -0
  9. package/crates/unicli-atspi/src/main.rs +130 -0
  10. package/crates/unicli-atspi/src/refs.rs +24 -0
  11. package/crates/unicli-atspi/src/screenshot.rs +756 -0
  12. package/crates/unicli-atspi/src/tree.rs +2319 -0
  13. package/crates/unicli-shared/Cargo.toml +13 -0
  14. package/crates/unicli-shared/src/lib.rs +77 -0
  15. package/crates/unicli-uia/Cargo.toml +29 -0
  16. package/crates/unicli-uia/README.md +6 -0
  17. package/crates/unicli-uia/src/errors.rs +179 -0
  18. package/crates/unicli-uia/src/input.rs +790 -0
  19. package/crates/unicli-uia/src/invoke.rs +977 -0
  20. package/crates/unicli-uia/src/main.rs +130 -0
  21. package/crates/unicli-uia/src/refs.rs +24 -0
  22. package/crates/unicli-uia/src/screenshot.rs +685 -0
  23. package/crates/unicli-uia/src/tree.rs +2135 -0
  24. package/dist/adapters/macos/actions.d.ts +9 -0
  25. package/dist/adapters/macos/actions.d.ts.map +1 -0
  26. package/dist/adapters/macos/actions.js +55 -0
  27. package/dist/adapters/macos/actions.js.map +1 -0
  28. package/dist/browser/bridge.d.ts +2 -0
  29. package/dist/browser/bridge.d.ts.map +1 -1
  30. package/dist/browser/bridge.js +39 -0
  31. package/dist/browser/bridge.js.map +1 -1
  32. package/dist/browser/cdp-client.d.ts +2 -0
  33. package/dist/browser/cdp-client.d.ts.map +1 -1
  34. package/dist/browser/cdp-client.js +7 -0
  35. package/dist/browser/cdp-client.js.map +1 -1
  36. package/dist/browser/page.d.ts +2 -0
  37. package/dist/browser/page.d.ts.map +1 -1
  38. package/dist/browser/page.js +35 -0
  39. package/dist/browser/page.js.map +1 -1
  40. package/dist/cli.d.ts.map +1 -1
  41. package/dist/cli.js +25 -2
  42. package/dist/cli.js.map +1 -1
  43. package/dist/commands/approvals.d.ts +3 -0
  44. package/dist/commands/approvals.d.ts.map +1 -0
  45. package/dist/commands/approvals.js +123 -0
  46. package/dist/commands/approvals.js.map +1 -0
  47. package/dist/commands/auth.d.ts +1 -0
  48. package/dist/commands/auth.d.ts.map +1 -1
  49. package/dist/commands/auth.js +250 -0
  50. package/dist/commands/auth.js.map +1 -1
  51. package/dist/commands/browser-operator-runtime.d.ts.map +1 -1
  52. package/dist/commands/browser-operator-runtime.js +1 -0
  53. package/dist/commands/browser-operator-runtime.js.map +1 -1
  54. package/dist/commands/browser-operator.d.ts.map +1 -1
  55. package/dist/commands/browser-operator.js +84 -12
  56. package/dist/commands/browser-operator.js.map +1 -1
  57. package/dist/commands/compute.d.ts +3 -0
  58. package/dist/commands/compute.d.ts.map +1 -0
  59. package/dist/commands/compute.js +324 -0
  60. package/dist/commands/compute.js.map +1 -0
  61. package/dist/commands/dev.js +1 -0
  62. package/dist/commands/dev.js.map +1 -1
  63. package/dist/commands/dispatch.d.ts.map +1 -1
  64. package/dist/commands/dispatch.js +10 -4
  65. package/dist/commands/dispatch.js.map +1 -1
  66. package/dist/commands/doctor-compute.d.ts +38 -0
  67. package/dist/commands/doctor-compute.d.ts.map +1 -0
  68. package/dist/commands/doctor-compute.js +376 -0
  69. package/dist/commands/doctor-compute.js.map +1 -0
  70. package/dist/commands/health.d.ts.map +1 -1
  71. package/dist/commands/health.js +1 -0
  72. package/dist/commands/health.js.map +1 -1
  73. package/dist/commands/lint.d.ts.map +1 -1
  74. package/dist/commands/lint.js +78 -1
  75. package/dist/commands/lint.js.map +1 -1
  76. package/dist/commands/mcp.d.ts.map +1 -1
  77. package/dist/commands/mcp.js +4 -0
  78. package/dist/commands/mcp.js.map +1 -1
  79. package/dist/commands/repair.d.ts +1 -0
  80. package/dist/commands/repair.d.ts.map +1 -1
  81. package/dist/commands/repair.js +103 -61
  82. package/dist/commands/repair.js.map +1 -1
  83. package/dist/commands/runs.d.ts +3 -0
  84. package/dist/commands/runs.d.ts.map +1 -0
  85. package/dist/commands/runs.js +367 -0
  86. package/dist/commands/runs.js.map +1 -0
  87. package/dist/core/envelope.d.ts +8 -0
  88. package/dist/core/envelope.d.ts.map +1 -1
  89. package/dist/core/envelope.js +1 -0
  90. package/dist/core/envelope.js.map +1 -1
  91. package/dist/discovery/aliases.d.ts.map +1 -1
  92. package/dist/discovery/aliases.js +15 -0
  93. package/dist/discovery/aliases.js.map +1 -1
  94. package/dist/discovery/loader.d.ts.map +1 -1
  95. package/dist/discovery/loader.js +9 -0
  96. package/dist/discovery/loader.js.map +1 -1
  97. package/dist/discovery/macos-dynamic.d.ts +58 -0
  98. package/dist/discovery/macos-dynamic.d.ts.map +1 -0
  99. package/dist/discovery/macos-dynamic.js +429 -0
  100. package/dist/discovery/macos-dynamic.js.map +1 -0
  101. package/dist/discovery/search.d.ts.map +1 -1
  102. package/dist/discovery/search.js +152 -3
  103. package/dist/discovery/search.js.map +1 -1
  104. package/dist/electron-apps.d.ts +1 -0
  105. package/dist/electron-apps.d.ts.map +1 -1
  106. package/dist/electron-apps.js +1 -0
  107. package/dist/electron-apps.js.map +1 -1
  108. package/dist/engine/approval-store.d.ts +43 -0
  109. package/dist/engine/approval-store.d.ts.map +1 -0
  110. package/dist/engine/approval-store.js +193 -0
  111. package/dist/engine/approval-store.js.map +1 -0
  112. package/dist/engine/browser/action-evidence.d.ts +2 -0
  113. package/dist/engine/browser/action-evidence.d.ts.map +1 -1
  114. package/dist/engine/browser/action-evidence.js +35 -1
  115. package/dist/engine/browser/action-evidence.js.map +1 -1
  116. package/dist/engine/browser/evidence.d.ts +22 -0
  117. package/dist/engine/browser/evidence.d.ts.map +1 -1
  118. package/dist/engine/browser/evidence.js +72 -0
  119. package/dist/engine/browser/evidence.js.map +1 -1
  120. package/dist/engine/browser/session-lease.d.ts +53 -0
  121. package/dist/engine/browser/session-lease.d.ts.map +1 -0
  122. package/dist/engine/browser/session-lease.js +100 -0
  123. package/dist/engine/browser/session-lease.js.map +1 -0
  124. package/dist/engine/browser/session-lock.d.ts +17 -0
  125. package/dist/engine/browser/session-lock.d.ts.map +1 -0
  126. package/dist/engine/browser/session-lock.js +114 -0
  127. package/dist/engine/browser/session-lock.js.map +1 -0
  128. package/dist/engine/browser/session-runtime.d.ts +10 -0
  129. package/dist/engine/browser/session-runtime.d.ts.map +1 -0
  130. package/dist/engine/browser/session-runtime.js +87 -0
  131. package/dist/engine/browser/session-runtime.js.map +1 -0
  132. package/dist/engine/capability-policy.d.ts +13 -2
  133. package/dist/engine/capability-policy.d.ts.map +1 -1
  134. package/dist/engine/capability-policy.js +113 -3
  135. package/dist/engine/capability-policy.js.map +1 -1
  136. package/dist/engine/chromium-cookies-platform.d.ts +69 -0
  137. package/dist/engine/chromium-cookies-platform.d.ts.map +1 -0
  138. package/dist/engine/chromium-cookies-platform.js +315 -0
  139. package/dist/engine/chromium-cookies-platform.js.map +1 -0
  140. package/dist/engine/chromium-cookies-types.d.ts +26 -0
  141. package/dist/engine/chromium-cookies-types.d.ts.map +1 -0
  142. package/dist/engine/chromium-cookies-types.js +16 -0
  143. package/dist/engine/chromium-cookies-types.js.map +1 -0
  144. package/dist/engine/chromium-cookies.d.ts +56 -0
  145. package/dist/engine/chromium-cookies.d.ts.map +1 -0
  146. package/dist/engine/chromium-cookies.js +361 -0
  147. package/dist/engine/chromium-cookies.js.map +1 -0
  148. package/dist/engine/cookies.d.ts +13 -5
  149. package/dist/engine/cookies.d.ts.map +1 -1
  150. package/dist/engine/cookies.js +55 -9
  151. package/dist/engine/cookies.js.map +1 -1
  152. package/dist/engine/executor.d.ts +16 -3
  153. package/dist/engine/executor.d.ts.map +1 -1
  154. package/dist/engine/executor.js +10 -3
  155. package/dist/engine/executor.js.map +1 -1
  156. package/dist/engine/kernel/execute.d.ts +1 -0
  157. package/dist/engine/kernel/execute.d.ts.map +1 -1
  158. package/dist/engine/kernel/execute.js +126 -3
  159. package/dist/engine/kernel/execute.js.map +1 -1
  160. package/dist/engine/kernel/types.d.ts +13 -0
  161. package/dist/engine/kernel/types.d.ts.map +1 -1
  162. package/dist/engine/operation-policy.d.ts +9 -1
  163. package/dist/engine/operation-policy.d.ts.map +1 -1
  164. package/dist/engine/operation-policy.js +6 -2
  165. package/dist/engine/operation-policy.js.map +1 -1
  166. package/dist/engine/permission-rules.d.ts +43 -0
  167. package/dist/engine/permission-rules.d.ts.map +1 -0
  168. package/dist/engine/permission-rules.js +401 -0
  169. package/dist/engine/permission-rules.js.map +1 -0
  170. package/dist/engine/permission-runtime.d.ts +11 -0
  171. package/dist/engine/permission-runtime.d.ts.map +1 -0
  172. package/dist/engine/permission-runtime.js +21 -0
  173. package/dist/engine/permission-runtime.js.map +1 -0
  174. package/dist/engine/repair/quarantine-discovery.d.ts +25 -0
  175. package/dist/engine/repair/quarantine-discovery.d.ts.map +1 -0
  176. package/dist/engine/repair/quarantine-discovery.js +78 -0
  177. package/dist/engine/repair/quarantine-discovery.js.map +1 -0
  178. package/dist/engine/repair/remedies.d.ts +4 -0
  179. package/dist/engine/repair/remedies.d.ts.map +1 -0
  180. package/dist/engine/repair/remedies.js +169 -0
  181. package/dist/engine/repair/remedies.js.map +1 -0
  182. package/dist/engine/runtime-resource-guard.d.ts +23 -0
  183. package/dist/engine/runtime-resource-guard.d.ts.map +1 -0
  184. package/dist/engine/runtime-resource-guard.js +85 -0
  185. package/dist/engine/runtime-resource-guard.js.map +1 -0
  186. package/dist/engine/session/args.d.ts +3 -0
  187. package/dist/engine/session/args.d.ts.map +1 -0
  188. package/dist/engine/session/args.js +17 -0
  189. package/dist/engine/session/args.js.map +1 -0
  190. package/dist/engine/session/compare.d.ts +92 -0
  191. package/dist/engine/session/compare.d.ts.map +1 -0
  192. package/dist/engine/session/compare.js +324 -0
  193. package/dist/engine/session/compare.js.map +1 -0
  194. package/dist/engine/session/environment.d.ts +4 -0
  195. package/dist/engine/session/environment.d.ts.map +1 -0
  196. package/dist/engine/session/environment.js +25 -0
  197. package/dist/engine/session/environment.js.map +1 -0
  198. package/dist/engine/session/events.d.ts +2 -0
  199. package/dist/engine/session/events.d.ts.map +1 -1
  200. package/dist/engine/session/events.js +12 -0
  201. package/dist/engine/session/events.js.map +1 -1
  202. package/dist/engine/session/query.d.ts +47 -0
  203. package/dist/engine/session/query.d.ts.map +1 -0
  204. package/dist/engine/session/query.js +299 -0
  205. package/dist/engine/session/query.js.map +1 -0
  206. package/dist/engine/session/replay.d.ts +35 -0
  207. package/dist/engine/session/replay.d.ts.map +1 -0
  208. package/dist/engine/session/replay.js +144 -0
  209. package/dist/engine/session/replay.js.map +1 -0
  210. package/dist/engine/session/run-loop.d.ts.map +1 -1
  211. package/dist/engine/session/run-loop.js +62 -23
  212. package/dist/engine/session/run-loop.js.map +1 -1
  213. package/dist/engine/session/store.d.ts +7 -0
  214. package/dist/engine/session/store.d.ts.map +1 -1
  215. package/dist/engine/session/store.js +131 -1
  216. package/dist/engine/session/store.js.map +1 -1
  217. package/dist/engine/session/types.d.ts +3 -1
  218. package/dist/engine/session/types.d.ts.map +1 -1
  219. package/dist/engine/steps/compute.d.ts +41 -0
  220. package/dist/engine/steps/compute.d.ts.map +1 -0
  221. package/dist/engine/steps/compute.js +55 -0
  222. package/dist/engine/steps/compute.js.map +1 -0
  223. package/dist/engine/steps/desktop-ax.d.ts +8 -0
  224. package/dist/engine/steps/desktop-ax.d.ts.map +1 -1
  225. package/dist/engine/steps/desktop-ax.js +16 -0
  226. package/dist/engine/steps/desktop-ax.js.map +1 -1
  227. package/dist/engine/steps/desktop-sidecar.d.ts +49 -0
  228. package/dist/engine/steps/desktop-sidecar.d.ts.map +1 -0
  229. package/dist/engine/steps/desktop-sidecar.js +50 -0
  230. package/dist/engine/steps/desktop-sidecar.js.map +1 -0
  231. package/dist/engine/steps/download.d.ts +1 -1
  232. package/dist/engine/steps/download.d.ts.map +1 -1
  233. package/dist/engine/steps/download.js +24 -2
  234. package/dist/engine/steps/download.js.map +1 -1
  235. package/dist/engine/steps/exec.d.ts +1 -1
  236. package/dist/engine/steps/exec.d.ts.map +1 -1
  237. package/dist/engine/steps/exec.js +23 -7
  238. package/dist/engine/steps/exec.js.map +1 -1
  239. package/dist/engine/steps/fetch-text.d.ts +1 -1
  240. package/dist/engine/steps/fetch-text.d.ts.map +1 -1
  241. package/dist/engine/steps/fetch-text.js +12 -4
  242. package/dist/engine/steps/fetch-text.js.map +1 -1
  243. package/dist/engine/steps/fetch.d.ts +2 -1
  244. package/dist/engine/steps/fetch.d.ts.map +1 -1
  245. package/dist/engine/steps/fetch.js +29 -6
  246. package/dist/engine/steps/fetch.js.map +1 -1
  247. package/dist/engine/steps/index.d.ts +2 -0
  248. package/dist/engine/steps/index.d.ts.map +1 -1
  249. package/dist/engine/steps/index.js +2 -0
  250. package/dist/engine/steps/index.js.map +1 -1
  251. package/dist/engine/steps/navigate.d.ts +1 -1
  252. package/dist/engine/steps/navigate.d.ts.map +1 -1
  253. package/dist/engine/steps/navigate.js +33 -2
  254. package/dist/engine/steps/navigate.js.map +1 -1
  255. package/dist/engine/template.d.ts +14 -4
  256. package/dist/engine/template.d.ts.map +1 -1
  257. package/dist/engine/template.js +93 -65
  258. package/dist/engine/template.js.map +1 -1
  259. package/dist/engine/verify-row-shape.d.ts +17 -0
  260. package/dist/engine/verify-row-shape.d.ts.map +1 -0
  261. package/dist/engine/verify-row-shape.js +36 -0
  262. package/dist/engine/verify-row-shape.js.map +1 -0
  263. package/dist/fast-path/handlers/adapter.d.ts +15 -0
  264. package/dist/fast-path/handlers/adapter.d.ts.map +1 -0
  265. package/dist/fast-path/handlers/adapter.js +169 -0
  266. package/dist/fast-path/handlers/adapter.js.map +1 -0
  267. package/dist/fast-path/handlers/discovery.d.ts +14 -0
  268. package/dist/fast-path/handlers/discovery.d.ts.map +1 -0
  269. package/dist/fast-path/handlers/discovery.js +280 -0
  270. package/dist/fast-path/handlers/discovery.js.map +1 -0
  271. package/dist/fast-path/manifest.d.ts +47 -0
  272. package/dist/fast-path/manifest.d.ts.map +1 -0
  273. package/dist/fast-path/manifest.js +32 -0
  274. package/dist/fast-path/manifest.js.map +1 -0
  275. package/dist/fast-path/parsed-argv.d.ts +16 -0
  276. package/dist/fast-path/parsed-argv.d.ts.map +1 -0
  277. package/dist/fast-path/parsed-argv.js +6 -0
  278. package/dist/fast-path/parsed-argv.js.map +1 -0
  279. package/dist/fast-path/policy.d.ts +25 -0
  280. package/dist/fast-path/policy.d.ts.map +1 -0
  281. package/dist/fast-path/policy.js +96 -0
  282. package/dist/fast-path/policy.js.map +1 -0
  283. package/dist/fast-path/render.d.ts +26 -0
  284. package/dist/fast-path/render.d.ts.map +1 -0
  285. package/dist/fast-path/render.js +200 -0
  286. package/dist/fast-path/render.js.map +1 -0
  287. package/dist/fast-path.d.ts +8 -10
  288. package/dist/fast-path.d.ts.map +1 -1
  289. package/dist/fast-path.js +66 -726
  290. package/dist/fast-path.js.map +1 -1
  291. package/dist/manifest-compact.txt +2 -2
  292. package/dist/manifest-search.json +1 -1
  293. package/dist/manifest.json +1030 -6
  294. package/dist/mcp/handler.d.ts +2 -2
  295. package/dist/mcp/handler.d.ts.map +1 -1
  296. package/dist/mcp/handler.js +59 -5
  297. package/dist/mcp/handler.js.map +1 -1
  298. package/dist/mcp/profiles/computer-use.d.ts +4 -0
  299. package/dist/mcp/profiles/computer-use.d.ts.map +1 -0
  300. package/dist/mcp/profiles/computer-use.js +305 -0
  301. package/dist/mcp/profiles/computer-use.js.map +1 -0
  302. package/dist/mcp/server.d.ts.map +1 -1
  303. package/dist/mcp/server.js +30 -6
  304. package/dist/mcp/server.js.map +1 -1
  305. package/dist/mcp/tools.d.ts +9 -0
  306. package/dist/mcp/tools.d.ts.map +1 -1
  307. package/dist/mcp/tools.js +20 -0
  308. package/dist/mcp/tools.js.map +1 -1
  309. package/dist/output/envelope.d.ts +6 -0
  310. package/dist/output/envelope.d.ts.map +1 -1
  311. package/dist/output/envelope.js.map +1 -1
  312. package/dist/output/error-map.d.ts.map +1 -1
  313. package/dist/output/error-map.js +4 -0
  314. package/dist/output/error-map.js.map +1 -1
  315. package/dist/registry.d.ts +1 -0
  316. package/dist/registry.d.ts.map +1 -1
  317. package/dist/registry.js +5 -0
  318. package/dist/registry.js.map +1 -1
  319. package/dist/transport/adapters/cdp-browser.d.ts +44 -8
  320. package/dist/transport/adapters/cdp-browser.d.ts.map +1 -1
  321. package/dist/transport/adapters/cdp-browser.js +356 -29
  322. package/dist/transport/adapters/cdp-browser.js.map +1 -1
  323. package/dist/transport/adapters/desktop-atspi.d.ts +23 -17
  324. package/dist/transport/adapters/desktop-atspi.d.ts.map +1 -1
  325. package/dist/transport/adapters/desktop-atspi.js +143 -32
  326. package/dist/transport/adapters/desktop-atspi.js.map +1 -1
  327. package/dist/transport/adapters/desktop-ax-helpers.d.ts +24 -0
  328. package/dist/transport/adapters/desktop-ax-helpers.d.ts.map +1 -0
  329. package/dist/transport/adapters/desktop-ax-helpers.js +190 -0
  330. package/dist/transport/adapters/desktop-ax-helpers.js.map +1 -0
  331. package/dist/transport/adapters/desktop-ax-swift.d.ts +13 -0
  332. package/dist/transport/adapters/desktop-ax-swift.d.ts.map +1 -1
  333. package/dist/transport/adapters/desktop-ax-swift.js +176 -2
  334. package/dist/transport/adapters/desktop-ax-swift.js.map +1 -1
  335. package/dist/transport/adapters/desktop-ax.d.ts +11 -2
  336. package/dist/transport/adapters/desktop-ax.d.ts.map +1 -1
  337. package/dist/transport/adapters/desktop-ax.js +131 -16
  338. package/dist/transport/adapters/desktop-ax.js.map +1 -1
  339. package/dist/transport/adapters/desktop-sidecar-errors.d.ts +3 -0
  340. package/dist/transport/adapters/desktop-sidecar-errors.d.ts.map +1 -0
  341. package/dist/transport/adapters/desktop-sidecar-errors.js +34 -0
  342. package/dist/transport/adapters/desktop-sidecar-errors.js.map +1 -0
  343. package/dist/transport/adapters/desktop-sidecar-snapshot.d.ts +10 -0
  344. package/dist/transport/adapters/desktop-sidecar-snapshot.d.ts.map +1 -0
  345. package/dist/transport/adapters/desktop-sidecar-snapshot.js +89 -0
  346. package/dist/transport/adapters/desktop-sidecar-snapshot.js.map +1 -0
  347. package/dist/transport/adapters/desktop-uia.d.ts +23 -17
  348. package/dist/transport/adapters/desktop-uia.d.ts.map +1 -1
  349. package/dist/transport/adapters/desktop-uia.js +142 -32
  350. package/dist/transport/adapters/desktop-uia.js.map +1 -1
  351. package/dist/transport/adapters/subprocess.d.ts +11 -4
  352. package/dist/transport/adapters/subprocess.d.ts.map +1 -1
  353. package/dist/transport/adapters/subprocess.js +68 -4
  354. package/dist/transport/adapters/subprocess.js.map +1 -1
  355. package/dist/transport/bus.d.ts +2 -0
  356. package/dist/transport/bus.d.ts.map +1 -1
  357. package/dist/transport/bus.js +7 -11
  358. package/dist/transport/bus.js.map +1 -1
  359. package/dist/transport/capability.d.ts.map +1 -1
  360. package/dist/transport/capability.js +123 -98
  361. package/dist/transport/capability.js.map +1 -1
  362. package/dist/transport/cascade.d.ts +5 -0
  363. package/dist/transport/cascade.d.ts.map +1 -0
  364. package/dist/transport/cascade.js +550 -0
  365. package/dist/transport/cascade.js.map +1 -0
  366. package/dist/transport/cdp-session.d.ts +11 -0
  367. package/dist/transport/cdp-session.d.ts.map +1 -0
  368. package/dist/transport/cdp-session.js +52 -0
  369. package/dist/transport/cdp-session.js.map +1 -0
  370. package/dist/transport/refs.d.ts +51 -0
  371. package/dist/transport/refs.d.ts.map +1 -0
  372. package/dist/transport/refs.js +135 -0
  373. package/dist/transport/refs.js.map +1 -0
  374. package/dist/transport/sidecar-binary.d.ts +18 -0
  375. package/dist/transport/sidecar-binary.d.ts.map +1 -0
  376. package/dist/transport/sidecar-binary.js +55 -0
  377. package/dist/transport/sidecar-binary.js.map +1 -0
  378. package/dist/transport/sidecar.d.ts +35 -0
  379. package/dist/transport/sidecar.d.ts.map +1 -0
  380. package/dist/transport/sidecar.js +134 -0
  381. package/dist/transport/sidecar.js.map +1 -0
  382. package/dist/transport/snapshot-encoder.d.ts +34 -0
  383. package/dist/transport/snapshot-encoder.d.ts.map +1 -0
  384. package/dist/transport/snapshot-encoder.js +139 -0
  385. package/dist/transport/snapshot-encoder.js.map +1 -0
  386. package/dist/transport/types.d.ts +6 -1
  387. package/dist/transport/types.d.ts.map +1 -1
  388. package/dist/types.d.ts +2 -0
  389. package/dist/types.d.ts.map +1 -1
  390. package/dist/types.js.map +1 -1
  391. package/docs/mcp/clients/claude-code.md +29 -0
  392. package/docs/mcp/clients/claude-desktop.md +47 -0
  393. package/docs/mcp/clients/codex.md +29 -0
  394. package/docs/mcp/clients/cursor.md +38 -0
  395. package/docs/mcp/clients/gemini-cli.md +38 -0
  396. package/docs/operate/compute.md +172 -0
  397. package/docs/operate/electron.md +87 -0
  398. package/docs/operate/focus-behavior.md +40 -0
  399. package/docs/operate/troubleshooting.md +379 -0
  400. package/package.json +29 -4
  401. package/src/adapters/adguardhome/rules.yaml +1 -1
  402. package/src/adapters/adguardhome/stats.yaml +1 -1
  403. package/src/adapters/adguardhome/status.yaml +1 -1
  404. package/src/adapters/apple-music/rate-album.yaml +1 -2
  405. package/src/adapters/arxiv/trending.yaml +1 -1
  406. package/src/adapters/az/account.yaml +1 -1
  407. package/src/adapters/coupang/hot.yaml +2 -1
  408. package/src/adapters/ctrip/hot.yaml +2 -1
  409. package/src/adapters/ctrip/search.yaml +2 -1
  410. package/src/adapters/douban/top250.yaml +1 -1
  411. package/src/adapters/figma/export-selected.yaml +1 -2
  412. package/src/adapters/gcloud/projects.yaml +1 -1
  413. package/src/adapters/github-trending/developers.yaml +1 -1
  414. package/src/adapters/github-trending/weekly.yaml +1 -1
  415. package/src/adapters/homebrew/search.yaml +1 -1
  416. package/src/adapters/imdb/top.yaml +1 -1
  417. package/src/adapters/itch-io/popular.yaml +1 -1
  418. package/src/adapters/itch-io/top.yaml +1 -1
  419. package/src/adapters/juejin/hot.test.ts +25 -0
  420. package/src/adapters/juejin/hot.yaml +52 -0
  421. package/src/adapters/juejin/search.test.ts +27 -0
  422. package/src/adapters/juejin/search.yaml +58 -0
  423. package/src/adapters/leetcode/discuss-search.test.ts +29 -0
  424. package/src/adapters/leetcode/discuss-search.yaml +56 -0
  425. package/src/adapters/macos/actions.ts +63 -0
  426. package/src/adapters/mastodon/timeline.yaml +1 -1
  427. package/src/adapters/openrouter/search.yaml +1 -1
  428. package/src/adapters/pypi/search.yaml +2 -1
  429. package/src/adapters/sspai/hot.yaml +4 -1
  430. package/src/adapters/sspai/latest.yaml +3 -3
  431. package/src/adapters/tieba/hot.yaml +1 -1
  432. package/src/adapters/wikipedia/today.yaml +1 -1
  433. package/src/adapters/zoom/toggle-mute.yaml +1 -2
  434. package/dist/engine/yaml-runner.d.ts +0 -11
  435. package/dist/engine/yaml-runner.d.ts.map +0 -1
  436. package/dist/engine/yaml-runner.js +0 -18
  437. package/dist/engine/yaml-runner.js.map +0 -1
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Per-platform Chromium cookie key derivation, keystore lookup, and decrypt.
3
+ *
4
+ * The three platforms diverge meaningfully:
5
+ *
6
+ * macOS — Keychain `security` CLI → password (≤24 ASCII chars)
7
+ * PBKDF2-SHA1(saltysalt, 1003, 16) → 16-byte AES key
8
+ * v10/v11 prefix + AES-128-CBC + IV=16×0x20 + PKCS7
9
+ * 32-byte SHA256 integrity prefix on plaintext (M122+)
10
+ *
11
+ * Linux — libsecret/KWallet via `secret-tool` → password
12
+ * fallback to literal "peanuts" if no keyring (Chromium HEAD)
13
+ * PBKDF2-SHA1(saltysalt, **1**, 16) → 16-byte AES key (CRITICAL)
14
+ * v10/v11 prefix + AES-128-CBC + IV=16×0x20 + PKCS7
15
+ * NO integrity prefix
16
+ *
17
+ * Windows — `Local State` → os_crypt.encrypted_key (base64)
18
+ * strip "DPAPI" 5-byte prefix
19
+ * CryptUnprotectData(CurrentUser) via PowerShell → 32-byte master
20
+ * v10 prefix + 12-byte nonce + AES-256-GCM(ct + 16-byte tag, master)
21
+ * 32-byte SHA256 integrity prefix on plaintext
22
+ * v20 (Chrome 127+ App-Bound Encryption) is BLOCKED for external
23
+ * processes by design; we surface encryption_unsupported and
24
+ * suggest CDP fallback rather than ship a brittle bypass.
25
+ *
26
+ * All three platforms validate the prefix bytes to detect format drift early.
27
+ */
28
+ import { execFileSync } from "node:child_process";
29
+ import { existsSync, readFileSync } from "node:fs";
30
+ import { join } from "node:path";
31
+ import { createDecipheriv, pbkdf2Sync } from "node:crypto";
32
+ import { ChromiumCookieError, } from "./chromium-cookies-types.js";
33
+ export function currentPlatform() {
34
+ const p = process.platform;
35
+ if (p === "darwin" || p === "linux" || p === "win32")
36
+ return p;
37
+ throw new ChromiumCookieError("encryption_unsupported", `unsupported platform: ${p}`, "Direct cookie reads work on macOS, Linux, and Windows. Use CDP fallback elsewhere.");
38
+ }
39
+ /**
40
+ * Look up a browser's encryption secret. Returns either a passphrase string
41
+ * (macOS / Linux) or a 32-byte master key Buffer (Windows). The caller's
42
+ * `deriveKey` knows which to expect based on the platform.
43
+ *
44
+ * Result is memoized per (browser, platform, userDataRoot) for the lifetime
45
+ * of the process — Keychain prompts and DPAPI calls cost ~30-100 ms each, so
46
+ * an audit walking 135 adapters with the same browser would otherwise spend
47
+ * seconds re-fetching the same secret. Tests can clear via `_resetSecretCache`.
48
+ */
49
+ const secretCache = new Map();
50
+ export function _resetSecretCache() {
51
+ secretCache.clear();
52
+ }
53
+ export function getEncryptionSecret(browser, platform, spec, userDataRoot) {
54
+ const cacheKey = `${platform}:${browser}:${userDataRoot}`;
55
+ const cached = secretCache.get(cacheKey);
56
+ if (cached)
57
+ return cached;
58
+ let secret;
59
+ switch (platform) {
60
+ case "darwin":
61
+ secret = macSecurityLookup(browser, spec);
62
+ break;
63
+ case "linux":
64
+ secret = linuxSecretLookup(browser, spec);
65
+ break;
66
+ case "win32":
67
+ secret = winDpapiLookup(browser, spec, userDataRoot);
68
+ break;
69
+ }
70
+ secretCache.set(cacheKey, secret);
71
+ return secret;
72
+ }
73
+ /* macOS ------------------------------------------------------------------- */
74
+ function macSecurityLookup(browser, spec) {
75
+ const labels = spec.macLabels ?? [];
76
+ const accounts = spec.macAccounts ?? [];
77
+ let lastError = "";
78
+ for (const label of labels) {
79
+ for (const account of accounts) {
80
+ try {
81
+ const args = ["find-generic-password", "-w", "-s", label];
82
+ if (account)
83
+ args.push("-a", account);
84
+ const out = execFileSync("/usr/bin/security", args, {
85
+ encoding: "utf8",
86
+ stdio: ["ignore", "pipe", "pipe"],
87
+ });
88
+ const trimmed = out.trim();
89
+ if (trimmed)
90
+ return trimmed;
91
+ }
92
+ catch (err) {
93
+ lastError = err.message;
94
+ }
95
+ }
96
+ }
97
+ throw new ChromiumCookieError("keychain_denied", `no Safe Storage password for ${browser}: ${lastError || "not found"}`, `Try: security find-generic-password -wa "${accounts[0] ?? browser}" -s "${labels[0] ?? `${browser} Safe Storage`}"`);
98
+ }
99
+ /* Linux ------------------------------------------------------------------- */
100
+ function linuxSecretLookup(_browser, spec) {
101
+ const app = spec.linuxApp;
102
+ const schema = spec.linuxSchema ?? "chrome_libsecret_os_crypt_password_v2";
103
+ if (app) {
104
+ try {
105
+ const out = execFileSync("secret-tool", ["lookup", "application", app, "xdg:schema", schema], { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] });
106
+ const trimmed = out.trim();
107
+ if (trimmed)
108
+ return trimmed;
109
+ }
110
+ catch {
111
+ // Fall through to peanuts — secret-tool missing or no entry.
112
+ }
113
+ }
114
+ // Chromium HEAD `posix_key_provider.cc` literal: when no keyring backend is
115
+ // available, the v10 password is the ASCII string "peanuts". That gives us
116
+ // best-effort access on headless boxes / containers without a keyring.
117
+ return "peanuts";
118
+ }
119
+ /* Windows ----------------------------------------------------------------- */
120
+ function winDpapiLookup(browser, spec, userDataRoot) {
121
+ const localStateRel = spec.winLocalStateRel ?? "Local State";
122
+ const localStatePath = join(userDataRoot, localStateRel);
123
+ if (!existsSync(localStatePath)) {
124
+ throw new ChromiumCookieError("keychain_denied", `${browser}: Local State not found at ${localStatePath}`, "Open the browser at least once so it writes its master key, then retry.");
125
+ }
126
+ let parsed;
127
+ try {
128
+ parsed = JSON.parse(readFileSync(localStatePath, "utf8"));
129
+ }
130
+ catch (err) {
131
+ throw new ChromiumCookieError("keychain_denied", `${browser}: cannot parse Local State: ${err.message}`, "Local State is corrupt; close the browser and retry, or reset the profile.");
132
+ }
133
+ const enc = parsed.os_crypt?.encrypted_key;
134
+ if (!enc) {
135
+ throw new ChromiumCookieError("keychain_denied", `${browser}: Local State has no os_crypt.encrypted_key`, "The browser hasn't written a v10 master key. Sign into a site once, then retry.");
136
+ }
137
+ const wrapped = Buffer.from(enc, "base64");
138
+ // Strip "DPAPI" (5-byte prefix added since M55).
139
+ if (wrapped.length < 5 ||
140
+ wrapped.subarray(0, 5).toString("ascii") !== "DPAPI") {
141
+ throw new ChromiumCookieError("encryption_unsupported", `${browser}: encrypted_key missing DPAPI prefix`, "Likely an app-bound (v20) install. Use CDP via `unicli browser start`.");
142
+ }
143
+ const ciphertext = wrapped.subarray(5);
144
+ return dpapiUnprotect(ciphertext);
145
+ }
146
+ /**
147
+ * Run DPAPI CryptUnprotectData(CurrentUser) without a native module.
148
+ * Shells PowerShell to call `[System.Security.Cryptography.ProtectedData]`.
149
+ * Slow (~80 ms) but zero-install.
150
+ */
151
+ function dpapiUnprotect(ciphertext) {
152
+ const b64 = ciphertext.toString("base64");
153
+ const ps = [
154
+ "$ErrorActionPreference='Stop'",
155
+ "Add-Type -AssemblyName System.Security",
156
+ `$b=[Convert]::FromBase64String('${b64}')`,
157
+ "$p=[System.Security.Cryptography.ProtectedData]::Unprotect($b,$null,'CurrentUser')",
158
+ "[Convert]::ToBase64String($p)",
159
+ ].join(";");
160
+ let out;
161
+ try {
162
+ out = execFileSync("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", ps], { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] });
163
+ }
164
+ catch (err) {
165
+ throw new ChromiumCookieError("decrypt_failed", `DPAPI unprotect failed: ${err.message}`, "Run as the same user that owns the profile. Cross-user DPAPI is intentionally blocked.");
166
+ }
167
+ return Buffer.from(out.trim(), "base64");
168
+ }
169
+ /* -------------------------------------------------------------------------- */
170
+ /* Key derivation */
171
+ /* -------------------------------------------------------------------------- */
172
+ const SALT = "saltysalt";
173
+ const KEY_LEN_128 = 16;
174
+ const KEY_LEN_256 = 32;
175
+ /**
176
+ * Derive the AES key from the platform secret. macOS uses 1003 PBKDF2
177
+ * iterations; Linux uses **1** iteration (Chromium's
178
+ * `kEncryptionIterations = 1` for `freedesktop_secret_key_provider.cc`).
179
+ * Windows passes through — DPAPI already returned a 32-byte master.
180
+ */
181
+ export function deriveKey(secret, platform) {
182
+ if (platform === "win32") {
183
+ if (typeof secret === "string") {
184
+ throw new ChromiumCookieError("decrypt_failed", "Windows expects a 32-byte master key, got a string", "This is an internal bug; report it.");
185
+ }
186
+ if (secret.length !== KEY_LEN_256) {
187
+ throw new ChromiumCookieError("decrypt_failed", `Windows master key has unexpected length ${secret.length} (want 32)`, "Likely a corrupted Local State; reset the browser profile.");
188
+ }
189
+ return secret;
190
+ }
191
+ const password = typeof secret === "string" ? secret : secret.toString("utf8");
192
+ const iterations = platform === "darwin" ? 1003 : 1;
193
+ return pbkdf2Sync(password, SALT, iterations, KEY_LEN_128, "sha1");
194
+ }
195
+ /* -------------------------------------------------------------------------- */
196
+ /* Decrypt */
197
+ /* -------------------------------------------------------------------------- */
198
+ const IV_CBC = Buffer.alloc(16, 0x20);
199
+ const INTEGRITY_PREFIX_LEN = 32;
200
+ /**
201
+ * Decrypt a single Chromium-encrypted cookie value.
202
+ *
203
+ * • Empty buffer → empty string
204
+ * • No `vNN` prefix → raw bytes (legacy unencrypted)
205
+ * • `v10`/`v11` macOS → AES-128-CBC, strip 32-byte SHA256 prefix when present
206
+ * • `v10`/`v11` Linux → AES-128-CBC, NO integrity prefix
207
+ * • `v10` Win → AES-256-GCM with 12-byte nonce + 16-byte tag,
208
+ * strip 32-byte SHA256 prefix
209
+ * • `v20` Win → encryption_unsupported (App-Bound Encryption)
210
+ */
211
+ export function decryptValue(encrypted, key, platform) {
212
+ if (encrypted.length === 0)
213
+ return "";
214
+ const prefix = encrypted.subarray(0, 3).toString("ascii");
215
+ if (prefix !== "v10" && prefix !== "v11") {
216
+ if (/^v\d/.test(prefix)) {
217
+ throw new ChromiumCookieError("encryption_unsupported", `unsupported cookie encryption version "${prefix}"` +
218
+ (prefix === "v20"
219
+ ? " (Chrome 127+ App-Bound Encryption blocks external decrypt)"
220
+ : ""), prefix === "v20"
221
+ ? "Use CDP: `unicli browser start` then `unicli auth import` once Chrome is logged in."
222
+ : "Open the site in your browser and try CDP fallback, or downgrade the browser.");
223
+ }
224
+ return encrypted.toString("utf8");
225
+ }
226
+ const body = encrypted.subarray(3);
227
+ const plain = platform === "win32" ? decryptGcm(body, key) : decryptCbc(body, key);
228
+ // macOS + Windows prepend a 32-byte SHA256 integrity hash before the value.
229
+ // Linux does not. Heuristic: if the first 32 bytes contain any non-printable
230
+ // byte (the SHA256 of any value almost always does), strip them. ASCII-only
231
+ // first 32 bytes are almost surely real cookie content.
232
+ if (platform !== "linux" &&
233
+ plain.length >= INTEGRITY_PREFIX_LEN &&
234
+ hasNonPrintable(plain.subarray(0, INTEGRITY_PREFIX_LEN))) {
235
+ return plain.subarray(INTEGRITY_PREFIX_LEN).toString("utf8");
236
+ }
237
+ return plain.toString("utf8");
238
+ }
239
+ function decryptCbc(ciphertext, key) {
240
+ const decipher = createDecipheriv("aes-128-cbc", key, IV_CBC);
241
+ try {
242
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]);
243
+ }
244
+ catch (err) {
245
+ throw new ChromiumCookieError("decrypt_failed", `AES-128-CBC decrypt failed: ${err.message}`, "The Keychain key may be wrong; revoke and re-grant Keychain access.");
246
+ }
247
+ }
248
+ function decryptGcm(ciphertext, key) {
249
+ if (ciphertext.length < 12 + 16) {
250
+ throw new ChromiumCookieError("decrypt_failed", `GCM ciphertext too short (${ciphertext.length} bytes)`, "Cookie blob is malformed; the Cookies DB may be corrupt.");
251
+ }
252
+ const nonce = ciphertext.subarray(0, 12);
253
+ const tag = ciphertext.subarray(ciphertext.length - 16);
254
+ const ct = ciphertext.subarray(12, ciphertext.length - 16);
255
+ const decipher = createDecipheriv("aes-256-gcm", key, nonce);
256
+ decipher.setAuthTag(tag);
257
+ try {
258
+ return Buffer.concat([decipher.update(ct), decipher.final()]);
259
+ }
260
+ catch (err) {
261
+ throw new ChromiumCookieError("decrypt_failed", `AES-256-GCM decrypt failed: ${err.message}`, "The DPAPI master key may be wrong (cross-user DPAPI is blocked) or this is a v20 cookie.");
262
+ }
263
+ }
264
+ function hasNonPrintable(buf) {
265
+ for (const b of buf) {
266
+ if (b < 0x20 || b > 0x7e)
267
+ return true;
268
+ }
269
+ return false;
270
+ }
271
+ /* -------------------------------------------------------------------------- */
272
+ /* Per-browser keystore specs */
273
+ /* -------------------------------------------------------------------------- */
274
+ export const KEYSTORE_SPECS = {
275
+ chrome: {
276
+ macLabels: ["Chrome Safe Storage"],
277
+ macAccounts: ["Chrome"],
278
+ linuxApp: "chrome",
279
+ winLocalStateRel: "Local State",
280
+ },
281
+ brave: {
282
+ macLabels: ["Brave Safe Storage"],
283
+ macAccounts: ["Brave"],
284
+ linuxApp: "brave",
285
+ winLocalStateRel: "Local State",
286
+ },
287
+ edge: {
288
+ macLabels: ["Microsoft Edge Safe Storage"],
289
+ macAccounts: ["Microsoft Edge"],
290
+ linuxApp: "microsoft-edge",
291
+ winLocalStateRel: "Local State",
292
+ },
293
+ arc: {
294
+ macLabels: ["Arc Safe Storage"],
295
+ macAccounts: ["Arc"],
296
+ // No Linux/Windows Arc build as of 2026-05.
297
+ winLocalStateRel: "Local State",
298
+ },
299
+ dia: {
300
+ macLabels: ["Dia Safe Storage"],
301
+ macAccounts: ["Dia"],
302
+ winLocalStateRel: "Local State",
303
+ },
304
+ atlas: {
305
+ macLabels: [
306
+ "Atlas Safe Storage",
307
+ "ChatGPT Atlas Safe Storage",
308
+ "OpenAI Atlas Safe Storage",
309
+ "ChatGPT Safe Storage",
310
+ ],
311
+ macAccounts: ["Atlas", "ChatGPT", "OpenAI"],
312
+ winLocalStateRel: "Local State",
313
+ },
314
+ };
315
+ //# sourceMappingURL=chromium-cookies-platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromium-cookies-platform.js","sourceRoot":"","sources":["../../src/engine/chromium-cookies-platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared types for the chromium-cookies module. Split out to break a
3
+ * circular import between `chromium-cookies.ts` (orchestration) and
4
+ * `chromium-cookies-platform.ts` (per-platform crypto + keystore).
5
+ */
6
+ export type BrowserId = "chrome" | "brave" | "edge" | "arc" | "dia" | "atlas";
7
+ export interface CookieRow {
8
+ host: string;
9
+ name: string;
10
+ value: string;
11
+ path: string;
12
+ expires: number;
13
+ secure: boolean;
14
+ httpOnly: boolean;
15
+ }
16
+ export interface ReadOptions {
17
+ browser: BrowserId;
18
+ domain: string;
19
+ profile?: string;
20
+ }
21
+ export declare class ChromiumCookieError extends Error {
22
+ readonly code: "browser_not_installed" | "no_profile" | "keychain_denied" | "encryption_unsupported" | "sqlite_failed" | "decrypt_failed" | "platform_unsupported";
23
+ readonly suggestion?: string | undefined;
24
+ constructor(code: "browser_not_installed" | "no_profile" | "keychain_denied" | "encryption_unsupported" | "sqlite_failed" | "decrypt_failed" | "platform_unsupported", message: string, suggestion?: string | undefined);
25
+ }
26
+ //# sourceMappingURL=chromium-cookies-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromium-cookies-types.d.ts","sourceRoot":"","sources":["../../src/engine/chromium-cookies-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,IAAI,EAChB,uBAAuB,GACvB,YAAY,GACZ,iBAAiB,GACjB,wBAAwB,GACxB,eAAe,GACf,gBAAgB,GAChB,sBAAsB;aAEV,UAAU,CAAC,EAAE,MAAM;gBATnB,IAAI,EAChB,uBAAuB,GACvB,YAAY,GACZ,iBAAiB,GACjB,wBAAwB,GACxB,eAAe,GACf,gBAAgB,GAChB,sBAAsB,EAC1B,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA;CAKtC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared types for the chromium-cookies module. Split out to break a
3
+ * circular import between `chromium-cookies.ts` (orchestration) and
4
+ * `chromium-cookies-platform.ts` (per-platform crypto + keystore).
5
+ */
6
+ export class ChromiumCookieError extends Error {
7
+ code;
8
+ suggestion;
9
+ constructor(code, message, suggestion) {
10
+ super(message);
11
+ this.code = code;
12
+ this.suggestion = suggestion;
13
+ this.name = "ChromiumCookieError";
14
+ }
15
+ }
16
+ //# sourceMappingURL=chromium-cookies-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromium-cookies-types.js","sourceRoot":"","sources":["../../src/engine/chromium-cookies-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IASA;IAVlB,YACkB,IAOU,EAC1B,OAAe,EACC,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAXC,SAAI,GAAJ,IAAI,CAOM;QAEV,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Direct Chromium cookie reader (macOS / Linux / Windows).
3
+ *
4
+ * Reads encrypted cookies from a browser's local SQLite DB and decrypts them
5
+ * with the browser's platform-native key store. No CDP, no extension, no
6
+ * browser launch — works whether the browser is open or closed.
7
+ *
8
+ * macOS keychain `security` CLI → AES-128-CBC + 32-byte SHA256 prefix
9
+ * Linux libsecret `secret-tool` (peanuts fallback) → AES-128-CBC, no prefix, PBKDF2 iter=1
10
+ * Windows Local State + DPAPI → AES-256-GCM + 32-byte SHA256 prefix
11
+ * v20 cookies (Chrome 127+ App-Bound) surface as
12
+ * encryption_unsupported with a CDP-fallback suggestion
13
+ *
14
+ * SQLite is read by copy-then-open via the system `sqlite3` binary so that
15
+ * an open browser cannot block the read; WAL/SHM siblings are copied too.
16
+ *
17
+ * Tests at tests/unit/chromium-cookies.test.ts cover the pure path
18
+ * (deriveKey vector, decrypt round-trips per platform, profile picker,
19
+ * resolveCookieDb error codes).
20
+ */
21
+ import { type BrowserId, type CookieRow, type ReadOptions } from "./chromium-cookies-types.js";
22
+ import { type Platform } from "./chromium-cookies-platform.js";
23
+ export { ChromiumCookieError, type BrowserId, type CookieRow, type ReadOptions, } from "./chromium-cookies-types.js";
24
+ export { decryptValue, deriveKey, type Platform, } from "./chromium-cookies-platform.js";
25
+ /**
26
+ * Enumerate available profiles for a browser. Returns the directory names
27
+ * (e.g. "Default", "Profile 1") that contain a Cookies file, sorted by
28
+ * Cookies-file mtime descending (most-recently-active first).
29
+ */
30
+ export declare function listProfiles(browser: BrowserId): string[];
31
+ export declare function resolveCookieDb(browser: BrowserId, profile?: string): {
32
+ dbPath: string;
33
+ profile: string;
34
+ userDataRoot: string;
35
+ platform: Platform;
36
+ };
37
+ /**
38
+ * Read all cookies for a domain from a browser's local DB.
39
+ * Returns full structured rows for callers that want secure/httpOnly metadata.
40
+ */
41
+ export declare function readCookies(opts: ReadOptions): CookieRow[];
42
+ /**
43
+ * Convenience: read cookies for a domain and flatten to a name→value record,
44
+ * matching the shape that engine/cookies.ts already passes to fetch headers.
45
+ * Last-write-wins on duplicate names (later host_key entries override earlier).
46
+ */
47
+ export declare function readCookiesAsRecord(opts: ReadOptions): Record<string, string>;
48
+ /** All known browser ids in priority order for auto-discovery. */
49
+ export declare const BROWSER_IDS: readonly BrowserId[];
50
+ /**
51
+ * Find any installed browser whose profile DB exists. Used by the auto path
52
+ * when the caller doesn't specify --browser. Returns [] if no Chromium
53
+ * browser is installed locally, or if the platform isn't supported.
54
+ */
55
+ export declare function detectInstalledBrowsers(): BrowserId[];
56
+ //# sourceMappingURL=chromium-cookies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromium-cookies.d.ts","sourceRoot":"","sources":["../../src/engine/chromium-cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAcH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,QAAQ,GACd,MAAM,gCAAgC,CAAC;AA6FxC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,CA+BzD;AAkBD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,MAAM,GACf;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAmCA;AAuID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,CAmC1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7E;AAED,kEAAkE;AAClE,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAOlC,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,SAAS,EAAE,CAWrD"}