@dsh-workbench/core 0.1.9 → 0.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.
Files changed (42) hide show
  1. package/bin/dsh-workbench +23 -0
  2. package/client.js +609 -84
  3. package/cordis.patch.yml +11 -3
  4. package/dist/client/client.body.js +609 -84
  5. package/dist/client/index.js +610 -85
  6. package/dist/host/index.js +406 -276
  7. package/dist/types/app/client.d.ts +140 -6
  8. package/dist/types/app/layouts/rightbar/BoardEmpty.d.ts +2 -1
  9. package/dist/types/app/layouts/rightbar/Rightbar.d.ts +1 -0
  10. package/dist/types/app/layouts/rightbar/board-plan.d.ts +2 -0
  11. package/dist/types/app/layouts/sidebar/ProjectSwitcher.d.ts +2 -2
  12. package/dist/types/app/layouts/sidebar/Sidebar.d.ts +1 -1
  13. package/dist/types/app/layouts/sidebar/WorkspaceRenameDialog.d.ts +8 -0
  14. package/dist/types/app/layouts/sidebar/WorkspaceRowAction.d.ts +7 -0
  15. package/dist/types/app/layouts/sidebar/WorkspaceRowLabel.d.ts +8 -0
  16. package/dist/types/app/layouts/sidebar/WorkspaceSearchField.d.ts +9 -0
  17. package/dist/types/app/layouts/sidebar/__tests__/workspace-name.test.d.ts +1 -0
  18. package/dist/types/app/layouts/sidebar/workspace-items.d.ts +11 -0
  19. package/dist/types/app/layouts/sidebar/workspace-name.d.ts +16 -0
  20. package/dist/types/app/units/__tests__/registry.test.d.ts +1 -0
  21. package/dist/types/app/units/fixture-unit-mock.d.ts +3 -1
  22. package/dist/types/modules/panels/__tests__/approval.test.d.ts +1 -0
  23. package/dist/types/modules/panels/model/approval.d.ts +2 -0
  24. package/dist/types/shared/api/diy.d.ts +3 -0
  25. package/dist/types/shared/api/diy.test.d.ts +1 -0
  26. package/dist/types/shared/api/host/__tests__/approval-legacy.test.d.ts +1 -0
  27. package/dist/types/shared/api/host/approval-legacy.d.ts +2 -0
  28. package/dist/types/shared/api/host/diy.d.ts +3 -0
  29. package/dist/types/shared/api/host/diy.test.d.ts +1 -0
  30. package/dist/types/shared/api/host/mount-units.d.ts +13 -6
  31. package/dist/types/shared/hooks/mock-mode.d.ts +1 -0
  32. package/package.json +13 -5
  33. package/preset/diy.patch.yml +156 -0
  34. package/scripts/seed-profile.sh +116 -0
  35. package/skills/workbench-module-diy/BUILD.md +179 -0
  36. package/skills/workbench-module-diy/DESIGN.md +81 -0
  37. package/skills/workbench-module-diy/LINKAGE.md +113 -0
  38. package/skills/workbench-module-diy/PANEL.md +124 -0
  39. package/skills/workbench-module-diy/REVIEW.md +31 -0
  40. package/skills/workbench-module-diy/SKILL.md +54 -0
  41. package/skills/workbench-module-diy/STEPS.md +93 -0
  42. package/skills/workbench-module-diy/TOOLS.md +112 -0
@@ -1,4 +1,5 @@
1
1
  import type { DshClientContext } from '@dsh-workbench/shared';
2
+ import type { MessagesContribution } from '@dsh-workbench/shared';
2
3
  import { Tip } from '../shared/components/Tip';
3
4
  import * as apiModule from '@dsh-workbench/shared';
4
5
  import * as chipsModule from '../shared/api/context-chips';
@@ -23,6 +24,7 @@ export declare const kit: {
23
24
  }): capabilityGateModule.CapabilityGate;
24
25
  useCapabilityMap(refreshToken: number): capabilityGateModule.CapabilityMapView;
25
26
  mockModeOn(search: string): boolean;
