@geoly-ai/social-hub-cli 0.1.10 → 0.1.12

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 (100) hide show
  1. package/CHANGELOG.md +80 -1
  2. package/dist/cmd-manifest.json +2 -2
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +1 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/config.test.js +4 -1
  7. package/dist/config.test.js.map +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +39 -14
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.test.js +7 -1
  12. package/dist/index.test.js.map +1 -1
  13. package/dist/output.d.ts.map +1 -1
  14. package/dist/output.js.map +1 -1
  15. package/dist/permissions-gates-admin.d.ts.map +1 -1
  16. package/dist/permissions-gates-admin.js +35 -7
  17. package/dist/permissions-gates-admin.js.map +1 -1
  18. package/dist/permissions.d.ts.map +1 -1
  19. package/dist/permissions.js +5 -1
  20. package/dist/permissions.js.map +1 -1
  21. package/dist/permissions.test.js +1 -1
  22. package/dist/permissions.test.js.map +1 -1
  23. package/dist/register-admin.d.ts.map +1 -1
  24. package/dist/register-admin.js +1 -3
  25. package/dist/register-admin.js.map +1 -1
  26. package/dist/register-batch.d.ts.map +1 -1
  27. package/dist/register-batch.js +1 -1
  28. package/dist/register-batch.js.map +1 -1
  29. package/dist/register-extensions.d.ts.map +1 -1
  30. package/dist/register-extensions.js +3 -1
  31. package/dist/register-extensions.js.map +1 -1
  32. package/dist/register-shared.d.ts.map +1 -1
  33. package/dist/register-shared.js +2 -4
  34. package/dist/register-shared.js.map +1 -1
  35. package/dist/register-skills.d.ts +1 -0
  36. package/dist/register-skills.d.ts.map +1 -1
  37. package/dist/register-skills.js +17 -7
  38. package/dist/register-skills.js.map +1 -1
  39. package/dist/register-skills.test.js.map +1 -1
  40. package/dist/skills/doctor.d.ts.map +1 -1
  41. package/dist/skills/doctor.js +3 -3
  42. package/dist/skills/doctor.js.map +1 -1
  43. package/dist/skills/github-source.d.ts.map +1 -1
  44. package/dist/skills/github-source.js +10 -3
  45. package/dist/skills/github-source.js.map +1 -1
  46. package/dist/skills/install-planner.d.ts.map +1 -1
  47. package/dist/skills/install-planner.js +8 -2
  48. package/dist/skills/install-planner.js.map +1 -1
  49. package/dist/skills/installer.d.ts.map +1 -1
  50. package/dist/skills/installer.js +3 -2
  51. package/dist/skills/installer.js.map +1 -1
  52. package/dist/skills/manifest.d.ts.map +1 -1
  53. package/dist/skills/manifest.js.map +1 -1
  54. package/dist/skills/marketplace-adapters/claude-plugin.d.ts.map +1 -1
  55. package/dist/skills/marketplace-adapters/claude-plugin.js.map +1 -1
  56. package/dist/skills/marketplace-adapters/skills-sh.d.ts.map +1 -1
  57. package/dist/skills/marketplace-adapters/skills-sh.js +1 -1
  58. package/dist/skills/marketplace-adapters/skills-sh.js.map +1 -1
  59. package/dist/skills/prompt-state.d.ts +62 -0
  60. package/dist/skills/prompt-state.d.ts.map +1 -0
  61. package/dist/skills/prompt-state.js +205 -0
  62. package/dist/skills/prompt-state.js.map +1 -0
  63. package/dist/skills/prompt-state.test.d.ts +2 -0
  64. package/dist/skills/prompt-state.test.d.ts.map +1 -0
  65. package/dist/skills/prompt-state.test.js +218 -0
  66. package/dist/skills/prompt-state.test.js.map +1 -0
  67. package/dist/skills/prompt.d.ts +23 -0
  68. package/dist/skills/prompt.d.ts.map +1 -0
  69. package/dist/skills/prompt.js +97 -0
  70. package/dist/skills/prompt.js.map +1 -0
  71. package/dist/skills/prompt.test.d.ts +2 -0
  72. package/dist/skills/prompt.test.d.ts.map +1 -0
  73. package/dist/skills/prompt.test.js +98 -0
  74. package/dist/skills/prompt.test.js.map +1 -0
  75. package/dist/skills/source-resolver.d.ts.map +1 -1
  76. package/dist/skills/source-resolver.js +6 -3
  77. package/dist/skills/source-resolver.js.map +1 -1
  78. package/dist/skills/state-store.d.ts.map +1 -1
  79. package/dist/skills/state-store.js.map +1 -1
  80. package/dist/skills/target-detector.d.ts.map +1 -1
  81. package/dist/skills/target-detector.js +3 -1
  82. package/dist/skills/target-detector.js.map +1 -1
  83. package/dist/skills/target-detector.test.js +3 -1
  84. package/dist/skills/target-detector.test.js.map +1 -1
  85. package/dist/skills/tui.d.ts +3 -0
  86. package/dist/skills/tui.d.ts.map +1 -1
  87. package/dist/skills/tui.js +79 -23
  88. package/dist/skills/tui.js.map +1 -1
  89. package/dist/skills/tui.test.js +10 -2
  90. package/dist/skills/tui.test.js.map +1 -1
  91. package/dist/update-check.d.ts.map +1 -1
  92. package/dist/update-check.js.map +1 -1
  93. package/dist/update-check.test.js.map +1 -1
  94. package/package.json +1 -1
  95. package/skills/manifest.json +1 -1
  96. package/skills/social-hub-accounts/SKILL.md +4 -4
  97. package/skills/social-hub-cli/evals/evals.json +4 -1
  98. package/skills/social-hub-events-observability/SKILL.md +4 -4
  99. package/skills/social-hub-openclaw-context/SKILL.md +1 -1
  100. package/skills/social-hub-shared/SKILL.md +28 -28
