@geoly-ai/social-hub-cli 0.1.10 → 0.1.11
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 +66 -1
- package/dist/cmd-manifest.json +2 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +4 -1
- package/dist/config.test.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -14
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +7 -1
- package/dist/index.test.js.map +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js.map +1 -1
- package/dist/permissions-gates-admin.d.ts.map +1 -1
- package/dist/permissions-gates-admin.js +35 -7
- package/dist/permissions-gates-admin.js.map +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +5 -1
- package/dist/permissions.js.map +1 -1
- package/dist/permissions.test.js +1 -1
- package/dist/permissions.test.js.map +1 -1
- package/dist/register-admin.d.ts.map +1 -1
- package/dist/register-admin.js +1 -3
- package/dist/register-admin.js.map +1 -1
- package/dist/register-batch.d.ts.map +1 -1
- package/dist/register-batch.js +1 -1
- package/dist/register-batch.js.map +1 -1
- package/dist/register-extensions.d.ts.map +1 -1
- package/dist/register-extensions.js +3 -1
- package/dist/register-extensions.js.map +1 -1
- package/dist/register-shared.d.ts.map +1 -1
- package/dist/register-shared.js +2 -4
- package/dist/register-shared.js.map +1 -1
- package/dist/register-skills.d.ts +1 -0
- package/dist/register-skills.d.ts.map +1 -1
- package/dist/register-skills.js +17 -7
- package/dist/register-skills.js.map +1 -1
- package/dist/register-skills.test.js.map +1 -1
- package/dist/skills/doctor.d.ts.map +1 -1
- package/dist/skills/doctor.js +3 -3
- package/dist/skills/doctor.js.map +1 -1
- package/dist/skills/github-source.d.ts.map +1 -1
- package/dist/skills/github-source.js +10 -3
- package/dist/skills/github-source.js.map +1 -1
- package/dist/skills/install-planner.d.ts.map +1 -1
- package/dist/skills/install-planner.js +8 -2
- package/dist/skills/install-planner.js.map +1 -1
- package/dist/skills/installer.d.ts.map +1 -1
- package/dist/skills/installer.js +3 -2
- package/dist/skills/installer.js.map +1 -1
- package/dist/skills/manifest.d.ts.map +1 -1
- package/dist/skills/manifest.js.map +1 -1
- package/dist/skills/marketplace-adapters/claude-plugin.d.ts.map +1 -1
- package/dist/skills/marketplace-adapters/claude-plugin.js.map +1 -1
- package/dist/skills/marketplace-adapters/skills-sh.d.ts.map +1 -1
- package/dist/skills/marketplace-adapters/skills-sh.js +1 -1
- package/dist/skills/marketplace-adapters/skills-sh.js.map +1 -1
- package/dist/skills/prompt-state.d.ts +56 -0
- package/dist/skills/prompt-state.d.ts.map +1 -0
- package/dist/skills/prompt-state.js +182 -0
- package/dist/skills/prompt-state.js.map +1 -0
- package/dist/skills/prompt-state.test.d.ts +2 -0
- package/dist/skills/prompt-state.test.d.ts.map +1 -0
- package/dist/skills/prompt-state.test.js +172 -0
- package/dist/skills/prompt-state.test.js.map +1 -0
- package/dist/skills/prompt.d.ts +23 -0
- package/dist/skills/prompt.d.ts.map +1 -0
- package/dist/skills/prompt.js +92 -0
- package/dist/skills/prompt.js.map +1 -0
- package/dist/skills/prompt.test.d.ts +2 -0
- package/dist/skills/prompt.test.d.ts.map +1 -0
- package/dist/skills/prompt.test.js +98 -0
- package/dist/skills/prompt.test.js.map +1 -0
- package/dist/skills/source-resolver.d.ts.map +1 -1
- package/dist/skills/source-resolver.js +6 -3
- package/dist/skills/source-resolver.js.map +1 -1
- package/dist/skills/state-store.d.ts.map +1 -1
- package/dist/skills/state-store.js.map +1 -1
- package/dist/skills/target-detector.d.ts.map +1 -1
- package/dist/skills/target-detector.js +3 -1
- package/dist/skills/target-detector.js.map +1 -1
- package/dist/skills/target-detector.test.js +3 -1
- package/dist/skills/target-detector.test.js.map +1 -1
- package/dist/skills/tui.d.ts +3 -0
- package/dist/skills/tui.d.ts.map +1 -1
- package/dist/skills/tui.js +79 -23
- package/dist/skills/tui.js.map +1 -1
- package/dist/skills/tui.test.js +10 -2
- package/dist/skills/tui.test.js.map +1 -1
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js.map +1 -1
- package/dist/update-check.test.js.map +1 -1
- package/package.json +1 -1
- package/skills/manifest.json +1 -1
- package/skills/social-hub-accounts/SKILL.md +4 -4
- package/skills/social-hub-cli/evals/evals.json +4 -1
- package/skills/social-hub-events-observability/SKILL.md +4 -4
- package/skills/social-hub-openclaw-context/SKILL.md +1 -1
- package/skills/social-hub-shared/SKILL.md +28 -28
package/CHANGELOG.md
CHANGED
|
@@ -4,18 +4,32 @@ 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.11] - 2026-06-11
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- hybrid arrow-key + typed-number prompts for skills installer
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- repair stale e2e/unit tests, prune dead code, harden intelligence page
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- style: apply prettier across the repository
|
|
7
17
|
## [0.1.10] - 2026-06-09
|
|
8
18
|
|
|
9
19
|
Normalize reddit post opsStatus filters; align stats filters; update social-hub-posts skill and reddit stats CLI options.
|
|
10
20
|
|
|
11
21
|
### Added
|
|
22
|
+
|
|
12
23
|
- improve refresh fallback routing and post performance UX
|
|
13
24
|
|
|
14
25
|
### Fixed
|
|
26
|
+
|
|
15
27
|
- normalize opsStatus filters and align stats query scope
|
|
28
|
+
|
|
16
29
|
## [0.1.9] - 2026-06-08
|
|
17
30
|
|
|
18
31
|
### Added
|
|
32
|
+
|
|
19
33
|
- systematize hub ingest and runtime gates
|
|
20
34
|
- add persona pool alias seeding
|
|
21
35
|
- Hub-first ops runtime, style-curator skill, and post list UX
|
|
@@ -30,16 +44,21 @@ Normalize reddit post opsStatus filters; align stats filters; update social-hub-
|
|
|
30
44
|
- add system persona library and account personaId linking
|
|
31
45
|
|
|
32
46
|
### Fixed
|
|
47
|
+
|
|
33
48
|
- auto-detect managed dirs for skills update/remove
|
|
34
49
|
|
|
35
50
|
### Changed
|
|
51
|
+
|
|
36
52
|
- close admin gap with db/api/e2e coverage
|
|
53
|
+
|
|
37
54
|
## [0.1.8] - 2026-06-05
|
|
38
55
|
|
|
39
56
|
Bundle updated Social Hub subreddit pool skills and persona pool alias guidance.
|
|
57
|
+
|
|
40
58
|
## [0.1.7] - 2026-06-04
|
|
41
59
|
|
|
42
60
|
### Added
|
|
61
|
+
|
|
43
62
|
- Hub-first ops runtime, style-curator skill, and post list UX
|
|
44
63
|
- complete repost link support
|
|
45
64
|
- brand-first publishing scope, persona-aware pools, cli update check
|
|
@@ -53,15 +72,19 @@ Bundle updated Social Hub subreddit pool skills and persona pool alias guidance.
|
|
|
53
72
|
- reddit --aggregate/--all 分页,stats --range 365|all;SDK 补聚合与 offset 参数
|
|
54
73
|
|
|
55
74
|
### Fixed
|
|
75
|
+
|
|
56
76
|
- auto-detect managed dirs for skills update/remove
|
|
57
77
|
|
|
58
78
|
### Changed
|
|
79
|
+
|
|
59
80
|
- close admin gap with db/api/e2e coverage
|
|
81
|
+
|
|
60
82
|
## [0.1.6] - 2026-06-04
|
|
61
83
|
|
|
62
84
|
Post Performance repost-link fields and CLI skill/help alignment.
|
|
63
85
|
|
|
64
86
|
### Added
|
|
87
|
+
|
|
65
88
|
- `reddit create-snapshot`, `reddit update`, and `reddit batch-upsert` help examples now document `firstRepostLink` / `secondRepostLink`.
|
|
66
89
|
- bundled `social-hub-posts` skill documents repost-link create/update/batch-upsert payloads.
|
|
67
90
|
|
|
@@ -70,6 +93,7 @@ Post Performance repost-link fields and CLI skill/help alignment.
|
|
|
70
93
|
npm registry update check with agent upgrade hints; brand-first and persona-aware bundled skills.
|
|
71
94
|
|
|
72
95
|
### Added
|
|
96
|
+
|
|
73
97
|
- brand-first publishing scope, persona-aware pools, cli update check
|
|
74
98
|
- persona-aware subreddit candidates and diversity selection
|
|
75
99
|
- extend system library fields and import dataset
|
|
@@ -83,15 +107,19 @@ npm registry update check with agent upgrade hints; brand-first and persona-awar
|
|
|
83
107
|
- team subreddit blocklists and style-mark CLI set
|
|
84
108
|
|
|
85
109
|
### Fixed
|
|
110
|
+
|
|
86
111
|
- auto-detect managed dirs for skills update/remove
|
|
112
|
+
|
|
87
113
|
## [0.1.4] - 2026-06-03
|
|
88
114
|
|
|
89
115
|
Persona-aware pool queries (--persona-aware, --tier, --include-debug), updated openclaw-context CLI skill, and subreddit candidate diversity fields.
|
|
116
|
+
|
|
90
117
|
## [0.1.3] - 2026-06-03
|
|
91
118
|
|
|
92
119
|
Persona library list filters and import
|
|
93
120
|
|
|
94
121
|
### Added
|
|
122
|
+
|
|
95
123
|
- extend system library fields and import dataset
|
|
96
124
|
- server-side filters, refresh run logs, CLI/SDK sync
|
|
97
125
|
- sanctions update/delete and blocklist UI on RiskCenter
|
|
@@ -105,12 +133,15 @@ Persona library list filters and import
|
|
|
105
133
|
- extend events append CLI flags and interaction flow
|
|
106
134
|
|
|
107
135
|
### Fixed
|
|
136
|
+
|
|
108
137
|
- auto-detect managed dirs for skills update/remove
|
|
138
|
+
|
|
109
139
|
## [0.1.2] - 2026-06-02
|
|
110
140
|
|
|
111
141
|
Reddit post snapshot filters, refresh execution logs, and `containsBrandKeyword` field docs.
|
|
112
142
|
|
|
113
143
|
### Added
|
|
144
|
+
|
|
114
145
|
- `reddit refresh-logs` — GET `/reddit-post-snapshots/refresh-logs` (cron + manual refresh run history)
|
|
115
146
|
- `reddit list` query params: `--ops-status`, `--post-type`, `--contains-brand-keyword`, `--primary-product`
|
|
116
147
|
- SDK `batchUpsertRedditPostSnapshotsByPermalink` item type includes `containsBrandKeyword`
|
|
@@ -121,6 +152,7 @@ Reddit post snapshot filters, refresh execution logs, and `containsBrandKeyword`
|
|
|
121
152
|
Subreddit sanctions lifecycle: update and delete.
|
|
122
153
|
|
|
123
154
|
### Added
|
|
155
|
+
|
|
124
156
|
- `compliance sanctions-update` — PATCH `/subreddit-sanctions/:id` (status/reason/expiresAt)
|
|
125
157
|
- `compliance sanctions-delete` — DELETE `/subreddit-sanctions/:id`
|
|
126
158
|
|
|
@@ -129,6 +161,7 @@ Subreddit sanctions lifecycle: update and delete.
|
|
|
129
161
|
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
162
|
|
|
131
163
|
### Changed
|
|
164
|
+
|
|
132
165
|
- blocklists moved from team-scoped to system-scoped API, SDK, and CLI
|
|
133
166
|
- guardrails and agent-context read system blocklists (no per-team duplication)
|
|
134
167
|
|
|
@@ -137,34 +170,46 @@ Subreddit blocklists are now **system-level** (`/v1/system/subreddit-blocklists`
|
|
|
137
170
|
Status-snapshot externalRef idempotency; CLI cmd manifest export; social-hub-accounts skill docs.
|
|
138
171
|
|
|
139
172
|
### Added
|
|
173
|
+
|
|
140
174
|
- status-snapshot externalRef idempotency and CLI cmd manifest
|
|
175
|
+
|
|
141
176
|
## [0.0.21] - 2026-06-02
|
|
142
177
|
|
|
143
|
-
System persona library: personas system
|
|
178
|
+
System persona library: personas system-\* commands and accounts --persona/--category filters.
|
|
144
179
|
|
|
145
180
|
### Added
|
|
181
|
+
|
|
146
182
|
- add system persona library and account personaId linking
|
|
183
|
+
|
|
147
184
|
## [0.0.20] - 2026-06-01
|
|
148
185
|
|
|
149
186
|
### Fixed
|
|
187
|
+
|
|
150
188
|
- auto-detect managed dirs for skills update/remove
|
|
189
|
+
|
|
151
190
|
## [0.0.19] - 2026-06-01
|
|
152
191
|
|
|
153
192
|
### Added
|
|
193
|
+
|
|
154
194
|
- reddit --aggregate/--all 分页,stats --range 365|all;SDK 补聚合与 offset 参数
|
|
195
|
+
|
|
155
196
|
## [0.0.18] - 2026-06-01
|
|
156
197
|
|
|
157
198
|
### Added
|
|
199
|
+
|
|
158
200
|
- reddit list/list-full/stats 支持 --brand;SDK 增加 brandId;skills 对齐系统级品牌
|
|
159
201
|
- team subreddit blocklists and style-mark CLI set
|
|
202
|
+
|
|
160
203
|
## [0.0.17] - 2026-06-01
|
|
161
204
|
|
|
162
205
|
feat: subreddit blocklists + style-mark external upsert
|
|
206
|
+
|
|
163
207
|
## [0.0.16] - 2026-05-29
|
|
164
208
|
|
|
165
209
|
Bundled skill docs aligned with Hub-first CLI syntax; browser-env telemetry and ops runtime extensions.
|
|
166
210
|
|
|
167
211
|
### Added
|
|
212
|
+
|
|
168
213
|
- hub runtime readiness, bundled skills sync, and skill doc alignment
|
|
169
214
|
- extend events append CLI flags and interaction flow
|
|
170
215
|
- harden OpenClaw interaction flow
|
|
@@ -174,24 +219,29 @@ Bundled skill docs aligned with Hub-first CLI syntax; browser-env telemetry and
|
|
|
174
219
|
- add reddit batch-upsert and drop import-feishu command
|
|
175
220
|
|
|
176
221
|
### Fixed
|
|
222
|
+
|
|
177
223
|
- upsert feishu snapshots by feishuRecordId
|
|
178
224
|
- default apiUrl to production Social Ops Hub
|
|
179
225
|
- parse conventional commit subjects for CHANGELOG
|
|
180
226
|
- default skills install to TUI with CLI prefill
|
|
181
227
|
|
|
182
228
|
### Changed
|
|
229
|
+
|
|
183
230
|
- automate CLI versioning and CHANGELOG
|
|
184
231
|
- add publish:cli script for single-package npm publish
|
|
232
|
+
|
|
185
233
|
## [0.0.15] - 2026-05-28
|
|
186
234
|
|
|
187
235
|
Hub runtime readiness: authz evaluate resource/action, expanded permission gates, bundled skills sync on publish.
|
|
188
236
|
|
|
189
237
|
### Added
|
|
238
|
+
|
|
190
239
|
- `authz evaluate --resource` / `--action` for runtime preflight checks
|
|
191
240
|
- Permission gates for ops runtime, browser-envs, and personas commands
|
|
192
241
|
- Bundled skills sync and freshness verification before CLI publish
|
|
193
242
|
|
|
194
243
|
### Fixed
|
|
244
|
+
|
|
195
245
|
- `authz evaluate` permission gate uses `task:read` instead of manager-only `apiKey:list`
|
|
196
246
|
- Bundled skill docs aligned with Hub-first CLI syntax
|
|
197
247
|
|
|
@@ -200,48 +250,63 @@ Hub runtime readiness: authz evaluate resource/action, expanded permission gates
|
|
|
200
250
|
OpenClaw Hub-first interaction flow: events append flags, style-marks/curator CLI, SDK 0.0.7
|
|
201
251
|
|
|
202
252
|
### Added
|
|
253
|
+
|
|
203
254
|
- extend events append CLI flags and interaction flow
|
|
204
255
|
- harden OpenClaw interaction flow
|
|
256
|
+
|
|
205
257
|
## [0.0.13] - 2026-05-22
|
|
206
258
|
|
|
207
259
|
Graph v2, compliance rule caches, intelligence CLI extensions, and modular agent skills (13 skills).
|
|
208
260
|
|
|
209
261
|
### Added
|
|
262
|
+
|
|
210
263
|
- add graph v2, intelligence extensions, modular skills
|
|
211
264
|
|
|
212
265
|
### Fixed
|
|
266
|
+
|
|
213
267
|
- upsert feishu snapshots by feishuRecordId
|
|
268
|
+
|
|
214
269
|
## [0.0.12] - 2026-05-22
|
|
215
270
|
|
|
216
271
|
Add system brands and brand-members commands; depends on @geoly-ai/social-hub-sdk@0.0.5.
|
|
217
272
|
|
|
218
273
|
### Added
|
|
274
|
+
|
|
219
275
|
- add system brands and brand-members commands
|
|
276
|
+
|
|
220
277
|
## [0.0.11] - 2026-05-21
|
|
221
278
|
|
|
222
279
|
Support never duration and permission-matrix duration options
|
|
223
280
|
|
|
224
281
|
### Added
|
|
282
|
+
|
|
225
283
|
- granular CLI token duration permissions via matrix
|
|
226
284
|
|
|
227
285
|
### Fixed
|
|
286
|
+
|
|
228
287
|
- default apiUrl to production Social Ops Hub
|
|
288
|
+
|
|
229
289
|
## [0.0.10] - 2026-05-21
|
|
230
290
|
|
|
231
291
|
Default CLI apiUrl to production Social Ops Hub (https://reddit.eclick-geo.com/api).
|
|
292
|
+
|
|
232
293
|
## [0.0.9] - 2026-05-21
|
|
233
294
|
|
|
234
295
|
Remove reddit import-feishu; add reddit batch-upsert for Feishu-to-Hub sync via local lark-cli.
|
|
235
296
|
|
|
236
297
|
### Added
|
|
298
|
+
|
|
237
299
|
- add reddit batch-upsert and drop import-feishu command
|
|
238
300
|
|
|
239
301
|
### Fixed
|
|
302
|
+
|
|
240
303
|
- parse conventional commit subjects for CHANGELOG
|
|
241
304
|
|
|
242
305
|
### Changed
|
|
306
|
+
|
|
243
307
|
- automate CLI versioning and CHANGELOG
|
|
244
308
|
- add publish:cli script for single-package npm publish
|
|
309
|
+
|
|
245
310
|
## [0.0.8] - 2026-05-21
|
|
246
311
|
|
|
247
312
|
### Fixed
|
package/dist/cmd-manifest.json
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
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. */
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.test.js
CHANGED
|
@@ -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({
|
|
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
|
});
|
package/dist/config.test.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
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;AAyBpC,QAAA,MAAM,OAAO,SAAgB,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
|
|
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"
|
|
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"
|
|
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
|
|
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>",
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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({
|
|
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({
|
|
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
|