@dsh-workbench/core 0.1.14 → 0.1.16

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 (48) hide show
  1. package/README.md +19 -0
  2. package/bin/dsh-workbench +21 -1
  3. package/client.js +163 -89
  4. package/cordis.patch.yml +40 -0
  5. package/dist/client/client.body.js +163 -89
  6. package/dist/client/index.js +163 -89
  7. package/dist/host/index.js +1474 -93
  8. package/dist/types/app/__tests__/workbench-styles.test.d.ts +1 -0
  9. package/dist/types/app/client.d.ts +39 -15
  10. package/dist/types/app/layouts/rightbar/board-columns.d.ts +8 -0
  11. package/dist/types/app/layouts/rightbar/board-columns.test.d.ts +1 -0
  12. package/dist/types/app/layouts/rightbar/market-rows.d.ts +2 -0
  13. package/dist/types/app/layouts/workbench-styles.d.ts +2 -0
  14. package/dist/types/modules/panels/__tests__/diy-harness.d.ts +51 -0
  15. package/dist/types/modules/panels/__tests__/diy-tools-status.test.d.ts +1 -0
  16. package/dist/types/modules/panels/__tests__/diy-tools.test.d.ts +1 -0
  17. package/dist/types/modules/panels/model/diy-tools.d.ts +4 -0
  18. package/dist/types/modules/panels/unit.d.ts +1 -0
  19. package/dist/types/shared/api/bundle-install.d.ts +1 -0
  20. package/dist/types/shared/api/host/diy-facts.d.ts +9 -0
  21. package/dist/types/shared/api/host/diy-facts.test.d.ts +1 -0
  22. package/dist/types/shared/api/host/diy-recon-fs.d.ts +3 -0
  23. package/dist/types/shared/api/host/diy-recon-fs.test.d.ts +1 -0
  24. package/dist/types/shared/api/host/diy-recon.d.ts +39 -0
  25. package/dist/types/shared/api/host/diy-recon.test.d.ts +1 -0
  26. package/dist/types/shared/api/host/diy-workshop.d.ts +12 -0
  27. package/dist/types/shared/api/host/diy-workshop.test.d.ts +1 -0
  28. package/dist/types/shared/api/host/installed-module.d.ts +2 -0
  29. package/dist/types/shared/api/host/opencli-command.d.ts +10 -0
  30. package/dist/types/shared/api/host/opencli-command.test.d.ts +1 -0
  31. package/dist/types/shared/api/host/runtime-seed.d.ts +40 -0
  32. package/dist/types/shared/api/host/runtime-seed.test.d.ts +1 -0
  33. package/docs/HANDOFF.md +82 -44
  34. package/docs/OPERATIONS.md +22 -1
  35. package/package.json +5 -5
  36. package/scripts/seed-profile.sh +4 -113
  37. package/scripts/seed-workshop.sh +216 -0
  38. package/skills/workbench-module-diy/BUILD.md +36 -66
  39. package/skills/workbench-module-diy/DATASOURCE.md +80 -12
  40. package/skills/workbench-module-diy/DESIGN.md +27 -2
  41. package/skills/workbench-module-diy/LINKAGE.md +49 -19
  42. package/skills/workbench-module-diy/PANEL.md +78 -4
  43. package/skills/workbench-module-diy/REVIEW.md +6 -5
  44. package/skills/workbench-module-diy/SKILL.md +32 -12
  45. package/skills/workbench-module-diy/STEPS.md +4 -0
  46. package/skills/workbench-module-diy/TOOLING.md +47 -0
  47. package/skills/workbench-module-diy/TOOLS.md +147 -5
  48. package/skills/workbench-module-diy/WIRING.md +88 -0
