@dsh-workbench/core 0.2.7 → 0.2.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.
@@ -2287,6 +2287,18 @@ function createWorkspaceStore(options) {
2287
2287
  };
2288
2288
  }
2289
2289
  //#endregion
2290
+ //#region src/shared/api/bundle-install.ts
2291
+ var BUNDLE_REGISTRIES_ROUTE = "bundle-registries";
2292
+ var BUNDLE_INSPECT_ROUTE = "bundle-inspect";
2293
+ var MODULE_VERSIONS_ROUTE = "module-versions";
2294
+ var RESTART_REASONS = [
2295
+ "no-hmr",
2296
+ "package-moved",
2297
+ "host-module",
2298
+ "unmanaged-plugin",
2299
+ "module-comparison"
2300
+ ];
2301
+ //#endregion
2290
2302
  //#region src/shared/api/host/bundle-manager.ts
2291
2303
  var MANAGER_SERVICE$1 = "pluginManager";
2292
2304
  var APPLICATIONS = [
@@ -2382,6 +2394,7 @@ function asChange(raw) {
2382
2394
  const error = asRecord$6(record.error);
2383
2395
  const packageResult = asPackageResult(record.packageResult);
2384
2396
  const pendingBuilds = asTextArray(record.pendingBuilds);
2397
+ const restartReason = pick(RESTART_REASONS, record.restartReason);
2385
2398
  const failedAt = pick(["registry", "spec-host"], record.failedAt);
2386
2399
  const bundle = asText$4(record.bundle);
2387
2400
  const errorCode = error === void 0 ? "" : asText$4(error.code);
@@ -2396,6 +2409,7 @@ function asChange(raw) {
2396
2409
  ...errorDetail === "" ? {} : { errorDetail },
2397
2410
  ...packageResult === void 0 ? {} : { packageResult },
2398
2411
  ...pendingBuilds.length === 0 ? {} : { pendingBuilds },
2412
+ ...restartReason === void 0 ? {} : { restartReason },
2399
2413
  ...failedAt === void 0 ? {} : { failedAt }
2400
2414
  };
2401
2415
  }
@@ -5154,6 +5168,13 @@ async function retryAfterRegistryFix(deps, manager, pkg, change) {
5154
5168
  return await manager.remove(pkg).catch(() => null) ?? change;
5155
5169
  }
5156
5170
  //#endregion
5171
+ //#region src/modules/panels/model/market-restart.ts
5172
+ function restartLogLine(change) {
5173
+ if (change === null || change === void 0 || change.application !== "restart-required") return;
5174
+ const why = change.restartReason ?? "没给";
5175
+ return `[dsh-workbench] ${change.target} 装上了,但这一版要重启一次 dsh 才生效(dsh 那边给的理由:${why})`;
5176
+ }
5177
+ //#endregion
5157
5178
  //#region src/modules/panels/model/market.ts
5158
5179
  function createMarketService(options) {
5159
5180
  const { manifests, manifestsNow, probe, shell, logger, onInstalled, onUninstalled, isReleased, bundles, installed, modules, workbench, registries, ledger, references, dshHome, profileName } = options;
@@ -5340,12 +5361,15 @@ function createMarketService(options) {
5340
5361
  async function installByRoute(spec, options) {
5341
5362
  const manager = requireBundles();
5342
5363
  const registry = options?.registry ?? (await manager.registries().catch(() => null))?.resolved ?? void 0;
5343
- return installRouted({
5364
+ const outcome = await installRouted({
5344
5365
  ...routeDeps(manager),
5345
5366
  spec,
5346
5367
  ...options === void 0 ? {} : { options },
5347
5368
  ...registry === void 0 ? {} : { registry }
5348
5369
  });
5370
+ const restart = restartLogLine(outcome?.change);
5371
+ if (restart !== void 0) logger?.info?.(restart);
5372
+ return outcome;
5349
5373
  }
5350
5374
  const service = {
5351
5375
  async list() {
@@ -6955,11 +6979,6 @@ function dshPluginsHandler(ctx) {
6955
6979
  return () => readDshPlugins(ctx);
6956
6980
  }
6957
6981
  //#endregion
6958
- //#region src/shared/api/bundle-install.ts
6959
- var BUNDLE_REGISTRIES_ROUTE = "bundle-registries";
6960
- var BUNDLE_INSPECT_ROUTE = "bundle-inspect";
6961
- var MODULE_VERSIONS_ROUTE = "module-versions";
6962
- //#endregion
6963
6982
  //#region src/shared/api/host/bundle-routes.ts
6964
6983
  function registryOf(search) {
6965
6984
  const raw = param(search, "registry");
@@ -322,6 +322,7 @@ export declare const kit: {
322
322
  readonly "panels.market.moduleRefused": "\u6A21\u5757\u7248\u672C\u4E0E\u5DE5\u4F5C\u53F0\u4E0D\u5339\u914D\uFF0C\u6682\u65F6\u65E0\u6CD5\u4F7F\u7528";
323
323
  readonly "panels.market.moduleRefusedDetail": "\u88C5\u4E0D\u4E0A\u7684\u539F\u56E0\uFF1A{reason}";
324
324
  readonly "panels.market.moduleRestartHint": "\u91CD\u542F\u540E\u751F\u6548";
325
+ readonly "panels.market.pendingRestart": "\u91CD\u542F\u540E\u751F\u6548";
325
326
  readonly "panels.market.workbenchName": "\u5DE5\u4F5C\u53F0";
326
327
  readonly "panels.market.workbenchLocal": "\u8FD9\u4EFD\u662F\u672C\u4ED3\u6B63\u5728\u5F00\u53D1\u7684\u90A3\u4E00\u4EFD\uFF0C\u4E0D\u4ECE\u6E90\u4E0A\u53D6\u3002";
327
328
  readonly "panels.market.pluginKeptInUse": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A{names} \u8FD8\u8981\u7528\u5B83\u3002";
@@ -431,6 +432,12 @@ export declare const kit: {
431
432
  readonly "panels.market.add.approveHint": "\u8FD9\u51E0\u4E2A\u5305\u8981\u8DD1\u5B89\u88C5\u811A\u672C\uFF1A{packages}";
432
433
  readonly "panels.market.add.doneApplied": "\u88C5\u597D\u4E86\uFF0C\u5DF2\u7ECF\u751F\u6548\u3002";
433
434
  readonly "panels.market.add.doneRestart": "\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
435
+ readonly "panels.market.add.restartWhy": "\u4E3A\u4EC0\u4E48\u8FD9\u4E00\u7248\u8981\u91CD\u542F\uFF1A{reason}";
436
+ readonly "panels.market.add.restartWhy.no-hmr": "\u8FD9\u4E2A profile \u53EA\u5728\u542F\u52A8\u65F6\u5E94\u7528\u6539\u52A8\uFF08\u6CA1\u5F00\u70ED\u6362\uFF09";
437
+ readonly "panels.market.add.restartWhy.package-moved": "\u67D0\u4E2A\u5DF2\u7ECF\u88C5\u7740\u7684\u5305\u6362\u5230\u4E86\u65B0\u7684\u76EE\u5F55\uFF0C\u6216\u8005\u8FD9\u4E00\u4E0B\u6362\u6389\u4E86 dsh \u81EA\u5DF1\u63D0\u4F9B\u7684\u90A3\u4EFD";
438
+ readonly "panels.market.add.restartWhy.host-module": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86 dsh \u81EA\u5DF1\u52A0\u8F7D\u7684\u6A21\u5757";
439
+ readonly "panels.market.add.restartWhy.unmanaged-plugin": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86\u63D2\u4EF6\u6E05\u5355\u4E4B\u5916\u6B63\u5728\u8DD1\u7684\u63D2\u4EF6";
440
+ readonly "panels.market.add.restartWhy.module-comparison": "dsh \u6CA1\u80FD\u628A\u5DF2\u52A0\u8F7D\u7684\u63D2\u4EF6\u4E0E\u76D8\u4E0A\u7684\u6587\u4EF6\u5BF9\u4E0A";
434
441
  readonly "panels.market.add.cancelled": "\u5DF2\u53D6\u6D88\u3002";
435
442
  readonly "panels.market.add.failed": "\u6CA1\u6210\u529F\uFF1A{reason}";
436
443
  readonly "panels.market.add.removed": "\u5DF2\u7ECF\u79FB\u9664\u4E86\u3002";
@@ -583,7 +590,7 @@ export declare const kit: {
583
590
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
584
591
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
585
592
  };
586
- en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed", string>;
593
+ en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed", string>;
587
594
  };
588
595
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
589
596
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -719,6 +726,7 @@ export declare const kit: {
719
726
  readonly "panels.market.moduleRefused": "\u6A21\u5757\u7248\u672C\u4E0E\u5DE5\u4F5C\u53F0\u4E0D\u5339\u914D\uFF0C\u6682\u65F6\u65E0\u6CD5\u4F7F\u7528";
720
727
  readonly "panels.market.moduleRefusedDetail": "\u88C5\u4E0D\u4E0A\u7684\u539F\u56E0\uFF1A{reason}";
721
728
  readonly "panels.market.moduleRestartHint": "\u91CD\u542F\u540E\u751F\u6548";
729
+ readonly "panels.market.pendingRestart": "\u91CD\u542F\u540E\u751F\u6548";
722
730
  readonly "panels.market.workbenchName": "\u5DE5\u4F5C\u53F0";
723
731
  readonly "panels.market.workbenchLocal": "\u8FD9\u4EFD\u662F\u672C\u4ED3\u6B63\u5728\u5F00\u53D1\u7684\u90A3\u4E00\u4EFD\uFF0C\u4E0D\u4ECE\u6E90\u4E0A\u53D6\u3002";
724
732
  readonly "panels.market.pluginKeptInUse": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A{names} \u8FD8\u8981\u7528\u5B83\u3002";
@@ -828,6 +836,12 @@ export declare const kit: {
828
836
  readonly "panels.market.add.approveHint": "\u8FD9\u51E0\u4E2A\u5305\u8981\u8DD1\u5B89\u88C5\u811A\u672C\uFF1A{packages}";
829
837
  readonly "panels.market.add.doneApplied": "\u88C5\u597D\u4E86\uFF0C\u5DF2\u7ECF\u751F\u6548\u3002";
830
838
  readonly "panels.market.add.doneRestart": "\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
839
+ readonly "panels.market.add.restartWhy": "\u4E3A\u4EC0\u4E48\u8FD9\u4E00\u7248\u8981\u91CD\u542F\uFF1A{reason}";
840
+ readonly "panels.market.add.restartWhy.no-hmr": "\u8FD9\u4E2A profile \u53EA\u5728\u542F\u52A8\u65F6\u5E94\u7528\u6539\u52A8\uFF08\u6CA1\u5F00\u70ED\u6362\uFF09";
841
+ readonly "panels.market.add.restartWhy.package-moved": "\u67D0\u4E2A\u5DF2\u7ECF\u88C5\u7740\u7684\u5305\u6362\u5230\u4E86\u65B0\u7684\u76EE\u5F55\uFF0C\u6216\u8005\u8FD9\u4E00\u4E0B\u6362\u6389\u4E86 dsh \u81EA\u5DF1\u63D0\u4F9B\u7684\u90A3\u4EFD";
842
+ readonly "panels.market.add.restartWhy.host-module": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86 dsh \u81EA\u5DF1\u52A0\u8F7D\u7684\u6A21\u5757";
843
+ readonly "panels.market.add.restartWhy.unmanaged-plugin": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86\u63D2\u4EF6\u6E05\u5355\u4E4B\u5916\u6B63\u5728\u8DD1\u7684\u63D2\u4EF6";
844
+ readonly "panels.market.add.restartWhy.module-comparison": "dsh \u6CA1\u80FD\u628A\u5DF2\u52A0\u8F7D\u7684\u63D2\u4EF6\u4E0E\u76D8\u4E0A\u7684\u6587\u4EF6\u5BF9\u4E0A";
831
845
  readonly "panels.market.add.cancelled": "\u5DF2\u53D6\u6D88\u3002";
832
846
  readonly "panels.market.add.failed": "\u6CA1\u6210\u529F\uFF1A{reason}";
833
847
  readonly "panels.market.add.removed": "\u5DF2\u7ECF\u79FB\u9664\u4E86\u3002";
@@ -1283,6 +1297,7 @@ export declare const kit: {
1283
1297
  readonly "panels.market.moduleRefused": "\u6A21\u5757\u7248\u672C\u4E0E\u5DE5\u4F5C\u53F0\u4E0D\u5339\u914D\uFF0C\u6682\u65F6\u65E0\u6CD5\u4F7F\u7528";
1284
1298
  readonly "panels.market.moduleRefusedDetail": "\u88C5\u4E0D\u4E0A\u7684\u539F\u56E0\uFF1A{reason}";
1285
1299
  readonly "panels.market.moduleRestartHint": "\u91CD\u542F\u540E\u751F\u6548";
1300
+ readonly "panels.market.pendingRestart": "\u91CD\u542F\u540E\u751F\u6548";
1286
1301
  readonly "panels.market.workbenchName": "\u5DE5\u4F5C\u53F0";
1287
1302
  readonly "panels.market.workbenchLocal": "\u8FD9\u4EFD\u662F\u672C\u4ED3\u6B63\u5728\u5F00\u53D1\u7684\u90A3\u4E00\u4EFD\uFF0C\u4E0D\u4ECE\u6E90\u4E0A\u53D6\u3002";
1288
1303
  readonly "panels.market.pluginKeptInUse": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A{names} \u8FD8\u8981\u7528\u5B83\u3002";
@@ -1392,6 +1407,12 @@ export declare const kit: {
1392
1407
  readonly "panels.market.add.approveHint": "\u8FD9\u51E0\u4E2A\u5305\u8981\u8DD1\u5B89\u88C5\u811A\u672C\uFF1A{packages}";
1393
1408
  readonly "panels.market.add.doneApplied": "\u88C5\u597D\u4E86\uFF0C\u5DF2\u7ECF\u751F\u6548\u3002";
1394
1409
  readonly "panels.market.add.doneRestart": "\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
1410
+ readonly "panels.market.add.restartWhy": "\u4E3A\u4EC0\u4E48\u8FD9\u4E00\u7248\u8981\u91CD\u542F\uFF1A{reason}";
1411
+ readonly "panels.market.add.restartWhy.no-hmr": "\u8FD9\u4E2A profile \u53EA\u5728\u542F\u52A8\u65F6\u5E94\u7528\u6539\u52A8\uFF08\u6CA1\u5F00\u70ED\u6362\uFF09";
1412
+ readonly "panels.market.add.restartWhy.package-moved": "\u67D0\u4E2A\u5DF2\u7ECF\u88C5\u7740\u7684\u5305\u6362\u5230\u4E86\u65B0\u7684\u76EE\u5F55\uFF0C\u6216\u8005\u8FD9\u4E00\u4E0B\u6362\u6389\u4E86 dsh \u81EA\u5DF1\u63D0\u4F9B\u7684\u90A3\u4EFD";
1413
+ readonly "panels.market.add.restartWhy.host-module": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86 dsh \u81EA\u5DF1\u52A0\u8F7D\u7684\u6A21\u5757";
1414
+ readonly "panels.market.add.restartWhy.unmanaged-plugin": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86\u63D2\u4EF6\u6E05\u5355\u4E4B\u5916\u6B63\u5728\u8DD1\u7684\u63D2\u4EF6";
1415
+ readonly "panels.market.add.restartWhy.module-comparison": "dsh \u6CA1\u80FD\u628A\u5DF2\u52A0\u8F7D\u7684\u63D2\u4EF6\u4E0E\u76D8\u4E0A\u7684\u6587\u4EF6\u5BF9\u4E0A";
1395
1416
  readonly "panels.market.add.cancelled": "\u5DF2\u53D6\u6D88\u3002";
1396
1417
  readonly "panels.market.add.failed": "\u6CA1\u6210\u529F\uFF1A{reason}";
1397
1418
  readonly "panels.market.add.removed": "\u5DF2\u7ECF\u79FB\u9664\u4E86\u3002";
@@ -1544,7 +1565,7 @@ export declare const kit: {
1544
1565
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
1545
1566
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1546
1567
  };
1547
- en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed", string>;
1568
+ en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed", string>;
1548
1569
  };
1549
1570
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
1550
1571
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -1680,6 +1701,7 @@ export declare const kit: {
1680
1701
  readonly "panels.market.moduleRefused": "\u6A21\u5757\u7248\u672C\u4E0E\u5DE5\u4F5C\u53F0\u4E0D\u5339\u914D\uFF0C\u6682\u65F6\u65E0\u6CD5\u4F7F\u7528";
1681
1702
  readonly "panels.market.moduleRefusedDetail": "\u88C5\u4E0D\u4E0A\u7684\u539F\u56E0\uFF1A{reason}";
1682
1703
  readonly "panels.market.moduleRestartHint": "\u91CD\u542F\u540E\u751F\u6548";
1704
+ readonly "panels.market.pendingRestart": "\u91CD\u542F\u540E\u751F\u6548";
1683
1705
  readonly "panels.market.workbenchName": "\u5DE5\u4F5C\u53F0";
1684
1706
  readonly "panels.market.workbenchLocal": "\u8FD9\u4EFD\u662F\u672C\u4ED3\u6B63\u5728\u5F00\u53D1\u7684\u90A3\u4E00\u4EFD\uFF0C\u4E0D\u4ECE\u6E90\u4E0A\u53D6\u3002";
1685
1707
  readonly "panels.market.pluginKeptInUse": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A{names} \u8FD8\u8981\u7528\u5B83\u3002";
@@ -1789,6 +1811,12 @@ export declare const kit: {
1789
1811
  readonly "panels.market.add.approveHint": "\u8FD9\u51E0\u4E2A\u5305\u8981\u8DD1\u5B89\u88C5\u811A\u672C\uFF1A{packages}";
1790
1812
  readonly "panels.market.add.doneApplied": "\u88C5\u597D\u4E86\uFF0C\u5DF2\u7ECF\u751F\u6548\u3002";
1791
1813
  readonly "panels.market.add.doneRestart": "\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
1814
+ readonly "panels.market.add.restartWhy": "\u4E3A\u4EC0\u4E48\u8FD9\u4E00\u7248\u8981\u91CD\u542F\uFF1A{reason}";
1815
+ readonly "panels.market.add.restartWhy.no-hmr": "\u8FD9\u4E2A profile \u53EA\u5728\u542F\u52A8\u65F6\u5E94\u7528\u6539\u52A8\uFF08\u6CA1\u5F00\u70ED\u6362\uFF09";
1816
+ readonly "panels.market.add.restartWhy.package-moved": "\u67D0\u4E2A\u5DF2\u7ECF\u88C5\u7740\u7684\u5305\u6362\u5230\u4E86\u65B0\u7684\u76EE\u5F55\uFF0C\u6216\u8005\u8FD9\u4E00\u4E0B\u6362\u6389\u4E86 dsh \u81EA\u5DF1\u63D0\u4F9B\u7684\u90A3\u4EFD";
1817
+ readonly "panels.market.add.restartWhy.host-module": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86 dsh \u81EA\u5DF1\u52A0\u8F7D\u7684\u6A21\u5757";
1818
+ readonly "panels.market.add.restartWhy.unmanaged-plugin": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86\u63D2\u4EF6\u6E05\u5355\u4E4B\u5916\u6B63\u5728\u8DD1\u7684\u63D2\u4EF6";
1819
+ readonly "panels.market.add.restartWhy.module-comparison": "dsh \u6CA1\u80FD\u628A\u5DF2\u52A0\u8F7D\u7684\u63D2\u4EF6\u4E0E\u76D8\u4E0A\u7684\u6587\u4EF6\u5BF9\u4E0A";
1792
1820
  readonly "panels.market.add.cancelled": "\u5DF2\u53D6\u6D88\u3002";
1793
1821
  readonly "panels.market.add.failed": "\u6CA1\u6210\u529F\uFF1A{reason}";
1794
1822
  readonly "panels.market.add.removed": "\u5DF2\u7ECF\u79FB\u9664\u4E86\u3002";
@@ -2239,6 +2267,7 @@ export declare const kit: {
2239
2267
  readonly "panels.market.moduleRefused": "\u6A21\u5757\u7248\u672C\u4E0E\u5DE5\u4F5C\u53F0\u4E0D\u5339\u914D\uFF0C\u6682\u65F6\u65E0\u6CD5\u4F7F\u7528";
2240
2268
  readonly "panels.market.moduleRefusedDetail": "\u88C5\u4E0D\u4E0A\u7684\u539F\u56E0\uFF1A{reason}";
2241
2269
  readonly "panels.market.moduleRestartHint": "\u91CD\u542F\u540E\u751F\u6548";
2270
+ readonly "panels.market.pendingRestart": "\u91CD\u542F\u540E\u751F\u6548";
2242
2271
  readonly "panels.market.workbenchName": "\u5DE5\u4F5C\u53F0";
2243
2272
  readonly "panels.market.workbenchLocal": "\u8FD9\u4EFD\u662F\u672C\u4ED3\u6B63\u5728\u5F00\u53D1\u7684\u90A3\u4E00\u4EFD\uFF0C\u4E0D\u4ECE\u6E90\u4E0A\u53D6\u3002";
2244
2273
  readonly "panels.market.pluginKeptInUse": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A{names} \u8FD8\u8981\u7528\u5B83\u3002";
@@ -2348,6 +2377,12 @@ export declare const kit: {
2348
2377
  readonly "panels.market.add.approveHint": "\u8FD9\u51E0\u4E2A\u5305\u8981\u8DD1\u5B89\u88C5\u811A\u672C\uFF1A{packages}";
2349
2378
  readonly "panels.market.add.doneApplied": "\u88C5\u597D\u4E86\uFF0C\u5DF2\u7ECF\u751F\u6548\u3002";
2350
2379
  readonly "panels.market.add.doneRestart": "\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
2380
+ readonly "panels.market.add.restartWhy": "\u4E3A\u4EC0\u4E48\u8FD9\u4E00\u7248\u8981\u91CD\u542F\uFF1A{reason}";
2381
+ readonly "panels.market.add.restartWhy.no-hmr": "\u8FD9\u4E2A profile \u53EA\u5728\u542F\u52A8\u65F6\u5E94\u7528\u6539\u52A8\uFF08\u6CA1\u5F00\u70ED\u6362\uFF09";
2382
+ readonly "panels.market.add.restartWhy.package-moved": "\u67D0\u4E2A\u5DF2\u7ECF\u88C5\u7740\u7684\u5305\u6362\u5230\u4E86\u65B0\u7684\u76EE\u5F55\uFF0C\u6216\u8005\u8FD9\u4E00\u4E0B\u6362\u6389\u4E86 dsh \u81EA\u5DF1\u63D0\u4F9B\u7684\u90A3\u4EFD";
2383
+ readonly "panels.market.add.restartWhy.host-module": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86 dsh \u81EA\u5DF1\u52A0\u8F7D\u7684\u6A21\u5757";
2384
+ readonly "panels.market.add.restartWhy.unmanaged-plugin": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86\u63D2\u4EF6\u6E05\u5355\u4E4B\u5916\u6B63\u5728\u8DD1\u7684\u63D2\u4EF6";
2385
+ readonly "panels.market.add.restartWhy.module-comparison": "dsh \u6CA1\u80FD\u628A\u5DF2\u52A0\u8F7D\u7684\u63D2\u4EF6\u4E0E\u76D8\u4E0A\u7684\u6587\u4EF6\u5BF9\u4E0A";
2351
2386
  readonly "panels.market.add.cancelled": "\u5DF2\u53D6\u6D88\u3002";
2352
2387
  readonly "panels.market.add.failed": "\u6CA1\u6210\u529F\uFF1A{reason}";
2353
2388
  readonly "panels.market.add.removed": "\u5DF2\u7ECF\u79FB\u9664\u4E86\u3002";
@@ -2500,7 +2535,7 @@ export declare const kit: {
2500
2535
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
2501
2536
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
2502
2537
  };
2503
- en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed", string>;
2538
+ en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed", string>;
2504
2539
  };
2505
2540
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
2506
2541
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -2636,6 +2671,7 @@ export declare const kit: {
2636
2671
  readonly "panels.market.moduleRefused": "\u6A21\u5757\u7248\u672C\u4E0E\u5DE5\u4F5C\u53F0\u4E0D\u5339\u914D\uFF0C\u6682\u65F6\u65E0\u6CD5\u4F7F\u7528";
2637
2672
  readonly "panels.market.moduleRefusedDetail": "\u88C5\u4E0D\u4E0A\u7684\u539F\u56E0\uFF1A{reason}";
2638
2673
  readonly "panels.market.moduleRestartHint": "\u91CD\u542F\u540E\u751F\u6548";
2674
+ readonly "panels.market.pendingRestart": "\u91CD\u542F\u540E\u751F\u6548";
2639
2675
  readonly "panels.market.workbenchName": "\u5DE5\u4F5C\u53F0";
2640
2676
  readonly "panels.market.workbenchLocal": "\u8FD9\u4EFD\u662F\u672C\u4ED3\u6B63\u5728\u5F00\u53D1\u7684\u90A3\u4E00\u4EFD\uFF0C\u4E0D\u4ECE\u6E90\u4E0A\u53D6\u3002";
2641
2677
  readonly "panels.market.pluginKeptInUse": "\u6587\u4EF6\u5148\u7559\u7740\uFF1A{names} \u8FD8\u8981\u7528\u5B83\u3002";
@@ -2745,6 +2781,12 @@ export declare const kit: {
2745
2781
  readonly "panels.market.add.approveHint": "\u8FD9\u51E0\u4E2A\u5305\u8981\u8DD1\u5B89\u88C5\u811A\u672C\uFF1A{packages}";
2746
2782
  readonly "panels.market.add.doneApplied": "\u88C5\u597D\u4E86\uFF0C\u5DF2\u7ECF\u751F\u6548\u3002";
2747
2783
  readonly "panels.market.add.doneRestart": "\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
2784
+ readonly "panels.market.add.restartWhy": "\u4E3A\u4EC0\u4E48\u8FD9\u4E00\u7248\u8981\u91CD\u542F\uFF1A{reason}";
2785
+ readonly "panels.market.add.restartWhy.no-hmr": "\u8FD9\u4E2A profile \u53EA\u5728\u542F\u52A8\u65F6\u5E94\u7528\u6539\u52A8\uFF08\u6CA1\u5F00\u70ED\u6362\uFF09";
2786
+ readonly "panels.market.add.restartWhy.package-moved": "\u67D0\u4E2A\u5DF2\u7ECF\u88C5\u7740\u7684\u5305\u6362\u5230\u4E86\u65B0\u7684\u76EE\u5F55\uFF0C\u6216\u8005\u8FD9\u4E00\u4E0B\u6362\u6389\u4E86 dsh \u81EA\u5DF1\u63D0\u4F9B\u7684\u90A3\u4EFD";
2787
+ readonly "panels.market.add.restartWhy.host-module": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86 dsh \u81EA\u5DF1\u52A0\u8F7D\u7684\u6A21\u5757";
2788
+ readonly "panels.market.add.restartWhy.unmanaged-plugin": "\u8FD9\u4E00\u4E0B\u52A8\u5230\u4E86\u63D2\u4EF6\u6E05\u5355\u4E4B\u5916\u6B63\u5728\u8DD1\u7684\u63D2\u4EF6";
2789
+ readonly "panels.market.add.restartWhy.module-comparison": "dsh \u6CA1\u80FD\u628A\u5DF2\u52A0\u8F7D\u7684\u63D2\u4EF6\u4E0E\u76D8\u4E0A\u7684\u6587\u4EF6\u5BF9\u4E0A";
2748
2790
  readonly "panels.market.add.cancelled": "\u5DF2\u53D6\u6D88\u3002";
2749
2791
  readonly "panels.market.add.failed": "\u6CA1\u6210\u529F\uFF1A{reason}";
2750
2792
  readonly "panels.market.add.removed": "\u5DF2\u7ECF\u79FB\u9664\u4E86\u3002";
@@ -1,5 +1,5 @@
1
1
  import type { Translate } from '@dsh-workbench/shared';
2
- import type { BundleChange, BundleInspectProblem, BundleInspectionAccepted, BundleInspectionPlugin, BundleRegistries } from '../../../shared/api/bundle-install';
2
+ import type { BundleChange, BundleInspectProblem, BundleInspectionAccepted, BundleInspectionPlugin, BundleRegistries, RestartReason } from '../../../shared/api/bundle-install';
3
3
  export type AddModulePhase = 'idle' | 'inspecting' | 'preview' | 'installing' | 'result';
4
4
  export interface AddModulePreview {
5
5
  readonly kind: 'module' | 'plugin';
@@ -45,4 +45,6 @@ export declare function failureCode(change: BundleChange): string;
45
45
  export declare function failureReasonKey(code: string): string | undefined;
46
46
  export declare function failureReason(code: string, application: string, t: Translate): string;
47
47
  export declare function supplyKey(state: string): string | undefined;
48
+ export declare function restartWhyKey(reason: RestartReason | undefined): string | undefined;
49
+ export declare function restartWhy(change: BundleChange, t: Translate): string | undefined;
48
50
  export declare function verdictKey(change: BundleChange): string;
@@ -1,5 +1,5 @@
1
1
  export type MarketRowAction = 'install' | 'update' | 'update-bundle' | 'remove-bundle' | 'uninstall' | 'update-dependency' | 'update-plugin' | 'uninstall-plugin' | 'update-workbench';
2
- export type MarketState = 'checking' | 'installed' | 'inactive' | 'unusable' | 'broken' | 'outdated' | 'missing' | 'unchecked' | 'unknown';
2
+ export type MarketState = 'checking' | 'installed' | 'inactive' | 'unusable' | 'broken' | 'outdated' | 'pending-restart' | 'missing' | 'unchecked' | 'unknown';
3
3
  export interface MarketNote {
4
4
  readonly key: 'panels.market.needEnv' | 'panels.market.noSource' | 'panels.market.badSource' | 'panels.market.needCommands' | 'panels.market.moduleRefused' | 'panels.market.moduleRestartHint' | 'panels.market.pluginAlsoKnownAs' | 'panels.market.pluginBroken' | 'panels.market.workbenchLocal';
5
5
  readonly params: Readonly<Record<string, string>>;
@@ -11,6 +11,7 @@ export interface Pending {
11
11
  readonly id: string;
12
12
  readonly action: MarketRowAction;
13
13
  readonly titleKey?: string | undefined;
14
+ readonly label?: string | undefined;
14
15
  readonly pkg?: string | undefined;
15
16
  readonly version?: string | undefined;
16
17
  readonly row?: MarketRow | undefined;
@@ -0,0 +1,2 @@
1
+ import type { BundleChange } from '../../../shared/api/bundle-install';
2
+ export declare function restartLogLine(change: BundleChange | null | undefined): string | undefined;
@@ -42,6 +42,8 @@ export interface BundleInspectionPayload {
42
42
  readonly inspection: BundleInspection;
43
43
  }
44
44
  export type BundleApplication = 'applied' | 'restart-required' | 'overridden' | 'failed' | 'cancelled';
45
+ export declare const RESTART_REASONS: readonly ["no-hmr", "package-moved", "host-module", "unmanaged-plugin", "module-comparison"];
46
+ export type RestartReason = (typeof RESTART_REASONS)[number];
45
47
  export type BundleChangeStage = 'install' | 'enable' | 'remove';
46
48
  export type BundleFailureKind = 'pnpm-missing' | 'timeout' | 'not-found' | 'no-matching-version' | 'network' | 'disk-full' | 'permission' | 'build-blocked' | 'integrity' | 'unknown';
47
49
  export interface BundlePackageResult {
@@ -61,6 +63,7 @@ export interface BundleChange {
61
63
  readonly errorDetail?: string;
62
64
  readonly packageResult?: BundlePackageResult;
63
65
  readonly pendingBuilds?: readonly string[];
66
+ readonly restartReason?: RestartReason;
64
67
  readonly failedAt?: 'registry' | 'spec-host';
65
68
  }
66
69
  export interface BundleInstallRequest {
package/docs/HANDOFF.md CHANGED
@@ -77,7 +77,9 @@ npx @dsh-workbench/core
77
77
  Settings → 插件里把 `@dsh-workbench/core` 关掉后,工作台会**退化成原版 dsh web**:
78
78
  左栏回到出厂样式、右侧数据面板消失。这是**设计内的降级**(关掉 = 它那份 bundle patch
79
79
  整份不再应用,连里面的"禁用出厂左栏"也一并失效),**会话 / 面板配置 / 工作区数据都不丢**。
80
- 恢复:插件页把开关拨回来(或按 `Meta+,` 打开设置)。别把它当成故障去重建 profile。
80
+ 恢复:插件页把开关拨回来(或按 `Meta+,` 打开设置);**进程已经退了的**,启动器读到
81
+ "bundle 没被选中"会直接拒绝启动并打印修复命令 —— 跑 `./bin/dsh-workbench setup` 补回来。
82
+ 别把它当成故障去重建 profile。
81
83
 
82
84
  顺带一条:即使关掉工作台,profile 里剩下那层差异(会话/存储/附件隔离)**仍然生效**
83
85
  —— 那是无害且想要的(数据继续分开)。另外启动器每次都会叠一层 `sandbox-policy`,把执行缝的
@@ -91,7 +93,12 @@ Settings → 插件里把 `@dsh-workbench/core` 关掉后,工作台会**退化
91
93
  2. 继承 web 的 **bundle 清单**(装没装东西 —— 安装范畴,走 `dsh plugin` 通路);
92
94
  3. 追加**数据隔离层**(会话 / 存储 / 附件各走 `~/.dsh/workbench/**`);
93
95
  4. `dsh plugin --profile workbench add @dsh-workbench/core` —— 走 **dsh 自己的**
94
- 安装通路(兼容性预检、profile 写锁、装完自动把 bundle 登记进 profile 清单)。
96
+ 安装通路(兼容性预检、profile 写锁、装完自动把 bundle 登记进 profile 清单);
97
+ 5. `./scripts/seed-profile.sh ensure-selected` —— **确保选中**:读 `dsh.profile.bundles`,
98
+ 缺 `@dsh-workbench/core` 就补进去(等价于 dsh 的 `selectBundle(name, true)`,已经在里面
99
+ 就一个字节不写)。为什么单列这一步:`dsh plugin add` 装完的登记**跳过已存在的依赖**,
100
+ 所以重跑 setup(包已在清单里)时它不会补 bundle —— 那一档是静默的(起得来、侧边栏
101
+ 没入口),现在启动器拿"选中"当硬门禁,这一步就是它给的修复命令。
95
102
 
96
103
  **设置不在这一步继承**(这里以前快照 web 的 patch、并继承被它点名的依赖):新机器上
97
104
  `setup` 完的工作台**没有模型供应商**,第一次打开去 设置 → 「配置同步」拉一次即可 ——
@@ -63,7 +63,7 @@
63
63
  | 用 web 那边已经配好的行 | `:3081` → `Meta+,` → 「配置同步」→ 选来源(默认 `web`)→ 勾行 → 同步(`dsh-hmr` 会重组,**不用重启**)。只搬你在那个 profile 里**显式配过**的行;行点名的包没装时页面会说出来(ADR-0044) |
64
64
  | 改 web 设置 | 在 `:3080` 改,落在 `profiles/web/cordis.patch.yml`。工作台**不会**再自动跟着变 —— 要就跟上面那条同步一次;不想跟就不动 |
65
65
  | 重建 profile | `mv ~/.dsh/profiles/workbench ~/.dsh/profiles/workbench.bak` 后重跑 seed |
66
- | **别在设置里关掉工作台** | Settings → 插件里 `@dsh-workbench/core` 那个开关**不要关**。关掉=把它从 profile 的 `bundles` 里移除 → 我们那份 bundle patch(含"禁用出厂左栏")**整份不再应用** → 页面退化成**原版 dsh web**(左栏回来、右侧面板消失),**数据一个都不丢**。恢复:插件页把开关打开(左栏的「插件」入口也在;进不去设置就按 `Meta+,`)。实测过这条降级路径,不是推断 |
66
+ | **别在设置里关掉工作台** | Settings → 插件里 `@dsh-workbench/core` 那个开关**不要关**。关掉=把它从 profile 的 `bundles` 里移除 → 我们那份 bundle patch(含"禁用出厂左栏")**整份不再应用** → 页面退化成**原版 dsh web**(左栏回来、右侧面板消失),**数据一个都不丢**。恢复:进程还在时把开关打开(左栏的「插件」入口也在;进不去设置就按 `Meta+,`);已经重启过的,启动器读到"没选中"会**直接拒绝启动**并给一条修复命令 —— 跑 `./bin/dsh-workbench setup`(幂等,把这一项补回 `dsh.profile.bundles`)即可。实测过这条降级路径,不是推断 |
67
67
 
68
68
  ## 开发循环(改完不用重启)
69
69
 
@@ -170,4 +170,5 @@ WORKBENCH_PORT=3091 pnpm run dev # 换端口(监听与实例同一个端口
170
170
  | 市场页点「卸载」报 `没成功:… ERR_PNPM_FETCH_404 GET https://registry.npmjs.org/@你的私有 scope/…` 之类 | 这个 profile 里的私有包不在 pnpm 默认源上,而 dsh 的卸载**不带源**。工作台会自己补上 `<profile>/.npmrc` 的 `@scope:registry=` 再重试一次([ADR-0030](../../../docs/adr/0030-private-registries-live-in-the-profile-pnpm-config.md));**还失败**说明那个包没有 scope(一行 scope 行表达不了),这时才需要人/agent 上手:`dsh plugin --profile <p> remove '<包名>' --config.registry=<那个源>`(`pnpm remove` 不认 `--registry=`),或者给 profile 自己配一行默认 `registry=` |
171
171
  | 体检那屏「检测浏览器通道 · 没连上」,可面板照样能用 | 本机全局 opencli 与隔离运行时版本不一致 ⇒ daemon 被顶成对方那版(`Stale daemon detected: daemon vX != CLI vY`)。下一条浏览器命令会自动把它重启回来,体检也会复检后改回「已连接」([ADR-0024](../../../docs/adr/0024-warm-the-sites-before-the-panel.md) §3.2.1)。**要彻底不抖**:让两边同版本 —— 把 `OPENCLI_PIN`(`src/shared/config/constants.ts`)对齐到 `opencli --version`,再 `npm i --prefix ~/.dsh/workbench/opencli/toolchain @jackwener/opencli@<那个版本> --cache ~/.dsh/workbench/opencli/npm-cache` |
172
172
  | Settings 页报 `overridden by a home patch` | 想在 Settings 里改的行被 `$DSH_HOME/cordis.patch.yml` 或 `--patch` 覆盖了 |
173
+ | `./bin/dsh-workbench` 直接拒绝启动,说 `@dsh-workbench/core 不在 dsh.profile.bundles 里` | 包装着但**没被选中**(在 Settings → 插件里关过;或装到一半:`dsh plugin add` 的 pnpm 那半成功、装完的登记跳过了已存在的依赖)。这一档以前是静默的 —— 起得来、只是侧边栏没有工作台。现在拒绝启动是为了不给你一台"什么都对但没入口"的实例:跑它打印的那条 `./bin/dsh-workbench setup`(幂等,`seed-profile.sh ensure-selected` 会把这一项补回去) |
173
174
  | **别人机器上** `npx @dsh-workbench/core setup` 报 `scripts/seed-profile.sh: Permission denied`(或体检永远说"隔离运行时没装好") | 发出去的包里**随包脚本丢了 x 位**:`pnpm publish` 只给 `package.json#bin` 点名那条文件 755,其余一律 644(`npm pack` 会保留,而 `git` 里的 x 位不进 tarball —— 所以**本机永远复现不出来**)。0.1.6 的已知缺陷:应急 `chmod +x <包目录>/{scripts/seed-profile.sh,bin/opencli-isolated}`,正规解是升到 0.1.7(启动器与 `selfcheck` 已改成不吃 x 位) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsh-workbench/core",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "个人工作台:Agent 工作台外壳(左栏 + 常驻对话 + 自研右侧数据面板)。",
5
5
  "type": "module",
6
6
  "icon": "./icon.svg",
@@ -87,7 +87,7 @@
87
87
  "access": "public"
88
88
  },
89
89
  "dependencies": {
90
- "@dsh-workbench/shared": "0.2.7"
90
+ "@dsh-workbench/shared": "0.2.9"
91
91
  },
92
92
  "scripts": {
93
93
  "build": "node scripts/build.mjs && node scripts/build-types.mjs",