@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.
- package/CHANGELOG.md +22 -0
- package/dist/cmd-manifest.json +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -12
- package/dist/index.js.map +1 -1
- package/dist/register-ops.d.ts.map +1 -1
- package/dist/register-ops.js +12 -0
- package/dist/register-ops.js.map +1 -1
- package/dist/update-check.d.ts +5 -0
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js +19 -11
- package/dist/update-check.js.map +1 -1
- package/dist/update-check.test.js +43 -1
- package/dist/update-check.test.js.map +1 -1
- package/package.json +2 -2
- package/skills/manifest.json +1 -1
- package/skills/social-hub-admin/SKILL.md +4 -1
- package/skills/social-hub-calendar-jobs/SKILL.md +4 -4
- package/skills/social-hub-cli/SKILL.md +7 -1
- package/skills/social-hub-cli/evals/evals.json +15 -3
- package/skills/social-hub-events-observability/SKILL.md +25 -5
- package/skills/social-hub-intelligence/SKILL.md +5 -3
- package/skills/social-hub-openclaw-context/SKILL.md +53 -7
- package/skills/social-hub-ops-runtime/SKILL.md +10 -0
- package/skills/social-hub-posts/SKILL.md +4 -0
- package/skills/social-hub-posts/evals/evals.json +7 -15
- package/skills/social-hub-publishing/SKILL.md +41 -55
- package/skills/social-hub-publishing/evals/evals.json +16 -0
- package/skills/social-hub-shared/SKILL.md +37 -1
- package/skills/social-hub-shared/evals/evals.json +15 -0
package/dist/register-ops.js
CHANGED
|
@@ -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
|
});
|
package/dist/register-ops.js.map
CHANGED
|
@@ -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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"}
|
package/dist/update-check.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/update-check.js
CHANGED
|
@@ -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
|
|
85
|
-
|
|
86
|
-
? `
|
|
87
|
-
: `
|
|
88
|
-
|
|
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
|
-
|
|
92
|
-
|
|
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
|
-
]
|
|
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))
|
package/dist/update-check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,YAAY,GAAG,0BAA0B,CAAC;
|
|
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,
|
|
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
|
+
"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.
|
|
25
|
+
"@geoly-ai/social-hub-sdk": "0.0.13"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.10.2",
|
package/skills/manifest.json
CHANGED
|
@@ -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":"
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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.
|
|
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
|
-
互动事件与可观测性:
|
|
5
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
5
|
+
subreddit-candidates(persona-aware、diversity、selectionWeight)、export agent-context。
|
|
6
|
+
用户问账号能发哪些版、任务上下文、板块池、养号轮换、guardrails、数据是否过期时,
|
|
7
|
+
必须用 Hub DB 聚合接口,不要解析 agent 工作区 Markdown。
|
|
7
8
|
metadata:
|
|
8
|
-
cliVersion: ">=0.
|
|
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`
|
|
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
|
-
|
|
44
|
-
social-hub query
|
|
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": "
|
|
7
|
-
"expected_output": "social-hub
|
|
8
|
-
"assertions": [
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
}
|