SuperAPI AI 工具集

control-safari

智能体与模型

查看项目

更新于 10-15 17:34

技能介绍

用途:该技能通过一个持久的脚本驱动 JavaScript REPL 来控制用户现有的 Safari 26 会话,可进行页面检查、导航、点击、填写、选择等浏览器操作。它只使用随附的脚本运行时,不应查找或调用 MCP 工具;每条命令都向 stdout 返回 JSON,从智能体视角看是同步的。

主要能力:可启动隔离会话并保存 sessionId;用 doctor 检查环境,用 documentation 读取完整操作指南;用 run 执行短代码单元或通过 --code-file 执行多行/含大量引号的 JavaScript;使用 var 声明的绑定会在同一会话内持续存在。产生图像的代码单元会在 images 数组中返回本地路径,需用当前智能体的图像读取工具查看。默认使用任务专属的新 Safari 标签页,不同网站使用各自标签页,仅在用户明确要求时复用用户标签页。遇到 CAPTCHA 或人工验证、Google 账户选择、Google Docs、Google Sheets 时,按需阅读对应参考文档。

使用方式:先执行 node {baseDir}/scripts/safari-repl.mjs start 启动一个隔离会话并保留 sessionId;然后执行 node {baseDir}/scripts/safari-repl.mjs doctor --session SESSION_ID 与 node {baseDir}/scripts/safari-repl.mjs documentation --session SESSION_ID 进行检查并遵循完整操作指南。若 doctor 报告 Safari 26 自动化或 Apple Events 的 JavaScript 不可用,应停止。运行短代码:node {baseDir}/scripts/safari-repl.mjs run --session SESSION_ID --title "Inspect the task tab" --code 'var tabs = browser.tabs.list(); tabs'。多行代码写入临时文件后使用 --code-file,如:node {baseDir}/scripts/safari-repl.mjs run --session SESSION_ID --title "Operate the page" --code-file /absolute/path/to/cell.js。需要干净 REPL 时才用 reset --session SESSION_ID。

限制与清理:不要复用其他任务的 sessionId,不要在同一浏览器任务中混用本脚本传输与 MCP 传输,不要留下后台会话。每次最终回复前,无论成功或失败,都要执行 release --session SESSION_ID 释放控制指示器并执行 stop --session SESSION_ID 停止会话。遵循 documentation 返回的所有确认与安全规则。