package/CHANGELOG.md CHANGED
@@ -4,18 +4,46 @@ 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.1.12] - 2026-06-11
8
+
9
+ ### Fixed
10
+
11
+ - compact scrolling viewport for skills prompts; verify publishes
12
+
13
+ ### Changed
14
+
15
+ - keep generated CHANGELOG prettier-clean
16
+
17
+ ## [0.1.11] - 2026-06-11
18
+
19
+ ### Added
20
+
21
+ - hybrid arrow-key + typed-number prompts for skills installer
22
+
23
+ ### Fixed
24
+
25
+ - repair stale e2e/unit tests, prune dead code, harden intelligence page
26
+
27
+ ### Changed
28
+
29
+ - style: apply prettier across the repository
30
+
7
31
  ## [0.1.10] - 2026-06-09
8
32
 
9
33
  Normalize reddit post opsStatus filters; align stats filters; update social-hub-posts skill and reddit stats CLI options.
10
34
 
11
35
  ### Added
36
+
12
37
  - improve refresh fallback routing and post performance UX
13
38
 
14
39
  ### Fixed
40
+
15
41
  - normalize opsStatus filters and align stats query scope
42
+
16
43
  ## [0.1.9] - 2026-06-08
17
44
 
18
45
  ### Added
46
+
19
47
  - systematize hub ingest and runtime gates
20
48
  - add persona pool alias seeding
21
49
  - Hub-first ops runtime, style-curator skill, and post list UX
@@ -30,16 +58,21 @@ Normalize reddit post opsStatus filters; align stats filters; update social-hub-
30
58
  - add system persona library and account personaId linking
31
59
 
32
60
  ### Fixed
61
+
33
62
  - auto-detect managed dirs for skills update/remove
34
63
 
35
64
  ### Changed
65
+
36
66
  - close admin gap with db/api/e2e coverage
67
+
37
68
  ## [0.1.8] - 2026-06-05
38
69
 
39
70
  Bundle updated Social Hub subreddit pool skills and persona pool alias guidance.
71
+
40
72
  ## [0.1.7] - 2026-06-04
41
73
 
42
74
  ### Added
75
+
43
76
  - Hub-first ops runtime, style-curator skill, and post list UX
