superun-ai-cli 0.1.8 → 0.1.9

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/README.en.md CHANGED
@@ -267,6 +267,8 @@ Business commands write one JSON result to stdout. Diagnostics and update progre
267
267
 
268
268
  The CLI checks npm's `latest` version before business commands. If it differs from the local version, the CLI installs that version and resumes the command. If an update or verification fails, the CLI stops; resolve the reported issue before retrying. Help, `version`, and `auth logout` work offline.
269
269
 
270
+ Version checks and installation both run through npm, inheriting its proxy and certificate configuration and retrying transient network failures. If the official Registry is unavailable, the CLI tries the user's configured Registry and uses the successful source for installation. Recovery does not print errors or installation logs. If all sources fail, `error.checks` provides reason codes without raw npm logs or credentials. The CLI does not disable certificate verification or skip the version check to allow business requests.
271
+
270
272
  Run `superun-ai update` to sync with npm `latest` explicitly. Source installations use the same version check. Rebuild after changing the source; if the global command is not linked to that checkout, run `npm install -g .` again.
271
273
 
272
274
  ```bash
package/README.md CHANGED
@@ -267,6 +267,8 @@ superun-ai chat publish visibility <sessionId> private
267
267
 
268
268
  CLI 会在执行业务命令前检查 npm `latest` 版本,与本地版本不同时自动安装该版本并继续执行。更新或校验失败时会停止执行,请根据错误提示处理后重试。帮助、`version` 和 `auth logout` 可离线使用。
269
269
 
270
+ 版本预检和安装统一通过 npm 执行,沿用 npm 的代理和证书配置,并自动重试短暂的网络故障。官方 Registry 不可用时,会尝试用户已配置的 Registry,安装沿用查询成功的源;恢复过程不输出报错或安装日志。所有源均失败时才返回错误,`error.checks` 包含各次检查的原因码,不包含原始 npm 日志或凭据。不会通过关闭证书校验或忽略版本检查来放行业务请求。
271
+
270
272
  可以执行 `superun-ai update` 主动同步 npm `latest`。从源码安装也遵循相同的版本校验;修改源码后需要重新构建,如果全局命令不是链接到该目录,再执行 `npm install -g .`。
271
273
 
272
274
  ```bash
