@geoly-ai/social-hub-cli 0.1.3 → 0.1.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.
@@ -120,12 +120,18 @@ export function registerAgentContext(program) {
120
120
  .requiredOption("--account <ref>", "账号 UUID 或 handle")
121
121
  .option("--industry <key>", "行业 key")
122
122
  .option("--limit <n>", "条数", "50")
123
+ .option("--persona-aware <bool>", "按系统人设解析候选池", "true")
124
+ .option("--tier <tier>", "starter|advanced|all", "all")
125
+ .option("--include-debug", "输出 personaPools / fallback")
123
126
  .action(async (opts) => {
124
127
  await withCliErrorBoundary(async () => {
125
128
  const teamId = resolveTeamId(opts.team);
126
129
  const res = await requireClient().listAccountPools(teamId, opts.account, {
127
130
  industry: opts.industry,
128
131
  limit: Number(opts.limit),
132
+ personaAware: opts.personaAware !== "false",
133
+ tier: opts.tier,
134
+ includeDebug: Boolean(opts.includeDebug),
129
135
  });
130
136
  printResult(res);
131
137
  });
@@ -137,6 +143,9 @@ export function registerAgentContext(program) {
137
143
  .option("--industry <key>", "行业 key")
138
144
  .option("--action <action>", "动作类型")
139
145
  .option("--limit <n>", "条数", "30")
146
+ .option("--persona-aware <bool>", "按系统人设解析候选池", "true")
147
+ .option("--tier <tier>", "starter|advanced|all", "all")
148
+ .option("--include-debug", "输出 personaPools / diversity / fallback", true)
140
149
  .action(async (opts) => {
141
150
  await withCliErrorBoundary(async () => {
142
151
  const teamId = resolveTeamId(opts.team);
@@ -144,6 +153,9 @@ export function registerAgentContext(program) {
144
153
  industry: opts.industry,
145
154
  action: opts.action,
146
155
  limit: Number(opts.limit),
156
+ personaAware: opts.personaAware !== "false",
157
+ tier: opts.tier,
158
+ includeDebug: opts.includeDebug !== false,
147
159
  });
148
160
  printResult(res);
149
161
  });
@@ -1 +1 @@
1
- {"version":3,"file":"register-ops.js","sourceRoot":"","sources":["../src/register-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-ops.js","sourceRoot":"","sources":["../src/register-ops.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ export declare const PACKAGE_NAME = "@geoly-ai/social-hub-cli";
2
+ export declare function shouldSkipUpdateCheck(argv: string[]): boolean;
1
3
  export declare function isNewerVersion(latest: string, current: string): boolean;
4
+ export declare function formatUpgradeCommand(latest: string): string;
5
+ /** Human + agent-facing lines when registry latest > installed CLI. */
6
+ export declare function formatUpdateNoticeLines(current: string, latest: string): string[];
2
7
  export declare function maybeNotifyUpdate(argv?: string[]): Promise<void>;
3
8
  //# sourceMappingURL=update-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AA+BA,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAavE;AA8DD,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBpF"}
1
+ {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,6BAA6B,CAAC;AAYvD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAW7D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAavE;AA+CD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAUjF;AAMD,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBpF"}
@@ -3,13 +3,13 @@ import { homedir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import { isRunningViaNpx } from "./skills/paths.js";
5
5
  import { getCliVersion } from "./version-info.js";
6
- const PACKAGE_NAME = "@geoly-ai/social-hub-cli";
6
+ export const PACKAGE_NAME = "@geoly-ai/social-hub-cli";
7
7
  const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME.replace("/", "%2F")}/latest`;
8
8
  const CACHE_TTL_MS = 24 * 60 * 60 * 1000;
9
9
  const FETCH_TIMEOUT_MS = 2_000;
10
10
  const CACHE_DIR = join(homedir(), ".config", "geoly");
11
11
  const CACHE_FILE = join(CACHE_DIR, "social-hub-update-check.json");
12
- function shouldSkipUpdateCheck(argv) {
12
+ export function shouldSkipUpdateCheck(argv) {
13
13
  if (process.env["SOCIAL_HUB_NO_UPDATE_CHECK"] === "1")
14
14
  return true;
15
15
  if (process.env["CI"] === "true" || process.env["CI"] === "1")
@@ -81,17 +81,25 @@ async function fetchLatestVersion() {
81
81
  clearTimeout(timer);
82
82
  }
83
83
  }
84
- function printUpdateNotice(current, latest) {
85
- const upgradeLine = isRunningViaNpx()
86
- ? `Run npx ${PACKAGE_NAME}@${latest} … to upgrade`
87
- : `Run npm update -g ${PACKAGE_NAME} to upgrade`;
88
- process.stderr.write([
84
+ export function formatUpgradeCommand(latest) {
85
+ return isRunningViaNpx()
86
+ ? `npx ${PACKAGE_NAME}@${latest}`
87
+ : `npm install -g ${PACKAGE_NAME}@${latest}`;
88
+ }
89
+ /** Human + agent-facing lines when registry latest > installed CLI. */
90
+ export function formatUpdateNoticeLines(current, latest) {
91
+ const upgradeCmd = formatUpgradeCommand(latest);
92
+ return [
89
93
  "",
90
- `Update available ${current} → ${latest}`,
91
- upgradeLine,
92
- `After upgrading CLI, run: social-hub skills update --yes`,
94
+ `[social-hub] Update available: ${current} → ${latest}`,
95
+ `[social-hub] Upgrade CLI: ${upgradeCmd}`,
96
+ "[social-hub] Then refresh skills: social-hub skills update --yes",
97
+ "[social-hub] Agent: tell the user a newer CLI is available; run the commands above before relying on new flags or skill docs.",
93
98
  "",
94
- ].join("\n"));
99
+ ];
100
+ }
101
+ function printUpdateNotice(current, latest) {
102
+ process.stderr.write(formatUpdateNoticeLines(current, latest).join("\n"));
95
103
  }
96
104
  export async function maybeNotifyUpdate(argv = process.argv) {
97
105
  if (shouldSkipUpdateCheck(argv))
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,47 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { isNewerVersion } from "./update-check.js";
2
+ import { formatUpdateNoticeLines, formatUpgradeCommand, isNewerVersion, shouldSkipUpdateCheck, } from "./update-check.js";
3
+ describe("shouldSkipUpdateCheck", () => {
4
+ it("skips when env SOCIAL_HUB_NO_UPDATE_CHECK=1", () => {
5
+ const prev = process.env["SOCIAL_HUB_NO_UPDATE_CHECK"];
6
+ process.env["SOCIAL_HUB_NO_UPDATE_CHECK"] = "1";
7
+ try {
8
+ expect(shouldSkipUpdateCheck(["node", "cli", "doctor"])).toBe(true);
9
+ }
10
+ finally {
11
+ if (prev === undefined)
12
+ delete process.env["SOCIAL_HUB_NO_UPDATE_CHECK"];
13
+ else
14
+ process.env["SOCIAL_HUB_NO_UPDATE_CHECK"] = prev;
15
+ }
16
+ });
17
+ it("skips version and help subcommands", () => {
18
+ expect(shouldSkipUpdateCheck(["node", "cli", "version"])).toBe(true);
19
+ expect(shouldSkipUpdateCheck(["node", "cli", "--version"])).toBe(true);
20
+ expect(shouldSkipUpdateCheck(["node", "cli", "help", "doctor"])).toBe(true);
21
+ });
22
+ it("skips when --no-update-check is present", () => {
23
+ expect(shouldSkipUpdateCheck(["node", "cli", "--no-update-check", "doctor"])).toBe(true);
24
+ expect(shouldSkipUpdateCheck(["node", "cli", "doctor", "--no-update-check"])).toBe(true);
25
+ });
26
+ it("runs check for normal commands", () => {
27
+ expect(shouldSkipUpdateCheck(["node", "cli", "doctor"])).toBe(false);
28
+ expect(shouldSkipUpdateCheck(["node", "cli", "health"])).toBe(false);
29
+ });
30
+ });
31
+ describe("formatUpdateNoticeLines", () => {
32
+ it("includes upgrade and skills refresh hints", () => {
33
+ const lines = formatUpdateNoticeLines("0.1.4", "0.1.5");
34
+ expect(lines.join("\n")).toContain("0.1.4 → 0.1.5");
35
+ expect(lines.join("\n")).toContain("social-hub skills update --yes");
36
+ expect(lines.join("\n")).toMatch(/Agent:/);
37
+ });
38
+ });
39
+ describe("formatUpgradeCommand", () => {
40
+ it("returns npm global install by default", () => {
41
+ expect(formatUpgradeCommand("0.2.0")).toContain("npm install -g");
42
+ expect(formatUpgradeCommand("0.2.0")).toContain("@0.2.0");
43
+ });
44
+ });
3
45
  describe("isNewerVersion", () => {
4
46
  it("detects patch bump", () => {
5
47
  expect(isNewerVersion("0.0.2", "0.0.1")).toBe(true);
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.test.js","sourceRoot":"","sources":["../src/update-check.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"update-check.test.js","sourceRoot":"","sources":["../src/update-check.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geoly-ai/social-hub-cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "description": "social-hub CLI for Social Ops Hub",
6
6
  "repository": {
@@ -22,7 +22,7 @@
22
22
  "dependencies": {
23
23
  "commander": "^12.1.0",
24
24
  "@geoly-ai/social-hub-authz": "0.0.3",
25
- "@geoly-ai/social-hub-sdk": "0.0.12"
25
+ "@geoly-ai/social-hub-sdk": "0.0.13"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.10.2",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
3
  "package": "social-ops-hub",
4
- "cliVersion": "0.1.3",
4
+ "cliVersion": "0.1.5",
5
5
  "repository": "social-ops-hub",
6
6
  "publish": {
7
7
  "registry": "https://skill.sh",
@@ -111,7 +111,8 @@ Web 控制台:**人设库** 导航项(`#personas`),需 `systemPersona.li
111
111
 
112
112
  ```bash
113
113
  social-hub api-keys list -t <team-id>
114
- social-hub api-keys create -t <team-id> -j '{"name":"integration","role":"manager"}' --apply
114
+ social-hub api-keys create -t <team-id> -j '{"name":"client-scope","role":"client","visibleBrandIds":["<brand-uuid>"]}' --apply
115
+ # legacy:visibleCampaignIds 仍支持,新 client scope 优先 visibleBrandIds
115
116
  social-hub api-keys delete -t <team-id> --key <uuid> --apply
116
117
  social-hub api-keys rotate -t <team-id> --key <uuid> --apply
117
118
  social-hub api-keys batch-revoke -t <team-id> -j '{"apiKeyIds":["uuid1"]}' --apply
@@ -123,3 +124,5 @@ social-hub permissions-update -t <team-id> -j '{...}'
123
124
 
124
125
  - **API Key**:集成/服务端密钥管理;Agent 日常仍用 Device Code(见 `social-hub-shared`)
125
126
  - admin 写操作建议先 `--dry-run` 再 `--apply`
127
+ - `api-keys delete` / `batch-revoke` / `batch-rotate`:**必须** `--apply`;先 `list` 核对 key id
128
+ - `members remove` / `invites revoke`:破坏性,先确认 user/email
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: social-hub-calendar-jobs
3
3
  description: >-
4
- 发布日历与调度任务:social-hub calendar list/patch/list-full、jobs list/create/batch/
5
- summary/retry/cancel/list-full。用户要排期、查 scheduled job、重试失败任务、取消任务时用本 skill
6
- Agent 执行态回填优先 ops-runtime
4
+ 发布日历条目与调度任务:calendar list/patch/list-full、jobs list/create/batch/retry/cancel。
5
+ 用户要查/改日历条目、管理 scheduled job、重试或取消任务时用本 skill。不用于创建草稿/计划
6
+ (social-hub-publishing)或 ops claim/complete(social-hub-ops-runtime)。
7
7
  metadata:
8
8
  cliVersion: ">=0.0.12"
9
9
  ---
@@ -16,7 +16,7 @@ metadata:
16
16
  ## 日历
17
17
 
18
18
  ```bash
19
- social-hub calendar list -t <team-id> [--status scheduled]
19
+ social-hub calendar list -t <team-id> [--brand <brand-uuid>] [--status scheduled]
20
20
  social-hub calendar list-full -t <team-id> --account <accountId> --status scheduled
21
21
  social-hub calendar patch -t <team-id> -e <entryId> --body '{"status":"succeeded","permalink":"..."}'
22
22
  ```
@@ -6,7 +6,7 @@ description: >-
6
6
  openclaw、调度任务、互动事件,或要在 Hub 里查/改运营数据,就应使用本 skill 做路由。
7
7
  执行任何命令前必须先读 social-hub-shared 完成 auth login 与 context。
8
8
  metadata:
9
- cliVersion: ">=0.0.12"
9
+ cliVersion: ">=0.1.4"
10
10
  homepage: https://github.com/geoly-ai/geoly-reddit/tree/main/social-ops-hub/skills
11
11
  ---
12
12
 
@@ -47,6 +47,12 @@ social-hub version --json
47
47
 
48
48
  命中上表场景时,**打开对应领域 skill**;不要在总路由里重复展开领域命令细节。
49
49
 
50
+ ## CLI 新版本提醒
51
+
52
+ 运行任意子命令时(`version`/`help` 除外),CLI 会检测 npm 上的最新版并在 stderr 提示升级;**Agent 应转告用户** 并执行 `social-hub skills update --yes`。详见 `social-hub-shared` 的「CLI 新版本检测」。
53
+
54
+ 跳过:`SOCIAL_HUB_NO_UPDATE_CHECK=1` 或根级 `--no-update-check`。
55
+
50
56
  ## 安装 CLI 与 Skill
51
57
 
52
58
  ```bash
@@ -5,19 +5,31 @@
5
5
  "id": 0,
6
6
  "prompt": "我要连生产 Social Ops Hub(https://reddit.eclick-geo.com/api),用 social-hub 登录并确认当前身份和 team,然后在 Hub 里注册一个新团队 my-ops-team(slug 也是 my-ops-team),给这个团队添加管理员用户 ops@example.com,最后确认团队列表里有 my-ops-team。不要用 SOCIAL_HUB_API_KEY 环境变量。",
7
7
  "expected_output": "先读 social-hub-shared:auth login、auth whoami、context use;再读 social-hub-admin:agent-teams create、users system-create 或 agent-teams add-member、agent-teams list;全程 Device Code 凭证",
8
- "assertions": []
8
+ "assertions": [
9
+ { "type": "must_include", "value": "social-hub-shared" },
10
+ { "type": "must_include", "value": "auth login" },
11
+ { "type": "forbidden_pattern", "value": "SOCIAL_HUB_API_KEY" },
12
+ { "type": "forbidden_pattern", "value": "campaigns create" }
13
+ ]
9
14
  },
10
15
  {
11
16
  "id": 1,
12
17
  "prompt": "Reddit 账号 u/example_user 刚在 r/LocalLLaMA 发帖,permalink 是 https://www.reddit.com/r/LocalLLaMA/comments/abc123/test_post/,日历条目 def456-uuid。我已在生产 Hub auth login 并 context use 了 team。帮我把日历标 succeeded、写 post.published 事件,并查该账号最近事件。优先 ops complete,若需手动则 calendar patch + events append。",
13
18
  "expected_output": "路由 social-hub-ops-runtime 或 social-hub-events-observability + social-hub-calendar-jobs;不要求 SOCIAL_HUB_API_KEY",
14
- "assertions": []
19
+ "assertions": [
20
+ { "type": "must_include_any", "values": ["social-hub-ops-runtime", "ops complete"] },
21
+ { "type": "forbidden_pattern", "value": "SOCIAL_HUB_API_KEY" }
22
+ ]
15
23
  },
16
24
  {
17
25
  "id": 2,
18
26
  "prompt": "查生产 Hub 里 r/Entrepreneur 按 score 前 5 热帖,给账号 ghi789-uuid 派发 engage 任务,runAt 2026-05-07T01:00:00Z,并确认 jobs 列表有新任务。我已 social-hub auth login 到 reddit.eclick-geo.com。",
19
27
  "expected_output": "路由 social-hub-intelligence:hot-posts、dispatch;social-hub-calendar-jobs:jobs list",
20
- "assertions": []
28
+ "assertions": [
29
+ { "type": "must_include", "value": "social-hub-intelligence" },
30
+ { "type": "must_include", "value": "dispatch" },
31
+ { "type": "forbidden_pattern", "value": "campaigns create" }
32
+ ]
21
33
  }
22
34
  ]
23
35
  }
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: social-hub-events-observability
3
3
  description: >-
4
- 互动事件与可观测性:social-hub events append/list/batch/export-csv、dashboard summary、
5
- audit list、reports list/create/ingest。用户要记事件、查运营总览、审计日志或报告库时用本 skill
4
+ 互动事件与可观测性:events append/list/export、dashboard summary、audit、reports。
5
+ 用户要记事件、查运营总览、审计或报告库时用本 skill。不用于草稿/计划创建(social-hub-publishing)
6
+ 或 OpenClaw 任务 claim(social-hub-ops-runtime)。
6
7
  metadata:
7
8
  cliVersion: ">=0.0.12"
8
9
  ---
@@ -22,15 +23,28 @@ social-hub events list -t <team-id> -n 20
22
23
  social-hub events list-full -t <team-id> --account <uuid> --type post.published -n 100
23
24
  social-hub events batch -t <team-id> -j '{"events":[{"type":"comment","externalRef":"evt_1","payload":{}}]}'
24
25
  social-hub events export-csv -t <team-id> [--account <uuid>] [--type <eventType>] [-n 500]
25
- social-hub events import-openclaw-history -t <team-id> -j '{"mode":"dry-run","sourceRoot":"..."}'
26
26
  ```
27
27
 
28
+ ### OpenClaw 历史导入(注意参数)
29
+
30
+ ```bash
31
+ # 先 dry-run 预览,再正式导入
32
+ social-hub events import-openclaw-history -t <team-id> -f /path/to/history.jsonl --dry-run
33
+ social-hub events import-openclaw-history -t <team-id> -f /path/to/history.jsonl
34
+ # 可选:--no-auto-mark 跳过自动标记
35
+ ```
36
+
37
+ **不要**使用 `-j` 传文件路径;文件路径用 **`-f <path>`**。
38
+
28
39
  ## 运营总览
29
40
 
30
41
  ```bash
31
42
  social-hub dashboard summary -t <team-id>
43
+ social-hub dashboard summary -t <team-id> --brand <brand-uuid>
32
44
  ```
33
45
 
46
+ `--campaign` 为 legacy 筛选;新流程用 `--brand`。
47
+
34
48
  ## 审计日志
35
49
 
36
50
  ```bash
@@ -45,10 +59,16 @@ social-hub reports create -t <team-id> -j '{"reportType":"content-weekly","title
45
59
  social-hub reports ingest -t <team-id> -j '{"reportType":"content-weekly","source":"external","traceId":"..."}'
46
60
  ```
47
61
 
48
- 离线 `content-ideas.md` / `content-ideas-weekly-report-*.md` 在线写入请用 **`reportType: "content-weekly"`**(无独立 `content-ideas` CLI)。
62
+ ## 写操作护栏
63
+
64
+ | 操作 | 要求 |
65
+ |------|------|
66
+ | `events batch` | 先小批量或 `list` 抽样;确认 payload 结构 |
67
+ | `events import-openclaw-history` | **必须**先 `--dry-run`;`-f` 指向可读 JSONL |
68
+ | `reports create` | 确认 `reportType` 与 team 权限 |
49
69
 
50
70
  ## 相关 skill
51
71
 
52
72
  - 发布闭环:`social-hub-publishing`
53
73
  - 图谱追溯:`social-hub-graph-compliance`
54
- - 批量导出/回放:`social-hub-migration`(`export events-jsonl`、`runbook replay`)
74
+ - 批量导出/回放:`social-hub-migration`
@@ -85,11 +85,13 @@ social-hub intelligence dispatch -t <team-id> -j '{
85
85
 
86
86
  ## 板块候选(Hub DB)
87
87
 
88
- 不要猜账号可发哪些 subreddit
88
+ 不要猜账号可发哪些 subreddit;细节见 **`social-hub-openclaw-context`**:
89
89
 
90
90
  ```bash
91
- social-hub query account-pools -t <team-id> --account <ref>
92
- social-hub query subreddit-candidates -t <team-id> --account <ref> --action publish_post
91
+ social-hub query account-pools -t <team-id> --account <ref> \
92
+ --persona-aware true --tier all
93
+ social-hub query subreddit-candidates -t <team-id> --account <ref> \
94
+ --action comment --include-debug
93
95
  ```
94
96
 
95
97
  WebSocket `runs/ws` 为 watch 能力,不适合普通 CLI 批处理。
@@ -2,10 +2,11 @@
2
2
  name: social-hub-openclaw-context
3
3
  description: >-
4
4
  OpenClaw Agent 执行前上下文:social-hub context account/job、query account-pools、
5
- subreddit-candidates、export agent-context。用户问账号能发哪些版、任务上下文、板块池、
6
- guardrails、数据是否过期时,必须用 Hub DB 聚合接口,不要解析 agent 工作区 Markdown。
5
+ subreddit-candidates(persona-awarediversity、selectionWeight)、export agent-context
6
+ 用户问账号能发哪些版、任务上下文、板块池、养号轮换、guardrails、数据是否过期时,
7
+ 必须用 Hub DB 聚合接口,不要解析 agent 工作区 Markdown。
7
8
  metadata:
8
- cliVersion: ">=0.0.12"
9
+ cliVersion: ">=0.1.4"
9
10
  ---
10
11
 
11
12
  # social-hub-openclaw-context
@@ -29,7 +30,9 @@ social-hub context account -t <team-id> --account A1 \
29
30
  --expand pools,events,jobs,persona,risk,env,guardrails,style,quota
30
31
  ```
31
32
 
32
- `--expand pools` 返回 team 级板块池;`--expand events` 返回该账号最近 20 条互动事件摘要。
33
+ - `--expand pools`:persona-aware 板块池(含 `personaPools.expandedByKind` / `expandedPools` / `brandPools` / `fallback`)
34
+ - `--expand persona`:账号绑定系统人设摘要
35
+ - `--expand events`:该账号最近 20 条互动事件摘要
33
36
 
34
37
  ## 任务上下文
35
38
 
@@ -37,13 +40,56 @@ social-hub context account -t <team-id> --account A1 \
37
40
  social-hub context job -t <team-id> --job <scheduledJobId>
38
41
  ```
39
42
 
40
- ## 板块与候选
43
+ ## 板块与候选(persona-aware + diversity)
44
+
45
+ 互动选板 **主读** `subreddit-candidates`;发布前查池可用 `account-pools`。
41
46
 
42
47
  ```bash
43
- social-hub query account-pools -t <team-id> --account A1 --limit 50
44
- social-hub query subreddit-candidates -t <team-id> --account A1 --action publish_post
48
+ # 账号级池列表(可选 debug)
49
+ social-hub query account-pools -t <team-id> --account A1 \
50
+ --limit 50 --persona-aware true --tier all --include-debug
51
+
52
+ # 互动/评论候选(默认带 diversity debug)
53
+ social-hub query subreddit-candidates -t <team-id> --account A1 \
54
+ --action comment --include-debug
55
+
56
+ # 浏览动作更宽松
57
+ social-hub query subreddit-candidates -t <team-id> --account A1 --action browse
45
58
  ```
46
59
 
60
+ | 参数 | 默认 | 说明 |
61
+ |------|------|------|
62
+ | `--persona-aware` | `true` | `false` 时仅 team 级 `subreddit_industry_pools` |
63
+ | `--tier` | `all` | `starter` / `advanced` / `all` |
64
+ | `--include-debug` | `subreddit-candidates` 默认开启 | 输出 `personaPools`、`fallback`、`selectionWeight`、`cooldownUntil` 等 |
65
+ | `--action` | 无 | `comment` / `browse` / `publish_post` 等,影响 `allowedActions` 与冷却 |
66
+
67
+ **响应要点**(`subreddit-candidates`):
68
+
69
+ | 字段 | 说明 |
70
+ |------|------|
71
+ | `items[].source` | `persona.redditRefs`、`persona.starterPoolRefs`、`persona.petPoolRefs`、`brand.binding`、`fallback_team_pool` 等 |
72
+ | `items[].poolKind` | `pet` / `common` / `industry` / `brand` / `direct` / `other` |
73
+ | `items[].subreddit` | 可直接消费的 `r/Subreddit` 格式 |
74
+ | `items[].selectionWeight` | 加权随机用;**禁止直接取 `items[0]`** |
75
+ | `items[].cooldownUntil` | 未过期时禁止 `comment`/`reply` |
76
+ | `items[].allowedActions` | 当前动作允许的操作 |
77
+ | `personaPools.expandedByKind` | 按来源汇总:`direct` / `common` / `industry` / `pet` / `brand` 的 `r/...` 列表 |
78
+ | `personaPools.expandedPools[].subreddits` | 每个 pool ref 展开后的具体板块(可多条) |
79
+ | `personaPools.brandPools` | 账号品牌绑定及对应 `brand_pools.*` ref 展开结果 |
80
+ | `personaPools.unresolvedRefs` | alias 表无法解析的 ref(含部分 `persona_pools.Pxx.*`) |
81
+ | `fallback.reason` | 如 `candidate_pool_exhausted` 须在 Agent 回执说明 |
82
+
83
+ **Agent 门禁**:
84
+
85
+ 1. Hub 在线时不要本地展开 `persona_pools.Pxx`;以 Hub 返回的 `source` / `tier` / `poolKind` 为准。
86
+ 2. 选板前先读 `personaPools.expandedByKind`,确认 `direct` / `common` / `industry` / `pet` / `brand` 是否都有候选;缺类时看 `unresolvedRefs` 与 `fallback.reason`。
87
+ 3. 同任务维护 `usedSubreddits`,排除已选 sub。
88
+ 4. 养号阶段 `poolKind=pet` 且可用宠物 sub **≥3** 时须轮换;**不得**用 `brand` 池替代宠物主池。
89
+ 5. 运营期品牌池(`poolKind=brand` / `source=brand.binding`)仅低占比补充(建议 10%–20%)。
90
+
91
+ 配合 `social-hub-events-observability` 的 `events list-full` 可核对近期 sub;`social-hub-graph-compliance` 的 blocklist 已由候选接口过滤。
92
+
47
93
  ## 导出(审计 / 离线查看)
48
94
 
49
95
  ```bash
@@ -45,3 +45,13 @@ social-hub ops skip -t <team-id> --job <jobId> --agent "$AGENT" --reason manual_
45
45
  同一账号同时只能有一个有效 lease;重复 claim 会被拒绝。`complete` 会原子更新 job 与关联 calendar(若 payload 含 calendarEntryId)。
46
46
 
47
47
  遗留路径 `jobs agent-status` 仅在未接 ops 链路时使用(见 `social-hub-calendar-jobs`)。
48
+
49
+ ## 写操作护栏
50
+
51
+ | 命令 | 要求 |
52
+ |------|------|
53
+ | `ops complete` | `permalink` 须为 reddit.com URL;先 `claim` 或 `claim-next` |
54
+ | `ops fail` / `ops skip` | `--reason` 必须用文档枚举值 |
55
+ | `ops claim` | 确认 `jobId` 来自 `jobs list`,勿猜测 UUID |
56
+
57
+ 无 `--dry-run`;误操作后用 `fail`/`skip` 记录原因,勿改本地 Markdown 状态。
@@ -33,6 +33,7 @@ metadata:
33
33
 
34
34
  ```bash
35
35
  social-hub reddit list -t <team-id> -n 20
36
+ social-hub reddit list-full -t <team-id> --brand <brand-uuid> -n 50
36
37
  social-hub reddit list -t <team-id> --aggregate --all
37
38
  social-hub reddit stats -t <team-id> --aggregate --range 30
38
39
  social-hub reddit stats -t <team-id> --aggregate --range all
@@ -41,8 +42,11 @@ social-hub reddit refresh-status -t <team-id>
41
42
  social-hub reddit refresh -t <team-id> --snapshot <snapshotId>
42
43
  social-hub reddit refresh-progress -t <team-id> --batch <batchId>
43
44
  social-hub reddit refresh-all -t <team-id>
45
+ social-hub reddit refresh-logs -t <team-id> -n 20
44
46
  ```
45
47
 
48
+ 筛选帖表现时优先 **`--brand`**,勿把 `--campaign` 当作品牌 ID。
49
+
46
50
  ## 单条写入与更新
47
51
 
48
52
  ```bash
@@ -3,21 +3,13 @@
3
3
  "evals": [
4
4
  {
5
5
  "id": 0,
6
- "prompt": " team <team-id> 最近 20 Reddit 帖快照,并按系统级 brand <brand-id> 看 stats 汇总。我已 auth login。",
7
- "expected_output": "social-hub reddit list、reddit stats;不路由到飞书同步或 lark-cli",
8
- "assertions": []
9
- },
10
- {
11
- "id": 1,
12
- "prompt": "我有一批外部 JSON 帖数据(含 permalink、subreddit、score、feishuRecordId recABC),要批量写入 Hub team <team-id>,先 dry-run 再 apply。",
13
- "expected_output": "social-hub reddit batch-upsert --dry-run 然后正式 upsert;说明 feishuRecordId 幂等;不展开飞书取数流程",
14
- "assertions": []
15
- },
16
- {
17
- "id": 2,
18
- "prompt": "刷新 team <team-id> 全部 Reddit 帖 score,并查看 refresh 任务进度。",
19
- "expected_output": "social-hub reddit refresh-all、reddit refresh-status 或 refresh-progress",
20
- "assertions": []
6
+ "prompt": "查我们品牌在 Hub 里最近 30 Reddit 帖表现,按品牌筛选,不要走 campaign。",
7
+ "expected_output": "social-hub-posts:reddit stats --brand 或 list --brand;勿 campaigns list",
8
+ "assertions": [
9
+ { "type": "must_include", "value": "--brand" },
10
+ { "type": "forbidden_pattern", "value": "campaigns create" },
11
+ { "type": "forbidden_pattern", "value": "--campaign" }
12
+ ]
21
13
  }
22
14
  ]
23
15
  }