ai-project-manage-cli 6.0.109 → 6.0.110

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 (2) hide show
  1. package/dist/index.js +142 -54
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2637,13 +2637,32 @@ function validateDeployPush(o) {
2637
2637
  }
2638
2638
  };
2639
2639
  }
2640
+ function validateSessionCacheCleanupPush(o) {
2641
+ if (o.type !== "session-cache-cleanup") {
2642
+ return { ok: false, reason: "\u671F\u671B session-cache-cleanup" };
2643
+ }
2644
+ if (!nonEmptyString(o.sessionId)) {
2645
+ return { ok: false, reason: "session-cache-cleanup \u7F3A\u5C11 sessionId" };
2646
+ }
2647
+ if (!nonEmptyString(o.workdir)) {
2648
+ return { ok: false, reason: "session-cache-cleanup \u7F3A\u5C11 workdir" };
2649
+ }
2650
+ return {
2651
+ ok: true,
2652
+ data: {
2653
+ type: "session-cache-cleanup",
2654
+ sessionId: o.sessionId.trim(),
2655
+ workdir: o.workdir.trim()
2656
+ }
2657
+ };
2658
+ }
2640
2659
  function validateAgentWsMessage(value, kind) {
2641
2660
  if (typeof value !== "object" || value === null) {
2642
2661
  return { ok: false, reason: "\u6D88\u606F\u4F53\u4E0D\u662F JSON \u5BF9\u8C61" };
2643
2662
  }
2644
2663
  const o = value;
2645
2664
  const type = o.type;
2646
- if (type !== "heartbeat" && type !== "message" && type !== "cancel" && type !== "deploy") {
2665
+ if (type !== "heartbeat" && type !== "message" && type !== "cancel" && type !== "deploy" && type !== "session-cache-cleanup") {
2647
2666
  return { ok: false, reason: `\u672A\u77E5 type: ${String(type)}` };
2648
2667
  }
2649
2668
  if (kind === "heartbeat" || type === "heartbeat") {
@@ -2655,6 +2674,9 @@ function validateAgentWsMessage(value, kind) {
2655
2674
  if (type === "deploy") {
2656
2675
  return validateDeployPush(o);
2657
2676
  }
2677
+ if (type === "session-cache-cleanup") {
2678
+ return validateSessionCacheCleanupPush(o);
2679
+ }
2658
2680
  return validateMessagePush(o);
2659
2681
  }
2660
2682
 
@@ -2893,6 +2915,19 @@ function posixBasename(p) {
2893
2915
  const idx = normalized.lastIndexOf("/");
2894
2916
  return idx >= 0 ? normalized.slice(idx + 1) : normalized;
2895
2917
  }
2918
+ function resolveWisdomBackendPackOnlyFromApmConfig(cfg) {
2919
+ const projectName = reqTopLevelName(cfg);
2920
+ const w = cfg.wisdomDeploy ?? {};
2921
+ const mavenLocalRepo = resolveMavenLocalRepoWithSource();
2922
+ return {
2923
+ projectName,
2924
+ packageName: `${projectName}.jar.zip`,
2925
+ mavenLocalRepo: mavenLocalRepo.path,
2926
+ mavenLocalRepoSource: mavenLocalRepo.source,
2927
+ mavenLocalRepoSourceDetail: mavenLocalRepo.sourceDetail,
2928
+ mode: resolveWisdomDeployMode(w.mode)
2929
+ };
2930
+ }
2896
2931
  function resolveWisdomBackendDeployFromApmConfig(cfg) {
2897
2932
  const projectName = reqTopLevelName(cfg);
2898
2933
  const w = cfg.wisdomDeploy ?? {};
@@ -4641,6 +4676,12 @@ async function runWisdomSftpDeploy(params) {
4641
4676
  });
4642
4677
  let zipSizeBytes = 0;
4643
4678
  let artifactUploaded = false;
4679
+ if (!packOnly && !params.settings) {
4680
+ throw new DeployExecutionError(
4681
+ "SFTP \u90E8\u7F72\u7F3A\u5C11 wisdomDeploy \u8FDE\u63A5\u914D\u7F6E\uFF08host\u3001remotePath \u7B49\uFF09",
4682
+ 1
4683
+ );
4684
+ }
4644
4685
  if (packOnly && artifactUpload.upload) {
4645
4686
  const packed = await packDirectoryWithMinioArchive({
4646
4687
  localDir: params.localDir,
@@ -4684,8 +4725,8 @@ async function runWisdomSftpDeploy(params) {
4684
4725
  return {
4685
4726
  ok: true,
4686
4727
  localDir: params.localDir,
4687
- host: params.settings.host,
4688
- remotePath: params.settings.remotePath,
4728
+ host: params.settings?.host ?? "",
4729
+ remotePath: params.settings?.remotePath ?? "",
4689
4730
  zipSizeBytes,
4690
4731
  extracted: packOnly ? false : params.extract,
4691
4732
  packOnly,
@@ -5209,6 +5250,12 @@ async function restartRemoteService(client, config) {
5209
5250
  }
5210
5251
 
5211
5252
  // src/commands/deploy/internal/wisdom-backend/index.ts
5253
+ function asFullBackendDeployConfig(config) {
5254
+ if (!("host" in config)) {
5255
+ fail("\u5B8C\u6574\u90E8\u7F72\u7F3A\u5C11 wisdomDeploy \u8FDC\u7A0B\u8FDE\u63A5\u914D\u7F6E");
5256
+ }
5257
+ return config;
5258
+ }
5212
5259
  async function runWisdomBackendDeploy(options) {
5213
5260
  const projectRoot = path9.resolve(options.projectRoot ?? process.cwd());
5214
5261
  const config = options.config;
@@ -5260,11 +5307,12 @@ async function runWisdomBackendDeploy(options) {
5260
5307
  log("\u4EC5\u6253\u5305\u5B8C\u6210\uFF08\u672A\u4E0A\u4F20\u8FDC\u7A0B\u670D\u52A1\u5668\uFF09");
5261
5308
  return;
5262
5309
  }
5263
- const conn = await connectSsh(config);
5310
+ const deployConfig = asFullBackendDeployConfig(config);
5311
+ const conn = await connectSsh(deployConfig);
5264
5312
  try {
5265
5313
  if (config.mode === "full") {
5266
5314
  const mainJar = locateMainJar(projectRoot);
5267
- await uploadFullJar(conn.sftp, mainJar, config);
5315
+ await uploadFullJar(conn.sftp, mainJar, deployConfig);
5268
5316
  const archiveZipPath = await createUpdatePackage(
5269
5317
  [
5270
5318
  {
@@ -5281,8 +5329,8 @@ async function runWisdomBackendDeploy(options) {
5281
5329
  kind: "backend"
5282
5330
  });
5283
5331
  log("\u91CD\u542F\u670D\u52A1...");
5284
- await restartRemoteService(conn.client, config);
5285
- await healthCheckService(conn.client, config);
5332
+ await restartRemoteService(conn.client, deployConfig);
5333
+ await healthCheckService(conn.client, deployConfig);
5286
5334
  log("\u90E8\u7F72\u5B8C\u6210");
5287
5335
  return;
5288
5336
  }
@@ -5290,7 +5338,7 @@ async function runWisdomBackendDeploy(options) {
5290
5338
  let manifest = loadManifest3();
5291
5339
  const remoteLibStats = await getRemoteFileStats(
5292
5340
  conn.sftp,
5293
- config.remoteLibDir
5341
+ deployConfig.remoteLibDir
5294
5342
  );
5295
5343
  log("\u6536\u96C6 JAR \u66F4\u65B0...");
5296
5344
  const libUploadEntries = listLibFilesToUpload(
@@ -5308,7 +5356,7 @@ async function runWisdomBackendDeploy(options) {
5308
5356
  const remoteZipPath = await uploadUpdatePackage(
5309
5357
  conn.sftp,
5310
5358
  zipPath,
5311
- config
5359
+ deployConfig
5312
5360
  );
5313
5361
  await uploadDeployArtifactZip({
5314
5362
  zipPath,
@@ -5318,13 +5366,13 @@ async function runWisdomBackendDeploy(options) {
5318
5366
  log("\u8FDC\u7A0B\u89E3\u538B lib \u76EE\u5F55\uFF08\u4EC5\u8986\u76D6\u5DF2\u6709 JAR\uFF09...");
5319
5367
  updated = await extractUpdatePackageOnRemote(
5320
5368
  conn.client,
5321
- config,
5369
+ deployConfig,
5322
5370
  remoteZipPath
5323
5371
  );
5324
5372
  } else {
5325
5373
  log("\u65E0 JAR \u9700\u8981\u66F4\u65B0\uFF0C\u8DF3\u8FC7\u66F4\u65B0\u5305\u4E0A\u4F20");
5326
5374
  }
5327
- const runningJar = await getRunningJar(conn.client, config);
5375
+ const runningJar = await getRunningJar(conn.client, deployConfig);
5328
5376
  let needRestart = updated > 0;
5329
5377
  if (!needRestart && !runningJar) {
5330
5378
  log("\u670D\u52A1\u672A\u8FD0\u884C\uFF0C\u9700\u8981\u542F\u52A8");
@@ -5334,9 +5382,9 @@ async function runWisdomBackendDeploy(options) {
5334
5382
  }
5335
5383
  if (needRestart) {
5336
5384
  log("\u91CD\u542F\u670D\u52A1...");
5337
- await restartRemoteService(conn.client, config);
5385
+ await restartRemoteService(conn.client, deployConfig);
5338
5386
  }
5339
- await healthCheckService(conn.client, config);
5387
+ await healthCheckService(conn.client, deployConfig);
5340
5388
  if (libUploadEntries.length > 0) {
5341
5389
  manifest = updateManifestEntries(manifest, libUploadEntries, projectRoot);
5342
5390
  saveManifest3(manifest);
@@ -5418,7 +5466,7 @@ async function executeWisdomFrontendDeploy(options) {
5418
5466
  const projectName = resolveProjectNameForDeploy(cfg, cwd, {
5419
5467
  requireName: packOnly || archiveDeployArtifact
5420
5468
  });
5421
- const settings = resolveWisdomDeployFromApmConfig(cfg);
5469
+ const settings = packOnly ? void 0 : resolveWisdomDeployFromApmConfig(cfg);
5422
5470
  await runWisdomSftpDeploy({
5423
5471
  localDir: distDir,
5424
5472
  settings,
@@ -5430,7 +5478,7 @@ async function executeWisdomFrontendDeploy(options) {
5430
5478
  }
5431
5479
  async function executeWisdomBackendDeployFlow(options) {
5432
5480
  const { cwd, cfg, packOnly } = options;
5433
- const settings = resolveWisdomBackendDeployFromApmConfig(cfg);
5481
+ const settings = packOnly ? resolveWisdomBackendPackOnlyFromApmConfig(cfg) : resolveWisdomBackendDeployFromApmConfig(cfg);
5434
5482
  if (packOnly) {
5435
5483
  console.error(`[apm] Java\uFF1AMaven \u6784\u5EFA\uFF08\u4EC5\u6253\u5305\uFF0C\u5FFD\u7565\u73AF\u5883 ${options.env}\uFF09`);
5436
5484
  } else {
@@ -5652,7 +5700,8 @@ async function executeDeploy(options) {
5652
5700
  }
5653
5701
  const preDeployLog = outputParts.join("\n");
5654
5702
  const cfg = loadApmConfig({ configPath: apmConfigPath });
5655
- if (!isWisdomDeployConfigured(cfg)) {
5703
+ const packOnly = Boolean(options.packOnly);
5704
+ if (!packOnly && !isWisdomDeployConfigured(cfg)) {
5656
5705
  const lines = formatMissingWisdomDeployLines();
5657
5706
  throw new DeployExecutionError(lines.join("\n"), 1, lines.join("\n"));
5658
5707
  }
@@ -5662,7 +5711,7 @@ async function executeDeploy(options) {
5662
5711
  cwd,
5663
5712
  configPath: apmConfigPath,
5664
5713
  captureOutput,
5665
- packOnly: options.packOnly,
5714
+ packOnly,
5666
5715
  archiveDeployArtifact: options.archiveDeployArtifact
5667
5716
  });
5668
5717
  return preDeployLog;
@@ -5945,6 +5994,58 @@ async function handleInboundDeploy(cfg, msg, signal) {
5945
5994
  }
5946
5995
  }
5947
5996
 
5997
+ // src/commands/clean-session-cache.ts
5998
+ import { existsSync as existsSync20, rmSync as rmSync4 } from "node:fs";
5999
+
6000
+ // src/commands/connect/pre-step-cache.ts
6001
+ var PULL_TTL_MS = 3e4;
6002
+ function sessionWorkdirKey(sessionId, workdir) {
6003
+ return `${sessionId}\0${workdir}`;
6004
+ }
6005
+ var lastBranchKey = null;
6006
+ var lastPullAtByKey = /* @__PURE__ */ new Map();
6007
+ function shouldRunBranch(sessionId, workdir) {
6008
+ return lastBranchKey !== sessionWorkdirKey(sessionId, workdir);
6009
+ }
6010
+ function markBranchDone(sessionId, workdir) {
6011
+ lastBranchKey = sessionWorkdirKey(sessionId, workdir);
6012
+ }
6013
+ function shouldRunPull(sessionId, workdir) {
6014
+ const key = sessionWorkdirKey(sessionId, workdir);
6015
+ const last = lastPullAtByKey.get(key);
6016
+ if (last == null) {
6017
+ return true;
6018
+ }
6019
+ return Date.now() - last >= PULL_TTL_MS;
6020
+ }
6021
+ function markPullDone(sessionId, workdir) {
6022
+ lastPullAtByKey.set(sessionWorkdirKey(sessionId, workdir), Date.now());
6023
+ }
6024
+ function clearPreStepCacheForSession(sessionId, workdir) {
6025
+ const key = sessionWorkdirKey(sessionId, workdir);
6026
+ lastPullAtByKey.delete(key);
6027
+ if (lastBranchKey === key) {
6028
+ lastBranchKey = null;
6029
+ }
6030
+ }
6031
+
6032
+ // src/commands/clean-session-cache.ts
6033
+ function cleanSessionWorkspaceCache(sessionId, workdir) {
6034
+ const trimmedSessionId = sessionId.trim();
6035
+ const trimmedWorkdir = workdir.trim();
6036
+ if (!trimmedSessionId || !trimmedWorkdir) {
6037
+ return;
6038
+ }
6039
+ const dir = sessionDir(trimmedSessionId, workspaceApmDir(trimmedWorkdir));
6040
+ if (existsSync20(dir)) {
6041
+ rmSync4(dir, { recursive: true, force: true });
6042
+ console.log(`[apm] \u5DF2\u6E05\u7406\u4F1A\u8BDD\u7F13\u5B58 ${dir}`);
6043
+ } else {
6044
+ console.log(`[apm] \u4F1A\u8BDD\u7F13\u5B58\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7 ${dir}`);
6045
+ }
6046
+ clearPreStepCacheForSession(trimmedSessionId, trimmedWorkdir);
6047
+ }
6048
+
5948
6049
  // src/commands/connect/abort-signal-debug.ts
5949
6050
  import {
5950
6051
  getEventListeners,
@@ -6212,13 +6313,13 @@ ${JSON.stringify(event, null, 2)}
6212
6313
  }
6213
6314
 
6214
6315
  // src/commands/connect/agent-session-registry.ts
6215
- import { existsSync as existsSync20, mkdirSync as mkdirSync9, readFileSync as readFileSync16, writeFileSync as writeFileSync14 } from "node:fs";
6316
+ import { existsSync as existsSync21, mkdirSync as mkdirSync9, readFileSync as readFileSync16, writeFileSync as writeFileSync14 } from "node:fs";
6216
6317
  import { dirname as dirname6, resolve as resolve5 } from "node:path";
6217
6318
  function registryPath(workdir, sessionId) {
6218
6319
  return resolve5(workdir, ".apm", "sessions", sessionId, "cursor-agents.json");
6219
6320
  }
6220
6321
  function readRegistry(path19) {
6221
- if (!existsSync20(path19)) {
6322
+ if (!existsSync21(path19)) {
6222
6323
  return {};
6223
6324
  }
6224
6325
  try {
@@ -6690,7 +6791,7 @@ async function ensureMessageHasReply(cfg, sessionId, messageId, fallback) {
6690
6791
  }
6691
6792
 
6692
6793
  // src/commands/connect/cli-version-sync.ts
6693
- import { existsSync as existsSync21, readFileSync as readFileSync17, writeFileSync as writeFileSync15 } from "fs";
6794
+ import { existsSync as existsSync22, readFileSync as readFileSync17, writeFileSync as writeFileSync15 } from "fs";
6694
6795
  import { join as join17 } from "path";
6695
6796
  var CLI_VERSION_FILE = ".cli-version.json";
6696
6797
  function manifestPath(apmDir) {
@@ -6698,7 +6799,7 @@ function manifestPath(apmDir) {
6698
6799
  }
6699
6800
  function loadManifest4(apmDir) {
6700
6801
  const path19 = toFsPath(manifestPath(apmDir));
6701
- if (!existsSync21(path19)) {
6802
+ if (!existsSync22(path19)) {
6702
6803
  return null;
6703
6804
  }
6704
6805
  try {
@@ -6739,31 +6840,6 @@ function markSkillsSyncedForCliVersion(workdir, cliVersion) {
6739
6840
  syncedInSession.set(workdir, cliVersion);
6740
6841
  }
6741
6842
 
6742
- // src/commands/connect/pre-step-cache.ts
6743
- var PULL_TTL_MS = 3e4;
6744
- function sessionWorkdirKey(sessionId, workdir) {
6745
- return `${sessionId}\0${workdir}`;
6746
- }
6747
- var lastBranchKey = null;
6748
- var lastPullAtByKey = /* @__PURE__ */ new Map();
6749
- function shouldRunBranch(sessionId, workdir) {
6750
- return lastBranchKey !== sessionWorkdirKey(sessionId, workdir);
6751
- }
6752
- function markBranchDone(sessionId, workdir) {
6753
- lastBranchKey = sessionWorkdirKey(sessionId, workdir);
6754
- }
6755
- function shouldRunPull(sessionId, workdir) {
6756
- const key = sessionWorkdirKey(sessionId, workdir);
6757
- const last = lastPullAtByKey.get(key);
6758
- if (last == null) {
6759
- return true;
6760
- }
6761
- return Date.now() - last >= PULL_TTL_MS;
6762
- }
6763
- function markPullDone(sessionId, workdir) {
6764
- lastPullAtByKey.set(sessionWorkdirKey(sessionId, workdir), Date.now());
6765
- }
6766
-
6767
6843
  // src/commands/connect/run-slot-pool.ts
6768
6844
  var DEFAULT_MAX_CONCURRENT = 5;
6769
6845
  function createRunSlotPool(maxConcurrent = DEFAULT_MAX_CONCURRENT, options = {}) {
@@ -7063,6 +7139,18 @@ function attachWsHandlers(ws, ctx, onOpen) {
7063
7139
  });
7064
7140
  return;
7065
7141
  }
7142
+ if (validated.data.type === "session-cache-cleanup") {
7143
+ const msg2 = validated.data;
7144
+ const task2 = (async () => {
7145
+ const workdir = requireRemoteWorkdir(msg2.workdir);
7146
+ cleanSessionWorkspaceCache(msg2.sessionId, workdir);
7147
+ })();
7148
+ activeTasks.add(task2);
7149
+ void task2.finally(() => {
7150
+ activeTasks.delete(task2);
7151
+ });
7152
+ return;
7153
+ }
7066
7154
  if (validated.data.type !== "message") {
7067
7155
  return;
7068
7156
  }
@@ -7503,7 +7591,7 @@ function registerDeployMainCommand(program) {
7503
7591
  "\u6C9F\u901A\u7FA4 ID\uFF1B\u4F20\u5165\u65F6\u5728\u5E73\u53F0\u521B\u5EFA\u90E8\u7F72\u8BB0\u5F55\u5E76\u540C\u6B65\u65E5\u5FD7"
7504
7592
  ).option(
7505
7593
  "--pack-only",
7506
- "\u4EC5\u6784\u5EFA/\u6253\u5305\uFF0C\u4E0D\u4E0A\u4F20\u8FDC\u7A0B SFTP/SSH\uFF1B\u53EF\u5F52\u6863\u5E73\u53F0\u90E8\u7F72\u4EA7\u7269"
7594
+ "\u4EC5\u6784\u5EFA/\u6253\u5305\u5E76\u4E0A\u4F20 MinIO \u5F52\u6863\uFF0C\u4E0D\u4E0A\u4F20\u8FDC\u7A0B SFTP/SSH\uFF08\u65E0\u9700 wisdomDeploy\uFF09"
7507
7595
  ).action(
7508
7596
  async (env, opts) => {
7509
7597
  const cwd = process.cwd();
@@ -7549,7 +7637,7 @@ import path15 from "node:path";
7549
7637
  import Docker from "dockerode";
7550
7638
 
7551
7639
  // src/commands/deploy/internal/backend-deploy/dockerode-client/connection-options.ts
7552
- import { existsSync as existsSync22, readFileSync as readFileSync18 } from "node:fs";
7640
+ import { existsSync as existsSync23, readFileSync as readFileSync18 } from "node:fs";
7553
7641
  import path12 from "node:path";
7554
7642
  function asOptionalTlsBuffer(value) {
7555
7643
  if (typeof value !== "string") {
@@ -7561,7 +7649,7 @@ function asOptionalTlsBuffer(value) {
7561
7649
  if (normalized === "") {
7562
7650
  return void 0;
7563
7651
  }
7564
- if (existsSync22(normalized)) {
7652
+ if (existsSync23(normalized)) {
7565
7653
  return readFileSync18(normalized);
7566
7654
  }
7567
7655
  const looksLikePath = /[\\/]/.test(normalized) || normalized.endsWith(".pem");
@@ -7772,7 +7860,7 @@ var DockerodeClient = class {
7772
7860
  var createDockerodeClient = (config) => new DockerodeClient(config);
7773
7861
 
7774
7862
  // src/commands/deploy/internal/backend-deploy/dockerode-client/env.ts
7775
- import { existsSync as existsSync23, readFileSync as readFileSync19, statSync as statSync10 } from "node:fs";
7863
+ import { existsSync as existsSync24, readFileSync as readFileSync19, statSync as statSync10 } from "node:fs";
7776
7864
  import path13 from "node:path";
7777
7865
  function stripSurroundingQuotes(value) {
7778
7866
  const t = value.trim();
@@ -7789,7 +7877,7 @@ function loadEnvFromFile(envFilePath) {
7789
7877
  return {};
7790
7878
  }
7791
7879
  const targetPath = path13.resolve(envFilePath);
7792
- if (!existsSync23(targetPath) || !statSync10(targetPath).isFile()) {
7880
+ if (!existsSync24(targetPath) || !statSync10(targetPath).isFile()) {
7793
7881
  return {};
7794
7882
  }
7795
7883
  const raw = readFileSync19(targetPath, "utf-8");
@@ -7963,12 +8051,12 @@ function dockerPushImage(params, cwd) {
7963
8051
  }
7964
8052
 
7965
8053
  // src/commands/deploy/internal/backend-deploy/resolve-dockerfile.ts
7966
- import { existsSync as existsSync24 } from "node:fs";
8054
+ import { existsSync as existsSync25 } from "node:fs";
7967
8055
  import path14 from "node:path";
7968
8056
  function resolveDockerBuildPaths(cwd) {
7969
8057
  const dockerfilePath = path14.join(cwd, "Dockerfile");
7970
8058
  Logger.info(`\u67E5\u627EDockerfile\u6587\u4EF6\uFF0C\u8DEF\u5F84: ${dockerfilePath}`);
7971
- if (!existsSync24(dockerfilePath)) {
8059
+ if (!existsSync25(dockerfilePath)) {
7972
8060
  throw new Error(`Dockerfile \u4E0D\u5B58\u5728\uFF1A${dockerfilePath}`);
7973
8061
  }
7974
8062
  Logger.info("\u2713 Dockerfile \u5B58\u5728");
@@ -8289,7 +8377,6 @@ function registerDeploySftpCommands(program) {
8289
8377
  async (opts) => {
8290
8378
  try {
8291
8379
  const cfg = loadApmConfig({ configPath: opts.config });
8292
- const settings = resolveWisdomDeployFromApmConfig(cfg);
8293
8380
  const projectName = resolveProjectNameForDeploy(cfg, process.cwd(), {
8294
8381
  requireName: true
8295
8382
  });
@@ -8304,6 +8391,7 @@ function registerDeploySftpCommands(program) {
8304
8391
  1
8305
8392
  );
8306
8393
  }
8394
+ const settings = packOnly ? void 0 : resolveWisdomDeployFromApmConfig(cfg);
8307
8395
  const result = await runWisdomSftpDeploy({
8308
8396
  localDir: root,
8309
8397
  settings,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-project-manage-cli",
3
- "version": "6.0.109",
3
+ "version": "6.0.110",
4
4
  "description": "命令行工具:后续用于调用平台后端 API 完成运维与自动化操作",
5
5
  "type": "module",
6
6
  "private": false,