@optima-chat/optima-agent 0.8.33 → 0.8.35

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.
@@ -141,7 +141,10 @@
141
141
  "Bash(browser-cli close:*)",
142
142
  "Bash(npm update:*)",
143
143
  "Bash(node -e \"console.log\\(require\\('./node_modules/@optima-chat/browser-cli/package.json'\\).version\\)\")",
144
- "WebFetch(domain:raw.githubusercontent.com)"
144
+ "WebFetch(domain:raw.githubusercontent.com)",
145
+ "Bash(aws ecs:*)",
146
+ "Bash(aws ecr:*)",
147
+ "Bash(gh search:*)"
145
148
  ],
146
149
  "deny": [],
147
150
  "ask": []
@@ -3,84 +3,164 @@ name: browser
3
3
  description: "Browser automation for web interactions. Use when user needs to open/navigate to websites, login to platforms, fill forms, post content, test websites, or operate on third-party platforms without APIs. Uses 'browser-cli' commands. Do NOT use for simple web scraping (use WebFetch) or tasks that have dedicated skills (e.g. scout, tiktok, instagram, shein, etc.)."
4
4
  ---
5
5
 
6
- # Browser Automation Skill
6
+ # 浏览器自动化 Skill
7
7
 
8
- ## When to Use
8
+ ## 使用场景
9
9
 
