@zenalexa/unicli 0.221.1 → 0.222.1

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 (177) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +128 -23
  3. package/README.zh-CN.md +115 -35
  4. package/crates/unicli-atspi/src/errors.rs +2 -2
  5. package/crates/unicli-uia/src/errors.rs +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +3 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/compute.d.ts.map +1 -1
  10. package/dist/commands/compute.js +1 -1
  11. package/dist/commands/compute.js.map +1 -1
  12. package/dist/commands/delivery.d.ts +17 -0
  13. package/dist/commands/delivery.d.ts.map +1 -0
  14. package/dist/commands/delivery.js +577 -0
  15. package/dist/commands/delivery.js.map +1 -0
  16. package/dist/commands/do.d.ts.map +1 -1
  17. package/dist/commands/do.js +3 -4
  18. package/dist/commands/do.js.map +1 -1
  19. package/dist/commands/doctor-compute.js +11 -7
  20. package/dist/commands/doctor-compute.js.map +1 -1
  21. package/dist/commands/extract.d.ts.map +1 -1
  22. package/dist/commands/extract.js +6 -2
  23. package/dist/commands/extract.js.map +1 -1
  24. package/dist/commands/lint.js +3 -3
  25. package/dist/commands/lint.js.map +1 -1
  26. package/dist/commands/migrate-schema.d.ts.map +1 -1
  27. package/dist/commands/migrate-schema.js +26 -22
  28. package/dist/commands/migrate-schema.js.map +1 -1
  29. package/dist/commands/runs.d.ts.map +1 -1
  30. package/dist/commands/runs.js +9 -5
  31. package/dist/commands/runs.js.map +1 -1
  32. package/dist/discovery/aliases.d.ts.map +1 -1
  33. package/dist/discovery/aliases.js +1 -0
  34. package/dist/discovery/aliases.js.map +1 -1
  35. package/dist/discovery/loader.d.ts.map +1 -1
  36. package/dist/discovery/loader.js +47 -2
  37. package/dist/discovery/loader.js.map +1 -1
  38. package/dist/discovery/search.d.ts.map +1 -1
  39. package/dist/discovery/search.js +20 -0
  40. package/dist/discovery/search.js.map +1 -1
  41. package/dist/electron-apps.d.ts +1 -1
  42. package/dist/electron-apps.d.ts.map +1 -1
  43. package/dist/electron-apps.js +2 -2
  44. package/dist/electron-apps.js.map +1 -1
  45. package/dist/engine/delivery/index.d.ts +20 -0
  46. package/dist/engine/delivery/index.d.ts.map +1 -0
  47. package/dist/engine/delivery/index.js +20 -0
  48. package/dist/engine/delivery/index.js.map +1 -0
  49. package/dist/engine/delivery/planner.d.ts +19 -0
  50. package/dist/engine/delivery/planner.d.ts.map +1 -0
  51. package/dist/engine/delivery/planner.js +322 -0
  52. package/dist/engine/delivery/planner.js.map +1 -0
  53. package/dist/engine/delivery/repair.d.ts +17 -0
  54. package/dist/engine/delivery/repair.d.ts.map +1 -0
  55. package/dist/engine/delivery/repair.js +86 -0
  56. package/dist/engine/delivery/repair.js.map +1 -0
  57. package/dist/engine/delivery/session.d.ts +17 -0
  58. package/dist/engine/delivery/session.d.ts.map +1 -0
  59. package/dist/engine/delivery/session.js +78 -0
  60. package/dist/engine/delivery/session.js.map +1 -0
  61. package/dist/engine/delivery/trajectory.d.ts +17 -0
  62. package/dist/engine/delivery/trajectory.d.ts.map +1 -0
  63. package/dist/engine/delivery/trajectory.js +166 -0
  64. package/dist/engine/delivery/trajectory.js.map +1 -0
  65. package/dist/engine/delivery/types.d.ts +157 -0
  66. package/dist/engine/delivery/types.d.ts.map +1 -0
  67. package/dist/engine/delivery/types.js +16 -0
  68. package/dist/engine/delivery/types.js.map +1 -0
  69. package/dist/engine/executor.d.ts +1 -1
  70. package/dist/engine/executor.js +7 -7
  71. package/dist/engine/executor.js.map +1 -1
  72. package/dist/engine/repair/remedies.js +3 -3
  73. package/dist/engine/repair/remedies.js.map +1 -1
  74. package/dist/engine/steps/desktop-ax.d.ts +4 -0
  75. package/dist/engine/steps/desktop-ax.d.ts.map +1 -1
  76. package/dist/engine/steps/desktop-ax.js +8 -0
  77. package/dist/engine/steps/desktop-ax.js.map +1 -1
  78. package/dist/engine/steps/desktop-sidecar.d.ts +1 -1
  79. package/dist/engine/steps/desktop-sidecar.js +1 -1
  80. package/dist/engine/steps/index.d.ts +1 -1
  81. package/dist/engine/steps/index.d.ts.map +1 -1
  82. package/dist/engine/steps/index.js +1 -1
  83. package/dist/engine/steps/index.js.map +1 -1
  84. package/dist/engine/steps/visual.d.ts +47 -0
  85. package/dist/engine/steps/visual.d.ts.map +1 -0
  86. package/dist/engine/steps/visual.js +66 -0
  87. package/dist/engine/steps/visual.js.map +1 -0
  88. package/dist/engine/transport/mcp-browser.d.ts +1 -1
  89. package/dist/engine/transport/mcp-browser.js +1 -1
  90. package/dist/manifest-compact.txt +2 -2
  91. package/dist/manifest-search.json +1 -1
  92. package/dist/manifest.json +69 -55
  93. package/dist/output/error-writer.d.ts +23 -0
  94. package/dist/output/error-writer.d.ts.map +1 -0
  95. package/dist/output/error-writer.js +20 -0
  96. package/dist/output/error-writer.js.map +1 -0
  97. package/dist/transport/adapters/desktop-atspi.js +1 -1
  98. package/dist/transport/adapters/desktop-atspi.js.map +1 -1
  99. package/dist/transport/adapters/desktop-ax-background-activation-swift.d.ts +9 -0
  100. package/dist/transport/adapters/desktop-ax-background-activation-swift.d.ts.map +1 -0
  101. package/dist/transport/adapters/desktop-ax-background-activation-swift.js +99 -0
  102. package/dist/transport/adapters/desktop-ax-background-activation-swift.js.map +1 -0
  103. package/dist/transport/adapters/desktop-ax-background-click-swift.d.ts.map +1 -1
  104. package/dist/transport/adapters/desktop-ax-background-click-swift.js +10 -133
  105. package/dist/transport/adapters/desktop-ax-background-click-swift.js.map +1 -1
  106. package/dist/transport/adapters/desktop-ax-background-click.d.ts +1 -3
  107. package/dist/transport/adapters/desktop-ax-background-click.d.ts.map +1 -1
  108. package/dist/transport/adapters/desktop-ax-background-click.js +1 -69
  109. package/dist/transport/adapters/desktop-ax-background-click.js.map +1 -1
  110. package/dist/transport/adapters/desktop-ax-background-dispatch-swift.d.ts +9 -0
  111. package/dist/transport/adapters/desktop-ax-background-dispatch-swift.d.ts.map +1 -0
  112. package/dist/transport/adapters/desktop-ax-background-dispatch-swift.js +169 -0
  113. package/dist/transport/adapters/desktop-ax-background-dispatch-swift.js.map +1 -0
  114. package/dist/transport/adapters/desktop-ax-background-input-swift.d.ts +23 -0
  115. package/dist/transport/adapters/desktop-ax-background-input-swift.d.ts.map +1 -0
  116. package/dist/transport/adapters/desktop-ax-background-input-swift.js +157 -0
  117. package/dist/transport/adapters/desktop-ax-background-input-swift.js.map +1 -0
  118. package/dist/transport/adapters/desktop-ax-background-input.d.ts +13 -0
  119. package/dist/transport/adapters/desktop-ax-background-input.d.ts.map +1 -0
  120. package/dist/transport/adapters/desktop-ax-background-input.js +124 -0
  121. package/dist/transport/adapters/desktop-ax-background-input.js.map +1 -0
  122. package/dist/transport/adapters/desktop-ax-background-window-swift.d.ts +9 -0
  123. package/dist/transport/adapters/desktop-ax-background-window-swift.d.ts.map +1 -0
  124. package/dist/transport/adapters/desktop-ax-background-window-swift.js +110 -0
  125. package/dist/transport/adapters/desktop-ax-background-window-swift.js.map +1 -0
  126. package/dist/transport/adapters/desktop-ax-swift.d.ts +1 -0
  127. package/dist/transport/adapters/desktop-ax-swift.d.ts.map +1 -1
  128. package/dist/transport/adapters/desktop-ax-swift.js +1 -0
  129. package/dist/transport/adapters/desktop-ax-swift.js.map +1 -1
  130. package/dist/transport/adapters/desktop-ax.d.ts +4 -1
  131. package/dist/transport/adapters/desktop-ax.d.ts.map +1 -1
  132. package/dist/transport/adapters/desktop-ax.js +57 -6
  133. package/dist/transport/adapters/desktop-ax.js.map +1 -1
  134. package/dist/transport/adapters/desktop-uia.js +1 -1
  135. package/dist/transport/adapters/desktop-uia.js.map +1 -1
  136. package/dist/transport/adapters/visual.d.ts +114 -0
  137. package/dist/transport/adapters/visual.d.ts.map +1 -0
  138. package/dist/transport/adapters/visual.js +473 -0
  139. package/dist/transport/adapters/visual.js.map +1 -0
  140. package/dist/transport/bus.d.ts +1 -1
  141. package/dist/transport/bus.js +3 -3
  142. package/dist/transport/bus.js.map +1 -1
  143. package/dist/transport/capability.d.ts.map +1 -1
  144. package/dist/transport/capability.js +32 -30
  145. package/dist/transport/capability.js.map +1 -1
  146. package/dist/transport/cascade.js +27 -27
  147. package/dist/transport/cascade.js.map +1 -1
  148. package/dist/transport/types.d.ts +5 -5
  149. package/dist/transport/types.d.ts.map +1 -1
  150. package/dist/transport/types.js +1 -1
  151. package/docs/operate/compute.md +20 -7
  152. package/docs/operate/focus-behavior.md +21 -12
  153. package/docs/operate/troubleshooting.md +17 -12
  154. package/package.json +6 -12
  155. package/server.json +2 -2
  156. package/skills/unicli/SKILL.md +1 -1
  157. package/skills/unicli-claude-code/SKILL.md +1 -1
  158. package/skills/unicli-hermes/SKILL.md +1 -1
  159. package/skills/unicli-repair/references/error-codes.md +7 -7
  160. package/src/adapters/_archived/README.md +6 -6
  161. package/src/adapters/_archived/apple-music/rate-album.yaml +15 -15
  162. package/src/adapters/_archived/archive.json +2 -2
  163. package/src/adapters/figma/export-selected.yaml +16 -16
  164. package/src/adapters/instagram/reels.yaml +5 -7
  165. package/src/adapters/openalex/works.test.ts +40 -32
  166. package/src/adapters/weread/shelf.yaml +1 -1
  167. package/src/adapters/zoom/toggle-mute.yaml +1 -1
  168. package/dist/engine/steps/cua.d.ts +0 -41
  169. package/dist/engine/steps/cua.d.ts.map +0 -1
  170. package/dist/engine/steps/cua.js +0 -59
  171. package/dist/engine/steps/cua.js.map +0 -1
  172. package/dist/transport/adapters/cua.d.ts +0 -239
  173. package/dist/transport/adapters/cua.d.ts.map +0 -1
  174. package/dist/transport/adapters/cua.js +0 -661
  175. package/dist/transport/adapters/cua.js.map +0 -1
  176. package/src/adapters/cua/bench-list.yaml +0 -28
  177. package/src/adapters/cua/bench-run.yaml +0 -40