27
+ crashModeOn(search: string): boolean;
26
28
  useLongTask<T extends {
27
29
  readonly id: string;
28
30
  readonly status: apiModule.LongTaskStatus;
@@ -97,6 +99,8 @@ export declare const kit: {
97
99
  ApprovalDetail(props: apiModule.ApprovalDetailProps): JSX.Element | null;
98
100
  ApprovalPlan({ rows, hint, warn, children }: apiModule.ApprovalPlanProps): JSX.Element;
99
101
  Card({ t, title, refreshing, onRefresh, meta, head, children }: apiModule.CardProps): JSX.Element;
102
+ errorReasonOf(error: unknown): string;
103
+ CardBoundary: typeof apiModule.CardBoundary;
100
104
  CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
101
105
  ChoiceGroup({ label, name, value, options, disabled, onChange }: apiModule.ChoiceGroupProps): JSX.Element;
102
106
  LongTaskRow(props: apiModule.LongTaskRowProps): JSX.Element;
@@ -179,6 +183,20 @@ export declare const kit: {
179
183
  readonly "project.none": "\u672A\u9009\u62E9\u9879\u76EE";
180
184
  readonly "project.empty": "\u8FD8\u6CA1\u6709\u9879\u76EE\u3002\u7528\u4E0B\u9762\u7684\u300C\u6DFB\u52A0\u9879\u76EE\u300D\u9009\u4E00\u4E2A\u76EE\u5F55\u3002";
181
185
  readonly "project.add": "\u6DFB\u52A0\u9879\u76EE\u2026";
186
+ readonly "project.search.label": "\u641C\u7D22\u5DE5\u4F5C\u533A";
187
+ readonly "project.search.placeholder": "\u641C\u7D22\u5DE5\u4F5C\u533A\uFF08\u76EE\u5F55\u540D / \u4E2D\u6587\u540D / \u8DEF\u5F84\uFF09";
188
+ readonly "project.search.empty": "\u6CA1\u6709\u5339\u914D\u300C{query}\u300D\u7684\u5DE5\u4F5C\u533A\u3002";
189
+ readonly "project.rename.row": "\u6539\u300C{name}\u300D\u7684\u4E2D\u6587\u540D";
190
+ readonly "project.rename.current": "\u6539\u5F53\u524D\u5DE5\u4F5C\u533A\u7684\u4E2D\u6587\u540D\u2026";
191
+ readonly "project.rename.title": "\u7ED9\u300C{name}\u300D\u914D\u4E00\u4E2A\u4E2D\u6587\u540D";
192
+ readonly "project.rename.description": "\u663E\u793A\u5728\u76EE\u5F55\u540D\u540E\u9762\u3002\u6539\u7684\u662F\u5DE5\u4F5C\u533A\u672C\u8EAB\u7684\u540D\u5B57\u3002";
193
+ readonly "project.rename.field": "\u4E2D\u6587\u540D";
194
+ readonly "project.rename.placeholder": "\u4F8B\u5982\uFF1A\u5DE5\u4F5C\u53F0\u5916\u58F3";
195
+ readonly "project.rename.hint": "\u7559\u7A7A = \u53EA\u663E\u793A\u76EE\u5F55\u540D";
196
+ readonly "project.rename.save": "\u4FDD\u5B58";
197
+ readonly "project.rename.saving": "\u4FDD\u5B58\u4E2D\u2026";
198
+ readonly "project.rename.cancel": "\u53D6\u6D88";
199
+ readonly "project.rename.failed": "\u6539\u540D\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
182
200
  readonly "session.new": "\u65B0\u4F1A\u8BDD";
183
201
  readonly "session.new.label": "\u5728\u5F53\u524D\u9879\u76EE\u65B0\u5EFA\u4F1A\u8BDD";
184
202
  readonly "session.empty": "\u8FD9\u4E2A\u9879\u76EE\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u3002";
@@ -202,11 +220,13 @@ export declare const kit: {
202
220
  readonly "panels.enabled": "\u8FD9\u4E2A\u9879\u76EE\u5DF2\u542F\u7528";
203
221
  readonly "panels.disabled": "\u8FD9\u4E2A\u9879\u76EE\u672A\u542F\u7528";
204
222
  readonly "panels.choose": "\u9009\u62E9\u6A21\u5757";
223
+ readonly "panels.buildModule": "\u9020\u4E00\u4E2A\u6A21\u5757";
205
224
  readonly "panels.failed": "\u6539\u914D\u7F6E\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
206
225
  readonly "panels.hintEffect": "\u505C\u7528 = agent \u62FF\u4E0D\u5230\u76F8\u5173\u6570\u636E";
207
226
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
208
227
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
209
228
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
229
+ readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
210
230
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
211
231
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
212
232
  readonly "panels.dep.unchecked": "\u26A0 \u68C0\u6D4B\u4E0D\u4E86";
@@ -400,6 +420,8 @@ export declare const kit: {
400
420
  readonly "blocker.exec.hint": "\u786E\u8BA4 opencli \u5DF2\u5B89\u88C5\u4E14\u5728 PATH \u91CC\uFF08which opencli\uFF09\u3002";
401
421
  readonly "blocker.unknown.title": "\u51FA\u4E86\u70B9\u95EE\u9898";
402
422
  readonly "panels.reading": "\u6B63\u5728\u8BFB\u53D6\u9762\u677F\u914D\u7F6E\u2026";
423
+ readonly "panels.cardBroken": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765\uFF1A{unit}\uFF08{reason}\uFF09";
424
+ readonly "panels.cardRetry": "\u91CD\u8BD5";
403
425
  readonly "panels.empty": "\u9762\u677F\u91CC\u8FD8\u6CA1\u6709\u6A21\u5757";
404
426
  readonly "panels.emptyHint": "\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u300C\u628A\u67D0\u4E2A\u6A21\u5757\u52A0\u5230\u9762\u677F\u300D\u3002";
405
427
  readonly "env.title": "\u51C6\u5907\u5DE5\u4F5C\u53F0";
@@ -438,6 +460,8 @@ export declare const kit: {
438
460
  readonly "env.step.warm": "\u9884\u70ED\u7AD9\u70B9\u767B\u5F55\u6001";
439
461
  readonly "env.warm.done": "\u5DF2\u9884\u70ED {n} \u4E2A\u7AD9\u70B9";
440
462
  readonly "env.warm.short": "\u8FD9\u6B21\u6CA1\u70ED\u4E0A \u2014\u2014 \u4E0D\u5F71\u54CD\u7528\uFF0C\u9762\u677F\u7B2C\u4E00\u6B21\u8BFB\u53D6\u4F1A\u81EA\u5DF1\u8865";
463
+ readonly "env.unit.failed": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765";
464
+ readonly "env.unit.failedHint": "\u5B83\u81EA\u5DF1\u88C5\u914D\u65F6\u62A5\u4E86\u9519\uFF0C\u522B\u7684\u6A21\u5757\u4E0D\u53D7\u5F71\u54CD\u3002";
441
465
  readonly "env.unit.missingPlugin": "\u8FD9\u4E2A\u6A21\u5757\u8FD8\u6CA1\u88C5\u597D";
442
466
  readonly "env.unit.missingCommandsHint": "\u66F4\u65B0\u4E4B\u540E\u5C31\u80FD\u7528\u4E86\u3002";
443
467
  readonly "env.unit.unchecked": "\u68C0\u6D4B\u4E0D\u4E86\uFF1A\u62FF\u4E0D\u5230\u6267\u884C\u901A\u9053";
@@ -460,9 +484,10 @@ export declare const kit: {
460
484
  readonly "panel.conversation": "\u5BF9\u8BDD";
461
485
  readonly "panels.label": "\u5168\u5C40\u9762\u677F";
462
486
  };
463
- en: Record<"time.now" | "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.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" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "panels.title" | "panels.reset" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.failed" | "panels.hintEffect" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "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.outdated" | "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.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.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.installedSection" | "panels.market.moduleOutdated" | "panels.market.moduleRestartHint" | "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.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.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.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.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" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
487
+ en: Record<"time.now" | "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.search.label" | "project.search.placeholder" | "project.search.empty" | "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.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "panels.title" | "panels.reset" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.hintEffect" | "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.outdated" | "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.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.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.installedSection" | "panels.market.moduleOutdated" | "panels.market.moduleRestartHint" | "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.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.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.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" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
464
488
  };
465
- mergeMessages(base: apiModule.Dictionaries, contributions: readonly apiModule.MessagesContribution[]): apiModule.Dictionaries;
489
+ mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
490
+ mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
466
491
  zh: {
467
492
  readonly "brand.name": "\u5DE5\u4F5C\u53F0";
468
493
  readonly "toggle.open": "\u6253\u5F00\u4FA7\u8FB9\u680F";
@@ -472,6 +497,20 @@ export declare const kit: {
472
497
  readonly "project.none": "\u672A\u9009\u62E9\u9879\u76EE";
473
498
  readonly "project.empty": "\u8FD8\u6CA1\u6709\u9879\u76EE\u3002\u7528\u4E0B\u9762\u7684\u300C\u6DFB\u52A0\u9879\u76EE\u300D\u9009\u4E00\u4E2A\u76EE\u5F55\u3002";
474
499
  readonly "project.add": "\u6DFB\u52A0\u9879\u76EE\u2026";
500
+ readonly "project.search.label": "\u641C\u7D22\u5DE5\u4F5C\u533A";
501
+ readonly "project.search.placeholder": "\u641C\u7D22\u5DE5\u4F5C\u533A\uFF08\u76EE\u5F55\u540D / \u4E2D\u6587\u540D / \u8DEF\u5F84\uFF09";
502
+ readonly "project.search.empty": "\u6CA1\u6709\u5339\u914D\u300C{query}\u300D\u7684\u5DE5\u4F5C\u533A\u3002";
503
+ readonly "project.rename.row": "\u6539\u300C{name}\u300D\u7684\u4E2D\u6587\u540D";
504
+ readonly "project.rename.current": "\u6539\u5F53\u524D\u5DE5\u4F5C\u533A\u7684\u4E2D\u6587\u540D\u2026";
505
+ readonly "project.rename.title": "\u7ED9\u300C{name}\u300D\u914D\u4E00\u4E2A\u4E2D\u6587\u540D";
506
+ readonly "project.rename.description": "\u663E\u793A\u5728\u76EE\u5F55\u540D\u540E\u9762\u3002\u6539\u7684\u662F\u5DE5\u4F5C\u533A\u672C\u8EAB\u7684\u540D\u5B57\u3002";
507
+ readonly "project.rename.field": "\u4E2D\u6587\u540D";
508
+ readonly "project.rename.placeholder": "\u4F8B\u5982\uFF1A\u5DE5\u4F5C\u53F0\u5916\u58F3";
509
+ readonly "project.rename.hint": "\u7559\u7A7A = \u53EA\u663E\u793A\u76EE\u5F55\u540D";
510
+ readonly "project.rename.save": "\u4FDD\u5B58";
511
+ readonly "project.rename.saving": "\u4FDD\u5B58\u4E2D\u2026";
512
+ readonly "project.rename.cancel": "\u53D6\u6D88";
513
+ readonly "project.rename.failed": "\u6539\u540D\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
475
514
  readonly "session.new": "\u65B0\u4F1A\u8BDD";
476
515
  readonly "session.new.label": "\u5728\u5F53\u524D\u9879\u76EE\u65B0\u5EFA\u4F1A\u8BDD";
477
516
  readonly "session.empty": "\u8FD9\u4E2A\u9879\u76EE\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u3002";
@@ -495,11 +534,13 @@ export declare const kit: {
495
534
  readonly "panels.enabled": "\u8FD9\u4E2A\u9879\u76EE\u5DF2\u542F\u7528";
496
535
  readonly "panels.disabled": "\u8FD9\u4E2A\u9879\u76EE\u672A\u542F\u7528";
497
536
  readonly "panels.choose": "\u9009\u62E9\u6A21\u5757";
537
+ readonly "panels.buildModule": "\u9020\u4E00\u4E2A\u6A21\u5757";
498
538
  readonly "panels.failed": "\u6539\u914D\u7F6E\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
499
539
  readonly "panels.hintEffect": "\u505C\u7528 = agent \u62FF\u4E0D\u5230\u76F8\u5173\u6570\u636E";
500
540
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
501
541
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
502
542
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
543
+ readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
503
544
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
504
545
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
505
546
  readonly "panels.dep.unchecked": "\u26A0 \u68C0\u6D4B\u4E0D\u4E86";
@@ -693,6 +734,8 @@ export declare const kit: {
693
734
  readonly "blocker.exec.hint": "\u786E\u8BA4 opencli \u5DF2\u5B89\u88C5\u4E14\u5728 PATH \u91CC\uFF08which opencli\uFF09\u3002";
694
735
  readonly "blocker.unknown.title": "\u51FA\u4E86\u70B9\u95EE\u9898";
695
736
  readonly "panels.reading": "\u6B63\u5728\u8BFB\u53D6\u9762\u677F\u914D\u7F6E\u2026";
737
+ readonly "panels.cardBroken": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765\uFF1A{unit}\uFF08{reason}\uFF09";
738
+ readonly "panels.cardRetry": "\u91CD\u8BD5";
696
739
  readonly "panels.empty": "\u9762\u677F\u91CC\u8FD8\u6CA1\u6709\u6A21\u5757";
697
740
  readonly "panels.emptyHint": "\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u300C\u628A\u67D0\u4E2A\u6A21\u5757\u52A0\u5230\u9762\u677F\u300D\u3002";
698
741
  readonly "env.title": "\u51C6\u5907\u5DE5\u4F5C\u53F0";
@@ -731,6 +774,8 @@ export declare const kit: {
731
774
  readonly "env.step.warm": "\u9884\u70ED\u7AD9\u70B9\u767B\u5F55\u6001";
732
775
  readonly "env.warm.done": "\u5DF2\u9884\u70ED {n} \u4E2A\u7AD9\u70B9";
733
776
  readonly "env.warm.short": "\u8FD9\u6B21\u6CA1\u70ED\u4E0A \u2014\u2014 \u4E0D\u5F71\u54CD\u7528\uFF0C\u9762\u677F\u7B2C\u4E00\u6B21\u8BFB\u53D6\u4F1A\u81EA\u5DF1\u8865";
777
+ readonly "env.unit.failed": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765";
778
+ readonly "env.unit.failedHint": "\u5B83\u81EA\u5DF1\u88C5\u914D\u65F6\u62A5\u4E86\u9519\uFF0C\u522B\u7684\u6A21\u5757\u4E0D\u53D7\u5F71\u54CD\u3002";
734
779
  readonly "env.unit.missingPlugin": "\u8FD9\u4E2A\u6A21\u5757\u8FD8\u6CA1\u88C5\u597D";
735
780
  readonly "env.unit.missingCommandsHint": "\u66F4\u65B0\u4E4B\u540E\u5C31\u80FD\u7528\u4E86\u3002";
736
781
  readonly "env.unit.unchecked": "\u68C0\u6D4B\u4E0D\u4E86\uFF1A\u62FF\u4E0D\u5230\u6267\u884C\u901A\u9053";
@@ -758,6 +803,7 @@ export declare const kit: {
758
803
  holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
759
804
  h: typeof import("react").createElement;
760
805
  Fragment: import("react").ExoticComponent<import("react").FragmentProps>;
806
+ Component: typeof import("react").Component;
761
807
  useState: typeof import("react").useState;
762
808
  useEffect: typeof import("react").useEffect;
763
809
  useLayoutEffect: typeof import("react").useLayoutEffect;
@@ -822,6 +868,8 @@ export declare const kit: {
822
868
  ApprovalDetail(props: apiModule.ApprovalDetailProps): JSX.Element | null;
823
869
  ApprovalPlan({ rows, hint, warn, children }: apiModule.ApprovalPlanProps): JSX.Element;
824
870
  Card({ t, title, refreshing, onRefresh, meta, head, children }: apiModule.CardProps): JSX.Element;
871
+ errorReasonOf(error: unknown): string;
872
+ CardBoundary: typeof apiModule.CardBoundary;
825
873
  CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
826
874
  ChoiceGroup({ label, name, value, options, disabled, onChange }: apiModule.ChoiceGroupProps): JSX.Element;
827
875
  LongTaskRow(props: apiModule.LongTaskRowProps): JSX.Element;
@@ -904,6 +952,20 @@ export declare const kit: {
904
952
  readonly "project.none": "\u672A\u9009\u62E9\u9879\u76EE";
905
953
  readonly "project.empty": "\u8FD8\u6CA1\u6709\u9879\u76EE\u3002\u7528\u4E0B\u9762\u7684\u300C\u6DFB\u52A0\u9879\u76EE\u300D\u9009\u4E00\u4E2A\u76EE\u5F55\u3002";
906
954
  readonly "project.add": "\u6DFB\u52A0\u9879\u76EE\u2026";
955
+ readonly "project.search.label": "\u641C\u7D22\u5DE5\u4F5C\u533A";
956
+ readonly "project.search.placeholder": "\u641C\u7D22\u5DE5\u4F5C\u533A\uFF08\u76EE\u5F55\u540D / \u4E2D\u6587\u540D / \u8DEF\u5F84\uFF09";
957
+ readonly "project.search.empty": "\u6CA1\u6709\u5339\u914D\u300C{query}\u300D\u7684\u5DE5\u4F5C\u533A\u3002";
958
+ readonly "project.rename.row": "\u6539\u300C{name}\u300D\u7684\u4E2D\u6587\u540D";
959
+ readonly "project.rename.current": "\u6539\u5F53\u524D\u5DE5\u4F5C\u533A\u7684\u4E2D\u6587\u540D\u2026";
960
+ readonly "project.rename.title": "\u7ED9\u300C{name}\u300D\u914D\u4E00\u4E2A\u4E2D\u6587\u540D";
961
+ readonly "project.rename.description": "\u663E\u793A\u5728\u76EE\u5F55\u540D\u540E\u9762\u3002\u6539\u7684\u662F\u5DE5\u4F5C\u533A\u672C\u8EAB\u7684\u540D\u5B57\u3002";
962
+ readonly "project.rename.field": "\u4E2D\u6587\u540D";
963
+ readonly "project.rename.placeholder": "\u4F8B\u5982\uFF1A\u5DE5\u4F5C\u53F0\u5916\u58F3";
964
+ readonly "project.rename.hint": "\u7559\u7A7A = \u53EA\u663E\u793A\u76EE\u5F55\u540D";
965
+ readonly "project.rename.save": "\u4FDD\u5B58";
966
+ readonly "project.rename.saving": "\u4FDD\u5B58\u4E2D\u2026";
967
+ readonly "project.rename.cancel": "\u53D6\u6D88";
968
+ readonly "project.rename.failed": "\u6539\u540D\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
907
969
  readonly "session.new": "\u65B0\u4F1A\u8BDD";
908
970
  readonly "session.new.label": "\u5728\u5F53\u524D\u9879\u76EE\u65B0\u5EFA\u4F1A\u8BDD";
909
971
  readonly "session.empty": "\u8FD9\u4E2A\u9879\u76EE\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u3002";
@@ -927,11 +989,13 @@ export declare const kit: {
927
989
  readonly "panels.enabled": "\u8FD9\u4E2A\u9879\u76EE\u5DF2\u542F\u7528";
928
990
  readonly "panels.disabled": "\u8FD9\u4E2A\u9879\u76EE\u672A\u542F\u7528";
929
991
  readonly "panels.choose": "\u9009\u62E9\u6A21\u5757";
992
+ readonly "panels.buildModule": "\u9020\u4E00\u4E2A\u6A21\u5757";
930
993
  readonly "panels.failed": "\u6539\u914D\u7F6E\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
931
994
  readonly "panels.hintEffect": "\u505C\u7528 = agent \u62FF\u4E0D\u5230\u76F8\u5173\u6570\u636E";
932
995
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
933
996
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
934
997
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
998
+ readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
935
999
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
936
1000
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
937
1001
  readonly "panels.dep.unchecked": "\u26A0 \u68C0\u6D4B\u4E0D\u4E86";
@@ -1125,6 +1189,8 @@ export declare const kit: {
1125
1189
  readonly "blocker.exec.hint": "\u786E\u8BA4 opencli \u5DF2\u5B89\u88C5\u4E14\u5728 PATH \u91CC\uFF08which opencli\uFF09\u3002";
1126
1190
  readonly "blocker.unknown.title": "\u51FA\u4E86\u70B9\u95EE\u9898";
1127
1191
  readonly "panels.reading": "\u6B63\u5728\u8BFB\u53D6\u9762\u677F\u914D\u7F6E\u2026";
1192
+ readonly "panels.cardBroken": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765\uFF1A{unit}\uFF08{reason}\uFF09";
1193
+ readonly "panels.cardRetry": "\u91CD\u8BD5";
1128
1194
  readonly "panels.empty": "\u9762\u677F\u91CC\u8FD8\u6CA1\u6709\u6A21\u5757";
1129
1195
  readonly "panels.emptyHint": "\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u300C\u628A\u67D0\u4E2A\u6A21\u5757\u52A0\u5230\u9762\u677F\u300D\u3002";
1130
1196
  readonly "env.title": "\u51C6\u5907\u5DE5\u4F5C\u53F0";
@@ -1163,6 +1229,8 @@ export declare const kit: {
1163
1229
  readonly "env.step.warm": "\u9884\u70ED\u7AD9\u70B9\u767B\u5F55\u6001";
1164
1230
  readonly "env.warm.done": "\u5DF2\u9884\u70ED {n} \u4E2A\u7AD9\u70B9";
1165
1231
  readonly "env.warm.short": "\u8FD9\u6B21\u6CA1\u70ED\u4E0A \u2014\u2014 \u4E0D\u5F71\u54CD\u7528\uFF0C\u9762\u677F\u7B2C\u4E00\u6B21\u8BFB\u53D6\u4F1A\u81EA\u5DF1\u8865";
1232
+ readonly "env.unit.failed": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765";
1233
+ readonly "env.unit.failedHint": "\u5B83\u81EA\u5DF1\u88C5\u914D\u65F6\u62A5\u4E86\u9519\uFF0C\u522B\u7684\u6A21\u5757\u4E0D\u53D7\u5F71\u54CD\u3002";
1166
1234
  readonly "env.unit.missingPlugin": "\u8FD9\u4E2A\u6A21\u5757\u8FD8\u6CA1\u88C5\u597D";
1167
1235
  readonly "env.unit.missingCommandsHint": "\u66F4\u65B0\u4E4B\u540E\u5C31\u80FD\u7528\u4E86\u3002";
1168
1236
  readonly "env.unit.unchecked": "\u68C0\u6D4B\u4E0D\u4E86\uFF1A\u62FF\u4E0D\u5230\u6267\u884C\u901A\u9053";
@@ -1185,9 +1253,10 @@ export declare const kit: {
1185
1253
  readonly "panel.conversation": "\u5BF9\u8BDD";
1186
1254
  readonly "panels.label": "\u5168\u5C40\u9762\u677F";
1187
1255
  };
1188
- en: Record<"time.now" | "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.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" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "panels.title" | "panels.reset" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.failed" | "panels.hintEffect" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "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.outdated" | "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.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.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.installedSection" | "panels.market.moduleOutdated" | "panels.market.moduleRestartHint" | "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.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.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.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.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" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
1256
+ en: Record<"time.now" | "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.search.label" | "project.search.placeholder" | "project.search.empty" | "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.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "panels.title" | "panels.reset" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.hintEffect" | "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.outdated" | "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.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.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.installedSection" | "panels.market.moduleOutdated" | "panels.market.moduleRestartHint" | "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.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.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.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" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
1189
1257
  };
1190
- mergeMessages(base: apiModule.Dictionaries, contributions: readonly apiModule.MessagesContribution[]): apiModule.Dictionaries;
1258
+ mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
1259
+ mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
1191
1260
  zh: {
1192
1261
  readonly "brand.name": "\u5DE5\u4F5C\u53F0";
1193
1262
  readonly "toggle.open": "\u6253\u5F00\u4FA7\u8FB9\u680F";
@@ -1197,6 +1266,20 @@ export declare const kit: {
1197
1266
  readonly "project.none": "\u672A\u9009\u62E9\u9879\u76EE";
1198
1267
  readonly "project.empty": "\u8FD8\u6CA1\u6709\u9879\u76EE\u3002\u7528\u4E0B\u9762\u7684\u300C\u6DFB\u52A0\u9879\u76EE\u300D\u9009\u4E00\u4E2A\u76EE\u5F55\u3002";
1199
1268
  readonly "project.add": "\u6DFB\u52A0\u9879\u76EE\u2026";
1269
+ readonly "project.search.label": "\u641C\u7D22\u5DE5\u4F5C\u533A";
1270
+ readonly "project.search.placeholder": "\u641C\u7D22\u5DE5\u4F5C\u533A\uFF08\u76EE\u5F55\u540D / \u4E2D\u6587\u540D / \u8DEF\u5F84\uFF09";
1271
+ readonly "project.search.empty": "\u6CA1\u6709\u5339\u914D\u300C{query}\u300D\u7684\u5DE5\u4F5C\u533A\u3002";
1272
+ readonly "project.rename.row": "\u6539\u300C{name}\u300D\u7684\u4E2D\u6587\u540D";
1273
+ readonly "project.rename.current": "\u6539\u5F53\u524D\u5DE5\u4F5C\u533A\u7684\u4E2D\u6587\u540D\u2026";
1274
+ readonly "project.rename.title": "\u7ED9\u300C{name}\u300D\u914D\u4E00\u4E2A\u4E2D\u6587\u540D";
1275
+ readonly "project.rename.description": "\u663E\u793A\u5728\u76EE\u5F55\u540D\u540E\u9762\u3002\u6539\u7684\u662F\u5DE5\u4F5C\u533A\u672C\u8EAB\u7684\u540D\u5B57\u3002";
1276
+ readonly "project.rename.field": "\u4E2D\u6587\u540D";
1277
+ readonly "project.rename.placeholder": "\u4F8B\u5982\uFF1A\u5DE5\u4F5C\u53F0\u5916\u58F3";
1278
+ readonly "project.rename.hint": "\u7559\u7A7A = \u53EA\u663E\u793A\u76EE\u5F55\u540D";
1279
+ readonly "project.rename.save": "\u4FDD\u5B58";
1280
+ readonly "project.rename.saving": "\u4FDD\u5B58\u4E2D\u2026";
1281
+ readonly "project.rename.cancel": "\u53D6\u6D88";
1282
+ readonly "project.rename.failed": "\u6539\u540D\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1200
1283
  readonly "session.new": "\u65B0\u4F1A\u8BDD";
1201
1284
  readonly "session.new.label": "\u5728\u5F53\u524D\u9879\u76EE\u65B0\u5EFA\u4F1A\u8BDD";
1202
1285
  readonly "session.empty": "\u8FD9\u4E2A\u9879\u76EE\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u3002";
@@ -1220,11 +1303,13 @@ export declare const kit: {
1220
1303
  readonly "panels.enabled": "\u8FD9\u4E2A\u9879\u76EE\u5DF2\u542F\u7528";
1221
1304
  readonly "panels.disabled": "\u8FD9\u4E2A\u9879\u76EE\u672A\u542F\u7528";
1222
1305
  readonly "panels.choose": "\u9009\u62E9\u6A21\u5757";
1306
+ readonly "panels.buildModule": "\u9020\u4E00\u4E2A\u6A21\u5757";
1223
1307
  readonly "panels.failed": "\u6539\u914D\u7F6E\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1224
1308
  readonly "panels.hintEffect": "\u505C\u7528 = agent \u62FF\u4E0D\u5230\u76F8\u5173\u6570\u636E";
1225
1309
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
1226
1310
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
1227
1311
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
1312
+ readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
1228
1313
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
1229
1314
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
1230
1315
  readonly "panels.dep.unchecked": "\u26A0 \u68C0\u6D4B\u4E0D\u4E86";
@@ -1418,6 +1503,8 @@ export declare const kit: {
1418
1503
  readonly "blocker.exec.hint": "\u786E\u8BA4 opencli \u5DF2\u5B89\u88C5\u4E14\u5728 PATH \u91CC\uFF08which opencli\uFF09\u3002";
1419
1504
  readonly "blocker.unknown.title": "\u51FA\u4E86\u70B9\u95EE\u9898";
1420
1505
  readonly "panels.reading": "\u6B63\u5728\u8BFB\u53D6\u9762\u677F\u914D\u7F6E\u2026";
1506
+ readonly "panels.cardBroken": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765\uFF1A{unit}\uFF08{reason}\uFF09";
1507
+ readonly "panels.cardRetry": "\u91CD\u8BD5";
1421
1508
  readonly "panels.empty": "\u9762\u677F\u91CC\u8FD8\u6CA1\u6709\u6A21\u5757";
1422
1509
  readonly "panels.emptyHint": "\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u300C\u628A\u67D0\u4E2A\u6A21\u5757\u52A0\u5230\u9762\u677F\u300D\u3002";
1423
1510
  readonly "env.title": "\u51C6\u5907\u5DE5\u4F5C\u53F0";
@@ -1456,6 +1543,8 @@ export declare const kit: {
1456
1543
  readonly "env.step.warm": "\u9884\u70ED\u7AD9\u70B9\u767B\u5F55\u6001";
1457
1544
  readonly "env.warm.done": "\u5DF2\u9884\u70ED {n} \u4E2A\u7AD9\u70B9";
1458
1545
  readonly "env.warm.short": "\u8FD9\u6B21\u6CA1\u70ED\u4E0A \u2014\u2014 \u4E0D\u5F71\u54CD\u7528\uFF0C\u9762\u677F\u7B2C\u4E00\u6B21\u8BFB\u53D6\u4F1A\u81EA\u5DF1\u8865";
1546
+ readonly "env.unit.failed": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765";
1547
+ readonly "env.unit.failedHint": "\u5B83\u81EA\u5DF1\u88C5\u914D\u65F6\u62A5\u4E86\u9519\uFF0C\u522B\u7684\u6A21\u5757\u4E0D\u53D7\u5F71\u54CD\u3002";
1459
1548
  readonly "env.unit.missingPlugin": "\u8FD9\u4E2A\u6A21\u5757\u8FD8\u6CA1\u88C5\u597D";
1460
1549
  readonly "env.unit.missingCommandsHint": "\u66F4\u65B0\u4E4B\u540E\u5C31\u80FD\u7528\u4E86\u3002";
1461
1550
  readonly "env.unit.unchecked": "\u68C0\u6D4B\u4E0D\u4E86\uFF1A\u62FF\u4E0D\u5230\u6267\u884C\u901A\u9053";
@@ -1483,6 +1572,7 @@ export declare const kit: {
1483
1572
  holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
1484
1573
  h: typeof import("react").createElement;
1485
1574
  Fragment: import("react").ExoticComponent<import("react").FragmentProps>;
1575
+ Component: typeof import("react").Component;
1486
1576
  useState: typeof import("react").useState;
1487
1577
  useEffect: typeof import("react").useEffect;
1488
1578
  useLayoutEffect: typeof import("react").useLayoutEffect;
@@ -1542,6 +1632,8 @@ export declare const kit: {
1542
1632
  ApprovalDetail(props: apiModule.ApprovalDetailProps): JSX.Element | null;
1543
1633
  ApprovalPlan({ rows, hint, warn, children }: apiModule.ApprovalPlanProps): JSX.Element;
1544
1634
  Card({ t, title, refreshing, onRefresh, meta, head, children }: apiModule.CardProps): JSX.Element;
1635
+ errorReasonOf(error: unknown): string;
1636
+ CardBoundary: typeof apiModule.CardBoundary;
1545
1637
  CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
1546
1638
  ChoiceGroup({ label, name, value, options, disabled, onChange }: apiModule.ChoiceGroupProps): JSX.Element;
1547
1639
  LongTaskRow(props: apiModule.LongTaskRowProps): JSX.Element;
@@ -1624,6 +1716,20 @@ export declare const kit: {
1624
1716
  readonly "project.none": "\u672A\u9009\u62E9\u9879\u76EE";
1625
1717
  readonly "project.empty": "\u8FD8\u6CA1\u6709\u9879\u76EE\u3002\u7528\u4E0B\u9762\u7684\u300C\u6DFB\u52A0\u9879\u76EE\u300D\u9009\u4E00\u4E2A\u76EE\u5F55\u3002";
1626
1718
  readonly "project.add": "\u6DFB\u52A0\u9879\u76EE\u2026";
1719
+ readonly "project.search.label": "\u641C\u7D22\u5DE5\u4F5C\u533A";
1720
+ readonly "project.search.placeholder": "\u641C\u7D22\u5DE5\u4F5C\u533A\uFF08\u76EE\u5F55\u540D / \u4E2D\u6587\u540D / \u8DEF\u5F84\uFF09";
1721
+ readonly "project.search.empty": "\u6CA1\u6709\u5339\u914D\u300C{query}\u300D\u7684\u5DE5\u4F5C\u533A\u3002";
1722
+ readonly "project.rename.row": "\u6539\u300C{name}\u300D\u7684\u4E2D\u6587\u540D";
1723
+ readonly "project.rename.current": "\u6539\u5F53\u524D\u5DE5\u4F5C\u533A\u7684\u4E2D\u6587\u540D\u2026";
1724
+ readonly "project.rename.title": "\u7ED9\u300C{name}\u300D\u914D\u4E00\u4E2A\u4E2D\u6587\u540D";
1725
+ readonly "project.rename.description": "\u663E\u793A\u5728\u76EE\u5F55\u540D\u540E\u9762\u3002\u6539\u7684\u662F\u5DE5\u4F5C\u533A\u672C\u8EAB\u7684\u540D\u5B57\u3002";
1726
+ readonly "project.rename.field": "\u4E2D\u6587\u540D";
1727
+ readonly "project.rename.placeholder": "\u4F8B\u5982\uFF1A\u5DE5\u4F5C\u53F0\u5916\u58F3";
1728
+ readonly "project.rename.hint": "\u7559\u7A7A = \u53EA\u663E\u793A\u76EE\u5F55\u540D";
1729
+ readonly "project.rename.save": "\u4FDD\u5B58";
1730
+ readonly "project.rename.saving": "\u4FDD\u5B58\u4E2D\u2026";
1731
+ readonly "project.rename.cancel": "\u53D6\u6D88";
1732
+ readonly "project.rename.failed": "\u6539\u540D\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1627
1733
  readonly "session.new": "\u65B0\u4F1A\u8BDD";
1628
1734
  readonly "session.new.label": "\u5728\u5F53\u524D\u9879\u76EE\u65B0\u5EFA\u4F1A\u8BDD";
1629
1735
  readonly "session.empty": "\u8FD9\u4E2A\u9879\u76EE\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u3002";
@@ -1647,11 +1753,13 @@ export declare const kit: {
1647
1753
  readonly "panels.enabled": "\u8FD9\u4E2A\u9879\u76EE\u5DF2\u542F\u7528";
1648
1754
  readonly "panels.disabled": "\u8FD9\u4E2A\u9879\u76EE\u672A\u542F\u7528";
1649
1755
  readonly "panels.choose": "\u9009\u62E9\u6A21\u5757";
1756
+ readonly "panels.buildModule": "\u9020\u4E00\u4E2A\u6A21\u5757";
1650
1757
  readonly "panels.failed": "\u6539\u914D\u7F6E\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1651
1758
  readonly "panels.hintEffect": "\u505C\u7528 = agent \u62FF\u4E0D\u5230\u76F8\u5173\u6570\u636E";
1652
1759
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
1653
1760
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
1654
1761
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
1762
+ readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
1655
1763
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
1656
1764
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
1657
1765
  readonly "panels.dep.unchecked": "\u26A0 \u68C0\u6D4B\u4E0D\u4E86";
@@ -1845,6 +1953,8 @@ export declare const kit: {
1845
1953
  readonly "blocker.exec.hint": "\u786E\u8BA4 opencli \u5DF2\u5B89\u88C5\u4E14\u5728 PATH \u91CC\uFF08which opencli\uFF09\u3002";
1846
1954
  readonly "blocker.unknown.title": "\u51FA\u4E86\u70B9\u95EE\u9898";
1847
1955
  readonly "panels.reading": "\u6B63\u5728\u8BFB\u53D6\u9762\u677F\u914D\u7F6E\u2026";
1956
+ readonly "panels.cardBroken": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765\uFF1A{unit}\uFF08{reason}\uFF09";
1957
+ readonly "panels.cardRetry": "\u91CD\u8BD5";
1848
1958
  readonly "panels.empty": "\u9762\u677F\u91CC\u8FD8\u6CA1\u6709\u6A21\u5757";
1849
1959
  readonly "panels.emptyHint": "\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u300C\u628A\u67D0\u4E2A\u6A21\u5757\u52A0\u5230\u9762\u677F\u300D\u3002";
1850
1960
  readonly "env.title": "\u51C6\u5907\u5DE5\u4F5C\u53F0";
@@ -1883,6 +1993,8 @@ export declare const kit: {
1883
1993
  readonly "env.step.warm": "\u9884\u70ED\u7AD9\u70B9\u767B\u5F55\u6001";
1884
1994
  readonly "env.warm.done": "\u5DF2\u9884\u70ED {n} \u4E2A\u7AD9\u70B9";
1885
1995
  readonly "env.warm.short": "\u8FD9\u6B21\u6CA1\u70ED\u4E0A \u2014\u2014 \u4E0D\u5F71\u54CD\u7528\uFF0C\u9762\u677F\u7B2C\u4E00\u6B21\u8BFB\u53D6\u4F1A\u81EA\u5DF1\u8865";
1996
+ readonly "env.unit.failed": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765";
1997
+ readonly "env.unit.failedHint": "\u5B83\u81EA\u5DF1\u88C5\u914D\u65F6\u62A5\u4E86\u9519\uFF0C\u522B\u7684\u6A21\u5757\u4E0D\u53D7\u5F71\u54CD\u3002";
1886
1998
  readonly "env.unit.missingPlugin": "\u8FD9\u4E2A\u6A21\u5757\u8FD8\u6CA1\u88C5\u597D";
1887
1999
  readonly "env.unit.missingCommandsHint": "\u66F4\u65B0\u4E4B\u540E\u5C31\u80FD\u7528\u4E86\u3002";
1888
2000
  readonly "env.unit.unchecked": "\u68C0\u6D4B\u4E0D\u4E86\uFF1A\u62FF\u4E0D\u5230\u6267\u884C\u901A\u9053";
@@ -1905,9 +2017,10 @@ export declare const kit: {
1905
2017
  readonly "panel.conversation": "\u5BF9\u8BDD";
1906
2018
  readonly "panels.label": "\u5168\u5C40\u9762\u677F";
1907
2019
  };
1908
- en: Record<"time.now" | "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.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" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "panels.title" | "panels.reset" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.failed" | "panels.hintEffect" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "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.outdated" | "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.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.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.installedSection" | "panels.market.moduleOutdated" | "panels.market.moduleRestartHint" | "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.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.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.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.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" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
2020
+ en: Record<"time.now" | "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.search.label" | "project.search.placeholder" | "project.search.empty" | "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.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "panels.title" | "panels.reset" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.hintEffect" | "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.outdated" | "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.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.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.installedSection" | "panels.market.moduleOutdated" | "panels.market.moduleRestartHint" | "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.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.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.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" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
1909
2021
  };
1910
- mergeMessages(base: apiModule.Dictionaries, contributions: readonly apiModule.MessagesContribution[]): apiModule.Dictionaries;
2022
+ mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
2023
+ mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
1911
2024
  zh: {
1912
2025
  readonly "brand.name": "\u5DE5\u4F5C\u53F0";
1913
2026
  readonly "toggle.open": "\u6253\u5F00\u4FA7\u8FB9\u680F";
@@ -1917,6 +2030,20 @@ export declare const kit: {
1917
2030
  readonly "project.none": "\u672A\u9009\u62E9\u9879\u76EE";
1918
2031
  readonly "project.empty": "\u8FD8\u6CA1\u6709\u9879\u76EE\u3002\u7528\u4E0B\u9762\u7684\u300C\u6DFB\u52A0\u9879\u76EE\u300D\u9009\u4E00\u4E2A\u76EE\u5F55\u3002";
1919
2032
  readonly "project.add": "\u6DFB\u52A0\u9879\u76EE\u2026";
2033
+ readonly "project.search.label": "\u641C\u7D22\u5DE5\u4F5C\u533A";
2034
+ readonly "project.search.placeholder": "\u641C\u7D22\u5DE5\u4F5C\u533A\uFF08\u76EE\u5F55\u540D / \u4E2D\u6587\u540D / \u8DEF\u5F84\uFF09";
2035
+ readonly "project.search.empty": "\u6CA1\u6709\u5339\u914D\u300C{query}\u300D\u7684\u5DE5\u4F5C\u533A\u3002";
2036
+ readonly "project.rename.row": "\u6539\u300C{name}\u300D\u7684\u4E2D\u6587\u540D";
2037
+ readonly "project.rename.current": "\u6539\u5F53\u524D\u5DE5\u4F5C\u533A\u7684\u4E2D\u6587\u540D\u2026";
2038
+ readonly "project.rename.title": "\u7ED9\u300C{name}\u300D\u914D\u4E00\u4E2A\u4E2D\u6587\u540D";
2039
+ readonly "project.rename.description": "\u663E\u793A\u5728\u76EE\u5F55\u540D\u540E\u9762\u3002\u6539\u7684\u662F\u5DE5\u4F5C\u533A\u672C\u8EAB\u7684\u540D\u5B57\u3002";
2040
+ readonly "project.rename.field": "\u4E2D\u6587\u540D";
2041
+ readonly "project.rename.placeholder": "\u4F8B\u5982\uFF1A\u5DE5\u4F5C\u53F0\u5916\u58F3";
2042
+ readonly "project.rename.hint": "\u7559\u7A7A = \u53EA\u663E\u793A\u76EE\u5F55\u540D";
2043
+ readonly "project.rename.save": "\u4FDD\u5B58";
2044
+ readonly "project.rename.saving": "\u4FDD\u5B58\u4E2D\u2026";
2045
+ readonly "project.rename.cancel": "\u53D6\u6D88";
2046
+ readonly "project.rename.failed": "\u6539\u540D\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1920
2047
  readonly "session.new": "\u65B0\u4F1A\u8BDD";
1921
2048
  readonly "session.new.label": "\u5728\u5F53\u524D\u9879\u76EE\u65B0\u5EFA\u4F1A\u8BDD";
1922
2049
  readonly "session.empty": "\u8FD9\u4E2A\u9879\u76EE\u8FD8\u6CA1\u6709\u4F1A\u8BDD\u3002";
@@ -1940,11 +2067,13 @@ export declare const kit: {
1940
2067
  readonly "panels.enabled": "\u8FD9\u4E2A\u9879\u76EE\u5DF2\u542F\u7528";
1941
2068
  readonly "panels.disabled": "\u8FD9\u4E2A\u9879\u76EE\u672A\u542F\u7528";
1942
2069
  readonly "panels.choose": "\u9009\u62E9\u6A21\u5757";
2070
+ readonly "panels.buildModule": "\u9020\u4E00\u4E2A\u6A21\u5757";
1943
2071
  readonly "panels.failed": "\u6539\u914D\u7F6E\u5931\u8D25\u4E86\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1944
2072
  readonly "panels.hintEffect": "\u505C\u7528 = agent \u62FF\u4E0D\u5230\u76F8\u5173\u6570\u636E";
1945
2073
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
1946
2074
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
1947
2075
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
2076
+ readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
1948
2077
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
1949
2078
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
1950
2079
  readonly "panels.dep.unchecked": "\u26A0 \u68C0\u6D4B\u4E0D\u4E86";
@@ -2138,6 +2267,8 @@ export declare const kit: {
2138
2267
  readonly "blocker.exec.hint": "\u786E\u8BA4 opencli \u5DF2\u5B89\u88C5\u4E14\u5728 PATH \u91CC\uFF08which opencli\uFF09\u3002";
2139
2268
  readonly "blocker.unknown.title": "\u51FA\u4E86\u70B9\u95EE\u9898";
2140
2269
  readonly "panels.reading": "\u6B63\u5728\u8BFB\u53D6\u9762\u677F\u914D\u7F6E\u2026";
2270
+ readonly "panels.cardBroken": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765\uFF1A{unit}\uFF08{reason}\uFF09";
2271
+ readonly "panels.cardRetry": "\u91CD\u8BD5";
2141
2272
  readonly "panels.empty": "\u9762\u677F\u91CC\u8FD8\u6CA1\u6709\u6A21\u5757";
2142
2273
  readonly "panels.emptyHint": "\u4E5F\u53EF\u4EE5\u76F4\u63A5\u8DDF agent \u8BF4\uFF1A\u300C\u628A\u67D0\u4E2A\u6A21\u5757\u52A0\u5230\u9762\u677F\u300D\u3002";
2143
2274
  readonly "env.title": "\u51C6\u5907\u5DE5\u4F5C\u53F0";
@@ -2176,6 +2307,8 @@ export declare const kit: {
2176
2307
  readonly "env.step.warm": "\u9884\u70ED\u7AD9\u70B9\u767B\u5F55\u6001";
2177
2308
  readonly "env.warm.done": "\u5DF2\u9884\u70ED {n} \u4E2A\u7AD9\u70B9";
2178
2309
  readonly "env.warm.short": "\u8FD9\u6B21\u6CA1\u70ED\u4E0A \u2014\u2014 \u4E0D\u5F71\u54CD\u7528\uFF0C\u9762\u677F\u7B2C\u4E00\u6B21\u8BFB\u53D6\u4F1A\u81EA\u5DF1\u8865";
2310
+ readonly "env.unit.failed": "\u8FD9\u4E2A\u6A21\u5757\u8D77\u4E0D\u6765";
2311
+ readonly "env.unit.failedHint": "\u5B83\u81EA\u5DF1\u88C5\u914D\u65F6\u62A5\u4E86\u9519\uFF0C\u522B\u7684\u6A21\u5757\u4E0D\u53D7\u5F71\u54CD\u3002";
2179
2312
  readonly "env.unit.missingPlugin": "\u8FD9\u4E2A\u6A21\u5757\u8FD8\u6CA1\u88C5\u597D";
2180
2313
  readonly "env.unit.missingCommandsHint": "\u66F4\u65B0\u4E4B\u540E\u5C31\u80FD\u7528\u4E86\u3002";
2181
2314
  readonly "env.unit.unchecked": "\u68C0\u6D4B\u4E0D\u4E86\uFF1A\u62FF\u4E0D\u5230\u6267\u884C\u901A\u9053";
@@ -2203,6 +2336,7 @@ export declare const kit: {
2203
2336
  holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
2204
2337
  h: typeof import("react").createElement;
2205
2338
  Fragment: import("react").ExoticComponent<import("react").FragmentProps>;
2339
+ Component: typeof import("react").Component;
2206
2340
  useState: typeof import("react").useState;
2207
2341
  useEffect: typeof import("react").useEffect;
2208
2342
  useLayoutEffect: typeof import("react").useLayoutEffect;
@@ -1,6 +1,7 @@
1
1
  import type { Translate } from '@dsh-workbench/shared';
2
- export declare function BoardEmpty({ t, onOpenModules, onOpenMarket, }: {
2
+ export declare function BoardEmpty({ t, onBuildModule, onOpenModules, onOpenMarket, }: {
3
3
  t: Translate;
4
+ onBuildModule: () => void;
4
5
  onOpenModules: () => void;
5
6
  onOpenMarket: () => void;
6
7
  }): JSX.Element;
@@ -21,6 +21,7 @@ export interface RightbarActions {
21
21
  openPanel: (step: PanelStep) => void;
22
22
  goToPanel: (index: number) => void;
23
23
  openMarket: () => void;
24
+ buildModule: () => void;
24
25
  units: ClientUnitRegistry;
25
26
  }
26
27
  export declare function Rightbar(props: RightbarProps): JSX.Element;
@@ -5,6 +5,8 @@ export type BoardShape = {
5
5
  readonly kind: 'empty';
6
6
  } | {
7
7
  readonly kind: 'unread';
8
+ } | {
9
+ readonly kind: 'all';
8
10
  } | {
9
11
  readonly kind: 'copies';
10
12
  readonly count: number;