yuanflow-cli 0.1.24 → 0.1.26

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.
package/README.md CHANGED
@@ -159,6 +159,10 @@ yuanflow-cli oss copy --source-key temp/cover.png --target-key final/cover.png -
159
159
 
160
160
  `browser` 命令是自媒体平台专用浏览器自动化协议,用于账号登录态隔离、Cookie/profile 本地保存、账号页面采集、作品发布前检查和发布流程规划。它不用于普通网页搜索、通用浏览、截图或 CDP 连接。
161
161
 
162
+ 如果要做发布类任务,先优先用用户电脑里已有的 Chrome,第二优先用 Edge。两个都没有时,再提示用户安装给浏览器自动化用的 Chromium。不要把这件事说得太技术化,直接告诉用户“需要一个能给自动化程序用的浏览器”就够了。
163
+
164
+ 如果 Chromium 连续下载 3 次还是失败,就停止继续重试,明确告诉用户可能是网络、权限、下载源不可用或安全软件拦截,并引导用户手动下载和安装后再继续。
165
+
162
166
  当前命令只返回受控路径、任务计划和 dry-run 预检结果,不直接暴露裸 Playwright 或 Chrome 调试能力:
163
167
 
164
168
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuanflow-cli",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "description": "YuanFlow API CLI and skill installer for supported AI coding agents.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -71,3 +71,5 @@
71
71
  "douyin"
72
72
  ]
73
73
  }
74
+
75
+
@@ -13,6 +13,13 @@ emoji: 🧭
13
13
 
14
14
  本 Skill 只用于自媒体平台的专用浏览器自动化:账号登录态隔离、Cookie/profile 本地保存、账号资料浏览采集、作品页面收集、草稿创建、作品发布前检查和发布执行。
15
15
 
16
+ 浏览器选择先后顺序要说清楚:
17
+
18
+ - 先优先使用用户电脑里已经装好的 Chrome。
19
+ - 没有 Chrome,再优先使用 Edge。
20
+ - 如果这两个浏览器都没有,再提示用户安装“给浏览器自动化用的 Chromium”。
21
+ - 这里说的 Chromium,不是让用户去学技术,而是让用户装一个能给自动化程序用的浏览器内核。
22
+
16
23
  不要把它和 YuanFlow 已有的通用浏览器能力混在一起:
17
24
 
18
25
  - `浏览器启动模式`:通用网页浏览、打开页面、可见窗口、普通搜索。
@@ -62,11 +69,20 @@ yuanflow-cli browser task-plan --platform douyin --task publish --account main -
62
69
  ## 固定边界
63
70
 
64
71
  - Cookie、localStorage、sessionStorage、浏览器 profile 只保存在本地受控目录,不上传、不输出、不写入报告。
72
+ - Cookie/profile 的保存和浏览器品牌无关,始终按“平台 + 帐号别名”分开保存,不和用户日常浏览器混在一起。
65
73
  - 扫码、验证码、人机验证、二次验证、风控提醒,必须暂停并让用户手动处理。
66
74
  - 发布、删除、修改账号资料、提交草稿、定时发布等会改变线上状态的动作,必须先向用户复述并等待确认。
67
75
  - 不做绕过验证码、绕过风控、刷量、批量骚扰、未授权采集或平台禁止的自动化。
68
76
  - 不直接调用 shell 执行裸 Playwright、Chrome 调试命令或读取浏览器敏感目录;优先走受控工具。
69
77
 
78
+ ## 浏览器缺失与下载失败
79
+
80
+ - 如果本机没有 Chrome 和 Edge,先直接告诉用户:这台电脑没有现成可用的浏览器,需要安装给自动化用的 Chromium。
81
+ - 如果 Chromium 下载连续失败 3 次,就不要一直重试了,直接停下来,把问题说清楚。
82
+ - 这时候要明确告诉用户,常见原因可能是网络、权限、下载源不可用或者安全软件拦截。
83
+ - 同时给用户手动处理的简单步骤:先检查网络,再重新下载 Chromium;如果还是不行,就让用户手动安装后再继续。
84
+ - 不要把这个问题说成账号问题,也不要只说“网络错误”就结束。
85
+
70
86
  ## 支持平台