44
77
  - complete repost link support
45
78
  - brand-first publishing scope, persona-aware pools, cli update check
@@ -53,15 +86,19 @@ Bundle updated Social Hub subreddit pool skills and persona pool alias guidance.
53
86
  - reddit --aggregate/--all 分页,stats --range 365|all;SDK 补聚合与 offset 参数
54
87
 
55
88
  ### Fixed
89
+
56
90
  - auto-detect managed dirs for skills update/remove
57
91
 
58
92
  ### Changed
93
+
59
94
  - close admin gap with db/api/e2e coverage
95
+
60
96
  ## [0.1.6] - 2026-06-04
61
97
 
62
98
  Post Performance repost-link fields and CLI skill/help alignment.
63
99
 
64
100
  ### Added
101
+
65
102
  - `reddit create-snapshot`, `reddit update`, and `reddit batch-upsert` help examples now document `firstRepostLink` / `secondRepostLink`.
66
103
  - bundled `social-hub-posts` skill documents repost-link create/update/batch-upsert payloads.
67
104
 
@@ -70,6 +107,7 @@ Post Performance repost-link fields and CLI skill/help alignment.
70
107
  npm registry update check with agent upgrade hints; brand-first and persona-aware bundled skills.
71
108
 
72
109
  ### Added
110
+
73
111
  - brand-first publishing scope, persona-aware pools, cli update check
74
112
  - persona-aware subreddit candidates and diversity selection
75
113
  - extend system library fields and import dataset
@@ -83,15 +121,19 @@ npm registry update check with agent upgrade hints; brand-first and persona-awar
83
121
  - team subreddit blocklists and style-mark CLI set
84
122
 
85
123
  ### Fixed
124
+
86
125
  - auto-detect managed dirs for skills update/remove
126
+
87
127
  ## [0.1.4] - 2026-06-03
88
128
 
89
129
  Persona-aware pool queries (--persona-aware, --tier, --include-debug), updated openclaw-context CLI skill, and subreddit candidate diversity fields.
130
+
90
131
  ## [0.1.3] - 2026-06-03
91
132
 
92
133
  Persona library list filters and import
93
134
 
94
135
  ### Added
136
+
95
137
  - extend system library fields and import dataset
96
138
  - server-side filters, refresh run logs, CLI/SDK sync
97
139
  - sanctions update/delete and blocklist UI on RiskCenter
@@ -105,12 +147,15 @@ Persona library list filters and import
105
147
  - extend events append CLI flags and interaction flow
106
148
 
107
149
  ### Fixed
150
+
108
151
  - auto-detect managed dirs for skills update/remove
152
+
109
153
  ## [0.1.2] - 2026-06-02
110
154
 
111
155
  Reddit post snapshot filters, refresh execution logs, and `containsBrandKeyword` field docs.
112
156
 
113
157
  ### Added
158
+
114
159
  - `reddit refresh-logs` — GET `/reddit-post-snapshots/refresh-logs` (cron + manual refresh run history)
115
160
  - `reddit list` query params: `--ops-status`, `--post-type`, `--contains-brand-keyword`, `--primary-product`
116
161
  - SDK `batchUpsertRedditPostSnapshotsByPermalink` item type includes `containsBrandKeyword`
@@ -121,6 +166,7 @@ Reddit post snapshot filters, refresh execution logs, and `containsBrandKeyword`
121
166
  Subreddit sanctions lifecycle: update and delete.
122
167
 
123
168
  ### Added
169
+
124
170
  - `compliance sanctions-update` — PATCH `/subreddit-sanctions/:id` (status/reason/expiresAt)
125
171
  - `compliance sanctions-delete` — DELETE `/subreddit-sanctions/:id`
126
172
 
@@ -129,6 +175,7 @@ Subreddit sanctions lifecycle: update and delete.
129
175
  Subreddit blocklists are now **system-level** (`/v1/system/subreddit-blocklists`); shared across all teams. CLI `compliance blocklists-*` no longer requires `-t` (passing `-t` prints a deprecation warning and is ignored).
130
176
 