@@ -45,6 +45,12 @@ export async function handleAxScreenshot(ctx, params) {
45
45
  export async function handleAxBackgroundClick(ctx, params) {
46
46
  return dispatch(ctx, "ax_background_click", params);
47
47
  }
48
+ export async function handleAxBackgroundType(ctx, params) {
49
+ return dispatch(ctx, "ax_background_type", params);
50
+ }
51
+ export async function handleAxBackgroundPress(ctx, params) {
52
+ return dispatch(ctx, "ax_background_press", params);
53
+ }
48
54
  export async function handleClipboardRead(ctx, params = {}) {
49
55
  return dispatch(ctx, "clipboard_read", params);
50
56
  }
@@ -70,6 +76,8 @@ export const DESKTOP_AX_STEP_HANDLERS = {
70
76
  ax_scroll: handleAxScroll,
71
77
  ax_screenshot: handleAxScreenshot,
72
78
  ax_background_click: handleAxBackgroundClick,
79
+ ax_background_type: handleAxBackgroundType,
80
+ ax_background_press: handleAxBackgroundPress,
73
81
  clipboard_read: handleClipboardRead,
74
82
  clipboard_write: handleClipboardWrite,
75
83
  launch_app: handleLaunchApp,
@@ -1 +1 @@
1
- {"version":3,"file":"desktop-ax.js","sourceRoot":"","sources":["../../../src/engine/steps/desktop-ax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"desktop-ax.js","sourceRoot":"","sources":["../../../src/engine/steps/desktop-ax.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Windows UIA and Linux AT-SPI direct pipeline step handlers.
3
3
  *
4
- * These handlers mirror the CUA/AX bus-dispatch shape: the YAML runner can use
4
+ * These handlers mirror the Visual/AX bus-dispatch shape: the YAML runner can use
5
5
  * low-level `uia_*` / `atspi_*` actions directly, while transport availability,
6
6
  * platform gates, and sidecar errors remain owned by the transport bus.
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Windows UIA and Linux AT-SPI direct pipeline step handlers.
3
3
  *
4
- * These handlers mirror the CUA/AX bus-dispatch shape: the YAML runner can use
4
+ * These handlers mirror the Visual/AX bus-dispatch shape: the YAML runner can use
5
5
  * low-level `uia_*` / `atspi_*` actions directly, while transport availability,
6
6
  * platform gates, and sidecar errors remain owned by the transport bus.
7
7
  */
@@ -35,7 +35,7 @@ export { stepTap, type TapConfig } from "./tap.js";
35
35
  export { stepExtract, type ExtractConfig } from "./extract.js";
36
36
  export { stepDownload, type DownloadStepConfig } from "./download.js";
37
37
  export { stepWebsocket } from "./websocket.js";
38
- export * from "./cua.js";
38
+ export * from "./visual.js";
39
39
  export * from "./desktop-ax.js";
40
40
  export * from "./desktop-sidecar.js";
41
41
  export * from "./compute.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
@@ -35,7 +35,7 @@ export { stepTap } from "./tap.js";
35
35
  export { stepExtract } from "./extract.js";
36
36
  export { stepDownload } from "./download.js";
37
37
  export { stepWebsocket } from "./websocket.js";
38
- export * from "./cua.js";
38
+ export * from "./visual.js";
39
39
  export * from "./desktop-ax.js";
40
40
  export * from "./desktop-sidecar.js";
41
41
  export * from "./compute.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAA2B,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/steps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAA2B,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @owner src/engine/steps/visual.ts
3
+ * @does Dispatch visual_* pipeline steps through the transport bus.
4
+ * @needs core/envelope, transport/types
5
+ * @feeds src/engine/executor.ts, src/engine/steps/index.ts
6
+ * @breaks Missing visual transport propagates as a bus lookup error.
7
+ * @invariants Handlers are thin dispatch wrappers; action envelopes come from the transport.
8
+ * @side-effects Depends on the selected visual transport action.
9
+ * @perf O(1) wrapper overhead.
10
+ * @concurrency Safe when the underlying transport is safe.
11
+ * @test tests/unit/engine/steps/visual.test.ts
12
+ * @stability beta
13
+ * @since 0.222.0
14
+ */
15
+ import type { Envelope } from "../../core/envelope.js";
16
+ import type { TransportBus, TransportContext } from "../../transport/types.js";
17
+ export interface VisualStepContext {
18
+ bus: TransportBus;
19
+ transportCtx: TransportContext;
20
+ platform?: NodeJS.Platform;
21
+ }
22
+ export declare function handleVisualSnapshot(ctx: VisualStepContext, params?: Record<string, unknown>): Promise<Envelope<unknown>>;
23
+ export declare function handleVisualClick(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
24
+ export declare function handleVisualType(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
25
+ export declare function handleVisualKey(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
26
+ export declare function handleVisualScroll(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
27
+ export declare function handleVisualDrag(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
28
+ export declare function handleVisualWait(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
29
+ export declare function handleVisualAssert(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
30
+ export declare function handleVisualAsk(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
31
+ export declare function handleVisualBackend(ctx: VisualStepContext, params?: Record<string, unknown>): Promise<Envelope<unknown>>;
32
+ export declare function handleVisualLaunch(ctx: VisualStepContext, params: Record<string, unknown>): Promise<Envelope<unknown>>;
33
+ export declare const VISUAL_STEP_HANDLERS: {
34
+ readonly visual_snapshot: typeof handleVisualSnapshot;
35
+ readonly visual_click: typeof handleVisualClick;
36
+ readonly visual_type: typeof handleVisualType;
37
+ readonly visual_key: typeof handleVisualKey;
38
+ readonly visual_scroll: typeof handleVisualScroll;
39
+ readonly visual_drag: typeof handleVisualDrag;
40
+ readonly visual_wait: typeof handleVisualWait;
41
+ readonly visual_assert: typeof handleVisualAssert;
42
+ readonly visual_ask: typeof handleVisualAsk;
43
+ readonly visual_backend: typeof handleVisualBackend;
44
+ readonly visual_launch: typeof handleVisualLaunch;
45
+ };
46
+ export type VisualStepKind = keyof typeof VISUAL_STEP_HANDLERS;
47
+ //# sourceMappingURL=visual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../../src/engine/steps/visual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAGV,YAAY,EACZ,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,YAAY,CAAC;IAClB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAYD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,iBAAiB,EACtB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,iBAAiB,EACtB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAE5B;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAYvB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,oBAAoB,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @owner src/engine/steps/visual.ts
3
+ * @does Dispatch visual_* pipeline steps through the transport bus.
4
+ * @needs core/envelope, transport/types
5
+ * @feeds src/engine/executor.ts, src/engine/steps/index.ts
6
+ * @breaks Missing visual transport propagates as a bus lookup error.
7
+ * @invariants Handlers are thin dispatch wrappers; action envelopes come from the transport.
8
+ * @side-effects Depends on the selected visual transport action.
9
+ * @perf O(1) wrapper overhead.
10
+ * @concurrency Safe when the underlying transport is safe.
11
+ * @test tests/unit/engine/steps/visual.test.ts
12
+ * @stability beta
13
+ * @since 0.222.0
14
+ */
15
+ async function dispatch(ctx, kind, params) {
16
+ const adapter = ctx.bus.require(kind, ctx.platform);
17
+ await adapter.open(ctx.transportCtx);
18
+ return (await adapter.action({ kind, params }));
19
+ }
20
+ export async function handleVisualSnapshot(ctx, params = {}) {
21
+ return dispatch(ctx, "visual_snapshot", params);
22
+ }
23
+ export async function handleVisualClick(ctx, params) {
24
+ return dispatch(ctx, "visual_click", params);
25
+ }
26
+ export async function handleVisualType(ctx, params) {
27
+ return dispatch(ctx, "visual_type", params);
28
+ }
29
+ export async function handleVisualKey(ctx, params) {
30
+ return dispatch(ctx, "visual_key", params);
31
+ }
32
+ export async function handleVisualScroll(ctx, params) {
33
+ return dispatch(ctx, "visual_scroll", params);
34
+ }
35
+ export async function handleVisualDrag(ctx, params) {
36
+ return dispatch(ctx, "visual_drag", params);
37
+ }
38
+ export async function handleVisualWait(ctx, params) {
39
+ return dispatch(ctx, "visual_wait", params);
40
+ }
41
+ export async function handleVisualAssert(ctx, params) {
42
+ return dispatch(ctx, "visual_assert", params);
43
+ }
44
+ export async function handleVisualAsk(ctx, params) {
45
+ return dispatch(ctx, "visual_ask", params);
46
+ }
47
+ export async function handleVisualBackend(ctx, params = {}) {
48
+ return dispatch(ctx, "visual_backend", params);
49
+ }
50
+ export async function handleVisualLaunch(ctx, params) {
51
+ return dispatch(ctx, "visual_launch", params);
52
+ }
53
+ export const VISUAL_STEP_HANDLERS = {
54
+ visual_snapshot: handleVisualSnapshot,
55
+ visual_click: handleVisualClick,
56
+ visual_type: handleVisualType,
57
+ visual_key: handleVisualKey,
58
+ visual_scroll: handleVisualScroll,
59
+ visual_drag: handleVisualDrag,
60
+ visual_wait: handleVisualWait,
61
+ visual_assert: handleVisualAssert,
62
+ visual_ask: handleVisualAsk,
63
+ visual_backend: handleVisualBackend,
64
+ visual_launch: handleVisualLaunch,
65
+ };
66
+ //# sourceMappingURL=visual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual.js","sourceRoot":"","sources":["../../../src/engine/steps/visual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgBH,KAAK,UAAU,QAAQ,CACrB,GAAsB,EACtB,IAAY,EACZ,MAA+B;IAE/B,MAAM,OAAO,GAAqB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAoB,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAsB,EACtB,SAAkC,EAAE;IAEpC,OAAO,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAsB,EACtB,SAAkC,EAAE;IAEpC,OAAO,QAAQ,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAsB,EACtB,MAA+B;IAE/B,OAAO,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe,EAAE,oBAAoB;IACrC,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,eAAe;IAC3B,aAAa,EAAE,kBAAkB;IACjC,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,aAAa,EAAE,kBAAkB;IACjC,UAAU,EAAE,eAAe;IAC3B,cAAc,EAAE,mBAAmB;IACnC,aAAa,EAAE,kBAAkB;CACzB,CAAC"}
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * Integration status: the existing TransportBus at src/transport/bus.ts exposes
16
16
  * a fixed set of seven TransportKind values (http, cdp-browser, subprocess,
17
- * desktop-ax, desktop-uia, desktop-atspi, cua). There is NO outbound MCP
17
+ * desktop-ax, desktop-uia, desktop-atspi, visual). There is NO outbound MCP
18
18
  * client wired into the bus — src/mcp/* implements Uni-CLI AS an MCP server,
19
19
  * not as an MCP client. Per rule 02 / Priority Zero NO HACKS, this module
20
20
  * does NOT invent a fake transport; every entry point returns a structured
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * Integration status: the existing TransportBus at src/transport/bus.ts exposes
16
16
  * a fixed set of seven TransportKind values (http, cdp-browser, subprocess,
17
- * desktop-ax, desktop-uia, desktop-atspi, cua). There is NO outbound MCP
17
+ * desktop-ax, desktop-uia, desktop-atspi, visual). There is NO outbound MCP
18
18
  * client wired into the bus — src/mcp/* implements Uni-CLI AS an MCP server,
19
19
  * not as an MCP client. Per rule 02 / Priority Zero NO HACKS, this module
20
20
  * does NOT invent a fake transport; every entry point returns a structured
@@ -2,8 +2,8 @@ shopping: 1688(assets, download, item, search, store), amazon(bestsellers, discu
2
2
  social: 1point3acres(digest, forum, forums, hot, latest, notifications, search, thread, user), band(bands, mentions, post, posts), bluesky(feeds, followers, following, likes, notifications, post, profile, search, starter-packs, thread, trending, user), dingtalk(click-text, dump, open-app, press, snapshot-app, status-app, type-text, version), discord-app(channels, click-text, delete, dump, members, open-app, press, read, search, send, servers, snapshot-app, status, status-app, type-text), douban(book-hot, download, group-hot, marks, movie-hot, new-movies, photos, reviews, search, subject, top250, tv-hot), facebook(add-friend, events, feed, friends, groups, join-group, marketplace, marketplace-inbox, marketplace-listings, memories, notifications, post, profile, search, subtitles), feishu(calendar, docs, send, tasks), hupu(detail, hot, like, mentions, reply, search, unlike), imessage(contact, recent, search), instagram(activity, collection-create, collection-delete, comment, download, explore, follow, followers, following, highlights, like, note, post, profile, reel, reels, reels-trending, save, saved, search, stories, story, subtitles, suggested, tags, unfollow, unlike, unsave, user), jike(comment, create, feed, like, notifications, post, repost, search, topic, user), lark(click-text, dump, open-app, press, snapshot-app, status-app, type-text, version), linux-do(categories, category, feed, hot, latest, search, tags, topic, topic-content, user-posts, user-topics), lobsters(active, domain, hot, newest, read, search, tag), mastodon(search, statuses, timeline, trending, user), reddit(comment, comments, frontpage, home, hot, new, popular, read, reply, rising, save, saved, search, subreddit, subreddit-info, subscribe, top, trending, upvote, upvoted, user, user-comments, user-posts, whoami), rednote(comments, download, feed, note, notifications, search, user), slack(channels, click-text, dump, messages, open-app, post, press, search, send, snapshot-app, status, status-app, type-text, users), threads(hot, media, post, profile, search, user), tieba(hot, posts, read, search), twitter(accept, article, block, bookmark, bookmark-folder, bookmark-folders, bookmarks, delete, download, follow, followers, following, hide-reply, like, likes, list-add, list-remove, list-tweets, lists, media, mentions, mute, notifications, pin, post, profile, quote, quotes, reply, reply-dm, retweet, retweets, search, spaces, thread, timeline, trending, tweets, unblock, unbookmark, unfollow, unlike, unmute, unretweet), v2ex(daily, hot, latest, me, member, node, nodes, notifications, replies, search, topic, user), weibo(comments, favorites, feed, hot, me, post, profile, publish, search, timeline, trending, user), weixin(article, create-draft, download, drafts, hot, search), xiaohongshu(comments, creator-note-detail, creator-notes, creator-notes-summary, creator-profile, creator-stats, download, feed, follow, hashtag, hot, like, note, notifications, profile, publish, save, search, suggest, trending, unfollow, user), zhihu(answer, answer-detail, answers, article, articles, collection, collections, columns, comment, download, favorite, feed, follow, followers, following, hot, like, me, notifications, pins, question, recommend, search, topic, topics, trending, user), zoom(join, start, toggle-mute), signal(click-text, dump, open-app, press, snapshot-app, status-app, type-text), whatsapp(click-text, dump, open-app, press, snapshot-app, status-app, type-text), teams(click-text, dump, open-app, press, snapshot-app, status-app, type-text), wechat-work(click-text, dump, open-app, press, snapshot-app, status-app, type-text), zoom-app(click-text, dump, open-app, press, snapshot-app, status-app, type-text)
3
3
  news: 36kr(article, hot, latest, news, search), bbc(news, technology, top, topic, world), bloomberg(businessweek, economics, feeds, industries, main, markets, news, opinions, politics, tech), cnn(technology, top), hackernews(ask, best, comments, item, jobs, new, read, search, show, top, user), infoq(articles, latest), ithome(hot, latest, news), nytimes(search, top), reuters(article, article-detail, latest, search, top), techcrunch(latest, search), theverge(latest, search)
4
4
  jobs: 51job(company, detail, hot, search), boss(batchgreet, chatlist, chatmsg, detail, exchange, greet, invite, joblist, mark, recommend, resume, search, send, stats), indeed(job, search), linkedin(jobs, profile, search, timeline), maimai(search, search-talents), nowcoder(companies, creators, detail, experience, hot, jobs, notifications, papers, practice, recommend, referral, salary, search, suggest, topics, trending)
5
- scholarly: acl-anthology(paper, search), arxiv(author, download, paper, recent, search, trending), baidu-scholar(search), cnki(search), crossref(search, work), cvf(search), dblp(author, paper, search, venue), google-scholar(cite, profile, search), huggingface-papers(daily, search), neurips(search), openalex(search, work), openreview(author, paper, reviews, search, venue), paperreview(feedback, review, submit), pmlr(paper, search), pubmed(article, author, citations, related, search), semantic-scholar(paper, search), unpaywall(oa), wanfang(search), zotero(add-note, add-tag, collections, export, items, notes, search, tags)
6
- other: adguardhome(add-rule, rules, stats, status, toggle), aibase(news), autoagent(eval-run), aws(s3-ls), baidu(hot, search), brave(search), chrome(bookmarks, tabs), ctrip(flight, hotel-search, hotel-suggest, search), cua(bench-list, bench-run), doctl(droplets), duckduckgo(search, suggest), endoflife(product), flathub(app, search), flyctl(apps), godot(project-run, scene-export), gov-law(recent, search), gov-policy(recent, search), hermes(sessions-search, skills-list, skills-read), itch-io(popular, search, top), jianyu(detail, search), jq(format, query), ke(chengjiao, ershoufang, xiaoqu, zufang), leetcode(discuss-search), lens(get, search), lichess(top, user), mdn(search), motion-studio(component-get), neonctl(projects), netlify(sites), nvd(cve), oeis(search, sequence), openfda(drug-label, food-recall), pdf(read), pexels(curated, search), powerchina(search), pscale(databases), railway(deploy), rest-countries(country, region), rfc(rfc), sketch(artboards, export, symbols), slay-the-spire-ii(deck, end-turn, map, play-card, status, use-potion), slock(servers), stagehand(wrap-observe), supabase(projects), tdx(hot-rank), ths(hot-rank), tvmaze(search, show), uisdc(news), uiverse(code, preview), ukipo(info), unsplash(random, search), vercel(list), wechat-channels(hot, search), wikidata(entity, search), wipo-patentscope(info), wrangler(list), wttr(current, forecast), xiaoe(catalog, content, courses, detail, play-url), yahoo(search), ycombinator(launches), zlibrary(info, search)
5
+ scholarly: acl-anthology(paper, search), arxiv(author, download, paper, recent, search, trending), baidu-scholar(search), cnki(search), crossref(search, work), cvf(search), dblp(author, paper, search, venue), google-scholar(cite, profile, search), huggingface-papers(daily, search), neurips(search), openalex(search, work), openreview(author, paper, reviews, search, venue), paperreview(feedback, review, submit), pmlr(paper, search), pubmed(article, author, citations, related, search), semantic-scholar(citations, paper, references, search), unpaywall(oa), wanfang(search), zotero(add-note, add-tag, collections, export, items, notes, search, tags)
6
+ other: adguardhome(add-rule, rules, stats, status, toggle), aibase(news), autoagent(eval-run), aws(s3-ls), baidu(hot, search), brave(search), chrome(bookmarks, tabs), ctrip(flight, hotel-search, hotel-suggest, search), doctl(droplets), duckduckgo(search, suggest), endoflife(product), flathub(app, search), flyctl(apps), godot(project-run, scene-export), gov-law(recent, search), gov-policy(recent, search), hermes(sessions-search, skills-list, skills-read), itch-io(popular, search, top), jianyu(detail, search), jq(format, query), ke(chengjiao, ershoufang, xiaoqu, zufang), leetcode(discuss-search), lens(get, search), lichess(top, user), mdn(search), motion-studio(component-get), neonctl(projects), netlify(sites), nvd(cve), oeis(search, sequence), openfda(drug-label, food-recall), pdf(read), pexels(curated, search), powerchina(search), pscale(databases), railway(deploy), rest-countries(country, region), rfc(rfc), sketch(artboards, export, symbols), slay-the-spire-ii(deck, end-turn, map, play-card, status, use-potion), slock(servers), stagehand(wrap-observe), supabase(projects), tdx(hot-rank), ths(hot-rank), tvmaze(search, show), uisdc(news), uiverse(code, preview), ukipo(info), unsplash(random, search), vercel(list), wechat-channels(hot, search), wikidata(entity, search), wipo-patentscope(info), wrangler(list), wttr(current, forecast), xiaoe(catalog, content, courses, detail, play-url), yahoo(search), ycombinator(launches), zlibrary(info, search)
7
7
  reference: anilist(anime, characters, manga, staff, studios), bangumi(anime, book, characters, game, subject), chaoxing(assignments, exams), dictionary(examples, search, synonyms), google(news, search, suggest, trends), imdb(box-office, person, reviews, search, title, top, trending), jikan(anime, characters, manga, people), kitsu(anime, manga), mangadex(authors, manga), moegirl(links, page, search), wikipedia(page, random, search, summary, today, trending)
8
8
  ai: antigravity(ask, click-text, dump, extract-code, model, new, open-app, press, read, screenshot, send, snapshot-app, status, status-app, type-text, watch), chatgpt(ask, click-text, detail, dump, history, image, model, new, open-app, press, read, screenshot, send, snapshot-app, status, status-app, type-text), chatgpt-app(ask, dump, model, new, read, screenshot, send, status), chatwise(ask, click-text, dump, export, history, model, new, open-app, press, read, screenshot, send, snapshot-app, status, status-app, type-text), claude(ask, click-text, detail, dump, history, new, open-app, press, read, send, snapshot-app, status, status-app, type-text), deepseek(ask, chat, detail, history, models, new, read, send, status), doubao(ask, detail, history, meeting-summary, meeting-transcript, new, read, send, status), doubao-app(ask, click-text, dump, new, open-app, press, read, screenshot, send, snapshot-app, status, status-app, type-text), doubao-web(ask, detail, history, meeting-summary, meeting-transcript, new, read, send, status), gemini(ask, deep-research, deep-research-result, image, new), grok(ask, detail, history, image, new, read, send, status), hf(datasets, models, paper, spaces, top), jimeng(generate, history, new, workspaces), minimax(chat, models, tts), notebooklm(current, get, history, list, note-list, notes-get, open, rpc, shared, source-fulltext, source-get, source-guide, source-list, status, summary), novita(generate, models, status), ollama(generate, list, models, ps), openrouter(models, search), perplexity(ask, click-text, dump, open-app, press, snapshot-app, status-app, type-text), qwen(ask, detail, history, image, new, read, send, status), replicate(run, search, trending), yollomi(background, edit, face-swap, generate, models, object-remover, remove-bg, restore, try-on, upload, upscale, video), yuanbao(ask, detail, history, new, read, send, shared, status), lm-studio(click-text, dump, open-app, press, snapshot-app, status-app, type-text)
9
9
  productivity: apple-notes(list, read, search), mubu(doc, docs, list, notes, recent, search), notion(click-text, databases, dump, export, favorites, new, open-app, pages, press, read, screenshot, search, sidebar, snapshot-app, status, status-app, type-text, write), obsidian(click-text, daily, dump, open, open-app, press, search, snapshot-app, status-app, type-text), ones(enrich-tasks, login, logout, me, my-tasks, resolve-labels, task, task-helpers, tasks, token-info, worklog), quark(ls, mkdir, mv, rename, rm, save, search, share-tree), logseq(click-text, dump, open-app, press, snapshot-app, status-app, type-text), typora(click-text, dump, open-app, press, snapshot-app, status-app, type-text), evernote-app(click-text, dump, open-app, press, snapshot-app, status-app, type-text)