@yixiaoermail/cli 3.1.0

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 (127) hide show
  1. package/README.md +25 -0
  2. package/bin/yxer.js +74 -0
  3. package/dist/yxer-darwin-amd64 +0 -0
  4. package/dist/yxer-darwin-arm64 +0 -0
  5. package/dist/yxer-linux-amd64 +0 -0
  6. package/dist/yxer-linux-arm64 +0 -0
  7. package/dist/yxer-windows-amd64.exe +0 -0
  8. package/dist/yxer-windows-arm64.exe +0 -0
  9. package/package.json +23 -0
  10. package/skills/yixiaoer/QUICKSTART.md +265 -0
  11. package/skills/yixiaoer/SKILL.md +70 -0
  12. package/skills/yixiaoer/assets/yixiaoer.png +0 -0
  13. package/skills/yixiaoer/plugin.json +21 -0
  14. package/skills/yixiaoer/references/cli/command-reference.md +212 -0
  15. package/skills/yixiaoer/references/cli/skill-install.md +65 -0
  16. package/skills/yixiaoer/references/cli-install-uninstall.md +196 -0
  17. package/skills/yixiaoer/references/domains/accounts-and-env.md +37 -0
  18. package/skills/yixiaoer/references/domains/draft-and-material.md +29 -0
  19. package/skills/yixiaoer/references/domains/install-and-sync.md +37 -0
  20. package/skills/yixiaoer/references/domains/publish.md +75 -0
  21. package/skills/yixiaoer/references/domains/troubleshooting.md +30 -0
  22. package/skills/yixiaoer/references/execution-standard.md +144 -0
  23. package/skills/yixiaoer/references/get-account-overviews.md +56 -0
  24. package/skills/yixiaoer/references/get-challenges.md +14 -0
  25. package/skills/yixiaoer/references/get-collections.md +34 -0
  26. package/skills/yixiaoer/references/get-content-overviews.md +59 -0
  27. package/skills/yixiaoer/references/get-friends.md +9 -0
  28. package/skills/yixiaoer/references/get-games.md +39 -0
  29. package/skills/yixiaoer/references/get-goods.md +42 -0
  30. package/skills/yixiaoer/references/get-groups.md +35 -0
  31. package/skills/yixiaoer/references/get-hot-events.md +14 -0
  32. package/skills/yixiaoer/references/get-locations.md +48 -0
  33. package/skills/yixiaoer/references/get-miniapps.md +38 -0
  34. package/skills/yixiaoer/references/get-music-categories.md +41 -0
  35. package/skills/yixiaoer/references/get-music.md +67 -0
  36. package/skills/yixiaoer/references/get-publish-activities.md +40 -0
  37. package/skills/yixiaoer/references/get-publish-categories.md +62 -0
  38. package/skills/yixiaoer/references/get-sync-apps.md +14 -0
  39. package/skills/yixiaoer/references/get-topics.md +13 -0
  40. package/skills/yixiaoer/references/go-live-process.md +168 -0
  41. package/skills/yixiaoer/references/keyword-reference.md +113 -0
  42. package/skills/yixiaoer/references/material-resource.md +89 -0
  43. package/skills/yixiaoer/references/platform-doc-maintenance.md +33 -0
  44. package/skills/yixiaoer/references/platform.md +61 -0
  45. package/skills/yixiaoer/references/platforms/article/acfun.md +90 -0
  46. package/skills/yixiaoer/references/platforms/article/aiqiyi.md +56 -0
  47. package/skills/yixiaoer/references/platforms/article/baijiahao.md +94 -0
  48. package/skills/yixiaoer/references/platforms/article/bilibili.md +88 -0
  49. package/skills/yixiaoer/references/platforms/article/chejiahao.md +81 -0
  50. package/skills/yixiaoer/references/platforms/article/csdn.md +86 -0
  51. package/skills/yixiaoer/references/platforms/article/dayuhao.md +78 -0
  52. package/skills/yixiaoer/references/platforms/article/douban.md +62 -0
  53. package/skills/yixiaoer/references/platforms/article/douyin.md +106 -0
  54. package/skills/yixiaoer/references/platforms/article/index.md +157 -0
  55. package/skills/yixiaoer/references/platforms/article/jianshu.md +58 -0
  56. package/skills/yixiaoer/references/platforms/article/kuaichuanhao.md +78 -0
  57. package/skills/yixiaoer/references/platforms/article/qiehao.md +78 -0
  58. package/skills/yixiaoer/references/platforms/article/souhuhao.md +75 -0
  59. package/skills/yixiaoer/references/platforms/article/toutiaohao.md +78 -0
  60. package/skills/yixiaoer/references/platforms/article/wangyihao.md +79 -0
  61. package/skills/yixiaoer/references/platforms/article/weixingongzhonghao.md +135 -0
  62. package/skills/yixiaoer/references/platforms/article/xinlangweibo.md +75 -0
  63. package/skills/yixiaoer/references/platforms/article/xueqiuhao.md +73 -0
  64. package/skills/yixiaoer/references/platforms/article/yichehao.md +92 -0
  65. package/skills/yixiaoer/references/platforms/article/yidianhao.md +76 -0
  66. package/skills/yixiaoer/references/platforms/article/zhihu.md +75 -0
  67. package/skills/yixiaoer/references/platforms/get-locations.md +5 -0
  68. package/skills/yixiaoer/references/platforms/imageText/baijiahao.md +91 -0
  69. package/skills/yixiaoer/references/platforms/imageText/douyin.md +111 -0
  70. package/skills/yixiaoer/references/platforms/imageText/index.md +116 -0
  71. package/skills/yixiaoer/references/platforms/imageText/kuaishou.md +106 -0
  72. package/skills/yixiaoer/references/platforms/imageText/shipinhao.md +125 -0
  73. package/skills/yixiaoer/references/platforms/imageText/toutiaohao.md +76 -0
  74. package/skills/yixiaoer/references/platforms/imageText/weixinshipinhao.md +7 -0
  75. package/skills/yixiaoer/references/platforms/imageText/xiaohongshu.md +88 -0
  76. package/skills/yixiaoer/references/platforms/imageText/xinlangweibo.md +77 -0
  77. package/skills/yixiaoer/references/platforms/imageText/zhihu.md +92 -0
  78. package/skills/yixiaoer/references/platforms/index.md +20 -0
  79. package/skills/yixiaoer/references/platforms/video/acfun.md +82 -0
  80. package/skills/yixiaoer/references/platforms/video/aiqiyi.md +89 -0
  81. package/skills/yixiaoer/references/platforms/video/baijiahao.md +89 -0
  82. package/skills/yixiaoer/references/platforms/video/bilibili-open.md +87 -0
  83. package/skills/yixiaoer/references/platforms/video/bilibili.md +80 -0
  84. package/skills/yixiaoer/references/platforms/video/chejiahao.md +63 -0
  85. package/skills/yixiaoer/references/platforms/video/dayuhao.md +89 -0
  86. package/skills/yixiaoer/references/platforms/video/dewu.md +80 -0
  87. package/skills/yixiaoer/references/platforms/video/douyin.md +143 -0
  88. package/skills/yixiaoer/references/platforms/video/duoduoshipin.md +64 -0
  89. package/skills/yixiaoer/references/platforms/video/fengwang.md +81 -0
  90. package/skills/yixiaoer/references/platforms/video/index.md +165 -0
  91. package/skills/yixiaoer/references/platforms/video/kuaishou-open.md +63 -0
  92. package/skills/yixiaoer/references/platforms/video/kuaishou.md +77 -0
  93. package/skills/yixiaoer/references/platforms/video/meipai.md +79 -0
  94. package/skills/yixiaoer/references/platforms/video/meiyou.md +59 -0
  95. package/skills/yixiaoer/references/platforms/video/pipixia.md +58 -0
  96. package/skills/yixiaoer/references/platforms/video/qiehao.md +91 -0
  97. package/skills/yixiaoer/references/platforms/video/shipinhao.md +95 -0
  98. package/skills/yixiaoer/references/platforms/video/souhuhao.md +91 -0
  99. package/skills/yixiaoer/references/platforms/video/souhushipin.md +64 -0
  100. package/skills/yixiaoer/references/platforms/video/tengxunshipin.md +63 -0
  101. package/skills/yixiaoer/references/platforms/video/toutiaohao.md +66 -0
  102. package/skills/yixiaoer/references/platforms/video/wangyihao.md +93 -0
  103. package/skills/yixiaoer/references/platforms/video/weishi.md +61 -0
  104. package/skills/yixiaoer/references/platforms/video/xiaohongshu.md +133 -0
  105. package/skills/yixiaoer/references/platforms/video/xiaohongshushop.md +92 -0
  106. package/skills/yixiaoer/references/platforms/video/xinlangweibo.md +79 -0
  107. package/skills/yixiaoer/references/platforms/video/yichehao.md +61 -0
  108. package/skills/yixiaoer/references/platforms/video/yidianhao.md +85 -0
  109. package/skills/yixiaoer/references/platforms/video/zhihu.md +85 -0
  110. package/skills/yixiaoer/references/proxy-management.md +68 -0
  111. package/skills/yixiaoer/references/query-accounts.md +85 -0
  112. package/skills/yixiaoer/references/save-draft.md +75 -0
  113. package/skills/yixiaoer/references/topic-tags.md +139 -0
  114. package/skills/yixiaoer/references/troubleshooting-guide.md +105 -0
  115. package/skills/yixiaoer/references/upload-resource.md +59 -0
  116. package/skills/yixiaoer/references/usage-workflow.md +209 -0
  117. package/skills/yixiaoer/references/workflows/account-selection.md +38 -0
  118. package/skills/yixiaoer/references/workflows/common-rules.md +259 -0
  119. package/skills/yixiaoer/references/workflows/draft-workflow.md +44 -0
  120. package/skills/yixiaoer/references/workflows/local-vs-cloud.md +50 -0
  121. package/skills/yixiaoer/references/workflows/material-workflow.md +43 -0
  122. package/skills/yixiaoer/references/workflows/payload-sourcing.md +70 -0
  123. package/skills/yixiaoer/references/workflows/publish-article.md +68 -0
  124. package/skills/yixiaoer/references/workflows/publish-imageText.md +64 -0
  125. package/skills/yixiaoer/references/workflows/publish-troubleshooting.md +50 -0
  126. package/skills/yixiaoer/references/workflows/publish-video.md +65 -0
  127. package/skills/yixiaoer/references/yixiaoer-shared.md +95 -0
