@jetcrab/pi-desk 1.1.33 → 1.1.38-dev
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/README.md +10 -10
- package/README.zh-CN.md +10 -10
- package/docs/commands.md +13 -2
- package/docs/plugins.md +10 -0
- package/package.json +3 -3
- package/src/client/l2_biz/pi-settings/l2-pi-settings-locale.ts +3 -3
- package/src/client/l2_biz/plugin-host/l2-plugin-host-runtime.ts +5 -6
- package/src/client/l2_biz/settings/l2-region-settings.tsx +30 -9
- package/src/client/l3_modules/region/l3-region-biz.ts +2 -2
- package/src/client/l4_foundation/plugin-host/l4-plugin-host-runtime.ts +20 -2
- package/src/common/l2_biz/plugin/l2-plugin-management-messages.ts +29 -17
- package/src/common/l2_biz/project-preview/l2-project-history-messages.ts +9 -7
- package/src/common/l2_biz/settings/l2-settings-messages.ts +82 -69
- package/src/common/l2_biz/terminal/l2-terminal-locale-messages.ts +1 -1
- package/src/common/l2_biz/workbench/l2-workbench-locale-messages.ts +48 -38
- package/src/common/l2_biz/workbench/l2-workbench-picker-messages.ts +12 -8
- package/src/common/l3_modules/conversation/l3-conversation-locale-messages.ts +24 -20
- package/src/common/l3_modules/project-files/l3-project-files-locale-messages.ts +29 -17
- package/src/common/l4_foundation/locale/l4-host-error-messages.ts +5 -5
- package/src/server/l2_biz/plugin-management/l2-plugin-commands.ts +8 -7
- package/src/server/l2_biz/plugin-management/l2-plugin-management.ts +51 -2
- package/src/server/l4_foundation/pi/l4-pi-global-plugin-runtime.ts +9 -1
- package/src/server/l4_foundation/pi/l4-pi-local-extension-maintenance.ts +118 -0
- package/src/server/l4_foundation/pi/l4-pi-plugin-owner-runtime.ts +4 -1
- package/src/server/l4_foundation/pi/l4-pi-plugin-source-changes.ts +4 -0
- package/src/server/l4_foundation/pidesk/l4-pidesk-command.ts +1 -1
- package/temp/build/pi-desk/release/.next/BUILD_ID +1 -1
- package/temp/build/pi-desk/release/.next/build-manifest.json +2 -2
- package/temp/build/pi-desk/release/.next/prerender-manifest.json +3 -3
- package/temp/build/pi-desk/release/.next/required-server-files.js +3 -3
- package/temp/build/pi-desk/release/.next/required-server-files.json +3 -3
- package/temp/build/pi-desk/release/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/temp/build/pi-desk/release/.next/server/app/_global-error.html +1 -1
- package/temp/build/pi-desk/release/.next/server/app/_global-error.rsc +1 -1
- package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/temp/build/pi-desk/release/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/temp/build/pi-desk/release/.next/server/app/api/health/route.js +1 -1
- package/temp/build/pi-desk/release/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/temp/build/pi-desk/release/.next/server/app/page.js +3 -3
- package/temp/build/pi-desk/release/.next/server/app/page_client-reference-manifest.js +1 -1
- package/temp/build/pi-desk/release/.next/server/app/project-preview/page_client-reference-manifest.js +1 -1
- package/temp/build/pi-desk/release/.next/server/chunks/16438.js +1 -1
- package/temp/build/pi-desk/release/.next/server/chunks/25406.js +2 -2
- package/temp/build/pi-desk/release/.next/server/chunks/35985.js +2 -2
- package/temp/build/pi-desk/release/.next/server/chunks/36361.js +3 -3
- package/temp/build/pi-desk/release/.next/server/chunks/47757.js +1 -1
- package/temp/build/pi-desk/release/.next/server/chunks/50520.js +2 -2
- package/temp/build/pi-desk/release/.next/server/chunks/84231.js +3 -3
- package/temp/build/pi-desk/release/.next/server/chunks/{18748.js → 88353.js} +1 -1
- package/temp/build/pi-desk/release/.next/server/chunks/92386.js +4 -4
- package/temp/build/pi-desk/release/.next/server/instrumentation.js +1 -1
- package/temp/build/pi-desk/release/.next/server/middleware-build-manifest.js +1 -1
- package/temp/build/pi-desk/release/.next/server/pages/500.html +1 -1
- package/temp/build/pi-desk/release/.next/server/server-reference-manifest.json +1 -1
- package/temp/build/pi-desk/release/.next/static/chunks/11937-c21edad81915b999.js +1 -0
- package/temp/build/pi-desk/release/.next/static/chunks/15302-e9fd56a464b5267b.js +1 -0
- package/temp/build/pi-desk/release/.next/static/chunks/app/layout-1ec03fc5766568f6.js +1 -0
- package/temp/build/pi-desk/release/.next/static/chunks/app/page-402842ab5d6afb08.js +158 -0
- package/temp/build/pi-desk/release/.next/trace-build +1 -1
- package/temp/build/pi-desk/release/.next/static/chunks/11937-d5d4d2199356c3ed.js +0 -1
- package/temp/build/pi-desk/release/.next/static/chunks/15302-6e070e13fa65c863.js +0 -1
- package/temp/build/pi-desk/release/.next/static/chunks/app/layout-fdea504082053156.js +0 -1
- package/temp/build/pi-desk/release/.next/static/chunks/app/page-eb5c2229f59dda1a.js +0 -158
- /package/temp/build/pi-desk/release/.next/static/{IDVi-aOj0xwp4DoZljk5f → ljXlpZIQpD6BvWyD8Fmc3}/_buildManifest.js +0 -0
- /package/temp/build/pi-desk/release/.next/static/{IDVi-aOj0xwp4DoZljk5f → ljXlpZIQpD6BvWyD8Fmc3}/_ssgManifest.js +0 -0
|
@@ -24,7 +24,7 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
24
24
|
searchTimeZones: 'Search time zones',
|
|
25
25
|
reloadLanguage: 'Reload to use this language',
|
|
26
26
|
version: 'Current version',
|
|
27
|
-
versionUpdated: '
|
|
27
|
+
versionUpdated: 'Last updated',
|
|
28
28
|
webDescription: 'Pi in your browser',
|
|
29
29
|
discardModelTitle: 'Unsaved model settings',
|
|
30
30
|
discardModelDescription: 'Discard changes to model settings?',
|
|
@@ -55,19 +55,22 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
55
55
|
imageOriginalDescription: 'Keep original quality; large images use more data.',
|
|
56
56
|
imagePreviewApply: 'Changes apply to newly loaded or manually reloaded images.',
|
|
57
57
|
modelProviders: 'Model management',
|
|
58
|
-
modelPresets: '
|
|
59
|
-
serviceAddress: '
|
|
60
|
-
serviceKey: '
|
|
61
|
-
serviceId: '
|
|
62
|
-
serviceIdInvalid: 'Enter a unique, non-empty
|
|
63
|
-
serviceConnection: '
|
|
58
|
+
modelPresets: 'Model presets',
|
|
59
|
+
serviceAddress: 'Base URL',
|
|
60
|
+
serviceKey: 'API key',
|
|
61
|
+
serviceId: 'Provider ID',
|
|
62
|
+
serviceIdInvalid: 'Enter a unique, non-empty provider ID.',
|
|
63
|
+
serviceConnection: 'Provider connection',
|
|
64
64
|
serviceSettingsNamed: '{{name}} connection settings',
|
|
65
|
-
currentServiceSettings: 'Current
|
|
65
|
+
currentServiceSettings: 'Current provider connection settings',
|
|
66
66
|
modelAddToService: 'Add a model to {{name}}',
|
|
67
|
-
inheritService: 'Inherit
|
|
68
|
-
inheritServiceValue: 'Inherit
|
|
67
|
+
inheritService: 'Inherit provider settings',
|
|
68
|
+
inheritServiceValue: 'Inherit from provider: {{value}}',
|
|
69
69
|
applyServiceDraft: 'Apply to draft',
|
|
70
|
-
|
|
70
|
+
serviceDraftScope_one:
|
|
71
|
+
'Used by {{count}} model. Apply here, then save the model configuration.',
|
|
72
|
+
serviceDraftScope_other:
|
|
73
|
+
'Used by {{count}} models. Apply here, then save the model configuration.',
|
|
71
74
|
discardServiceTitle: 'Unsaved connection changes',
|
|
72
75
|
discardServiceDescription: 'Discard this connection draft?',
|
|
73
76
|
selectModelToEdit: 'Select a model to edit',
|
|
@@ -76,9 +79,9 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
76
79
|
modelNameRequired: 'Enter a display name.',
|
|
77
80
|
capacityInvalid: 'Enter a positive number with up to three decimal places.',
|
|
78
81
|
priceInvalid: 'Enter a non-negative number.',
|
|
79
|
-
inputAndThinking: 'Input and
|
|
80
|
-
addModelPreset: 'Add to
|
|
81
|
-
saveBeforePreset: 'Save this model before adding it to
|
|
82
|
+
inputAndThinking: 'Input and thinking',
|
|
83
|
+
addModelPreset: 'Add to presets',
|
|
84
|
+
saveBeforePreset: 'Save this model before adding it to presets.',
|
|
82
85
|
modelDraftPending: 'Configuration changes are not saved',
|
|
83
86
|
modelDraftClean: 'No unsaved changes',
|
|
84
87
|
fixModelInputs: 'Correct the invalid model fields before saving',
|
|
@@ -102,11 +105,11 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
102
105
|
catalogUpdated: 'Model catalog updated.',
|
|
103
106
|
catalogRefreshFailed: 'Could not refresh the model catalog',
|
|
104
107
|
modelsNoChanges: 'There are no model configuration changes to save.',
|
|
105
|
-
removeInvalidPresetsTitle: 'Remove invalid
|
|
108
|
+
removeInvalidPresetsTitle: 'Remove invalid presets?',
|
|
106
109
|
removeInvalidPresets_one:
|
|
107
|
-
'{{count}}
|
|
110
|
+
'{{count}} preset refers to a removed model. Saving will remove this preset.',
|
|
108
111
|
removeInvalidPresets_other:
|
|
109
|
-
'{{count}}
|
|
112
|
+
'{{count}} presets refer to removed models. Saving will remove them.',
|
|
110
113
|
removeAndSave: 'Remove and save',
|
|
111
114
|
replaceProjectDefaultsTitle: 'Update project default models',
|
|
112
115
|
replaceProjectDefaultsDescription:
|
|
@@ -121,17 +124,17 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
121
124
|
refreshCatalog: 'Refresh model catalog',
|
|
122
125
|
savingModels: 'Saving…',
|
|
123
126
|
saveModels: 'Save model configuration',
|
|
124
|
-
thinkingOff: '
|
|
125
|
-
thinkingMinimal: '
|
|
126
|
-
thinkingLow: '
|
|
127
|
-
thinkingMedium: '
|
|
128
|
-
thinkingHigh: '
|
|
129
|
-
thinkingXhigh: '
|
|
130
|
-
thinkingMax: '
|
|
127
|
+
thinkingOff: 'off',
|
|
128
|
+
thinkingMinimal: 'minimal',
|
|
129
|
+
thinkingLow: 'low',
|
|
130
|
+
thinkingMedium: 'medium',
|
|
131
|
+
thinkingHigh: 'high',
|
|
132
|
+
thinkingXhigh: 'xhigh',
|
|
133
|
+
thinkingMax: 'max',
|
|
131
134
|
priceMissing: 'Price unavailable',
|
|
132
135
|
priceInput: 'Input {{price}}',
|
|
133
136
|
priceOutput: 'Output {{price}}',
|
|
134
|
-
priceCacheRead: '
|
|
137
|
+
priceCacheRead: 'Cache read {{price}}',
|
|
135
138
|
priceCacheWrite: 'Cache write {{price}}',
|
|
136
139
|
perMillionTokens: ' / million tokens',
|
|
137
140
|
catalogSearchFailed: 'Could not search the model catalog',
|
|
@@ -142,17 +145,19 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
142
145
|
matchingCatalog: 'Finding models…',
|
|
143
146
|
noCatalogMatches: 'No matching models',
|
|
144
147
|
officialRecommended: 'Official recommendation',
|
|
145
|
-
|
|
148
|
+
sameConfiguration_one: '{{count}} source with this configuration',
|
|
149
|
+
sameConfiguration_other: '{{count}} sources with this configuration',
|
|
146
150
|
contextAndOutput: '{{context}} context · {{output}} output',
|
|
147
151
|
contextAndOutputTitle: 'Context {{context}} tokens, maximum output {{output}} tokens',
|
|
148
|
-
|
|
152
|
+
moreConfigurations_one: 'Show {{count}} more configuration',
|
|
153
|
+
moreConfigurations_other: 'Show {{count}} more configurations',
|
|
149
154
|
modelName: 'Display name',
|
|
150
155
|
contextLength: 'Context window',
|
|
151
|
-
maximumOutput: '
|
|
156
|
+
maximumOutput: 'Max output tokens',
|
|
152
157
|
capabilities: 'Capabilities',
|
|
153
158
|
textInput: 'Text input',
|
|
154
159
|
imageInput: 'Image input',
|
|
155
|
-
supportsThinking: 'Supports
|
|
160
|
+
supportsThinking: 'Supports thinking',
|
|
156
161
|
thinkingMapping: 'Thinking levels and provider mapping',
|
|
157
162
|
providerMapping: '{{level}} provider mapping',
|
|
158
163
|
noMapping: 'No mapping',
|
|
@@ -164,29 +169,29 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
164
169
|
clearPrice: 'Clear pricing',
|
|
165
170
|
advancedCompatibility: 'Advanced settings',
|
|
166
171
|
apiOverride: 'Model API override',
|
|
167
|
-
baseUrlOverride: 'Model
|
|
172
|
+
baseUrlOverride: 'Model base URL override',
|
|
168
173
|
inheritProvider: 'Leave blank to inherit the provider',
|
|
169
|
-
developerRole: 'Supports
|
|
174
|
+
developerRole: 'Supports developer role',
|
|
170
175
|
replayReasoning: 'Replay reasoning_content',
|
|
171
176
|
modelHeaders: 'Model headers',
|
|
172
177
|
headerPlaceholder: 'Header-Name: value, one per line',
|
|
173
178
|
useDefault: 'Use default',
|
|
174
179
|
yes: 'Yes',
|
|
175
180
|
no: 'No',
|
|
176
|
-
providerNew: 'Add
|
|
181
|
+
providerNew: 'Add provider',
|
|
177
182
|
accountCustomApi: 'Custom API',
|
|
178
183
|
accountLogin: 'Sign in',
|
|
179
184
|
accountRelogin: 'Sign in again',
|
|
180
185
|
accountLogout: 'Sign out',
|
|
181
|
-
accountLogoutTitle: 'Sign out of this
|
|
186
|
+
accountLogoutTitle: 'Sign out of this provider?',
|
|
182
187
|
accountLogoutDescription:
|
|
183
|
-
'Sign out of “{{name}}”?
|
|
188
|
+
'Sign out of “{{name}}”? Models linked to this account will be unavailable until you sign in again. Your model selections and drafts will be kept; the current session will not change.',
|
|
184
189
|
accountLogoutFailed: 'Could not sign out',
|
|
185
190
|
accountCustomSettings: 'Custom API settings',
|
|
186
191
|
accountCustomModel: 'Custom model',
|
|
187
|
-
accountChooseProvider: 'Choose a
|
|
188
|
-
accountLoadingProviders: 'Loading
|
|
189
|
-
accountNoProviders: 'No sign-in
|
|
192
|
+
accountChooseProvider: 'Choose a provider',
|
|
193
|
+
accountLoadingProviders: 'Loading providers…',
|
|
194
|
+
accountNoProviders: 'No providers available for sign-in',
|
|
190
195
|
accountChooseOption: 'Choose an option',
|
|
191
196
|
accountContinue: 'Continue',
|
|
192
197
|
accountWaiting: 'Waiting for authorization…',
|
|
@@ -210,7 +215,7 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
210
215
|
accountAddLater: 'Add later',
|
|
211
216
|
accountAddSelected: 'Add {{count}} selected',
|
|
212
217
|
accountModelUnavailable:
|
|
213
|
-
'This model is no longer available in the
|
|
218
|
+
'This model is no longer available in the provider catalog. You can remove it from your configuration.',
|
|
214
219
|
accountModelUnavailableShort: 'Unavailable',
|
|
215
220
|
accountSubscription: 'Subscription',
|
|
216
221
|
accountReferencePrice: 'Reference pricing',
|
|
@@ -220,15 +225,18 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
220
225
|
accountRemoveTitle: 'Remove model?',
|
|
221
226
|
accountRemoveDescription:
|
|
222
227
|
'Remove “{{name}}” from your model list? This takes effect after saving and does not sign you out.',
|
|
223
|
-
providerUnnamed: '
|
|
224
|
-
providerList: 'Model
|
|
225
|
-
providerSummary: '{{providers}}
|
|
228
|
+
providerUnnamed: 'Provider ID required',
|
|
229
|
+
providerList: 'Model providers',
|
|
230
|
+
providerSummary: 'Providers: {{providers}} · Models: {{models}}',
|
|
226
231
|
providerConfig: 'Provider configuration',
|
|
227
|
-
providerEmpty: 'No
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
+
providerEmpty: 'No providers configured',
|
|
233
|
+
providerModels_one: '{{count}} custom model',
|
|
234
|
+
providerModels_other: '{{count}} custom models',
|
|
235
|
+
providerDelete: 'Remove provider',
|
|
236
|
+
providerDeleteTitle: 'Remove provider?',
|
|
237
|
+
providerDeleteDescription_one:
|
|
238
|
+
'Remove “{{name}}” and its {{count}} model? The change takes effect after you save.',
|
|
239
|
+
providerDeleteDescription_other:
|
|
232
240
|
'Remove “{{name}}” and its {{count}} models? The change takes effect after you save.',
|
|
233
241
|
modelDeleteTitle: 'Remove model?',
|
|
234
242
|
modelDeleteDescription: 'Remove “{{name}}”? The change takes effect after you save.',
|
|
@@ -236,7 +244,7 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
236
244
|
providerApiType: 'Default API',
|
|
237
245
|
providerAdvanced: 'Advanced connection settings',
|
|
238
246
|
providerAuthHeader: 'Add Authorization header automatically',
|
|
239
|
-
providerHeaders: '
|
|
247
|
+
providerHeaders: 'Provider headers',
|
|
240
248
|
modelsHeading: 'Models',
|
|
241
249
|
modelAdd: 'Add model',
|
|
242
250
|
modelEmpty: 'No models yet',
|
|
@@ -245,18 +253,18 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
245
253
|
modelDelete: 'Remove model',
|
|
246
254
|
modelDeleteNamed: 'Remove model {{name}}',
|
|
247
255
|
presetDescription:
|
|
248
|
-
'
|
|
256
|
+
'Quickly select a model and thinking level in chat. Drag or use the buttons to reorder presets.',
|
|
249
257
|
presetDrag: 'Drag to reorder',
|
|
250
|
-
presetMoveUp: 'Move
|
|
251
|
-
presetMoveDown: 'Move
|
|
252
|
-
presetModel: '
|
|
253
|
-
presetModelNew: 'Model for new
|
|
254
|
-
modelSearch: 'Search model name,
|
|
258
|
+
presetMoveUp: 'Move preset up',
|
|
259
|
+
presetMoveDown: 'Move preset down',
|
|
260
|
+
presetModel: 'Preset model',
|
|
261
|
+
presetModelNew: 'Model for new preset',
|
|
262
|
+
modelSearch: 'Search model name, provider ID or model ID',
|
|
255
263
|
thinkingLevel: 'Thinking level',
|
|
256
|
-
presetThinking: '
|
|
257
|
-
presetThinkingNew: 'Thinking level for new
|
|
264
|
+
presetThinking: 'Preset thinking level',
|
|
265
|
+
presetThinkingNew: 'Thinking level for new preset',
|
|
258
266
|
presetColor: 'Color',
|
|
259
|
-
presetColorLabel: '
|
|
267
|
+
presetColorLabel: 'Preset color',
|
|
260
268
|
presetColorNone: 'No color',
|
|
261
269
|
presetColorCustom: 'Custom color',
|
|
262
270
|
presetColorBlue: 'Blue',
|
|
@@ -267,16 +275,16 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
267
275
|
presetColorRed: 'Red',
|
|
268
276
|
presetColorPink: 'Pink',
|
|
269
277
|
presetColorPurple: 'Purple',
|
|
270
|
-
presetDelete: 'Remove
|
|
278
|
+
presetDelete: 'Remove preset',
|
|
271
279
|
presetAdd: 'Add',
|
|
272
|
-
presetEmpty: 'No
|
|
280
|
+
presetEmpty: 'No model presets yet',
|
|
273
281
|
projectSessionCount_one: '{{count}} session',
|
|
274
282
|
projectSessionCount_other: '{{count}} sessions',
|
|
275
283
|
projectDirectoriesFailed: 'Could not load project directories',
|
|
276
|
-
projectDefaultFailed: 'Could not load project
|
|
277
|
-
projectDefaultSaved: 'Project model
|
|
284
|
+
projectDefaultFailed: 'Could not load project default models',
|
|
285
|
+
projectDefaultSaved: 'Project default model saved.',
|
|
278
286
|
projectDefaultGlobalSaved: 'Project is following the current global Pi model.',
|
|
279
|
-
projectDefaultSaveFailed: 'Could not save the project model
|
|
287
|
+
projectDefaultSaveFailed: 'Could not save the project default model',
|
|
280
288
|
projectLoading: 'Loading project settings…',
|
|
281
289
|
projectDescription:
|
|
282
290
|
'Project settings take precedence over Pi’s current global selection. Changing a model in chat will not change this setting.',
|
|
@@ -286,14 +294,14 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
286
294
|
projectList: 'Project list',
|
|
287
295
|
backProjectList: 'Back to project list',
|
|
288
296
|
selectProjectToConfigure: 'Select a project to configure its default model',
|
|
289
|
-
projectDefaultSource: 'Project model
|
|
297
|
+
projectDefaultSource: 'Project default model source',
|
|
290
298
|
projectFollowGlobal: 'Follow current global Pi selection',
|
|
291
299
|
projectFollowGlobalDescription: 'Do not set a separate default model for this project.',
|
|
292
300
|
projectFixed: 'Set a project default',
|
|
293
|
-
projectFixedDescription: 'Select a model and
|
|
301
|
+
projectFixedDescription: 'Select a model and thinking level for this project.',
|
|
294
302
|
projectDefaultModel: 'Default model',
|
|
295
303
|
projectDefaultThinking: 'Project default thinking level',
|
|
296
|
-
fromPreset: 'Choose from
|
|
304
|
+
fromPreset: 'Choose from presets',
|
|
297
305
|
saveProjectDefault: 'Save project default'
|
|
298
306
|
},
|
|
299
307
|
'zh-CN': {
|
|
@@ -364,7 +372,8 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
364
372
|
inheritService: '继承服务设置',
|
|
365
373
|
inheritServiceValue: '继承服务:{{value}}',
|
|
366
374
|
applyServiceDraft: '应用到草稿',
|
|
367
|
-
|
|
375
|
+
serviceDraftScope_one: '供 {{count}} 个模型使用,应用后在主页面保存模型配置。',
|
|
376
|
+
serviceDraftScope_other: '供 {{count}} 个模型使用,应用后在主页面保存模型配置。',
|
|
368
377
|
discardServiceTitle: '连接修改尚未应用',
|
|
369
378
|
discardServiceDescription: '要丢弃这次连接修改吗?',
|
|
370
379
|
selectModelToEdit: '选择一个模型进行编辑',
|
|
@@ -438,10 +447,12 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
438
447
|
matchingCatalog: '正在匹配模型目录…',
|
|
439
448
|
noCatalogMatches: '没有匹配的目录模型',
|
|
440
449
|
officialRecommended: '官方推荐',
|
|
441
|
-
|
|
450
|
+
sameConfiguration_one: '同配置 ×{{count}}',
|
|
451
|
+
sameConfiguration_other: '同配置 ×{{count}}',
|
|
442
452
|
contextAndOutput: '{{context}} 上下文 · {{output}} 输出',
|
|
443
453
|
contextAndOutputTitle: '上下文 {{context}} Token,最大输出 {{output}} Token',
|
|
444
|
-
|
|
454
|
+
moreConfigurations_one: '查看其余 {{count}} 种配置',
|
|
455
|
+
moreConfigurations_other: '查看其余 {{count}} 种配置',
|
|
445
456
|
modelName: '显示名称',
|
|
446
457
|
contextLength: '上下文容量',
|
|
447
458
|
maximumOutput: '每次最多输出',
|
|
@@ -518,10 +529,12 @@ export const L2_SETTINGS_MESSAGES = {
|
|
|
518
529
|
providerSummary: '{{providers}} 个 · {{models}} 个模型',
|
|
519
530
|
providerConfig: 'Provider 配置',
|
|
520
531
|
providerEmpty: '还没有配置服务',
|
|
521
|
-
|
|
532
|
+
providerModels_one: '{{count}} 个自定义模型',
|
|
533
|
+
providerModels_other: '{{count}} 个自定义模型',
|
|
522
534
|
providerDelete: '删除服务',
|
|
523
535
|
providerDeleteTitle: '删除服务?',
|
|
524
|
-
|
|
536
|
+
providerDeleteDescription_one: '将移除“{{name}}”及其 {{count}} 个模型,保存配置后生效。',
|
|
537
|
+
providerDeleteDescription_other: '将移除“{{name}}”及其 {{count}} 个模型,保存配置后生效。',
|
|
525
538
|
modelDeleteTitle: '删除模型?',
|
|
526
539
|
modelDeleteDescription: '将移除“{{name}}”,保存配置后生效。',
|
|
527
540
|
providerIdExample: '例如 my',
|
|
@@ -13,7 +13,7 @@ export const L2_TERMINAL_LOCALE_MESSAGES = {
|
|
|
13
13
|
terminalCloseTab: 'Close {{title}}',
|
|
14
14
|
terminalRemove: 'Remove exited terminal',
|
|
15
15
|
terminalExited: 'Exited',
|
|
16
|
-
terminalExitCode: 'Exit {{code}}',
|
|
16
|
+
terminalExitCode: 'Exit code {{code}}',
|
|
17
17
|
terminalOpening: 'Opening terminal…',
|
|
18
18
|
terminalReconnecting: 'Reconnecting…',
|
|
19
19
|
terminalSyncing: 'Restoring terminal…',
|
|
@@ -15,7 +15,7 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
15
15
|
modelAutomaticRouting: 'Automatic routing',
|
|
16
16
|
modelFixed: 'Fixed models',
|
|
17
17
|
modelChanging: 'Changing model…',
|
|
18
|
-
modelContextUnknown: 'Context unknown',
|
|
18
|
+
modelContextUnknown: 'Context window unknown',
|
|
19
19
|
mcpSessionActions: 'Session MCP actions',
|
|
20
20
|
mcpRefreshStatus: 'Refresh status',
|
|
21
21
|
mcpLogin: 'Sign in',
|
|
@@ -30,7 +30,7 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
30
30
|
nativeCommandOutput: 'Session notifications',
|
|
31
31
|
nativeCommandOutputEmpty: 'No session notifications yet',
|
|
32
32
|
searchToolsSources: 'Search names, sources or descriptions',
|
|
33
|
-
toolFilter: 'Tool
|
|
33
|
+
toolFilter: 'Tool access',
|
|
34
34
|
allTools: 'All tools',
|
|
35
35
|
toolBlockedByMode: 'Restricted by mode',
|
|
36
36
|
toolSource: 'Source',
|
|
@@ -40,9 +40,9 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
40
40
|
toolModeUnknown: 'Mode restriction unknown',
|
|
41
41
|
toolNotBlocked: 'Not restricted by mode',
|
|
42
42
|
noRegisteredTools: 'No tools registered in this session',
|
|
43
|
-
toolExposureDirect: 'Direct
|
|
43
|
+
toolExposureDirect: 'Direct call',
|
|
44
44
|
toolExposureModelOnly: 'Model only',
|
|
45
|
-
toolExposureCodemode: 'Via
|
|
45
|
+
toolExposureCodemode: 'Via codemode',
|
|
46
46
|
toolExposureDeferred: 'On-demand discovery',
|
|
47
47
|
toolExposureHidden: 'Unavailable',
|
|
48
48
|
nativeUiTitle: 'Plugin request',
|
|
@@ -72,13 +72,13 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
72
72
|
nativeUiDismiss: 'Dismiss',
|
|
73
73
|
nativeUiComposer: 'Answer the pending question before sending more messages.',
|
|
74
74
|
nativeUiAnswerExpired: 'This question has ended.',
|
|
75
|
-
thinkingOff: '
|
|
76
|
-
thinkingMinimal: '
|
|
77
|
-
thinkingLow: '
|
|
78
|
-
thinkingMedium: '
|
|
79
|
-
thinkingHigh: '
|
|
80
|
-
thinkingXhigh: '
|
|
81
|
-
thinkingMax: '
|
|
75
|
+
thinkingOff: 'off',
|
|
76
|
+
thinkingMinimal: 'minimal',
|
|
77
|
+
thinkingLow: 'low',
|
|
78
|
+
thinkingMedium: 'medium',
|
|
79
|
+
thinkingHigh: 'high',
|
|
80
|
+
thinkingXhigh: 'xhigh',
|
|
81
|
+
thinkingMax: 'max',
|
|
82
82
|
selectModel: 'Select model',
|
|
83
83
|
thinkingLevel: 'Thinking: {{level}}',
|
|
84
84
|
imagePreview: 'Preview {{name}}',
|
|
@@ -105,7 +105,7 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
105
105
|
readingContext: 'Loading system context…',
|
|
106
106
|
reloadPi: 'Reload Pi configuration',
|
|
107
107
|
restorePluginPresentation: 'Restore plugin message views',
|
|
108
|
-
initializationDegraded: '
|
|
108
|
+
initializationDegraded: 'Extensions disabled',
|
|
109
109
|
initializationDetails: 'Reason for fallback',
|
|
110
110
|
copyInitializationError: 'Copy reason',
|
|
111
111
|
initializationCopyFailed: 'Could not copy the reason. Please select and copy it manually.',
|
|
@@ -118,12 +118,12 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
118
118
|
modelsLoading: 'Loading models…',
|
|
119
119
|
modelsFailed: 'Could not load models. Retry',
|
|
120
120
|
noModels: 'No authenticated models available',
|
|
121
|
-
presets: '
|
|
122
|
-
commonCombinationsEmpty: 'No
|
|
123
|
-
configureCommonCombinations: 'Set up
|
|
121
|
+
presets: 'Model presets',
|
|
122
|
+
commonCombinationsEmpty: 'No model presets yet',
|
|
123
|
+
configureCommonCombinations: 'Set up model presets',
|
|
124
124
|
preparingContext: 'Preparing context…',
|
|
125
|
-
steerNow: '
|
|
126
|
-
sendFollowUp: '
|
|
125
|
+
steerNow: 'Steer current response',
|
|
126
|
+
sendFollowUp: 'Queue follow-up',
|
|
127
127
|
stopResponse: 'Stop response',
|
|
128
128
|
sending: 'Sending message',
|
|
129
129
|
send: 'Send message',
|
|
@@ -161,7 +161,7 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
161
161
|
historyFailed: 'Could not load past Pi sessions',
|
|
162
162
|
chatSyncFailed: 'Could not synchronize chat messages',
|
|
163
163
|
taskSyncFailed: 'Could not synchronize task details',
|
|
164
|
-
replacedConnection: '
|
|
164
|
+
replacedConnection: 'This connection was replaced by a newer connection',
|
|
165
165
|
connectionFailed: 'Connection failed',
|
|
166
166
|
realtimeFailed: 'Could not connect to real-time work sessions',
|
|
167
167
|
workSessionInitializing: 'Work sessions are still initializing',
|
|
@@ -198,7 +198,7 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
198
198
|
copyProjectPathFailed: 'Could not copy project path. Please copy it manually.',
|
|
199
199
|
dragSession: 'Drag to reorder {{name}}',
|
|
200
200
|
dragOrder: 'Drag to reorder',
|
|
201
|
-
sessionMessages: '{{count}}
|
|
201
|
+
sessionMessages: 'Messages: {{count}} · {{time}}',
|
|
202
202
|
pinSession: 'Pin {{name}}',
|
|
203
203
|
unpinSession: 'Unpin {{name}}',
|
|
204
204
|
pin: 'Pin session',
|
|
@@ -263,9 +263,9 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
263
263
|
'Context {{percent}}%, estimated {{projected}}% after ignoring; ignored {{ignored}}, can ignore {{potential}}',
|
|
264
264
|
contextUsageSimple: 'Context {{percent}}% of {{limit}} tokens',
|
|
265
265
|
contextDetails: 'Context usage details',
|
|
266
|
-
contextMetrics: '
|
|
267
|
-
afterIgnore: 'Estimated
|
|
268
|
-
potentialIgnore: '
|
|
266
|
+
contextMetrics: 'Tokens / Limit / Usage',
|
|
267
|
+
afterIgnore: 'Estimated after ignoring',
|
|
268
|
+
potentialIgnore: 'Available to ignore',
|
|
269
269
|
alreadyIgnored: 'Ignored',
|
|
270
270
|
ignoreNow: 'Ignore {{amount}} now',
|
|
271
271
|
nothingToIgnore: 'No context available to ignore',
|
|
@@ -290,10 +290,12 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
290
290
|
copyContext: 'Copy system context',
|
|
291
291
|
contextContents: 'Context contents',
|
|
292
292
|
systemPrompt: 'System prompt',
|
|
293
|
-
|
|
293
|
+
toolDefinitions_one: '{{count}} tool definition',
|
|
294
|
+
toolDefinitions_other: '{{count}} tool definitions',
|
|
294
295
|
searchTools: 'Search tool definitions',
|
|
295
296
|
searchNames: 'Search names or descriptions',
|
|
296
|
-
|
|
297
|
+
charCount_one: '{{count}} character',
|
|
298
|
+
charCount_other: '{{count}} characters',
|
|
297
299
|
contextLoading: 'Loading system context…',
|
|
298
300
|
contextRetry: 'Retry',
|
|
299
301
|
emptyContent: '(empty)',
|
|
@@ -308,22 +310,24 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
308
310
|
queueImages_other: '{{count}} images',
|
|
309
311
|
imageOnly: 'Image-only message',
|
|
310
312
|
noMessageText: 'No text content',
|
|
311
|
-
|
|
313
|
+
viewQueued_one: 'View {{count}} queued message',
|
|
314
|
+
viewQueued_other: 'View {{count}} queued messages',
|
|
312
315
|
queuedCount: '{{count}} queued',
|
|
313
316
|
queueCurrent: 'Queued messages',
|
|
314
317
|
queuePendingDescription: 'Waiting messages will be handled in this order',
|
|
315
|
-
queueSteer: '
|
|
316
|
-
queueSteerDescription: '
|
|
317
|
-
queueFollowUp: '
|
|
318
|
-
queueFollowUpDescription: 'Send in order after
|
|
319
|
-
queueRestore: '
|
|
318
|
+
queueSteer: 'Steering',
|
|
319
|
+
queueSteerDescription: 'Steer the current response',
|
|
320
|
+
queueFollowUp: 'Follow-up',
|
|
321
|
+
queueFollowUpDescription: 'Send in order after the current turn',
|
|
322
|
+
queueRestore: 'Cancel all and restore to draft',
|
|
320
323
|
noticeInfo: 'Information',
|
|
321
324
|
noticeSuccess: 'Success',
|
|
322
325
|
noticeWarning: 'Warning',
|
|
323
326
|
noticeError: 'Error',
|
|
324
327
|
actionableNotice: '{{level}} notification: {{title}}. Activate to open',
|
|
325
328
|
noticeLabel: '{{level}} notification: {{title}}',
|
|
326
|
-
|
|
329
|
+
olderNotices_one: 'Show {{count}} earlier notification',
|
|
330
|
+
olderNotices_other: 'Show {{count}} earlier notifications',
|
|
327
331
|
deleteNotice: 'Dismiss notification: {{title}}',
|
|
328
332
|
dismissNotice: 'Dismiss notification',
|
|
329
333
|
hideSessionMenu: 'Hide session menu',
|
|
@@ -384,8 +388,9 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
384
388
|
slashLoading: 'Loading commands…',
|
|
385
389
|
slashFailed: 'Could not load commands',
|
|
386
390
|
slashEmpty: 'No matching commands',
|
|
387
|
-
slashSummary: '{{commands}}
|
|
388
|
-
|
|
391
|
+
slashSummary: 'Commands: {{commands}} · Categories: {{groups}}',
|
|
392
|
+
slashCount_one: '{{count}} command',
|
|
393
|
+
slashCount_other: '{{count}} commands',
|
|
389
394
|
slashUpDown: '↑↓ Select',
|
|
390
395
|
slashEnter: 'Enter Select',
|
|
391
396
|
slashEscape: 'Esc Close',
|
|
@@ -740,10 +745,12 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
740
745
|
copyContext: '复制系统上下文',
|
|
741
746
|
contextContents: '上下文内容',
|
|
742
747
|
systemPrompt: '系统提示词',
|
|
743
|
-
|
|
748
|
+
toolDefinitions_one: '工具定义 · {{count}}',
|
|
749
|
+
toolDefinitions_other: '工具定义 · {{count}}',
|
|
744
750
|
searchTools: '搜索工具定义',
|
|
745
751
|
searchNames: '搜索名称或描述',
|
|
746
|
-
|
|
752
|
+
charCount_one: '{{count}} 字符',
|
|
753
|
+
charCount_other: '{{count}} 字符',
|
|
747
754
|
contextLoading: '正在读取系统上下文…',
|
|
748
755
|
contextRetry: '重试',
|
|
749
756
|
emptyContent: '(空)',
|
|
@@ -758,7 +765,8 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
758
765
|
queueImages_other: '{{count}} 张图片',
|
|
759
766
|
imageOnly: '仅图片消息',
|
|
760
767
|
noMessageText: '无文本内容',
|
|
761
|
-
|
|
768
|
+
viewQueued_one: '查看 {{count}} 条排队消息',
|
|
769
|
+
viewQueued_other: '查看 {{count}} 条排队消息',
|
|
762
770
|
queuedCount: '排队 {{count}}',
|
|
763
771
|
queueCurrent: '当前排队消息',
|
|
764
772
|
queuePendingDescription: '等待中的消息会按下列顺序处理',
|
|
@@ -773,7 +781,8 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
773
781
|
noticeError: '错误',
|
|
774
782
|
actionableNotice: '{{level}}通知:{{title}},点击处理',
|
|
775
783
|
noticeLabel: '{{level}}通知:{{title}}',
|
|
776
|
-
|
|
784
|
+
olderNotices_one: '展开 {{count}} 条更早通知',
|
|
785
|
+
olderNotices_other: '展开 {{count}} 条更早通知',
|
|
777
786
|
deleteNotice: '删除通知:{{title}}',
|
|
778
787
|
dismissNotice: '删除通知',
|
|
779
788
|
hideSessionMenu: '隐藏工作会话菜单',
|
|
@@ -835,7 +844,8 @@ export const L2_WORKBENCH_LOCALE_MESSAGES = {
|
|
|
835
844
|
slashFailed: '命令加载失败',
|
|
836
845
|
slashEmpty: '无匹配命令',
|
|
837
846
|
slashSummary: '{{commands}} 条命令 · {{groups}} 类',
|
|
838
|
-
|
|
847
|
+
slashCount_one: '{{count}} 条命令',
|
|
848
|
+
slashCount_other: '{{count}} 条命令',
|
|
839
849
|
slashUpDown: '↑↓ 选择',
|
|
840
850
|
slashEnter: 'Enter 选择',
|
|
841
851
|
slashEscape: 'Esc 关闭',
|
|
@@ -50,7 +50,7 @@ export const L2_WORKBENCH_PICKER_MESSAGES = {
|
|
|
50
50
|
noReplaceHistory: 'This project has no available past sessions',
|
|
51
51
|
sessionFound_one: '{{count}} session found',
|
|
52
52
|
sessionFound_other: '{{count}} sessions found',
|
|
53
|
-
sessionMessages: '{{users}}/{{total}}
|
|
53
|
+
sessionMessages: 'Messages: {{users}}/{{total}} · {{time}}',
|
|
54
54
|
replacing: 'Replacing',
|
|
55
55
|
current: 'Current',
|
|
56
56
|
alreadyUsed: 'In use',
|
|
@@ -66,8 +66,10 @@ export const L2_WORKBENCH_PICKER_MESSAGES = {
|
|
|
66
66
|
viewUserMessages_one: 'View {{count}} user message',
|
|
67
67
|
viewUserMessages_other: 'View {{count}} user messages',
|
|
68
68
|
viewMatch: 'View {{label}}',
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
matchingUserCount_one: '{{count}} matching user message',
|
|
70
|
+
matchingUserCount_other: '{{count}} matching user messages',
|
|
71
|
+
userCount_one: '{{count}} user message',
|
|
72
|
+
userCount_other: '{{count}} user messages',
|
|
71
73
|
viewAll: 'View all',
|
|
72
74
|
noUserMessages: 'No user messages to display',
|
|
73
75
|
noText: '(no text)',
|
|
@@ -102,7 +104,7 @@ export const L2_WORKBENCH_PICKER_MESSAGES = {
|
|
|
102
104
|
kindUser: 'User',
|
|
103
105
|
kindTool: 'Tool',
|
|
104
106
|
kindMessage: 'Message',
|
|
105
|
-
kindCompaction: '
|
|
107
|
+
kindCompaction: 'Compaction',
|
|
106
108
|
kindBranchSummary: 'Branch summary',
|
|
107
109
|
kindCustom: 'Record',
|
|
108
110
|
kindModel: 'Model',
|
|
@@ -111,7 +113,7 @@ export const L2_WORKBENCH_PICKER_MESSAGES = {
|
|
|
111
113
|
kindLabel: 'Label',
|
|
112
114
|
treeIntent: 'Switch the current session branch',
|
|
113
115
|
resendIntent: 'Resend this message in a new branch',
|
|
114
|
-
forkIntent: '
|
|
116
|
+
forkIntent: 'Fork session from a user message',
|
|
115
117
|
cloneIntent: 'Clone the current session',
|
|
116
118
|
runningTitle: 'The current session is running',
|
|
117
119
|
runningStop:
|
|
@@ -141,7 +143,7 @@ export const L2_WORKBENCH_PICKER_MESSAGES = {
|
|
|
141
143
|
noPreview: 'Nothing to preview',
|
|
142
144
|
switchToMessage: 'Switch to {{kind}} message',
|
|
143
145
|
switch: 'Switch',
|
|
144
|
-
forkFromUser: '
|
|
146
|
+
forkFromUser: 'Fork session from this user message',
|
|
145
147
|
branchShortcuts: '↑↓ Select · Tab Filter · ←→ Branch · Enter Switch · Esc Close'
|
|
146
148
|
},
|
|
147
149
|
'zh-CN': {
|
|
@@ -208,8 +210,10 @@ export const L2_WORKBENCH_PICKER_MESSAGES = {
|
|
|
208
210
|
viewUserMessages_one: '查看 {{count}} 条用户消息',
|
|
209
211
|
viewUserMessages_other: '查看 {{count}} 条用户消息',
|
|
210
212
|
viewMatch: '查看{{label}}',
|
|
211
|
-
|
|
212
|
-
|
|
213
|
+
matchingUserCount_one: '匹配的用户消息 {{count}} 条',
|
|
214
|
+
matchingUserCount_other: '匹配的用户消息 {{count}} 条',
|
|
215
|
+
userCount_one: '用户消息 {{count}} 条',
|
|
216
|
+
userCount_other: '用户消息 {{count}} 条',
|
|
213
217
|
viewAll: '查看全部',
|
|
214
218
|
noUserMessages: '没有可展示的用户消息',
|
|
215
219
|
noText: '(无文字内容)',
|