@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,10 @@
1
+ import type { IPage } from "../../types.js";
2
+ import { type BrowserSessionLease, type BrowserSessionLeaseAuthPosture, type BrowserSessionLeaseTarget } from "./session-lease.js";
3
+ export declare function enrichBrowserSessionLease(lease: BrowserSessionLease, page: IPage, options?: {
4
+ now?: () => Date;
5
+ }): Promise<BrowserSessionLease>;
6
+ export declare function assertBrowserSessionLeaseTargetCurrent(lease: BrowserSessionLease, page: IPage): Promise<void>;
7
+ export declare function captureBrowserSessionTarget(page: IPage, now?: () => Date): Promise<BrowserSessionLeaseTarget | undefined>;
8
+ export declare function captureBrowserSessionAuthPosture(page: IPage, now?: () => Date): Promise<BrowserSessionLeaseAuthPosture>;
9
+ export declare function browserSessionTargetKey(target?: BrowserSessionLeaseTarget | null): string | undefined;
10
+ //# sourceMappingURL=session-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-runtime.d.ts","sourceRoot":"","sources":["../../../src/engine/browser/session-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAe5B,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,KAAK,EACX,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CAAO,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,KAAK,EACX,GAAG,GAAE,MAAM,IAAuB,GACjC,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAqBhD;AAED,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,KAAK,EACX,GAAG,GAAE,MAAM,IAAuB,GACjC,OAAO,CAAC,8BAA8B,CAAC,CAezC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,CAAC,EAAE,yBAAyB,GAAG,IAAI,GACxC,MAAM,GAAG,SAAS,CASpB"}
@@ -0,0 +1,87 @@
1
+ import { BrowserSessionLeaseGuardError, } from "./session-lease.js";
2
+ export async function enrichBrowserSessionLease(lease, page, options = {}) {
3
+ const now = options.now ?? (() => new Date());
4
+ const [target, auth] = await Promise.all([
5
+ captureBrowserSessionTarget(page, now),
6
+ captureBrowserSessionAuthPosture(page, now),
7
+ ]);
8
+ return {
9
+ ...lease,
10
+ ...(target ? { target } : {}),
11
+ auth,
12
+ };
13
+ }
14
+ export async function assertBrowserSessionLeaseTargetCurrent(lease, page) {
15
+ const expected = browserSessionTargetKey(lease.target);
16
+ if (!expected)
17
+ return;
18
+ const current = await captureBrowserSessionTarget(page);
19
+ const actual = browserSessionTargetKey(current);
20
+ if (!actual || actual === expected)
21
+ return;
22
+ throw new BrowserSessionLeaseGuardError("browser_target_mismatch", lease, expected, actual);
23
+ }
24
+ export async function captureBrowserSessionTarget(page, now = () => new Date()) {
25
+ const provided = await captureProvidedBrowserTarget(page, now);
26
+ if (provided)
27
+ return provided;
28
+ try {
29
+ const raw = (await page.sendCDP("Target.getTargetInfo"));
30
+ const info = raw?.targetInfo;
31
+ if (!info)
32
+ return undefined;
33
+ return {
34
+ kind: "cdp-target",
35
+ captured_at: now().toISOString(),
36
+ ...(info.targetId ? { target_id: info.targetId } : {}),
37
+ ...(info.type ? { target_type: info.type } : {}),
38
+ ...(info.url ? { url: info.url } : {}),
39
+ ...(info.title ? { title: info.title } : {}),
40
+ };
41
+ }
42
+ catch {
43
+ return undefined;
44
+ }
45
+ }
46
+ export async function captureBrowserSessionAuthPosture(page, now = () => new Date()) {
47
+ try {
48
+ const cookies = await page.cookies();
49
+ const cookieCount = Object.keys(cookies).length;
50
+ return {
51
+ state: cookieCount > 0 ? "cookies_present" : "no_cookies",
52
+ cookie_count: cookieCount,
53
+ captured_at: now().toISOString(),
54
+ };
55
+ }
56
+ catch {
57
+ return {
58
+ state: "unavailable",
59
+ captured_at: now().toISOString(),
60
+ };
61
+ }
62
+ }
63
+ export function browserSessionTargetKey(target) {
64
+ if (!target)
65
+ return undefined;
66
+ if (typeof target.tab_id === "number") {
67
+ return typeof target.window_id === "number"
68
+ ? `window:${String(target.window_id)}:tab:${String(target.tab_id)}`
69
+ : `tab:${String(target.tab_id)}`;
70
+ }
71
+ if (target.target_id)
72
+ return `target:${target.target_id}`;
73
+ return undefined;
74
+ }
75
+ async function captureProvidedBrowserTarget(page, now) {
76
+ const provider = page;
77
+ if (typeof provider.browserTargetInfo !== "function")
78
+ return undefined;
79
+ const target = await provider.browserTargetInfo().catch(() => null);
80
+ if (!target)
81
+ return undefined;
82
+ return {
83
+ ...target,
84
+ captured_at: target.captured_at ?? now().toISOString(),
85
+ };
86
+ }
87
+ //# sourceMappingURL=session-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-runtime.js","sourceRoot":"","sources":["../../../src/engine/browser/session-runtime.ts"],"names":[],"mappings":"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"}
@@ -12,19 +12,29 @@ export interface CapabilityDimension {
12
12
  reason?: string;
13
13
  }