@@ -0,0 +1,13 @@
1
+ export declare const NPM_FETCH_OPTIONS: string[];
2
+ export declare class NpmCommandError extends Error {
3
+ readonly reason: string;
4
+ constructor(reason: string);
5
+ }
6
+ export declare function runNpm(args: Array<string>, options?: {
7
+ registry?: string;
8
+ timeoutMs?: number;
9
+ }): Promise<string>;
10
+ export declare function latestVersion(): Promise<{
11
+ version: string;
12
+ registry: string;
13
+ }>;
@@ -0,0 +1,89 @@
1
+ /** npm 版本查询与安装共用网络配置,恢复过程不打断业务输出。@author xiuyu.yi */
2
+ import { execFile } from 'node:child_process';
3
+ import { promisify } from 'node:util';
4
+ import { valid } from 'semver';
5
+ import { NPM_REGISTRY, PACKAGE_NAME, PACKAGE_PRIVATE } from '../config/constants.js';
6
+ import { object, text } from '../contracts/value.js';
7
+ import { CliError } from '../output/exit-codes.js';
8
+ const execute = promisify(execFile);
9
+ export const NPM_FETCH_OPTIONS = [
10
+ '--fetch-retries=2',
11
+ '--fetch-retry-mintimeout=1000',
12
+ '--fetch-retry-maxtimeout=3000',
13
+ '--fetch-timeout=15000',
14
+ ];
15
+ export class NpmCommandError extends Error {
16
+ reason;
17
+ constructor(reason) {
18
+ super(reason);
19
+ this.reason = reason;
20
+ }
21
+ }
22
+ export async function runNpm(args, options = {}) {
23
+ const env = { ...process.env };
24
+ if (options.registry) {
25
+ delete env.NPM_CONFIG_REGISTRY;
26
+ env.npm_config_registry = options.registry;
27
+ }
28
+ try {
29
+ const { stdout } = await execute('npm', args, {
30
+ encoding: 'utf8',
31
+ timeout: options.timeoutMs ?? 55_000,
32
+ killSignal: 'SIGKILL',
33
+ maxBuffer: 2_000_000,
34
+ // Registry 可能包含认证信息,只通过环境传入,不回显命令或 npm 原始诊断。
35
+ env,
36
+ });
37
+ return stdout.trim();
38
+ }
39
+ catch (error) {
40
+ const failure = object(error);
41
+ const stderr = text(failure.stderr) ?? '';
42
+ const reason = failure.killed
43
+ ? 'ETIMEDOUT'
44
+ : typeof failure.code === 'string'
45
+ ? failure.code
46
+ : /npm (?:ERR!|error) code ([A-Z0-9_]+)/.exec(stderr)?.[1];
47
+ throw new NpmCommandError(reason && /^[A-Z0-9_]+$/.test(reason) ? reason : 'NPM_REQUEST_FAILED');
48
+ }
49
+ }
50
+ export async function latestVersion() {
51
+ if (PACKAGE_PRIVATE)
52
+ throw new CliError('UPDATE_REQUIRED', '当前为未发布的私有开发包;正式包名和 Registry 确认并发布后才能启用业务命令');
53
+ const registries = [NPM_REGISTRY];
54
+ try {
55
+ const configured = new URL(await runNpm(['config', 'get', 'registry'], { timeoutMs: 5000 }));
56
+ if (['https:', 'http:'].includes(configured.protocol) &&
57
+ !configured.search &&
58
+ !configured.hash &&
59
+ configured.href !== new URL(NPM_REGISTRY).href)
60
+ registries.push(configured.href);
61
+ }
62
+ catch {
63
+ // 读取配置失败不妨碍官方源查询;npm 缺失等问题由下面的正式检查统一报告。
64
+ }
65
+ const failures = [];
66
+ for (const [index, registry] of registries.entries()) {
67
+ try {
68
+ const raw = await runNpm(['view', PACKAGE_NAME, 'dist-tags.latest', '--json', '--prefer-online', ...NPM_FETCH_OPTIONS], { registry });
69
+ let version;
70
+ try {
71
+ version = JSON.parse(raw);
72
+ }
73
+ catch {
74
+ throw new NpmCommandError('INVALID_VERSION_RESPONSE');
75
+ }
76
+ if (typeof version !== 'string' || valid(version) !== version)
77
+ throw new NpmCommandError('INVALID_VERSION_RESPONSE');
78
+ return { version, registry };
79
+ }
80
+ catch (error) {
81
+ failures.push({
82
+ source: index === 0 ? 'official' : 'configured',
83
+ reason: error instanceof NpmCommandError ? error.reason : 'NPM_REQUEST_FAILED',
84
+ });
85
+ }
86
+ }
87
+ throw new CliError('VERSION_CHECK_FAILED', '版本检查在自动重试后仍失败,请检查 npm 网络、代理或证书配置;业务请求未发送', { checks: failures });
88
+ }
89
+ //# sourceMappingURL=npm-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../src/update/npm-registry.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { OutputWriter } from '../output/writer.js';
2
- export declare function versionGate(argv: Array<string>, output: OutputWriter, updateOnly?: boolean): Promise<{
2
+ export declare function versionGate(argv: Array<string>, _output: OutputWriter, updateOnly?: boolean): Promise<{
3
3
  reexecuted: boolean;
4
4
  version: string;
5
5
  exitCode?: number;
@@ -4,56 +4,21 @@ import { readFile, mkdir, mkdtemp, rename, rm, stat } from 'node:fs/promises';
4
4
  import { homedir } from 'node:os';
5
5
  import { randomUUID } from 'node:crypto';
6
6
  import { join } from 'node:path';
7
- import { valid } from 'semver';
8
- import { PACKAGE_NAME, PACKAGE_VERSION, PACKAGE_PRIVATE, NPM_REGISTRY } from '../config/constants.js';
9
- import { object, text } from '../contracts/value.js';
7
+ import { PACKAGE_NAME, PACKAGE_VERSION } from '../config/constants.js';
8
+ import { object } from '../contracts/value.js';
10
9
  import { CliError } from '../output/exit-codes.js';
11
10
  import { withUpdateLock } from './update-lock.js';
12
- async function npm(args, output, capture = false) {
13
- return new Promise((resolve, reject) => {
14
- const child = spawn('npm', args, { shell: false, stdio: ['ignore', 'pipe', 'pipe'] });
15
- let captured = '';
16
- child.stdout.on('data', (chunk) => {
17
- if (capture)
18
- captured += chunk.toString();
19
- else
20
- output.log(chunk.toString().trimEnd());
21
- });
22
- child.stderr.on('data', (chunk) => output.log(chunk.toString().trimEnd()));
23
- child.once('error', () => reject(new CliError('UPDATE_FAILED', '无法执行 npm,请检查安装与 PATH')));
24
- child.once('close', (code) => code === 0
25
- ? resolve(captured.trim())
26
- : reject(new CliError('UPDATE_FAILED', 'npm 更新失败,业务请求未发送')));
27
- });
28
- }
29
- async function latestVersion() {
30
- if (PACKAGE_PRIVATE)
31
- throw new CliError('UPDATE_REQUIRED', '当前为未发布的私有开发包;正式包名和 Registry 确认并发布后才能启用业务命令');
32
- try {
33
- const response = await fetch(`${NPM_REGISTRY}${encodeURIComponent(PACKAGE_NAME)}`, {
34
- signal: AbortSignal.timeout(15_000),
35
- redirect: 'error',
36
- });
37
- if (!response.ok)
38
- throw new Error('registry');
39
- const data = await response.json();
40
- const latest = text(object(object(data)['dist-tags']).latest);
41
- if (!latest || valid(latest) !== latest)
42
- throw new Error('version');
43
- return latest;
44
- }
45
- catch {
46
- throw new CliError('VERSION_CHECK_FAILED', '无法确认 npm latest 版本,业务请求未发送');
47
- }
48
- }
49
- export async function versionGate(argv, output, updateOnly = false) {
50
- let required = await latestVersion();
11
+ import { latestVersion, runNpm, NPM_FETCH_OPTIONS, NpmCommandError } from './npm-registry.js';
12
+ export async function versionGate(argv, _output, updateOnly = false) {
13
+ let source = await latestVersion();
14
+ let required = source.version;
51
15
  if (required === PACKAGE_VERSION)
52
16
  return { reexecuted: false, version: required };
53
17
  if (process.env.SUPERUN_AI_CLI_REEXEC === '1')
54
18
  throw new CliError('UPDATE_FAILED', '重启后版本仍不匹配,已停止重复更新');
55
19
  const entry = await withUpdateLock(async () => {
56
- required = await latestVersion();
20
+ source = await latestVersion();
21
+ required = source.version;
57
22
  const root = join(homedir(), '.cache', PACKAGE_NAME, 'versions');
58
23
  await mkdir(root, { recursive: true, mode: 0o700 });
59
24
  const destination = join(root, required);
@@ -77,19 +42,22 @@ export async function versionGate(argv, output, updateOnly = false) {
77
42
  return cached;
78
43
  const staging = await mkdtemp(join(root, `.${required}-`));
79
44
  try {
80
- await npm([
45
+ await runNpm([
81
46
  'install',
82
47
  '--prefix',
83
48
  staging,
84
49
  '--no-save',
85
50
  '--package-lock=false',
86
51
  `${PACKAGE_NAME}@${required}`,
87
- '--registry',
88
- NPM_REGISTRY,
52
+ ...NPM_FETCH_OPTIONS,
89
53
  '--ignore-scripts',
90
54
  '--no-audit',
91
55
  '--no-fund',
92
- ], output);
56
+ ], { registry: source.registry, timeoutMs: 180_000 }).catch((error) => {
57
+ throw new CliError('UPDATE_FAILED', 'npm 自动更新失败,业务请求未发送', {
58
+ reason: error instanceof NpmCommandError ? error.reason : 'NPM_REQUEST_FAILED',
59
+ });
60
+ });
93
61
  if (!(await verifiedEntry(staging)))
94
62
  throw new CliError('UPDATE_FAILED', '安装后的版本或执行入口校验失败');
95
63
  if (await stat(destination).catch(() => undefined))
@@ -1 +1 @@
1
- {"version":3,"file":"version-gate.js","sourceRoot":"","sources":["../../src/update/version-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-gate.js","sourceRoot":"","sources":["../../src/update/version-gate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superun-ai-cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "superun-ai-cli 命令行工具,支持项目管理、对话创作、交互问答和应用发布",
5
5
  "author": "xiuyu.yi",
6
6
  "license": "UNLICENSED",