@dsh-workbench/core 0.3.3 → 0.3.5

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 (71) hide show
  1. package/client.js +1749 -114
  2. package/cordis.patch.yml +32 -0
  3. package/dist/client/client.body.js +1749 -114
  4. package/dist/client/index.js +1749 -114
  5. package/dist/host/index.js +3101 -1156
  6. package/dist/types/app/client.d.ts +306 -60
  7. package/dist/types/app/layouts/approval-detail.d.ts +13 -0
  8. package/dist/types/app/layouts/sidebar/RecordFooterAction.d.ts +16 -0
  9. package/dist/types/app/layouts/sidebar/record-footer.d.ts +4 -0
  10. package/dist/types/modules/panels/client.d.ts +1 -0
  11. package/dist/types/modules/panels/model/diy-components.d.ts +3 -0
  12. package/dist/types/modules/panels/model/diy-components.test.d.ts +1 -0
  13. package/dist/types/modules/panels/model/diy-context.d.ts +4 -5
  14. package/dist/types/modules/panels/model/diy-observers.d.ts +2 -2
  15. package/dist/types/modules/panels/model/diy-page.d.ts +1 -1
  16. package/dist/types/modules/panels/model/diy-record-bar.test.d.ts +1 -0
  17. package/dist/types/modules/panels/model/diy-record-capture.d.ts +27 -0
  18. package/dist/types/modules/panels/model/diy-record-capture.test.d.ts +1 -0
  19. package/dist/types/modules/panels/model/diy-record-failure.test.d.ts +1 -0
  20. package/dist/types/modules/panels/model/diy-record-routes.d.ts +2 -0
  21. package/dist/types/modules/panels/model/diy-record-routes.test.d.ts +1 -0
  22. package/dist/types/modules/panels/model/diy-record-scripts.d.ts +6 -0
  23. package/dist/types/modules/panels/model/diy-record-text.d.ts +89 -0
  24. package/dist/types/modules/panels/model/diy-record-text.test.d.ts +1 -0
  25. package/dist/types/modules/panels/model/diy-record-tools.d.ts +2 -0
  26. package/dist/types/modules/panels/model/diy-record.d.ts +76 -0
  27. package/dist/types/modules/panels/model/diy-record.test.d.ts +1 -0
  28. package/dist/types/modules/panels/model/handoff.d.ts +1 -0
  29. package/dist/types/modules/panels/unit.d.ts +10 -5
  30. package/dist/types/shared/api/context-chips.d.ts +20 -0
  31. package/dist/types/shared/api/host/diy-acts.d.ts +4 -0
  32. package/dist/types/shared/api/host/diy-components.d.ts +65 -0
  33. package/dist/types/shared/api/host/diy-debug-act.d.ts +24 -7
  34. package/dist/types/shared/api/host/diy-record-act.d.ts +19 -0
  35. package/dist/types/shared/api/host/diy-workshop.d.ts +1 -3
  36. package/dist/types/shared/api/host/mount-units.d.ts +4 -0
  37. package/dist/types/shared/api/host/preset-scope.d.ts +16 -0
  38. package/dist/types/shared/api/host/tool-scope.d.ts +6 -2
  39. package/dist/types/shared/api/host/workshop-root.d.ts +7 -0
  40. package/dist/types/shared/components/BlockerState.d.ts +12 -0
  41. package/dist/types/shared/components/PanelFoot.d.ts +9 -0
  42. package/dist/types/shared/components/Tip.d.ts +8 -0
  43. package/dist/types/shared/hooks/bundle-queries.d.ts +12 -0
  44. package/dist/types/shared/hooks/fact-transports.d.ts +4 -0
  45. package/dist/types/shared/hooks/panel-state-report.d.ts +12 -0
  46. package/dist/types/shared/hooks/use-api-resource.d.ts +22 -0
  47. package/dist/types/shared/hooks/use-blocker-actions.d.ts +8 -0
  48. package/dist/types/shared/hooks/use-capabilities.d.ts +55 -0
  49. package/dist/types/shared/hooks/use-capability-gate.d.ts +16 -0
  50. package/dist/types/shared/hooks/use-card-summary.d.ts +7 -0
  51. package/dist/types/shared/hooks/use-diy-debug.d.ts +13 -0
  52. package/dist/types/shared/hooks/use-diy-record.d.ts +21 -0
  53. package/dist/types/shared/hooks/use-facts.d.ts +10 -0
  54. package/dist/types/shared/hooks/use-host-write.d.ts +12 -0
  55. package/dist/types/shared/hooks/use-long-task.d.ts +8 -0
  56. package/dist/types/shared/hooks/use-unit-board.d.ts +17 -0
  57. package/dist/types/shared/hooks/use-visible-busy.d.ts +17 -0
  58. package/package.json +2 -2
  59. package/scripts/seed-workshop.sh +42 -2
  60. package/skills/workbench-module-diy/BUILD.md +4 -3
  61. package/skills/workbench-module-diy/DATASOURCE.md +2 -2
  62. package/skills/workbench-module-diy/DESIGN.md +26 -1
  63. package/skills/workbench-module-diy/FAMILY.md +56 -0
  64. package/skills/workbench-module-diy/KIT.md +111 -96
  65. package/skills/workbench-module-diy/PANEL.md +24 -13
  66. package/skills/workbench-module-diy/REVIEW.md +9 -8
  67. package/skills/workbench-module-diy/SKILL.md +16 -6
  68. package/skills/workbench-module-diy/TOOLING.md +5 -2
  69. package/skills/workbench-module-diy/TOOLS.md +7 -41
  70. package/skills/workbench-module-diy/WIRING.md +14 -6
  71. package/skills/workbench-module-diy/WRITES.md +47 -6
