@scorehub/creator-outreach 1.0.4 → 1.0.5

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 (3) hide show
  1. package/README.md +13 -11
  2. package/install.js +70 -12
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -6,30 +6,32 @@ TikTok 达人建联 WorkBuddy 智能体。支持按 GMV/类目/粉丝画像搜
6
6
 
7
7
  ## 安装
8
8
 
9
- ### Claude Code / Claude Desktop(一键安装)
9
+ ### 一键安装(Claude Code + WorkBuddy)
10
10
 
11
11
  ```bash
12
12
  npx @scorehub/creator-outreach
13
13
  ```
14
14
 
15
- 自动完成:
15
+ 自动检测并安装到已安装的 AI 客户端:
16
+
17
+ **Claude Code / Claude Desktop:**
16
18
  - 将 Tiky Agent 定义复制到 `~/.claude/agents/`
17
19
  - 将 ScoreHub MCP Server 配置写入 `~/.claude.json`
18
20
 
19
- 重启 Claude Code 后,通过 `@tiktok-creator-outreach` 唤起 Tiky。
21
+ **WorkBuddy 桌面版(检测到 `~/.workbuddy/` 时自动安装):**
22
+ - 将插件文件复制到 `~/.workbuddy/plugins/.../`
23
+ - 将 ScoreHub MCP Server 配置写入 `~/.workbuddy/mcp.json`
20
24
 
21
- ### WorkBuddy 桌面版
25
+ 重启客户端后使用 Tiky:
26
+ - Claude Code:`@tiktok-creator-outreach`
27
+ - WorkBuddy:在 Agent 列表中选择 "Tiky — TikTok Creator Outreach"
22
28
 
23
- 在插件安装入口输入以下任意一种地址:
29
+ ### WorkBuddy 插件市场(备选)
24
30
 
25
- **npmjs(推荐)**
26
- ```
27
- @scorehub/creator-outreach
28
- ```
31
+ 在插件安装入口输入地址:
29
32
 
30
- **GitHub**
31
33
  ```
32
- https://github.com/ScoreHub-AI/creator-outreach
34
+ @scorehub/creator-outreach
33
35
  ```
34
36
 
35
37
  ## 前提条件
package/install.js CHANGED
@@ -4,6 +4,7 @@ const fs = require('fs');
4
4
  const path = require('path');
5
5
  const os = require('os');
6
6
 
7
+ // === Claude Code 路径 ===
7
8
  const CLAUDE_DIR = path.join(os.homedir(), '.claude');
8
9
  const AGENTS_DIR = path.join(CLAUDE_DIR, 'agents');
9
10
  const CLAUDE_JSON = path.join(os.homedir(), '.claude.json');
@@ -11,6 +12,14 @@ const CLAUDE_JSON = path.join(os.homedir(), '.claude.json');
11
12
  const AGENT_SRC = path.join(__dirname, 'agents', 'tiktok-creator-outreach.md');
12
13
  const AGENT_DEST = path.join(AGENTS_DIR, 'tiktok-creator-outreach.md');
13
14
 
15
+ // === WorkBuddy 路径 ===
16
+ const WORKBUDDY_DIR = path.join(os.homedir(), '.workbuddy');
17
+ const WORKBUDDY_PLUGIN_DIR = path.join(
18
+ WORKBUDDY_DIR, 'plugins', 'marketplaces', 'my-experts', 'plugins', 'tiktok-creator-outreach',
19
+ );
20
+ const WORKBUDDY_MCP_JSON = path.join(WORKBUDDY_DIR, 'mcp.json');
21
+
22
+ // === 共享 MCP 配置 ===
14
23
  const MCP_CONFIG = {
15
24
  type: 'stdio',
16
25
  command: 'npx',
@@ -20,26 +29,75 @@ const MCP_CONFIG = {
20
29
  },
21
30
  };
22
31
 
32
+ // 工具函数:合并 MCP Server 配置到 JSON 文件
33
+ function mergeMcpConfig(configPath, serverName, serverConfig, extraFields) {
34
+ let config = {};
35
+ if (fs.existsSync(configPath)) {
36
+ try {
37
+ config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
38
+ } catch {
39
+ console.warn(`警告:${configPath} 解析失败,将重新写入`);
40
+ }
41
+ }
42
+
43
+ config.mcpServers = config.mcpServers || {};
44
+ config.mcpServers[serverName] = Object.assign({}, serverConfig, extraFields);
45
+
46
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
47
+ }
48
+
49
+ // ========== Claude Code ==========
50
+
23
51
  // 1. 复制 Agent 定义文件
