siluzan-tso-cli 1.1.63-beta.1 → 1.1.64-beta.1

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.md CHANGED
@@ -51,7 +51,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
51
51
  siluzan-tso init --force # 强制覆盖已存在文件
52
52
  ```
53
53
 
54
- > **注意**:当前为测试版(1.1.63-beta.1),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
54
+ > **注意**:当前为测试版(1.1.64-beta.1),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
55
55
 
56
56
  | 助手 | 建议 `--ai` |
57
57
  | ----------------------- | ------------------------------------ |
package/dist/index.js CHANGED
@@ -2337,7 +2337,7 @@ function rawRequest(url, options) {
2337
2337
  const parsed = new URL(url);
2338
2338
  const transport = parsed.protocol === "https:" ? https : http;
2339
2339
  const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
2340
- const maxBytes = options.maxResponseBytes ?? MAX_RESPONSE_BYTES;
2340
+ const maxBytes = options.maxResponseBytes ?? 0;
2341
2341
  const isHttps = parsed.protocol === "https:";
2342
2342
  const headers = {
2343
2343
  ...buildSiluzanClientIdentityHeaders(),
@@ -2375,7 +2375,10 @@ function rawRequest(url, options) {
2375
2375
  } else if (encoding === "br") {
2376
2376
  stream = res.pipe(zlib.createBrotliDecompress());
2377
2377
  }
2378
- const handleStreamError = (err) => {
2378
+ let failed = false;
2379
+ const fail5 = (err) => {
2380
+ if (failed) return;
2381
+ failed = true;
2379
2382
  res.destroy();
2380
2383
  if (perfOn) {
2381
2384
  emitPerf({
@@ -2385,43 +2388,37 @@ function rawRequest(url, options) {
2385
2388
  elapsedMs: performance.now() - t0,
2386
2389
  bytes: 0,
2387
2390
  ok: false,
2388
- error: `decompress error: ${err.message}`
2391
+ error: err.message
2389
2392
  });
2390
2393
  }
2391
- reject(new Error(`\u54CD\u5E94\u89E3\u538B\u5931\u8D25\uFF08${encoding || "identity"}\uFF09\uFF1A${err.message}`));
2394
+ reject(err);
2392
2395
  };
2393
- if (stream !== res) stream.on("error", handleStreamError);
2394
- res.on("error", handleStreamError);
2395
- let data = "";
2396
+ const onStreamError = (err) => {
2397
+ fail5(new Error(`\u54CD\u5E94\u89E3\u538B\u5931\u8D25\uFF08${encoding || "identity"}\uFF09\uFF1A${err.message}`));
2398
+ };
2399
+ if (stream !== res) stream.on("error", onStreamError);
2400
+ res.on("error", onStreamError);
2401
+ const chunks = [];
2396
2402
  let byteLen = 0;
2397
- stream.setEncoding("utf8");
2398
2403
  stream.on("data", (chunk) => {
2399
- byteLen += Buffer.byteLength(chunk, "utf8");
2400
- if (maxBytes && byteLen > maxBytes) {
2401
- res.destroy();
2402
- if (perfOn) {
2403
- emitPerf({
2404
- method,
2405
- url,
2406
- status: res.statusCode ?? 0,
2407
- elapsedMs: performance.now() - t0,
2408
- bytes: byteLen,
2409
- ok: false,
2410
- error: "response body exceeded limit"
2411
- });
2412
- }
2413
- reject(
2404
+ if (failed) return;
2405
+ const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
2406
+ byteLen += buf.length;
2407
+ if (maxBytes > 0 && byteLen > maxBytes) {
2408
+ fail5(
2414
2409
  new Error(`\u54CD\u5E94\u4F53\u8D85\u8FC7\u4E0A\u9650\uFF08${(maxBytes / 1024 / 1024).toFixed(0)} MB\uFF09\uFF0C\u5DF2\u4E2D\u65AD\u8FDE\u63A5`)
2415
2410
  );
2416
2411
  return;
2417
2412
  }
2418
- data += chunk;
2413
+ chunks.push(buf);
2419
2414
  });
2420
2415
  stream.on("end", () => {
2421
- const headers2 = {};
2416
+ if (failed) return;
2417
+ const text3 = Buffer.concat(chunks).toString("utf8");
2418
+ const responseHeaders = {};
2422
2419
  for (const [key, val] of Object.entries(res.headers)) {
2423
2420
  if (val !== void 0) {
2424
- headers2[key.toLowerCase()] = Array.isArray(val) ? val[0] : val;
2421
+ responseHeaders[key.toLowerCase()] = Array.isArray(val) ? val[0] : val;
2425
2422
  }
2426
2423
  }
2427
2424
  const status = res.statusCode ?? 0;
@@ -2435,7 +2432,7 @@ function rawRequest(url, options) {
2435
2432
  ok: status >= 200 && status < 300
2436
2433
  });
2437
2434
  }
2438
- resolve52({ status, text: data, headers: headers2 });
2435
+ resolve52({ status, text: text3, headers: responseHeaders });
2439
2436
  });
2440
2437
  });
2441
2438
  req.on("timeout", () => {
@@ -3924,7 +3921,7 @@ async function issueApiKeyWithPhoneCode(opts) {
3924
3921
  });
3925
3922
  return apiKey;
3926
3923
  }
3927
- var import_semver, SILUZAN_DIR, CONFIG_FILE, inProcessLockChain, ALLOWED_HOSTNAME_SUFFIXES, EXACT_ID_FIELD_NAMES, SILUZAN_AGENT_COMPANY_SOURCE_TYPE, DEERFLOW_AGENT_ENV, _clientProduct, _resolveVersion, DEFAULT_TIMEOUT_MS, MAX_RESPONSE_BYTES, httpsAgent, httpAgent, PERF_PREFIX, DEFAULT_DETAIL_MAX, VERBOSE_DETAIL_MAX, GET_RETRY_DELAYS_MS, TABLE_CELL_PIPE, ASCII_TABLE_CHARS, CLI_SNAPSHOT_MANIFEST_FILE, SCHEMA_VERSION, FALLBACK_FIELD_GUIDE_REFS, _cliPackage, _resolveCliVersion, _fieldGuideRefs, OUTLINE_AGENT_HINT, TS_LIKE_ARRAY_SAMPLE_MAX, MAX_INVOCATION_CHARS, currentInvocation, MAX_COMMIT_CHARS, WRITE_AUDIT_AGENT_AUTO_COMMIT, cliCommitOverride, WRITE_AUDIT_SCHEMA_VERSION, MUTATING, BEIJING_TZ, AUDIT_LOG_FILENAME_RE, DEFAULT_MAX_FILE_MB, MIN_SEGMENT_BYTES, MAX_SEGMENT_BYTES, DEFAULT_RETENTION_DAYS, MIN_RETENTION_DAYS, MAX_RETENTION_DAYS, PRUNE_THROTTLE_MS, lastPruneAtMs, MAX_BODY_CHARS, MAX_ERROR_CHARS, DEFAULT_FIND_AUDIT_MAX_DAYS, MAX_SNAPSHOT_FILE_BYTES, API_KEY_SERVICE_VALUES;
3924
+ var import_semver, SILUZAN_DIR, CONFIG_FILE, inProcessLockChain, ALLOWED_HOSTNAME_SUFFIXES, EXACT_ID_FIELD_NAMES, SILUZAN_AGENT_COMPANY_SOURCE_TYPE, DEERFLOW_AGENT_ENV, _clientProduct, _resolveVersion, DEFAULT_TIMEOUT_MS, httpsAgent, httpAgent, PERF_PREFIX, DEFAULT_DETAIL_MAX, VERBOSE_DETAIL_MAX, GET_RETRY_DELAYS_MS, TABLE_CELL_PIPE, ASCII_TABLE_CHARS, CLI_SNAPSHOT_MANIFEST_FILE, SCHEMA_VERSION, FALLBACK_FIELD_GUIDE_REFS, _cliPackage, _resolveCliVersion, _fieldGuideRefs, OUTLINE_AGENT_HINT, TS_LIKE_ARRAY_SAMPLE_MAX, MAX_INVOCATION_CHARS, currentInvocation, MAX_COMMIT_CHARS, WRITE_AUDIT_AGENT_AUTO_COMMIT, cliCommitOverride, WRITE_AUDIT_SCHEMA_VERSION, MUTATING, BEIJING_TZ, AUDIT_LOG_FILENAME_RE, DEFAULT_MAX_FILE_MB, MIN_SEGMENT_BYTES, MAX_SEGMENT_BYTES, DEFAULT_RETENTION_DAYS, MIN_RETENTION_DAYS, MAX_RETENTION_DAYS, PRUNE_THROTTLE_MS, lastPruneAtMs, MAX_BODY_CHARS, MAX_ERROR_CHARS, DEFAULT_FIND_AUDIT_MAX_DAYS, MAX_SNAPSHOT_FILE_BYTES, API_KEY_SERVICE_VALUES;
3928
3925
  var init_dist = __esm({
3929
3926
  "../common/dist/index.js"() {
3930
3927
  "use strict";
@@ -3974,7 +3971,6 @@ var init_dist = __esm({
3974
3971
  DEERFLOW_AGENT_ENV = "DEERFLOW_AGENT";
3975
3972
  _clientProduct = "siluzan-cli";
3976
3973
  DEFAULT_TIMEOUT_MS = 10 * 60 * 1e3;
3977
- MAX_RESPONSE_BYTES = 50 * 1024 * 1024;
3978
3974
  httpsAgent = new https.Agent({
3979
3975
  keepAlive: true,
3980
3976
  keepAliveMsecs: 3e4,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "slug": "siluzan-tso",
3
- "version": "1.1.63-beta.1",
4
- "publishedAt": 1793585270886
3
+ "version": "1.1.64-beta.1",
4
+ "publishedAt": 1793609207587
5
5
  }
@@ -9,7 +9,7 @@ $ErrorActionPreference = 'Stop'
9
9
  # -- Package info (injected at build time) ------------------------------------
10
10
  $PKG_NAME = 'siluzan-tso-cli'
11
11
  # PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
12
- $PKG_VERSION = '1.1.63-beta.1'
12
+ $PKG_VERSION = '1.1.64-beta.1'
13
13
  $CLI_BIN = 'siluzan-tso'
14
14
  $SKILL_LABEL = 'Siluzan TSO'
15
15
  $INSTALL_CMD = 'npm install -g siluzan-tso-cli@beta'
@@ -9,7 +9,7 @@ set -euo pipefail
9
9
  # -- Package info (injected at build time) ------------------------------------
10
10
  readonly PKG_NAME="siluzan-tso-cli"
11
11
  # PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
12
- readonly PKG_VERSION="1.1.63-beta.1"
12
+ readonly PKG_VERSION="1.1.64-beta.1"
13
13
  readonly CLI_BIN="siluzan-tso"
14
14
  readonly SKILL_LABEL="Siluzan TSO"
15
15
  readonly INSTALL_CMD="npm install -g siluzan-tso-cli@beta"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siluzan-tso-cli",
3
- "version": "1.1.63-beta.1",
3
+ "version": "1.1.64-beta.1",
4
4
  "description": "Siluzan 广告账户管理 CLI — 查询账户、余额、消耗数据,管理绑定关系与充值。",
5
5
  "keywords": [
6
6
  "ad-account",