10
- - User asks to open a website or navigate to a URL (e.g. "打开 github", "open youtube")
11
- - User asks to login to a platform, fill a form, or post content
12
- - User needs to test website functionality
13
- - User needs to operate on third-party platforms without APIs
14
- - User asks to automate browser interactions
10
+ - 用户要求打开网站或访问某个 URL(如"打开 github""open youtube"
11
+ - 用户要求登录平台、填写表单或发布内容
12
+ - 用户需要测试网站功能
13
+ - 用户需要操作没有 API 的第三方平台
14
+ - 用户要求自动化浏览器交互
15
15
 
16
- **Do NOT use for:**
17
- - Simple web scraping use WebFetch
18
- - Tasks that have dedicated skills (e.g. scout, tiktok, instagram, shein, etc.)
16
+ **不适用场景:**
17
+ - 简单网页抓取使用 WebFetch
18
+ - 已有专用 skill 的任务(如 scouttiktokinstagramshein 等)
19
19
 
20
- ## Commands
20
+ ## 命令
21
21
 
22
22
  ```bash
23
- # Session management
24
- browser-cli launch [--url <url>] [--force] # Launch browser (--force closes existing session first)
25
- browser-cli close # Close browser and release resources
26
- browser-cli status # Check current session status
27
-
28
- # Navigation
29
- browser-cli navigate <url> # Navigate to URL
30
- browser-cli back # Go back
31
- browser-cli refresh # Refresh page
32
-
33
- # Interaction
34
- browser-cli click <index> # Click element by index
35
- browser-cli input <index> <text> [--no-clear] # Input text (--no-clear to append instead of replace)
36
- browser-cli select <index> <option> # Select dropdown option
37
- browser-cli scroll <up|down> [--pages <n>] # Scroll page (default 1 page)
38
- browser-cli keys <key> # Keyboard action (Enter, Tab, etc.)
39
-
40
- # Page inspection
41
- browser-cli dom # Get current DOM state
42
- browser-cli screenshot [file] # Take screenshot (default: /tmp/screenshot.png)
43
- browser-cli search <pattern> # Search text in page
44
- browser-cli find <css_selector> # Query by CSS selector
45
-
46
- # Tab management
47
- browser-cli tabs # List open tabs
48
- browser-cli switch <tab_id> # Switch to tab
49
- browser-cli close-tab <tab_id> # Close tab
23
+ # 会话管理
24
+ browser-cli launch [--url <url>] [--force] # 启动浏览器(--force 先关闭已有会话)
25
+ browser-cli close # 关闭浏览器并释放资源
26
+ browser-cli status # 查看当前会话状态
27
+
28
+ # 导航
29
+ browser-cli navigate <url> # 跳转到 URL
30
+ browser-cli back # 后退
31
+ browser-cli refresh # 刷新页面
32
+
33
+ # 交互
34
+ browser-cli click <index> # 按索引点击元素
35
+ browser-cli input <index> <text> [--no-clear] # 输入文本(--no-clear 追加而非替换)
36
+ browser-cli select <index> <option> # 选择下拉选项
37
+ browser-cli scroll <up|down> [--pages <n>] # 滚动页面(默认 1 页)
38
+ browser-cli keys <key> # 键盘操作(EnterTab 等)
39
+
40
+ # 页面检查
41
+ browser-cli dom # 获取当前 DOM 状态
42
+ browser-cli screenshot [file] # 截图(默认:/tmp/screenshot.png
43
+ browser-cli search <pattern> # 搜索页面文本
44
+ browser-cli find <css_selector> # 通过 CSS 选择器查询
45
+
46
+ # 标签页管理
47
+ browser-cli tabs # 列出所有标签页
48
+ browser-cli switch <tab_id> # 切换标签页
49
+ browser-cli close-tab <tab_id> # 关闭标签页
50
50
  ```
51
51
 
52
- ## DOM Index Format
52
+ ## DOM 索引格式
53
53
 
54
- Every operation returns the current DOM state in this format:
54
+ 每个操作都会返回当前 DOM 状态,格式如下:
55
55
 
56
56
  ```
57
57
  [N]<tag attributes />
58
58
  content
59
59
  ```
60
60
 
61
- - Index numbers (N) are **not consecutive** (e.g., [7], [20], [30]) — this is normal
62
- - Indexes are **reassigned after every operation** always use the latest indexes
63
- - Use these indexes for `click`, `input`, and `select` commands
61
+ - 索引号 (N) **不连续**(如 [7][20][30])— 这是正常的
62
+ - 每次操作后索引会**重新分配**务必使用最新的索引
63
+ - 使用这些索引来执行 `click`、`input` `select` 命令
64
64
 
65
- ## Important Notes
65
+ ## 注意事项
66
66
 
67
- - **DOM auto-returned**: Every operation returns DOM state automatically no need to call `browser-cli dom` separately
68
- - **Avoid unnecessary screenshots**: Screenshots consume tokens; use DOM output for routine navigation
69
- - **5-minute timeout**: Sessions auto-close after 5 minutes of inactivity
70
- - **Login prompts**: When encountering login pages, ask the user for credentials or verification codes
71
- - **Always close**: Run `browser-cli close` when done to release resources
67
+ - **DOM 自动返回**:每个操作会自动返回 DOM 状态无需单独调用 `browser-cli dom`
68
+ - **避免不必要的截图**:截图消耗 token,日常导航用 DOM 输出即可
69
+ - **5 分钟超时**:无操作 5 分钟后会话自动关闭
70
+ - **登录提示**:遇到登录页面时,向用户询问账号密码或验证码
71
+ - **务必关闭**:操作完成后运行 `browser-cli close` 释放资源
72
72
 
73
- ## Workflow Example
73
+ ## 基本操作示例
74
74
 
75
75
  ```bash
76
- # 1. Launch browser and navigate
76
+ # 1. 启动浏览器并导航
77
77
  browser-cli launch --url "https://example.com"
78
78
 
79
- # 2. Interact based on DOM indexes
80
- browser-cli click 15 # Click a button
81
- browser-cli input 22 "hello" # Type into a field
82
- browser-cli keys Enter # Press Enter
79
+ # 2. 根据 DOM 索引进行交互
80
+ browser-cli click 15 # 点击按钮
81
+ browser-cli input 22 "hello" # 输入文本
82
+ browser-cli keys Enter # 按回车
83
83
 
84
- # 3. Close when done
84
+ # 3. 完成后关闭
85
85
  browser-cli close
86
86
  ```
87
+
88
+ ## Workflow(操作录制与回放)
89
+
90
+ 将浏览器操作录制为可复用的 workflow,后续执行时零 token 消耗。
91
+
92
+ ### Workflow 命令
93
+
94
+ ```bash
95
+ # 保存与管理
96
+ browser-cli save-workflow <name> [--description <desc>] # 保存当前 session 操作为 workflow
97
+ browser-cli list-workflows # 列出所有 workflow
98
+ browser-cli workflow-info <name> # 查看 workflow 详情(步骤列表)
99
+ browser-cli delete-workflow <name> # 删除 workflow
100
+
101
+ # 编辑(保存后参数化)
102
+ browser-cli edit-workflow <name> --set-var --step <N> --name <varName> # 将步骤 N 的值设为变量
103
+ browser-cli edit-workflow <name> --add-input <varName> --type string [--required] # 声明输入变量(type: string/number/bool)
104
+ browser-cli edit-workflow <name> --add-step extract --selectors '<json>' [--screenshot] # 添加 extract 步骤
105
+ browser-cli edit-workflow <name> --add-step wait_for_element --selector '<css>' [--timeout 30] # 添加等待步骤
106
+ browser-cli edit-workflow <name> --remove-step <N> # 删除步骤
107
+ browser-cli edit-workflow <name> --update-step <N> --requires-confirmation # 标记敏感操作
108
+ browser-cli edit-workflow <name> --update-step <N> --target-text '<text>' # 修改定位文本
109
+ browser-cli edit-workflow <name> --auto-clean # 自动清理冗余步骤
110
+
111
+ # 执行与监控
112
+ browser-cli run-workflow <name> [--param key=value ...] [--force] # 执行(--force 自动关闭已有 session)
113
+ browser-cli workflow-status <task_id> # 查询执行状态
114
+ browser-cli workflow-input <task_id> --var key=value # 提供变量值
115
+ browser-cli workflow-input <task_id> --value <val> # 提供值(仅单变量时)
116
+ browser-cli workflow-input <task_id> --confirm # 确认敏感操作
117
+ browser-cli workflow-cancel <task_id> # 取消执行
118
+
119
+ # 降级接管(workflow 失败后用 --session 继续操作)
120
+ browser-cli --session <session_id> dom # 查看降级 session 的页面
121
+ browser-cli --session <session_id> click 5 # 在降级 session 上操作
122
+ browser-cli --session <session_id> close # 完成后关闭
123
+ ```
124
+
125
+ **注意**:
126
+ - `--force` 会自动关闭已有 session 并取消运行中的 task
127
+ - 不带 `--force` 时,如果有活跃 session 或运行中 task 会返回 409 错误
128
+
129
+ ### 保存 workflow
130
+
131
+ 当用户完成浏览器操作后说"把这个操作保存下来"或类似意图时:
132
+
133
+ 1. **保存前先查看最终页面 DOM**:`browser-cli dom` — 记住页面结构,为 extract 步骤准备 CSS selector(注意:session 必须还在,未 close)
134
+ 2. `browser-cli save-workflow '操作名称'` — 保存操作记录(自动附带 DOM snapshot)。同名 workflow 不会覆盖,需先 `delete-workflow` 再重新保存
135
+ 3. 用 `edit-workflow` 进行参数化:
136
+ - 识别可变值(搜索词、用户名、密码等),用 `--set-var` 替换为变量占位符
137
+ - 用 `--add-input` 声明 input_schema
138
+ - 如果 workflow 需要返回数据(如查价格、查状态),根据保存时看到的 DOM 结构添加 extract 步骤(用 CSS selector 指定要提取的字段);纯执行型 workflow(如发帖)可不加 extract
139
+ - 对支付、删除等敏感操作,用 `--update-step N --requires-confirmation` 标记
140
+ 4. 确认 workflow 可用:`browser-cli workflow-info '操作名称'`
141
+
142
+ ### 执行 workflow
143
+
144
+ 当用户说"用之前录的 XX workflow"或类似意图时:
145
+
146
+ 1. `browser-cli list-workflows` — 确认 workflow 存在
147
+ 2. `browser-cli run-workflow '名称' --param key=value` — 启动执行
148
+ 3. `browser-cli workflow-status <task_id>` — 每 3-5 秒轮询一次状态
149
+ 4. 根据状态处理:
150
+ - `needs_input` → 检查输出中的字段:
151
+ - 有 `Missing: xxx` → 缺少变量值,向用户询问后用 `workflow-input --var xxx=值` 提供
152
+ - 有 `Confirmation: xxx` → 敏感操作待确认,告知用户后用 `workflow-input --confirm` 确认
153
+ - `failed` → 用 `--session` flag 接管当前 session 完成任务(见降级接管)
154
+ - `completed` → 返回 Output 给用户
155
+
156
+ ### 降级接管
157
+
158
+ workflow 执行失败后,session 仍然活跃。用 `workflow-status` 返回的 session ID 接管:
159
+
160
+ ```bash
161
+ browser-cli --session <session_id> dom # 查看当前页面
162
+ browser-cli --session <session_id> click 5 # 用普通命令完成剩余操作
163
+ browser-cli --session <session_id> close # 完成后关闭
164
+ ```
165
+
166
+ 不需要重新 `launch`。
package/README.md CHANGED
@@ -45,13 +45,20 @@ optima -p "查看商品列表"
45
45
  - **商品管理** - 创建、编辑、查询商品
46
46
  - **订单处理** - 发货、退款、订单查询
47
47
  - **库存管理** - 监控库存、调整数量
48
+ - **运费与物流** - 运费配置、运单查询、物流追踪
48
49
  - **国际化** - 多语言翻译管理
49
50
  - **店铺配置** - 首页、集合、商品详情页
50
- - **图像/视频** - AI 生成产品图片和视频
51
+ - **图像/视频/语音** - AI 生成产品图片、视频、TTS/ASR
52
+ - **音视频处理** - 视频合成、压缩、裁切、格式转换
53
+ - **浏览器自动化** - 网页操作、Workflow 录制与回放
51
54
  - **广告投放** - Google Ads 管理
52
- - **选品调研** - Amazon 产品分析
55
+ - **选品调研** - Amazon 产品分析、1688 供应商sourcing
56
+ - **竞品研究** - Shein、TikTok Shop 产品搜索
57
+ - **网红营销** - TikTok/Instagram 达人发现与分析
53
58
  - **数据分析** - 销售数据和趋势
54
- - **评价管理** - 审核、回复、精选评价
59
+ - **评价管理** - 审核、回复、AI 生成评价
60
+ - **自动化监控** - 定时规则、巡检、审批
61
+ - **Shopify 集成** - 店铺连接、商品/订单/库存同步
55
62
  - **交互式问答** - 执行任务时向用户提问(架构选择、方案确认等)
56
63
 
57
64
  ### 执行模式
@@ -69,17 +76,27 @@ optima -p "查看商品列表"
69
76
  |-------|------|
70
77
  | merchant | 店铺信息管理 |
71
78
  | product | 商品管理 |
72
- | order | 订单处理 |
73
- | inventory | 库存管理 |
79
+ | order | 订单处理与发货 |
80
+ | inventory | 库存管理与监控 |
81
+ | shipping | 运费配置与管理 |
82
+ | logistics | 物流运单与追踪 |
74
83
  | i18n | 国际化翻译 |
75
84
  | collection | 商品集合管理 |
76
85
  | homepage | 店铺首页配置 |
77
86
  | product-page | 商品详情页配置 |
78
- | comfy | 图像/视频生成 |
79
- | ads | Google Ads 广告 |
80
- | scout | Amazon 选品调研 |
81
- | bi | 数据分析 |
82
- | review | 评价管理 |
87
+ | review | 评价管理与 AI 生成 |
88
+ | comfy | 图像/视频/语音生成(TTS/ASR) |
89
+ | ffmpeg | 音视频处理(合成、压缩、裁切) |
90
+ | browser | 浏览器自动化与 Workflow 录制回放 |
91
+ | ads | Google Ads 广告投放 |
92
+ | scout | Amazon 选品与 1688 供应商sourcing |
93
+ | shein | Shein 产品搜索与快时尚调研 |
94
+ | tiktok | TikTok 网红营销与 Shop 产品研究 |
95
+ | instagram | Instagram 达人发现与内容分析 |
96
+ | shopify | Shopify 店铺集成与同步 |
97
+ | bi | 销售数据与趋势分析 |
98
+ | sentinel | 自动化监控规则与巡检 |
99
+ | markdown-pdf | Markdown 导出 PDF |
83
100
 
84
101
  ## 交互式问答 (AskUserQuestion)
85
102
 
@@ -218,7 +235,7 @@ agent.reset();
218
235
  │ │ │ │ │ │
219
236
  │ ▼ ▼ ▼ ▼ │
220
237
  │ Skills System Prompt Tools MCP Server │
221
- │ (10个) (引导逻辑) (Bash/Read..) (Memory) │
238
+ │ (23个) (引导逻辑) (Bash/Read..) (Memory) │
222
239
  └──────────────────────┬──────────────────────────────────────────┘
223
240
 
224
241
  ┌──────────────┼──────────────┐
@@ -236,7 +253,7 @@ agent.reset();
236
253
  - **核心**: Claude Agent SDK v0.1.55
237
254
  - **语言**: TypeScript
238
255
  - **UI**: 自定义终端渲染
239
- - **工具集成**: 5 个专业 CLI 工具
256
+ - **工具集成**: 10+ 专业 CLI 工具
240
257
 
241
258
  ## 开发
242
259
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/optima-agent",
3
- "version": "0.8.33",
3
+ "version": "0.8.35",
4
4
  "description": "基于 Claude Agent SDK 的电商运营 AI 助手",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",