@@ -0,0 +1,157 @@
1
+ # 文章发布 (Article Publish)
2
+
3
+ > [!CAUTION]
4
+ > **阅读规范 (Reading Protocol)**:
5
+ > 本文档是 **所有平台** 文章发布的 **唯一入口** 和 **基础 DTO 定义**。
6
+ > 在查阅具体的平台文档(如 `weixingongzhonghao.md`)之前,你 **必须** 首先查阅本文档以理解 Payload 的根结构,否则将导致生成的 JSON 无法通过校验。
7
+
8
+ ## 触发场景 (Trigger)
9
+ - **意图辨析**:当用户下达长图文、深度文章或多图文消息(仅限微信公众号)分发指令时触发。
10
+ - **典型提示词**:
11
+ - “发布这篇公众号文章,内容是...”
12
+ - “帮我同步这篇长文章到知乎和 CSDN”
13
+ - “把这一周的推文定时在周日发布”
14
+
15
+ ## 执行逻辑 (Logic Flow)
16
+ 1. **内容转换**:确保正文为 HTML 格式。若用户提供的是 Markdown 或纯文本,需先进行转换。
17
+ 2. **资源补全**:
18
+ - 调用 `upload` action 上传文章封面图。
19
+ - 正文内嵌图片也建议先行上传获取 Key(视频号卡片、公众号卡片同理)。
20
+ 3. **平台策略分配**:
21
+ - **微信公众号**:必须单独发布,推荐使用 `platformForms` 结构。
22
+ - **通用平台**(知乎、简书等):使用 `accountForms` 结构进行分发。
23
+ 4. **参数装配**:注入 `action: "publish"` 及其余 DTO 字段。
24
+ 5. **指令执行**:先执行 `yxer validate <platform> article <payload.json>`,再执行 `yxer publish article <platform> <payload.json> [clientId]`。
25
+
26
+ ## 1. 数据结构 (Data Structure)
27
+
28
+ 接口要求传入 `CloudTaskPushRequest` 结构。
29
+
30
+ ### 1.1 基础结构 (Base Structure)
31
+
32
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
33
+ | :--- | :--- | :--- | :--- | :--- |
34
+ | `action` | `string` | **是** | 固定值:`publish` | - |
35
+ | `publishType` | `string` | **是** | 固定为 `article` | - |
36
+ | `platforms` | `string[]` | **是** | 目标平台枚举数组,详见下方平台列表 | - |
37
+ | `coverKey` | `string` | **是** | 任务封面资源 Key | - |
38
+ | `publishArgs` | `Object` | **是** | 发布参数核心容器 | - |
39
+ | `taskSetId` | `string` | 否 | 任务集唯一标识 (草稿发布时必填) | - |
40
+ | `desc` | `string` | 否 | 任务描述/摘要 | - |
41
+ | `publishChannel` | `string` | 否 | `cloud` (云端) 或 `local` (本机) | `cloud` |
42
+ | `clientId` | `string` | 否 | 客户端连接 ID (`local` 发布时必填) | - |
43
+ | `isDraft` | `boolean` | 否 | 是否仅保存为 draft (蚁小二草稿箱) | `false` |
44
+ | `isAppContent` | `boolean` | 否 | 业务扩展标记,CLI 会原样透传 | - |
45
+
46
+ ### 1.2 草稿模式选取 (Draft Selection)
47
+
48
+ | 场景 | 蚁小二草稿箱 | 目标平台草稿箱 |
49
+ | :--- | :--- | :--- |
50
+ | **位置** | `Payload` 根路径 | `accountForms` -> `contentPublishForm` |
51
+ | **参数** | `"isDraft": true` | `"pubType": 0` (若平台不支持,见下方说明) |
52
+ | **效果** | 仅保存在蚁小二系统,不发起平台推送 | 执行推送流程,但最终结果为平台端的草稿态 |
53
+ | **用户话术** | “存为蚁小二草稿”、“以后再发” | “存到百家号草稿箱”、“推送到知乎草稿” |
54
+
55
+ > [!TIP]
56
+ > **字段兼容性补丁 (Draft Fallback Rule)**:
57
+ > Agent 在处理“存为平台草稿”时必须遵循以下优先级:
58
+ > 1. **首选 (pubType)**:若目标平台文档定义了 `pubType` 字段,必须设置 `"pubType": 0`。
59
+ > 2. **次选 (visibleType)**:若无 `pubType` 但定义了 `visibleType` 或 `status`/`privacy` 字段,则将其设置为 **`1` (私密/仅自己可见)**。对应的,`0` 表示公开。
60
+ > 3. **不支持**:若上述两个字段均未在平台文档中定义,则说明该平台不支持草稿或私密保存,Agent 应告知用户并询问是否直接公开发布。
61
+
62
+
63
+ ### 1.3 发布参数 (publishArgs)
64
+
65
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
66
+ | :--- | :--- | :--- | :--- | :--- |
67
+ | `accountForms` | `Array` | **是** | 账号发布表单列表 (定义目标账号) | - |
68
+ | `platformForms` | `Object` | 否 | **平台级表单**: 仅限 `微信公众号` 使用。按平台名称组织的共享配置字典 | - |
69
+ | `covers` | `Array` | 否 | **标准请求体共享文章封面列表**。CLI 校验时会在缺失时复制到各 `accountForms[i].contentPublishForm.covers` | - |
70
+ | `cover` | `Object` | 否 | 兼容旧输入。若未提供 `covers`,CLI 会把该单封面转换为 `covers[0]` | - |
71
+ | `coverKey` | `string` | 否 | **标准请求体共享封面 Key**。CLI 校验时会在缺失时复制到各 `accountForms[i].coverKey`;文章发布最终仍要求账号项有 `coverKey` | - |
72
+ | `content` | `string` | 否 | **标准请求体共享正文**。位置在 `publishArgs.content`,与 `accountForms` 同级;CLI 校验时会在缺失时复制到各 `accountForms[i].contentPublishForm.content` | - |
73
+
74
+ > [!IMPORTANT]
75
+ > **配置架构约束**:
76
+ > - **微信公众号专用性**: **微信公众号必须单独发布**。在一个发布请求中,如果包含微信公众号,则不能包含其他任何平台;反之亦然。
77
+ > - **platformForms**: **仅限微信公众号使用**。
78
+ > - **优先级**: 后端将优先尝试从 `platformForms` 中获取对应平台的配置,若不存在则回退至账号级的 `contentPublishForm`。
79
+
80
+ > [!TIP]
81
+ > **CLI 输入兼容规则**:
82
+ > - 推荐优先使用“标准请求体”形态,在 `publishArgs` 中声明共享的 `covers`、`coverKey`、`content`,这些字段都与 `accountForms` 同级。
83
+ > - 文章封面统一使用 `covers` 数组;只有一张封面时也写成 `covers: [{...}]`。`cover` 仅作为旧 payload 兼容输入。
84
+ > - 文章正文推荐直接填写 `publishArgs.content`,不要只在 `contentPublishForm.content` 中单独填写。
85
+ > - CLI 当前仍按**单平台命令**执行:`yxer publish article <platform> <payload.json> [clientId]`。
86
+ > - `yxer validate` 与 `yxer publish` 都接受完整标准请求体;在共享字段存在而账号项缺失时,CLI 会在校验阶段自动补齐到对应 `accountForms[]`。
87
+
88
+ ### 1.4 账号表单项 (accountForms Item)
89
+
90
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
91
+ | :--- | :--- | :--- | :--- | :--- |
92
+ | `platformAccountId` | `string` | **是** | 蚁小二平台账号唯一 ID | - |
93
+ | `covers` | `Array` | **是** | 文章封面列表 (`OldCover[]`);统一放在 `contentPublishForm.covers` | - |
94
+ | `contentPublishForm`| `Object` | 否 | **账号级透传配置**: 若未配置 `platformForms` 则从此读取;当 `publishArgs.content` 已提供时,CLI 会同步补齐到这里的 `content` | `{}` |
95
+ | `coverKey` | `string` | **是** | 账号级封面 Key,必须与 `contentPublishForm.covers[0].key` 一致 | - |
96
+ | `mediaId` | `string` | 否 | 业务扩展字段,CLI 原样透传 | - |
97
+ | `platformName` | `string` | 否 | 业务扩展字段,CLI 原样透传 | - |
98
+ | `publishContentId` | `string` | 否 | 业务扩展字段,CLI 原样透传 | - |
99
+
100
+ ## 2. 发布示例 (Payload Example)
101
+
102
+ ```json
103
+ {
104
+ "action": "publish",
105
+ "publishType": "article",
106
+ "platforms": ["知乎"],
107
+ "desc": "文章发布任务",
108
+ "publishArgs": {
109
+ "covers": [
110
+ {
111
+ "key": "article_cover_key",
112
+ "width": 900,
113
+ "height": 500,
114
+ "size": 150000
115
+ }
116
+ ],
117
+ "coverKey": "article_cover_key",
118
+ "content": "<h1>演示文章标题</h1><p>这是一个演示文章的正文内容...</p>",
119
+ "accountForms": [
120
+ {
121
+ "platformAccountId": "acc_art_001",
122
+ "mediaId": "media_001",
123
+ "platformName": "知乎",
124
+ "publishContentId": "publish_content_001",
125
+ "coverKey": "article_cover_key",
126
+ "contentPublishForm": {
127
+ "formType": "task",
128
+ "title": "演示文章标题",
129
+ "covers": [
130
+ {
131
+ "key": "article_cover_key",
132
+ "width": 900,
133
+ "height": 500,
134
+ "size": 150000
135
+ }
136
+ ]
137
+ }
138
+ }
139
+ ]
140
+ }
141
+ }
142
+ ```
143
+
144
+ ### 4.1 级联分类组装 (Cascading Categories)
145
+ 许多平台要求传入由父及子的完整分类对象数组。
146
+ - **组装逻辑**:Agent 从 `categories` 接口获取数据后,若存在层级关系,**必须自行构造** 路径数组。
147
+ - **填表规范**:对于每一级,必须包含 `yixiaoerId`, `yixiaoerName` 以及对应的 **`raw`** 对象。
148
+ - **层级示例**:
149
+ - 父分类:`{"yixiaoerId": "18", "yixiaoerName": "动漫", "raw": {...}}`
150
+ - 子分类:`{"yixiaoerId": "1", "yixiaoerName": "国产动漫", "raw": {...}}`
151
+ - **最终 Payload 形式**(Agent 需手动装配成此数组):
152
+ ```json
153
+ "category": [
154
+ { "yixiaoerId": "18", "yixiaoerName": "动漫", "raw": {...} },
155
+ { "yixiaoerId": "1", "yixiaoerName": "国产动漫", "raw": {...} }
156
+ ]
157
+ ```
@@ -0,0 +1,58 @@
1
+ # 简书文章发布参数 (JianShu Article)
2
+
3
+ > [!IMPORTANT]
4
+ > **前提条件 (Prerequisite)**:
5
+ > 在使用本平台的特定参数之前,你 **必须** 已经阅读并理解了 [文章发布首页 (Index)](./index.md) 中定义的 Payload 根结构。本页仅描述 `contentPublishForm` 内部的平台差异化字段。
6
+
7
+
8
+ ## 触发场景 (Trigger)
9
+ - **意图辨析**:用户指定在“Jianshu”平台发布文章内容时触发。
10
+ - **典型提示词**:
11
+ - “发布这篇文章到Jianshu”
12
+ - “并在Jianshu上同步更新”
13
+
14
+ ## 执行逻辑 (Logic Flow)
15
+ 1. **内容处理**:确保文章正文符合Jianshu要求的格式。
16
+ 2. **参数装配**:提取标题、正文及封面信息至 `contentPublishForm`。
17
+ 3. **指令执行**:先执行 `yxer validate <platform> <type> <payload.json>`,再执行 `yxer publish <type> <platform> <payload.json> [clientId]`。
18
+
19
+
20
+ 本平台文章发布通过 `contentPublishForm` 承载以下参数。
21
+
22
+ ## 1. contentPublishForm 参数定义
23
+
24
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
25
+ | :--- | :--- | :--- | :--- | :--- |
26
+ | `formType` | `string` | **是** | 固定值: `task` | `task` |
27
+ | `title` | `string` | **是** | 文章标题 | - |
28
+ | `content` | `string` | **是** | 文章内容 (HTML 格式) | - |
29
+ | `pubType` | `number` | **是** | 发布类型: 0-草稿, 1-直接发布 | 1 |
30
+
31
+ ## 2. Payload 完整示例
32
+
33
+ ```json
34
+ {
35
+ "action": "publish",
36
+ "publishType": "article",
37
+ "platforms": ["简书"],
38
+ "publishArgs": {
39
+ "accountForms": [
40
+ {
41
+ "platformAccountId": "acc_js_001",
42
+ "contentPublishForm": {
43
+ "formType": "task",
44
+ "title": "这是文章标题",
45
+ "content": "<h1>简书文章标题</h1><p>内容正文...</p>",
46
+ "pubType": 1
47
+ }
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ ```
53
+
54
+ ## 相关接口
55
+
56
+ | 目标数据 | 对应 Action | 相关文档 |
57
+ | :--- | :--- | :--- |
58
+ | `covers.key` | `upload` | [资源上传](../../upload-resource.md) |
@@ -0,0 +1,78 @@
1
+ # 快传号文章发布参数 (KuaiChuanHao Article)
2
+
3
+ > [!IMPORTANT]
4
+ > **前提条件 (Prerequisite)**:
5
+ > 在使用本平台的特定参数之前,你 **必须** 已经阅读并理解了 [文章发布首页 (Index)](./index.md) 中定义的 Payload 根结构。本页仅描述 `contentPublishForm` 内部的平台差异化字段。
6
+
7
+
8
+ ## 触发场景 (Trigger)
9
+ - **意图辨析**:用户指定在“Kuaichuanhao”平台发布文章内容时触发。
10
+ - **典型提示词**:
11
+ - “发布这篇文章到Kuaichuanhao”
12
+ - “并在Kuaichuanhao上同步更新”
13
+
14
+ ## 执行逻辑 (Logic Flow)
15
+ 1. **内容处理**:确保文章正文符合Kuaichuanhao要求的格式。
16
+ 2. **参数装配**:提取标题、正文及封面信息至 `contentPublishForm`。
17
+ 3. **指令执行**:先执行 `yxer validate <platform> <type> <payload.json>`,再执行 `yxer publish <type> <platform> <payload.json> [clientId]`。
18
+
19
+
20
+ 本平台文章发布通过 `contentPublishForm` 承载以下参数。
21
+
22
+ ## 1. contentPublishForm 参数定义
23
+
24
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
25
+ | :--- | :--- | :--- | :--- | :--- |
26
+ | `formType` | `string` | **是** | 固定值: `task` | `task` |
27
+ | `title` | `string` | **是** | 文章标题 | - |
28
+ | `content` | `string` | **是** | 文章内容 (HTML 格式) | - |
29
+ | `covers` | `Array` | **是** | 文章封面列表 (`OldCover[]`) | - |
30
+ | `tags` | `string[]` | 否 | 文章标签 | - |
31
+ | `type`| `number` | **是** | 创作类型: 0-不申明, 1-申明原创 | 1 |
32
+ | `pubType` | `number` | **是** | 发布类型: 0-草稿, 1-直接发布 | 1 |
33
+ | `scheduledTime` | `number` | 否 | 定时发布时间 (13 位 Unix 时间戳,单位: 毫秒) | - |
34
+
35
+ ## 2. Payload 完整示例
36
+
37
+ ```json
38
+ {
39
+ "action": "publish",
40
+ "publishType": "article",
41
+ "platforms": ["快传号"],
42
+ "publishArgs": {
43
+ "accountForms": [
44
+ {
45
+ "platformAccountId": "acc_kch_001",
46
+ "coverKey": "article_cover_key",
47
+ "cover": { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 },
48
+ "contentPublishForm": {
49
+ "formType": "task",
50
+ "title": "这是文章标题",
51
+ "content": "<h1>文章标题</h1><p>正文内容...</p>",
52
+ "covers": [
53
+ { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 }
54
+ ],
55
+ "type": 1,
56
+ "pubType": 1
57
+ }
58
+ }
59
+ ]
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## 3. 复杂对象结构说明
65
+
66
+ ### 3.1 OldCover
67
+ | 字段名 | 类型 | 必填 |说明 |
68
+ | :--- | :--- | :--- | :--- |
69
+ | `key` | `string` | **是** | OSS 资源 Key |
70
+ | `size` | `number` | **是** | 文件大小 (Bytes) |
71
+ | `width` | `number` | **是** | 宽度 |
72
+ | `height` | `number` | **是** | 高度 |
73
+
74
+ ## 相关接口
75
+
76
+ | 目标数据 | 对应 Action | 相关文档 |
77
+ | :--- | :--- | :--- |
78
+ | `covers.key` | `upload` | [资源上传](../../upload-resource.md) |
@@ -0,0 +1,78 @@
1
+ # 企鹅号文章发布参数 (QiEHao Article)
2
+
3
+ > [!IMPORTANT]
4
+ > **前提条件 (Prerequisite)**:
5
+ > 在使用本平台的特定参数之前,你 **必须** 已经阅读并理解了 [文章发布首页 (Index)](./index.md) 中定义的 Payload 根结构。本页仅描述 `contentPublishForm` 内部的平台差异化字段。
6
+
7
+
8
+ ## 触发场景 (Trigger)
9
+ - **意图辨析**:用户指定在“Qiehao”平台发布文章内容时触发。
10
+ - **典型提示词**:
11
+ - “发布这篇文章到Qiehao”
12
+ - “并在Qiehao上同步更新”
13
+
14
+ ## 执行逻辑 (Logic Flow)
15
+ 1. **内容处理**:确保文章正文符合Qiehao要求的格式。
16
+ 2. **参数装配**:提取标题、正文及封面信息至 `contentPublishForm`。
17
+ 3. **指令执行**:先执行 `yxer validate <platform> <type> <payload.json>`,再执行 `yxer publish <type> <platform> <payload.json> [clientId]`。
18
+
19
+
20
+ 本平台文章发布通过 `contentPublishForm` 承载以下参数。
21
+
22
+ ## 1. contentPublishForm 参数定义
23
+
24
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
25
+ | :--- | :--- | :--- | :--- | :--- |
26
+ | `formType` | `string` | **是** | 固定值: `task` | `task` |
27
+ | `title` | `string` | **是** | 文章标题 | - |
28
+ | `content` | `string` | **是** | 文章内容 (HTML 格式) | - |
29
+ | `covers` | `Array` | **是** | 文章封面列表 (`OldCover[]`) | - |
30
+ | `tags` | `string[]` | **是** | 文章标签 (至少一个) | - |
31
+ | `declaration` | `number` | 否 | 创作申明: 0-暂不申明, 1-AI生成, 2-个人观点, 3-剧情演绎, 7-AI辅助, 8-健康医疗, 9-危险行为 | - |
32
+ | `pubType` | `number` | **是** | 发布类型: 0-草稿, 1-直接发布 | 1 |
33
+
34
+ ## 2. Payload 完整示例
35
+
36
+ ```json
37
+ {
38
+ "action": "publish",
39
+ "publishType": "article",
40
+ "platforms": ["企鹅号"],
41
+ "publishArgs": {
42
+ "accountForms": [
43
+ {
44
+ "platformAccountId": "acc_qh_001",
45
+ "coverKey": "article_cover_key",
46
+ "cover": { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 },
47
+ "contentPublishForm": {
48
+ "formType": "task",
49
+ "title": "这是文章标题",
50
+ "content": "<h1>文章标题</h1><p>正文内容...</p>",
51
+ "covers": [
52
+ { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 }
53
+ ],
54
+ "tags": ["科技", "AI"],
55
+ "declaration": 0,
56
+ "pubType": 1
57
+ }
58
+ }
59
+ ]
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## 3. 复杂对象结构
65
+
66
+ ### 3.1 OldCover (封面对象)
67
+ | 字段名 | 类型 | 说明 |
68
+ | :--- | :--- | :--- |
69
+ | `key` | `string` | OSS 资源 Key |
70
+ | `size` | `number` | 文件大小 (bytes) |
71
+ | `width` | `number` | 宽度 |
72
+ | `height` | `number` | 高度 |
73
+
74
+ ## 相关接口
75
+
76
+ | 目标数据 | 对应 Action | 相关文档 |
77
+ | :--- | :--- | :--- |
78
+ | `covers.key` | `upload` | [资源上传](../../upload-resource.md) |
@@ -0,0 +1,75 @@
1
+ # 搜狐号文章发布参数 (SouHuHao Article)
2
+
3
+ > [!IMPORTANT]
4
+ > **前提条件 (Prerequisite)**:
5
+ > 在使用本平台的特定参数之前,你 **必须** 已经阅读并理解了 [文章发布首页 (Index)](./index.md) 中定义的 Payload 根结构。本页仅描述 `contentPublishForm` 内部的 platform 差异化字段。
6
+
7
+
8
+ ## 触发场景 (Trigger)
9
+ - **意图辨析**:用户指定在“Souhuhao”平台发布文章内容时触发。
10
+ - **典型提示词**:
11
+ - “发布这篇文章到Souhuhao”
12
+ - “并在Souhuhao上同步更新”
13
+
14
+ ## 执行逻辑 (Logic Flow)
15
+ 1. **内容处理**:确保文章正文符合Souhuhao要求的格式。
16
+ 2. **参数装配**:提取标题、正文及封面信息至 `contentPublishForm`。
17
+ 3. **指令执行**:先执行 `yxer validate <platform> <type> <payload.json>`,再执行 `yxer publish <type> <platform> <payload.json> [clientId]`。
18
+
19
+ 本平台文章发布通过 `contentPublishForm` 承载以下参数。
20
+
21
+ ## 1. contentPublishForm 参数定义
22
+
23
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
24
+ | :--- | :--- | :--- | :--- | :--- |
25
+ | `formType` | `string` | **是** | 固定值: `task` | `task` |
26
+ | `title` | `string` | **是** | 文章标题 | - |
27
+ | `content` | `string` | **是** | 文章正文 (HTML 格式) | - |
28
+ | `desc` | `string` | **是** | 文章摘要或描述 | - |
29
+ | `covers` | `Array` | **是** | 文章封面列表 (`OldCover[]`) | - |
30
+ | `pubType` | `number` | **是** | 发布类型: 0-草稿, 1-直接发布 | 1 |
31
+ | `scheduledTime` | `number` | 否 | 定时发布时间 (13 位 Unix 时间戳,单位: 毫秒) | - |
32
+
33
+ ## 2. Payload 完整示例
34
+
35
+ ```json
36
+ {
37
+ "action": "publish",
38
+ "publishType": "article",
39
+ "platforms": ["搜狐号"],
40
+ "publishArgs": {
41
+ "accountForms": [
42
+ {
43
+ "platformAccountId": "acc_sh_001",
44
+ "cover": { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 },
45
+ "contentPublishForm": {
46
+ "formType": "task",
47
+ "title": "这是文章标题",
48
+ "content": "<h1>搜狐号文章</h1><p>正文内容...</p>",
49
+ "desc": "这是文章的摘要",
50
+ "covers": [
51
+ { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 }
52
+ ],
53
+ "pubType": 1
54
+ }
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ ```
60
+
61
+ ## 3. 复杂对象结构说明
62
+
63
+ ### 3.1 OldCover (封面对象)
64
+ | 字段名 | 类型 | 必填 | 说明 |
65
+ | :--- | :--- | :--- | :--- |
66
+ | `key` | `string` | **是** | OSS 资源 Key |
67
+ | `size` | `number` | **是** | 文件大小 (Bytes) |
68
+ | `width` | `number` | **是** | 宽度 |
69
+ | `height` | `number` | **是** | 高度 |
70
+
71
+ ## 相关接口
72
+
73
+ | 目标数据 | 对应 Action | 相关文档 |
74
+ | :--- | :--- | :--- |
75
+ | `covers.key` | `upload` | [资源上传](../../upload-resource.md) |
@@ -0,0 +1,78 @@
1
+ # 头条号文章发布参数 (TouTiaoHao Article)
2
+
3
+ > [!IMPORTANT]
4
+ > **前提条件 (Prerequisite)**:
5
+ > 在使用本平台的特定参数之前,你 **必须** 已经阅读并理解了 [文章发布首页 (Index)](./index.md) 中定义的 Payload 根结构。本页仅描述 `contentPublishForm` 内部的平台差异化字段。
6
+
7
+ ## 触发场景 (Trigger)
8
+ - **意图辨析**:用户指定在“今日头条 (头条号)”发布长文章或新闻资讯,且需要配置如“广告收益 (Advertisement)”、“头条首发”、“地点挂载”或“创作者申明”等头条特有商业与分发逻辑时。
9
+ - **典型提示词**:
10
+ - “发一篇今日头条的文章,开启广告收益模式”
11
+ - “头条文章发布,声明是我的原创首发内容”
12
+ - “在头条文章里加上我所在的物理位置”
13
+ - “帮我同步这个图文到头条号并存为草稿”
14
+
15
+ ## 执行逻辑 (Logic Flow)
16
+ 1. **封面适配**:头条号对封面 (`covers`) 数量有严格要求(1 张或 3 张)。
17
+ 2. **位置检索**:若需精准挂载位置,调用 `locations` 接口获取 DTO。
18
+ 3. **收益装配**:根据意图注入 `advertisement: 3`(赚取收益)或 `2`(不投放广告)。
19
+ 4. **参数装配**:构造 `accountForms[i].contentPublishForm`。
20
+ 5. **指令执行**:先执行 `yxer validate <platform> <type> <payload.json>`,再执行 `yxer publish <type> <platform> <payload.json> [clientId]`。
21
+
22
+ ## 1. contentPublishForm 参数定义
23
+
24
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
25
+ | :--- | :--- | :--- | :--- | :--- |
26
+ | `formType` | `string` | **是** | 固定值: `task` | `task` |
27
+ | `title` | `string` | **是** | 文章标题 (1-50 字符) | - |
28
+ | `content` | `string` | **是** | 文章内容 (HTML 字符串,最多 50000 字符) | - |
29
+ | `covers` | `Array` | **是** | 文章封面列表 (`OldCover[]`, 1-9 张) | - |
30
+ | `isFirst` | `boolean` | 否 | 是否头条首发 | `false` |
31
+ | `location` | `Object` | 否 | 位置对象 (`PlatformDataItem`) | - |
32
+ | `scheduledTime` | `number` | 否 | 定时发布时间 (13 位 Unix 时间戳,单位: 毫秒) | - |
33
+ | `advertisement` | `number` | 否 | 广告投放收益: 2-无收益, 3-投放广告赚收益 | `3` |
34
+ | `declaration`| `number` | 否 | 创作类型 1:自行拍摄 2:取自站外 3:AI生成 6:虚构演绎 7:投资观点 8:健康医疗 | - |
35
+ | `pubType` | `number` | **是** | 发布类型: 0-草稿, 1-直接发布 | 1 |
36
+
37
+ ## 2. Payload 完整示例
38
+
39
+ ```json
40
+ {
41
+ "action": "publish",
42
+ "publishType": "article",
43
+ "platforms": ["头条号"],
44
+ "publishArgs": {
45
+ "accountForms": [
46
+ {
47
+ "platformAccountId": "acc_tt_001",
48
+ "contentPublishForm": {
49
+ "formType": "task",
50
+ "title": "头条号自动化发布演示",
51
+ "content": "<h1>演示</h1><p>正文内容...</p>",
52
+ "covers": [
53
+ { "key": "cover_key_001", "width": 800, "height": 600, "size": 150000 }
54
+ ],
55
+ "advertisement": 3,
56
+ "isFirst": true,
57
+ "pubType": 1
58
+ }
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ ```
64
+
65
+ ## 3. 复杂对象结构说明
66
+
67
+ ### 3.1 OldCover
68
+ 包含 `key`, `size`, `width`, `height`。
69
+
70
+ ### 3.2 PlatformDataItem (位置信息)
71
+ 包含 `yixiaoerId`, `yixiaoerName`, `raw` (必须完整透传)。
72
+
73
+ ## 相关接口
74
+
75
+ | 目标字段 | 对应 Action | 文档参考 |
76
+ | :--- | :--- | :--- |
77
+ | `location` | `locations` | [获取位置信息](../../get-locations.md) |
78
+ | `covers.key`| `upload` | [资源上传](../../upload-resource.md) |
@@ -0,0 +1,79 @@
1
+ # 网易号文章发布参数 (WangYiHao Article)
2
+
3
+ > [!IMPORTANT]
4
+ > **前提条件 (Prerequisite)**:
5
+ > 在使用本平台的特定参数之前,你 **必须** 已经阅读并理解了 [文章发布首页 (Index)](./index.md) 中定义的 Payload 根结构。本页仅描述 `contentPublishForm` 内部的平台差异化字段。
6
+
7
+
8
+ ## 触发场景 (Trigger)
9
+ - **意图辨析**:用户指定在“Wangyihao”平台发布文章内容时触发。
10
+ - **典型提示词**:
11
+ - “发布这篇文章到Wangyihao”
12
+ - “并在Wangyihao上同步更新”
13
+
14
+ ## 执行逻辑 (Logic Flow)
15
+ 1. **内容处理**:确保文章正文符合Wangyihao要求的格式。
16
+ 2. **参数装配**:提取标题、正文及封面信息至 `contentPublishForm`。
17
+ 3. **指令执行**:先执行 `yxer validate <platform> <type> <payload.json>`,再执行 `yxer publish <type> <platform> <payload.json> [clientId]`。
18
+
19
+
20
+ 本平台文章发布通过 `contentPublishForm` 承载以下参数。
21
+
22
+ ## 1. contentPublishForm 参数定义
23
+
24
+ | 字段名 | 类型 | 必填 | 说明 | 默认值 |
25
+ | :--- | :--- | :--- | :--- | :--- |
26
+ | `formType` | `string` | **是** | 固定值: `task` | `task` |
27
+ | `title` | `string` | **是** | 文章标题 | - |
28
+ | `content` | `string` | **是** | 文章内容 (HTML 格式) | - |
29
+ | `covers` | `Array` | **是** | 文章封面列表 (`OldCover[]`) | - |
30
+ | `declaration` | `number` | 否 | 创作申明: 1-AI生成, 2-个人原创, 3-取材网络, 4-虚构演绎 | - |
31
+ | `type`| `number` | 否 | 是否勾选原创: 0-不勾选, 1-勾选 | `0` |
32
+ | `pubType` | `number` | **是** | 发布类型: 0-草稿, 1-直接发布 | 1 |
33
+ | `scheduledTime` | `number` | 否 | 定时发布时间 (13 位 Unix 时间戳,单位: 毫秒) | - |
34
+
35
+ ## 2. Payload 完整示例
36
+
37
+ ```json
38
+ {
39
+ "action": "publish",
40
+ "publishType": "article",
41
+ "platforms": ["网易号"],
42
+ "publishArgs": {
43
+ "accountForms": [
44
+ {
45
+ "platformAccountId": "acc_wy_001",
46
+ "coverKey": "article_cover_key",
47
+ "cover": { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 },
48
+ "contentPublishForm": {
49
+ "formType": "task",
50
+ "title": "这是文章标题",
51
+ "content": "<h1>网易号文章标题</h1><p>内容正文...</p>",
52
+ "covers": [
53
+ { "key": "article_cover_key", "size": 102400, "width": 800, "height": 600 }
54
+ ],
55
+ "declaration": 1,
56
+ "type": 1,
57
+ "pubType": 1
58
+ }
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ ```
64
+
65
+ ## 3. 复杂对象结构说明
66
+
67
+ ### 3.1 OldCover
68
+ | 字段名 | 类型 | 必填 | 说明 |
69
+ | :--- | :--- | :--- | :--- |
70
+ | `key` | `string` | **是** | OSS 资源 Key |
71
+ | `size` | `number` | **是** | 文件大小 (Bytes) |
72
+ | `width` | `number` | **是** | 宽度 |
73
+ | `height` | `number` | **是** | 高度 |
74
+
75
+ ## 相关接口
76
+
77
+ | 目标数据 | 对应 Action | 相关文档 |
78
+ | :--- | :--- | :--- |
79
+ | `covers.key` | `upload` | [资源上传](../../upload-resource.md) |