@geoly-ai/social-hub-cli 0.0.6 → 0.0.8
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/dist/register-skills.d.ts.map +1 -1
- package/dist/register-skills.js +24 -6
- package/dist/register-skills.js.map +1 -1
- package/dist/skills/doctor.js +1 -1
- package/dist/skills/doctor.js.map +1 -1
- package/dist/skills/target-detector.d.ts +8 -1
- package/dist/skills/target-detector.d.ts.map +1 -1
- package/dist/skills/target-detector.js +69 -34
- package/dist/skills/target-detector.js.map +1 -1
- package/dist/skills/target-detector.test.d.ts +2 -0
- package/dist/skills/target-detector.test.d.ts.map +1 -0
- package/dist/skills/target-detector.test.js +64 -0
- package/dist/skills/target-detector.test.js.map +1 -0
- package/dist/skills/tui.d.ts +19 -1
- package/dist/skills/tui.d.ts.map +1 -1
- package/dist/skills/tui.js +120 -28
- package/dist/skills/tui.js.map +1 -1
- package/dist/skills/tui.test.d.ts +2 -0
- package/dist/skills/tui.test.d.ts.map +1 -0
- package/dist/skills/tui.test.js +37 -0
- package/dist/skills/tui.test.js.map +1 -0
- package/package.json +3 -3
- package/skills/README.md +20 -14
- package/skills/manifest.json +1 -1
- package/skills/social-hub-accounts/SKILL.md +14 -9
- package/skills/social-hub-admin/SKILL.md +15 -8
- package/skills/social-hub-calendar-jobs/SKILL.md +18 -9
- package/skills/social-hub-cli/SKILL.md +116 -242
- package/skills/social-hub-cli/evals/evals.json +6 -6
- package/skills/social-hub-intelligence/SKILL.md +12 -7
- package/skills/social-hub-migration/SKILL.md +8 -5
- package/skills/social-hub-openclaw-context/SKILL.md +11 -8
- package/skills/social-hub-ops-runtime/SKILL.md +11 -9
- package/skills/social-hub-posts/SKILL.md +10 -7
- package/skills/social-hub-publishing/SKILL.md +5 -2
- package/skills/social-hub-shared/SKILL.md +124 -22
package/dist/skills/tui.js
CHANGED
|
@@ -8,6 +8,39 @@ import { resolveAgentDefaultTarget } from "./target-detector.js";
|
|
|
8
8
|
function isInteractive() {
|
|
9
9
|
return Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
10
10
|
}
|
|
11
|
+
export function shouldUseInstallTui(opts) {
|
|
12
|
+
if (opts.json || opts.dryRun)
|
|
13
|
+
return false;
|
|
14
|
+
if (!isInteractive())
|
|
15
|
+
return false;
|
|
16
|
+
if (opts.yes)
|
|
17
|
+
return false;
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
export function buildInstallTuiOptionsFromCli(opts, positional) {
|
|
21
|
+
const preselectedSkillIds = parseCliSkillIds(opts.skill, positional);
|
|
22
|
+
const agentRaw = opts.agent?.trim();
|
|
23
|
+
const preselectedAgentIds = agentRaw && agentRaw !== "*"
|
|
24
|
+
? agentRaw.split(",").map((s) => s.trim()).filter(Boolean)
|
|
25
|
+
: undefined;
|
|
26
|
+
return {
|
|
27
|
+
defaultAction: "install",
|
|
28
|
+
defaultScope: opts.global ? "global" : opts.project ? "project" : undefined,
|
|
29
|
+
defaultMethod: opts.symlink ? "symlink" : undefined,
|
|
30
|
+
skipScopePrompt: Boolean(opts.global || opts.project),
|
|
31
|
+
preselectedSkillIds,
|
|
32
|
+
preselectedAgentIds,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function parseCliSkillIds(skill, positional) {
|
|
36
|
+
if (positional?.trim())
|
|
37
|
+
return [positional.trim()];
|
|
38
|
+
if (!skill?.trim())
|
|
39
|
+
return undefined;
|
|
40
|
+
if (skill === "*")
|
|
41
|
+
return ["*"];
|
|
42
|
+
return skill.split(",").map((s) => s.trim()).filter(Boolean);
|
|
43
|
+
}
|
|
11
44
|
async function promptSelect(rl, title, choices, multi = false) {
|
|
12
45
|
console.log(`\n${title}`);
|
|
13
46
|
choices.forEach((c, i) => console.log(` ${i + 1}. ${c.label}`));
|
|
@@ -35,9 +68,30 @@ async function promptSelect(rl, title, choices, multi = false) {
|
|
|
35
68
|
}
|
|
36
69
|
export function printNonInteractiveHint() {
|
|
37
70
|
console.log("Non-interactive environment detected. Use:");
|
|
38
|
-
console.log("
|
|
39
|
-
console.log("
|
|
40
|
-
console.log(" social-hub skills install --agent
|
|
71
|
+
console.log(" social-hub skills install --agent cursor --global --yes");
|
|
72
|
+
console.log(" social-hub skills update --agent cursor --global --yes");
|
|
73
|
+
console.log(" social-hub skills install --agent '*' --global --yes # all detected agent dirs");
|
|
74
|
+
}
|
|
75
|
+
export function printInstallTargetHint() {
|
|
76
|
+
console.error("No install target selected.");
|
|
77
|
+
console.error("");
|
|
78
|
+
if (isInteractive()) {
|
|
79
|
+
console.error("Run the interactive installer:");
|
|
80
|
+
console.error(" social-hub skills install");
|
|
81
|
+
console.error("");
|
|
82
|
+
console.error("Or specify a target for scripts:");
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
printNonInteractiveHint();
|
|
86
|
+
console.error("");
|
|
87
|
+
console.error("Non-interactive examples:");
|
|
88
|
+
}
|
|
89
|
+
console.error(" social-hub skills install --agent cursor --global --yes");
|
|
90
|
+
console.error(" social-hub skills install --dir ~/.cursor/skills --yes");
|
|
91
|
+
console.error(" SKILLS_INSTALL_DIR=~/.cursor/skills social-hub skills install --yes");
|
|
92
|
+
console.error("");
|
|
93
|
+
console.error("Install to every detected agent directory (explicit opt-in):");
|
|
94
|
+
console.error(" social-hub skills install --agent '*' --global --yes");
|
|
41
95
|
}
|
|
42
96
|
export async function runSkillsTui(opts = {}) {
|
|
43
97
|
if (!isInteractive()) {
|
|
@@ -46,38 +100,76 @@ export async function runSkillsTui(opts = {}) {
|
|
|
46
100
|
}
|
|
47
101
|
const rl = readline.createInterface({ input, output });
|
|
48
102
|
try {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
103
|
+
const source = resolveBundledSource();
|
|
104
|
+
let selectedAgents;
|
|
105
|
+
if (opts.preselectedAgentIds?.length) {
|
|
106
|
+
selectedAgents = opts.preselectedAgentIds;
|
|
107
|
+
console.log(`\nTarget agent(s): ${selectedAgents.join(", ")}`);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
const agents = listAgents();
|
|
111
|
+
const agentChoices = [
|
|
112
|
+
...agents.map((a) => ({ label: a.label, value: a.id })),
|
|
113
|
+
{ label: "Custom directory", value: "__custom__" },
|
|
114
|
+
];
|
|
115
|
+
selectedAgents = await promptSelect(rl, "Select target agent(s):", agentChoices, true);
|
|
116
|
+
}
|
|
55
117
|
let scope = opts.defaultScope ?? "project";
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
scope
|
|
118
|
+
if (opts.skipScopePrompt && opts.defaultScope) {
|
|
119
|
+
scope = opts.defaultScope;
|
|
120
|
+
console.log(`Scope: ${scope}`);
|
|
121
|
+
}
|
|
122
|
+
else if (!opts.skipScopePrompt) {
|
|
123
|
+
const scopeAns = (await rl.question("Scope [project/global] (default project): ")).trim();
|
|
124
|
+
if (scopeAns === "global")
|
|
125
|
+
scope = "global";
|
|
126
|
+
}
|
|
59
127
|
let installMode = "standalone";
|
|
60
128
|
if (selectedAgents.includes("claude-code")) {
|
|
61
129
|
const modeAns = (await rl.question("Claude install mode [standalone/plugin] (default standalone): ")).trim();
|
|
62
130
|
if (modeAns === "plugin")
|
|
63
131
|
installMode = "plugin";
|
|
64
132
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
133
|
+
let selectedSkills;
|
|
134
|
+
if (opts.preselectedSkillIds?.length) {
|
|
135
|
+
for (const id of opts.preselectedSkillIds) {
|
|
136
|
+
if (id !== "*" && !source.manifest.skills.some((s) => s.id === id)) {
|
|
137
|
+
throw new Error(`Unknown skill: ${id}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
selectedSkills = opts.preselectedSkillIds;
|
|
141
|
+
console.log(`Skill(s): ${selectedSkills.join(", ")}`);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const skillChoices = source.manifest.skills.map((s) => ({
|
|
145
|
+
label: `${s.id} — ${s.description}`,
|
|
146
|
+
value: s.id,
|
|
147
|
+
}));
|
|
148
|
+
skillChoices.unshift({ label: "All social-hub skills", value: "*" });
|
|
149
|
+
selectedSkills = await promptSelect(rl, "Select skill(s):", skillChoices, true);
|
|
150
|
+
}
|
|
151
|
+
let action;
|
|
152
|
+
if (opts.defaultAction) {
|
|
153
|
+
action = opts.defaultAction;
|
|
154
|
+
console.log(`Action: ${action}`);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
const actionChoices = [
|
|
158
|
+
{ label: "Install missing skills", value: "install" },
|
|
159
|
+
{ label: "Update installed skills", value: "update" },
|
|
160
|
+
{ label: "Reinstall selected skills", value: "reinstall" },
|
|
161
|
+
];
|
|
162
|
+
const [actionRaw] = await promptSelect(rl, "Action:", actionChoices, false);
|
|
163
|
+
action = actionRaw;
|
|
164
|
+
}
|
|
165
|
+
let method = opts.defaultMethod ?? "copy";
|
|
166
|
+
if (opts.defaultMethod) {
|
|
167
|
+
console.log(`Method: ${method}`);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
const methodAns = (await rl.question("Method [copy/symlink] (default copy): ")).trim();
|
|
171
|
+
method = methodAns === "symlink" ? "symlink" : "copy";
|
|
172
|
+
}
|
|
81
173
|
const targets = [];
|
|
82
174
|
if (selectedAgents.includes("__custom__")) {
|
|
83
175
|
const dir = (await rl.question("Custom skills directory: ")).trim();
|
package/dist/skills/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/skills/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAwB,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/skills/tui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.test.d.ts","sourceRoot":"","sources":["../../src/skills/tui.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { buildInstallTuiOptionsFromCli, shouldUseInstallTui, } from "./tui.js";
|
|
3
|
+
describe("skills tui routing", () => {
|
|
4
|
+
it("blocks TUI for non-interactive flags", () => {
|
|
5
|
+
expect(shouldUseInstallTui({ yes: true })).toBe(false);
|
|
6
|
+
expect(shouldUseInstallTui({ json: true })).toBe(false);
|
|
7
|
+
expect(shouldUseInstallTui({ dryRun: true })).toBe(false);
|
|
8
|
+
});
|
|
9
|
+
it("preselects skill from positional or --skill", () => {
|
|
10
|
+
expect(buildInstallTuiOptionsFromCli({}, "social-hub-cli")).toMatchObject({
|
|
11
|
+
defaultAction: "install",
|
|
12
|
+
preselectedSkillIds: ["social-hub-cli"],
|
|
13
|
+
});
|
|
14
|
+
expect(buildInstallTuiOptionsFromCli({ skill: "social-hub-shared,social-hub-posts" })).toMatchObject({
|
|
15
|
+
preselectedSkillIds: ["social-hub-shared", "social-hub-posts"],
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
it("preselects agent and scope from CLI flags", () => {
|
|
19
|
+
expect(buildInstallTuiOptionsFromCli({
|
|
20
|
+
agent: "cursor",
|
|
21
|
+
global: true,
|
|
22
|
+
symlink: true,
|
|
23
|
+
})).toMatchObject({
|
|
24
|
+
preselectedAgentIds: ["cursor"],
|
|
25
|
+
defaultScope: "global",
|
|
26
|
+
skipScopePrompt: true,
|
|
27
|
+
defaultMethod: "symlink",
|
|
28
|
+
defaultAction: "install",
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
it("does not preselect agent when --agent is '*'", () => {
|
|
32
|
+
expect(buildInstallTuiOptionsFromCli({ agent: "*" })).toMatchObject({
|
|
33
|
+
preselectedAgentIds: undefined,
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=tui.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.test.js","sourceRoot":"","sources":["../../src/skills/tui.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CACJ,6BAA6B,CAAC,EAAE,EAAE,gBAAgB,CAAC,CACpD,CAAC,aAAa,CAAC;YACd,aAAa,EAAE,SAAS;YACxB,mBAAmB,EAAE,CAAC,gBAAgB,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,CACJ,6BAA6B,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAC/E,CAAC,aAAa,CAAC;YACd,mBAAmB,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CACJ,6BAA6B,CAAC;YAC5B,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;SACd,CAAC,CACH,CAAC,aAAa,CAAC;YACd,mBAAmB,EAAE,CAAC,QAAQ,CAAC;YAC/B,YAAY,EAAE,QAAQ;YACtB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CACJ,6BAA6B,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAC9C,CAAC,aAAa,CAAC;YACd,mBAAmB,EAAE,SAAS;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geoly-ai/social-hub-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "social-hub CLI for Social Ops Hub",
|
|
6
6
|
"repository": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"commander": "^12.1.0",
|
|
23
|
-
"@geoly-ai/social-hub-
|
|
24
|
-
"@geoly-ai/social-hub-
|
|
23
|
+
"@geoly-ai/social-hub-sdk": "0.0.3",
|
|
24
|
+
"@geoly-ai/social-hub-authz": "0.0.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.10.2",
|
package/skills/README.md
CHANGED
|
@@ -30,24 +30,30 @@ social-hub skills cache clear
|
|
|
30
30
|
|
|
31
31
|
Skills 随 `@geoly-ai/social-hub-cli` 一起发布(npm tarball 内置 `skills/`)。
|
|
32
32
|
|
|
33
|
+
交互式终端下,裸跑 `social-hub skills install` 会打开 TUI 选择 agent 与 skill(不会自动扫所有 agent 目录)。脚本化请显式指定目标:
|
|
34
|
+
|
|
33
35
|
```bash
|
|
34
|
-
#
|
|
35
|
-
social-hub skills
|
|
36
|
+
# 交互式(推荐,默认入口)
|
|
37
|
+
social-hub skills install
|
|
38
|
+
social-hub skills install social-hub-cli # 预填 skill,仍走 TUI 选 agent
|
|
36
39
|
|
|
37
|
-
#
|
|
38
|
-
social-hub skills install --agent cursor --global --yes
|
|
39
|
-
social-hub skills
|
|
40
|
-
|
|
40
|
+
# 脚本化 — 单 skill + Cursor 全局
|
|
41
|
+
social-hub skills install social-hub-cli --agent cursor --global --yes
|
|
42
|
+
social-hub skills update --agent cursor --global --yes
|
|
43
|
+
|
|
44
|
+
# 显式安装到所有已检测到的 agent 目录(opt-in)
|
|
45
|
+
social-hub skills install --agent '*' --global --yes
|
|
41
46
|
|
|
42
|
-
#
|
|
43
|
-
social-hub skills
|
|
47
|
+
# 自定义目录
|
|
48
|
+
social-hub skills install --dir ~/.cursor/skills --yes
|
|
49
|
+
SKILLS_INSTALL_DIR=~/.cursor/skills social-hub skills install --yes
|
|
50
|
+
```
|
|
44
51
|
|
|
45
|
-
|
|
46
|
-
social-hub skills doctor --json
|
|
52
|
+
其他 agent 示例:
|
|
47
53
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
```bash
|
|
55
|
+
social-hub skills install --agent claude-code --project --yes
|
|
56
|
+
social-hub skills install --agent codex --global --yes
|
|
51
57
|
```
|
|
52
58
|
|
|
53
59
|
支持 [skill.sh](https://skill.sh) 兼容的全部 agent(`social-hub skills list --agents`)。安装状态记录在目标目录下的 `.social-hub-skills.json`。
|
|
@@ -70,7 +76,7 @@ skill add <org>/social-ops-hub/social-hub-ops-runtime
|
|
|
70
76
|
|
|
71
77
|
| 方式 | 说明 |
|
|
72
78
|
|------|------|
|
|
73
|
-
| **CLI(推荐)** | `social-hub skills install
|
|
79
|
+
| **CLI(推荐)** | `social-hub skills install`(TUI)或 `social-hub skills install --agent cursor --global --yes` |
|
|
74
80
|
| **npx** | `npx @geoly-ai/social-hub-cli skills bootstrap` |
|
|
75
81
|
| **项目内脚本** | `pnpm skills:install` → 默认 `.agents/skills/` |
|
|
76
82
|
| **指定目录** | `SKILLS_INSTALL_DIR=~/.cursor/skills pnpm skills:install` |
|
package/skills/manifest.json
CHANGED
|
@@ -4,22 +4,27 @@ description: >-
|
|
|
4
4
|
Social Hub 社交账号:social-hub accounts list/get/create/update/delete、brand-bindings、status-snapshots。
|
|
5
5
|
用户要查 Reddit 账号、改 handle、绑品牌、看账号状态快照、同步飞书账号字段时用本 skill。
|
|
6
6
|
metadata:
|
|
7
|
-
cliVersion: ">=0.0.
|
|
7
|
+
cliVersion: ">=0.0.6"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# social-hub-accounts
|
|
11
11
|
|
|
12
|
+
> **前置条件:** 先阅读 [`../social-hub-shared/SKILL.md`](../social-hub-shared/SKILL.md),
|
|
13
|
+
> 确认已通过 `social-hub auth login` 授权,并已 `social-hub context use <team-id>`。
|
|
14
|
+
> 命令使用 `-t <team-id>`(来自 `social-hub context current`);不要用环境变量传 API key。
|
|
15
|
+
|
|
12
16
|
```bash
|
|
13
|
-
social-hub accounts list -t
|
|
14
|
-
social-hub accounts get -t
|
|
15
|
-
social-hub accounts
|
|
16
|
-
social-hub accounts
|
|
17
|
+
social-hub accounts list -t <team-id> -n 50
|
|
18
|
+
social-hub accounts get -t <team-id> --account <uuid>
|
|
19
|
+
social-hub accounts create -t <team-id> -j '{"platform":"reddit","handle":"u/example",...}'
|
|
20
|
+
social-hub accounts update -t <team-id> --account <uuid> -j '{"workflowStage":"active",...}'
|
|
21
|
+
social-hub accounts delete -t <team-id> --account <uuid> # 危险:需确认用户意图
|
|
17
22
|
|
|
18
|
-
social-hub accounts brand-bindings list -t
|
|
19
|
-
social-hub accounts brand-bindings add -t
|
|
20
|
-
social-hub accounts brand-bindings remove -t
|
|
23
|
+
social-hub accounts brand-bindings list -t <team-id> --account <uuid>
|
|
24
|
+
social-hub accounts brand-bindings add -t <team-id> --account <uuid> -j '{"brandId":"..."}'
|
|
25
|
+
social-hub accounts brand-bindings remove -t <team-id> --account <uuid> --brand <brandId>
|
|
21
26
|
|
|
22
|
-
social-hub accounts status-snapshots list -t
|
|
27
|
+
social-hub accounts status-snapshots list -t <team-id> --account <uuid>
|
|
23
28
|
```
|
|
24
29
|
|
|
25
30
|
OpenClaw 执行前优先 `social-hub context account`(见 `social-hub-openclaw-context`),不要只读本地 `account-profiles/*.md`。
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: social-hub-admin
|
|
3
3
|
description: >-
|
|
4
|
-
Social Hub 管理面:settings、invites、members、
|
|
5
|
-
|
|
4
|
+
Social Hub 管理面:settings、invites、members、agent-teams、users。
|
|
5
|
+
用户要改系统设置、发团队邀请、列成员、管理团队结构时用本 skill;高风险写操作需 --apply。
|
|
6
|
+
API Key 的创建/轮换属于管理员资源管理,不是 CLI 日常登录方式(见 social-hub-shared)。
|
|
6
7
|
metadata:
|
|
7
|
-
cliVersion: ">=0.0.
|
|
8
|
+
cliVersion: ">=0.0.6"
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# social-hub-admin
|
|
11
12
|
|
|
13
|
+
> **前置条件:** 先阅读 [`../social-hub-shared/SKILL.md`](../social-hub-shared/SKILL.md),
|
|
14
|
+
> 确认已 `auth login` 且 role 满足操作要求(多数管理命令需 admin 或 manager)。
|
|
15
|
+
|
|
12
16
|
## Settings(admin)
|
|
13
17
|
|
|
14
18
|
```bash
|
|
@@ -21,10 +25,10 @@ social-hub settings set <key> --value "..." --apply
|
|
|
21
25
|
## Invites
|
|
22
26
|
|
|
23
27
|
```bash
|
|
24
|
-
social-hub invites list -t
|
|
25
|
-
social-hub invites create -t
|
|
26
|
-
social-hub invites create -t
|
|
27
|
-
social-hub invites revoke -t
|
|
28
|
+
social-hub invites list -t <team-id>
|
|
29
|
+
social-hub invites create -t <team-id> --email user@example.com --role manager --dry-run
|
|
30
|
+
social-hub invites create -t <team-id> --email user@example.com --role manager --apply
|
|
31
|
+
social-hub invites revoke -t <team-id> --id <inviteId> --apply
|
|
28
32
|
```
|
|
29
33
|
|
|
30
34
|
## Members
|
|
@@ -33,4 +37,7 @@ social-hub invites revoke -t "$T" --id "<inviteId>" --apply
|
|
|
33
37
|
social-hub members list
|
|
34
38
|
```
|
|
35
39
|
|
|
36
|
-
|
|
40
|
+
## 团队 / 用户 / API Key(管理员)
|
|
41
|
+
|
|
42
|
+
- **团队与用户**:`agent-teams`、`users` 命令见 `social-hub-cli` 管理章节。
|
|
43
|
+
- **API Key**(`social-hub api-keys *`):仅用于集成/服务端密钥管理;**Agent 日常操作仍用 Device Code**,不要把新建 API Key 当作 CLI 登录步骤。
|
|
@@ -4,22 +4,31 @@ description: >-
|
|
|
4
4
|
发布日历与调度任务:social-hub calendar list、jobs list/create/batch/retry/cancel。
|
|
5
5
|
用户要排期、查 scheduled job、重试失败任务、取消任务时用本 skill;Agent 执行态回填优先 ops-runtime。
|
|
6
6
|
metadata:
|
|
7
|
-
cliVersion: ">=0.0.
|
|
7
|
+
cliVersion: ">=0.0.6"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# social-hub-calendar-jobs
|
|
11
11
|
|
|
12
|
+
> **前置条件:** 先阅读 [`../social-hub-shared/SKILL.md`](../social-hub-shared/SKILL.md),
|
|
13
|
+
> 确认已 auth login 并选定 team(`context use`)。下文 `-t <team-id>` 来自 `context current`。
|
|
14
|
+
|
|
12
15
|
```bash
|
|
13
|
-
social-hub calendar list -t
|
|
14
|
-
social-hub
|
|
15
|
-
social-hub
|
|
16
|
-
|
|
17
|
-
social-hub jobs
|
|
16
|
+
social-hub calendar list -t <team-id>
|
|
17
|
+
social-hub calendar list-full -t <team-id> --account <accountId> --status scheduled
|
|
18
|
+
social-hub calendar patch -t <team-id> -e <entryId> --body '{"status":"succeeded","permalink":"..."}'
|
|
19
|
+
|
|
20
|
+
social-hub jobs list -t <team-id> --status scheduled
|
|
21
|
+
social-hub jobs list-full -t <team-id> --account <accountId>
|
|
22
|
+
social-hub jobs create -t <team-id> -j '{"socialAccountId":"...","action":"engage","subreddit":"...","runAt":"..."}'
|
|
23
|
+
social-hub jobs retry -t <team-id> -i <jobId>
|
|
24
|
+
social-hub jobs cancel -t <team-id> -i <jobId>
|
|
18
25
|
```
|
|
19
26
|
|
|
20
|
-
|
|
27
|
+
OpenClaw / Agent 运行时优先:
|
|
21
28
|
|
|
22
29
|
```bash
|
|
23
|
-
social-hub ops claim-next -t
|
|
24
|
-
social-hub ops complete|fail|skip ...
|
|
30
|
+
social-hub ops claim-next -t <team-id> --agent <agentId>
|
|
31
|
+
social-hub ops heartbeat|complete|fail|skip ...
|
|
25
32
|
```
|
|
33
|
+
|
|
34
|
+
见 `social-hub-ops-runtime`。遗留 `jobs agent-status` 仅在未接 ops 链路时使用。
|