@geoly-ai/social-hub-cli 0.3.23 → 0.3.25
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 +13 -0
- package/dist/cmd-manifest.json +15 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/register-subreddit-assets.d.ts +5 -0
- package/dist/register-subreddit-assets.d.ts.map +1 -0
- package/dist/register-subreddit-assets.js +347 -0
- package/dist/register-subreddit-assets.js.map +1 -0
- package/dist/register-subreddit-assets.test.d.ts +2 -0
- package/dist/register-subreddit-assets.test.d.ts.map +1 -0
- package/dist/register-subreddit-assets.test.js +124 -0
- package/dist/register-subreddit-assets.test.js.map +1 -0
- package/package.json +3 -3
- package/skills/manifest.json +1 -1
- package/skills/social-hub-calendar-directives/SKILL.md +69 -0
- package/skills/social-hub-content-review/SKILL.md +10 -0
- package/skills/social-hub-publishing/SKILL.md +16 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,19 @@ All notable changes to `@geoly-ai/social-hub-cli` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Release workflow: `pnpm release:cli` → `pnpm publish:cli`.
|
|
6
6
|
|
|
7
|
+
## [0.3.25] - 2026-08-25
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- 版主账号保护 P1A(迁移 0160)—— 资产/绑定登记 + 全执行面 guardrail,默认 off
|
|
12
|
+
- 评论链的无品牌通路(N6,迁移 0158)+ worker 侧复验接线
|
|
13
|
+
|
|
14
|
+
## [0.3.24] - 2026-08-24
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- R2 草稿幂等 + R7 执行权排他 + 无品牌授权原语与写侧补闸
|
|
19
|
+
|
|
7
20
|
## [0.3.23] - 2026-08-24
|
|
8
21
|
|
|
9
22
|
### Added
|
package/dist/cmd-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-08-
|
|
3
|
-
"cliVersion": "0.3.
|
|
2
|
+
"generatedAt": "2026-08-25T06:11:46.367Z",
|
|
3
|
+
"cliVersion": "0.3.25",
|
|
4
4
|
"commands": [
|
|
5
5
|
"accounts",
|
|
6
6
|
"accounts brand-bindings",
|
|
@@ -452,6 +452,19 @@
|
|
|
452
452
|
"subreddit-annotations",
|
|
453
453
|
"subreddit-annotations list",
|
|
454
454
|
"subreddit-annotations upsert",
|
|
455
|
+
"subreddit-asset",
|
|
456
|
+
"subreddit-asset get",
|
|
457
|
+
"subreddit-asset list",
|
|
458
|
+
"subreddit-asset moderator",
|
|
459
|
+
"subreddit-asset moderator add",
|
|
460
|
+
"subreddit-asset moderator replace",
|
|
461
|
+
"subreddit-asset moderator revoke",
|
|
462
|
+
"subreddit-asset protection",
|
|
463
|
+
"subreddit-asset protection get",
|
|
464
|
+
"subreddit-asset protection set",
|
|
465
|
+
"subreddit-asset register",
|
|
466
|
+
"subreddit-asset register-subreddit",
|
|
467
|
+
"subreddit-asset set-status",
|
|
455
468
|
"users",
|
|
456
469
|
"users create",
|
|
457
470
|
"users list",
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8DpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAqiF9B,8DAA8D;AAC9D,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,GAAG,IAAI,CAOf;AAg+BD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE,CAAC;AAQF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE;IACN,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAkJnE;AAyqBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE,GAAG,MAAM,CAiBT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAyCpD;AAgyDD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { registerAccountsExtensions, registerAuthAndConfig, registerAuthzEvaluat
|
|
|
6
6
|
import { registerAdminCommands } from "./register-admin.js";
|
|
7
7
|
import { registerSubredditStyleCommands } from "./register-subreddit-style.js";
|
|
8
8
|
import { registerContentClassificationCommands } from "./register-content-classification.js";
|
|
9
|
+
import { registerSubredditAssetCommands } from "./register-subreddit-assets.js";
|
|
9
10
|
import { registerNotifyCommands } from "./register-notify.js";
|
|
10
11
|
import { registerFeishuIdentityCommands } from "./register-feishu-identities.js";
|
|
11
12
|
import { registerCalendarDirectiveCommands, calendarPatchNeedsGate, deliveryModeChangeRequiresApply, } from "./register-calendar-directives.js";
|
|
@@ -38,6 +39,7 @@ registerAgentContext(program);
|
|
|
38
39
|
registerAdminCommands(program);
|
|
39
40
|
registerSubredditStyleCommands(program);
|
|
40
41
|
registerContentClassificationCommands(program);
|
|
42
|
+
registerSubredditAssetCommands(program);
|
|
41
43
|
registerNotifyCommands(program);
|
|
42
44
|
registerFeishuIdentityCommands(program);
|
|
43
45
|
registerBatchAndExport(program);
|
|
@@ -580,6 +582,7 @@ drafts
|
|
|
580
582
|
.option("--campaign <uuid>", "campaignId 过滤(legacy)")
|
|
581
583
|
.option("--status <list>", "status 过滤(单值或逗号分隔)")
|
|
582
584
|
.option("--subreddit <list>", "目标板块过滤(单值或逗号分隔;大小写与 `r/` 前缀不敏感)")
|
|
585
|
+
.option("--source-ref <list>", "创建幂等键反查(单值或逗号分隔)——迁移期把本地 legacy key 映射到 Hub 草稿")
|
|
583
586
|
.option("--search <text>", "标题/正文关键词过滤")
|
|
584
587
|
.option("-n, --limit <n>", "limit", "50")
|
|
585
588
|
.option("--offset <n>", "offset")
|
|
@@ -591,6 +594,7 @@ drafts
|
|
|
591
594
|
campaignId: opts.campaign,
|
|
592
595
|
status: opts.status,
|
|
593
596
|
subreddit: opts.subreddit,
|
|
597
|
+
sourceRef: opts.sourceRef,
|
|
594
598
|
search: opts.search,
|
|
595
599
|
});
|
|
596
600
|
console.log(JSON.stringify(res, null, 2));
|
|
@@ -1119,8 +1123,10 @@ drafts
|
|
|
1119
1123
|
.command("create")
|
|
1120
1124
|
.description("POST /content-drafts")
|
|
1121
1125
|
.option("-t, --team <teamId>", "Team UUID(缺省用当前 context)")
|
|
1122
|
-
.requiredOption("-j, --json <json>", "{ brandId, title, body, campaignId?, subreddit?, referenceUrl? }" +
|
|
1123
|
-
"(referenceUrl =
|
|
1126
|
+
.requiredOption("-j, --json <json>", "{ brandId, title, body, campaignId?, subreddit?, referenceUrl?, sourceRef? }" +
|
|
1127
|
+
"(referenceUrl = 写作参考/归因备注落地页,**不参与发布执行**,不会被发出去;" +
|
|
1128
|
+
"sourceRef = 创建幂等键,重试同一个 key 复用既有草稿并返回 reused:true," +
|
|
1129
|
+
"同 key 换内容则报 409——改稿走 update 或换新 key)")
|
|
1124
1130
|
.action(async (opts) => {
|
|
1125
1131
|
let body;
|
|
1126
1132
|
try {
|
|
@@ -1244,7 +1250,7 @@ commentDrafts
|
|
|
1244
1250
|
.command("create")
|
|
1245
1251
|
.description("POST /comment-drafts")
|
|
1246
1252
|
.option("-t, --team <teamId>", "Team UUID(缺省用当前 context)")
|
|
1247
|
-
.requiredOption("-j, --json <json>",
|
|
1253
|
+
.requiredOption("-j, --json <json>", '{ brandId?, brandMention?("none"), body, subreddit, campaignId?, threadPermalink?, parentCommentId?, threadContext? }(省略 brandId 必须显式传 brandMention:"none")')
|
|
1248
1254
|
.action(async (opts) => {
|
|
1249
1255
|
let body;
|
|
1250
1256
|
try {
|