@ai-agent-forge/plugin-desktop-macos-input

中文文档
0.88.28发布于 2026/11/02MITTypeScriptES Module近 30 天下载 4275

Bounded macOS desktop input capability plugin for Agent Forge (desktop_execute; no replay)

原始使用文档
文档目录4 节
  1. Install
  2. Library surface
  3. Real-host status
  4. Development

@agent-forge/plugin-desktop-macos-input

Bounded macOS desktop input capability plugin for Agent Forge, structured as the macOS counterpart of plugins/desktop-windows-input. It registers desktop_execute — focus, click, type, key, scroll — backed by the macOS Accessibility tree through a JXA driver (osascript -l JavaScript). A readonly host mode registers no input tools at all, and the shipped facade deliberately exposes no replay method, so desktop_replay never registers out of the box.

Action surface: click accepts observed control identities (AXPress with a CGEvent coordinate-click fallback) and — click-only — explicit coordinates targets (integer, non-negative screen coordinates); key uses a minimal SendKeys-aligned grammar (+ shift, ^ control, % option, {ENTER}-style special keys) translated to System Events keystroke/keyCode; scroll posts CGEvent scroll-wheel events. High-risk actions (uac, password, admin, payment, external-submit) stay behind the shared requiresDesktopUserConfirmation fail-closed gate and always return needs_user. Every action re-observes so results carry fresh state.

On non-macOS platforms importing the package does not throw; every tool reports an explicit unsupported result. A missing Accessibility (assistive access) grant is reported fail-closed as the probe reason accessibility-permission-required.

Install

# from a local checkout
agent-forge plugin install ./plugins/desktop-macos-input

# from npm
agent-forge plugin install @ai-agent-forge/plugin-desktop-macos-input

The package ships two manifests: agent-forge.json (ecosystem manifest for the deterministic plugin resolver, platform.os: ["macos"]) and plugin.json (host-load manifest consumed by loadCapabilityPluginFromManifest, entry ./dist/entry.js).

Library surface

import { DesktopMacosInputAdapter, MacosAccessibilityDriver } from "@agent-forge/plugin-desktop-macos-input";

  • DesktopMacosInputAdapter — production input facade (no replay method).
  • MacosAccessibilityDriver(options?) — JXA driver; supports command/timeoutMs/spawnSync/platform injection for brokers and tests.
  • createDesktopInputCapabilityFactoryV1(runtime) — registers desktop_execute (plus desktop_replay only when the injected runtime exposes a replay method) on a CapabilityAPI.
  • Default export of dist/entry.js — the precomposed factory used by external plugin loading.

The session/observation/projection contract and the confirmation gate are deliberate inlined copies shared with @agent-forge/plugin-desktop-macos-observe so both packages stay self-contained.

Real-host status

The driver and adapter are contract-tested with an injected fake spawnSync (canned JSON, no real desktop). Real darwin behavior — the JXA enumeration and action scripts, Accessibility permission classification, keystroke/keyCode delivery and CGEvent clicks — is verified only by the explicitly gated test (AGENT_FORGE_MACOS_AX_INPUT_REAL_TEST=1 on macOS, scroll-only to stay reversible) and has not been validated on a real macOS host as of this change.

Development

npm install --ignore-scripts        # repo root, creates the workspace symlink
npm run build                       # plugins/desktop-macos-input (tsgo)
npm test                            # vitest; the entry fidelity test requires `npm run build` first

版本与发布记录

@ai-agent-forge/plugin-desktop-macos-input 共发布 27 个版本,首次发布于 2026/10/07;过去 12 个月发布了 27 个版本。

版本发布日期距今
0.88.28latest2026/11/024 天前
0.88.272026/11/014 天前
0.88.262026/11/015 天前
0.88.252026/10/316 天前
0.88.242026/10/306 天前
0.88.232026/10/307 天前

关于 @ai-agent-forge/plugin-desktop-macos-input 的常见问题

@ai-agent-forge/plugin-desktop-macos-input 是什么?

Bounded macOS desktop input capability plugin for Agent Forge (desktop_execute; no replay)

如何安装 @ai-agent-forge/plugin-desktop-macos-input?

在项目目录运行 npm install @ai-agent-forge/plugin-desktop-macos-input,或使用 pnpm add / yarn add / bun add。

@ai-agent-forge/plugin-desktop-macos-input 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ai-agent-forge/plugin-desktop-macos-input 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@ai-agent-forge/plugin-desktop-macos-input 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ai-agent-forge/plugin-desktop-macos-input 可以商用吗?

@ai-agent-forge/plugin-desktop-macos-input 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ai-agent-forge/plugin-desktop-macos-input 的下载量有多少?

根据 npm 官方下载统计,@ai-agent-forge/plugin-desktop-macos-input 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,275 次,日均约 143 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ai-agent-forge/plugin-desktop-macos-input 还在维护吗?

最新版本 0.88.28 发布于 2026/11/02(4 天前);至今共发布 27 个版本,其中过去 12 个月发布了 27 个;首次发布于 2026/10/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。