71
87
 
72
88
  当前受控协议支持:
@@ -209,9 +225,10 @@ downloads 浏览器下载文件
209
225
  ### 登录或保存登录态
210
226
 
211
227
  1. 先执行 `profile-path` 或 `session-init` 获取账号目录。
212
- 2. 使用该账号专属 profile 打开平台登录页。
213
- 3. 遇到扫码、验证码或风控,暂停并让用户手动处理。
214
- 4. 登录完成后只报告“已保存本地登录态”和 profile 路径,不输出 Cookie 内容。
228
+ 2. 先检查本机是否已有 Chrome,次选 Edge;只有都没有时,才提示用户安装 Chromium。
229
+ 3. 使用该账号专属 profile 打开平台登录页。
230
+ 4. 遇到扫码、验证码或风控,暂停并让用户手动处理。
231
+ 5. 登录完成后只报告“已保存本地登录态”和 profile 路径,不输出 Cookie 内容。
215
232
 
216
233
  ### 账号资料或页面采集
217
234
 
@@ -224,10 +241,11 @@ downloads 浏览器下载文件
224
241
 
225
242
  1. 发布前必须确认平台、帐号、素材、标题、正文、封面、话题、发布时间。
226
243
  2. 先执行 `dry-run --task publish` 检查缺失项。
227
- 3. 打开发布入口并填写内容。
228
- 4. 到最终发布按钮前暂停,复述即将发布的内容。
229
- 5. 用户确认后再点击最终发布或保存草稿。
230
- 6. 记录发布结果、作品链接或失败原因到 `tasks` 目录。
244
+ 3. 先优先用 Chrome 或 Edge;没有这两个浏览器时,提示用户先安装 Chromium。
245
+ 4. 打开发布入口并填写内容。
246
+ 5. 到最终发布按钮前暂停,复述即将发布的内容。
247
+ 6. 用户确认后再点击最终发布或保存草稿。
248
+ 7. 记录发布结果、作品链接或失败原因到 `tasks` 目录。
231
249
 
232
250
  ## 输出要求
233
251
 
@@ -67,6 +67,12 @@ const TASK_ALIASES = {
67
67
  账号快照: 'account_snapshot',
68
68
  };
69
69
 
70
+ const BROWSER_PREFS = {
71
+ preferred: ['Chrome', 'Edge'],
72
+ fallback: 'Chromium',
73
+ retry_limit: 3,
74
+ };
75
+
70
76
  export function listBrowserCommands() {
71
77
  const commonOptions = [
72
78
  option('--platform', 'platform', true, '平台:douyin、xiaohongshu、weibo、bilibili、tiktok、youtube、twitter。'),
@@ -325,6 +331,7 @@ function buildTaskPlanPayload(options) {
325
331
  '发布前最终确认按钮',
326
332
  '任何可能修改线上帐号状态的动作',
327
333
  ],
334
+ browser_preferences: browserPreferences(),
328
335
  boundaries: browserBoundaries(),
329
336
  };
330
337
  }
@@ -411,3 +418,14 @@ function browserBoundaries() {
411
418
  fallback_tool: 'yuanflow_cli_call browser ...',
412
419
  };
413
420
  }
421
+
422
+ function browserPreferences() {
423
+ return {
424
+ browser_order: ['Chrome', 'Edge', 'Chromium'],
425
+ fallback_browser: BROWSER_PREFS.fallback,
426
+ download_retry_limit: BROWSER_PREFS.retry_limit,
427
+ download_retry_message: '如果 Chromium 连续下载 3 次还是失败,就不要继续死试了,直接告诉用户可能是网络、权限、下载源不可用或安全软件拦截,并指导用户手动下载安装后再继续。',
428
+ user_facing_hint:
429
+ '先看看这台电脑有没有 Chrome;没有就用 Edge;如果这两个都没有,再提示用户安装给浏览器自动化用的 Chromium。',
430
+ };
431
+ }