@@ -135,6 +135,8 @@ export declare const kit: {
135
135
  Stack({ children }: apiModule.StackProps): JSX.Element;
136
136
  StateBlock({ title, dot, hint, actions, resolving, children }: apiModule.StateBlockProps): JSX.Element;
137
137
  TextField({ invalid, className, ...rest }: apiModule.TextFieldProps): JSX.Element;
138
+ Field({ label, hint, children }: apiModule.FieldProps): JSX.Element;
139
+ Link({ href, children, title, external, className }: apiModule.LinkProps): JSX.Element;
138
140
  IconConversation({ size }: apiModule.IconProps): JSX.Element;
139
141
  IconBrandMark({ size }: apiModule.IconProps): JSX.Element;
140
142
  IconModules({ size }: apiModule.IconProps): JSX.Element;
@@ -235,7 +237,7 @@ export declare const kit: {
235
237
  readonly "panels.browseMarket": "\u6D4F\u89C8\u6A21\u5757\u5E02\u573A";
236
238
  readonly "panels.noneInstalled": "\u8FD9\u4E9B\u6A21\u5757\u8981\u7684\u63D2\u4EF6\u90FD\u8FD8\u6CA1\u88C5";
237
239
  readonly "panels.noneInstalledHint": "\u88C5\u597D\u4E4B\u540E\u5B83\u4EEC\u4F1A\u56DE\u5230\u8FD9\u91CC\uFF0C\u518D\u7531\u4F60\u51B3\u5B9A\u653E\u54EA\u51E0\u4E2A\u4E0A\u677F\u3002";
238
- readonly "panels.market.installed": "\u5DF2\u88C5";
240
+ readonly "panels.market.installed": "\u5DF2\u5B89\u88C5";
239
241
  readonly "panels.market.outdated": "\u8981\u66F4\u65B0";
240
242
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
241
243
  readonly "panels.market.missing": "\u672A\u88C5";
@@ -269,7 +271,9 @@ export declare const kit: {
269
271
  readonly "panels.market.noSource": "\u8FD9\u4E2A\u6A21\u5757\u6CA1\u58F0\u660E\u600E\u4E48\u88C5\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
270
272
  readonly "panels.market.badSource": "\u5B89\u88C5\u65B9\u5F0F\u6CA1\u5199\u5168\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
271
273
  readonly "panels.market.empty": "\u6682\u65E0\u53EF\u7528\u6A21\u5757";
272
- readonly "panels.market.installedSection": "\u5DF2\u88C5";
274
+ readonly "panels.market.installedSection": "\u5DF2\u5B89\u88C5";
275
+ readonly "panels.market.sectionLocal": "\u672C\u5730\u88C5\u7684";
276
+ readonly "panels.market.sectionUnlisted": "\u4E0D\u662F\u4ECE\u5E02\u573A\u88C5\u7684";
273
277
  readonly "panels.market.moduleOutdated": "\u6709\u65B0\u7248";
274
278
  readonly "panels.market.moduleRestartHint": "\u88C5\u597D\u4E86\u4F46\u8FD8\u6CA1\u751F\u6548 \u2014\u2014 \u91CD\u542F\u4E00\u6B21 dsh \u5C31\u4F1A\u51FA\u6765";
275
279
  readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
@@ -478,13 +482,14 @@ export declare const kit: {
478
482
  readonly "rightbar.refreshing": "\u5237\u65B0\u4E2D\u2026";
479
483
  readonly "rightbar.updatedAt": "\u66F4\u65B0\u4E8E {time}";
480
484
  readonly "rightbar.noProject": "\u5F53\u524D\u4F1A\u8BDD\u6CA1\u6709\u6240\u5C5E\u9879\u76EE";
485
+ readonly "rightbar.openPlatform": "\u5728\u5E73\u53F0\u4E0A\u6253\u5F00";
481
486
  readonly "coding.notARepo.title": "\u8FD9\u4E2A\u9879\u76EE\u4E0D\u662F Coding \u4ED3\u5E93";
482
487
  readonly "error.unknown": "\u51FA\u9519\u4E86";
483
488
  readonly "board.title": "\u5DE5\u4F5C\u53F0\u9762\u677F";
484
489
  readonly "panel.conversation": "\u5BF9\u8BDD";
485
490
  readonly "panels.label": "\u5168\u5C40\u9762\u677F";
486
491
  };
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>;
492
+ 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.sectionLocal" | "panels.market.sectionUnlisted" | "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" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
488
493
  };
489
494
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
490
495
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -549,7 +554,7 @@ export declare const kit: {
549
554
  readonly "panels.browseMarket": "\u6D4F\u89C8\u6A21\u5757\u5E02\u573A";
550
555
  readonly "panels.noneInstalled": "\u8FD9\u4E9B\u6A21\u5757\u8981\u7684\u63D2\u4EF6\u90FD\u8FD8\u6CA1\u88C5";
551
556
  readonly "panels.noneInstalledHint": "\u88C5\u597D\u4E4B\u540E\u5B83\u4EEC\u4F1A\u56DE\u5230\u8FD9\u91CC\uFF0C\u518D\u7531\u4F60\u51B3\u5B9A\u653E\u54EA\u51E0\u4E2A\u4E0A\u677F\u3002";
552
- readonly "panels.market.installed": "\u5DF2\u88C5";
557
+ readonly "panels.market.installed": "\u5DF2\u5B89\u88C5";
553
558
  readonly "panels.market.outdated": "\u8981\u66F4\u65B0";
554
559
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
555
560
  readonly "panels.market.missing": "\u672A\u88C5";
@@ -583,7 +588,9 @@ export declare const kit: {
583
588
  readonly "panels.market.noSource": "\u8FD9\u4E2A\u6A21\u5757\u6CA1\u58F0\u660E\u600E\u4E48\u88C5\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
584
589
  readonly "panels.market.badSource": "\u5B89\u88C5\u65B9\u5F0F\u6CA1\u5199\u5168\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
585
590
  readonly "panels.market.empty": "\u6682\u65E0\u53EF\u7528\u6A21\u5757";
586
- readonly "panels.market.installedSection": "\u5DF2\u88C5";
591
+ readonly "panels.market.installedSection": "\u5DF2\u5B89\u88C5";
592
+ readonly "panels.market.sectionLocal": "\u672C\u5730\u88C5\u7684";
593
+ readonly "panels.market.sectionUnlisted": "\u4E0D\u662F\u4ECE\u5E02\u573A\u88C5\u7684";
587
594
  readonly "panels.market.moduleOutdated": "\u6709\u65B0\u7248";
588
595
  readonly "panels.market.moduleRestartHint": "\u88C5\u597D\u4E86\u4F46\u8FD8\u6CA1\u751F\u6548 \u2014\u2014 \u91CD\u542F\u4E00\u6B21 dsh \u5C31\u4F1A\u51FA\u6765";
589
596
  readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
@@ -792,6 +799,7 @@ export declare const kit: {
792
799
  readonly "rightbar.refreshing": "\u5237\u65B0\u4E2D\u2026";
793
800
  readonly "rightbar.updatedAt": "\u66F4\u65B0\u4E8E {time}";
794
801
  readonly "rightbar.noProject": "\u5F53\u524D\u4F1A\u8BDD\u6CA1\u6709\u6240\u5C5E\u9879\u76EE";
802
+ readonly "rightbar.openPlatform": "\u5728\u5E73\u53F0\u4E0A\u6253\u5F00";
795
803
  readonly "coding.notARepo.title": "\u8FD9\u4E2A\u9879\u76EE\u4E0D\u662F Coding \u4ED3\u5E93";
796
804
  readonly "error.unknown": "\u51FA\u9519\u4E86";
797
805
  readonly "board.title": "\u5DE5\u4F5C\u53F0\u9762\u677F";
@@ -904,6 +912,8 @@ export declare const kit: {
904
912
  Stack({ children }: apiModule.StackProps): JSX.Element;
905
913
  StateBlock({ title, dot, hint, actions, resolving, children }: apiModule.StateBlockProps): JSX.Element;
906
914
  TextField({ invalid, className, ...rest }: apiModule.TextFieldProps): JSX.Element;
915
+ Field({ label, hint, children }: apiModule.FieldProps): JSX.Element;
916
+ Link({ href, children, title, external, className }: apiModule.LinkProps): JSX.Element;
907
917
  IconConversation({ size }: apiModule.IconProps): JSX.Element;
908
918
  IconBrandMark({ size }: apiModule.IconProps): JSX.Element;
909
919
  IconModules({ size }: apiModule.IconProps): JSX.Element;
@@ -1004,7 +1014,7 @@ export declare const kit: {
1004
1014
  readonly "panels.browseMarket": "\u6D4F\u89C8\u6A21\u5757\u5E02\u573A";
1005
1015
  readonly "panels.noneInstalled": "\u8FD9\u4E9B\u6A21\u5757\u8981\u7684\u63D2\u4EF6\u90FD\u8FD8\u6CA1\u88C5";
1006
1016
  readonly "panels.noneInstalledHint": "\u88C5\u597D\u4E4B\u540E\u5B83\u4EEC\u4F1A\u56DE\u5230\u8FD9\u91CC\uFF0C\u518D\u7531\u4F60\u51B3\u5B9A\u653E\u54EA\u51E0\u4E2A\u4E0A\u677F\u3002";
1007
- readonly "panels.market.installed": "\u5DF2\u88C5";
1017
+ readonly "panels.market.installed": "\u5DF2\u5B89\u88C5";
1008
1018
  readonly "panels.market.outdated": "\u8981\u66F4\u65B0";
1009
1019
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
1010
1020
  readonly "panels.market.missing": "\u672A\u88C5";
@@ -1038,7 +1048,9 @@ export declare const kit: {
1038
1048
  readonly "panels.market.noSource": "\u8FD9\u4E2A\u6A21\u5757\u6CA1\u58F0\u660E\u600E\u4E48\u88C5\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
1039
1049
  readonly "panels.market.badSource": "\u5B89\u88C5\u65B9\u5F0F\u6CA1\u5199\u5168\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
1040
1050
  readonly "panels.market.empty": "\u6682\u65E0\u53EF\u7528\u6A21\u5757";
1041
- readonly "panels.market.installedSection": "\u5DF2\u88C5";
1051
+ readonly "panels.market.installedSection": "\u5DF2\u5B89\u88C5";
1052
+ readonly "panels.market.sectionLocal": "\u672C\u5730\u88C5\u7684";
1053
+ readonly "panels.market.sectionUnlisted": "\u4E0D\u662F\u4ECE\u5E02\u573A\u88C5\u7684";
1042
1054
  readonly "panels.market.moduleOutdated": "\u6709\u65B0\u7248";
1043
1055
  readonly "panels.market.moduleRestartHint": "\u88C5\u597D\u4E86\u4F46\u8FD8\u6CA1\u751F\u6548 \u2014\u2014 \u91CD\u542F\u4E00\u6B21 dsh \u5C31\u4F1A\u51FA\u6765";
1044
1056
  readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
@@ -1247,13 +1259,14 @@ export declare const kit: {
1247
1259
  readonly "rightbar.refreshing": "\u5237\u65B0\u4E2D\u2026";
1248
1260
  readonly "rightbar.updatedAt": "\u66F4\u65B0\u4E8E {time}";
1249
1261
  readonly "rightbar.noProject": "\u5F53\u524D\u4F1A\u8BDD\u6CA1\u6709\u6240\u5C5E\u9879\u76EE";
1262
+ readonly "rightbar.openPlatform": "\u5728\u5E73\u53F0\u4E0A\u6253\u5F00";
1250
1263
  readonly "coding.notARepo.title": "\u8FD9\u4E2A\u9879\u76EE\u4E0D\u662F Coding \u4ED3\u5E93";
1251
1264
  readonly "error.unknown": "\u51FA\u9519\u4E86";
1252
1265
  readonly "board.title": "\u5DE5\u4F5C\u53F0\u9762\u677F";
1253
1266
  readonly "panel.conversation": "\u5BF9\u8BDD";
1254
1267
  readonly "panels.label": "\u5168\u5C40\u9762\u677F";
1255
1268
  };
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>;
1269
+ 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.sectionLocal" | "panels.market.sectionUnlisted" | "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" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
1257
1270
  };
1258
1271
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
1259
1272
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -1318,7 +1331,7 @@ export declare const kit: {
1318
1331
  readonly "panels.browseMarket": "\u6D4F\u89C8\u6A21\u5757\u5E02\u573A";
1319
1332
  readonly "panels.noneInstalled": "\u8FD9\u4E9B\u6A21\u5757\u8981\u7684\u63D2\u4EF6\u90FD\u8FD8\u6CA1\u88C5";
1320
1333
  readonly "panels.noneInstalledHint": "\u88C5\u597D\u4E4B\u540E\u5B83\u4EEC\u4F1A\u56DE\u5230\u8FD9\u91CC\uFF0C\u518D\u7531\u4F60\u51B3\u5B9A\u653E\u54EA\u51E0\u4E2A\u4E0A\u677F\u3002";
1321
- readonly "panels.market.installed": "\u5DF2\u88C5";
1334
+ readonly "panels.market.installed": "\u5DF2\u5B89\u88C5";
1322
1335
  readonly "panels.market.outdated": "\u8981\u66F4\u65B0";
1323
1336
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
1324
1337
  readonly "panels.market.missing": "\u672A\u88C5";
@@ -1352,7 +1365,9 @@ export declare const kit: {
1352
1365
  readonly "panels.market.noSource": "\u8FD9\u4E2A\u6A21\u5757\u6CA1\u58F0\u660E\u600E\u4E48\u88C5\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
1353
1366
  readonly "panels.market.badSource": "\u5B89\u88C5\u65B9\u5F0F\u6CA1\u5199\u5168\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
1354
1367
  readonly "panels.market.empty": "\u6682\u65E0\u53EF\u7528\u6A21\u5757";
1355
- readonly "panels.market.installedSection": "\u5DF2\u88C5";
1368
+ readonly "panels.market.installedSection": "\u5DF2\u5B89\u88C5";
1369
+ readonly "panels.market.sectionLocal": "\u672C\u5730\u88C5\u7684";
1370
+ readonly "panels.market.sectionUnlisted": "\u4E0D\u662F\u4ECE\u5E02\u573A\u88C5\u7684";
1356
1371
  readonly "panels.market.moduleOutdated": "\u6709\u65B0\u7248";
1357
1372
  readonly "panels.market.moduleRestartHint": "\u88C5\u597D\u4E86\u4F46\u8FD8\u6CA1\u751F\u6548 \u2014\u2014 \u91CD\u542F\u4E00\u6B21 dsh \u5C31\u4F1A\u51FA\u6765";
1358
1373
  readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
@@ -1561,6 +1576,7 @@ export declare const kit: {
1561
1576
  readonly "rightbar.refreshing": "\u5237\u65B0\u4E2D\u2026";
1562
1577
  readonly "rightbar.updatedAt": "\u66F4\u65B0\u4E8E {time}";
1563
1578
  readonly "rightbar.noProject": "\u5F53\u524D\u4F1A\u8BDD\u6CA1\u6709\u6240\u5C5E\u9879\u76EE";
1579
+ readonly "rightbar.openPlatform": "\u5728\u5E73\u53F0\u4E0A\u6253\u5F00";
1564
1580
  readonly "coding.notARepo.title": "\u8FD9\u4E2A\u9879\u76EE\u4E0D\u662F Coding \u4ED3\u5E93";
1565
1581
  readonly "error.unknown": "\u51FA\u9519\u4E86";
1566
1582
  readonly "board.title": "\u5DE5\u4F5C\u53F0\u9762\u677F";
@@ -1668,6 +1684,8 @@ export declare const kit: {
1668
1684
  Stack({ children }: apiModule.StackProps): JSX.Element;
1669
1685
  StateBlock({ title, dot, hint, actions, resolving, children }: apiModule.StateBlockProps): JSX.Element;
1670
1686
  TextField({ invalid, className, ...rest }: apiModule.TextFieldProps): JSX.Element;
1687
+ Field({ label, hint, children }: apiModule.FieldProps): JSX.Element;
1688
+ Link({ href, children, title, external, className }: apiModule.LinkProps): JSX.Element;
1671
1689
  IconConversation({ size }: apiModule.IconProps): JSX.Element;
1672
1690
  IconBrandMark({ size }: apiModule.IconProps): JSX.Element;
1673
1691
  IconModules({ size }: apiModule.IconProps): JSX.Element;
@@ -1768,7 +1786,7 @@ export declare const kit: {
1768
1786
  readonly "panels.browseMarket": "\u6D4F\u89C8\u6A21\u5757\u5E02\u573A";
1769
1787
  readonly "panels.noneInstalled": "\u8FD9\u4E9B\u6A21\u5757\u8981\u7684\u63D2\u4EF6\u90FD\u8FD8\u6CA1\u88C5";
1770
1788
  readonly "panels.noneInstalledHint": "\u88C5\u597D\u4E4B\u540E\u5B83\u4EEC\u4F1A\u56DE\u5230\u8FD9\u91CC\uFF0C\u518D\u7531\u4F60\u51B3\u5B9A\u653E\u54EA\u51E0\u4E2A\u4E0A\u677F\u3002";
1771
- readonly "panels.market.installed": "\u5DF2\u88C5";
1789
+ readonly "panels.market.installed": "\u5DF2\u5B89\u88C5";
1772
1790
  readonly "panels.market.outdated": "\u8981\u66F4\u65B0";
1773
1791
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
1774
1792
  readonly "panels.market.missing": "\u672A\u88C5";
@@ -1802,7 +1820,9 @@ export declare const kit: {
1802
1820
  readonly "panels.market.noSource": "\u8FD9\u4E2A\u6A21\u5757\u6CA1\u58F0\u660E\u600E\u4E48\u88C5\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
1803
1821
  readonly "panels.market.badSource": "\u5B89\u88C5\u65B9\u5F0F\u6CA1\u5199\u5168\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
1804
1822
  readonly "panels.market.empty": "\u6682\u65E0\u53EF\u7528\u6A21\u5757";
1805
- readonly "panels.market.installedSection": "\u5DF2\u88C5";
1823
+ readonly "panels.market.installedSection": "\u5DF2\u5B89\u88C5";
1824
+ readonly "panels.market.sectionLocal": "\u672C\u5730\u88C5\u7684";
1825
+ readonly "panels.market.sectionUnlisted": "\u4E0D\u662F\u4ECE\u5E02\u573A\u88C5\u7684";
1806
1826
  readonly "panels.market.moduleOutdated": "\u6709\u65B0\u7248";
1807
1827
  readonly "panels.market.moduleRestartHint": "\u88C5\u597D\u4E86\u4F46\u8FD8\u6CA1\u751F\u6548 \u2014\u2014 \u91CD\u542F\u4E00\u6B21 dsh \u5C31\u4F1A\u51FA\u6765";
1808
1828
  readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
@@ -2011,13 +2031,14 @@ export declare const kit: {
2011
2031
  readonly "rightbar.refreshing": "\u5237\u65B0\u4E2D\u2026";
2012
2032
  readonly "rightbar.updatedAt": "\u66F4\u65B0\u4E8E {time}";
2013
2033
  readonly "rightbar.noProject": "\u5F53\u524D\u4F1A\u8BDD\u6CA1\u6709\u6240\u5C5E\u9879\u76EE";
2034
+ readonly "rightbar.openPlatform": "\u5728\u5E73\u53F0\u4E0A\u6253\u5F00";
2014
2035
  readonly "coding.notARepo.title": "\u8FD9\u4E2A\u9879\u76EE\u4E0D\u662F Coding \u4ED3\u5E93";
2015
2036
  readonly "error.unknown": "\u51FA\u9519\u4E86";
2016
2037
  readonly "board.title": "\u5DE5\u4F5C\u53F0\u9762\u677F";
2017
2038
  readonly "panel.conversation": "\u5BF9\u8BDD";
2018
2039
  readonly "panels.label": "\u5168\u5C40\u9762\u677F";
2019
2040
  };
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>;
2041
+ 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.sectionLocal" | "panels.market.sectionUnlisted" | "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" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label", string>;
2021
2042
  };
2022
2043
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
2023
2044
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -2082,7 +2103,7 @@ export declare const kit: {
2082
2103
  readonly "panels.browseMarket": "\u6D4F\u89C8\u6A21\u5757\u5E02\u573A";
2083
2104
  readonly "panels.noneInstalled": "\u8FD9\u4E9B\u6A21\u5757\u8981\u7684\u63D2\u4EF6\u90FD\u8FD8\u6CA1\u88C5";
2084
2105
  readonly "panels.noneInstalledHint": "\u88C5\u597D\u4E4B\u540E\u5B83\u4EEC\u4F1A\u56DE\u5230\u8FD9\u91CC\uFF0C\u518D\u7531\u4F60\u51B3\u5B9A\u653E\u54EA\u51E0\u4E2A\u4E0A\u677F\u3002";
2085
- readonly "panels.market.installed": "\u5DF2\u88C5";
2106
+ readonly "panels.market.installed": "\u5DF2\u5B89\u88C5";
2086
2107
  readonly "panels.market.outdated": "\u8981\u66F4\u65B0";
2087
2108
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
2088
2109
  readonly "panels.market.missing": "\u672A\u88C5";
@@ -2116,7 +2137,9 @@ export declare const kit: {
2116
2137
  readonly "panels.market.noSource": "\u8FD9\u4E2A\u6A21\u5757\u6CA1\u58F0\u660E\u600E\u4E48\u88C5\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
2117
2138
  readonly "panels.market.badSource": "\u5B89\u88C5\u65B9\u5F0F\u6CA1\u5199\u5168\uFF0C\u53EA\u80FD\u81EA\u5DF1\u52A8\u624B";
2118
2139
  readonly "panels.market.empty": "\u6682\u65E0\u53EF\u7528\u6A21\u5757";
2119
- readonly "panels.market.installedSection": "\u5DF2\u88C5";
2140
+ readonly "panels.market.installedSection": "\u5DF2\u5B89\u88C5";
2141
+ readonly "panels.market.sectionLocal": "\u672C\u5730\u88C5\u7684";
2142
+ readonly "panels.market.sectionUnlisted": "\u4E0D\u662F\u4ECE\u5E02\u573A\u88C5\u7684";
2120
2143
  readonly "panels.market.moduleOutdated": "\u6709\u65B0\u7248";
2121
2144
  readonly "panels.market.moduleRestartHint": "\u88C5\u597D\u4E86\u4F46\u8FD8\u6CA1\u751F\u6548 \u2014\u2014 \u91CD\u542F\u4E00\u6B21 dsh \u5C31\u4F1A\u51FA\u6765";
2122
2145
  readonly "panels.market.restartNeeded": "\u65B0\u7248\u88C5\u597D\u4E86\uFF0C\u91CD\u542F\u4E00\u6B21\u624D\u751F\u6548\u3002";
@@ -2325,6 +2348,7 @@ export declare const kit: {
2325
2348
  readonly "rightbar.refreshing": "\u5237\u65B0\u4E2D\u2026";
2326
2349
  readonly "rightbar.updatedAt": "\u66F4\u65B0\u4E8E {time}";
2327
2350
  readonly "rightbar.noProject": "\u5F53\u524D\u4F1A\u8BDD\u6CA1\u6709\u6240\u5C5E\u9879\u76EE";
2351
+ readonly "rightbar.openPlatform": "\u5728\u5E73\u53F0\u4E0A\u6253\u5F00";
2328
2352
  readonly "coding.notARepo.title": "\u8FD9\u4E2A\u9879\u76EE\u4E0D\u662F Coding \u4ED3\u5E93";
2329
2353
  readonly "error.unknown": "\u51FA\u9519\u4E86";
2330
2354
  readonly "board.title": "\u5DE5\u4F5C\u53F0\u9762\u677F";
@@ -0,0 +1,8 @@
1
+ export declare const BOARD_COLUMN_MIN_WIDTH = 332;
2
+ export declare const BOARD_COLUMN_GAP = 12;
3
+ export declare const BOARD_PANEL_PADDING = 12;
4
+ export declare const BOARD_COLUMNS_AT: number;
5
+ export declare function boardFitsTwoColumns(panelWidth: number): boolean;
6
+ export type BoardColumns<T> = readonly [readonly T[], readonly T[]];
7
+ export declare function splitBoardColumns<T>(items: readonly T[]): BoardColumns<T>;
8
+ export declare function boardColumnsOf<T>(items: readonly T[], twoColumns: boolean): readonly (readonly T[])[];
@@ -30,12 +30,14 @@ export interface MarketRow {
30
30
  };
31
31
  readonly moduleUpdate?: ModuleUpdate;
32
32
  readonly pkg?: string;
33
+ readonly local?: boolean;
33
34
  }
34
35
  export interface InstalledWorkbenchModule {
35
36
  readonly unit: string;
36
37
  readonly pkg: string;
37
38
  readonly installed: string;
38
39
  readonly latest?: string | undefined;
40
+ readonly local?: boolean | undefined;
39
41
  }
40
42
  export declare function mergeTitles(known: ReadonlyMap<string, string>, manifests: readonly UnitManifest[]): ReadonlyMap<string, string>;
41
43
  export declare function installedRows(modules: readonly InstalledWorkbenchModule[], manifests: readonly UnitManifest[], listed: ReadonlySet<string>, known?: ReadonlyMap<string, string> | undefined): MarketRow[];
@@ -0,0 +1,2 @@
1
+ export declare const STYLE_MARKER = "data-dsh-workbench";
2
+ export declare function installWorkbenchStyles(css: string, doc?: Pick<Document, 'head' | 'querySelector' | 'createElement'>): void;
@@ -0,0 +1,51 @@
1
+ import type { UnitManifest } from '@dsh-workbench/shared';
2
+ import type { BundleInstallOutcome } from '../model/market';
3
+ import { panelsUnit } from '../unit';
4
+ export type Application = 'applied' | 'restart-required' | 'overridden' | 'cancelled' | 'failed';
5
+ export interface ProbeStep {
6
+ readonly stdout?: string;
7
+ readonly stderr?: string;
8
+ readonly exitCode?: number;
9
+ readonly timedOut?: boolean;
10
+ }
11
+ export declare const demoUnit: UnitManifest;
12
+ export { panelsUnit };
13
+ export declare function createDiyRig(): {
14
+ root: () => string;
15
+ WORKSHOP: () => string;
16
+ PACKAGES: () => string;
17
+ PROFILE: () => string;
18
+ writeManifest: (at: string, manifest: unknown) => void;
19
+ scaffold: (unit: string, description?: string) => string;
20
+ markInstalled: (pkg: string, at: string) => void;
21
+ outcomeOf: (application: Application) => BundleInstallOutcome;
22
+ diyExec: () => unknown;
23
+ NORMAL_EXEC: {
24
+ agent: {
25
+ session: {
26
+ header: {
27
+ cwd: string;
28
+ };
29
+ };
30
+ };
31
+ };
32
+ fakeShell: (plan: readonly ProbeStep[]) => {
33
+ shell: never;
34
+ commands: string[];
35
+ };
36
+ harness: (options?: {
37
+ manifests?: UnitManifest[];
38
+ outcome?: BundleInstallOutcome;
39
+ withTools?: boolean;
40
+ probe?: readonly ProbeStep[];
41
+ }) => {
42
+ specs: string[];
43
+ registered: {
44
+ name: string;
45
+ execute: (args: unknown, exec?: unknown) => Promise<unknown>;
46
+ }[];
47
+ panels: import("../model/service").PanelsService;
48
+ disposers: (() => void)[];
49
+ commands: string[];
50
+ };
51
+ };
@@ -0,0 +1,4 @@
1
+ import type { DshHostContext } from '@dsh-workbench/shared';
2
+ import type { MarketService } from './market';
3
+ import type { PanelsService } from './service';
4
+ export declare function registerDiyTools(ctx: DshHostContext, market: MarketService, panels: PanelsService): Array<() => void>;
@@ -1,4 +1,5 @@
1
1
  import type { UnitManifest } from '@dsh-workbench/shared';
2
2
  export declare const PANELS_TOOL = "workbench_panels";
3
3
  export declare const MODULES_TOOL = "workbench_modules";
4
+ export declare const DIY_TOOL = "workbench_diy";
4
5
  export declare const panelsUnit: UnitManifest;
@@ -91,6 +91,7 @@ export interface ModuleVersion {
91
91
  readonly pkg: string;
92
92
  readonly installed: string;
93
93
  readonly latest?: string;
94
+ readonly local?: boolean;
94
95
  }
95
96
  export interface ModuleVersionsPayload {
96
97
  readonly modules: readonly ModuleVersion[];
@@ -0,0 +1,9 @@
1
+ export interface ModuleBuildFacts {
2
+ readonly artifacts: readonly {
3
+ readonly path: string;
4
+ readonly at: string | null;
5
+ }[];
6
+ readonly builtAll: boolean;
7
+ readonly stale: boolean;
8
+ }
9
+ export declare function moduleBuildFacts(dir: string): ModuleBuildFacts;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { type ReconCommand, type ReconPlugin } from './diy-recon';
2
+ export declare function reconCatalogOf(path?: string): readonly ReconCommand[] | undefined;
3
+ export declare function installedPluginsOf(dir?: string): readonly ReconPlugin[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ export interface ReconCommand {
2
+ readonly command: string;
3
+ readonly site: string;
4
+ readonly name: string;
5
+ readonly domain: string;
6
+ readonly description: string;
7
+ readonly access: string;
8
+ readonly strategy: string;
9
+ readonly browser: boolean;
10
+ readonly example: string;
11
+ readonly columns: readonly string[];
12
+ }
13
+ export interface ReconSite {
14
+ readonly site: string;
15
+ readonly domain: string;
16
+ readonly strategy: string;
17
+ readonly browser: boolean;
18
+ readonly commands: readonly ReconCommand[];
19
+ }
20
+ export interface ReconPlugin {
21
+ readonly name: string;
22
+ readonly commands: readonly string[];
23
+ }
24
+ export interface ReconAnswer {
25
+ readonly keyword: string;
26
+ readonly sites: readonly ReconSite[];
27
+ readonly plugins: readonly ReconPlugin[];
28
+ readonly next: string;
29
+ readonly text: string;
30
+ }
31
+ export declare function manifestCommandsOf(raw: string): readonly ReconCommand[];
32
+ export declare function pluginNamesOf(entries: readonly string[]): readonly string[];
33
+ export declare function pluginCommandsOf(files: readonly string[]): readonly string[];
34
+ export declare function hostOf(url: string): string;
35
+ export declare function keywordsOf(keyword: string, url: string): readonly string[];
36
+ export declare function scoreOf(command: ReconCommand, word: string): number;
37
+ export declare function reconOf(commands: readonly ReconCommand[], plugins: readonly ReconPlugin[], keywords: readonly string[]): ReconAnswer;
38
+ export declare function nextOf(answer: ReconAnswer): string;
39
+ export declare function textOf(answer: ReconAnswer): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { DshHostContext } from '@dsh-workbench/shared';
2
+ export interface WorkshopModule {
3
+ readonly unit: string;
4
+ readonly name: string;
5
+ readonly description: string;
6
+ readonly dir: string;
7
+ readonly installed: boolean;
8
+ }
9
+ export declare function workshopPackagesDir(ctx: DshHostContext): string | null;
10
+ export declare function insideWorkshop(root: string, target: string): boolean;
11
+ export declare function workshopModules(packagesDir: string, installed?: readonly string[]): readonly WorkshopModule[];
12
+ export declare function inWorkshopSession(ctx: DshHostContext, workspace: string | null): boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -5,6 +5,7 @@ export type InstalledModule = {
5
5
  readonly unit: string;
6
6
  readonly version: string;
7
7
  readonly registry?: string;
8
+ readonly local?: boolean;
8
9
  } | {
9
10
  readonly kind: 'not-module';
10
11
  readonly pkg: string;
@@ -19,6 +20,7 @@ export interface ProfileModule {
19
20
  readonly unit: string;
20
21
  readonly version: string;
21
22
  readonly registry?: string;
23
+ readonly local?: boolean;
22
24
  }
23
25
  export declare function profileModules(profileDir: string | null): readonly ProfileModule[];
24
26
  export declare function readInstalledModule(profileDir: string | null, pkg: string): InstalledModule;
@@ -0,0 +1,10 @@
1
+ import type { DshHostContext } from '@dsh-workbench/shared';
2
+ export type OpencliSource = 'env' | 'isolated' | 'path';
3
+ export interface OpencliResolution {
4
+ readonly command: string;
5
+ readonly source: OpencliSource;
6
+ readonly isolated: string | null;
7
+ }
8
+ export declare const OPENCLI_PATH_FALLBACK = "opencli";
9
+ export declare function isolatedOpencliPathOf(ctx: DshHostContext): string | null;
10
+ export declare function opencliCommandOf(ctx: DshHostContext): OpencliResolution;