@dsh-workbench/shared 1.1.9 → 1.1.11

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.
@@ -131,6 +131,8 @@ export interface ModuleVersion {
131
131
  readonly local?: boolean;
132
132
  readonly refused?: readonly string[];
133
133
  readonly market?: MarketInstalledModule;
134
+ readonly spec?: string;
135
+ readonly registry?: string;
134
136
  }
135
137
  export interface WorkbenchVersion {
136
138
  readonly pkg: string;
@@ -138,6 +140,8 @@ export interface WorkbenchVersion {
138
140
  readonly latest?: string;
139
141
  readonly running?: string;
140
142
  readonly local?: boolean;
143
+ readonly spec?: string;
144
+ readonly registry?: string;
141
145
  readonly followUp?: {
142
146
  readonly id: string;
143
147
  readonly kind: 'data-migration';
@@ -154,7 +154,7 @@ export interface DiscoverSourceRow extends MarketSourceConfig {
154
154
  }
155
155
  export type DiscoverState = 'no-source' | 'ready' | 'unreadable' | 'invalid';
156
156
  export interface DiscoverProblem {
157
- readonly kind: 'no-source' | 'http-status' | 'http-network' | 'http-url' | 'git-missing' | 'git-network' | 'git-auth' | 'git-file' | 'git-empty' | 'git-missing-index' | 'format' | 'timeout' | 'unknown';
157
+ readonly kind: 'no-source' | 'http-status' | 'http-network' | 'http-url' | 'git-missing' | 'git-network' | 'git-auth' | 'git-file' | 'git-empty' | 'git-missing-index' | 'sandbox' | 'format' | 'timeout' | 'unknown';
158
158
  readonly detail?: string;
159
159
  readonly branch?: string;
160
160
  }
package/dist/i18n/en.js CHANGED
@@ -196,6 +196,25 @@ export const en = {
196
196
  'panels.market.badSource': 'The install method is incomplete — install it yourself',
197
197
  'panels.market.empty': 'No modules available',
198
198
  'panels.market.sectionPlugins': 'Installed plugins',
199
+ 'panels.market.openDetail': 'View details for {name}',
200
+ 'panels.market.detailBack': 'Market',
201
+ 'panels.market.detailSourceTitle': 'Source',
202
+ 'panels.market.detailSource': 'Install source',
203
+ 'panels.market.detailRegistry': 'Registry',
204
+ 'panels.market.detailSpec': 'Declared as',
205
+ 'panels.market.detailUnit': 'Module ID',
206
+ 'panels.market.detailVersion': 'Current version',
207
+ 'panels.market.detailLatest': 'Available version',
208
+ 'panels.market.detailPluginName': 'Plugin name',
209
+ 'panels.market.detailInstalledAt': 'Installed at',
210
+ 'panels.market.detailMarket': 'Index source',
211
+ 'panels.market.detailRepository': 'Repository',
212
+ 'panels.market.detailCommit': 'Commit',
213
+ 'panels.market.detailDirectory': 'Directory',
214
+ 'panels.market.detailUpdateSource': 'Update source',
215
+ 'panels.market.detailUpdateVersion': 'Update version',
216
+ 'panels.market.detailLocalDirectory': 'local directory',
217
+ 'panels.market.detailUnknown': 'not recorded',
199
218
  'panels.market.moduleOutdated': 'update available',
200
219
  'panels.market.updateNeedsWorkbench': 'this version needs a newer workbench first',
201
220
  'panels.market.updateIncompatible': 'the new version does not match this workbench, so it cannot be installed now',
@@ -367,6 +386,7 @@ export const en = {
367
386
  'panels.discover.noSourceHint': 'Add a module market index (http address or git repository) to browse and install its modules here',
368
387
  'panels.discover.sourcesFailed': 'Could not read the index sources.',
369
388
  'panels.discover.unreadable': 'Could not read this index.',
389
+ 'panels.discover.sandbox': 'Blocked by the system: this profile does not allow the workbench to write its own cache directory.',
370
390
  'panels.discover.sourceAuth': 'This index source could not be read: this machine has no git credentials for it. Set up credentials (or switch the source to its SSH address), then refresh.',
371
391
  'panels.discover.invalid': 'This index is not in a valid format.',
372
392
  'panels.discover.emptyRepo': 'This repository has no commits yet.',
@@ -563,6 +583,7 @@ export const en = {
563
583
  'env.title': 'Preparing the workbench',
564
584
  'env.checking': 'Getting the runtime ready…',
565
585
  'env.installing': 'Installing background tools — the first run takes a moment…',
586
+ 'env.installingToolchain': 'Installing the workbench’s own npm / pnpm — the first run downloads them, so it can take a while.',
566
587
  'env.failed': 'One step away',
567
588
  'env.elapsed': 'Waiting {seconds}s',
568
589
  'env.stepFailed.install': 'install failed',
@@ -603,14 +624,14 @@ export const en = {
603
624
  'env.diy.continue': 'Enter the workbench anyway',
604
625
  'env.copyCommand': 'Copy command',
605
626
  'env.copied': 'Copied',
606
- 'env.step.toolchain': 'Runtime',
607
- 'env.step.adapter': 'Runtime',
608
- 'env.step.runtime': 'Background tools',
609
- 'env.step.bridge': 'Browser connection',
610
- 'env.step.diy': 'DIY mode',
611
- 'env.step.warm': 'Site sign-in',
627
+ 'env.step.toolchain': 'Check the environment',
628
+ 'env.step.adapter': 'Check the runtime',
629
+ 'env.step.runtime': 'Install background tools',
630
+ 'env.step.bridge': 'Connect your browser',
631
+ 'env.step.diy': 'Check DIY mode',
632
+ 'env.step.warm': 'Reach your sites',
612
633
  'env.warm.done': 'Ready ({n} sites)',
613
- 'env.warm.short': 'Could not sign in early this time \u2014 nothing breaks; the first read fills it in',
634
+ 'env.warm.short': 'Could not reach your sites early this time \u2014 nothing breaks; the first read fills it in',
614
635
  'env.unit.failed': 'This module cannot start',
615
636
  'env.unit.failedHint': 'It failed while starting up; other modules are unaffected.',
616
637
  'env.unit.unchecked': 'Cannot check: no command line',
@@ -206,6 +206,25 @@ export declare const dictionaries: {
206
206
  readonly 'panels.market.badSource': "安装方式没写全,只能自己动手";
207
207
  readonly 'panels.market.empty': "暂无可用模块";
208
208
  readonly 'panels.market.sectionPlugins': "已安装的插件";
209
+ readonly 'panels.market.openDetail': "查看 {name} 的详情";
210
+ readonly 'panels.market.detailBack': "市场";
211
+ readonly 'panels.market.detailSourceTitle': "来源信息";
212
+ readonly 'panels.market.detailSource': "安装源";
213
+ readonly 'panels.market.detailRegistry': "注册表";
214
+ readonly 'panels.market.detailSpec': "依赖写法";
215
+ readonly 'panels.market.detailUnit': "模块标识";
216
+ readonly 'panels.market.detailVersion': "当前版本";
217
+ readonly 'panels.market.detailLatest': "可用版本";
218
+ readonly 'panels.market.detailPluginName': "插件名";
219
+ readonly 'panels.market.detailInstalledAt': "安装时间";
220
+ readonly 'panels.market.detailMarket': "索引源";
221
+ readonly 'panels.market.detailRepository': "仓库";
222
+ readonly 'panels.market.detailCommit': "提交";
223
+ readonly 'panels.market.detailDirectory': "目录";
224
+ readonly 'panels.market.detailUpdateSource': "新版来源";
225
+ readonly 'panels.market.detailUpdateVersion': "新版版本";
226
+ readonly 'panels.market.detailLocalDirectory': "本机目录";
227
+ readonly 'panels.market.detailUnknown': "未记录";
209
228
  readonly 'panels.market.moduleOutdated': "有新版";
210
229
  readonly 'panels.market.updateNeedsWorkbench': "新版本要先把工作台升级才能用";
211
230
  readonly 'panels.market.updateIncompatible': "新版本和当前的工作台不匹配,暂时不能更新";
@@ -377,6 +396,7 @@ export declare const dictionaries: {
377
396
  readonly 'panels.discover.noSourceHint': "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块";
378
397
  readonly 'panels.discover.sourcesFailed': "无法读取索引源";
379
398
  readonly 'panels.discover.unreadable': "无法读取此索引";
399
+ readonly 'panels.discover.sandbox': "被系统拦住了:这个 profile 的可写根盖不住工作台的缓存目录";
380
400
  readonly 'panels.discover.sourceAuth': "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。";
381
401
  readonly 'panels.discover.invalid': "此索引的格式无效";
382
402
  readonly 'panels.discover.emptyRepo': "这个仓库还没有任何提交";
@@ -573,6 +593,7 @@ export declare const dictionaries: {
573
593
  readonly 'env.title': "准备工作台";
574
594
  readonly 'env.checking': "正在准备运行环境…";
575
595
  readonly 'env.installing': "正在安装后台工具,第一次会慢一点…";
596
+ readonly 'env.installingToolchain': "正在装工作台自己那份 npm / pnpm —— 第一次要下载,慢一点正常。";
576
597
  readonly 'env.failed': "还差一步就能用了";
577
598
  readonly 'env.elapsed': "已等待 {seconds} 秒";
578
599
  readonly 'env.stepFailed.install': "装不上";
@@ -613,12 +634,12 @@ export declare const dictionaries: {
613
634
  readonly 'env.diy.continue': "先进入工作台";
614
635
  readonly 'env.copyCommand': "复制命令";
615
636
  readonly 'env.copied': "已复制";
616
- readonly 'env.step.toolchain': "运行环境";
617
- readonly 'env.step.adapter': "运行时";
618
- readonly 'env.step.runtime': "后台工具";
619
- readonly 'env.step.bridge': "浏览器连接";
620
- readonly 'env.step.diy': "DIY 模式";
621
- readonly 'env.step.warm': "站点登录状态";
637
+ readonly 'env.step.toolchain': "检查运行环境";
638
+ readonly 'env.step.adapter': "检查运行时";
639
+ readonly 'env.step.runtime': "安装后台工具";
640
+ readonly 'env.step.bridge': "连接浏览器";
641
+ readonly 'env.step.diy': "检查 DIY 模式";
642
+ readonly 'env.step.warm': "连上站点";
622
643
  readonly 'env.warm.done': "已就绪({n} 个站点)";
623
644
  readonly 'env.warm.short': "这次没提前连上 —— 不影响用,第一次取数会自己补";
624
645
  readonly 'env.unit.failed': "这个模块起不来";
@@ -802,7 +823,7 @@ export declare const dictionaries: {
802
823
  readonly 'configSync.emptyProviders': "工作台还没有任何模型供应商 —— 去「配置同步」从某个 profile 把模型供应商那几行同步过来,或自己去「模型」里配。";
803
824
  readonly 'configSync.failed': "同步没成功,再试一次。";
804
825
  };
805
- 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.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "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.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "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.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "runtime.plugin" | "runtime.pluginOf" | "runtime.pluginThing" | "runtime.pluginArea" | "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.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "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.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "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.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.updateStuck.title" | "panels.market.updateStuck.factNoChange" | "panels.market.updateStuck.copiedHint" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "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.noMarketSource" | "panels.market.failed" | "panels.market.failure.permission" | "panels.market.failure.diskFull" | "panels.market.failure.sandbox" | "panels.market.failure.unknown" | "panels.market.failure.factOwner" | "panels.market.failure.factMode" | "panels.market.failure.factSpace" | "panels.market.failure.factStuck" | "panels.market.failure.nowhere" | "panels.market.failure.copyFix" | "panels.market.failure.copied" | "panels.market.failure.copiedHint" | "panels.market.failure.askAgent" | "panels.market.failure.askAgentText" | "panels.market.failure.askAgentHint" | "panels.market.failure.recheck" | "panels.market.failure.showOutput" | "panels.market.failure.hideOutput" | "panels.market.failure.term.commandLine" | "panels.market.failure.term.signal" | "panels.market.failure.term.exitCode" | "panels.market.failure.term.noExitCode" | "panels.market.failure.term.running" | "panels.market.failure.term.failed" | "panels.market.failure.term.done" | "panels.market.failure.term.copy" | "panels.market.failure.term.copied" | "panels.market.failure.term.noOutput" | "panels.market.failure.term.collapse" | "panels.market.failure.term.expandAria" | "panels.market.failure.term.expand" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.updateNeedsWorkbench" | "panels.market.updateIncompatible" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.pendingFollowUp" | "panels.market.migrationHint" | "panels.market.migrateAction" | "panels.market.migrating" | "panels.market.migrateConfirmTitle" | "panels.market.migrateConfirmDetail" | "panels.market.migrateConfirmAck" | "panels.market.migrateConfirmYes" | "panels.market.migrateDone" | "panels.market.dismissFollowUp" | "panels.market.dismissing" | "panels.market.dismissFollowUpTitle" | "panels.market.dismissFollowUpDetail" | "panels.market.dismissFollowUpAck" | "panels.market.dismissFollowUpYes" | "panels.market.dismissed" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.checkUpdates" | "panels.market.checkAll" | "panels.market.checkingNow" | "panels.market.checkFailed" | "panels.market.checkedAt" | "panels.market.latestPartial" | "panels.market.latestNoRegistry" | "panels.market.latestProbeFailed" | "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.failureStopProfile" | "panels.market.add.failureCancelled" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.failureCredentials" | "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.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.slowHint" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeTitle" | "panels.discover.removeBody" | "panels.discover.sourceActions" | "panels.discover.sourceStateWritable" | "panels.discover.sourceStateReadOnly" | "panels.discover.sourceEnable" | "panels.discover.sourceDisable" | "panels.discover.sourceWorking" | "panels.discover.sourceEnabled" | "panels.discover.sourceReadOnly" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.clearSearch" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.sourceAuth" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installingNamed" | "panels.discover.cancelInstall" | "panels.discover.cancelling" | "panels.discover.installCancelled" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.transportTitle" | "panels.discover.transportSsh" | "panels.discover.transportHttps" | "panels.discover.transportOk" | "panels.discover.transportAuth" | "panels.discover.transportUnreachable" | "panels.discover.transportUnknown" | "panels.discover.transportChecking" | "panels.discover.transportTest" | "panels.discover.transportPlaceholder" | "panels.discover.transportNeedsAuth" | "panels.discover.transportChange" | "panels.discover.transportChangeHide" | "panels.discover.transportNone" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "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.update" | "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.toolchain.ok" | "env.toolchain.warn" | "env.runtime.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "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.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.adapter" | "env.step.runtime" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "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" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.plugin.name" | "approval.plugin.command" | "approval.plugin.note" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.labels" | "approval.publish.labelsMissing" | "approval.publish.owner" | "approval.publish.ownerUnowned" | "approval.publish.ownerTaken" | "approval.publish.unit" | "approval.publish.unitTaken" | "approval.publish.path" | "approval.publish.pathTaken" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogPending" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "approval.market.source" | "approval.market.url" | "approval.market.action" | "approval.market.policy" | "approval.market.enable" | "approval.market.disable" | "approval.market.writable" | "approval.market.readOnly" | "approval.market.reading" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
826
+ 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.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "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.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "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.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "runtime.plugin" | "runtime.pluginOf" | "runtime.pluginThing" | "runtime.pluginArea" | "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.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "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.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "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.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.updateStuck.title" | "panels.market.updateStuck.factNoChange" | "panels.market.updateStuck.copiedHint" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "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.noMarketSource" | "panels.market.failed" | "panels.market.failure.permission" | "panels.market.failure.diskFull" | "panels.market.failure.sandbox" | "panels.market.failure.unknown" | "panels.market.failure.factOwner" | "panels.market.failure.factMode" | "panels.market.failure.factSpace" | "panels.market.failure.factStuck" | "panels.market.failure.nowhere" | "panels.market.failure.copyFix" | "panels.market.failure.copied" | "panels.market.failure.copiedHint" | "panels.market.failure.askAgent" | "panels.market.failure.askAgentText" | "panels.market.failure.askAgentHint" | "panels.market.failure.recheck" | "panels.market.failure.showOutput" | "panels.market.failure.hideOutput" | "panels.market.failure.term.commandLine" | "panels.market.failure.term.signal" | "panels.market.failure.term.exitCode" | "panels.market.failure.term.noExitCode" | "panels.market.failure.term.running" | "panels.market.failure.term.failed" | "panels.market.failure.term.done" | "panels.market.failure.term.copy" | "panels.market.failure.term.copied" | "panels.market.failure.term.noOutput" | "panels.market.failure.term.collapse" | "panels.market.failure.term.expandAria" | "panels.market.failure.term.expand" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.openDetail" | "panels.market.detailBack" | "panels.market.detailSourceTitle" | "panels.market.detailSource" | "panels.market.detailRegistry" | "panels.market.detailSpec" | "panels.market.detailUnit" | "panels.market.detailVersion" | "panels.market.detailLatest" | "panels.market.detailPluginName" | "panels.market.detailInstalledAt" | "panels.market.detailMarket" | "panels.market.detailRepository" | "panels.market.detailCommit" | "panels.market.detailDirectory" | "panels.market.detailUpdateSource" | "panels.market.detailUpdateVersion" | "panels.market.detailLocalDirectory" | "panels.market.detailUnknown" | "panels.market.moduleOutdated" | "panels.market.updateNeedsWorkbench" | "panels.market.updateIncompatible" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.pendingFollowUp" | "panels.market.migrationHint" | "panels.market.migrateAction" | "panels.market.migrating" | "panels.market.migrateConfirmTitle" | "panels.market.migrateConfirmDetail" | "panels.market.migrateConfirmAck" | "panels.market.migrateConfirmYes" | "panels.market.migrateDone" | "panels.market.dismissFollowUp" | "panels.market.dismissing" | "panels.market.dismissFollowUpTitle" | "panels.market.dismissFollowUpDetail" | "panels.market.dismissFollowUpAck" | "panels.market.dismissFollowUpYes" | "panels.market.dismissed" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.checkUpdates" | "panels.market.checkAll" | "panels.market.checkingNow" | "panels.market.checkFailed" | "panels.market.checkedAt" | "panels.market.latestPartial" | "panels.market.latestNoRegistry" | "panels.market.latestProbeFailed" | "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.failureStopProfile" | "panels.market.add.failureCancelled" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.failureCredentials" | "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.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.slowHint" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeTitle" | "panels.discover.removeBody" | "panels.discover.sourceActions" | "panels.discover.sourceStateWritable" | "panels.discover.sourceStateReadOnly" | "panels.discover.sourceEnable" | "panels.discover.sourceDisable" | "panels.discover.sourceWorking" | "panels.discover.sourceEnabled" | "panels.discover.sourceReadOnly" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.clearSearch" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.sandbox" | "panels.discover.sourceAuth" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installingNamed" | "panels.discover.cancelInstall" | "panels.discover.cancelling" | "panels.discover.installCancelled" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.transportTitle" | "panels.discover.transportSsh" | "panels.discover.transportHttps" | "panels.discover.transportOk" | "panels.discover.transportAuth" | "panels.discover.transportUnreachable" | "panels.discover.transportUnknown" | "panels.discover.transportChecking" | "panels.discover.transportTest" | "panels.discover.transportPlaceholder" | "panels.discover.transportNeedsAuth" | "panels.discover.transportChange" | "panels.discover.transportChangeHide" | "panels.discover.transportNone" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "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.update" | "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.installingToolchain" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.toolchain.ok" | "env.toolchain.warn" | "env.runtime.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "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.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.adapter" | "env.step.runtime" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "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" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.plugin.name" | "approval.plugin.command" | "approval.plugin.note" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.labels" | "approval.publish.labelsMissing" | "approval.publish.owner" | "approval.publish.ownerUnowned" | "approval.publish.ownerTaken" | "approval.publish.unit" | "approval.publish.unitTaken" | "approval.publish.path" | "approval.publish.pathTaken" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogPending" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "approval.market.source" | "approval.market.url" | "approval.market.action" | "approval.market.policy" | "approval.market.enable" | "approval.market.disable" | "approval.market.writable" | "approval.market.readOnly" | "approval.market.reading" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
806
827
  };
807
828
  /** 中文词表的键类型(从 `zh.ts` 转出):`en` 与模块词表都得覆盖同一批键。 */
808
829
  export type { WorkbenchMessages };
package/dist/i18n/zh.d.ts CHANGED
@@ -204,6 +204,25 @@ export declare const zh: {
204
204
  readonly 'panels.market.badSource': "安装方式没写全,只能自己动手";
205
205
  readonly 'panels.market.empty': "暂无可用模块";
206
206
  readonly 'panels.market.sectionPlugins': "已安装的插件";
207
+ readonly 'panels.market.openDetail': "查看 {name} 的详情";
208
+ readonly 'panels.market.detailBack': "市场";
209
+ readonly 'panels.market.detailSourceTitle': "来源信息";
210
+ readonly 'panels.market.detailSource': "安装源";
211
+ readonly 'panels.market.detailRegistry': "注册表";
212
+ readonly 'panels.market.detailSpec': "依赖写法";
213
+ readonly 'panels.market.detailUnit': "模块标识";
214
+ readonly 'panels.market.detailVersion': "当前版本";
215
+ readonly 'panels.market.detailLatest': "可用版本";
216
+ readonly 'panels.market.detailPluginName': "插件名";
217
+ readonly 'panels.market.detailInstalledAt': "安装时间";
218
+ readonly 'panels.market.detailMarket': "索引源";
219
+ readonly 'panels.market.detailRepository': "仓库";
220
+ readonly 'panels.market.detailCommit': "提交";
221
+ readonly 'panels.market.detailDirectory': "目录";
222
+ readonly 'panels.market.detailUpdateSource': "新版来源";
223
+ readonly 'panels.market.detailUpdateVersion': "新版版本";
224
+ readonly 'panels.market.detailLocalDirectory': "本机目录";
225
+ readonly 'panels.market.detailUnknown': "未记录";
207
226
  readonly 'panels.market.moduleOutdated': "有新版";
208
227
  readonly 'panels.market.updateNeedsWorkbench': "新版本要先把工作台升级才能用";
209
228
  readonly 'panels.market.updateIncompatible': "新版本和当前的工作台不匹配,暂时不能更新";
@@ -375,6 +394,7 @@ export declare const zh: {
375
394
  readonly 'panels.discover.noSourceHint': "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块";
376
395
  readonly 'panels.discover.sourcesFailed': "无法读取索引源";
377
396
  readonly 'panels.discover.unreadable': "无法读取此索引";
397
+ readonly 'panels.discover.sandbox': "被系统拦住了:这个 profile 的可写根盖不住工作台的缓存目录";
378
398
  readonly 'panels.discover.sourceAuth': "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。";
379
399
  readonly 'panels.discover.invalid': "此索引的格式无效";
380
400
  readonly 'panels.discover.emptyRepo': "这个仓库还没有任何提交";
@@ -571,6 +591,7 @@ export declare const zh: {
571
591
  readonly 'env.title': "准备工作台";
572
592
  readonly 'env.checking': "正在准备运行环境…";
573
593
  readonly 'env.installing': "正在安装后台工具,第一次会慢一点…";
594
+ readonly 'env.installingToolchain': "正在装工作台自己那份 npm / pnpm —— 第一次要下载,慢一点正常。";
574
595
  readonly 'env.failed': "还差一步就能用了";
575
596
  readonly 'env.elapsed': "已等待 {seconds} 秒";
576
597
  readonly 'env.stepFailed.install': "装不上";
@@ -611,12 +632,12 @@ export declare const zh: {
611
632
  readonly 'env.diy.continue': "先进入工作台";
612
633
  readonly 'env.copyCommand': "复制命令";
613
634
  readonly 'env.copied': "已复制";
614
- readonly 'env.step.toolchain': "运行环境";
615
- readonly 'env.step.adapter': "运行时";
616
- readonly 'env.step.runtime': "后台工具";
617
- readonly 'env.step.bridge': "浏览器连接";
618
- readonly 'env.step.diy': "DIY 模式";
619
- readonly 'env.step.warm': "站点登录状态";
635
+ readonly 'env.step.toolchain': "检查运行环境";
636
+ readonly 'env.step.adapter': "检查运行时";
637
+ readonly 'env.step.runtime': "安装后台工具";
638
+ readonly 'env.step.bridge': "连接浏览器";
639
+ readonly 'env.step.diy': "检查 DIY 模式";
640
+ readonly 'env.step.warm': "连上站点";
620
641
  readonly 'env.warm.done': "已就绪({n} 个站点)";
621
642
  readonly 'env.warm.short': "这次没提前连上 —— 不影响用,第一次取数会自己补";
622
643
  readonly 'env.unit.failed': "这个模块起不来";
package/dist/i18n/zh.js CHANGED
@@ -196,6 +196,25 @@ export const zh = {
196
196
  'panels.market.badSource': '安装方式没写全,只能自己动手',
197
197
  'panels.market.empty': '暂无可用模块',
198
198
  'panels.market.sectionPlugins': '已安装的插件',
199
+ 'panels.market.openDetail': '查看 {name} 的详情',
200
+ 'panels.market.detailBack': '市场',
201
+ 'panels.market.detailSourceTitle': '来源信息',
202
+ 'panels.market.detailSource': '安装源',
203
+ 'panels.market.detailRegistry': '注册表',
204
+ 'panels.market.detailSpec': '依赖写法',
205
+ 'panels.market.detailUnit': '模块标识',
206
+ 'panels.market.detailVersion': '当前版本',
207
+ 'panels.market.detailLatest': '可用版本',
208
+ 'panels.market.detailPluginName': '插件名',
209
+ 'panels.market.detailInstalledAt': '安装时间',
210
+ 'panels.market.detailMarket': '索引源',
211
+ 'panels.market.detailRepository': '仓库',
212
+ 'panels.market.detailCommit': '提交',
213
+ 'panels.market.detailDirectory': '目录',
214
+ 'panels.market.detailUpdateSource': '新版来源',
215
+ 'panels.market.detailUpdateVersion': '新版版本',
216
+ 'panels.market.detailLocalDirectory': '本机目录',
217
+ 'panels.market.detailUnknown': '未记录',
199
218
  'panels.market.moduleOutdated': '有新版',
200
219
  'panels.market.updateNeedsWorkbench': '新版本要先把工作台升级才能用',
201
220
  'panels.market.updateIncompatible': '新版本和当前的工作台不匹配,暂时不能更新',
@@ -367,6 +386,7 @@ export const zh = {
367
386
  'panels.discover.noSourceHint': '添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块',
368
387
  'panels.discover.sourcesFailed': '无法读取索引源',
369
388
  'panels.discover.unreadable': '无法读取此索引',
389
+ 'panels.discover.sandbox': '被系统拦住了:这个 profile 的可写根盖不住工作台的缓存目录',
370
390
  'panels.discover.sourceAuth': '这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。',
371
391
  'panels.discover.invalid': '此索引的格式无效',
372
392
  'panels.discover.emptyRepo': '这个仓库还没有任何提交',
@@ -563,6 +583,7 @@ export const zh = {
563
583
  'env.title': '准备工作台',
564
584
  'env.checking': '正在准备运行环境…',
565
585
  'env.installing': '正在安装后台工具,第一次会慢一点…',
586
+ 'env.installingToolchain': '正在装工作台自己那份 npm / pnpm —— 第一次要下载,慢一点正常。',
566
587
  'env.failed': '还差一步就能用了',
567
588
  'env.elapsed': '已等待 {seconds} 秒',
568
589
  'env.stepFailed.install': '装不上',
@@ -603,12 +624,12 @@ export const zh = {
603
624
  'env.diy.continue': '先进入工作台',
604
625
  'env.copyCommand': '复制命令',
605
626
  'env.copied': '已复制',
606
- 'env.step.toolchain': '运行环境',
607
- 'env.step.adapter': '运行时',
608
- 'env.step.runtime': '后台工具',
609
- 'env.step.bridge': '浏览器连接',
610
- 'env.step.diy': 'DIY 模式',
611
- 'env.step.warm': '站点登录状态',
627
+ 'env.step.toolchain': '检查运行环境',
628
+ 'env.step.adapter': '检查运行时',
629
+ 'env.step.runtime': '安装后台工具',
630
+ 'env.step.bridge': '连接浏览器',
631
+ 'env.step.diy': '检查 DIY 模式',
632
+ 'env.step.warm': '连上站点',
612
633
  'env.warm.done': '已就绪({n} 个站点)',
613
634
  'env.warm.short': '这次没提前连上 —— 不影响用,第一次取数会自己补',
614
635
  'env.unit.failed': '这个模块起不来',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsh-workbench/shared",
3
- "version": "1.1.9",
3
+ "version": "1.1.11",
4
4
  "description": "工作台与模块共享的纯代码与契约类型:类型、纯逻辑、哑组件、平台解析。宿主侧的东西从 /host 进(不影响浏览器产物)。",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -33,7 +33,7 @@
33
33
  "react": "*"
34
34
  },
35
35
  "devDependencies": {
36
- "@arch-guard/core": "^0.11.1",
36
+ "@arch-guard/core": "^0.11.2",
37
37
  "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-rc.2",
38
38
  "@types/node": "^24.19.0",
39
39
  "@types/react": "^19.0.0",
@@ -198,6 +198,8 @@ export interface ModuleVersion {
198
198
  readonly local?: boolean;
199
199
  readonly refused?: readonly string[];
200
200
  readonly market?: MarketInstalledModule;
201
+ readonly spec?: string;
202
+ readonly registry?: string;
201
203
  }
202
204
 
203
205
  export interface WorkbenchVersion {
@@ -206,6 +208,8 @@ export interface WorkbenchVersion {
206
208
  readonly latest?: string;
207
209
  readonly running?: string;
208
210
  readonly local?: boolean;
211
+ readonly spec?: string;
212
+ readonly registry?: string;
209
213
  readonly followUp?: {
210
214
  readonly id: string;
211
215
  readonly kind: 'data-migration';
@@ -198,6 +198,7 @@ export interface DiscoverProblem {
198
198
  | 'git-file'
199
199
  | 'git-empty'
200
200
  | 'git-missing-index'
201
+ | 'sandbox'
201
202
  | 'format'
202
203
  | 'timeout'
203
204
  | 'unknown';
package/src/i18n/en.ts CHANGED
@@ -203,6 +203,25 @@ export const en: Record<keyof WorkbenchMessages, string> = {
203
203
  'panels.market.badSource': 'The install method is incomplete — install it yourself',
204
204
  'panels.market.empty': 'No modules available',
205
205
  'panels.market.sectionPlugins': 'Installed plugins',
206
+ 'panels.market.openDetail': 'View details for {name}',
207
+ 'panels.market.detailBack': 'Market',
208
+ 'panels.market.detailSourceTitle': 'Source',
209
+ 'panels.market.detailSource': 'Install source',
210
+ 'panels.market.detailRegistry': 'Registry',
211
+ 'panels.market.detailSpec': 'Declared as',
212
+ 'panels.market.detailUnit': 'Module ID',
213
+ 'panels.market.detailVersion': 'Current version',
214
+ 'panels.market.detailLatest': 'Available version',
215
+ 'panels.market.detailPluginName': 'Plugin name',
216
+ 'panels.market.detailInstalledAt': 'Installed at',
217
+ 'panels.market.detailMarket': 'Index source',
218
+ 'panels.market.detailRepository': 'Repository',
219
+ 'panels.market.detailCommit': 'Commit',
220
+ 'panels.market.detailDirectory': 'Directory',
221
+ 'panels.market.detailUpdateSource': 'Update source',
222
+ 'panels.market.detailUpdateVersion': 'Update version',
223
+ 'panels.market.detailLocalDirectory': 'local directory',
224
+ 'panels.market.detailUnknown': 'not recorded',
206
225
  'panels.market.moduleOutdated': 'update available',
207
226
  'panels.market.updateNeedsWorkbench': 'this version needs a newer workbench first',
208
227
  'panels.market.updateIncompatible': 'the new version does not match this workbench, so it cannot be installed now',
@@ -377,6 +396,7 @@ export const en: Record<keyof WorkbenchMessages, string> = {
377
396
  'panels.discover.noSourceHint': 'Add a module market index (http address or git repository) to browse and install its modules here',
378
397
  'panels.discover.sourcesFailed': 'Could not read the index sources.',
379
398
  'panels.discover.unreadable': 'Could not read this index.',
399
+ 'panels.discover.sandbox': 'Blocked by the system: this profile does not allow the workbench to write its own cache directory.',
380
400
  'panels.discover.sourceAuth': 'This index source could not be read: this machine has no git credentials for it. Set up credentials (or switch the source to its SSH address), then refresh.',
381
401
  'panels.discover.invalid': 'This index is not in a valid format.',
382
402
  'panels.discover.emptyRepo': 'This repository has no commits yet.',
@@ -574,6 +594,7 @@ export const en: Record<keyof WorkbenchMessages, string> = {
574
594
  'env.title': 'Preparing the workbench',
575
595
  'env.checking': 'Getting the runtime ready…',
576
596
  'env.installing': 'Installing background tools — the first run takes a moment…',
597
+ 'env.installingToolchain': 'Installing the workbench’s own npm / pnpm — the first run downloads them, so it can take a while.',
577
598
  'env.failed': 'One step away',
578
599
  'env.elapsed': 'Waiting {seconds}s',
579
600
  'env.stepFailed.install': 'install failed',
@@ -614,14 +635,14 @@ export const en: Record<keyof WorkbenchMessages, string> = {
614
635
  'env.diy.continue': 'Enter the workbench anyway',
615
636
  'env.copyCommand': 'Copy command',
616
637
  'env.copied': 'Copied',
617
- 'env.step.toolchain': 'Runtime',
618
- 'env.step.adapter': 'Runtime',
619
- 'env.step.runtime': 'Background tools',
620
- 'env.step.bridge': 'Browser connection',
621
- 'env.step.diy': 'DIY mode',
622
- 'env.step.warm': 'Site sign-in',
638
+ 'env.step.toolchain': 'Check the environment',
639
+ 'env.step.adapter': 'Check the runtime',
640
+ 'env.step.runtime': 'Install background tools',
641
+ 'env.step.bridge': 'Connect your browser',
642
+ 'env.step.diy': 'Check DIY mode',
643
+ 'env.step.warm': 'Reach your sites',
623
644
  'env.warm.done': 'Ready ({n} sites)',
624
- 'env.warm.short': 'Could not sign in early this time \u2014 nothing breaks; the first read fills it in',
645
+ 'env.warm.short': 'Could not reach your sites early this time \u2014 nothing breaks; the first read fills it in',
625
646
  'env.unit.failed': 'This module cannot start',
626
647
  'env.unit.failedHint': 'It failed while starting up; other modules are unaffected.',
627
648
  'env.unit.unchecked': 'Cannot check: no command line',
package/src/i18n/zh.ts CHANGED
@@ -200,6 +200,25 @@ export const zh = {
200
200
  'panels.market.badSource': '安装方式没写全,只能自己动手',
201
201
  'panels.market.empty': '暂无可用模块',
202
202
  'panels.market.sectionPlugins': '已安装的插件',
203
+ 'panels.market.openDetail': '查看 {name} 的详情',
204
+ 'panels.market.detailBack': '市场',
205
+ 'panels.market.detailSourceTitle': '来源信息',
206
+ 'panels.market.detailSource': '安装源',
207
+ 'panels.market.detailRegistry': '注册表',
208
+ 'panels.market.detailSpec': '依赖写法',
209
+ 'panels.market.detailUnit': '模块标识',
210
+ 'panels.market.detailVersion': '当前版本',
211
+ 'panels.market.detailLatest': '可用版本',
212
+ 'panels.market.detailPluginName': '插件名',
213
+ 'panels.market.detailInstalledAt': '安装时间',
214
+ 'panels.market.detailMarket': '索引源',
215
+ 'panels.market.detailRepository': '仓库',
216
+ 'panels.market.detailCommit': '提交',
217
+ 'panels.market.detailDirectory': '目录',
218
+ 'panels.market.detailUpdateSource': '新版来源',
219
+ 'panels.market.detailUpdateVersion': '新版版本',
220
+ 'panels.market.detailLocalDirectory': '本机目录',
221
+ 'panels.market.detailUnknown': '未记录',
203
222
  'panels.market.moduleOutdated': '有新版',
204
223
  'panels.market.updateNeedsWorkbench': '新版本要先把工作台升级才能用',
205
224
  'panels.market.updateIncompatible': '新版本和当前的工作台不匹配,暂时不能更新',
@@ -374,6 +393,7 @@ export const zh = {
374
393
  'panels.discover.noSourceHint': '添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块',
375
394
  'panels.discover.sourcesFailed': '无法读取索引源',
376
395
  'panels.discover.unreadable': '无法读取此索引',
396
+ 'panels.discover.sandbox': '被系统拦住了:这个 profile 的可写根盖不住工作台的缓存目录',
377
397
  'panels.discover.sourceAuth': '这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。',
378
398
  'panels.discover.invalid': '此索引的格式无效',
379
399
  'panels.discover.emptyRepo': '这个仓库还没有任何提交',
@@ -570,6 +590,7 @@ export const zh = {
570
590
  'env.title': '准备工作台',
571
591
  'env.checking': '正在准备运行环境…',
572
592
  'env.installing': '正在安装后台工具,第一次会慢一点…',
593
+ 'env.installingToolchain': '正在装工作台自己那份 npm / pnpm —— 第一次要下载,慢一点正常。',
573
594
  'env.failed': '还差一步就能用了',
574
595
  'env.elapsed': '已等待 {seconds} 秒',
575
596
  'env.stepFailed.install': '装不上',
@@ -610,12 +631,12 @@ export const zh = {
610
631
  'env.diy.continue': '先进入工作台',
611
632
  'env.copyCommand': '复制命令',
612
633
  'env.copied': '已复制',
613
- 'env.step.toolchain': '运行环境',
614
- 'env.step.adapter': '运行时',
615
- 'env.step.runtime': '后台工具',
616
- 'env.step.bridge': '浏览器连接',
617
- 'env.step.diy': 'DIY 模式',
618
- 'env.step.warm': '站点登录状态',
634
+ 'env.step.toolchain': '检查运行环境',
635
+ 'env.step.adapter': '检查运行时',
636
+ 'env.step.runtime': '安装后台工具',
637
+ 'env.step.bridge': '连接浏览器',
638
+ 'env.step.diy': '检查 DIY 模式',
639
+ 'env.step.warm': '连上站点',
619
640
  'env.warm.done': '已就绪({n} 个站点)',
620
641
  'env.warm.short': '这次没提前连上 —— 不影响用,第一次取数会自己补',
621
642
  'env.unit.failed': '这个模块起不来',