@dsh-workbench/shared 1.1.4 → 1.1.6
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.
- package/dist/api/host-write.d.ts +4 -1
- package/dist/api/workbench-client.d.ts +2 -0
- package/dist/components/ApprovalPlan.css +7 -8
- package/dist/config/constants.d.ts +4 -0
- package/dist/config/constants.js +4 -0
- package/dist/contract/approval.d.ts +4 -0
- package/dist/contract/approval.js +4 -0
- package/dist/contract/command.d.ts +33 -0
- package/dist/contract/command.js +1 -1
- package/dist/contract/needs.d.ts +17 -0
- package/dist/contract/needs.js +41 -1
- package/dist/contract/protocol/bundle-install.d.ts +2 -0
- package/dist/contract/protocol/market-index.d.ts +3 -1
- package/dist/contract/protocol/market-index.js +2 -0
- package/dist/contract/unit.d.ts +10 -0
- package/dist/host/adapter-types.d.ts +2 -0
- package/dist/host/data-error.d.ts +2 -0
- package/dist/host/data-error.js +3 -0
- package/dist/host/http.js +1 -0
- package/dist/host/install-failure.d.ts +49 -0
- package/dist/host/install-failure.js +167 -0
- package/dist/host/installed-sources.d.ts +10 -0
- package/dist/host/installed-sources.js +64 -0
- package/dist/host/lib-install.d.ts +12 -1
- package/dist/host/lib-install.js +33 -1
- package/dist/host/market-index-claim.d.ts +2 -0
- package/dist/host/market-index-claim.js +7 -0
- package/dist/host/market-index-doc.d.ts +56 -0
- package/dist/host/market-index-doc.js +1 -0
- package/dist/host/market-index-parse.d.ts +23 -0
- package/dist/host/market-index-parse.js +485 -0
- package/dist/host/market-index.d.ts +13 -21
- package/dist/host/market-index.js +120 -368
- package/dist/host/paths.d.ts +7 -0
- package/dist/host/paths.js +17 -0
- package/dist/host/runtime-links.d.ts +7 -0
- package/dist/host/runtime-links.js +25 -0
- package/dist/host/tool-approval.d.ts +4 -2
- package/dist/host/tool-approval.js +4 -2
- package/dist/host.d.ts +3 -0
- package/dist/host.js +3 -0
- package/dist/i18n/en.js +50 -4
- package/dist/i18n/index.d.ts +51 -5
- package/dist/i18n/zh.d.ts +50 -4
- package/dist/i18n/zh.js +50 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +1 -1
- package/src/api/host-write.ts +5 -1
- package/src/api/workbench-client.ts +2 -0
- package/src/components/ApprovalPlan.css +7 -8
- package/src/config/constants.ts +6 -0
- package/src/contract/__tests__/needs.test.ts +53 -0
- package/src/contract/approval.ts +4 -0
- package/src/contract/command.ts +22 -0
- package/src/contract/needs.ts +56 -1
- package/src/contract/protocol/bundle-install.ts +3 -0
- package/src/contract/protocol/market-index.ts +4 -0
- package/src/contract/unit.ts +11 -0
- package/src/host/__tests__/market-index.test.ts +114 -0
- package/src/host/adapter-types.ts +2 -0
- package/src/host/data-error.ts +3 -1
- package/src/host/http.ts +1 -0
- package/src/host/install-failure.test.ts +121 -0
- package/src/host/install-failure.ts +198 -0
- package/src/host/installed-sources.test.ts +80 -0
- package/src/host/installed-sources.ts +73 -0
- package/src/host/lib-install.ts +38 -2
- package/src/host/market-index-claim.ts +9 -0
- package/src/host/market-index-doc.ts +62 -0
- package/src/host/market-index-parse.ts +482 -0
- package/src/host/market-index.ts +162 -357
- package/src/host/paths.test.ts +26 -0
- package/src/host/paths.ts +18 -0
- package/src/host/runtime-links.test.ts +31 -0
- package/src/host/runtime-links.ts +23 -0
- package/src/host/tool-approval.ts +11 -4
- package/src/host.ts +3 -0
- package/src/i18n/en.ts +51 -4
- package/src/i18n/zh.ts +51 -4
- package/src/index.ts +1 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { APPROVAL_NOTE_ARG } from '../contract/approval.js';
|
|
1
2
|
export type AskDecision = {
|
|
2
3
|
readonly kind: 'ask';
|
|
3
4
|
readonly reason: string;
|
|
@@ -16,7 +17,6 @@ export interface ApprovalDetail {
|
|
|
16
17
|
export type ApprovalFacts = ApprovalDetail | {
|
|
17
18
|
readonly blocked: string;
|
|
18
19
|
};
|
|
19
|
-
export declare const APPROVAL_NOTE_ARG = "approval_note";
|
|
20
20
|
export declare const APPROVAL_NOTE_LIMIT = 40;
|
|
21
21
|
export declare const APPROVAL_DETAIL_LIMIT = 20;
|
|
22
22
|
export declare const APPROVAL_QUESTION_LIMIT = 40;
|
|
@@ -33,7 +33,8 @@ export interface ApprovalCall {
|
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* 套件对一次写调用给出的判定:`read` 只是看看、`allow` 会写但本套件不问、`deny` 这一次根本跑不成
|
|
36
|
-
* (连问都不该问,`reason` 原样交给 agent)、`ask` 要用户点头(`question` 接在明细后,`fallback`
|
|
36
|
+
* (连问都不该问,`reason` 原样交给 agent)、`ask` 要用户点头(`question` 接在明细后,`fallback` 是没明细时的整句;
|
|
37
|
+
* `noteInDetail` 为真表示套件把 agent 的附注画在自己的详情座里,标题只留动作、不再追加)。
|
|
37
38
|
*/
|
|
38
39
|
export type ApprovalVerdict = {
|
|
39
40
|
readonly kind: 'read';
|
|
@@ -47,6 +48,7 @@ export type ApprovalVerdict = {
|
|
|
47
48
|
readonly reason: string;
|
|
48
49
|
readonly question: ApprovalDetail;
|
|
49
50
|
readonly fallback: ApprovalDetail;
|
|
51
|
+
readonly noteInDetail?: boolean;
|
|
50
52
|
};
|
|
51
53
|
export type ApprovalPolicy = (call: ApprovalCall) => ApprovalVerdict | undefined;
|
|
52
54
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { APPROVAL_NOTE_ARG } from '../contract/approval.js';
|
|
2
|
+
import { APPROVAL_NOTE_ARG } from '../contract/approval.js';
|
|
2
3
|
export const APPROVAL_NOTE_LIMIT = 40;
|
|
3
4
|
export const APPROVAL_DETAIL_LIMIT = 20;
|
|
4
5
|
export const APPROVAL_QUESTION_LIMIT = 40;
|
|
@@ -85,9 +86,10 @@ export async function approvalFor(call, context = {}) {
|
|
|
85
86
|
return { kind: 'deny', reason: facts.blocked };
|
|
86
87
|
if (context.skipAsk === true)
|
|
87
88
|
return undefined;
|
|
89
|
+
const note = context.declaredNote === true && verdict.noteInDetail !== true ? approvalNoteOf(call) : undefined;
|
|
88
90
|
return {
|
|
89
91
|
kind: 'ask',
|
|
90
92
|
reason: verdict.reason,
|
|
91
|
-
displayReason: compose(facts, verdict,
|
|
93
|
+
displayReason: compose(facts, verdict, note),
|
|
92
94
|
};
|
|
93
95
|
}
|
package/dist/host.d.ts
CHANGED
|
@@ -42,6 +42,8 @@ export * from './host/data-root.js';
|
|
|
42
42
|
export * from './host/shell-text.js';
|
|
43
43
|
export * from './host/shell.js';
|
|
44
44
|
export * from './host/data-error.js';
|
|
45
|
+
export * from './host/install-failure.js';
|
|
46
|
+
export * from './host/runtime-links.js';
|
|
45
47
|
export * from './host/provision.js';
|
|
46
48
|
export * from './host/channel-plugin.js';
|
|
47
49
|
export * from './host/recipe.js';
|
|
@@ -75,3 +77,4 @@ export * from './host/version-range.js';
|
|
|
75
77
|
export * from './host/market-index.js';
|
|
76
78
|
export * from './host/market-index-claim.js';
|
|
77
79
|
export * from './host/changelog.js';
|
|
80
|
+
export * from './host/installed-sources.js';
|
package/dist/host.js
CHANGED
|
@@ -42,6 +42,8 @@ export * from './host/data-root.js';
|
|
|
42
42
|
export * from './host/shell-text.js';
|
|
43
43
|
export * from './host/shell.js';
|
|
44
44
|
export * from './host/data-error.js';
|
|
45
|
+
export * from './host/install-failure.js';
|
|
46
|
+
export * from './host/runtime-links.js';
|
|
45
47
|
export * from './host/provision.js';
|
|
46
48
|
export * from './host/channel-plugin.js';
|
|
47
49
|
export * from './host/recipe.js';
|
|
@@ -75,3 +77,4 @@ export * from './host/version-range.js';
|
|
|
75
77
|
export * from './host/market-index.js';
|
|
76
78
|
export * from './host/market-index-claim.js';
|
|
77
79
|
export * from './host/changelog.js';
|
|
80
|
+
export * from './host/installed-sources.js';
|
package/dist/i18n/en.js
CHANGED
|
@@ -129,11 +129,14 @@ export const en = {
|
|
|
129
129
|
'panels.market.update': 'Update',
|
|
130
130
|
'panels.market.swapSlow': 'Not swapped yet — maybe a slow or failed download. Press Update again; if it stays like this, restart dsh.',
|
|
131
131
|
'panels.market.removeSlow': 'Not removed yet — maybe a slow network or an uninstall that did not finish. Check again in a moment; if it stays like this, restart dsh.',
|
|
132
|
-
'panels.market.updateNoChange': 'Update
|
|
132
|
+
'panels.market.updateNoChange': 'Update did not swap in: still {from}; the registry has {latest}.',
|
|
133
133
|
'panels.market.updateUnknownVersion': '(unknown)',
|
|
134
134
|
'panels.market.updateGone': 'Update failed: the module is gone after the update.',
|
|
135
135
|
'panels.market.updateRestored': 'Update failed: the new version could not be found after the update, so {version} was put back.',
|
|
136
|
-
'panels.market.updateBehind': 'Installed {installed}, but the
|
|
136
|
+
'panels.market.updateBehind': 'Installed {installed}, but the registry has {latest}.',
|
|
137
|
+
'panels.market.updateStuck.title': 'Update did not swap in',
|
|
138
|
+
'panels.market.updateStuck.factNoChange': 'Still {from} on disk; the registry has {latest}.',
|
|
139
|
+
'panels.market.updateStuck.copiedHint': 'Paste it into a terminal, then restart the workbench once.',
|
|
137
140
|
'panels.market.selfUpdateFailed': 'Workbench update failed: {reason}',
|
|
138
141
|
'panels.market.selfUpdateUnknown': 'the outside process left no reason (see ~/.dsh/workbench/self-update.log)',
|
|
139
142
|
'panels.market.selfUpdateRolledBack': 'Workbench update failed; rolled back to {version}.',
|
|
@@ -149,6 +152,40 @@ export const en = {
|
|
|
149
152
|
'panels.market.confirmNo': 'Cancel',
|
|
150
153
|
'panels.market.noMarketSource': 'The index has no newer version of this module (refresh the index and retry)',
|
|
151
154
|
'panels.market.failed': 'Failed: {reason}',
|
|
155
|
+
'panels.market.askAgent': 'Ask the agent',
|
|
156
|
+
'panels.market.askAgentCopied': 'Copied',
|
|
157
|
+
'panels.market.askAgentText': 'This workbench module cannot be used: "{name}" (unit {unit}) — {reason}. Work out what is missing and how to add it, then confirm it works.',
|
|
158
|
+
'panels.market.failure.permission': "Didn't install: no write access",
|
|
159
|
+
'panels.market.failure.diskFull': "Didn't install: the disk is full",
|
|
160
|
+
'panels.market.failure.sandbox': "Didn't install: the system blocked it",
|
|
161
|
+
'panels.market.failure.unknown': "Didn't install: cause not recognised",
|
|
162
|
+
'panels.market.failure.factOwner': '{path} belongs to {owner}, and this account ({me}) cannot write to it. Hand it back to yourself (asks for your login password).',
|
|
163
|
+
'panels.market.failure.factMode': '{path} is mode {mode}, so this account cannot write to it.',
|
|
164
|
+
'panels.market.failure.factSpace': 'The disk holding {path} is full.',
|
|
165
|
+
'panels.market.failure.factStuck': 'This command ran in a restricted environment and cannot write to {path}.',
|
|
166
|
+
'panels.market.failure.nowhere': '(the directory was not identified)',
|
|
167
|
+
'panels.market.failure.copyFix': 'Copy the fix command',
|
|
168
|
+
'panels.market.failure.copied': 'Copied',
|
|
169
|
+
'panels.market.failure.copiedHint': 'Paste it in a terminal, run it, then click Check again.',
|
|
170
|
+
'panels.market.failure.askAgent': 'Copy for the agent',
|
|
171
|
+
'panels.market.failure.askAgentText': 'Installing this module could not write: `{command}` exited {code} at {path}. Work out whether the sandbox or file permissions blocked it, then install again somewhere writable.',
|
|
172
|
+
'panels.market.failure.askAgentHint': 'Paste it into the chat and let the agent carry on.',
|
|
173
|
+
'panels.market.failure.recheck': 'Check again',
|
|
174
|
+
'panels.market.failure.showOutput': 'Show install output',
|
|
175
|
+
'panels.market.failure.hideOutput': 'Hide install output',
|
|
176
|
+
'panels.market.failure.term.commandLine': 'command on line {line}',
|
|
177
|
+
'panels.market.failure.term.signal': 'killed by {signal}',
|
|
178
|
+
'panels.market.failure.term.exitCode': 'exit code {exitCode}',
|
|
179
|
+
'panels.market.failure.term.noExitCode': 'no exit code',
|
|
180
|
+
'panels.market.failure.term.running': 'running',
|
|
181
|
+
'panels.market.failure.term.failed': 'failed',
|
|
182
|
+
'panels.market.failure.term.done': 'done',
|
|
183
|
+
'panels.market.failure.term.copy': 'Copy',
|
|
184
|
+
'panels.market.failure.term.copied': 'Copied',
|
|
185
|
+
'panels.market.failure.term.noOutput': 'No output',
|
|
186
|
+
'panels.market.failure.term.collapse': 'Collapse',
|
|
187
|
+
'panels.market.failure.term.expandAria': 'Show the remaining {hidden} lines',
|
|
188
|
+
'panels.market.failure.term.expand': 'Show {hidden} lines',
|
|
152
189
|
'panels.market.needEnv': 'Set {env} in the terminal that started the workbench first',
|
|
153
190
|
'panels.market.needCommands': 'Missing commands: {commands}',
|
|
154
191
|
'panels.market.needBinary': 'Install the {command} command first',
|
|
@@ -185,9 +222,13 @@ export const en = {
|
|
|
185
222
|
'panels.market.restartNeeded': 'The new version is installed — restart once to pick it up.',
|
|
186
223
|
'panels.market.foot': 'After installing, enable it in the panel page of that project.',
|
|
187
224
|
'panels.market.checkUpdates': 'Check for updates',
|
|
225
|
+
'panels.market.checkAll': 'Check all updates',
|
|
188
226
|
'panels.market.checkingNow': 'Checking…',
|
|
189
227
|
'panels.market.checkFailed': 'The last check failed. Check your connection and retry.',
|
|
190
228
|
'panels.market.checkedAt': 'Last checked: {time}',
|
|
229
|
+
'panels.market.latestPartial': 'Could not check {n} modules',
|
|
230
|
+
'panels.market.latestNoRegistry': 'No source configured — the latest version was not checked',
|
|
231
|
+
'panels.market.latestProbeFailed': 'Could not reach the source — try again later',
|
|
191
232
|
'panels.market.justNow': 'just now',
|
|
192
233
|
'panels.market.minutesAgo': '{n} min ago',
|
|
193
234
|
'panels.market.hoursAgo': '{n} h ago',
|
|
@@ -246,6 +287,8 @@ export const en = {
|
|
|
246
287
|
'panels.market.add.failurePermission': 'No write permission, cannot install',
|
|
247
288
|
'panels.market.add.failureBuildBlocked': 'A dependency wants to run install scripts; you have to allow it first',
|
|
248
289
|
'panels.market.add.failureIntegrity': 'The downloaded package failed its integrity check',
|
|
290
|
+
'panels.market.add.failureStopProfile': 'The old copy is still in use (the workbench has this module loaded), so this dsh version will not overwrite it in place.',
|
|
291
|
+
'panels.market.add.failureCancelled': 'This run was cancelled and nothing changed.',
|
|
249
292
|
'panels.market.add.failureTimeout': 'The install timed out',
|
|
250
293
|
'panels.market.add.failurePnpmMissing': 'pnpm was not found, cannot install',
|
|
251
294
|
'panels.market.add.failureInstalled': 'It is already installed in this workbench. The same package cannot be installed over itself: uninstall it first, then install again. The uninstall did not succeed this time.',
|
|
@@ -329,7 +372,7 @@ export const en = {
|
|
|
329
372
|
'panels.discover.missingIndex': 'This repository has no {path} yet.',
|
|
330
373
|
'panels.discover.initTitle': 'Initialize this repository as a module market index?',
|
|
331
374
|
'panels.discover.initCta': 'Initialize market index',
|
|
332
|
-
'panels.discover.initWhat': 'It will write market
|
|
375
|
+
'panels.discover.initWhat': 'It will write the index directory market/ and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under artifacts/<package-name>/<version>/ and their entry under market/<package-name>/<version>.json. The repository stays owned by its owner.',
|
|
333
376
|
'panels.discover.initBranch': 'Branch',
|
|
334
377
|
'panels.discover.initBranchHint': 'The index and build files go to this branch; an empty repository gets it created.',
|
|
335
378
|
'panels.discover.initBranchBad': 'Use only letters, digits, dots, underscores, slashes, or dashes in a branch name.',
|
|
@@ -652,6 +695,9 @@ export const en = {
|
|
|
652
695
|
'approval.record.noSwitch': 'it will not switch you back (the leftbar footer shows the state)',
|
|
653
696
|
'approval.longTask.what': 'Task to stop',
|
|
654
697
|
'approval.longTask.signal': 'stopping only sends an interrupt signal \u2014 wrapping up the run is up to the module',
|
|
698
|
+
'approval.plugin.name': 'Plugin',
|
|
699
|
+
'approval.plugin.command': 'Command',
|
|
700
|
+
'approval.plugin.note': 'Agent says',
|
|
655
701
|
'approval.publish.module': 'Module',
|
|
656
702
|
'approval.publish.target': 'Target',
|
|
657
703
|
'approval.publish.version': 'Version',
|
|
@@ -671,7 +717,7 @@ export const en = {
|
|
|
671
717
|
'approval.publish.artifacts': 'Build files',
|
|
672
718
|
'approval.publish.index': 'Index',
|
|
673
719
|
'approval.publish.commits': 'Commits',
|
|
674
|
-
'approval.publish.twoCommits': 'build files +
|
|
720
|
+
'approval.publish.twoCommits': 'build files + entry file in 2 commits, one push',
|
|
675
721
|
'approval.publish.reading': 'Reading…',
|
|
676
722
|
'approval.publish.changelog': 'Changelog for {version}',
|
|
677
723
|
'approval.publish.changelogPending': 'This release writes the {version} changelog entry',
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -139,11 +139,14 @@ export declare const dictionaries: {
|
|
|
139
139
|
readonly 'panels.market.update': "更新";
|
|
140
140
|
readonly 'panels.market.swapSlow': "还没换上:可能网慢或没装上。再点一次「更新」;一直这样就把 dsh 重启一遍。";
|
|
141
141
|
readonly 'panels.market.removeSlow': "还没卸掉:可能网慢或卸载没走完。等一下再看;一直这样就把 dsh 重启一遍。";
|
|
142
|
-
readonly 'panels.market.updateNoChange': "
|
|
142
|
+
readonly 'panels.market.updateNoChange': "更新没换上:还是 {from};源上最新是 {latest}。";
|
|
143
143
|
readonly 'panels.market.updateUnknownVersion': "(问不到)";
|
|
144
144
|
readonly 'panels.market.updateGone': "更新失败:更新后找不到这个模块。";
|
|
145
145
|
readonly 'panels.market.updateRestored': "更新失败:更新后找不到新版本,已把 {version} 装回去。";
|
|
146
|
-
readonly 'panels.market.updateBehind': "装上了 {installed},但源上最新是 {latest}
|
|
146
|
+
readonly 'panels.market.updateBehind': "装上了 {installed},但源上最新是 {latest}。";
|
|
147
|
+
readonly 'panels.market.updateStuck.title': "更新没换上";
|
|
148
|
+
readonly 'panels.market.updateStuck.factNoChange': "盘上还是 {from};源上最新是 {latest}。";
|
|
149
|
+
readonly 'panels.market.updateStuck.copiedHint': "粘到终端跑一次,跑完重启一次工作台。";
|
|
147
150
|
readonly 'panels.market.selfUpdateFailed': "工作台更新失败:{reason}";
|
|
148
151
|
readonly 'panels.market.selfUpdateUnknown': "外部进程没留下原因(看 ~/.dsh/workbench/self-update.log)";
|
|
149
152
|
readonly 'panels.market.selfUpdateRolledBack': "工作台更新失败,已回滚到 {version}。";
|
|
@@ -159,6 +162,40 @@ export declare const dictionaries: {
|
|
|
159
162
|
readonly 'panels.market.confirmNo': "取消";
|
|
160
163
|
readonly 'panels.market.noMarketSource': "索引里没有这个模块的新版本(刷新一次索引再试)";
|
|
161
164
|
readonly 'panels.market.failed': "没成功:{reason}";
|
|
165
|
+
readonly 'panels.market.askAgent': "问 agent";
|
|
166
|
+
readonly 'panels.market.askAgentCopied': "已复制";
|
|
167
|
+
readonly 'panels.market.askAgentText': "工作台里「{name}」(单元 {unit})用不了:{reason}。帮我查清缺什么、怎么补,补完确认真能用。";
|
|
168
|
+
readonly 'panels.market.failure.permission': "没装上:没有写入权限";
|
|
169
|
+
readonly 'panels.market.failure.diskFull': "没装上:磁盘满了";
|
|
170
|
+
readonly 'panels.market.failure.sandbox': "没装上:被系统拦住了";
|
|
171
|
+
readonly 'panels.market.failure.unknown': "没装上:原因没认出来";
|
|
172
|
+
readonly 'panels.market.failure.factOwner': "{path} 属于 {owner},当前账号({me})写不进去。把它还给自己就行(会要开机密码)。";
|
|
173
|
+
readonly 'panels.market.failure.factMode': "{path} 的权限是 {mode},当前账号没有写权限。";
|
|
174
|
+
readonly 'panels.market.failure.factSpace': "{path} 所在的磁盘满了。";
|
|
175
|
+
readonly 'panels.market.failure.factStuck': "这条命令跑在受限环境里,写不进 {path}。";
|
|
176
|
+
readonly 'panels.market.failure.nowhere': "(没认出是哪个目录)";
|
|
177
|
+
readonly 'panels.market.failure.copyFix': "复制修复命令";
|
|
178
|
+
readonly 'panels.market.failure.copied': "已复制";
|
|
179
|
+
readonly 'panels.market.failure.copiedHint': "粘到终端跑一次,回来点「再检测」。";
|
|
180
|
+
readonly 'panels.market.failure.askAgent': "复制给 agent";
|
|
181
|
+
readonly 'panels.market.failure.askAgentText': "装这个模块时写不进去:`{command}` 退出码 {code},卡在 {path}。帮我看看是被沙箱拦的还是权限问题,换一条能写进去的路再装。";
|
|
182
|
+
readonly 'panels.market.failure.askAgentHint': "粘到对话里,让 agent 接着弄。";
|
|
183
|
+
readonly 'panels.market.failure.recheck': "再检测";
|
|
184
|
+
readonly 'panels.market.failure.showOutput': "查看安装输出";
|
|
185
|
+
readonly 'panels.market.failure.hideOutput': "收起安装输出";
|
|
186
|
+
readonly 'panels.market.failure.term.commandLine': "第 {line} 行的命令";
|
|
187
|
+
readonly 'panels.market.failure.term.signal': "被 {signal} 终止";
|
|
188
|
+
readonly 'panels.market.failure.term.exitCode': "退出码 {exitCode}";
|
|
189
|
+
readonly 'panels.market.failure.term.noExitCode': "没有退出码";
|
|
190
|
+
readonly 'panels.market.failure.term.running': "在跑";
|
|
191
|
+
readonly 'panels.market.failure.term.failed': "没跑通";
|
|
192
|
+
readonly 'panels.market.failure.term.done': "跑完了";
|
|
193
|
+
readonly 'panels.market.failure.term.copy': "复制";
|
|
194
|
+
readonly 'panels.market.failure.term.copied': "已复制";
|
|
195
|
+
readonly 'panels.market.failure.term.noOutput': "没有输出";
|
|
196
|
+
readonly 'panels.market.failure.term.collapse': "收起";
|
|
197
|
+
readonly 'panels.market.failure.term.expandAria': "展开剩下的 {hidden} 行";
|
|
198
|
+
readonly 'panels.market.failure.term.expand': "展开 {hidden} 行";
|
|
162
199
|
readonly 'panels.market.needEnv': "先在启动工作台的终端里设 {env}";
|
|
163
200
|
readonly 'panels.market.needCommands': "缺这几条命令:{commands}";
|
|
164
201
|
readonly 'panels.market.needBinary': "先装 {command} 命令";
|
|
@@ -195,9 +232,13 @@ export declare const dictionaries: {
|
|
|
195
232
|
readonly 'panels.market.restartNeeded': "新版装好了,重启一次才生效。";
|
|
196
233
|
readonly 'panels.market.foot': "装好后到那个项目的面板页勾选它,模块才会出现。";
|
|
197
234
|
readonly 'panels.market.checkUpdates': "检查更新";
|
|
235
|
+
readonly 'panels.market.checkAll': "检查全部更新";
|
|
198
236
|
readonly 'panels.market.checkingNow': "正在检查…";
|
|
199
237
|
readonly 'panels.market.checkFailed': "最近一次没查到,检查网络后重试";
|
|
200
238
|
readonly 'panels.market.checkedAt': "最近检查:{time}";
|
|
239
|
+
readonly 'panels.market.latestPartial': "{n} 个模块没查成";
|
|
240
|
+
readonly 'panels.market.latestNoRegistry': "没配来源,未检查新版";
|
|
241
|
+
readonly 'panels.market.latestProbeFailed': "问不到源,稍后重试";
|
|
201
242
|
readonly 'panels.market.justNow': "刚刚";
|
|
202
243
|
readonly 'panels.market.minutesAgo': "{n} 分钟前";
|
|
203
244
|
readonly 'panels.market.hoursAgo': "{n} 小时前";
|
|
@@ -256,6 +297,8 @@ export declare const dictionaries: {
|
|
|
256
297
|
readonly 'panels.market.add.failurePermission': "没有写入权限,无法安装";
|
|
257
298
|
readonly 'panels.market.add.failureBuildBlocked': "有依赖的安装脚本需要你允许后才能继续";
|
|
258
299
|
readonly 'panels.market.add.failureIntegrity': "下载的安装包校验失败";
|
|
300
|
+
readonly 'panels.market.add.failureStopProfile': "旧版还在用着(工作台正加载这个模块),这一版 dsh 不肯就地覆盖。";
|
|
301
|
+
readonly 'panels.market.add.failureCancelled': "这次操作被取消了,什么都没动。";
|
|
259
302
|
readonly 'panels.market.add.failureTimeout': "安装超时";
|
|
260
303
|
readonly 'panels.market.add.failurePnpmMissing': "没有找到 pnpm,无法安装";
|
|
261
304
|
readonly 'panels.market.add.failureInstalled': "它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。";
|
|
@@ -339,7 +382,7 @@ export declare const dictionaries: {
|
|
|
339
382
|
readonly 'panels.discover.missingIndex': "仓库里还没有索引文件 {path}";
|
|
340
383
|
readonly 'panels.discover.initTitle': "把这个仓库初始化成模块市场索引?";
|
|
341
384
|
readonly 'panels.discover.initCta': "初始化成市场索引";
|
|
342
|
-
readonly 'panels.discover.initWhat': "会在 {branch}
|
|
385
|
+
readonly 'panels.discover.initWhat': "会在 {branch} 分支写索引目录 market/ 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 artifacts/<包名>/<版本>/,条目写到 market/<包名>/<版本>.json。仓库的写权限归它的所有者。";
|
|
343
386
|
readonly 'panels.discover.initBranch': "分支";
|
|
344
387
|
readonly 'panels.discover.initBranchHint': "索引和打包文件都发到这个分支;空仓库会新建它。";
|
|
345
388
|
readonly 'panels.discover.initBranchBad': "分支名只能用字母、数字、点、下划线、斜杠或短横线";
|
|
@@ -662,6 +705,9 @@ export declare const dictionaries: {
|
|
|
662
705
|
readonly 'approval.record.noSwitch': "录完不会替你切回来(左栏底部会亮一条状态)";
|
|
663
706
|
readonly 'approval.longTask.what': "要停的那次任务";
|
|
664
707
|
readonly 'approval.longTask.signal': "停了只是让工作台发出中断信号 —— 这次任务怎么收尾由模块自己负责";
|
|
708
|
+
readonly 'approval.plugin.name': "插件";
|
|
709
|
+
readonly 'approval.plugin.command': "命令";
|
|
710
|
+
readonly 'approval.plugin.note': "agent 说";
|
|
665
711
|
readonly 'approval.publish.module': "模块";
|
|
666
712
|
readonly 'approval.publish.target': "目标";
|
|
667
713
|
readonly 'approval.publish.version': "版本";
|
|
@@ -681,7 +727,7 @@ export declare const dictionaries: {
|
|
|
681
727
|
readonly 'approval.publish.artifacts': "打包文件";
|
|
682
728
|
readonly 'approval.publish.index': "索引";
|
|
683
729
|
readonly 'approval.publish.commits': "提交";
|
|
684
|
-
readonly 'approval.publish.twoCommits': "打包文件 +
|
|
730
|
+
readonly 'approval.publish.twoCommits': "打包文件 + 条目文件两次提交,一次推送";
|
|
685
731
|
readonly 'approval.publish.reading': "读取中…";
|
|
686
732
|
readonly 'approval.publish.changelog': "{version} 的更新日志";
|
|
687
733
|
readonly 'approval.publish.changelogPending': "{version} 这一版会写进更新日志,随包发布";
|
|
@@ -757,7 +803,7 @@ export declare const dictionaries: {
|
|
|
757
803
|
readonly 'configSync.emptyProviders': "工作台还没有任何模型供应商 —— 去「配置同步」从某个 profile 把模型供应商那几行同步过来,或自己去「模型」里配。";
|
|
758
804
|
readonly 'configSync.failed': "同步没成功,再试一次。";
|
|
759
805
|
};
|
|
760
|
-
en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.noMarketSource" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.updateNeedsWorkbench" | "panels.market.updateIncompatible" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.pendingFollowUp" | "panels.market.migrationHint" | "panels.market.migrateAction" | "panels.market.migrating" | "panels.market.migrateConfirmTitle" | "panels.market.migrateConfirmDetail" | "panels.market.migrateConfirmAck" | "panels.market.migrateConfirmYes" | "panels.market.migrateDone" | "panels.market.dismissFollowUp" | "panels.market.dismissing" | "panels.market.dismissFollowUpTitle" | "panels.market.dismissFollowUpDetail" | "panels.market.dismissFollowUpAck" | "panels.market.dismissFollowUpYes" | "panels.market.dismissed" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.checkUpdates" | "panels.market.checkingNow" | "panels.market.checkFailed" | "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.failureCredentials" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.slowHint" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeTitle" | "panels.discover.removeBody" | "panels.discover.sourceActions" | "panels.discover.sourceStateWritable" | "panels.discover.sourceStateReadOnly" | "panels.discover.sourceEnable" | "panels.discover.sourceDisable" | "panels.discover.sourceWorking" | "panels.discover.sourceEnabled" | "panels.discover.sourceReadOnly" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.clearSearch" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.sourceAuth" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installingNamed" | "panels.discover.cancelInstall" | "panels.discover.cancelling" | "panels.discover.installCancelled" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.transportTitle" | "panels.discover.transportSsh" | "panels.discover.transportHttps" | "panels.discover.transportOk" | "panels.discover.transportAuth" | "panels.discover.transportUnreachable" | "panels.discover.transportUnknown" | "panels.discover.transportChecking" | "panels.discover.transportTest" | "panels.discover.transportPlaceholder" | "panels.discover.transportNeedsAuth" | "panels.discover.transportChange" | "panels.discover.transportChangeHide" | "panels.discover.transportNone" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.update" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.toolchain.ok" | "env.toolchain.warn" | "env.opencli.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "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.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.opencli" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.owner" | "approval.publish.ownerUnowned" | "approval.publish.ownerTaken" | "approval.publish.unit" | "approval.publish.unitTaken" | "approval.publish.path" | "approval.publish.pathTaken" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogPending" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "approval.market.source" | "approval.market.url" | "approval.market.action" | "approval.market.policy" | "approval.market.enable" | "approval.market.disable" | "approval.market.writable" | "approval.market.readOnly" | "approval.market.reading" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
|
|
806
|
+
en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.updateStuck.title" | "panels.market.updateStuck.factNoChange" | "panels.market.updateStuck.copiedHint" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.noMarketSource" | "panels.market.failed" | "panels.market.askAgent" | "panels.market.askAgentCopied" | "panels.market.askAgentText" | "panels.market.failure.permission" | "panels.market.failure.diskFull" | "panels.market.failure.sandbox" | "panels.market.failure.unknown" | "panels.market.failure.factOwner" | "panels.market.failure.factMode" | "panels.market.failure.factSpace" | "panels.market.failure.factStuck" | "panels.market.failure.nowhere" | "panels.market.failure.copyFix" | "panels.market.failure.copied" | "panels.market.failure.copiedHint" | "panels.market.failure.askAgent" | "panels.market.failure.askAgentText" | "panels.market.failure.askAgentHint" | "panels.market.failure.recheck" | "panels.market.failure.showOutput" | "panels.market.failure.hideOutput" | "panels.market.failure.term.commandLine" | "panels.market.failure.term.signal" | "panels.market.failure.term.exitCode" | "panels.market.failure.term.noExitCode" | "panels.market.failure.term.running" | "panels.market.failure.term.failed" | "panels.market.failure.term.done" | "panels.market.failure.term.copy" | "panels.market.failure.term.copied" | "panels.market.failure.term.noOutput" | "panels.market.failure.term.collapse" | "panels.market.failure.term.expandAria" | "panels.market.failure.term.expand" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.updateNeedsWorkbench" | "panels.market.updateIncompatible" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.pendingFollowUp" | "panels.market.migrationHint" | "panels.market.migrateAction" | "panels.market.migrating" | "panels.market.migrateConfirmTitle" | "panels.market.migrateConfirmDetail" | "panels.market.migrateConfirmAck" | "panels.market.migrateConfirmYes" | "panels.market.migrateDone" | "panels.market.dismissFollowUp" | "panels.market.dismissing" | "panels.market.dismissFollowUpTitle" | "panels.market.dismissFollowUpDetail" | "panels.market.dismissFollowUpAck" | "panels.market.dismissFollowUpYes" | "panels.market.dismissed" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.checkUpdates" | "panels.market.checkAll" | "panels.market.checkingNow" | "panels.market.checkFailed" | "panels.market.checkedAt" | "panels.market.latestPartial" | "panels.market.latestNoRegistry" | "panels.market.latestProbeFailed" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureStopProfile" | "panels.market.add.failureCancelled" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.failureCredentials" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.slowHint" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeTitle" | "panels.discover.removeBody" | "panels.discover.sourceActions" | "panels.discover.sourceStateWritable" | "panels.discover.sourceStateReadOnly" | "panels.discover.sourceEnable" | "panels.discover.sourceDisable" | "panels.discover.sourceWorking" | "panels.discover.sourceEnabled" | "panels.discover.sourceReadOnly" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.clearSearch" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.sourceAuth" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installingNamed" | "panels.discover.cancelInstall" | "panels.discover.cancelling" | "panels.discover.installCancelled" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.transportTitle" | "panels.discover.transportSsh" | "panels.discover.transportHttps" | "panels.discover.transportOk" | "panels.discover.transportAuth" | "panels.discover.transportUnreachable" | "panels.discover.transportUnknown" | "panels.discover.transportChecking" | "panels.discover.transportTest" | "panels.discover.transportPlaceholder" | "panels.discover.transportNeedsAuth" | "panels.discover.transportChange" | "panels.discover.transportChangeHide" | "panels.discover.transportNone" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.update" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.toolchain.ok" | "env.toolchain.warn" | "env.opencli.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "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.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.opencli" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.plugin.name" | "approval.plugin.command" | "approval.plugin.note" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.owner" | "approval.publish.ownerUnowned" | "approval.publish.ownerTaken" | "approval.publish.unit" | "approval.publish.unitTaken" | "approval.publish.path" | "approval.publish.pathTaken" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogPending" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "approval.market.source" | "approval.market.url" | "approval.market.action" | "approval.market.policy" | "approval.market.enable" | "approval.market.disable" | "approval.market.writable" | "approval.market.readOnly" | "approval.market.reading" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
|
|
761
807
|
};
|
|
762
808
|
/** 中文词表的键类型(从 `zh.ts` 转出):`en` 与模块词表都得覆盖同一批键。 */
|
|
763
809
|
export type { WorkbenchMessages };
|
package/dist/i18n/zh.d.ts
CHANGED
|
@@ -137,11 +137,14 @@ export declare const zh: {
|
|
|
137
137
|
readonly 'panels.market.update': "更新";
|
|
138
138
|
readonly 'panels.market.swapSlow': "还没换上:可能网慢或没装上。再点一次「更新」;一直这样就把 dsh 重启一遍。";
|
|
139
139
|
readonly 'panels.market.removeSlow': "还没卸掉:可能网慢或卸载没走完。等一下再看;一直这样就把 dsh 重启一遍。";
|
|
140
|
-
readonly 'panels.market.updateNoChange': "
|
|
140
|
+
readonly 'panels.market.updateNoChange': "更新没换上:还是 {from};源上最新是 {latest}。";
|
|
141
141
|
readonly 'panels.market.updateUnknownVersion': "(问不到)";
|
|
142
142
|
readonly 'panels.market.updateGone': "更新失败:更新后找不到这个模块。";
|
|
143
143
|
readonly 'panels.market.updateRestored': "更新失败:更新后找不到新版本,已把 {version} 装回去。";
|
|
144
|
-
readonly 'panels.market.updateBehind': "装上了 {installed},但源上最新是 {latest}
|
|
144
|
+
readonly 'panels.market.updateBehind': "装上了 {installed},但源上最新是 {latest}。";
|
|
145
|
+
readonly 'panels.market.updateStuck.title': "更新没换上";
|
|
146
|
+
readonly 'panels.market.updateStuck.factNoChange': "盘上还是 {from};源上最新是 {latest}。";
|
|
147
|
+
readonly 'panels.market.updateStuck.copiedHint': "粘到终端跑一次,跑完重启一次工作台。";
|
|
145
148
|
readonly 'panels.market.selfUpdateFailed': "工作台更新失败:{reason}";
|
|
146
149
|
readonly 'panels.market.selfUpdateUnknown': "外部进程没留下原因(看 ~/.dsh/workbench/self-update.log)";
|
|
147
150
|
readonly 'panels.market.selfUpdateRolledBack': "工作台更新失败,已回滚到 {version}。";
|
|
@@ -157,6 +160,40 @@ export declare const zh: {
|
|
|
157
160
|
readonly 'panels.market.confirmNo': "取消";
|
|
158
161
|
readonly 'panels.market.noMarketSource': "索引里没有这个模块的新版本(刷新一次索引再试)";
|
|
159
162
|
readonly 'panels.market.failed': "没成功:{reason}";
|
|
163
|
+
readonly 'panels.market.askAgent': "问 agent";
|
|
164
|
+
readonly 'panels.market.askAgentCopied': "已复制";
|
|
165
|
+
readonly 'panels.market.askAgentText': "工作台里「{name}」(单元 {unit})用不了:{reason}。帮我查清缺什么、怎么补,补完确认真能用。";
|
|
166
|
+
readonly 'panels.market.failure.permission': "没装上:没有写入权限";
|
|
167
|
+
readonly 'panels.market.failure.diskFull': "没装上:磁盘满了";
|
|
168
|
+
readonly 'panels.market.failure.sandbox': "没装上:被系统拦住了";
|
|
169
|
+
readonly 'panels.market.failure.unknown': "没装上:原因没认出来";
|
|
170
|
+
readonly 'panels.market.failure.factOwner': "{path} 属于 {owner},当前账号({me})写不进去。把它还给自己就行(会要开机密码)。";
|
|
171
|
+
readonly 'panels.market.failure.factMode': "{path} 的权限是 {mode},当前账号没有写权限。";
|
|
172
|
+
readonly 'panels.market.failure.factSpace': "{path} 所在的磁盘满了。";
|
|
173
|
+
readonly 'panels.market.failure.factStuck': "这条命令跑在受限环境里,写不进 {path}。";
|
|
174
|
+
readonly 'panels.market.failure.nowhere': "(没认出是哪个目录)";
|
|
175
|
+
readonly 'panels.market.failure.copyFix': "复制修复命令";
|
|
176
|
+
readonly 'panels.market.failure.copied': "已复制";
|
|
177
|
+
readonly 'panels.market.failure.copiedHint': "粘到终端跑一次,回来点「再检测」。";
|
|
178
|
+
readonly 'panels.market.failure.askAgent': "复制给 agent";
|
|
179
|
+
readonly 'panels.market.failure.askAgentText': "装这个模块时写不进去:`{command}` 退出码 {code},卡在 {path}。帮我看看是被沙箱拦的还是权限问题,换一条能写进去的路再装。";
|
|
180
|
+
readonly 'panels.market.failure.askAgentHint': "粘到对话里,让 agent 接着弄。";
|
|
181
|
+
readonly 'panels.market.failure.recheck': "再检测";
|
|
182
|
+
readonly 'panels.market.failure.showOutput': "查看安装输出";
|
|
183
|
+
readonly 'panels.market.failure.hideOutput': "收起安装输出";
|
|
184
|
+
readonly 'panels.market.failure.term.commandLine': "第 {line} 行的命令";
|
|
185
|
+
readonly 'panels.market.failure.term.signal': "被 {signal} 终止";
|
|
186
|
+
readonly 'panels.market.failure.term.exitCode': "退出码 {exitCode}";
|
|
187
|
+
readonly 'panels.market.failure.term.noExitCode': "没有退出码";
|
|
188
|
+
readonly 'panels.market.failure.term.running': "在跑";
|
|
189
|
+
readonly 'panels.market.failure.term.failed': "没跑通";
|
|
190
|
+
readonly 'panels.market.failure.term.done': "跑完了";
|
|
191
|
+
readonly 'panels.market.failure.term.copy': "复制";
|
|
192
|
+
readonly 'panels.market.failure.term.copied': "已复制";
|
|
193
|
+
readonly 'panels.market.failure.term.noOutput': "没有输出";
|
|
194
|
+
readonly 'panels.market.failure.term.collapse': "收起";
|
|
195
|
+
readonly 'panels.market.failure.term.expandAria': "展开剩下的 {hidden} 行";
|
|
196
|
+
readonly 'panels.market.failure.term.expand': "展开 {hidden} 行";
|
|
160
197
|
readonly 'panels.market.needEnv': "先在启动工作台的终端里设 {env}";
|
|
161
198
|
readonly 'panels.market.needCommands': "缺这几条命令:{commands}";
|
|
162
199
|
readonly 'panels.market.needBinary': "先装 {command} 命令";
|
|
@@ -193,9 +230,13 @@ export declare const zh: {
|
|
|
193
230
|
readonly 'panels.market.restartNeeded': "新版装好了,重启一次才生效。";
|
|
194
231
|
readonly 'panels.market.foot': "装好后到那个项目的面板页勾选它,模块才会出现。";
|
|
195
232
|
readonly 'panels.market.checkUpdates': "检查更新";
|
|
233
|
+
readonly 'panels.market.checkAll': "检查全部更新";
|
|
196
234
|
readonly 'panels.market.checkingNow': "正在检查…";
|
|
197
235
|
readonly 'panels.market.checkFailed': "最近一次没查到,检查网络后重试";
|
|
198
236
|
readonly 'panels.market.checkedAt': "最近检查:{time}";
|
|
237
|
+
readonly 'panels.market.latestPartial': "{n} 个模块没查成";
|
|
238
|
+
readonly 'panels.market.latestNoRegistry': "没配来源,未检查新版";
|
|
239
|
+
readonly 'panels.market.latestProbeFailed': "问不到源,稍后重试";
|
|
199
240
|
readonly 'panels.market.justNow': "刚刚";
|
|
200
241
|
readonly 'panels.market.minutesAgo': "{n} 分钟前";
|
|
201
242
|
readonly 'panels.market.hoursAgo': "{n} 小时前";
|
|
@@ -254,6 +295,8 @@ export declare const zh: {
|
|
|
254
295
|
readonly 'panels.market.add.failurePermission': "没有写入权限,无法安装";
|
|
255
296
|
readonly 'panels.market.add.failureBuildBlocked': "有依赖的安装脚本需要你允许后才能继续";
|
|
256
297
|
readonly 'panels.market.add.failureIntegrity': "下载的安装包校验失败";
|
|
298
|
+
readonly 'panels.market.add.failureStopProfile': "旧版还在用着(工作台正加载这个模块),这一版 dsh 不肯就地覆盖。";
|
|
299
|
+
readonly 'panels.market.add.failureCancelled': "这次操作被取消了,什么都没动。";
|
|
257
300
|
readonly 'panels.market.add.failureTimeout': "安装超时";
|
|
258
301
|
readonly 'panels.market.add.failurePnpmMissing': "没有找到 pnpm,无法安装";
|
|
259
302
|
readonly 'panels.market.add.failureInstalled': "它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。";
|
|
@@ -337,7 +380,7 @@ export declare const zh: {
|
|
|
337
380
|
readonly 'panels.discover.missingIndex': "仓库里还没有索引文件 {path}";
|
|
338
381
|
readonly 'panels.discover.initTitle': "把这个仓库初始化成模块市场索引?";
|
|
339
382
|
readonly 'panels.discover.initCta': "初始化成市场索引";
|
|
340
|
-
readonly 'panels.discover.initWhat': "会在 {branch}
|
|
383
|
+
readonly 'panels.discover.initWhat': "会在 {branch} 分支写索引目录 market/ 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 artifacts/<包名>/<版本>/,条目写到 market/<包名>/<版本>.json。仓库的写权限归它的所有者。";
|
|
341
384
|
readonly 'panels.discover.initBranch': "分支";
|
|
342
385
|
readonly 'panels.discover.initBranchHint': "索引和打包文件都发到这个分支;空仓库会新建它。";
|
|
343
386
|
readonly 'panels.discover.initBranchBad': "分支名只能用字母、数字、点、下划线、斜杠或短横线";
|
|
@@ -660,6 +703,9 @@ export declare const zh: {
|
|
|
660
703
|
readonly 'approval.record.noSwitch': "录完不会替你切回来(左栏底部会亮一条状态)";
|
|
661
704
|
readonly 'approval.longTask.what': "要停的那次任务";
|
|
662
705
|
readonly 'approval.longTask.signal': "停了只是让工作台发出中断信号 —— 这次任务怎么收尾由模块自己负责";
|
|
706
|
+
readonly 'approval.plugin.name': "插件";
|
|
707
|
+
readonly 'approval.plugin.command': "命令";
|
|
708
|
+
readonly 'approval.plugin.note': "agent 说";
|
|
663
709
|
readonly 'approval.publish.module': "模块";
|
|
664
710
|
readonly 'approval.publish.target': "目标";
|
|
665
711
|
readonly 'approval.publish.version': "版本";
|
|
@@ -679,7 +725,7 @@ export declare const zh: {
|
|
|
679
725
|
readonly 'approval.publish.artifacts': "打包文件";
|
|
680
726
|
readonly 'approval.publish.index': "索引";
|
|
681
727
|
readonly 'approval.publish.commits': "提交";
|
|
682
|
-
readonly 'approval.publish.twoCommits': "打包文件 +
|
|
728
|
+
readonly 'approval.publish.twoCommits': "打包文件 + 条目文件两次提交,一次推送";
|
|
683
729
|
readonly 'approval.publish.reading': "读取中…";
|
|
684
730
|
readonly 'approval.publish.changelog': "{version} 的更新日志";
|
|
685
731
|
readonly 'approval.publish.changelogPending': "{version} 这一版会写进更新日志,随包发布";
|