24
52
  fs.mkdirSync(AGENTS_DIR, { recursive: true });
25
53
  fs.copyFileSync(AGENT_SRC, AGENT_DEST);
26
- console.log(`✓ Agent 已安装: ${AGENT_DEST}`);
54
+ console.log(`✓ Claude Code: Agent 已安装 → ${AGENT_DEST}`);
27
55
 
28
56
  // 2. 合并 MCP Server 配置到 ~/.claude.json
29
- let claudeConfig = {};
30
- if (fs.existsSync(CLAUDE_JSON)) {
31
- try {
32
- claudeConfig = JSON.parse(fs.readFileSync(CLAUDE_JSON, 'utf8'));
33
- } catch {
34
- console.warn(`警告:${CLAUDE_JSON} 解析失败,将重新写入`);
57
+ mergeMcpConfig(CLAUDE_JSON, 'scorehub', MCP_CONFIG, {});
58
+ console.log(`✓ Claude Code: MCP Server 已配置 → ${CLAUDE_JSON}`);
59
+
60
+ // ========== WorkBuddy ==========
61
+
62
+ const hasWorkBuddy = fs.existsSync(WORKBUDDY_DIR);
63
+
64
+ if (hasWorkBuddy) {
65
+ // 3. 复制插件文件到 WorkBuddy 插件目录
66
+ const pluginDirs = ['.codebuddy-plugin', 'agents', 'skills', 'avatars'];
67
+ const pluginFiles = ['package.json', 'README.md'];
68
+
69
+ fs.mkdirSync(WORKBUDDY_PLUGIN_DIR, { recursive: true });
70
+
71
+ for (const dir of pluginDirs) {
72
+ const src = path.join(__dirname, dir);
73
+ const dest = path.join(WORKBUDDY_PLUGIN_DIR, dir);
74
+ if (fs.existsSync(src)) {
75
+ fs.cpSync(src, dest, { recursive: true });
76
+ }
77
+ }
78
+
79
+ for (const file of pluginFiles) {
80
+ const src = path.join(__dirname, file);
81
+ const dest = path.join(WORKBUDDY_PLUGIN_DIR, file);
82
+ if (fs.existsSync(src)) {
83
+ fs.copyFileSync(src, dest);
84
+ }
35
85
  }
86
+
87
+ console.log(`✓ WorkBuddy: 插件文件已安装 → ${WORKBUDDY_PLUGIN_DIR}`);
88
+
89
+ // 4. 合并 MCP Server 配置到 ~/.workbuddy/mcp.json
90
+ mergeMcpConfig(WORKBUDDY_MCP_JSON, 'scorehub', MCP_CONFIG, { disabled: false });
91
+ console.log(`✓ WorkBuddy: MCP Server 已配置 → ${WORKBUDDY_MCP_JSON}`);
36
92
  }
37
93
 
38
- claudeConfig.mcpServers = claudeConfig.mcpServers || {};
39
- claudeConfig.mcpServers.scorehub = MCP_CONFIG;
94
+ // ========== 完成 ==========
40
95
 
41
- fs.writeFileSync(CLAUDE_JSON, JSON.stringify(claudeConfig, null, 2) + '\n');
42
- console.log(`✓ MCP Server 已配置: ${CLAUDE_JSON}`);
96
+ const platforms = ['Claude Code'];
97
+ if (hasWorkBuddy) platforms.push('WorkBuddy');
43
98
 
44
- console.log('\n安装完成!重启 Claude Code 后,使用 @tiktok-creator-outreach 唤起 Tiky。');
99
+ console.log(`\n安装完成!重启 ${platforms.join(' / ')} 后使用 Tiky。`);
100
+ if (!hasWorkBuddy) {
101
+ console.log('提示:未检测到 WorkBuddy,仅安装了 Claude Code。如需 WorkBuddy 支持请先安装 WorkBuddy 后重新运行本命令。');
102
+ }
45
103
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scorehub/creator-outreach",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "ScoreHub Tiky 智能体 — Agent 定义 + Skills 配置",
5
5
  "files": [
6
6
  ".codebuddy-plugin",