@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,280 @@
1
+ /**
2
+ * Fast-path discovery handlers — list / search / describe / repair.
3
+ *
4
+ * These respond to the agent surface from the manifest alone, with no
5
+ * Commander tree or adapter loader involvement. Each returns true if the
6
+ * fast path took ownership of the call, false to fall through.
7
+ */
8
+ import { search } from "../../discovery/search.js";
9
+ import { buildMacosDynamicCommands, discoverMacosDynamicData, dynamicMacosDiscoveryEnabled, } from "../../discovery/macos-dynamic.js";
10
+ import { buildDefaultConfig } from "../../engine/repair/config.js";
11
+ import { resolveOperationAdapterPath, resolveOperationTargetSurface, } from "../../engine/operation-policy.js";
12
+ import { readManifest } from "../manifest.js";
13
+ import { evaluateManifestOperationPolicy } from "../policy.js";
14
+ import { argsToJsonSchema, buildChannels, buildExample, emit, summarizeArgs, } from "../render.js";
15
+ export function handleList(parsed, io) {
16
+ const startedAt = Date.now();
17
+ let siteFilter;
18
+ let typeFilter;
19
+ for (let i = 0; i < parsed.rest.length; i += 1) {
20
+ const arg = parsed.rest[i];
21
+ if (arg === "--site") {
22
+ siteFilter = parsed.rest[i + 1];
23
+ i += 1;
24
+ continue;
25
+ }
26
+ if (arg.startsWith("--site=")) {
27
+ siteFilter = arg.slice("--site=".length);
28
+ continue;
29
+ }
30
+ if (arg === "--type") {
31
+ typeFilter = parsed.rest[i + 1];
32
+ i += 1;
33
+ continue;
34
+ }
35
+ if (arg.startsWith("--type=")) {
36
+ typeFilter = arg.slice("--type=".length);
37
+ continue;
38
+ }
39
+ return false;
40
+ }
41
+ const manifest = readManifest();
42
+ const rows = Object.entries(manifest.sites)
43
+ .flatMap(([site, info]) => info.commands.map((command) => {
44
+ const strategy = command.strategy ?? "public";
45
+ const tags = [];
46
+ if (strategy !== "public")
47
+ tags.push("[auth]");
48
+ if (command.quarantined === true)
49
+ tags.push("[quarantined]");
50
+ return {
51
+ site,
52
+ command: command.name,
53
+ description: command.description ?? "",
54
+ type: command.type ?? "web-api",
55
+ auth: tags.join(" "),
56
+ };
57
+ }))
58
+ .concat(dynamicListRows())
59
+ .filter((row) => !siteFilter || row.site.includes(siteFilter))
60
+ .filter((row) => !typeFilter || row.type === typeFilter)
61
+ .sort((a, b) => a.site.localeCompare(b.site) || a.command.localeCompare(b.command));
62
+ emit(io, rows, ["site", "command", "description", "type", "auth"], parsed.format, "core.list", startedAt);
63
+ return true;
64
+ }
65
+ function dynamicListRows() {
66
+ if (!dynamicMacosDiscoveryEnabled())
67
+ return [];
68
+ return Object.values(buildMacosDynamicCommands(discoverMacosDynamicData())).map((command) => ({
69
+ site: "macos",
70
+ command: command.name,
71
+ description: command.description ?? "",
72
+ type: "desktop",
73
+ auth: "",
74
+ }));
75
+ }
76
+ export function handleSearch(parsed, io) {
77
+ const startedAt = Date.now();
78
+ let limit = 8;
79
+ let category;
80
+ const queryParts = [];
81
+ for (let i = 0; i < parsed.rest.length; i += 1) {
82
+ const arg = parsed.rest[i];
83
+ if (arg === "-n" || arg === "--limit") {
84
+ limit = parseInt(parsed.rest[i + 1] ?? "", 10) || 8;
85
+ i += 1;
86
+ continue;
87
+ }
88
+ if (arg.startsWith("--limit=")) {
89
+ limit = parseInt(arg.slice("--limit=".length), 10) || 8;
90
+ continue;
91
+ }
92
+ if (arg === "--category") {
93
+ category = parsed.rest[i + 1];
94
+ i += 1;
95
+ continue;
96
+ }
97
+ if (arg.startsWith("--category=")) {
98
+ category = arg.slice("--category=".length);
99
+ continue;
100
+ }
101
+ queryParts.push(arg);
102
+ }
103
+ const query = queryParts.join(" ");
104
+ if (!query && !category) {
105
+ io.stderr("Usage: unicli search <query> or unicli search --category <cat>");
106
+ process.exitCode = 2;
107
+ return true;
108
+ }
109
+ const effectiveQuery = category ? `${category} ${query}`.trim() : query;
110
+ const results = search(effectiveQuery, limit);
111
+ if (results.length === 0) {
112
+ io.stderr(`No commands found for: ${effectiveQuery}`);
113
+ process.exitCode = 66;
114
+ return true;
115
+ }
116
+ const rows = results.map((result) => ({
117
+ command: `${result.site} ${result.command}`,
118
+ description: result.description || `${result.command} for ${result.site}`,
119
+ score: result.score,
120
+ category: result.category,
121
+ usage: result.usage,
122
+ }));
123
+ emit(io, rows, ["command", "description", "score", "usage"], parsed.format, "core.search", startedAt);
124
+ return true;
125
+ }
126
+ export function handleDescribe(parsed, io) {
127
+ const startedAt = Date.now();
128
+ const manifest = readManifest();
129
+ const [site, cmdName] = parsed.rest;
130
+ if (!site) {
131
+ const sites = Object.entries(manifest.sites).map(([name, info]) => ({
132
+ name,
133
+ display_name: name,
134
+ type: info.commands[0]?.type ?? "web-api",
135
+ strategy: info.commands[0]?.strategy ?? "public",
136
+ commands_count: info.commands.length,
137
+ description: "",
138
+ }));
139
+ io.stdout(JSON.stringify({ sites, total: sites.length }, null, 2));
140
+ return true;
141
+ }
142
+ const info = manifest.sites[site];
143
+ if (!info) {
144
+ io.stdout(JSON.stringify({ error: `unknown site: ${site}` }, null, 2));
145
+ process.exitCode = 64;
146
+ return true;
147
+ }
148
+ if (!cmdName) {
149
+ const commands = info.commands.map((command) => ({
150
+ name: command.name,
151
+ description: command.description ?? "",
152
+ quarantined: command.quarantined === true,
153
+ strategy: command.strategy ?? "public",
154
+ auth: (command.strategy ?? "public") !== "public",
155
+ browser: command.browser === true,
156
+ args: summarizeArgs(command.args),
157
+ }));
158
+ io.stdout(JSON.stringify({
159
+ site,
160
+ display_name: site,
161
+ type: info.commands[0]?.type ?? "web-api",
162
+ strategy: info.commands[0]?.strategy ?? "public",
163
+ commands,
164
+ }, null, 2));
165
+ return true;
166
+ }
167
+ const command = info.commands.find((candidate) => candidate.name === cmdName);
168
+ if (!command) {
169
+ io.stdout(JSON.stringify({ error: `unknown command: ${site} ${cmdName}` }, null, 2));
170
+ process.exitCode = 64;
171
+ return true;
172
+ }
173
+ const adapterType = command.type ?? info.commands[0]?.type ?? "web-api";
174
+ const targetSurface = resolveOperationTargetSurface({
175
+ adapterType,
176
+ targetSurface: command.target_surface,
177
+ });
178
+ const adapterPath = resolveOperationAdapterPath(site, cmdName, command.adapter_path);
179
+ const operationPolicy = evaluateManifestOperationPolicy({
180
+ parsed,
181
+ io,
182
+ site,
183
+ commandName: cmdName,
184
+ command,
185
+ adapterType,
186
+ targetSurface,
187
+ adapterPath,
188
+ startedAt,
189
+ });
190
+ if (!operationPolicy)
191
+ return true;
192
+ io.stdout(JSON.stringify({
193
+ command: `unicli ${site} ${cmdName}`,
194
+ description: command.description ?? "",
195
+ quarantined: command.quarantined === true,
196
+ strategy: command.strategy ?? "public",
197
+ auth: (command.strategy ?? "public") !== "public",
198
+ browser: command.browser === true,
199
+ target_surface: targetSurface,
200
+ adapter_path: adapterPath,
201
+ operation_policy: operationPolicy,
202
+ args_schema: argsToJsonSchema(command.args ?? []),
203
+ example_stdin: buildExample(command.args ?? []),
204
+ channels: buildChannels(site, cmdName, command.args ?? []),
205
+ next_actions: [
206
+ {
207
+ command: `unicli ${site} ${cmdName} --dry-run`,
208
+ description: "Preview the resolved argument bag and pipeline plan",
209
+ },
210
+ {
211
+ command: `unicli ${site} ${cmdName}`,
212
+ description: "Run the command (shell channel)",
213
+ params: {
214
+ note: {
215
+ description: "For payloads with quotes/emoji/JSON, pipe stdin-JSON instead.",
216
+ },
217
+ },
218
+ },
219
+ {
220
+ command: `unicli repair ${site} ${cmdName}`,
221
+ description: "If the command fails due to upstream drift",
222
+ },
223
+ ],
224
+ }, null, 2));
225
+ return true;
226
+ }
227
+ export function handleRepair(parsed, io) {
228
+ const startedAt = Date.now();
229
+ let dryRun = parsed.dryRun;
230
+ let max = 20;
231
+ let timeout = 90;
232
+ const positionals = [];
233
+ for (let i = 0; i < parsed.rest.length; i += 1) {
234
+ const arg = parsed.rest[i];
235
+ if (arg === "--dry-run") {
236
+ dryRun = true;
237
+ continue;
238
+ }
239
+ if (arg === "--max") {
240
+ max = parseInt(parsed.rest[i + 1] ?? "", 10) || 20;
241
+ i += 1;
242
+ continue;
243
+ }
244
+ if (arg.startsWith("--max=")) {
245
+ max = parseInt(arg.slice("--max=".length), 10) || 20;
246
+ continue;
247
+ }
248
+ if (arg === "--timeout") {
249
+ timeout = parseInt(parsed.rest[i + 1] ?? "", 10) || 90;
250
+ i += 1;
251
+ continue;
252
+ }
253
+ if (arg.startsWith("--timeout=")) {
254
+ timeout = parseInt(arg.slice("--timeout=".length), 10) || 90;
255
+ continue;
256
+ }
257
+ if (arg.startsWith("-"))
258
+ return false;
259
+ positionals.push(arg);
260
+ }
261
+ if (!dryRun)
262
+ return false;
263
+ const [site, command] = positionals;
264
+ if (!site)
265
+ return false;
266
+ const config = buildDefaultConfig(site, command);
267
+ config.maxIterations = max;
268
+ config.timeout = timeout * 1000;
269
+ emit(io, {
270
+ mode: "dry-run",
271
+ site,
272
+ command: command ?? null,
273
+ config: {
274
+ ...config,
275
+ metricPattern: config.metricPattern.source,
276
+ },
277
+ }, undefined, parsed.format, "repair.run", startedAt);
278
+ return true;
279
+ }
280
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/fast-path/handlers/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Generated manifest reader — the discovery-only fast path consumes
3
+ * `dist/manifest.json` instead of loading every adapter through Commander.
4
+ *
5
+ * Keep this module side-effect free: the entry decides whether absence of
6
+ * the manifest is fatal or simply means "no fast path; fall through to the
7
+ * full Commander tree".
8
+ */
9
+ import type { TargetSurface } from "../types.js";
10
+ export type ManifestArg = {
11
+ name: string;
12
+ type?: "str" | "int" | "float" | "bool";
13
+ default?: unknown;
14
+ required?: boolean;
15
+ positional?: boolean;
16
+ choices?: string[];
17
+ description?: string;
18
+ format?: string;
19
+ "x-unicli-kind"?: string;
20
+ "x-unicli-accepts"?: string[];
21
+ };
22
+ export type ManifestCommand = {
23
+ name: string;
24
+ description?: string;
25
+ strategy?: string;
26
+ type?: string;
27
+ domain?: string;
28
+ base?: string;
29
+ browser?: boolean;
30
+ quarantined?: boolean;
31
+ args?: ManifestArg[];
32
+ columns?: string[];
33
+ pipeline_steps?: number;
34
+ adapter_path?: string;
35
+ target_surface?: TargetSurface;
36
+ };
37
+ export type Manifest = {
38
+ version: string;
39
+ sites: Record<string, {
40
+ category?: string;
41
+ commands: ManifestCommand[];
42
+ }>;
43
+ };
44
+ export declare function manifestPath(): string;
45
+ export declare function readManifest(): Manifest;
46
+ export declare function isMissingManifestError(error: unknown): boolean;
47
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/fast-path/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,eAAe,EAAE,CAAC;KAC7B,CACF,CAAC;CACH,CAAC;AAEF,wBAAgB,YAAY,IAAI,MAAM,CAYrC;AAED,wBAAgB,YAAY,IAAI,QAAQ,CAEvC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9D"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Generated manifest reader — the discovery-only fast path consumes
3
+ * `dist/manifest.json` instead of loading every adapter through Commander.
4
+ *
5
+ * Keep this module side-effect free: the entry decides whether absence of
6
+ * the manifest is fatal or simply means "no fast path; fall through to the
7
+ * full Commander tree".
8
+ */
9
+ import { existsSync, readFileSync } from "node:fs";
10
+ import { dirname, join } from "node:path";
11
+ import { fileURLToPath } from "node:url";
12
+ export function manifestPath() {
13
+ const here = dirname(fileURLToPath(import.meta.url));
14
+ const candidates = [
15
+ join(here, "manifest.json"),
16
+ join(here, "..", "dist", "manifest.json"),
17
+ join(here, "..", "..", "dist", "manifest.json"),
18
+ ];
19
+ const found = candidates.find((candidate) => existsSync(candidate));
20
+ if (!found) {
21
+ throw new Error("Missing dist/manifest.json. Run: npm run build:manifest");
22
+ }
23
+ return found;
24
+ }
25
+ export function readManifest() {
26
+ return JSON.parse(readFileSync(manifestPath(), "utf8"));
27
+ }
28
+ export function isMissingManifestError(error) {
29
+ return (error instanceof Error &&
30
+ error.message.includes("Missing dist/manifest.json"));
31
+ }
32
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/fast-path/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2CzC,MAAM,UAAU,YAAY;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC;KAChD,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,CAAa,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,CACL,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The parsed-argv shape consumed by every fast-path handler. Lives in its
3
+ * own file so handlers do not have to take a circular import on the entry.
4
+ */
5
+ import type { OutputFormat } from "../types.js";
6
+ export type ParsedArgv = {
7
+ command?: string;
8
+ rest: string[];
9
+ format?: OutputFormat;
10
+ dryRun: boolean;
11
+ permissionProfile?: string;
12
+ yes: boolean;
13
+ rememberApproval: boolean;
14
+ record: boolean;
15
+ };
16
+ //# sourceMappingURL=parsed-argv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsed-argv.d.ts","sourceRoot":"","sources":["../../src/fast-path/parsed-argv.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The parsed-argv shape consumed by every fast-path handler. Lives in its
3
+ * own file so handlers do not have to take a circular import on the entry.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=parsed-argv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsed-argv.js","sourceRoot":"","sources":["../../src/fast-path/parsed-argv.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Operation-policy gate evaluation for the fast path.
3
+ *
4
+ * Wraps `engine/operation-policy.ts` with the manifest-driven inputs needed
5
+ * by `describe`, `--dry-run`, and pre-execution policy gates. On configuration
6
+ * errors, prints a structured envelope and exits with USAGE_ERROR.
7
+ */
8
+ import { type OperationPolicy } from "../engine/operation-policy.js";
9
+ import { type TargetSurface } from "../types.js";
10
+ import type { ManifestCommand } from "./manifest.js";
11
+ import type { ParsedArgv } from "./parsed-argv.js";
12
+ import { type Io } from "./render.js";
13
+ export declare function hasStoredApproval(key: string): boolean;
14
+ export declare function evaluateManifestOperationPolicy(input: {
15
+ parsed: ParsedArgv;
16
+ io: Io;
17
+ site: string;
18
+ commandName: string;
19
+ command: ManifestCommand;
20
+ adapterType: string;
21
+ targetSurface: TargetSurface;
22
+ adapterPath: string;
23
+ startedAt: number;
24
+ }): OperationPolicy | null;
25
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/fast-path/policy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,aAAa,CAAC;AAEzD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAsBtD;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,eAAe,GAAG,IAAI,CAmEzB"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Operation-policy gate evaluation for the fast path.
3
+ *
4
+ * Wraps `engine/operation-policy.ts` with the manifest-driven inputs needed
5
+ * by `describe`, `--dry-run`, and pre-execution policy gates. On configuration
6
+ * errors, prints a structured envelope and exits with USAGE_ERROR.
7
+ */
8
+ import { existsSync, readFileSync } from "node:fs";
9
+ import { createApprovalStore, isStoredApproval, } from "../engine/approval-store.js";
10
+ import { evaluateOperationPolicy, InvalidPermissionProfileError, } from "../engine/operation-policy.js";
11
+ import { applyDenyRuleToPolicy, findDenyRuleForPolicySync, PermissionRulesConfigError, } from "../engine/permission-rules.js";
12
+ import { defaultErrorNextActions } from "../output/next-actions.js";
13
+ import { format, detectFormat } from "../output/formatter.js";
14
+ import { ExitCode } from "../types.js";
15
+ import { emitStderrAndExit } from "./render.js";
16
+ export function hasStoredApproval(key) {
17
+ const store = createApprovalStore();
18
+ if (!existsSync(store.path))
19
+ return false;
20
+ try {
21
+ const raw = readFileSync(store.path, "utf-8");
22
+ const lines = raw.split(/\r?\n/);
23
+ for (let i = lines.length - 1; i >= 0; i -= 1) {
24
+ const line = lines[i];
25
+ if (line.trim().length === 0)
26
+ continue;
27
+ try {
28
+ const entry = JSON.parse(line);
29
+ if (isStoredApproval(entry) && entry.key === key) {
30
+ return entry.decision === "allow";
31
+ }
32
+ }
33
+ catch {
34
+ continue;
35
+ }
36
+ }
37
+ return false;
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ export function evaluateManifestOperationPolicy(input) {
44
+ try {
45
+ const policyInput = {
46
+ site: input.site,
47
+ command: input.commandName,
48
+ description: input.command.description,
49
+ adapterType: input.adapterType,
50
+ targetSurface: input.targetSurface,
51
+ strategy: input.command.strategy,
52
+ domain: input.command.domain,
53
+ base: input.command.base,
54
+ browser: input.command.browser === true,
55
+ args: input.command.args,
56
+ profile: input.parsed.permissionProfile,
57
+ approved: input.parsed.yes,
58
+ };
59
+ const policy = evaluateOperationPolicy(policyInput);
60
+ const denyRule = findDenyRuleForPolicySync(policy);
61
+ if (denyRule)
62
+ return applyDenyRuleToPolicy(policy, denyRule);
63
+ if (policy.enforcement === "needs_approval" &&
64
+ hasStoredApproval(policy.approval_memory.key)) {
65
+ return evaluateOperationPolicy({
66
+ ...policyInput,
67
+ approvalSource: "memory",
68
+ });
69
+ }
70
+ return policy;
71
+ }
72
+ catch (error) {
73
+ if (!(error instanceof InvalidPermissionProfileError ||
74
+ error instanceof PermissionRulesConfigError)) {
75
+ throw error;
76
+ }
77
+ emitStderrAndExit(input.io, format([], input.command.columns, detectFormat(input.parsed.format), {
78
+ command: `${input.site}.${input.commandName}`,
79
+ duration_ms: Date.now() - input.startedAt,
80
+ surface: input.targetSurface,
81
+ error: {
82
+ code: "invalid_input",
83
+ message: error.message,
84
+ adapter_path: input.adapterPath,
85
+ step: 0,
86
+ suggestion: error instanceof PermissionRulesConfigError
87
+ ? error.suggestion
88
+ : "use one of: open, confirm, locked",
89
+ retryable: false,
90
+ },
91
+ next_actions: defaultErrorNextActions(input.site, input.commandName, "invalid_input"),
92
+ }), ExitCode.USAGE_ERROR);
93
+ return null;
94
+ }
95
+ }
96
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/fast-path/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Argv tokenisation, schema generation, and envelope rendering helpers
3
+ * shared by every fast-path handler.
4
+ *
5
+ * Pure utilities only — no manifest or policy IO. Handlers compose these
6
+ * with `manifest.ts` and `policy.ts`.
7
+ */
8
+ import { type OutputFormat } from "../types.js";
9
+ import type { ManifestArg } from "./manifest.js";
10
+ export type Io = {
11
+ stdout: (text: string) => void;
12
+ stderr: (text: string) => void;
13
+ };
14
+ export declare const DEFAULT_IO: Io;
15
+ export declare function emitStderrAndExit(io: Io, text: string, code: number): void;
16
+ export declare function isOutputFormat(value: string): value is OutputFormat;
17
+ export declare function isHelpToken(value: string): boolean;
18
+ export declare function jsonSchemaType(type: ManifestArg["type"]): string;
19
+ export declare function argsToJsonSchema(args: ManifestArg[]): Record<string, unknown>;
20
+ export declare function buildExample(args: ManifestArg[]): Record<string, unknown>;
21
+ export declare function buildChannels(site: string, command: string, args: ManifestArg[]): Record<string, string>;
22
+ export declare function summarizeArgs(args?: ManifestArg[]): Array<Record<string, unknown>>;
23
+ export declare function coerceArgValue(value: unknown, type: ManifestArg["type"]): unknown;
24
+ export declare function resolveDryRunArgs(schema: ManifestArg[] | undefined, tokens: string[]): Record<string, unknown> | null;
25
+ export declare function emit(io: Io, data: unknown[] | Record<string, unknown>, columns: string[] | undefined, fmt: OutputFormat | undefined, command: string, startedAt: number): void;
26
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/fast-path/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,EAAE,GAAG;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAGxB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CASnE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAWhE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2B7E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EAAE,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAED,wBAAgB,aAAa,CAC3B,IAAI,GAAE,WAAW,EAAO,GACvB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOhC;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GACxB,OAAO,CAeT;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EAAE,YAAK,EAC1B,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgDhC;AAED,wBAAgB,IAAI,CAClB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,GAAG,EAAE,YAAY,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,IAAI,CAQN"}