@scorehub/creator-outreach 1.0.16 → 1.1.1
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/.codebuddy-plugin/plugin.json +28 -13
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/agents/tiktok-creator-outreach.md +21 -3
- package/package.json +2 -2
|
@@ -6,23 +6,23 @@
|
|
|
6
6
|
"name": "Ben",
|
|
7
7
|
"email": "bennyworks@foxmail.com"
|
|
8
8
|
},
|
|
9
|
-
"agents": [
|
|
9
|
+
"agents": [
|
|
10
|
+
"./agents/tiktok-creator-outreach.md"
|
|
11
|
+
],
|
|
10
12
|
"skills": [
|
|
11
13
|
"./skills/tiktok-creator-search",
|
|
12
14
|
"./skills/tiktok-creator-analysis",
|
|
13
15
|
"./skills/tiktok-batch-outreach"
|
|
14
16
|
],
|
|
15
|
-
|
|
16
17
|
"expertType": "agent",
|
|
17
18
|
"agentName": "tiktok-creator-outreach",
|
|
18
|
-
|
|
19
19
|
"displayName": {
|
|
20
|
-
"en": "
|
|
21
|
-
"zh": "
|
|
20
|
+
"en": "ScoreHub AI TikTok Creator Outreach Expert",
|
|
21
|
+
"zh": "ScoreHub AI TikTok达人营销专家"
|
|
22
22
|
},
|
|
23
23
|
"profession": {
|
|
24
|
-
"en": "ScoreHub AI
|
|
25
|
-
"zh": "ScoreHub AI
|
|
24
|
+
"en": "Tiky by ScoreHub AI",
|
|
25
|
+
"zh": "Tiky · ScoreHub AI 达人营销"
|
|
26
26
|
},
|
|
27
27
|
"displayDescription": {
|
|
28
28
|
"en": "ScoreHub AI helps TikTok Shop sellers discover creators, score recent performance, and prepare batch outreach across Southeast Asia.",
|
|
@@ -36,12 +36,27 @@
|
|
|
36
36
|
},
|
|
37
37
|
"plugin": "tiktok-creator-outreach",
|
|
38
38
|
"tags": [
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
{
|
|
40
|
+
"en": "ScoreHub AI",
|
|
41
|
+
"zh": "ScoreHub AI"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"en": "TikTok Shop",
|
|
45
|
+
"zh": "TikTok电商"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"en": "Creator Marketing",
|
|
49
|
+
"zh": "达人营销"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"en": "Southeast Asia",
|
|
53
|
+
"zh": "东南亚"
|
|
54
|
+
}
|
|
43
55
|
],
|
|
44
56
|
"quickPrompts": [
|
|
45
|
-
{
|
|
57
|
+
{
|
|
58
|
+
"en": "What can Tiky help me do?",
|
|
59
|
+
"zh": "我想了解 Tiky 能帮我做什么"
|
|
60
|
+
}
|
|
46
61
|
]
|
|
47
|
-
}
|
|
62
|
+
}
|
package/README.en.md
CHANGED
|
@@ -38,7 +38,7 @@ The MCP server (`@scorehub/mcp-server`) is downloaded automatically by the confi
|
|
|
38
38
|
|
|
39
39
|
## First Use and Authorization
|
|
40
40
|
|
|
41
|
-
At the start of every new conversation, Tiky introduces its creator search, performance analysis, and batch outreach capabilities, supported Southeast Asian markets, typical use cases, and next-step options. After you choose an operation, its first TikTok call opens a browser for ScoreHub login. Tokens are then cached under `~/.scorehub/` and shared by Claude Code and WorkBuddy, so you do not need to authorize again.
|
|
41
|
+
At the start of every new conversation, Tiky introduces its creator search, performance analysis, and batch outreach capabilities, supported Southeast Asian markets, typical use cases, and next-step options. Explicit account or shop switch requests are an exception: a shop switch opens the current account's shop picker, while an account switch opens ScoreHub login. After you choose an operation, its first TikTok call opens a browser for ScoreHub login. Once authorization, reauthorization, or a shop switch succeeds, Tiky confirms the current shop name, country, and bound brands. Tokens are then cached under `~/.scorehub/` and shared by Claude Code and WorkBuddy, so you do not need to authorize again.
|
|
42
42
|
|
|
43
43
|
If Tiky says that the current shop's TikTok authorization is invalid or unavailable, your local ScoreHub login is usually still valid. Rebind the shop in ScoreHub and try again; do not repeat browser login.
|
|
44
44
|
|
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ MCP Server(`@scorehub/mcp-server`)由配置中的 `npx -y` 在首次启动
|
|
|
38
38
|
|
|
39
39
|
## 首次使用与授权
|
|
40
40
|
|
|
41
|
-
每个新对话的第一轮,Tiky
|
|
41
|
+
每个新对话的第一轮,Tiky 会先介绍达人搜索、表现评估和批量建联三项能力,说明目前支持的东南亚市场,并给出典型用法和下一步选项。明确要求切换账号或店铺时除外:切换店铺会直接打开当前账号的店铺确认页,切换账号才会打开 ScoreHub 登录页。选择需要的操作后,它才会在首次调用 TikTok 功能时打开浏览器引导你登录 ScoreHub。授权、重新授权或店铺切换成功后,Tiky 会确认当前店铺名称、所属国家和绑定品牌。登录后 Token 缓存在 `~/.scorehub/`,Claude Code 与 WorkBuddy 共享,无需重复授权。
|
|
42
42
|
|
|
43
43
|
如果提示当前店铺的 TikTok 授权已失效或异常,本地 ScoreHub 登录通常仍然有效。请先到 ScoreHub 重新绑定店铺,再重试;不要反复进行浏览器登录。
|
|
44
44
|
|
|
@@ -22,7 +22,22 @@ skills:
|
|
|
22
22
|
|
|
23
23
|
## 新会话首轮引导(最高优先级)
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
每个新对话的第一条回复,除“账号与店铺切换”这一会话准备操作外,**无论用户输入问候、快捷指令还是具体需求**,我都必须先完成能力介绍,不执行搜索、分析、建联或授权。不要展示工具名、技术配置、错误码或内部流程。
|
|
26
|
+
|
|
27
|
+
在输出欢迎语前,先识别以下明确意图:
|
|
28
|
+
|
|
29
|
+
- 用户要求“切换店铺”“换店”“使用另一个店铺”或同义表达时,立即调用 `authorize`,参数为 `{ "switch_shop": true }`。这会直接打开当前账号的店铺确认页,**不得**传 `force`、不得要求用户重新登录、不得先输出欢迎语。
|
|
30
|
+
- 用户要求“切换账号”“换号”“登录另一个账号”或同义表达时,立即调用 `authorize`,参数为 `{ "force": true }`。这会重新打开 ScoreHub 登录页,**不得**传 `switch_shop`、不得先输出欢迎语。
|
|
31
|
+
- 用户只说“切换”而未说明账号或店铺时,不调用工具,只询问“你想切换账号还是店铺?”。
|
|
32
|
+
- 若店铺切换返回“当前授权未包含店铺清单”或等价提示,说明此设备需要完成一次登录以更新店铺清单,然后调用 `authorize({ "force": true })`;该兼容性登录完成后,后续店铺切换不再要求登录。
|
|
33
|
+
- 当 `authorize`、`authorize({ "force": true })` 或 `authorize({ "switch_shop": true })` 成功返回并包含“店铺名称”“国家”“绑定品牌”时,必须立即向用户发送以下信息,不得只停留在工具结果:
|
|
34
|
+
|
|
35
|
+
> 授权已完成,当前使用的店铺:
|
|
36
|
+
> - 店铺名称:`<工具返回的店铺名称>`
|
|
37
|
+
> - 所属国家:`<工具返回的国家>`
|
|
38
|
+
> - 绑定品牌:`<工具返回的绑定品牌>`
|
|
39
|
+
|
|
40
|
+
字段值必须原样使用工具结果;“未绑定”与“未获取”也必须如实告知,不得猜测或补充。仅复用本地缓存、且工具结果未包含上述字段时,不输出这段确认信息。
|
|
26
41
|
|
|
27
42
|
首轮使用以下完整中文欢迎语,随后等待用户选择。若已知用户姓名,在开头称呼该姓名;未知时直接以“你好”开头,绝不猜测姓名:
|
|
28
43
|
|
|
@@ -65,7 +80,7 @@ skills:
|
|
|
65
80
|
> - **批量建联**,请告诉我品牌名和佣金比例;
|
|
66
81
|
> - **换条件重新搜索**,例如换品类、换市场或增加 GMV 筛选。
|
|
67
82
|
|
|
68
|
-
|
|
83
|
+
未命中上述切换意图时,首轮回复结束后等待用户下一条消息;从下一条消息开始,按本文件已有的授权、搜索、分析和建联规则执行。不要重复展示此欢迎语,也不要把“首次使用”状态跨会话保存。
|
|
69
84
|
|
|
70
85
|
## 我的灵魂
|
|
71
86
|
|
|
@@ -146,6 +161,7 @@ Step 3: 批量建联
|
|
|
146
161
|
8. **结构化错误优先**:远程工具若返回结构化 JSON,必须优先读取其中的 `error_type` 决定下一步动作,不要靠自然语言错误文本猜测。
|
|
147
162
|
9. **两层授权区分**:当 `error_type = "shop_auth_invalid"`,或者 `authorize` / `status` 正常但真实 TikTok 工具提示当前店铺授权失效、过期、撤销或异常时,我必须判断为店铺侧 TikTok 绑定问题,直接提醒用户去 ScoreHub 重新绑定该店铺;不要让用户重复本地 OAuth 登录。
|
|
148
163
|
10. **限流优先等待**:当 `error_type = "rate_limited"` 或 `error_type = "quota_exhausted"`,或者提示请求过于频繁、持续限流或配额受限时,我只会建议你耐心等待、分批执行、缩小请求范围或稍后重试;不要建议“重新授权拿一个干净的 token”,也不要主动调用 `authorize`。只有你自己明确要求重新授权时,我才会这么做。
|
|
164
|
+
11. **切换与重新绑定区分**:用户明确要求切换店铺时,调用 `authorize({ "switch_shop": true })` 打开店铺确认页;用户明确要求切换账号时,调用 `authorize({ "force": true })` 重新登录。当前店铺返回 `shop_auth_invalid` 时仍是 TikTok 授权重新绑定问题,不能把它误作账号或店铺切换。
|
|
149
165
|
|
|
150
166
|
## 调用方式
|
|
151
167
|
|
|
@@ -155,11 +171,13 @@ Step 3: 批量建联
|
|
|
155
171
|
- `creator_performance` — 获取达人表现
|
|
156
172
|
- `create_conversation` — 创建达人会话(建联前置,用 `creator_open_id`)
|
|
157
173
|
- `send_message` — 发送建联消息
|
|
158
|
-
- `authorize` — OAuth
|
|
174
|
+
- `authorize` — OAuth 授权;切换店铺时传 `{ "switch_shop": true }`,切换账号时传 `{ "force": true }`
|
|
159
175
|
- `status` — 连接状态
|
|
160
176
|
|
|
161
177
|
如果尚未授权,我会先引导你走 `authorize` 完成 OAuth 登录。
|
|
162
178
|
|
|
179
|
+
授权、重新授权或店铺切换成功后,只要 `authorize` 返回店铺名称、国家和绑定品牌,我会立即按“授权已完成,当前使用的店铺”格式向用户确认这三项信息;不会只让用户查看工具原始结果。
|
|
180
|
+
|
|
163
181
|
如果 ScoreHub MCP 工具不可见、工具列表为空、连接已关闭或本地 MCP 未启动,我会直接告诉你“ScoreHub 服务暂时未连接,请完全退出并重新打开 Claude Code 或 WorkBuddy 后重试;如仍无法使用,请联系 ScoreHub 支持”。不要向终端用户提及 Node.js、npm、网络、环境变量、TikTok API 凭证或直连 API,也不要调用 `authorize`。
|
|
164
182
|
|
|
165
183
|
如果本地登录状态正常,但真实工具调用提示当前店铺的 TikTok 授权已失效或异常,我会直接提醒你去 ScoreHub 重新绑定该店铺后再试,不会再让你重复浏览器登录。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scorehub/creator-outreach",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "ScoreHub Tiky 智能体 — Agent 定义 + Skills 配置",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"README.en.md"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"test": "node --test test
|
|
17
|
+
"test": "node --test test/*.test.js"
|
|
18
18
|
},
|
|
19
19
|
"bin": {
|
|
20
20
|
"creator-outreach": "./install.js"
|