@dsh-workbench/core 0.3.2 → 0.3.4

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 (68) hide show
  1. package/client.js +689 -149
  2. package/cordis.patch.yml +32 -0
  3. package/dist/client/client.body.js +689 -149
  4. package/dist/client/index.js +689 -149
  5. package/dist/host/index.js +3638 -2104
  6. package/dist/types/app/client.d.ts +120 -3
  7. package/dist/types/app/layouts/approval-detail.d.ts +13 -0
  8. package/dist/types/app/layouts/panel-hint.d.ts +3 -0
  9. package/dist/types/app/layouts/rightbar/market-hint.d.ts +16 -0
  10. package/dist/types/app/layouts/rightbar/market-rows.d.ts +2 -3
  11. package/dist/types/app/layouts/sidebar/RecordFooterAction.d.ts +16 -0
  12. package/dist/types/app/layouts/sidebar/record-footer.d.ts +4 -0
  13. package/dist/types/modules/panels/client.d.ts +1 -0
  14. package/dist/types/modules/panels/model/diy-browser-act.d.ts +2 -39
  15. package/dist/types/modules/panels/model/diy-browser-tools.d.ts +39 -0
  16. package/dist/types/modules/panels/model/diy-browser.d.ts +1 -14
  17. package/dist/types/modules/panels/model/diy-components.d.ts +3 -0
  18. package/dist/types/modules/panels/model/diy-components.test.d.ts +1 -0
  19. package/dist/types/modules/panels/model/diy-observers.d.ts +11 -0
  20. package/dist/types/modules/panels/model/diy-observers.test.d.ts +1 -0
  21. package/dist/types/modules/panels/model/diy-page.d.ts +1 -0
  22. package/dist/types/modules/panels/model/diy-record-bar.test.d.ts +1 -0
  23. package/dist/types/modules/panels/model/diy-record-capture.d.ts +27 -0
  24. package/dist/types/modules/panels/model/diy-record-capture.test.d.ts +1 -0
  25. package/dist/types/modules/panels/model/diy-record-failure.test.d.ts +1 -0
  26. package/dist/types/modules/panels/model/diy-record-routes.d.ts +2 -0
  27. package/dist/types/modules/panels/model/diy-record-routes.test.d.ts +1 -0
  28. package/dist/types/modules/panels/model/diy-record-scripts.d.ts +6 -0
  29. package/dist/types/modules/panels/model/diy-record-text.d.ts +89 -0
  30. package/dist/types/modules/panels/model/diy-record-text.test.d.ts +1 -0
  31. package/dist/types/modules/panels/model/diy-record-tools.d.ts +2 -0
  32. package/dist/types/modules/panels/model/diy-record.d.ts +76 -0
  33. package/dist/types/modules/panels/model/diy-record.test.d.ts +1 -0
  34. package/dist/types/modules/panels/model/diy-scripts.d.ts +0 -63
  35. package/dist/types/modules/panels/model/diy-spec.d.ts +5 -0
  36. package/dist/types/modules/panels/model/diy-spec.test.d.ts +1 -0
  37. package/dist/types/modules/panels/model/handoff.d.ts +1 -0
  38. package/dist/types/modules/panels/unit.d.ts +20 -12
  39. package/dist/types/shared/api/host/diy-acts.d.ts +4 -0
  40. package/dist/types/shared/api/host/diy-components.d.ts +54 -0
  41. package/dist/types/shared/api/host/diy-debug-act.d.ts +24 -7
  42. package/dist/types/shared/api/host/diy-recon.d.ts +10 -0
  43. package/dist/types/shared/api/host/diy-record-act.d.ts +19 -0
  44. package/dist/types/shared/api/host/diy-workshop.d.ts +1 -0
  45. package/dist/types/shared/api/host/mount-units.d.ts +4 -0
  46. package/dist/types/shared/hooks/use-diy-record.d.ts +8 -0
  47. package/package.json +3 -3
  48. package/scripts/seed-workshop.sh +42 -2
  49. package/skills/workbench-module-diy/BUILD.md +39 -17
  50. package/skills/workbench-module-diy/DATASOURCE.md +4 -1
  51. package/skills/workbench-module-diy/DESIGN.md +40 -8
  52. package/skills/workbench-module-diy/FAMILY.md +55 -0
  53. package/skills/workbench-module-diy/HOOKS.md +95 -0
  54. package/skills/workbench-module-diy/KIT.md +18 -6
  55. package/skills/workbench-module-diy/PANEL.md +9 -5
  56. package/skills/workbench-module-diy/REVIEW.md +117 -49
  57. package/skills/workbench-module-diy/SKILL.md +42 -9
  58. package/skills/workbench-module-diy/STEPS.md +1 -1
  59. package/skills/workbench-module-diy/TOOLING.md +10 -4
  60. package/skills/workbench-module-diy/TOOLS.md +56 -204
  61. package/skills/workbench-module-diy/WIRING.md +17 -8
  62. package/skills/workbench-module-diy/WRITES.md +131 -0
  63. package/dist/types/modules/panels/model/diy-act.d.ts +0 -4
  64. package/dist/types/modules/panels/model/diy-look.d.ts +0 -15
  65. package/dist/types/modules/panels/model/diy-net.d.ts +0 -3
  66. /package/dist/types/modules/panels/model/{diy-act.test.d.ts → diy-browser-act.test.d.ts} +0 -0
  67. /package/dist/types/modules/panels/model/{diy-look.test.d.ts → diy-browser-tools-shot.test.d.ts} +0 -0
  68. /package/dist/types/modules/panels/model/{diy-net.test.d.ts → diy-browser-tools.test.d.ts} +0 -0