131
177
  ### Changed
178
+
132
179
  - blocklists moved from team-scoped to system-scoped API, SDK, and CLI
133
180
  - guardrails and agent-context read system blocklists (no per-team duplication)
134
181
 
@@ -137,34 +184,46 @@ Subreddit blocklists are now **system-level** (`/v1/system/subreddit-blocklists`
137
184
  Status-snapshot externalRef idempotency; CLI cmd manifest export; social-hub-accounts skill docs.
138
185
 
139
186
  ### Added
187
+
140
188
  - status-snapshot externalRef idempotency and CLI cmd manifest
189
+
141
190
  ## [0.0.21] - 2026-06-02
142
191
 
143
- System persona library: personas system-* commands and accounts --persona/--category filters.
192
+ System persona library: personas system-\* commands and accounts --persona/--category filters.
144
193
 
145
194
  ### Added
195
+
146
196
  - add system persona library and account personaId linking
197
+
147
198
  ## [0.0.20] - 2026-06-01
148
199
 
149
200
  ### Fixed
201
+
150
202
  - auto-detect managed dirs for skills update/remove
203
+
151
204
  ## [0.0.19] - 2026-06-01
152
205
 
153
206
  ### Added
207
+
154
208
  - reddit --aggregate/--all 分页,stats --range 365|all;SDK 补聚合与 offset 参数
209
+
155
210
  ## [0.0.18] - 2026-06-01
156
211
 
157
212
  ### Added
213
+
158
214
  - reddit list/list-full/stats 支持 --brand;SDK 增加 brandId;skills 对齐系统级品牌
159
215
  - team subreddit blocklists and style-mark CLI set
216
+
160
217
  ## [0.0.17] - 2026-06-01
161
218
 
162
219
  feat: subreddit blocklists + style-mark external upsert
220
+
163
221
  ## [0.0.16] - 2026-05-29
164
222
 
165
223
  Bundled skill docs aligned with Hub-first CLI syntax; browser-env telemetry and ops runtime extensions.
166
224
 
167
225
  ### Added
226
+
168
227
  - hub runtime readiness, bundled skills sync, and skill doc alignment
169
228
  - extend events append CLI flags and interaction flow
170
229
  - harden OpenClaw interaction flow
@@ -174,24 +233,29 @@ Bundled skill docs aligned with Hub-first CLI syntax; browser-env telemetry and
174
233
  - add reddit batch-upsert and drop import-feishu command
175
234
 
176
235
  ### Fixed
236
+
177
237
  - upsert feishu snapshots by feishuRecordId
178
238
  - default apiUrl to production Social Ops Hub
179
239
  - parse conventional commit subjects for CHANGELOG
180
240
  - default skills install to TUI with CLI prefill
181
241
 
182
242
  ### Changed
243
+
183
244
  - automate CLI versioning and CHANGELOG
184
245
  - add publish:cli script for single-package npm publish
246
+
185
247
  ## [0.0.15] - 2026-05-28
186
248
 
187
249
  Hub runtime readiness: authz evaluate resource/action, expanded permission gates, bundled skills sync on publish.
188
250
 
189
251
  ### Added
252
+
190
253
  - `authz evaluate --resource` / `--action` for runtime preflight checks
191
254
  - Permission gates for ops runtime, browser-envs, and personas commands
192
255
  - Bundled skills sync and freshness verification before CLI publish
193
256
 
194
257
  ### Fixed
258
+
195
259
  - `authz evaluate` permission gate uses `task:read` instead of manager-only `apiKey:list`
196
260
  - Bundled skill docs aligned with Hub-first CLI syntax
197
261
 
@@ -200,48 +264,63 @@ Hub runtime readiness: authz evaluate resource/action, expanded permission gates
200
264
  OpenClaw Hub-first interaction flow: events append flags, style-marks/curator CLI, SDK 0.0.7
201
265
 
202
266
  ### Added
267
+
203
268
  - extend events append CLI flags and interaction flow
204
269
  - harden OpenClaw interaction flow
270
+
205
271
  ## [0.0.13] - 2026-05-22
206
272
 
207
273
  Graph v2, compliance rule caches, intelligence CLI extensions, and modular agent skills (13 skills).
208
274
 
209
275
  ### Added
276
+
210
277
  - add graph v2, intelligence extensions, modular skills
211
278
 
212
279
  ### Fixed
280
+
213
281
  - upsert feishu snapshots by feishuRecordId
282
+
214
283
  ## [0.0.12] - 2026-05-22
215
284
 
216
285
  Add system brands and brand-members commands; depends on @geoly-ai/social-hub-sdk@0.0.5.
217
286
 
218
287
  ### Added
288
+
219
289
  - add system brands and brand-members commands
290
+
220
291
  ## [0.0.11] - 2026-05-21
221
292
 
222
293
  Support never duration and permission-matrix duration options
223
294
 
224
295
  ### Added
296
+
225
297
  - granular CLI token duration permissions via matrix
226
298
 
227
299
  ### Fixed
300
+
228
301
  - default apiUrl to production Social Ops Hub
302
+
229
303
  ## [0.0.10] - 2026-05-21
230
304
 
231
305
  Default CLI apiUrl to production Social Ops Hub (https://reddit.eclick-geo.com/api).
306
+
232
307
  ## [0.0.9] - 2026-05-21
233
308
 
234
309
  Remove reddit import-feishu; add reddit batch-upsert for Feishu-to-Hub sync via local lark-cli.
235
310
 
236
311
  ### Added
312
+
237
313
  - add reddit batch-upsert and drop import-feishu command
238
314
 
239
315
  ### Fixed
316
+
240
317
  - parse conventional commit subjects for CHANGELOG
241
318
 
242
319
  ### Changed
320
+
243
321
  - automate CLI versioning and CHANGELOG
244
322
  - add publish:cli script for single-package npm publish
323
+
245
324
  ## [0.0.8] - 2026-05-21
246
325
 
247
326
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  {
2
- "generatedAt": "2026-06-09T10:02:44.163Z",
3
- "cliVersion": "0.1.10",
2
+ "generatedAt": "2026-06-11T03:02:07.016Z",
3
+ "cliVersion": "0.1.12",
4
4
  "commands": [
5
5
  "accounts",
6
6
  "accounts brand-bindings",
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAOnE,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,cAAc,IAAI,kBAAkB,CAenD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAY/D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,SAAI,GAAG,MAAM,CAIzE;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,IAAI;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACnH,CAoCA;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,kBAAkB,CAWpB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAOnE,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,cAAc,IAAI,kBAAkB,CAenD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAY/D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,SAAI,GAAG,MAAM,CAIzE;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,IAAI;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE;QACP,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;QACnC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;QAChC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;KACjC,CAAC;CACH,CAoCA;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,kBAAkB,CAWpB"}
package/dist/config.js CHANGED
@@ -1,4 +1,4 @@
1
- import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
1
+ import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
2
2
  import { homedir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  /** Default Hub API when env/config file omit apiUrl. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,wDAAwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAEnE,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,qBAAqB;IACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;AAChF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB,CAAC;QACrD,OAAO;YACL,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACrE,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACrE,SAAS,EACP,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACrE,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA0B;IACvD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,aAAa,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACjE,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,IAAI,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9B,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAyB,EAAE,OAAO,GAAG,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,gBAAgB;IAU9B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE;QACtC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QACnB,eAAe,CAAC;IAClB,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE;QACtC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;QACtB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QACnB,SAAS,CAAC;IACZ,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAE7E,OAAO;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO,EAAE;YACP,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC,MAAM;oBACX,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,SAAS;YACf,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM;oBAC7B,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,MAAM;YACZ,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC,MAAM;oBACX,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,MAAM;SACb;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAkC;IAElC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,IAAI,GAAuB,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAU,EAAE,CAAC;QACvE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;YACjC,IAAI,KAAK;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;;gBACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -8,7 +8,10 @@ describe("config", () => {
8
8
  expect(maskSecret("sk_live_abcdefghijklmnop")).toMatch(/^sk_l…/);
9
9
  });
10
10
  it("mergeConfigPatch clears empty apiKey", () => {
11
- const next = mergeConfigPatch({ apiKey: "", apiUrl: "https://hub.example" });
11
+ const next = mergeConfigPatch({
12
+ apiKey: "",
13
+ apiUrl: "https://hub.example",
14
+ });
12
15
  expect(next.apiUrl).toBe("https://hub.example");
13
16
  expect(next.apiKey).toBeUndefined();
14
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC;YAC5B,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AA2lG9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AA4vG9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
- import { getSocialHubHealth } from "@geoly-ai/social-hub-sdk";
3
+ import { getSocialHubHealth, } from "@geoly-ai/social-hub-sdk";
4
4
  import { getBaseUrl, requireClient } from "./client.js";
5
5
  import { registerAccountsExtensions, registerAuthAndConfig, registerAuthzEvaluate, registerPermissionsExplain, registerRedditExtensions, listRedditSnapshotsPaginated, redditAggregateQueryParams, } from "./register-extensions.js";
6
6
  import { registerAdminCommands } from "./register-admin.js";
7
7
  import { assertApplyOrDryRun } from "./dry-run.js";
8
8
  import { withPermissionGate } from "./permission-runner.js";
9
9
  import { registerBatchAndExport } from "./register-batch.js";
10
- import { registerAgentContext, registerOpsRuntime, } from "./register-ops.js";
10
+ import { registerAgentContext, registerOpsRuntime } from "./register-ops.js";
11
11
  import { registerDoctorAndVersion } from "./register-shared.js";
12
12
  import { registerSkillsCommands } from "./register-skills.js";
13
13
  import { maybeNotifyUpdate } from "./update-check.js";
@@ -66,7 +66,9 @@ events
66
66
  const res = await requireClient().appendEvent(opts.team, {
67
67
  type: opts.type,
68
68
  externalRef: opts.externalRef ??
69
- (typeof payload.externalRef === "string" ? payload.externalRef : undefined) ??
69
+ (typeof payload.externalRef === "string"
70
+ ? payload.externalRef
71
+ : undefined) ??
70
72
  (typeof payload.event_id === "string" ? payload.event_id : undefined),
71
73
  socialAccountId: opts.account ??
72
74
  (typeof payload.socialAccountId === "string"
@@ -81,7 +83,9 @@ events
81
83
  ? payload.result
82
84
  : undefined),
83
85
  targetUrl: opts.targetUrl ??
84
- (typeof payload.targetUrl === "string" ? payload.targetUrl : undefined) ??
86
+ (typeof payload.targetUrl === "string"
87
+ ? payload.targetUrl
88
+ : undefined) ??
85
89
  (typeof payload.permalink === "string" ? payload.permalink : undefined),
86
90
  actor: opts.actor ??
87
91
  (payload.actor === "user" ||
@@ -247,7 +251,9 @@ dashboard
247
251
  const res = await requireClient().getDashboardSummary(opts.team, {
248
252
  from: opts.from,
249
253
  to: opts.to,
250
- interactionTrendDays: opts.trendDays ? Number(opts.trendDays) : undefined,
254
+ interactionTrendDays: opts.trendDays
255
+ ? Number(opts.trendDays)
256
+ : undefined,
251
257
  campaignId: opts.campaign,
252
258
  brandId: opts.brand,
253
259
  });
@@ -762,7 +768,7 @@ drafts
762
768
  .command("create")
763
769
  .description("POST /content-drafts")
764
770
  .requiredOption("-t, --team <teamId>", "Team UUID")
765
- .requiredOption("-j, --json <json>", '{ brandId, title, body, campaignId? }')
771
+ .requiredOption("-j, --json <json>", "{ brandId, title, body, campaignId? }")
766
772
  .action(async (opts) => {
767
773
  let body;
768
774
  try {
@@ -1111,7 +1117,9 @@ plans
1111
1117
  // Group B: new command groups
1112
1118
  // ═══════════════════════════════════════════════════════════════════════════
1113
1119
  // --- agent-teams ---
1114
- const agentTeams = program.command("agent-teams").description("Agent 团队管理(admin only)");
1120
+ const agentTeams = program
1121
+ .command("agent-teams")
1122
+ .description("Agent 团队管理(admin only)");
1115
1123
  agentTeams
1116
1124
  .command("list")
1117
1125
  .description("GET /v1/agent-teams")
@@ -1145,7 +1153,9 @@ agentTeams
1145
1153
  console.log(JSON.stringify(res, null, 2));
1146
1154
  });
1147
1155
  });
1148
- const migration = program.command("migration").description("Hub migration helpers");
1156
+ const migration = program
1157
+ .command("migration")
1158
+ .description("Hub migration helpers");
1149
1159
  const migrationWorkspaceDocs = migration
1150
1160
  .command("workspace-docs")
1151
1161
  .description("Workspace document refs");
@@ -1258,7 +1268,9 @@ agentTeams
1258
1268
  });
1259
1269
  });
1260
1270
  // --- intelligence (subreddit-intelligence) ---
1261
- const pools = program.command("pools").description("运营板块池:目录、别名、准入规则");
1271
+ const pools = program
1272
+ .command("pools")
1273
+ .description("运营板块池:目录、别名、准入规则");
1262
1274
  pools
1263
1275
  .command("catalog-list")
1264
1276
  .description("GET .../subreddit-pools/catalog")
@@ -1404,7 +1416,9 @@ pools
1404
1416
  const res = await requireClient().deleteSubredditPoolTierRule(opts.team, opts.id);
1405
1417
  console.log(JSON.stringify(res, null, 2));
1406
1418
  });
1407
- const intel = program.command("intelligence").description("板块情报与 KOL 挖掘");
1419
+ const intel = program
1420
+ .command("intelligence")
1421
+ .description("板块情报与 KOL 挖掘");
1408
1422
  intel
1409
1423
  .command("industry-pools-list")
1410
1424
  .description("GET .../subreddit-intelligence/industry-pools")
@@ -1800,7 +1814,9 @@ usersCmd
1800
1814
  });
1801
1815
  });
1802
1816
  // --- brand-members ---
1803
- const brandMembersCmd = program.command("brand-members").description("品牌成员");
1817
+ const brandMembersCmd = program
1818
+ .command("brand-members")
1819
+ .description("品牌成员");
1804
1820
  brandMembersCmd
1805
1821
  .command("system-list")
1806
1822
  .description("GET /system/brand-members (preferred)")
@@ -2400,14 +2416,19 @@ reddit
2400
2416
  console.log(JSON.stringify(res, null, 2));
2401
2417
  });
2402
2418
  // --- session ---
2403
- const session = program.command("session").description("会话管理(cookie-based)");
2419
+ const session = program
2420
+ .command("session")
2421
+ .description("会话管理(cookie-based)");
2404
2422
  session
2405
2423
  .command("login")
2406
2424
  .description("POST /v1/session/login")
2407
2425
  .requiredOption("--email <email>", "邮箱")
2408
2426
  .requiredOption("--password <password>", "密码")
2409
2427
  .action(async (opts) => {
2410
- const res = await requireClient().sessionLogin({ email: opts.email, password: opts.password });
2428
+ const res = await requireClient().sessionLogin({
2429
+ email: opts.email,
2430
+ password: opts.password,
2431
+ });
2411
2432
  console.log(JSON.stringify(res, null, 2));
2412
2433
  });
2413
2434
  session
@@ -2439,7 +2460,11 @@ session
2439
2460
  .requiredOption("--password <password>", "新密码")
2440
2461
  .option("--team <teamId>", "Team UUID(可选)")
2441
2462
  .action(async (opts) => {
2442
- const res = await requireClient().sessionSetPassword({ email: opts.email, password: opts.password, teamId: opts.team });
2463
+ const res = await requireClient().sessionSetPassword({
2464
+ email: opts.email,
2465
+ password: opts.password,
2466
+ teamId: opts.team,
2467
+ });
2443
2468
  console.log(JSON.stringify(res, null, 2));
2444
2469
  });
2445
2470
  session