14
14
  export type CapabilityDimensionMap = Record<CapabilityDimensionName, CapabilityDimension>;
15
+ export interface CapabilityResourceScope {
16
+ domains: string[];
17
+ paths: string[];
18
+ executables: string[];
19
+ apps: string[];
20
+ accounts: string[];
21
+ }
15
22
  export interface CapabilityScope {
16
23
  schema_version: "1";
17
24
  dimensions: CapabilityDimensionMap;
18
25
  summary: string[];
26
+ resources: CapabilityResourceScope;
27
+ resource_summary: string[];
19
28
  }
20
29
  export interface CapabilityApprovalMemory {
21
30
  schema_version: "1";
22
31
  key: string;
23
- persistence: "not_persisted";
32
+ persistence: "not_persisted" | "persisted";
24
33
  profile: PermissionProfile;
25
- decision: "not_approved" | "approved_for_invocation";
34
+ decision: "not_approved" | "approved_for_invocation" | "approved_by_memory";
26
35
  scope: {
27
36
  dimensions: Record<CapabilityDimensionName, CapabilityAccess>;
37
+ resources: CapabilityResourceScope;
28
38
  };
29
39
  }
30
40
  export declare function deriveCapabilityScope(input: OperationPolicyInput, effect: OperationEffect): CapabilityScope;
@@ -34,6 +44,7 @@ export declare function buildCapabilityApprovalMemory(input: {
34
44
  profile: PermissionProfile;
35
45
  effect: OperationEffect;
36
46
  approved: boolean;
47
+ approvalSource?: "none" | "invocation" | "env" | "memory";
37
48
  scope: CapabilityScope;
38
49
  }): CapabilityApprovalMemory;
39
50
  //# sourceMappingURL=capability-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-policy.d.ts","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,uBAAuB,EACvB,mBAAmB,CACpB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,GAAG,CAAC;IACpB,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,eAAe,CAAC;IAC7B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,cAAc,GAAG,yBAAyB,CAAC;IACrD,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;KAC/D,CAAC;CACH;AAsID,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,eAAe,GACtB,eAAe,CAgLjB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;CACxB,GAAG,wBAAwB,CAgB3B"}
1
+ {"version":3,"file":"capability-policy.d.ts","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,uBAAuB,EACvB,mBAAmB,CACpB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,GAAG,CAAC;IACpB,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,uBAAuB,CAAC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,eAAe,GAAG,WAAW,CAAC;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,cAAc,GAAG,yBAAyB,GAAG,oBAAoB,CAAC;IAC5E,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QAC9D,SAAS,EAAE,uBAAuB,CAAC;KACpC,CAAC;CACH;AAmPD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,eAAe,GACtB,eAAe,CAoLjB;AAiBD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1D,KAAK,EAAE,eAAe,CAAC;CACxB,GAAG,wBAAwB,CAyB3B"}
@@ -4,6 +4,7 @@
4
4
  * This is deliberately deterministic and metadata-only: it classifies the
5
5
  * command contract, not user-provided runtime values.
6
6
  */
7
+ import { createHash } from "node:crypto";
7
8
  import { AdapterType } from "../types.js";
