@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.
Files changed (36) hide show
  1. package/dist/register-skills.d.ts.map +1 -1
  2. package/dist/register-skills.js +24 -6
  3. package/dist/register-skills.js.map +1 -1
  4. package/dist/skills/doctor.js +1 -1
  5. package/dist/skills/doctor.js.map +1 -1
  6. package/dist/skills/target-detector.d.ts +8 -1
  7. package/dist/skills/target-detector.d.ts.map +1 -1
  8. package/dist/skills/target-detector.js +69 -34
  9. package/dist/skills/target-detector.js.map +1 -1
  10. package/dist/skills/target-detector.test.d.ts +2 -0
  11. package/dist/skills/target-detector.test.d.ts.map +1 -0
  12. package/dist/skills/target-detector.test.js +64 -0
  13. package/dist/skills/target-detector.test.js.map +1 -0
  14. package/dist/skills/tui.d.ts +19 -1
  15. package/dist/skills/tui.d.ts.map +1 -1
  16. package/dist/skills/tui.js +120 -28
  17. package/dist/skills/tui.js.map +1 -1
  18. package/dist/skills/tui.test.d.ts +2 -0
  19. package/dist/skills/tui.test.d.ts.map +1 -0
  20. package/dist/skills/tui.test.js +37 -0
  21. package/dist/skills/tui.test.js.map +1 -0
  22. package/package.json +3 -3
  23. package/skills/README.md +20 -14
  24. package/skills/manifest.json +1 -1
  25. package/skills/social-hub-accounts/SKILL.md +14 -9
  26. package/skills/social-hub-admin/SKILL.md +15 -8
  27. package/skills/social-hub-calendar-jobs/SKILL.md +18 -9
  28. package/skills/social-hub-cli/SKILL.md +116 -242
  29. package/skills/social-hub-cli/evals/evals.json +6 -6
  30. package/skills/social-hub-intelligence/SKILL.md +12 -7
  31. package/skills/social-hub-migration/SKILL.md +8 -5
  32. package/skills/social-hub-openclaw-context/SKILL.md +11 -8
  33. package/skills/social-hub-ops-runtime/SKILL.md +11 -9
  34. package/skills/social-hub-posts/SKILL.md +10 -7
  35. package/skills/social-hub-publishing/SKILL.md +5 -2
  36. package/skills/social-hub-shared/SKILL.md +124 -22
@@ -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(" npx @geoly-ai/social-hub-cli skills install --agent cursor --global --yes");
39
- console.log(" npx @geoly-ai/social-hub-cli skills update --all --yes");
40
- console.log(" social-hub skills install --agent claude-code --project --yes");
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 agents = listAgents();
50
- const agentChoices = [
51
- ...agents.map((a) => ({ label: a.label, value: a.id })),
52
- { label: "Custom directory", value: "__custom__" },
53
- ];
54
- const selectedAgents = await promptSelect(rl, "Select target agent(s):", agentChoices, true);
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
- const scopeAns = (await rl.question("Scope [project/global] (default project): ")).trim();
57
- if (scopeAns === "global")
58
- scope = "global";
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
- const source = resolveBundledSource();
66
- const skillChoices = source.manifest.skills.map((s) => ({
67
- label: `${s.id} ${s.description}`,
68
- value: s.id,
69
- }));
70
- skillChoices.unshift({ label: "All social-hub skills", value: "*" });
71
- const selectedSkills = await promptSelect(rl, "Select skill(s):", skillChoices, true);
72
- const actionChoices = [
73
- { label: "Install missing skills", value: "install" },
74
- { label: "Update installed skills", value: "update" },
75
- { label: "Reinstall selected skills", value: "reinstall" },
76
- ];
77
- const [actionRaw] = await promptSelect(rl, "Action:", actionChoices, false);
78
- const action = actionRaw;
79
- const methodAns = (await rl.question("Method [copy/symlink] (default copy): ")).trim();
80
- const method = methodAns === "symlink" ? "symlink" : "copy";
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();
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/skills/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/skills/tui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tui.test.d.ts.map
@@ -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.6",
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-authz": "0.0.3",
24
- "@geoly-ai/social-hub-sdk": "0.0.3"
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
- # 交互式(选 agent、skill、install/update)
35
- social-hub skills tui
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 install --agent claude-code --project --yes
40
- social-hub skills install --agent codex --global --all --yes
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
- # 更新到当前 CLI 内置版本
43
- social-hub skills update --all --yes
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
- npx @geoly-ai/social-hub-cli skills bootstrap
50
- pnpm dlx @geoly-ai/social-hub-cli skills list
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 --agent cursor` 或 `social-hub skills tui` |
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` |
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
3
  "package": "social-ops-hub",
4
- "cliVersion": "0.0.4",
4
+ "cliVersion": "0.0.8",
5
5
  "repository": "social-ops-hub",
6
6
  "publish": {
7
7
  "registry": "https://skill.sh",
@@ -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.1"
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 "$T" -n 50
14
- social-hub accounts get -t "$T" --id "<uuid>"
15
- social-hub accounts update -t "$T" --id "<uuid>" -j '{"workflowStage":"active",...}'
16
- social-hub accounts delete -t "$T" --id "<uuid>" # 危险:需确认
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 "$T" --account "<uuid>"
19
- social-hub accounts brand-bindings add -t "$T" --account "<uuid>" -j '{"brandId":"..."}'
20
- social-hub accounts brand-bindings remove -t "$T" --account "<uuid>" --brand "<brandId>"
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 "$T" --account "<uuid>"
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、api-keys、agent-teams、users。
5
- 用户要改系统设置、发团队邀请、列成员、轮换 API Key 时用本 skill;高风险写操作需 --apply。
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.1"
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 "$T"
25
- social-hub invites create -t "$T" --email user@example.com --role manager --dry-run
26
- social-hub invites create -t "$T" --email user@example.com --role manager --apply
27
- social-hub invites revoke -t "$T" --id "<inviteId>" --apply
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
- API Keys、users、agent-teams 等见 `social-hub-cli` 管理章节。
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.1"
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 "$T"
14
- social-hub jobs list -t "$T" --status scheduled
15
- social-hub jobs create -t "$T" -j '{"socialAccountId":"...","subreddit":"...","runAt":"..."}'
16
- social-hub jobs retry -t "$T" --job "<id>"
17
- social-hub jobs cancel -t "$T" --job "<id>"
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
- 遗留:`jobs agent-status` 仍可更新状态,但 OpenClaw 推荐:
27
+ OpenClaw / Agent 运行时优先:
21
28
 
22
29
  ```bash
23
- social-hub ops claim-next -t "$T" --agent "<agentId>"
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 链路时使用。