@@ -158,6 +158,8 @@ export declare const kit: {
158
158
  PANEL_STATE_PATH: "panel-state";
159
159
  DIY_DEBUG_PATH: "diy-debug";
160
160
  DIY_DEBUG_ACT_PATH: "diy-debug/act";
161
+ DIY_RECORD_PATH: "diy-record";
162
+ DIY_RECORD_ACT_PATH: "diy-record/act";
161
163
  PANEL_STATE_PREFIX: "/workbench/api/panel-state";
162
164
  OPENCLI_PIN: "1.8.8";
163
165
  CODING_ISSUES_SERVICE: "workbenchCodingIssues";
@@ -165,6 +167,7 @@ export declare const kit: {
165
167
  UNITS_SERVICE: "workbenchUnits";
166
168
  PANEL_STATE_SERVICE: "workbenchPanelState";
167
169
  DIY_DEBUG_SERVICE: "workbenchDiyDebug";
170
+ DIY_RECORD_SERVICE: "workbenchDiyRecord";
168
171
  PANEL_LIST_LIMIT: 50;
169
172
  OPENCLI_TIMEOUT_MS: 120000;
170
173
  OPENCLI_MAX_CONCURRENT: 4;
@@ -278,6 +281,7 @@ export declare const kit: {
278
281
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
279
282
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
280
283
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
284
+ readonly "panels.hintJoin": "\uFF1B";
281
285
  readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
282
286
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
283
287
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
@@ -292,6 +296,7 @@ export declare const kit: {
292
296
  readonly "panels.market.notUsable": "\u4E0D\u53EF\u7528";
293
297
  readonly "panels.market.broken": "\u88C5\u574F\u4E86";
294
298
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
299
+ readonly "panels.market.hasProblem": "\u6A21\u5757\u5F02\u5E38";
295
300
  readonly "panels.market.missing": "\u672A\u88C5";
296
301
  readonly "panels.market.unchecked": "\u72B6\u6001\u672A\u77E5";
297
302
  readonly "panels.market.checking": "\u68C0\u6D4B\u4E2D";
@@ -613,8 +618,22 @@ export declare const kit: {
613
618
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
614
619
  readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
615
620
  readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
621
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
622
+ readonly "record.waiting.note": "\u8BF7\u5728\u90A3\u4E00\u9875\u6309\u300C\u5F00\u59CB\u5F55\u5236\u300D\uFF0C\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF08\u5F55\u5B8C\u4E0D\u66FF\u4F60\u5207\u56DE\u6765\uFF09";
623
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
624
+ readonly "record.recording.note": "\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF1B\u6D6E\u6761\u6CA1\u4E86\u6309\u300C\u505C\u300D\uFF0C\u8BA9 agent \u5148\u53D6\u518D\u6536";
625
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
626
+ readonly "record.finished.note": "\u8FD9\u4E00\u6BB5\u5F55\u5B8C\u4E86 \u2014\u2014 agent \u4F1A\u81EA\u5DF1\u6765\u53D6\u5E76\u6536\u5DE5\uFF0C\u4E0D\u7528\u4F60\u70B9";
627
+ readonly "record.act.cancel": "\u53D6\u6D88";
628
+ readonly "record.act.halt": "\u505C";
629
+ readonly "approval.record.site": "\u7AD9\u70B9";
630
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
631
+ readonly "approval.record.lands": "\u843D\u70B9";
632
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
633
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
634
+ readonly "approval.record.noSwitch": "\u5F55\u5B8C\u4E0D\u4F1A\u66FF\u4F60\u5207\u56DE\u6765\uFF08\u5DE6\u680F\u5E95\u90E8\u4F1A\u4EAE\u4E00\u6761\u72B6\u6001\uFF09";
616
635
  };
617
- en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.title" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "debug.back", string>;
636
+ en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.title" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "debug.back" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch", string>;
618
637
  };
619
638
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
620
639
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -705,6 +724,7 @@ export declare const kit: {
705
724
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
706
725
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
707
726
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
727
+ readonly "panels.hintJoin": "\uFF1B";
708
728
  readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
709
729
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
710
730
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
@@ -719,6 +739,7 @@ export declare const kit: {
719
739
  readonly "panels.market.notUsable": "\u4E0D\u53EF\u7528";
720
740
  readonly "panels.market.broken": "\u88C5\u574F\u4E86";
721
741
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
742
+ readonly "panels.market.hasProblem": "\u6A21\u5757\u5F02\u5E38";
722
743
  readonly "panels.market.missing": "\u672A\u88C5";
723
744
  readonly "panels.market.unchecked": "\u72B6\u6001\u672A\u77E5";
724
745
  readonly "panels.market.checking": "\u68C0\u6D4B\u4E2D";
@@ -1040,6 +1061,20 @@ export declare const kit: {
1040
1061
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
1041
1062
  readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
1042
1063
  readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
1064
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
1065
+ readonly "record.waiting.note": "\u8BF7\u5728\u90A3\u4E00\u9875\u6309\u300C\u5F00\u59CB\u5F55\u5236\u300D\uFF0C\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF08\u5F55\u5B8C\u4E0D\u66FF\u4F60\u5207\u56DE\u6765\uFF09";
1066
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
1067
+ readonly "record.recording.note": "\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF1B\u6D6E\u6761\u6CA1\u4E86\u6309\u300C\u505C\u300D\uFF0C\u8BA9 agent \u5148\u53D6\u518D\u6536";
1068
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
1069
+ readonly "record.finished.note": "\u8FD9\u4E00\u6BB5\u5F55\u5B8C\u4E86 \u2014\u2014 agent \u4F1A\u81EA\u5DF1\u6765\u53D6\u5E76\u6536\u5DE5\uFF0C\u4E0D\u7528\u4F60\u70B9";
1070
+ readonly "record.act.cancel": "\u53D6\u6D88";
1071
+ readonly "record.act.halt": "\u505C";
1072
+ readonly "approval.record.site": "\u7AD9\u70B9";
1073
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
1074
+ readonly "approval.record.lands": "\u843D\u70B9";
1075
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
1076
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
1077
+ readonly "approval.record.noSwitch": "\u5F55\u5B8C\u4E0D\u4F1A\u66FF\u4F60\u5207\u56DE\u6765\uFF08\u5DE6\u680F\u5E95\u90E8\u4F1A\u4EAE\u4E00\u6761\u72B6\u6001\uFF09";
1043
1078
  };
1044
1079
  blockerPending(busy: boolean, running: string | null): boolean;
1045
1080
  blockerActionLabel(action: apiModule.BlockerActionShape, state: apiModule.BlockerLabelState, t: apiModule.BlockerLabelTranslate): string;
@@ -1053,6 +1088,10 @@ export declare const kit: {
1053
1088
  createDebugStore(): apiModule.DebugStore;
1054
1089
  debugOwnerText(state: apiModule.DebugState): string;
1055
1090
  DEBUG_STALE_MS: number;
1091
+ parseRecordIntent(raw: unknown): apiModule.RecordIntent | null;
1092
+ createRecordStore(): apiModule.RecordStore;
1093
+ recordOwnerText(state: apiModule.RecordState): string;
1094
+ RECORD_STALE_MS: number;
1056
1095
  parseCardsReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCardsReport>;
1057
1096
  parseCrashReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCrashReport>;
1058
1097
  createPanelStateStore(): apiModule.PanelStateStore;
@@ -1194,6 +1233,8 @@ export declare const kit: {
1194
1233
  PANEL_STATE_PATH: "panel-state";
1195
1234
  DIY_DEBUG_PATH: "diy-debug";
1196
1235
  DIY_DEBUG_ACT_PATH: "diy-debug/act";
1236
+ DIY_RECORD_PATH: "diy-record";
1237
+ DIY_RECORD_ACT_PATH: "diy-record/act";
1197
1238
  PANEL_STATE_PREFIX: "/workbench/api/panel-state";
1198
1239
  OPENCLI_PIN: "1.8.8";
1199
1240
  CODING_ISSUES_SERVICE: "workbenchCodingIssues";
@@ -1201,6 +1242,7 @@ export declare const kit: {
1201
1242
  UNITS_SERVICE: "workbenchUnits";
1202
1243
  PANEL_STATE_SERVICE: "workbenchPanelState";
1203
1244
  DIY_DEBUG_SERVICE: "workbenchDiyDebug";
1245
+ DIY_RECORD_SERVICE: "workbenchDiyRecord";
1204
1246
  PANEL_LIST_LIMIT: 50;
1205
1247
  OPENCLI_TIMEOUT_MS: 120000;
1206
1248
  OPENCLI_MAX_CONCURRENT: 4;
@@ -1314,6 +1356,7 @@ export declare const kit: {
1314
1356
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
1315
1357
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
1316
1358
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
1359
+ readonly "panels.hintJoin": "\uFF1B";
1317
1360
  readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
1318
1361
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
1319
1362
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
@@ -1328,6 +1371,7 @@ export declare const kit: {
1328
1371
  readonly "panels.market.notUsable": "\u4E0D\u53EF\u7528";
1329
1372
  readonly "panels.market.broken": "\u88C5\u574F\u4E86";
1330
1373
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
1374
+ readonly "panels.market.hasProblem": "\u6A21\u5757\u5F02\u5E38";
1331
1375
  readonly "panels.market.missing": "\u672A\u88C5";
1332
1376
  readonly "panels.market.unchecked": "\u72B6\u6001\u672A\u77E5";
1333
1377
  readonly "panels.market.checking": "\u68C0\u6D4B\u4E2D";
@@ -1649,8 +1693,22 @@ export declare const kit: {
1649
1693
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
1650
1694
  readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
1651
1695
  readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
1696
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
1697
+ readonly "record.waiting.note": "\u8BF7\u5728\u90A3\u4E00\u9875\u6309\u300C\u5F00\u59CB\u5F55\u5236\u300D\uFF0C\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF08\u5F55\u5B8C\u4E0D\u66FF\u4F60\u5207\u56DE\u6765\uFF09";
1698
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
1699
+ readonly "record.recording.note": "\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF1B\u6D6E\u6761\u6CA1\u4E86\u6309\u300C\u505C\u300D\uFF0C\u8BA9 agent \u5148\u53D6\u518D\u6536";
1700
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
1701
+ readonly "record.finished.note": "\u8FD9\u4E00\u6BB5\u5F55\u5B8C\u4E86 \u2014\u2014 agent \u4F1A\u81EA\u5DF1\u6765\u53D6\u5E76\u6536\u5DE5\uFF0C\u4E0D\u7528\u4F60\u70B9";
1702
+ readonly "record.act.cancel": "\u53D6\u6D88";
1703
+ readonly "record.act.halt": "\u505C";
1704
+ readonly "approval.record.site": "\u7AD9\u70B9";
1705
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
1706
+ readonly "approval.record.lands": "\u843D\u70B9";
1707
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
1708
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
1709
+ readonly "approval.record.noSwitch": "\u5F55\u5B8C\u4E0D\u4F1A\u66FF\u4F60\u5207\u56DE\u6765\uFF08\u5DE6\u680F\u5E95\u90E8\u4F1A\u4EAE\u4E00\u6761\u72B6\u6001\uFF09";
1652
1710
  };
1653
- en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.title" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "debug.back", string>;
1711
+ en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.title" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "debug.back" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch", string>;
1654
1712
  };
1655
1713
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
1656
1714
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -1741,6 +1799,7 @@ export declare const kit: {
1741
1799
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
1742
1800
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
1743
1801
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
1802
+ readonly "panels.hintJoin": "\uFF1B";
1744
1803
  readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
1745
1804
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
1746
1805
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
@@ -1755,6 +1814,7 @@ export declare const kit: {
1755
1814
  readonly "panels.market.notUsable": "\u4E0D\u53EF\u7528";
1756
1815
  readonly "panels.market.broken": "\u88C5\u574F\u4E86";
1757
1816
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
1817
+ readonly "panels.market.hasProblem": "\u6A21\u5757\u5F02\u5E38";
1758
1818
  readonly "panels.market.missing": "\u672A\u88C5";
1759
1819
  readonly "panels.market.unchecked": "\u72B6\u6001\u672A\u77E5";
1760
1820
  readonly "panels.market.checking": "\u68C0\u6D4B\u4E2D";
@@ -2076,6 +2136,20 @@ export declare const kit: {
2076
2136
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
2077
2137
  readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
2078
2138
  readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
2139
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
2140
+ readonly "record.waiting.note": "\u8BF7\u5728\u90A3\u4E00\u9875\u6309\u300C\u5F00\u59CB\u5F55\u5236\u300D\uFF0C\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF08\u5F55\u5B8C\u4E0D\u66FF\u4F60\u5207\u56DE\u6765\uFF09";
2141
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
2142
+ readonly "record.recording.note": "\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF1B\u6D6E\u6761\u6CA1\u4E86\u6309\u300C\u505C\u300D\uFF0C\u8BA9 agent \u5148\u53D6\u518D\u6536";
2143
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
2144
+ readonly "record.finished.note": "\u8FD9\u4E00\u6BB5\u5F55\u5B8C\u4E86 \u2014\u2014 agent \u4F1A\u81EA\u5DF1\u6765\u53D6\u5E76\u6536\u5DE5\uFF0C\u4E0D\u7528\u4F60\u70B9";
2145
+ readonly "record.act.cancel": "\u53D6\u6D88";
2146
+ readonly "record.act.halt": "\u505C";
2147
+ readonly "approval.record.site": "\u7AD9\u70B9";
2148
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
2149
+ readonly "approval.record.lands": "\u843D\u70B9";
2150
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
2151
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
2152
+ readonly "approval.record.noSwitch": "\u5F55\u5B8C\u4E0D\u4F1A\u66FF\u4F60\u5207\u56DE\u6765\uFF08\u5DE6\u680F\u5E95\u90E8\u4F1A\u4EAE\u4E00\u6761\u72B6\u6001\uFF09";
2079
2153
  };
2080
2154
  blockerPending(busy: boolean, running: string | null): boolean;
2081
2155
  blockerActionLabel(action: apiModule.BlockerActionShape, state: apiModule.BlockerLabelState, t: apiModule.BlockerLabelTranslate): string;
@@ -2089,6 +2163,10 @@ export declare const kit: {
2089
2163
  createDebugStore(): apiModule.DebugStore;
2090
2164
  debugOwnerText(state: apiModule.DebugState): string;
2091
2165
  DEBUG_STALE_MS: number;
2166
+ parseRecordIntent(raw: unknown): apiModule.RecordIntent | null;
2167
+ createRecordStore(): apiModule.RecordStore;
2168
+ recordOwnerText(state: apiModule.RecordState): string;
2169
+ RECORD_STALE_MS: number;
2092
2170
  parseCardsReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCardsReport>;
2093
2171
  parseCrashReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCrashReport>;
2094
2172
  createPanelStateStore(): apiModule.PanelStateStore;
@@ -2225,6 +2303,8 @@ export declare const kit: {
2225
2303
  PANEL_STATE_PATH: "panel-state";
2226
2304
  DIY_DEBUG_PATH: "diy-debug";
2227
2305
  DIY_DEBUG_ACT_PATH: "diy-debug/act";
2306
+ DIY_RECORD_PATH: "diy-record";
2307
+ DIY_RECORD_ACT_PATH: "diy-record/act";
2228
2308
  PANEL_STATE_PREFIX: "/workbench/api/panel-state";
2229
2309
  OPENCLI_PIN: "1.8.8";
2230
2310
  CODING_ISSUES_SERVICE: "workbenchCodingIssues";
@@ -2232,6 +2312,7 @@ export declare const kit: {
2232
2312
  UNITS_SERVICE: "workbenchUnits";
2233
2313
  PANEL_STATE_SERVICE: "workbenchPanelState";
2234
2314
  DIY_DEBUG_SERVICE: "workbenchDiyDebug";
2315
+ DIY_RECORD_SERVICE: "workbenchDiyRecord";
2235
2316
  PANEL_LIST_LIMIT: 50;
2236
2317
  OPENCLI_TIMEOUT_MS: 120000;
2237
2318
  OPENCLI_MAX_CONCURRENT: 4;
@@ -2345,6 +2426,7 @@ export declare const kit: {
2345
2426
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
2346
2427
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
2347
2428
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
2429
+ readonly "panels.hintJoin": "\uFF1B";
2348
2430
  readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
2349
2431
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
2350
2432
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
@@ -2359,6 +2441,7 @@ export declare const kit: {
2359
2441
  readonly "panels.market.notUsable": "\u4E0D\u53EF\u7528";
2360
2442
  readonly "panels.market.broken": "\u88C5\u574F\u4E86";
2361
2443
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
2444
+ readonly "panels.market.hasProblem": "\u6A21\u5757\u5F02\u5E38";
2362
2445
  readonly "panels.market.missing": "\u672A\u88C5";
2363
2446
  readonly "panels.market.unchecked": "\u72B6\u6001\u672A\u77E5";
2364
2447
  readonly "panels.market.checking": "\u68C0\u6D4B\u4E2D";
@@ -2680,8 +2763,22 @@ export declare const kit: {
2680
2763
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
2681
2764
  readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
2682
2765
  readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
2766
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
2767
+ readonly "record.waiting.note": "\u8BF7\u5728\u90A3\u4E00\u9875\u6309\u300C\u5F00\u59CB\u5F55\u5236\u300D\uFF0C\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF08\u5F55\u5B8C\u4E0D\u66FF\u4F60\u5207\u56DE\u6765\uFF09";
2768
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
2769
+ readonly "record.recording.note": "\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF1B\u6D6E\u6761\u6CA1\u4E86\u6309\u300C\u505C\u300D\uFF0C\u8BA9 agent \u5148\u53D6\u518D\u6536";
2770
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
2771
+ readonly "record.finished.note": "\u8FD9\u4E00\u6BB5\u5F55\u5B8C\u4E86 \u2014\u2014 agent \u4F1A\u81EA\u5DF1\u6765\u53D6\u5E76\u6536\u5DE5\uFF0C\u4E0D\u7528\u4F60\u70B9";
2772
+ readonly "record.act.cancel": "\u53D6\u6D88";
2773
+ readonly "record.act.halt": "\u505C";
2774
+ readonly "approval.record.site": "\u7AD9\u70B9";
2775
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
2776
+ readonly "approval.record.lands": "\u843D\u70B9";
2777
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
2778
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
2779
+ readonly "approval.record.noSwitch": "\u5F55\u5B8C\u4E0D\u4F1A\u66FF\u4F60\u5207\u56DE\u6765\uFF08\u5DE6\u680F\u5E95\u90E8\u4F1A\u4EAE\u4E00\u6761\u72B6\u6001\uFF09";
2683
2780
  };
2684
- en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.title" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "debug.back", string>;
2781
+ en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.fix.update" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.missingPlugin" | "env.unit.hint" | "env.unit.missingCommands" | "env.unit.missingCommandsHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.missingPlugin" | "panels.dep.missingCommands" | "panels.dep.unchecked" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.localMark" | "panels.market.localHint" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRefusedDetail" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.workbenchLocal" | "panels.market.pluginKeptInUse" | "panels.market.pluginKeptUnsure" | "panels.market.pluginKeptHeld" | "panels.market.pluginKeptUnnamed" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.copyCommand" | "env.copied" | "env.step.opencli" | "env.step.codingPlugin" | "env.step.bridge" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "coding.notARepo.title" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.title" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "debug.back" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch", string>;
2685
2782
  };
2686
2783
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
2687
2784
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -2772,6 +2869,7 @@ export declare const kit: {
2772
2869
  readonly "panels.dragHint": "\u62D6\u52A8\u8C03\u6574\u987A\u5E8F";
2773
2870
  readonly "panels.unknownStep": "\u8FD9\u4E00\u5C42\u6CA1\u6709\u5957\u4EF6\u63D0\u4F9B";
2774
2871
  readonly "panels.labelWithHint": "{label}\uFF08{hint}\uFF09";
2872
+ readonly "panels.hintJoin": "\uFF1B";
2775
2873
  readonly "panels.dep.failed": "\u26A0 \u8D77\u4E0D\u6765";
2776
2874
  readonly "panels.dep.missingPlugin": "\u26A0 \u8FD8\u6CA1\u88C5\u597D";
2777
2875
  readonly "panels.dep.missingCommands": "\u26A0 \u9700\u8981\u66F4\u65B0";
@@ -2786,6 +2884,7 @@ export declare const kit: {
2786
2884
  readonly "panels.market.notUsable": "\u4E0D\u53EF\u7528";
2787
2885
  readonly "panels.market.broken": "\u88C5\u574F\u4E86";
2788
2886
  readonly "panels.market.hasNew": "\u6709\u65B0\u7248\u672C";
2887
+ readonly "panels.market.hasProblem": "\u6A21\u5757\u5F02\u5E38";
2789
2888
  readonly "panels.market.missing": "\u672A\u88C5";
2790
2889
  readonly "panels.market.unchecked": "\u72B6\u6001\u672A\u77E5";
2791
2890
  readonly "panels.market.checking": "\u68C0\u6D4B\u4E2D";
@@ -3107,6 +3206,20 @@ export declare const kit: {
3107
3206
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
3108
3207
  readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
3109
3208
  readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
3209
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
3210
+ readonly "record.waiting.note": "\u8BF7\u5728\u90A3\u4E00\u9875\u6309\u300C\u5F00\u59CB\u5F55\u5236\u300D\uFF0C\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF08\u5F55\u5B8C\u4E0D\u66FF\u4F60\u5207\u56DE\u6765\uFF09";
3211
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
3212
+ readonly "record.recording.note": "\u505A\u5B8C\u6309\u300C\u7ED3\u675F\u5F55\u5236\u300D\uFF1B\u6D6E\u6761\u6CA1\u4E86\u6309\u300C\u505C\u300D\uFF0C\u8BA9 agent \u5148\u53D6\u518D\u6536";
3213
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
3214
+ readonly "record.finished.note": "\u8FD9\u4E00\u6BB5\u5F55\u5B8C\u4E86 \u2014\u2014 agent \u4F1A\u81EA\u5DF1\u6765\u53D6\u5E76\u6536\u5DE5\uFF0C\u4E0D\u7528\u4F60\u70B9";
3215
+ readonly "record.act.cancel": "\u53D6\u6D88";
3216
+ readonly "record.act.halt": "\u505C";
3217
+ readonly "approval.record.site": "\u7AD9\u70B9";
3218
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
3219
+ readonly "approval.record.lands": "\u843D\u70B9";
3220
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
3221
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
3222
+ readonly "approval.record.noSwitch": "\u5F55\u5B8C\u4E0D\u4F1A\u66FF\u4F60\u5207\u56DE\u6765\uFF08\u5DE6\u680F\u5E95\u90E8\u4F1A\u4EAE\u4E00\u6761\u72B6\u6001\uFF09";
3110
3223
  };
3111
3224
  blockerPending(busy: boolean, running: string | null): boolean;
3112
3225
  blockerActionLabel(action: apiModule.BlockerActionShape, state: apiModule.BlockerLabelState, t: apiModule.BlockerLabelTranslate): string;
@@ -3120,6 +3233,10 @@ export declare const kit: {
3120
3233
  createDebugStore(): apiModule.DebugStore;
3121
3234
  debugOwnerText(state: apiModule.DebugState): string;
3122
3235
  DEBUG_STALE_MS: number;
3236
+ parseRecordIntent(raw: unknown): apiModule.RecordIntent | null;
3237
+ createRecordStore(): apiModule.RecordStore;
3238
+ recordOwnerText(state: apiModule.RecordState): string;
3239
+ RECORD_STALE_MS: number;
3123
3240
  parseCardsReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCardsReport>;
3124
3241
  parseCrashReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCrashReport>;
3125
3242
  createPanelStateStore(): apiModule.PanelStateStore;
@@ -0,0 +1,13 @@
1
+ import type { ApprovalInput, ReactNode, Translate } from '@dsh-workbench/shared';
2
+ export interface ApprovalRow {
3
+ readonly label: string;
4
+ readonly value: string;
5
+ }
6
+ export declare function recordApprovalRows(args: Readonly<Record<string, unknown>>, t: Translate): readonly ApprovalRow[];
7
+ export interface ApprovalPlanView {
8
+ readonly rows: readonly ApprovalRow[];
9
+ readonly warn?: string | undefined;
10
+ }
11
+ export declare function shellClaimsApprovalDetail(tool: string): boolean;
12
+ export declare function shellApprovalPlan(input: ApprovalInput, t: Translate): ApprovalPlanView | undefined;
13
+ export declare function shellApprovalDetail(input: ApprovalInput, t: Translate): ReactNode;
@@ -1,6 +1,9 @@
1
1
  import type { Translate } from '@dsh-workbench/shared';
2
+ export type PanelHintTone = 'warning' | 'danger';
2
3
  export interface PanelHint {
3
4
  readonly labelKey: string;
5
+ readonly tone: PanelHintTone;
6
+ readonly moreKeys?: readonly string[];
4
7
  }
5
8
  export declare function publishPanelHint(id: string, hint: PanelHint | null): void;
6
9
  export declare function panelHintOf(id: string | null): PanelHint | null;
@@ -0,0 +1,16 @@
1
+ import type { ModuleVersion, WorkbenchVersion } from '../../../shared/api/bundle-install';
2
+ import type { InstalledPlugin } from '../../../shared/api/installed-plugins';
3
+ import type { CapabilityMap } from '../../../shared/hooks/use-capabilities';
4
+ import type { UnitManifest } from '@dsh-workbench/shared';
5
+ import type { PanelHint } from '../panel-hint';
6
+ import type { InstalledWorkbenchModule } from './market-rows';
7
+ export interface MarketHintInput {
8
+ readonly manifests: readonly UnitManifest[];
9
+ readonly installable?: ReadonlySet<string> | null | undefined;
10
+ readonly capabilities: CapabilityMap | null;
11
+ readonly modules: readonly ModuleVersion[] | null;
12
+ readonly installed?: readonly InstalledWorkbenchModule[] | undefined;
13
+ readonly plugins?: readonly InstalledPlugin[] | null | undefined;
14
+ readonly workbench?: WorkbenchVersion | null | undefined;
15
+ }
16
+ export declare function marketHintOf(input: MarketHintInput): PanelHint | null;
@@ -1,7 +1,7 @@
1
- import type { ModuleVersion, WorkbenchVersion } from '../../../shared/api/bundle-install';
1
+ import type { ModuleVersion } from '../../../shared/api/bundle-install';
2
2
  import type { Translate, UnitManifest } from '@dsh-workbench/shared';
3
3
  import type { MarketRow, MarketRowAction, MarketState, ModuleUpdate } from './market-row-types';
4
- import { type SharedRow } from './market-shared-rows';
4
+ import type { SharedRow } from './market-shared-rows';
5
5
  import type { CapabilityMap } from '../../../shared/hooks/use-capabilities';
6
6
  export type { MarketHintKey, MarketNote, MarketRow, MarketRowAction, MarketState, ModuleUpdate, } from './market-row-types';
7
7
  export type { SharedRow, SharedState } from './market-shared-rows';
@@ -35,7 +35,6 @@ export declare function marketCatalog(manifests: readonly UnitManifest[], instal
35
35
  export declare function liveManifests(manifests: readonly UnitManifest[], capabilities: CapabilityMap | null, installed: ReadonlySet<string> | null): readonly UnitManifest[];
36
36
  export declare function marketHasUpdates(rows: readonly MarketRow[], shared?: readonly SharedRow[]): boolean;
37
37
  export declare function marketUpdatesOf(modules: readonly ModuleVersion[] | null): ModuleUpdateMap;
38
- export declare function marketHintVisible(manifests: readonly UnitManifest[], capabilities: CapabilityMap | null, modules: readonly ModuleVersion[] | null, workbench?: WorkbenchVersion | null | undefined): boolean;
39
38
  export interface MarketSection {
40
39
  readonly id: 'installed' | 'not-installed';
41
40
  readonly titleKey: string;