8
9
  const DIMENSION_ORDER = [
9
10
  "network",
@@ -20,6 +21,19 @@ const WEB_STRATEGIES = new Set([
20
21
  "intercept",
21
22
  "ui",
22
23
  ]);
24
+ const PATH_ARG_NAMES = new Set([
25
+ "dir",
26
+ "directory",
27
+ "file",
28
+ "filename",
29
+ "folder",
30
+ "input",
31
+ "out",
32
+ "output",
33
+ "path",
34
+ "source",
35
+ "destination",
36
+ ]);
23
37
  function emptyDimensions() {
24
38
  return {
25
39
  network: { access: "none" },
@@ -30,6 +44,15 @@ function emptyDimensions() {
30
44
  account: { access: "none" },
31
45
  };
32
46
  }
47
+ function emptyResources() {
48
+ return {
49
+ domains: [],
50
+ paths: [],
51
+ executables: [],
52
+ apps: [],
53
+ accounts: [],
54
+ };
55
+ }
33
56
  function accessRank(access) {
34
57
  switch (access) {
35
58
  case "write":
@@ -46,6 +69,62 @@ function promoteAccess(dimensions, name, access, reason) {
46
69
  dimensions[name] = { access, reason };
47
70
  }
48
71
  }
72
+ function normalizedUnique(values) {
73
+ return Array.from(new Set(values
74
+ .map((value) => value.trim().toLowerCase())
75
+ .filter((value) => value.length > 0))).sort();
76
+ }
77
+ function normalizeDomain(value) {
78
+ if (!value)
79
+ return undefined;
80
+ const raw = value.trim();
81
+ if (raw.length === 0)
82
+ return undefined;
83
+ try {
84
+ const url = new URL(raw.includes("://") ? raw : `https://${raw}`);
85
+ return url.host.toLowerCase();
86
+ }
87
+ catch {
88
+ return raw
89
+ .replace(/^https?:\/\//i, "")
90
+ .split("/")[0]
91
+ ?.trim()
92
+ .toLowerCase();
93
+ }
94
+ }
95
+ function pathArgSlots(input) {
96
+ return normalizedUnique((input.args ?? []).flatMap((arg) => {
97
+ const name = arg.name.trim().toLowerCase();
98
+ return PATH_ARG_NAMES.has(name) ? [`arg:${name}`] : [];
99
+ }));
100
+ }
101
+ function deriveResourceScope(input, dimensions) {
102
+ const resources = emptyResources();
103
+ if (dimensions.network.access !== "none" ||
104
+ dimensions.browser.access !== "none") {
105
+ const domain = normalizeDomain(input.domain ?? input.base);
106
+ resources.domains = domain ? [domain] : [];
107
+ }
108
+ if (dimensions.account.access !== "none") {
109
+ resources.accounts = [input.site];
110
+ }
111
+ if (dimensions.desktop.access !== "none") {
112
+ resources.apps = [input.site];
113
+ }
114
+ if (dimensions.process.access !== "none") {
115
+ resources.executables = [input.site];
116
+ }
117
+ if (dimensions.file.access !== "none") {
118
+ resources.paths = pathArgSlots(input);
119
+ }
120
+ return {
121
+ domains: normalizedUnique(resources.domains),
122
+ paths: normalizedUnique(resources.paths),
123
+ executables: normalizedUnique(resources.executables),
124
+ apps: normalizedUnique(resources.apps),
125
+ accounts: normalizedUnique(resources.accounts),
126
+ };
127
+ }
49
128
  function effectAccess(effect) {
50
129
  return effect === "read" ? "read" : "write";
51
130
  }
@@ -97,6 +176,15 @@ function summaryFor(dimensions) {
97
176
  return access === "none" ? [] : [`${name}:${access}`];
98
177
  });
99
178
  }
179
+ function resourceSummaryFor(resources) {
180
+ return [
181
+ ...resources.domains.map((value) => `domain:${value}`),
182
+ ...resources.accounts.map((value) => `account:${value}`),
183
+ ...resources.apps.map((value) => `app:${value}`),
184
+ ...resources.executables.map((value) => `process:${value}`),
185
+ ...resources.paths.map((value) => `path:${value}`),
186
+ ];
187
+ }
100
188
  function accessMapFor(dimensions) {
101
189
  return {
102
190
  network: dimensions.network.access,
@@ -172,23 +260,45 @@ export function deriveCapabilityScope(input, effect) {
172
260
  ? "reads through an external CLI"
173
261
  : "may write through an external CLI");
174
262
  }
263
+ const resources = deriveResourceScope(input, dimensions);
175
264
  return {
176
265
  schema_version: "1",
177
266
  dimensions,
178
267
  summary: summaryFor(dimensions),
268
+ resources,
269
+ resource_summary: resourceSummaryFor(resources),
179
270
  };
180
271
  }
272
+ function resourceFingerprintFor(resources) {
273
+ return createHash("sha256")
274
+ .update(JSON.stringify({
275
+ accounts: normalizedUnique(resources.accounts),
276
+ apps: normalizedUnique(resources.apps),
277
+ domains: normalizedUnique(resources.domains),
278
+ executables: normalizedUnique(resources.executables),
279
+ paths: normalizedUnique(resources.paths),
280
+ }))
281
+ .digest("hex")
282
+ .slice(0, 16);
283
+ }
181
284
  export function buildCapabilityApprovalMemory(input) {
182
285
  const dimensionAccess = accessMapFor(input.scope.dimensions);
183
286
  const dimensionKey = DIMENSION_ORDER.map((name) => `${name}:${dimensionAccess[name]}`).join(",");
287
+ const resourceKey = resourceFingerprintFor(input.scope.resources);
288
+ const approvalSource = input.approvalSource ?? (input.approved ? "invocation" : "none");
184
289
  return {
185
290
  schema_version: "1",
186
- key: `cap:1:${input.site}.${input.command}:${input.profile}:${input.effect}:${dimensionKey}`,
187
- persistence: "not_persisted",
291
+ key: `cap:1:${input.site}.${input.command}:${input.profile}:${input.effect}:${dimensionKey}:res:${resourceKey}`,
292
+ persistence: approvalSource === "memory" ? "persisted" : "not_persisted",
188
293
  profile: input.profile,
189
- decision: input.approved ? "approved_for_invocation" : "not_approved",
294
+ decision: approvalSource === "memory"
295
+ ? "approved_by_memory"
296
+ : input.approved
297
+ ? "approved_for_invocation"
298
+ : "not_approved",
190
299
  scope: {
191
300
  dimensions: dimensionAccess,
301
+ resources: input.scope.resources,
192
302
  },
193
303
  };
194
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"capability-policy.js","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-policy.js","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
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 { type BrowserId } from "./chromium-cookies-types.js";
29
+ export type Platform = "darwin" | "linux" | "win32";
30
+ export declare function currentPlatform(): Platform;
31
+ interface KeystoreSpec {
32
+ /** macOS: Keychain service labels to probe in order. */
33
+ macLabels?: readonly string[];
34
+ /** macOS: Keychain account candidates per label. */
35
+ macAccounts?: readonly string[];
36
+ /** Linux: secret-tool `application` attribute. */
37
+ linuxApp?: string;
38
+ /** Linux: secret-tool xdg:schema attribute. */
39
+ linuxSchema?: string;
40
+ /**
41
+ * Windows: Local State path relative to the user-data root. Each browser
42
+ * stores its master key here; we read it once and feed DPAPI.
43
+ */
44
+ winLocalStateRel?: string;
45
+ }
46
+ export declare function _resetSecretCache(): void;
47
+ export declare function getEncryptionSecret(browser: BrowserId, platform: Platform, spec: KeystoreSpec, userDataRoot: string): Buffer | string;
48
+ /**
49
+ * Derive the AES key from the platform secret. macOS uses 1003 PBKDF2
50
+ * iterations; Linux uses **1** iteration (Chromium's
51
+ * `kEncryptionIterations = 1` for `freedesktop_secret_key_provider.cc`).
52
+ * Windows passes through — DPAPI already returned a 32-byte master.
53
+ */
54
+ export declare function deriveKey(secret: Buffer | string, platform: Platform): Buffer;
55
+ /**
56
+ * Decrypt a single Chromium-encrypted cookie value.
57
+ *
58
+ * • Empty buffer → empty string
59
+ * • No `vNN` prefix → raw bytes (legacy unencrypted)
60
+ * • `v10`/`v11` macOS → AES-128-CBC, strip 32-byte SHA256 prefix when present
61
+ * • `v10`/`v11` Linux → AES-128-CBC, NO integrity prefix
62
+ * • `v10` Win → AES-256-GCM with 12-byte nonce + 16-byte tag,
63
+ * strip 32-byte SHA256 prefix
64
+ * • `v20` Win → encryption_unsupported (App-Bound Encryption)
65
+ */
66
+ export declare function decryptValue(encrypted: Buffer, key: Buffer, platform: Platform): string;
67
+ export declare const KEYSTORE_SPECS: Record<BrowserId, KeystoreSpec>;
68
+ export {};
69
+ //# sourceMappingURL=chromium-cookies-platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromium-cookies-platform.d.ts","sourceRoot":"","sources":["../../src/engine/chromium-cookies-platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD,wBAAgB,eAAe,IAAI,QAAQ,CAQ1C;AAMD,UAAU,YAAY;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,oDAAoD;IACpD,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAcD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,MAAM,CAkBjB;AAgJD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAsB7E;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAmCR;AAkDD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAwC1D,CAAC"}