@@ -111,7 +111,35 @@ export declare const kit: {
111
111
  CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
112
112
  ChoiceGroup(props: apiModule.ChoiceGroupProps): JSX.Element;
113
113
  Field({ label, hint, children }: apiModule.FieldProps): JSX.Element;
114
+ Form(props: apiModule.FormProps): JSX.Element;
114
115
  FormActions({ actions }: apiModule.FormActionsProps): JSX.Element | null;
116
+ visibleFieldsOf(fields: readonly apiModule.FormField[]): readonly apiModule.FormField[];
117
+ duplicateKeysOf(fields: readonly apiModule.FormField[]): readonly string[];
118
+ reportDuplicateKeys(fields: readonly apiModule.FormField[]): void;
119
+ formValuesOf(fields: readonly apiModule.FormField[]): Readonly<Record<string, apiModule.FormValue>>;
120
+ formProblemsOf(fields: readonly apiModule.FormField[], show: boolean): Readonly<Record<string, apiModule.ReactNode | undefined>>;
121
+ formFirstProblemOf(fields: readonly apiModule.FormField[], problems: Readonly<Record<string, apiModule.ReactNode | undefined>>): apiModule.FormField | undefined;
122
+ formSubmitOf(fields: readonly apiModule.FormField[]): apiModule.FormSubmitOutcome;
123
+ formActionsOf(args: {
124
+ readonly extra: readonly apiModule.FormAction[] | undefined;
125
+ readonly cancel: {
126
+ readonly label: apiModule.ReactNode;
127
+ readonly onClick: () => void;
128
+ } | undefined;
129
+ readonly submit: {
130
+ readonly label: apiModule.ReactNode;
131
+ readonly busyLabel?: apiModule.ReactNode | undefined;
132
+ };
133
+ readonly busy: boolean;
134
+ readonly disabled: boolean;
135
+ readonly onSubmitClick: () => void;
136
+ }): readonly apiModule.FormAction[];
137
+ formRowsOf(args: {
138
+ readonly fields: readonly apiModule.FormField[];
139
+ readonly problems: Readonly<Record<string, apiModule.ReactNode | undefined>>;
140
+ readonly showProblem: boolean;
141
+ readonly busy: boolean;
142
+ }): readonly apiModule.ReactNode[];
115
143
  FormRows({ children }: apiModule.FormRowsProps): JSX.Element;
116
144
  FormRow({ label, hint, problem, layout, children }: apiModule.FormRowProps): JSX.Element;
117
145
  Link({ href, children, title, external, className }: apiModule.LinkProps): JSX.Element;
@@ -136,6 +164,26 @@ export declare const kit: {
136
164
  stepSelectCursor(shown: readonly apiModule.SelectFieldOption[], cursor: number | null, step: 1 | -1): number | null;
137
165
  selectEntries(shown: readonly apiModule.SelectFieldOption[], emptyText: string | undefined, revealId?: string | undefined): readonly import("@deepseek-ai/dsh-client-ui-primitives").MenuEntry[];
138
166
  SelectField(props: apiModule.SelectFieldProps): apiModule.ReactNode;
167
+ selectTriggerNode(args: {
168
+ readonly id: string | undefined;
169
+ readonly className: string;
170
+ readonly disabled: boolean;
171
+ readonly invalid: boolean;
172
+ readonly open: boolean;
173
+ readonly ariaLabel: string | undefined;
174
+ readonly title: string | undefined;
175
+ readonly icon: apiModule.ReactNode | undefined;
176
+ readonly value: apiModule.ReactNode;
177
+ readonly iconOnly: boolean;
178
+ readonly onOpen: () => void;
179
+ }): apiModule.ReactNode;
180
+ selectLoadingNode(args: {
181
+ readonly id: string | undefined;
182
+ readonly className: string;
183
+ readonly invalid: boolean;
184
+ readonly ariaLabel: string | undefined;
185
+ readonly loadingText: string | undefined;
186
+ }): apiModule.ReactNode;
139
187
  SettingsSection({ label, title, action, children }: apiModule.SettingsSectionProps): JSX.Element;
140
188
  Spinner({ size, label }: apiModule.SpinnerProps): JSX.Element;
141
189
  Stack({ children }: apiModule.StackProps): JSX.Element;
@@ -158,6 +206,8 @@ export declare const kit: {
158
206
  PANEL_STATE_PATH: "panel-state";
159
207
  DIY_DEBUG_PATH: "diy-debug";
160
208
  DIY_DEBUG_ACT_PATH: "diy-debug/act";
209
+ DIY_RECORD_PATH: "diy-record";
210
+ DIY_RECORD_ACT_PATH: "diy-record/act";
161
211
  PANEL_STATE_PREFIX: "/workbench/api/panel-state";
162
212
  OPENCLI_PIN: "1.8.8";
163
213
  CODING_ISSUES_SERVICE: "workbenchCodingIssues";
@@ -165,6 +215,8 @@ export declare const kit: {
165
215
  UNITS_SERVICE: "workbenchUnits";
166
216
  PANEL_STATE_SERVICE: "workbenchPanelState";
167
217
  DIY_DEBUG_SERVICE: "workbenchDiyDebug";
218
+ DIY_RECORD_SERVICE: "workbenchDiyRecord";
219
+ SESSION_PROJECTIONS_SERVICE: "sessionProjections";
168
220
  PANEL_LIST_LIMIT: 50;
169
221
  OPENCLI_TIMEOUT_MS: 120000;
170
222
  OPENCLI_MAX_CONCURRENT: 4;
@@ -601,22 +653,35 @@ export declare const kit: {
601
653
  readonly "configSync.noSource": "\u8FD9\u53F0\u673A\u5668\u4E0A\u53EA\u6709\u5DE5\u4F5C\u53F0\u8FD9\u4E00\u4E2A profile\uFF0C\u6CA1\u6709\u53EF\u540C\u6B65\u7684\u6765\u6E90";
602
654
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
603
655
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
604
- readonly "debug.status": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
605
- readonly "debug.status.trouble": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u5F02\u5E38";
606
- readonly "debug.stalled": "\u5DE5\u4F5C\u53F0 DIY \u8C03\u8BD5\u6682\u505C";
656
+ readonly "debug.workspace": "\u8FD9\u4E2A\u5DE5\u4F5C\u533A";
657
+ readonly "debug.status": "\u300C{title}\u300D\u8C03\u8BD5\u4E2D";
658
+ readonly "debug.status.trouble": "\u8C03\u8BD5\u8981\u4F60\u770B\u4E00\u773C\uFF08{title}\uFF09";
659
+ readonly "debug.stalled": "\u8C03\u8BD5\u5DF2\u6682\u505C\uFF08{title}\uFF09";
607
660
  readonly "debug.act.pause": "\u6682\u505C\u8C03\u8BD5";
608
661
  readonly "debug.act.resume": "\u7EE7\u7EED\u8C03\u8BD5";
609
662
  readonly "debug.act.stop": "\u7ED3\u675F\u8C03\u8BD5";
610
663
  readonly "debug.act.stop.ask": "\u786E\u8BA4\u7ED3\u675F";
611
- readonly "debug.card.here.title": "\u5F53\u524D\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
664
+ readonly "debug.card.here.title": "\u6B63\u5728\u8C03\u8BD5\u300C{title}\u300D";
612
665
  readonly "debug.card.here.note": "\u8BF7\u52FF\u5207\u6362\u5DE5\u4F5C\u533A\u548C\u64CD\u4F5C\u9762\u677F";
613
- readonly "debug.card.away.title": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
614
- readonly "debug.card.away.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0 DIY \u5DE5\u4F5C\u533A";
666
+ readonly "debug.card.away.note": "\u8BF7\u5207\u56DE\u300C{title}\u300D\u90A3\u4E00\u5C4F";
615
667
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
616
- readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
617
- readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
668
+ readonly "debug.card.hidden.note": "\u8BF7\u5207\u56DE\u5DE5\u4F5C\u53F0\u9762\u677F";
669
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
670
+ 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";
671
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
672
+ 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";
673
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
674
+ 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";
675
+ readonly "record.act.cancel": "\u53D6\u6D88";
676
+ readonly "record.act.halt": "\u505C";
677
+ readonly "approval.record.site": "\u7AD9\u70B9";
678
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
679
+ readonly "approval.record.lands": "\u843D\u70B9";
680
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
681
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
682
+ 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";
618
683
  };
619
- 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", string>;
684
+ 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.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.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>;
620
685
  };
621
686
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
622
687
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -1030,33 +1095,50 @@ export declare const kit: {
1030
1095
  readonly "configSync.noSource": "\u8FD9\u53F0\u673A\u5668\u4E0A\u53EA\u6709\u5DE5\u4F5C\u53F0\u8FD9\u4E00\u4E2A profile\uFF0C\u6CA1\u6709\u53EF\u540C\u6B65\u7684\u6765\u6E90";
1031
1096
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
1032
1097
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1033
- readonly "debug.status": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
1034
- readonly "debug.status.trouble": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u5F02\u5E38";
1035
- readonly "debug.stalled": "\u5DE5\u4F5C\u53F0 DIY \u8C03\u8BD5\u6682\u505C";
1098
+ readonly "debug.workspace": "\u8FD9\u4E2A\u5DE5\u4F5C\u533A";
1099
+ readonly "debug.status": "\u300C{title}\u300D\u8C03\u8BD5\u4E2D";
1100
+ readonly "debug.status.trouble": "\u8C03\u8BD5\u8981\u4F60\u770B\u4E00\u773C\uFF08{title}\uFF09";
1101
+ readonly "debug.stalled": "\u8C03\u8BD5\u5DF2\u6682\u505C\uFF08{title}\uFF09";
1036
1102
  readonly "debug.act.pause": "\u6682\u505C\u8C03\u8BD5";
1037
1103
  readonly "debug.act.resume": "\u7EE7\u7EED\u8C03\u8BD5";
1038
1104
  readonly "debug.act.stop": "\u7ED3\u675F\u8C03\u8BD5";
1039
1105
  readonly "debug.act.stop.ask": "\u786E\u8BA4\u7ED3\u675F";
1040
- readonly "debug.card.here.title": "\u5F53\u524D\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
1106
+ readonly "debug.card.here.title": "\u6B63\u5728\u8C03\u8BD5\u300C{title}\u300D";
1041
1107
  readonly "debug.card.here.note": "\u8BF7\u52FF\u5207\u6362\u5DE5\u4F5C\u533A\u548C\u64CD\u4F5C\u9762\u677F";
1042
- readonly "debug.card.away.title": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
1043
- readonly "debug.card.away.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0 DIY \u5DE5\u4F5C\u533A";
1108
+ readonly "debug.card.away.note": "\u8BF7\u5207\u56DE\u300C{title}\u300D\u90A3\u4E00\u5C4F";
1044
1109
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
1045
- readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
1046
- readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
1110
+ readonly "debug.card.hidden.note": "\u8BF7\u5207\u56DE\u5DE5\u4F5C\u53F0\u9762\u677F";
1111
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
1112
+ 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";
1113
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
1114
+ 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";
1115
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
1116
+ 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";
1117
+ readonly "record.act.cancel": "\u53D6\u6D88";
1118
+ readonly "record.act.halt": "\u505C";
1119
+ readonly "approval.record.site": "\u7AD9\u70B9";
1120
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
1121
+ readonly "approval.record.lands": "\u843D\u70B9";
1122
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
1123
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
1124
+ 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";
1047
1125
  };
1048
1126
  blockerPending(busy: boolean, running: string | null): boolean;
1049
1127
  blockerActionLabel(action: apiModule.BlockerActionShape, state: apiModule.BlockerLabelState, t: apiModule.BlockerLabelTranslate): string;
1050
- holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
1051
- firstProblemOf(root: ParentNode): Element | null;
1052
- revealFirstProblem(root: ParentNode): boolean;
1053
1128
  insideWorkshop(root: string, target: string): boolean;
1054
1129
  boardFactOf(probe: apiModule.BoardProbe, workshop: string | null): apiModule.BoardFactState;
1055
1130
  boardSituation(probe: apiModule.BoardProbe, workshop: string | null): apiModule.BoardSituation;
1131
+ holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
1056
1132
  parseDebugIntent(value: unknown): apiModule.DebugIntent | null;
1057
1133
  createDebugStore(): apiModule.DebugStore;
1058
1134
  debugOwnerText(state: apiModule.DebugState): string;
1059
1135
  DEBUG_STALE_MS: number;
1136
+ parseRecordIntent(raw: unknown): apiModule.RecordIntent | null;
1137
+ createRecordStore(): apiModule.RecordStore;
1138
+ recordOwnerText(state: apiModule.RecordState): string;
1139
+ RECORD_STALE_MS: number;
1140
+ firstProblemOf(root: ParentNode): Element | null;
1141
+ revealFirstProblem(root: ParentNode): boolean;
1060
1142
  parseCardsReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCardsReport>;
1061
1143
  parseCrashReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCrashReport>;
1062
1144
  createPanelStateStore(): apiModule.PanelStateStore;
@@ -1151,7 +1233,35 @@ export declare const kit: {
1151
1233
  CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
1152
1234
  ChoiceGroup(props: apiModule.ChoiceGroupProps): JSX.Element;
1153
1235
  Field({ label, hint, children }: apiModule.FieldProps): JSX.Element;
1236
+ Form(props: apiModule.FormProps): JSX.Element;
1154
1237
  FormActions({ actions }: apiModule.FormActionsProps): JSX.Element | null;
1238
+ visibleFieldsOf(fields: readonly apiModule.FormField[]): readonly apiModule.FormField[];
1239
+ duplicateKeysOf(fields: readonly apiModule.FormField[]): readonly string[];
1240
+ reportDuplicateKeys(fields: readonly apiModule.FormField[]): void;
1241
+ formValuesOf(fields: readonly apiModule.FormField[]): Readonly<Record<string, apiModule.FormValue>>;
1242
+ formProblemsOf(fields: readonly apiModule.FormField[], show: boolean): Readonly<Record<string, apiModule.ReactNode | undefined>>;
1243
+ formFirstProblemOf(fields: readonly apiModule.FormField[], problems: Readonly<Record<string, apiModule.ReactNode | undefined>>): apiModule.FormField | undefined;
1244
+ formSubmitOf(fields: readonly apiModule.FormField[]): apiModule.FormSubmitOutcome;
1245
+ formActionsOf(args: {
1246
+ readonly extra: readonly apiModule.FormAction[] | undefined;
1247
+ readonly cancel: {
1248
+ readonly label: apiModule.ReactNode;
1249
+ readonly onClick: () => void;
1250
+ } | undefined;
1251
+ readonly submit: {
1252
+ readonly label: apiModule.ReactNode;
1253
+ readonly busyLabel?: apiModule.ReactNode | undefined;
1254
+ };
1255
+ readonly busy: boolean;
1256
+ readonly disabled: boolean;
1257
+ readonly onSubmitClick: () => void;
1258
+ }): readonly apiModule.FormAction[];
1259
+ formRowsOf(args: {
1260
+ readonly fields: readonly apiModule.FormField[];
1261
+ readonly problems: Readonly<Record<string, apiModule.ReactNode | undefined>>;
1262
+ readonly showProblem: boolean;
1263
+ readonly busy: boolean;
1264
+ }): readonly apiModule.ReactNode[];
1155
1265
  FormRows({ children }: apiModule.FormRowsProps): JSX.Element;
1156
1266
  FormRow({ label, hint, problem, layout, children }: apiModule.FormRowProps): JSX.Element;
1157
1267
  Link({ href, children, title, external, className }: apiModule.LinkProps): JSX.Element;
@@ -1176,6 +1286,26 @@ export declare const kit: {
1176
1286
  stepSelectCursor(shown: readonly apiModule.SelectFieldOption[], cursor: number | null, step: 1 | -1): number | null;
1177
1287
  selectEntries(shown: readonly apiModule.SelectFieldOption[], emptyText: string | undefined, revealId?: string | undefined): readonly import("@deepseek-ai/dsh-client-ui-primitives").MenuEntry[];
1178
1288
  SelectField(props: apiModule.SelectFieldProps): apiModule.ReactNode;
1289
+ selectTriggerNode(args: {
1290
+ readonly id: string | undefined;
1291
+ readonly className: string;
1292
+ readonly disabled: boolean;
1293
+ readonly invalid: boolean;
1294
+ readonly open: boolean;
1295
+ readonly ariaLabel: string | undefined;
1296
+ readonly title: string | undefined;
1297
+ readonly icon: apiModule.ReactNode | undefined;
1298
+ readonly value: apiModule.ReactNode;
1299
+ readonly iconOnly: boolean;
1300
+ readonly onOpen: () => void;
1301
+ }): apiModule.ReactNode;
1302
+ selectLoadingNode(args: {
1303
+ readonly id: string | undefined;
1304
+ readonly className: string;
1305
+ readonly invalid: boolean;
1306
+ readonly ariaLabel: string | undefined;
1307
+ readonly loadingText: string | undefined;
1308
+ }): apiModule.ReactNode;
1179
1309
  SettingsSection({ label, title, action, children }: apiModule.SettingsSectionProps): JSX.Element;
1180
1310
  Spinner({ size, label }: apiModule.SpinnerProps): JSX.Element;
1181
1311
  Stack({ children }: apiModule.StackProps): JSX.Element;
@@ -1198,6 +1328,8 @@ export declare const kit: {
1198
1328
  PANEL_STATE_PATH: "panel-state";
1199
1329
  DIY_DEBUG_PATH: "diy-debug";
1200
1330
  DIY_DEBUG_ACT_PATH: "diy-debug/act";
1331
+ DIY_RECORD_PATH: "diy-record";
1332
+ DIY_RECORD_ACT_PATH: "diy-record/act";
1201
1333
  PANEL_STATE_PREFIX: "/workbench/api/panel-state";
1202
1334
  OPENCLI_PIN: "1.8.8";
1203
1335
  CODING_ISSUES_SERVICE: "workbenchCodingIssues";
@@ -1205,6 +1337,8 @@ export declare const kit: {
1205
1337
  UNITS_SERVICE: "workbenchUnits";
1206
1338
  PANEL_STATE_SERVICE: "workbenchPanelState";
1207
1339
  DIY_DEBUG_SERVICE: "workbenchDiyDebug";
1340
+ DIY_RECORD_SERVICE: "workbenchDiyRecord";
1341
+ SESSION_PROJECTIONS_SERVICE: "sessionProjections";
1208
1342
  PANEL_LIST_LIMIT: 50;
1209
1343
  OPENCLI_TIMEOUT_MS: 120000;
1210
1344
  OPENCLI_MAX_CONCURRENT: 4;
@@ -1641,22 +1775,35 @@ export declare const kit: {
1641
1775
  readonly "configSync.noSource": "\u8FD9\u53F0\u673A\u5668\u4E0A\u53EA\u6709\u5DE5\u4F5C\u53F0\u8FD9\u4E00\u4E2A profile\uFF0C\u6CA1\u6709\u53EF\u540C\u6B65\u7684\u6765\u6E90";
1642
1776
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
1643
1777
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
1644
- readonly "debug.status": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
1645
- readonly "debug.status.trouble": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u5F02\u5E38";
1646
- readonly "debug.stalled": "\u5DE5\u4F5C\u53F0 DIY \u8C03\u8BD5\u6682\u505C";
1778
+ readonly "debug.workspace": "\u8FD9\u4E2A\u5DE5\u4F5C\u533A";
1779
+ readonly "debug.status": "\u300C{title}\u300D\u8C03\u8BD5\u4E2D";
1780
+ readonly "debug.status.trouble": "\u8C03\u8BD5\u8981\u4F60\u770B\u4E00\u773C\uFF08{title}\uFF09";
1781
+ readonly "debug.stalled": "\u8C03\u8BD5\u5DF2\u6682\u505C\uFF08{title}\uFF09";
1647
1782
  readonly "debug.act.pause": "\u6682\u505C\u8C03\u8BD5";
1648
1783
  readonly "debug.act.resume": "\u7EE7\u7EED\u8C03\u8BD5";
1649
1784
  readonly "debug.act.stop": "\u7ED3\u675F\u8C03\u8BD5";
1650
1785
  readonly "debug.act.stop.ask": "\u786E\u8BA4\u7ED3\u675F";
1651
- readonly "debug.card.here.title": "\u5F53\u524D\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
1786
+ readonly "debug.card.here.title": "\u6B63\u5728\u8C03\u8BD5\u300C{title}\u300D";
1652
1787
  readonly "debug.card.here.note": "\u8BF7\u52FF\u5207\u6362\u5DE5\u4F5C\u533A\u548C\u64CD\u4F5C\u9762\u677F";
1653
- readonly "debug.card.away.title": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
1654
- readonly "debug.card.away.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0 DIY \u5DE5\u4F5C\u533A";
1788
+ readonly "debug.card.away.note": "\u8BF7\u5207\u56DE\u300C{title}\u300D\u90A3\u4E00\u5C4F";
1655
1789
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
1656
- readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
1657
- readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
1790
+ readonly "debug.card.hidden.note": "\u8BF7\u5207\u56DE\u5DE5\u4F5C\u53F0\u9762\u677F";
1791
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
1792
+ 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";
1793
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
1794
+ 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";
1795
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
1796
+ 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";
1797
+ readonly "record.act.cancel": "\u53D6\u6D88";
1798
+ readonly "record.act.halt": "\u505C";
1799
+ readonly "approval.record.site": "\u7AD9\u70B9";
1800
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
1801
+ readonly "approval.record.lands": "\u843D\u70B9";
1802
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
1803
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
1804
+ 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";
1658
1805
  };
1659
- 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", string>;
1806
+ 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.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.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>;
1660
1807
  };
1661
1808
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
1662
1809
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -2070,33 +2217,50 @@ export declare const kit: {
2070
2217
  readonly "configSync.noSource": "\u8FD9\u53F0\u673A\u5668\u4E0A\u53EA\u6709\u5DE5\u4F5C\u53F0\u8FD9\u4E00\u4E2A profile\uFF0C\u6CA1\u6709\u53EF\u540C\u6B65\u7684\u6765\u6E90";
2071
2218
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
2072
2219
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
2073
- readonly "debug.status": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
2074
- readonly "debug.status.trouble": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u5F02\u5E38";
2075
- readonly "debug.stalled": "\u5DE5\u4F5C\u53F0 DIY \u8C03\u8BD5\u6682\u505C";
2220
+ readonly "debug.workspace": "\u8FD9\u4E2A\u5DE5\u4F5C\u533A";
2221
+ readonly "debug.status": "\u300C{title}\u300D\u8C03\u8BD5\u4E2D";
2222
+ readonly "debug.status.trouble": "\u8C03\u8BD5\u8981\u4F60\u770B\u4E00\u773C\uFF08{title}\uFF09";
2223
+ readonly "debug.stalled": "\u8C03\u8BD5\u5DF2\u6682\u505C\uFF08{title}\uFF09";
2076
2224
  readonly "debug.act.pause": "\u6682\u505C\u8C03\u8BD5";
2077
2225
  readonly "debug.act.resume": "\u7EE7\u7EED\u8C03\u8BD5";
2078
2226
  readonly "debug.act.stop": "\u7ED3\u675F\u8C03\u8BD5";
2079
2227
  readonly "debug.act.stop.ask": "\u786E\u8BA4\u7ED3\u675F";
2080
- readonly "debug.card.here.title": "\u5F53\u524D\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
2228
+ readonly "debug.card.here.title": "\u6B63\u5728\u8C03\u8BD5\u300C{title}\u300D";
2081
2229
  readonly "debug.card.here.note": "\u8BF7\u52FF\u5207\u6362\u5DE5\u4F5C\u533A\u548C\u64CD\u4F5C\u9762\u677F";
2082
- readonly "debug.card.away.title": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
2083
- readonly "debug.card.away.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0 DIY \u5DE5\u4F5C\u533A";
2230
+ readonly "debug.card.away.note": "\u8BF7\u5207\u56DE\u300C{title}\u300D\u90A3\u4E00\u5C4F";
2084
2231
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
2085
- readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
2086
- readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
2232
+ readonly "debug.card.hidden.note": "\u8BF7\u5207\u56DE\u5DE5\u4F5C\u53F0\u9762\u677F";
2233
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
2234
+ 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";
2235
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
2236
+ 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";
2237
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
2238
+ 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";
2239
+ readonly "record.act.cancel": "\u53D6\u6D88";
2240
+ readonly "record.act.halt": "\u505C";
2241
+ readonly "approval.record.site": "\u7AD9\u70B9";
2242
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
2243
+ readonly "approval.record.lands": "\u843D\u70B9";
2244
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
2245
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
2246
+ 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";
2087
2247
  };
2088
2248
  blockerPending(busy: boolean, running: string | null): boolean;
2089
2249
  blockerActionLabel(action: apiModule.BlockerActionShape, state: apiModule.BlockerLabelState, t: apiModule.BlockerLabelTranslate): string;
2090
- holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
2091
- firstProblemOf(root: ParentNode): Element | null;
2092
- revealFirstProblem(root: ParentNode): boolean;
2093
2250
  insideWorkshop(root: string, target: string): boolean;
2094
2251
  boardFactOf(probe: apiModule.BoardProbe, workshop: string | null): apiModule.BoardFactState;
2095
2252
  boardSituation(probe: apiModule.BoardProbe, workshop: string | null): apiModule.BoardSituation;
2253
+ holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
2096
2254
  parseDebugIntent(value: unknown): apiModule.DebugIntent | null;
2097
2255
  createDebugStore(): apiModule.DebugStore;
2098
2256
  debugOwnerText(state: apiModule.DebugState): string;
2099
2257
  DEBUG_STALE_MS: number;
2258
+ parseRecordIntent(raw: unknown): apiModule.RecordIntent | null;
2259
+ createRecordStore(): apiModule.RecordStore;
2260
+ recordOwnerText(state: apiModule.RecordState): string;
2261
+ RECORD_STALE_MS: number;
2262
+ firstProblemOf(root: ParentNode): Element | null;
2263
+ revealFirstProblem(root: ParentNode): boolean;
2100
2264
  parseCardsReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCardsReport>;
2101
2265
  parseCrashReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCrashReport>;
2102
2266
  createPanelStateStore(): apiModule.PanelStateStore;
@@ -2186,7 +2350,35 @@ export declare const kit: {
2186
2350
  CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle, }: apiModule.CardHeadProps): JSX.Element;
2187
2351
  ChoiceGroup(props: apiModule.ChoiceGroupProps): JSX.Element;
2188
2352
  Field({ label, hint, children }: apiModule.FieldProps): JSX.Element;
2353
+ Form(props: apiModule.FormProps): JSX.Element;
2189
2354
  FormActions({ actions }: apiModule.FormActionsProps): JSX.Element | null;
2355
+ visibleFieldsOf(fields: readonly apiModule.FormField[]): readonly apiModule.FormField[];
2356
+ duplicateKeysOf(fields: readonly apiModule.FormField[]): readonly string[];
2357
+ reportDuplicateKeys(fields: readonly apiModule.FormField[]): void;
2358
+ formValuesOf(fields: readonly apiModule.FormField[]): Readonly<Record<string, apiModule.FormValue>>;
2359
+ formProblemsOf(fields: readonly apiModule.FormField[], show: boolean): Readonly<Record<string, apiModule.ReactNode | undefined>>;
2360
+ formFirstProblemOf(fields: readonly apiModule.FormField[], problems: Readonly<Record<string, apiModule.ReactNode | undefined>>): apiModule.FormField | undefined;
2361
+ formSubmitOf(fields: readonly apiModule.FormField[]): apiModule.FormSubmitOutcome;
2362
+ formActionsOf(args: {
2363
+ readonly extra: readonly apiModule.FormAction[] | undefined;
2364
+ readonly cancel: {
2365
+ readonly label: apiModule.ReactNode;
2366
+ readonly onClick: () => void;
2367
+ } | undefined;
2368
+ readonly submit: {
2369
+ readonly label: apiModule.ReactNode;
2370
+ readonly busyLabel?: apiModule.ReactNode | undefined;
2371
+ };
2372
+ readonly busy: boolean;
2373
+ readonly disabled: boolean;
2374
+ readonly onSubmitClick: () => void;
2375
+ }): readonly apiModule.FormAction[];
2376
+ formRowsOf(args: {
2377
+ readonly fields: readonly apiModule.FormField[];
2378
+ readonly problems: Readonly<Record<string, apiModule.ReactNode | undefined>>;
2379
+ readonly showProblem: boolean;
2380
+ readonly busy: boolean;
2381
+ }): readonly apiModule.ReactNode[];
2190
2382
  FormRows({ children }: apiModule.FormRowsProps): JSX.Element;
2191
2383
  FormRow({ label, hint, problem, layout, children }: apiModule.FormRowProps): JSX.Element;
2192
2384
  Link({ href, children, title, external, className }: apiModule.LinkProps): JSX.Element;
@@ -2211,6 +2403,26 @@ export declare const kit: {
2211
2403
  stepSelectCursor(shown: readonly apiModule.SelectFieldOption[], cursor: number | null, step: 1 | -1): number | null;
2212
2404
  selectEntries(shown: readonly apiModule.SelectFieldOption[], emptyText: string | undefined, revealId?: string | undefined): readonly import("@deepseek-ai/dsh-client-ui-primitives").MenuEntry[];
2213
2405
  SelectField(props: apiModule.SelectFieldProps): apiModule.ReactNode;
2406
+ selectTriggerNode(args: {
2407
+ readonly id: string | undefined;
2408
+ readonly className: string;
2409
+ readonly disabled: boolean;
2410
+ readonly invalid: boolean;
2411
+ readonly open: boolean;
2412
+ readonly ariaLabel: string | undefined;
2413
+ readonly title: string | undefined;
2414
+ readonly icon: apiModule.ReactNode | undefined;
2415
+ readonly value: apiModule.ReactNode;
2416
+ readonly iconOnly: boolean;
2417
+ readonly onOpen: () => void;
2418
+ }): apiModule.ReactNode;
2419
+ selectLoadingNode(args: {
2420
+ readonly id: string | undefined;
2421
+ readonly className: string;
2422
+ readonly invalid: boolean;
2423
+ readonly ariaLabel: string | undefined;
2424
+ readonly loadingText: string | undefined;
2425
+ }): apiModule.ReactNode;
2214
2426
  SettingsSection({ label, title, action, children }: apiModule.SettingsSectionProps): JSX.Element;
2215
2427
  Spinner({ size, label }: apiModule.SpinnerProps): JSX.Element;
2216
2428
  Stack({ children }: apiModule.StackProps): JSX.Element;
@@ -2233,6 +2445,8 @@ export declare const kit: {
2233
2445
  PANEL_STATE_PATH: "panel-state";
2234
2446
  DIY_DEBUG_PATH: "diy-debug";
2235
2447
  DIY_DEBUG_ACT_PATH: "diy-debug/act";
2448
+ DIY_RECORD_PATH: "diy-record";
2449
+ DIY_RECORD_ACT_PATH: "diy-record/act";
2236
2450
  PANEL_STATE_PREFIX: "/workbench/api/panel-state";
2237
2451
  OPENCLI_PIN: "1.8.8";
2238
2452
  CODING_ISSUES_SERVICE: "workbenchCodingIssues";
@@ -2240,6 +2454,8 @@ export declare const kit: {
2240
2454
  UNITS_SERVICE: "workbenchUnits";
2241
2455
  PANEL_STATE_SERVICE: "workbenchPanelState";
2242
2456
  DIY_DEBUG_SERVICE: "workbenchDiyDebug";
2457
+ DIY_RECORD_SERVICE: "workbenchDiyRecord";
2458
+ SESSION_PROJECTIONS_SERVICE: "sessionProjections";
2243
2459
  PANEL_LIST_LIMIT: 50;
2244
2460
  OPENCLI_TIMEOUT_MS: 120000;
2245
2461
  OPENCLI_MAX_CONCURRENT: 4;
@@ -2676,22 +2892,35 @@ export declare const kit: {
2676
2892
  readonly "configSync.noSource": "\u8FD9\u53F0\u673A\u5668\u4E0A\u53EA\u6709\u5DE5\u4F5C\u53F0\u8FD9\u4E00\u4E2A profile\uFF0C\u6CA1\u6709\u53EF\u540C\u6B65\u7684\u6765\u6E90";
2677
2893
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
2678
2894
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
2679
- readonly "debug.status": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
2680
- readonly "debug.status.trouble": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u5F02\u5E38";
2681
- readonly "debug.stalled": "\u5DE5\u4F5C\u53F0 DIY \u8C03\u8BD5\u6682\u505C";
2895
+ readonly "debug.workspace": "\u8FD9\u4E2A\u5DE5\u4F5C\u533A";
2896
+ readonly "debug.status": "\u300C{title}\u300D\u8C03\u8BD5\u4E2D";
2897
+ readonly "debug.status.trouble": "\u8C03\u8BD5\u8981\u4F60\u770B\u4E00\u773C\uFF08{title}\uFF09";
2898
+ readonly "debug.stalled": "\u8C03\u8BD5\u5DF2\u6682\u505C\uFF08{title}\uFF09";
2682
2899
  readonly "debug.act.pause": "\u6682\u505C\u8C03\u8BD5";
2683
2900
  readonly "debug.act.resume": "\u7EE7\u7EED\u8C03\u8BD5";
2684
2901
  readonly "debug.act.stop": "\u7ED3\u675F\u8C03\u8BD5";
2685
2902
  readonly "debug.act.stop.ask": "\u786E\u8BA4\u7ED3\u675F";
2686
- readonly "debug.card.here.title": "\u5F53\u524D\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
2903
+ readonly "debug.card.here.title": "\u6B63\u5728\u8C03\u8BD5\u300C{title}\u300D";
2687
2904
  readonly "debug.card.here.note": "\u8BF7\u52FF\u5207\u6362\u5DE5\u4F5C\u533A\u548C\u64CD\u4F5C\u9762\u677F";
2688
- readonly "debug.card.away.title": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
2689
- readonly "debug.card.away.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0 DIY \u5DE5\u4F5C\u533A";
2905
+ readonly "debug.card.away.note": "\u8BF7\u5207\u56DE\u300C{title}\u300D\u90A3\u4E00\u5C4F";
2690
2906
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
2691
- readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
2692
- readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
2907
+ readonly "debug.card.hidden.note": "\u8BF7\u5207\u56DE\u5DE5\u4F5C\u53F0\u9762\u677F";
2908
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
2909
+ 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";
2910
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
2911
+ 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";
2912
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
2913
+ 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";
2914
+ readonly "record.act.cancel": "\u53D6\u6D88";
2915
+ readonly "record.act.halt": "\u505C";
2916
+ readonly "approval.record.site": "\u7AD9\u70B9";
2917
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
2918
+ readonly "approval.record.lands": "\u843D\u70B9";
2919
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
2920
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
2921
+ 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";
2693
2922
  };
2694
- 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", string>;
2923
+ 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.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.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>;
2695
2924
  };
2696
2925
  mergeMessages(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.Dictionaries;
2697
2926
  mergeMessagesSkipping(base: apiModule.Dictionaries, contributions: readonly MessagesContribution[]): apiModule.MessagesMerge;
@@ -3105,33 +3334,50 @@ export declare const kit: {
3105
3334
  readonly "configSync.noSource": "\u8FD9\u53F0\u673A\u5668\u4E0A\u53EA\u6709\u5DE5\u4F5C\u53F0\u8FD9\u4E00\u4E2A profile\uFF0C\u6CA1\u6709\u53EF\u540C\u6B65\u7684\u6765\u6E90";
3106
3335
  readonly "configSync.emptyProviders": "\u5DE5\u4F5C\u53F0\u8FD8\u6CA1\u6709\u4EFB\u4F55\u6A21\u578B\u4F9B\u5E94\u5546 \u2014\u2014 \u53BB\u300C\u914D\u7F6E\u540C\u6B65\u300D\u4ECE\u67D0\u4E2A profile \u628A llm- \u90A3\u51E0\u884C\u642C\u8FC7\u6765\uFF0C\u6216\u81EA\u5DF1\u53BB\u300C\u6A21\u578B\u300D\u91CC\u914D\u3002";
3107
3336
  readonly "configSync.failed": "\u540C\u6B65\u6CA1\u6210\u529F\uFF0C\u518D\u8BD5\u4E00\u6B21\u3002";
3108
- readonly "debug.status": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
3109
- readonly "debug.status.trouble": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u5F02\u5E38";
3110
- readonly "debug.stalled": "\u5DE5\u4F5C\u53F0 DIY \u8C03\u8BD5\u6682\u505C";
3337
+ readonly "debug.workspace": "\u8FD9\u4E2A\u5DE5\u4F5C\u533A";
3338
+ readonly "debug.status": "\u300C{title}\u300D\u8C03\u8BD5\u4E2D";
3339
+ readonly "debug.status.trouble": "\u8C03\u8BD5\u8981\u4F60\u770B\u4E00\u773C\uFF08{title}\uFF09";
3340
+ readonly "debug.stalled": "\u8C03\u8BD5\u5DF2\u6682\u505C\uFF08{title}\uFF09";
3111
3341
  readonly "debug.act.pause": "\u6682\u505C\u8C03\u8BD5";
3112
3342
  readonly "debug.act.resume": "\u7EE7\u7EED\u8C03\u8BD5";
3113
3343
  readonly "debug.act.stop": "\u7ED3\u675F\u8C03\u8BD5";
3114
3344
  readonly "debug.act.stop.ask": "\u786E\u8BA4\u7ED3\u675F";
3115
- readonly "debug.card.here.title": "\u5F53\u524D\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
3345
+ readonly "debug.card.here.title": "\u6B63\u5728\u8C03\u8BD5\u300C{title}\u300D";
3116
3346
  readonly "debug.card.here.note": "\u8BF7\u52FF\u5207\u6362\u5DE5\u4F5C\u533A\u548C\u64CD\u4F5C\u9762\u677F";
3117
- readonly "debug.card.away.title": "\u5DE5\u4F5C\u53F0 DIY \u5F00\u53D1\u8C03\u8BD5\u4E2D";
3118
- readonly "debug.card.away.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0 DIY \u5DE5\u4F5C\u533A";
3347
+ readonly "debug.card.away.note": "\u8BF7\u5207\u56DE\u300C{title}\u300D\u90A3\u4E00\u5C4F";
3119
3348
  readonly "debug.card.paused.note": "\u5DF2\u6682\u505C";
3120
- readonly "debug.card.hidden.note": "\u8BF7\u5207\u6362\u5230\u5DE5\u4F5C\u53F0\u9762\u677F";
3121
- readonly "debug.back": "\u56DE\u5230\u5DE5\u574A\u90A3\u4E00\u5C4F";
3349
+ readonly "debug.card.hidden.note": "\u8BF7\u5207\u56DE\u5DE5\u4F5C\u53F0\u9762\u677F";
3350
+ readonly "record.waiting": "\u53D6\u8BC1\u4EA4\u63A5 \u00B7 \u7B49\u4F60\u51FA\u624B";
3351
+ 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";
3352
+ readonly "record.recording": "\u5F55\u5236\u4E2D";
3353
+ 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";
3354
+ readonly "record.finished": "\u5F55\u5236\u5B8C\u6210";
3355
+ 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";
3356
+ readonly "record.act.cancel": "\u53D6\u6D88";
3357
+ readonly "record.act.halt": "\u505C";
3358
+ readonly "approval.record.site": "\u7AD9\u70B9";
3359
+ readonly "approval.record.what": "\u5F55\u5236\u529F\u80FD";
3360
+ readonly "approval.record.lands": "\u843D\u70B9";
3361
+ readonly "approval.record.noUrl": "\u6CA1\u7ED9\u7AD9\u70B9\u5730\u5740\uFF08\u8FD9\u6B21\u4F1A\u88AB\u5F53\u573A\u62D2\uFF09";
3362
+ readonly "approval.record.oneAction": "\u4E00\u6B21\u64CD\u4F5C";
3363
+ 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";
3122
3364
  };
3123
3365
  blockerPending(busy: boolean, running: string | null): boolean;
3124
3366
  blockerActionLabel(action: apiModule.BlockerActionShape, state: apiModule.BlockerLabelState, t: apiModule.BlockerLabelTranslate): string;
3125
- holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
3126
- firstProblemOf(root: ParentNode): Element | null;
3127
- revealFirstProblem(root: ParentNode): boolean;
3128
3367
  insideWorkshop(root: string, target: string): boolean;
3129
3368
  boardFactOf(probe: apiModule.BoardProbe, workshop: string | null): apiModule.BoardFactState;
3130
3369
  boardSituation(probe: apiModule.BoardProbe, workshop: string | null): apiModule.BoardSituation;
3370
+ holdBusy(since: number | null, now: number, floorMs: number): apiModule.BusyHold;
3131
3371
  parseDebugIntent(value: unknown): apiModule.DebugIntent | null;
3132
3372
  createDebugStore(): apiModule.DebugStore;
3133
3373
  debugOwnerText(state: apiModule.DebugState): string;
3134
3374
  DEBUG_STALE_MS: number;
3375
+ parseRecordIntent(raw: unknown): apiModule.RecordIntent | null;
3376
+ createRecordStore(): apiModule.RecordStore;
3377
+ recordOwnerText(state: apiModule.RecordState): string;
3378
+ RECORD_STALE_MS: number;
3379
+ firstProblemOf(root: ParentNode): Element | null;
3380
+ revealFirstProblem(root: ParentNode): boolean;
3135
3381
  parseCardsReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCardsReport>;
3136
3382
  parseCrashReport(payload: unknown): apiModule.PanelParse<apiModule.PanelCrashReport>;
3137
3383
  createPanelStateStore(): apiModule.PanelStateStore;