@geoly-ai/social-hub-cli 0.3.25 → 0.3.26
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 +6 -0
- package/dist/cli-error-channels.test.d.ts +2 -0
- package/dist/cli-error-channels.test.d.ts.map +1 -0
- package/dist/cli-error-channels.test.js +216 -0
- package/dist/cli-error-channels.test.js.map +1 -0
- package/dist/cmd-manifest.json +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/output.d.ts +32 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +122 -0
- package/dist/output.js.map +1 -1
- package/package.json +3 -3
- package/skills/manifest.json +1 -1
package/dist/output.d.ts
CHANGED
|
@@ -5,5 +5,37 @@ export declare function resolveOutputFormat(opts: {
|
|
|
5
5
|
export declare function printResult(data: unknown, format?: OutputFormat): void;
|
|
6
6
|
export declare function parseJsonOption(raw: string | undefined): Record<string, unknown>;
|
|
7
7
|
export declare function formatCliError(e: unknown): string;
|
|
8
|
+
/**
|
|
9
|
+
* per-command 错误边界(历史产物,392 处 `.action(` 里只有 72 处包了它)。
|
|
10
|
+
*
|
|
11
|
+
* ⚠️ 这里刻意**保留** `console.error` 而不是换成 `writeStderrSync`:多个存量测试
|
|
12
|
+
* 靠 `vi.spyOn(console, "error")` 捕获它的输出,直写 fd 2 会让那些断言全部瞎掉。
|
|
13
|
+
* 超长消息的截断风险在这条路径上仍在,但那是既有行为、不属于 D-06 的范围;
|
|
14
|
+
* D-06 关心的 320 条裸奔命令全部走下面的 `runCliProgram`,那条已经用同步写。
|
|
15
|
+
*/
|
|
8
16
|
export declare function withCliErrorBoundary(run: () => Promise<void>): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* CLI 进程唯一入口的**默认**错误边界(D-06)。
|
|
19
|
+
*
|
|
20
|
+
* 为什么必须在这里而不是每条命令自己包:全 CLI 有 392 处 `.action(`,历史上只有
|
|
21
|
+
* 72 处记得包 `withCliErrorBoundary`,剩下 320 条裸奔。裸奔 + commander 的同步
|
|
22
|
+
* `program.parse()`(**不** await async action handler 的 promise)=
|
|
23
|
+
* handler 抛出后变成 Node 原生 unhandled rejection:**stdout 一个字节都没有**,
|
|
24
|
+
* stderr 是原始堆栈。运营侧据此拿到过一次假的「全队 0 个受标账号」结论。
|
|
25
|
+
*
|
|
26
|
+
* 修法是入口这一层同时改两处:调用方改用 `program.parseAsync()`(commander 会把
|
|
27
|
+
* action handler 的 promise 串回来),再由这里统一 catch —— 于是**全部命令**默认
|
|
28
|
+
* 都有边界,新增命令不需要记得加。已有的 72 处 per-command boundary 保持不动
|
|
29
|
+
* (它们自己 `process.exit(1)`,先命中先生效,与本边界不冲突)。
|
|
30
|
+
*
|
|
31
|
+
* 三个输出通道的纪律,任何改动都不得破坏:
|
|
32
|
+
* - 错误只走 **stderr**;stdout 留给 `jq` 之类消费,失败时必须**零字节**。
|
|
33
|
+
* - 退出码 **非 0**。
|
|
34
|
+
* - 文案走 `formatCliError`,不是 Node 原生堆栈。
|
|
35
|
+
*
|
|
36
|
+
* ⚠️ 这里不做任何「降级/截断/兜底成空结果」:比如 `accounts list -n 300` 超出
|
|
37
|
+
* 服务端上限 200 时必须报错退出,绝不能悄悄按 200 返回 —— 那只会把一种静默失败
|
|
38
|
+
* 换成另一种假数据。
|
|
39
|
+
*/
|
|
40
|
+
export declare function runCliProgram(parseArgv: () => Promise<unknown>): Promise<void>;
|
|
9
41
|
//# sourceMappingURL=output.d.ts.map
|
package/dist/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAM/D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAI3E;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,EACb,MAAM,GAAE,YAAqB,GAC5B,IAAI,CA0BN;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA0CjD;AAwCD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
package/dist/output.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { writeSync } from "node:fs";
|
|
1
2
|
import { resolveCliConfig } from "./config.js";
|
|
3
|
+
/** stderr 的文件描述符 —— 绕开 console.error 的异步缓冲直接同步写(见 writeStderrSync)。 */
|
|
4
|
+
const STDERR_FD = 2;
|
|
2
5
|
/** 连接/DNS 类错误 —— 通常意味着 API 地址不对或服务不可达(如域名已变更)。 */
|
|
3
6
|
const CONNECTION_ERROR_RE = /fetch failed|ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EAI_AGAIN|getaddrinfo|socket hang up|network|certificate/i;
|
|
4
7
|
export function resolveOutputFormat(opts) {
|
|
@@ -80,6 +83,52 @@ export function formatCliError(e) {
|
|
|
80
83
|
}
|
|
81
84
|
return String(e);
|
|
82
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* 把一行文本**同步**写进 stderr,写完再返回(D-06)。
|
|
88
|
+
*
|
|
89
|
+
* 不能用 `console.error` + `process.exit()`:Node 对管道的写在 **macOS 上是异步的**
|
|
90
|
+
* (Windows/Linux 同步),`process.exit()` 会把还没刷出去的尾巴截掉。错误消息一长
|
|
91
|
+
* (服务端返回超长 message 时)就会丢尾,于是「报错了但看不全」——这正是 D-06
|
|
92
|
+
* 那种「输出通道不可信」的同一类毛病。`fs.writeSync` 循环写到写完为止,既不截断,
|
|
93
|
+
* 也不需要为了等 flush 而放弃 `process.exit`(留句柄的 handler 会让进程挂死)。
|
|
94
|
+
*/
|
|
95
|
+
function writeStderrSync(text) {
|
|
96
|
+
const bytes = Buffer.from(`${text}\n`, "utf8");
|
|
97
|
+
let offset = 0;
|
|
98
|
+
while (offset < bytes.length) {
|
|
99
|
+
try {
|
|
100
|
+
const written = writeSync(STDERR_FD, bytes, offset);
|
|
101
|
+
if (written <= 0)
|
|
102
|
+
break;
|
|
103
|
+
offset += written;
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
const code = err.code;
|
|
107
|
+
if (code === "EAGAIN") {
|
|
108
|
+
// 管道满且对端还没读走 —— Node 把 stderr 设成非阻塞,writeSync 会抛
|
|
109
|
+
// EAGAIN 而不是阻塞。这里**必须重试**:直接放弃就等于截断,而这条函数
|
|
110
|
+
// 存在的全部意义就是不截断(实测 300KB 的错误消息会命中这条分支)。
|
|
111
|
+
sleepSync(1);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
// EPIPE 等:stderr 已被关闭(如下游 `| head` 提前退出)。
|
|
115
|
+
// 放弃写入,但仍要保证退出码。
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** 同步睡眠(不引入事件循环):writeStderrSync 的 EAGAIN 退避用。 */
|
|
121
|
+
function sleepSync(ms) {
|
|
122
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* per-command 错误边界(历史产物,392 处 `.action(` 里只有 72 处包了它)。
|
|
126
|
+
*
|
|
127
|
+
* ⚠️ 这里刻意**保留** `console.error` 而不是换成 `writeStderrSync`:多个存量测试
|
|
128
|
+
* 靠 `vi.spyOn(console, "error")` 捕获它的输出,直写 fd 2 会让那些断言全部瞎掉。
|
|
129
|
+
* 超长消息的截断风险在这条路径上仍在,但那是既有行为、不属于 D-06 的范围;
|
|
130
|
+
* D-06 关心的 320 条裸奔命令全部走下面的 `runCliProgram`,那条已经用同步写。
|
|
131
|
+
*/
|
|
83
132
|
export async function withCliErrorBoundary(run) {
|
|
84
133
|
try {
|
|
85
134
|
await run();
|
|
@@ -89,4 +138,77 @@ export async function withCliErrorBoundary(run) {
|
|
|
89
138
|
process.exit(1);
|
|
90
139
|
}
|
|
91
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* CLI 进程唯一入口的**默认**错误边界(D-06)。
|
|
143
|
+
*
|
|
144
|
+
* 为什么必须在这里而不是每条命令自己包:全 CLI 有 392 处 `.action(`,历史上只有
|
|
145
|
+
* 72 处记得包 `withCliErrorBoundary`,剩下 320 条裸奔。裸奔 + commander 的同步
|
|
146
|
+
* `program.parse()`(**不** await async action handler 的 promise)=
|
|
147
|
+
* handler 抛出后变成 Node 原生 unhandled rejection:**stdout 一个字节都没有**,
|
|
148
|
+
* stderr 是原始堆栈。运营侧据此拿到过一次假的「全队 0 个受标账号」结论。
|
|
149
|
+
*
|
|
150
|
+
* 修法是入口这一层同时改两处:调用方改用 `program.parseAsync()`(commander 会把
|
|
151
|
+
* action handler 的 promise 串回来),再由这里统一 catch —— 于是**全部命令**默认
|
|
152
|
+
* 都有边界,新增命令不需要记得加。已有的 72 处 per-command boundary 保持不动
|
|
153
|
+
* (它们自己 `process.exit(1)`,先命中先生效,与本边界不冲突)。
|
|
154
|
+
*
|
|
155
|
+
* 三个输出通道的纪律,任何改动都不得破坏:
|
|
156
|
+
* - 错误只走 **stderr**;stdout 留给 `jq` 之类消费,失败时必须**零字节**。
|
|
157
|
+
* - 退出码 **非 0**。
|
|
158
|
+
* - 文案走 `formatCliError`,不是 Node 原生堆栈。
|
|
159
|
+
*
|
|
160
|
+
* ⚠️ 这里不做任何「降级/截断/兜底成空结果」:比如 `accounts list -n 300` 超出
|
|
161
|
+
* 服务端上限 200 时必须报错退出,绝不能悄悄按 200 返回 —— 那只会把一种静默失败
|
|
162
|
+
* 换成另一种假数据。
|
|
163
|
+
*/
|
|
164
|
+
export async function runCliProgram(parseArgv) {
|
|
165
|
+
try {
|
|
166
|
+
await parseArgv();
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
// commander 自身的出口(--help / --version / 未知命令 / 缺 requiredOption)
|
|
170
|
+
// 目前直接走 process.exit,到不了这里。但只要将来有人加了 `exitOverride()`,
|
|
171
|
+
// 它们就会以 CommanderError reject 过来 —— 那时把 `commander.helpDisplayed`
|
|
172
|
+
// 当成真错误打一遍 stderr 再 exit 1 是错的(帮助是成功路径),而其它
|
|
173
|
+
// commander 错误 commander 已经自己写过 stderr 了,再格式化一遍就是重复输出。
|
|
174
|
+
// 这里按它自带的 exitCode 原样放行,不重复打印。(Codex 评审提出)
|
|
175
|
+
const commanderExitCode = commanderErrorExitCode(e);
|
|
176
|
+
if (commanderExitCode !== undefined) {
|
|
177
|
+
process.exit(commanderExitCode);
|
|
178
|
+
}
|
|
179
|
+
// 同步写完再退,不用 console.error(见 writeStderrSync:macOS 管道是异步写,
|
|
180
|
+
// process.exit 会截断长消息)。用 process.exit 而不是只设 process.exitCode:
|
|
181
|
+
// action handler 可能留下未清理的句柄(定时器/keep-alive 连接),只设 exitCode
|
|
182
|
+
// 会让进程挂住 —— 挂死比丢消息更难排查,而截断已由同步写解决。
|
|
183
|
+
writeStderrSync(formatCliError(e));
|
|
184
|
+
process.exit(1);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* 识别 commander 自己的 CommanderError,返回它自带的退出码;不是则 undefined。
|
|
189
|
+
*
|
|
190
|
+
* 🔴 判定必须同时看 `name === "CommanderError"` **和**合法整数 `exitCode`,
|
|
191
|
+
* 不能只看 `code` 前缀 —— `SocialHubHttpError.code` / `HubHttpError.code` 来自
|
|
192
|
+
* **服务端响应体**,是外部可控字符串。只按 `code.startsWith("commander.")` 放行的话,
|
|
193
|
+
* 服务端返回 `{"error":{"code":"commander.x"}}` 就能让 CLI **一个字节都不打印**
|
|
194
|
+
* 地退出 —— 那等于把 D-06 这个静默失败换个入口重新造一遍。(Codex 评审发现)
|
|
195
|
+
*
|
|
196
|
+
* 不用 `instanceof CommanderError`:monorepo 里可能存在多份 commander 安装,
|
|
197
|
+
* 跨副本的 instanceof 会假阴性。而 `name` + `exitCode` + `code` 三者齐备的结构
|
|
198
|
+
* 服务端伪造不出来(它只能控制 `code` 这一项)。
|
|
199
|
+
*/
|
|
200
|
+
function commanderErrorExitCode(e) {
|
|
201
|
+
if (!(e instanceof Error) || e.name !== "CommanderError")
|
|
202
|
+
return undefined;
|
|
203
|
+
const { code, exitCode } = e;
|
|
204
|
+
if (typeof code !== "string" || !code.startsWith("commander.")) {
|
|
205
|
+
return undefined;
|
|
206
|
+
}
|
|
207
|
+
if (!Number.isInteger(exitCode))
|
|
208
|
+
return undefined;
|
|
209
|
+
const numeric = exitCode;
|
|
210
|
+
if (numeric < 0 || numeric > 255)
|
|
211
|
+
return undefined;
|
|
212
|
+
return numeric;
|
|
213
|
+
}
|
|
92
214
|
//# sourceMappingURL=output.js.map
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geoly-ai/social-hub-cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.26",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "social-hub CLI for Social Ops Hub",
|
|
6
6
|
"repository": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"commander": "^12.1.0",
|
|
25
|
-
"@geoly-ai/social-hub-
|
|
26
|
-
"@geoly-ai/social-hub-
|
|
25
|
+
"@geoly-ai/social-hub-sdk": "0.1.2",
|
|
26
|
+
"@geoly-ai/social-hub-authz": "0.0.19"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^22.10.2",
|