codex-overleaf-link 2.5.1 → 2.6.0
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 +149 -398
- package/README.zh-CN.md +153 -404
- package/extension/bootstrap/manifest.template.json +1 -1
- package/extension/src/background.js +78 -3
- package/extension/src/backgroundSharedSessions.js +55 -2
- package/extension/src/backgroundUpdateCoordinator.js +128 -12
- package/extension/src/content/activeTurnControl.js +164 -7
- package/extension/src/content/composerAttachments.js +11 -2
- package/extension/src/content/composerPanel.js +92 -12
- package/extension/src/content/contentRuntime.js +920 -276
- package/extension/src/content/contextTray.js +8 -2
- package/extension/src/content/contextUsageView.js +267 -0
- package/extension/src/content/diagnosticsPanel.js +18 -0
- package/extension/src/content/generated/content.bundle.js +4496 -924
- package/extension/src/content/generated/content.bundle.meta.json +6 -3
- package/extension/src/content/legacyGlobalRegistry.js +4 -0
- package/extension/src/content/localSkillsPanel.js +2 -2
- package/extension/src/content/markdownDomRenderer.js +5 -3
- package/extension/src/content/markdownText.js +42 -5
- package/extension/src/content/modelPicker.js +1 -0
- package/extension/src/content/nativeCompatibilityController.js +29 -10
- package/extension/src/content/otWarmMirror.js +1 -1
- package/extension/src/content/pageBridgeClient.js +2 -2
- package/extension/src/content/panelMaintenance.js +6 -2
- package/extension/src/content/panelRenderer.js +51 -27
- package/extension/src/content/pendingInputView.js +1 -1
- package/extension/src/content/projectSettingsCoordinator.js +30 -6
- package/extension/src/content/providerSettingsDialog.js +2 -1
- package/extension/src/content/recentProjects.js +4 -3
- package/extension/src/content/runActivitySummary.js +122 -14
- package/extension/src/content/runCompletionMeta.js +194 -6
- package/extension/src/content/runController.js +2 -1
- package/extension/src/content/runFailureNotice.js +8 -1
- package/extension/src/content/runPresence.js +18 -8
- package/extension/src/content/runQueueScheduler.js +9 -5
- package/extension/src/content/runRecoveryActions.js +2 -1
- package/extension/src/content/runResultActions.js +22 -20
- package/extension/src/content/runReviewController.js +94 -35
- package/extension/src/content/runTimelineView.js +224 -25
- package/extension/src/content/scopedPersistencePanelState.js +92 -23
- package/extension/src/content/sensitivePreflight.js +14 -1
- package/extension/src/content/sessionManager.js +49 -3
- package/extension/src/content/sessionMenuView.js +54 -18
- package/extension/src/content/sessionPersistence.js +25 -5
- package/extension/src/content/settingsPanel.js +15 -2
- package/extension/src/content/settingsWorkbench.js +127 -89
- package/extension/src/content/sharedSessionViewSync.js +4 -3
- package/extension/src/content/subagentActivityView.js +23 -7
- package/extension/src/content/updateNotice.js +60 -6
- package/extension/src/content/writebackOrchestrator.js +35 -22
- package/extension/src/page/compileBridge.js +193 -180
- package/extension/src/page/overleafCapabilities.js +4 -1
- package/extension/src/page/textCoordinates.js +17 -1
- package/extension/src/page/textFileCreator.js +9 -1
- package/extension/src/page/writebackRouter.js +24 -77
- package/extension/src/pageBridge.js +107 -66
- package/extension/src/popup.js +1 -1
- package/extension/src/shared/agentTranscript.js +350 -17
- package/extension/src/shared/auditRecords.js +2 -0
- package/extension/src/shared/compatibility.js +1 -1
- package/extension/src/shared/compileAdapter.js +58 -17
- package/extension/src/shared/composerAttachmentDraft.js +6 -1
- package/extension/src/shared/contextUsage.js +125 -0
- package/extension/src/shared/failureReasons.js +42 -3
- package/extension/src/shared/i18n.js +299 -29
- package/extension/src/shared/lineReferences.js +38 -31
- package/extension/src/shared/pageRpcContract.js +1 -1
- package/extension/src/shared/panelIcons.js +39 -0
- package/extension/src/shared/reviewing.js +130 -1
- package/extension/src/shared/runActivityModel.js +70 -4
- package/extension/src/shared/runExecutionSnapshot.js +13 -0
- package/extension/src/shared/sessionState.js +63 -4
- package/extension/src/shared/sessionTitle.js +14 -1
- package/extension/src/shared/sharedSessionBridge.js +81 -13
- package/extension/src/shared/staleGuard.js +72 -63
- package/extension/src/shared/storageDb.js +35 -3
- package/extension/src/shared/storageMigration.js +7 -1
- package/extension/src/shared/storageRunActions.js +62 -8
- package/extension/src/shared/undoOperations.js +126 -28
- package/extension/src/shared/updateRuntimeIdentity.js +16 -2
- package/extension/src/shared/writebackSettlement.js +21 -3
- package/extension/styles/panel.css +1106 -490
- package/native-host/src/bootstrapUpdate.js +52 -16
- package/native-host/src/chatBridgeRequest.js +60 -6
- package/native-host/src/chatBridgeResponse.js +10 -1
- package/native-host/src/chatCompletionsBridge.js +29 -2
- package/native-host/src/codexPromptAssembly.js +86 -118
- package/native-host/src/codexSessionRunner.js +126 -17
- package/native-host/src/providerContextError.js +20 -0
- package/native-host/src/taskRunnerRuntime.js +18 -6
- package/native-host/src/textPatch.js +473 -377
- package/native-host/src/updateManager.js +120 -15
- package/package.json +5 -8
|
@@ -12,6 +12,63 @@
|
|
|
12
12
|
|
|
13
13
|
const MESSAGES = {
|
|
14
14
|
en: {
|
|
15
|
+
runOutcomeIncomplete: "Didn't finish",
|
|
16
|
+
runOutcomePartial: "Partly written",
|
|
17
|
+
runOutcomeNotWritten: "Not written",
|
|
18
|
+
runOutcomeCheck: "Check Overleaf",
|
|
19
|
+
runOutcomeNoWrites: "Nothing was written to Overleaf.",
|
|
20
|
+
runOutcomeNotWrittenBody: "Codex did not overwrite it. Nothing was written.",
|
|
21
|
+
runOutcomePartialTitle: "{wrote} of {total} changes written",
|
|
22
|
+
runOutcomePartialNext: "Review the skipped files, then send again. You can also use \"Undo written parts\" above.",
|
|
23
|
+
runOutcomeUnconfirmedFile: "Couldn't confirm the write to {file}",
|
|
24
|
+
runOutcomeUnconfirmed: "Couldn't confirm the write",
|
|
25
|
+
runOutcomeUnconfirmedBody: "Some changes may already be in Overleaf.",
|
|
26
|
+
runOutcomeCheckNext: "Check {file} before sending again.",
|
|
27
|
+
runOutcomeContextNext: "Use /compact or start a new conversation with less context, then retry.",
|
|
28
|
+
runOutcomeNativeNext: "Send again. If it keeps happening, open Diagnostics to check the bridge.",
|
|
29
|
+
runOutcomeStaleNext: "Review the current file, then send again.",
|
|
30
|
+
runOutcomeStaleReason: "Changed while Codex was working, so it was not overwritten.",
|
|
31
|
+
runOutcomeSkipped: "Skipped",
|
|
32
|
+
runOutcomeWritten: "Written",
|
|
33
|
+
runOutcomeNext: "Review the details, then retry.",
|
|
34
|
+
runOutcomeDetails: "Details",
|
|
35
|
+
runOutcomeCode: "Code",
|
|
36
|
+
runOutcomeStage: "Stage",
|
|
37
|
+
runOutcomeWrites: "Writes",
|
|
38
|
+
runOutcomeNoneAttempted: "None attempted",
|
|
39
|
+
runOutcomeCompileChip: "{count} compile error{plural}",
|
|
40
|
+
runOutcomeCompileTitle: "Overleaf compile: {count} error{plural}",
|
|
41
|
+
runCompileUnconfirmed: 'Post-write compile check: Result unconfirmed.',
|
|
42
|
+
runOutcomeCause_stale_source_changed: "{file} changed while Codex was working",
|
|
43
|
+
runOutcomeCause_target_editor_not_ready: "The editor for {file} wasn't ready",
|
|
44
|
+
runOutcomeCause_write_timeout: "Write confirmation timed out",
|
|
45
|
+
runOutcomeCause_write_observed_mismatch: "The write didn't match the expected content",
|
|
46
|
+
runOutcomeCause_codex_context_limit: "Model context limit exceeded",
|
|
47
|
+
runOutcomeCause_codex_timeout: "Local Codex timed out",
|
|
48
|
+
runOutcomeCause_codex_output_limit: "Model output limit exceeded",
|
|
49
|
+
runOutcomeCause_codex_no_usable_result: "Local Codex returned no usable result",
|
|
50
|
+
runOutcomeCause_native_request_failed: "Lost connection to local Codex",
|
|
51
|
+
runOutcomeCause_panel_reload_interrupted: "The page was refreshed while Codex was working",
|
|
52
|
+
runOutcomeReloadUnknownBody: "No write was recorded before the refresh. Check the files in Overleaf before sending again.",
|
|
53
|
+
runOutcomeCause_governance_readonly: "{file} is read-only under this project's path rules",
|
|
54
|
+
runOutcomeCause_governance_writable_allowlist: "{file} is outside this project's writable paths",
|
|
55
|
+
runOutcomeCause_sensitive_content_blocked: "Possible {finding} found before sending",
|
|
56
|
+
sensitiveFinding_private_key: "private key",
|
|
57
|
+
sensitiveFinding_bearer_token: "bearer token",
|
|
58
|
+
sensitiveFinding_api_token: "API token",
|
|
59
|
+
sensitiveFinding_aws_access_key: "AWS access key",
|
|
60
|
+
sensitiveFinding_google_api_key: "Google API key",
|
|
61
|
+
sensitiveFinding_huggingface_token: "Hugging Face token",
|
|
62
|
+
sensitiveFinding_gitlab_token: "GitLab token",
|
|
63
|
+
sensitiveFinding_stripe_live_secret: "Stripe secret key",
|
|
64
|
+
sensitiveFinding_jwt_token: "JWT",
|
|
65
|
+
sensitiveFinding_secret_assignment: "secret value",
|
|
66
|
+
sensitiveFinding_mixed: "sensitive content",
|
|
67
|
+
runOutcomeCause_native_bridge_unavailable: "Couldn't connect to local Codex",
|
|
68
|
+
runOutcomeCause_project_snapshot_unavailable: "Couldn't read the Overleaf project",
|
|
69
|
+
runOutcomeCause_patch_anchor_not_found: "Couldn't locate the change in {file}",
|
|
70
|
+
runOutcomeCause_undo_not_verified: "Couldn't confirm Undo",
|
|
71
|
+
runOutcomeCause_undo_operation_failed: "Couldn't finish Undo",
|
|
15
72
|
failureReason_base_file_missing_at_start_user: "A file needed for this task was missing during the initial project read.",
|
|
16
73
|
failureReason_base_file_missing_at_start_next: "Refresh project context and rerun.",
|
|
17
74
|
failureReason_target_file_missing_path_user: "The change did not include a target file path.",
|
|
@@ -40,6 +97,24 @@
|
|
|
40
97
|
failureReason_subagent_unfinished_output_next: "Have the main agent complete and adopt the pending file.",
|
|
41
98
|
failureReason_subagent_unauthorized_edit_user: "A file changed outside the subagent ownership boundary and was not synced.",
|
|
42
99
|
failureReason_subagent_unauthorized_edit_next: "Review the ownership violation; it cannot be cleared through output adoption.",
|
|
100
|
+
failureReason_reviewing_unavailable_user: "Track Changes is unavailable for this project. It depends on the project owner's Overleaf plan.",
|
|
101
|
+
failureReason_reviewing_unavailable_next: "Turn off Track in the composer to write without tracked changes. Codex still records each change so you can undo it.",
|
|
102
|
+
failureReason_reviewing_unavailable_cancelled_next: "Nothing ran and your Track setting is unchanged. Send again to choose an option.",
|
|
103
|
+
runNotStarted: 'Not started',
|
|
104
|
+
runNotStartedCancelled: 'Not started · cancelled',
|
|
105
|
+
runNotStartedTrackTitle: "Track Changes isn't available for this project",
|
|
106
|
+
runNotStartedModeTitle: "Couldn't confirm Overleaf's editing mode",
|
|
107
|
+
runNotStartedTrackBody: "Track Changes depends on the project owner's Overleaf plan; nothing ran and no files were written.",
|
|
108
|
+
runNotStartedModeBody: 'Overleaf did not confirm the required editing mode; nothing ran and no files were written.',
|
|
109
|
+
runNotStartedCancelledNext: 'Your Track setting is unchanged. Send again to choose an option.',
|
|
110
|
+
runNotStartedNext: 'Check the editing mode in Overleaf, then retry.',
|
|
111
|
+
reviewingUnavailableTitle: "Track Changes unavailable",
|
|
112
|
+
reviewingUnavailableChoiceMessage: "Track Changes is unavailable for this project. It depends on the project owner's Overleaf plan. Codex can still write without tracked changes and records each change so you can undo it.",
|
|
113
|
+
reviewingUnavailableContinue: "Continue without tracking",
|
|
114
|
+
reviewingUnavailableDisable: "Turn off Track for this project",
|
|
115
|
+
reviewingUnavailableStatus: "Track Changes unavailable",
|
|
116
|
+
reviewingUnavailableTooltip: "Track Changes is unavailable for this project. Codex will ask before each run. Turn Track off and on to check again.",
|
|
117
|
+
reviewingUnavailableRunUntracked: "This run writes without tracked changes because Track Changes is unavailable. Codex still records changes for Undo.",
|
|
43
118
|
failureReason_reviewing_enable_failed_user: "Codex could not enable Reviewing when it needed to.",
|
|
44
119
|
failureReason_reviewing_enable_failed_next: "Enable Reviewing manually or retry.",
|
|
45
120
|
failureReason_reviewing_disable_failed_user: "Codex could not switch to Editing / no-trace mode.",
|
|
@@ -130,6 +205,8 @@
|
|
|
130
205
|
resizePanel: 'Drag to resize the Codex panel. Double click to reset.',
|
|
131
206
|
codexActions: 'Codex actions',
|
|
132
207
|
refreshProbe: 'Refresh current file status. This will not sync or modify files.',
|
|
208
|
+
refreshProbeTitle: 'Refresh file status',
|
|
209
|
+
refreshProbeSubtitle: 'Re-reads Overleaf state; does not sync or modify files',
|
|
133
210
|
diagnosticsMenu: 'Diagnostics',
|
|
134
211
|
diagnosticsHint: 'Use when Codex cannot run, write, or read files',
|
|
135
212
|
diagnosticsRunAllTitle: 'Run all checks',
|
|
@@ -189,6 +266,9 @@
|
|
|
189
266
|
nativeCompatibilityBlockedProtocol: 'Native host protocol mismatch before {method}. Update the extension and native host together.',
|
|
190
267
|
nativeCompatibilityBlockedUnhealthy: 'Local Codex is not ready for {method}. Open Diagnostics > Check Local Connection for details.',
|
|
191
268
|
nativeCompatibilityBlockedMissing: 'Native host is not connected for {method}. Install the local native host, reload the extension, and try again.',
|
|
269
|
+
nativeCompatibilityMissingTitle: 'Native host is not connected',
|
|
270
|
+
nativeCompatibilityMissingGuidance: 'Install the local native host, reload the extension, and try again.',
|
|
271
|
+
nativeCompatibilityUnavailableFeatures: '{count} features unavailable',
|
|
192
272
|
nativeCompatibilityBlockedGeneric: 'Native host is not compatible with this extension for {method}. Update the native host and extension, then try again.',
|
|
193
273
|
diagnosticsPageLoading: 'Checking the current file, write access, and track changes.',
|
|
194
274
|
diagnosticsLoading: 'Checking current state.',
|
|
@@ -208,6 +288,9 @@
|
|
|
208
288
|
threadResumeNew: 'New thread',
|
|
209
289
|
sessionsHead: 'Sessions',
|
|
210
290
|
sessionMenuOpen: 'Switch session',
|
|
291
|
+
sessionMenuNewShort: 'New',
|
|
292
|
+
sessionMenuRenameShort: 'Rename',
|
|
293
|
+
sessionMenuDeleteShort: 'Delete',
|
|
211
294
|
sessionListEmpty: 'No saved sessions yet — start a task to create one.',
|
|
212
295
|
deleteSessionDeletedToast: 'Session deleted.',
|
|
213
296
|
resetSessionTitle: 'Start a fresh session?',
|
|
@@ -254,6 +337,7 @@
|
|
|
254
337
|
undoRunTitle: 'Undo this run\'s Overleaf writes',
|
|
255
338
|
undoPartialRunTitle: 'Undo the parts of this run already written to Overleaf',
|
|
256
339
|
undoAppliedTitle: 'This run\'s writes have been undone',
|
|
340
|
+
undoAcceptedTitle: 'These changes were accepted in Overleaf, so Undo is no longer available.',
|
|
257
341
|
undoNoWritesTitle: 'No writes in this run; nothing to undo.',
|
|
258
342
|
undoUnsafeFullFileTitle: 'Blocked legacy full-file undo',
|
|
259
343
|
undoUnsafeFullFileReason: 'This undo point would restore the file with a full-text replacement, which can mark the whole document as changed in Overleaf Track Changes. Run the task again to create a local undo point, or handle this old change manually.',
|
|
@@ -262,11 +346,11 @@
|
|
|
262
346
|
undoConfirm: 'Undo writes',
|
|
263
347
|
undoNoTraceStarted: 'Starting no-track undo for this run',
|
|
264
348
|
undoResult: 'Undo result: undone {applied} item(s), skipped {skipped} item(s)',
|
|
265
|
-
undoTrackedTitle: '
|
|
349
|
+
undoTrackedTitle: 'Undo this run\'s tracked changes?',
|
|
266
350
|
undoNativeTitle: 'Undo this run\'s Overleaf writes?',
|
|
267
351
|
undoTrackedMessage: 'This will use Overleaf Reject to undo {files}.\n\nIt will not rewrite files with text patches. If the extension cannot verify the matching tracked changes, it will stop and let you handle them in Overleaf review tools.',
|
|
268
352
|
undoNativeMessage: 'Undo this run\'s changes in {files}.',
|
|
269
|
-
undoTrackedConfirm: '
|
|
353
|
+
undoTrackedConfirm: 'Undo changes',
|
|
270
354
|
undoTrackedStarted: 'Starting rejection of this run\'s Overleaf tracked changes',
|
|
271
355
|
undoNativeStarted: 'Undoing this run\'s changes',
|
|
272
356
|
undoTrackedResult: 'Undo result: rejected {applied} tracked change(s), skipped {skipped}',
|
|
@@ -363,8 +447,14 @@
|
|
|
363
447
|
codexLocalSkillsSkipped: '{count} local skills could not be loaded.',
|
|
364
448
|
codexLocalSkillsLoadFailed: 'Could not load local Codex skills. Open Skills again to retry.',
|
|
365
449
|
codexLocalSkillsDisabled: 'Local Codex skills are disabled for runs.',
|
|
366
|
-
slashUseLocalSkillSubtitle: '
|
|
367
|
-
slashUseOverleafSkillSubtitle: '
|
|
450
|
+
slashUseLocalSkillSubtitle: 'Use for this turn',
|
|
451
|
+
slashUseOverleafSkillSubtitle: 'Use for this turn',
|
|
452
|
+
slashGroupCommands: 'Commands',
|
|
453
|
+
slashGroupOverleafSkills: 'Codex Overleaf skills',
|
|
454
|
+
slashGroupLocalSkills: 'Local Codex skills',
|
|
455
|
+
slashKeyMove: 'Move',
|
|
456
|
+
slashKeyRun: 'Run',
|
|
457
|
+
slashKeyClose: 'Close',
|
|
368
458
|
codexOverleafSkillsEmpty: 'No Codex Overleaf skills installed.',
|
|
369
459
|
codexOverleafSkillsDisabled: 'Codex Overleaf skills are disabled for runs.',
|
|
370
460
|
loadCodexLocalSkills: 'Load local Codex skills',
|
|
@@ -382,6 +472,13 @@
|
|
|
382
472
|
codexOverleafSkillsSummaryOff: 'Off',
|
|
383
473
|
codexOverleafSkillsSummaryCount: '{count} enabled',
|
|
384
474
|
slashInstallSkillTitle: 'Install skill',
|
|
475
|
+
slashCompactTitle: 'Compact context',
|
|
476
|
+
slashCompactSubtitle: 'Summarize earlier turns to free the context window',
|
|
477
|
+
compactNoThread: 'Start a conversation before compacting its context.',
|
|
478
|
+
compactBusy: 'Wait for the current task to finish before compacting context.',
|
|
479
|
+
compactUnsupported: 'This local Codex connection does not support manual compaction. Update Codex and reload the extension.',
|
|
480
|
+
compactCompleted: 'Conversation context compacted.',
|
|
481
|
+
compactFailed: 'Context compaction did not complete. Check Technical Details before retrying.',
|
|
385
482
|
slashInstallSkillSubtitle: 'Use the Codex skill installer with natural language.',
|
|
386
483
|
slashUseSkillSubtitle: 'Use this skill for the next Codex turn.',
|
|
387
484
|
skillInstallerComposerLabel: 'Skill Installer',
|
|
@@ -396,18 +493,14 @@
|
|
|
396
493
|
settingsSaved: 'Saved',
|
|
397
494
|
appearanceTitle: 'Appearance',
|
|
398
495
|
settingsWorkbenchTitle: 'Settings',
|
|
399
|
-
|
|
400
|
-
settingsWorkbenchGeneral: 'General & appearance',
|
|
496
|
+
settingsWorkbenchWriting: 'Writing',
|
|
401
497
|
settingsWorkbenchModels: 'Models & connections',
|
|
402
|
-
|
|
403
|
-
settingsWorkbenchInstructions: 'Instructions & skills',
|
|
498
|
+
settingsWorkbenchContextSkills: 'Context & skills',
|
|
404
499
|
settingsWorkbenchProtection: 'Protection & privacy',
|
|
405
|
-
|
|
406
|
-
settingsWorkbenchAll: 'All settings',
|
|
407
|
-
settingsWorkbenchFilter: 'Filter settings by scope',
|
|
500
|
+
settingsWorkbenchChanges: 'History',
|
|
408
501
|
settingsWorkbenchCategories: 'Settings categories',
|
|
409
|
-
|
|
410
|
-
|
|
502
|
+
settingsPageScopeProject: 'Only for this project',
|
|
503
|
+
settingsPageScopeGlobal: 'Applies to all projects',
|
|
411
504
|
settingsWorkbenchClose: 'Close settings',
|
|
412
505
|
settingsWorkbenchEnableSkills: 'Enable Overleaf skills',
|
|
413
506
|
settingsWorkbenchSkillsHelp: 'Turn off Overleaf skills without changing individual selections.',
|
|
@@ -480,6 +573,10 @@
|
|
|
480
573
|
diagnosticsDotWarn: 'Diagnostics — something needs attention',
|
|
481
574
|
diagnosticsDotFail: 'Diagnostics — a check failed, click to inspect',
|
|
482
575
|
diagnosticsDotUnknown: 'Diagnostics',
|
|
576
|
+
diagnosticsPillOk: 'Ready',
|
|
577
|
+
diagnosticsPillWarn: 'Attention',
|
|
578
|
+
diagnosticsPillFail: 'Problem',
|
|
579
|
+
diagnosticsPillUnknown: 'Checking',
|
|
483
580
|
reasoningLabel: 'Reasoning effort',
|
|
484
581
|
speedLabel: 'Speed',
|
|
485
582
|
requireReviewing: 'Track',
|
|
@@ -547,6 +644,33 @@
|
|
|
547
644
|
queuedInputError_queue_full: 'The follow-up queue is full.',
|
|
548
645
|
queuedInputError_queue_too_large: 'The follow-up queue reached its storage limit.',
|
|
549
646
|
contextTitle: '@ Context',
|
|
647
|
+
contextUsageTitle: 'Context window',
|
|
648
|
+
contextUsageAmount: '{used} / {capacity} tokens',
|
|
649
|
+
contextUsageSummary: 'Context window: {amount} ({percentage})',
|
|
650
|
+
contextUsageEstimate: 'Latest reported context estimate.',
|
|
651
|
+
contextUsageUnavailable: 'Context usage is not available yet.',
|
|
652
|
+
contextUsageBeforeFirstMessage: 'Usage appears after your first message.',
|
|
653
|
+
contextUsageCapacityUnknown: 'Latest reported usage; window size is unavailable.',
|
|
654
|
+
contextUsageCompacting: 'Compacting context…',
|
|
655
|
+
contextUsageCompactingAuto: 'Compacting context; Codex will continue.',
|
|
656
|
+
contextUsagePending: 'Context compacted. Usage updates after the next reply.',
|
|
657
|
+
contextUsagePendingDetail: 'Usage updates after the next reply.',
|
|
658
|
+
contextUsageCompactedChip: 'Compacted',
|
|
659
|
+
contextUsageHigh: 'High',
|
|
660
|
+
contextUsageNearLimit: 'Near limit',
|
|
661
|
+
contextUsageInput: 'Input',
|
|
662
|
+
contextUsageOutput: 'Output',
|
|
663
|
+
contextUsageBreakdownBasis: 'Shares of reported input + output.',
|
|
664
|
+
contextUsageCacheHit: 'Cached',
|
|
665
|
+
contextUsageCacheHitRate: 'Input cache hit rate',
|
|
666
|
+
contextUsageLatestReply: 'Latest reply · {time}',
|
|
667
|
+
contextUsageJustNow: 'just now',
|
|
668
|
+
contextUsageMinutesAgo: '{count} min ago',
|
|
669
|
+
contextUsageHoursAgo: '{count} hr ago',
|
|
670
|
+
contextUsageDayAgo: '1 day ago',
|
|
671
|
+
contextUsageDaysAgo: '{count} days ago',
|
|
672
|
+
contextUsageCompactAction: 'Compact',
|
|
673
|
+
contextUsageCompactHint: 'Summarize earlier turns to free the window. Documents are not read or changed.',
|
|
550
674
|
refreshFileList: 'Refresh file list',
|
|
551
675
|
contextStatus: 'Type @ to add files, or click +: files, attachments (PDF/images), @compile-log.',
|
|
552
676
|
contextLoadingFiles: 'Reading available @files...',
|
|
@@ -583,6 +707,11 @@
|
|
|
583
707
|
fileContext: 'has selected @file context',
|
|
584
708
|
contextContext: 'has selected @context',
|
|
585
709
|
refreshProbeLoading: 'Refreshing current file, write access, and track changes...',
|
|
710
|
+
probeScopeCurrentFile: 'Current file',
|
|
711
|
+
probeScopeSelection: 'Selected text',
|
|
712
|
+
probeScopeFiles: 'Selected files',
|
|
713
|
+
probeScopeContext: 'Selected context',
|
|
714
|
+
probeScopeProject: 'Whole project',
|
|
586
715
|
refreshProbeDone: 'Refreshed: {status}',
|
|
587
716
|
refreshProbeFailed: 'Refresh failed. Reload Overleaf and try again.',
|
|
588
717
|
processedFailed: 'Failed {elapsed}',
|
|
@@ -630,6 +759,10 @@
|
|
|
630
759
|
failureReason_accept_replay_failed_next: 'Inspect the file in Overleaf, then retry.',
|
|
631
760
|
failureReason_native_request_failed_user: 'The request to the local Codex bridge failed.',
|
|
632
761
|
failureReason_native_request_failed_next: 'Open Diagnostics to check the bridge, then retry.',
|
|
762
|
+
failureReason_panel_reload_interrupted_user: 'This run was interrupted by a page refresh.',
|
|
763
|
+
failureReason_panel_reload_interrupted_next: 'Edit and resend the task to continue.',
|
|
764
|
+
failureReason_sensitive_content_blocked_user: 'Sensitive content was found before sending, so Codex did not receive this request.',
|
|
765
|
+
failureReason_sensitive_content_blocked_next: 'Remove the sensitive content, narrow @context, or enable explicit sensitive confirmation in Project Settings.',
|
|
633
766
|
failureReason_project_snapshot_unavailable_user: 'Codex could not read the Overleaf project snapshot.',
|
|
634
767
|
failureReason_project_snapshot_unavailable_next: 'Refresh Overleaf, then rerun the task.',
|
|
635
768
|
failureReason_selected_context_unresolved_user: 'Codex could not resolve the requested selection or context.',
|
|
@@ -668,6 +801,8 @@
|
|
|
668
801
|
failureReason_accept_not_verified_next: 'Inspect Overleaf Reviewing before continuing.',
|
|
669
802
|
failureReason_native_bridge_unavailable_user: 'Extension cannot connect to the Codex native host.',
|
|
670
803
|
failureReason_native_bridge_unavailable_next: 'Run install-native or reload the extension.',
|
|
804
|
+
failureReason_codex_context_limit_user: 'This run stopped because the model context limit was exceeded.',
|
|
805
|
+
failureReason_codex_context_limit_next: 'Retry the task. If the context limit is reached again, use /compact or start a new conversation with less context.',
|
|
671
806
|
failureReason_codex_no_usable_result_user: 'Local Codex returned no usable final report or operations.',
|
|
672
807
|
failureReason_codex_no_usable_result_next: 'Open Technical Details and resolve the local Codex error.',
|
|
673
808
|
failureReason_codex_project_locked_user: 'Another Codex task is already running for this Overleaf project.',
|
|
@@ -761,6 +896,63 @@
|
|
|
761
896
|
recentProjects_badge_abandoned_after_navigation: 'Last run stopped after navigation'
|
|
762
897
|
},
|
|
763
898
|
zh: {
|
|
899
|
+
runOutcomeIncomplete: "未完成",
|
|
900
|
+
runOutcomePartial: "部分写入",
|
|
901
|
+
runOutcomeNotWritten: "未写入",
|
|
902
|
+
runOutcomeCheck: "请检查 Overleaf",
|
|
903
|
+
runOutcomeNoWrites: "没有向 Overleaf 写入任何内容。",
|
|
904
|
+
runOutcomeNotWrittenBody: "Codex 没有覆盖文件,没有写入任何内容。",
|
|
905
|
+
runOutcomePartialTitle: "已写入 {wrote}/{total} 项修改",
|
|
906
|
+
runOutcomePartialNext: "请检查跳过的文件后重新发送,也可以点击上方的“撤销已写入部分”。",
|
|
907
|
+
runOutcomeUnconfirmedFile: "无法确认对 {file} 的写入",
|
|
908
|
+
runOutcomeUnconfirmed: "无法确认写入结果",
|
|
909
|
+
runOutcomeUnconfirmedBody: "部分改动可能已经写入 Overleaf。",
|
|
910
|
+
runOutcomeCheckNext: "请先检查 {file} 再重新发送。",
|
|
911
|
+
runOutcomeContextNext: "请使用 /compact 或以更少的上下文开始新对话后重试。",
|
|
912
|
+
runOutcomeNativeNext: "请重新发送;若持续中断,请打开诊断检查桥接连接。",
|
|
913
|
+
runOutcomeStaleNext: "请检查当前文件后重新发送。",
|
|
914
|
+
runOutcomeStaleReason: "文件在 Codex 工作期间发生变化,因此没有覆盖。",
|
|
915
|
+
runOutcomeSkipped: "已跳过",
|
|
916
|
+
runOutcomeWritten: "已写入",
|
|
917
|
+
runOutcomeNext: "请检查详情后重试。",
|
|
918
|
+
runOutcomeDetails: "详情",
|
|
919
|
+
runOutcomeCode: "代码",
|
|
920
|
+
runOutcomeStage: "阶段",
|
|
921
|
+
runOutcomeWrites: "写入",
|
|
922
|
+
runOutcomeNoneAttempted: "未尝试写入",
|
|
923
|
+
runOutcomeCompileChip: "{count} 个编译错误",
|
|
924
|
+
runOutcomeCompileTitle: "Overleaf 编译:{count} 个错误",
|
|
925
|
+
runCompileUnconfirmed: '写后编译检查:结果待确认。',
|
|
926
|
+
runOutcomeCause_stale_source_changed: "{file} 在 Codex 工作期间发生变化",
|
|
927
|
+
runOutcomeCause_target_editor_not_ready: "{file} 的编辑器尚未就绪",
|
|
928
|
+
runOutcomeCause_write_timeout: "写入确认超时",
|
|
929
|
+
runOutcomeCause_write_observed_mismatch: "写入后的内容与预期不符",
|
|
930
|
+
runOutcomeCause_codex_context_limit: "超出模型上下文限制",
|
|
931
|
+
runOutcomeCause_codex_timeout: "本地 Codex 超时",
|
|
932
|
+
runOutcomeCause_codex_output_limit: "超出模型输出限制",
|
|
933
|
+
runOutcomeCause_codex_no_usable_result: "本地 Codex 没有返回可用结果",
|
|
934
|
+
runOutcomeCause_native_request_failed: "与本地 Codex 的连接中断",
|
|
935
|
+
runOutcomeCause_panel_reload_interrupted: "Codex 工作时页面被刷新了",
|
|
936
|
+
runOutcomeReloadUnknownBody: "刷新前没有记录到写入。再次发送前,请先在 Overleaf 中检查文件。",
|
|
937
|
+
runOutcomeCause_governance_readonly: "{file} 在本项目的路径规则中设为只读",
|
|
938
|
+
runOutcomeCause_governance_writable_allowlist: "{file} 不在本项目允许写入的路径内",
|
|
939
|
+
runOutcomeCause_sensitive_content_blocked: "发送前发现疑似{finding}",
|
|
940
|
+
sensitiveFinding_private_key: "私钥",
|
|
941
|
+
sensitiveFinding_bearer_token: "Bearer 令牌",
|
|
942
|
+
sensitiveFinding_api_token: "API 令牌",
|
|
943
|
+
sensitiveFinding_aws_access_key: "AWS 访问密钥",
|
|
944
|
+
sensitiveFinding_google_api_key: "Google API 密钥",
|
|
945
|
+
sensitiveFinding_huggingface_token: "Hugging Face 令牌",
|
|
946
|
+
sensitiveFinding_gitlab_token: "GitLab 令牌",
|
|
947
|
+
sensitiveFinding_stripe_live_secret: "Stripe 密钥",
|
|
948
|
+
sensitiveFinding_jwt_token: "JWT",
|
|
949
|
+
sensitiveFinding_secret_assignment: "密钥值",
|
|
950
|
+
sensitiveFinding_mixed: "敏感内容",
|
|
951
|
+
runOutcomeCause_native_bridge_unavailable: "无法连接到本地 Codex",
|
|
952
|
+
runOutcomeCause_project_snapshot_unavailable: "无法读取 Overleaf 项目",
|
|
953
|
+
runOutcomeCause_patch_anchor_not_found: "无法在 {file} 中定位修改位置",
|
|
954
|
+
runOutcomeCause_undo_not_verified: "无法确认撤销结果",
|
|
955
|
+
runOutcomeCause_undo_operation_failed: "无法完成撤销",
|
|
764
956
|
failureReason_base_file_missing_at_start_user: "首次读取项目时,缺少本任务所需的文件。",
|
|
765
957
|
failureReason_base_file_missing_at_start_next: "请刷新项目上下文后重新运行。",
|
|
766
958
|
failureReason_target_file_missing_path_user: "改动中未包含目标文件路径。",
|
|
@@ -789,6 +981,24 @@
|
|
|
789
981
|
failureReason_subagent_unfinished_output_next: "请由主代理完成并采纳待处理文件。",
|
|
790
982
|
failureReason_subagent_unauthorized_edit_user: "文件修改超出了子代理负责的范围,因此未同步。",
|
|
791
983
|
failureReason_subagent_unauthorized_edit_next: "请检查超出负责范围的修改;采纳输出无法解除此限制。",
|
|
984
|
+
failureReason_reviewing_unavailable_user: "此项目无法使用 Track Changes(留痕),是否可用取决于项目所有者的 Overleaf 订阅方案。",
|
|
985
|
+
failureReason_reviewing_unavailable_next: "关闭输入框旁的“留痕”即可不留痕写入。Codex 仍会记录每次改动,方便你撤销。",
|
|
986
|
+
failureReason_reviewing_unavailable_cancelled_next: "没有运行,Track 设置保持不变。重新发送即可再次选择。",
|
|
987
|
+
runNotStarted: '未开始',
|
|
988
|
+
runNotStartedCancelled: '未开始 · 已取消',
|
|
989
|
+
runNotStartedTrackTitle: '此项目无法使用 Track Changes(留痕)',
|
|
990
|
+
runNotStartedModeTitle: '无法确认 Overleaf 的编辑模式',
|
|
991
|
+
runNotStartedTrackBody: '留痕功能取决于项目所有者的 Overleaf 订阅方案;任务没有运行,也没有写入文件。',
|
|
992
|
+
runNotStartedModeBody: 'Overleaf 未确认所需的编辑模式;任务没有运行,也没有写入文件。',
|
|
993
|
+
runNotStartedCancelledNext: 'Track 设置保持不变。重新发送即可再次选择。',
|
|
994
|
+
runNotStartedNext: '请检查 Overleaf 的编辑模式后重试。',
|
|
995
|
+
reviewingUnavailableTitle: "此项目无法留痕",
|
|
996
|
+
reviewingUnavailableChoiceMessage: "此项目无法使用 Track Changes(留痕),是否可用取决于项目所有者的 Overleaf 订阅方案。Codex 仍可不留痕写入,并记录每次改动,方便你撤销。",
|
|
997
|
+
reviewingUnavailableContinue: "本轮不留痕继续",
|
|
998
|
+
reviewingUnavailableDisable: "关闭此项目的留痕",
|
|
999
|
+
reviewingUnavailableStatus: "无法留痕",
|
|
1000
|
+
reviewingUnavailableTooltip: "此项目无法使用 Track Changes(留痕)。Codex 会在每轮运行前询问是否不留痕继续。关闭再开启留痕可重新检查。",
|
|
1001
|
+
reviewingUnavailableRunUntracked: "此项目无法使用 Track Changes,本轮将不留痕写入。Codex 仍会记录改动,方便撤销。",
|
|
792
1002
|
failureReason_reviewing_enable_failed_user: "Codex 无法在需要时启用审阅模式。",
|
|
793
1003
|
failureReason_reviewing_enable_failed_next: "请手动启用审阅模式,或重试。",
|
|
794
1004
|
failureReason_reviewing_disable_failed_user: "Codex 无法切换到不留痕的编辑模式。",
|
|
@@ -879,6 +1089,8 @@
|
|
|
879
1089
|
resizePanel: '拖动调整 Codex 面板宽度,双击恢复默认宽度',
|
|
880
1090
|
codexActions: 'Codex 操作',
|
|
881
1091
|
refreshProbe: '重新检测当前文件状态;不会同步或修改文件',
|
|
1092
|
+
refreshProbeTitle: '刷新文件状态',
|
|
1093
|
+
refreshProbeSubtitle: '重新读取 Overleaf 状态;不会同步或修改文件',
|
|
882
1094
|
diagnosticsMenu: '排查问题',
|
|
883
1095
|
diagnosticsHint: '遇到无法运行、无法写入、读不到文件时使用',
|
|
884
1096
|
diagnosticsRunAllTitle: '运行全部检查',
|
|
@@ -938,6 +1150,9 @@
|
|
|
938
1150
|
nativeCompatibilityBlockedProtocol: '执行 {method} 前发现 native host 协议不匹配。请同时更新扩展和 native host。',
|
|
939
1151
|
nativeCompatibilityBlockedUnhealthy: '本机 Codex 还不能执行 {method}。请打开“排查问题 > 检查本机连接”查看详情。',
|
|
940
1152
|
nativeCompatibilityBlockedMissing: '执行 {method} 时没有连接到 native host。请安装本机 native host,重新加载扩展后再试。',
|
|
1153
|
+
nativeCompatibilityMissingTitle: 'Native host 未连接',
|
|
1154
|
+
nativeCompatibilityMissingGuidance: '请安装本机 native host,重新加载扩展后再试。',
|
|
1155
|
+
nativeCompatibilityUnavailableFeatures: '{count} 项功能不可用',
|
|
941
1156
|
nativeCompatibilityBlockedGeneric: '当前 native host 与扩展不兼容,不能执行 {method}。请更新 native host 和扩展后再试。',
|
|
942
1157
|
diagnosticsPageLoading: '确认当前文件、写入能力和留痕状态。',
|
|
943
1158
|
diagnosticsLoading: '正在检查当前状态。',
|
|
@@ -957,6 +1172,9 @@
|
|
|
957
1172
|
threadResumeNew: '新建线程',
|
|
958
1173
|
sessionsHead: '会话',
|
|
959
1174
|
sessionMenuOpen: '切换会话',
|
|
1175
|
+
sessionMenuNewShort: '新建',
|
|
1176
|
+
sessionMenuRenameShort: '重命名',
|
|
1177
|
+
sessionMenuDeleteShort: '删除',
|
|
960
1178
|
sessionListEmpty: '还没有保存的会话——发起一个任务即可创建。',
|
|
961
1179
|
deleteSessionDeletedToast: '已删除会话。',
|
|
962
1180
|
resetSessionTitle: '开一个新会话?',
|
|
@@ -1003,6 +1221,7 @@
|
|
|
1003
1221
|
undoRunTitle: '撤销本轮写入到 Overleaf 的改动',
|
|
1004
1222
|
undoPartialRunTitle: '撤销本轮已经写入 Overleaf 的部分改动',
|
|
1005
1223
|
undoAppliedTitle: '本轮写入已经撤销',
|
|
1224
|
+
undoAcceptedTitle: '这些改动已在 Overleaf 中接受,无法再撤销。',
|
|
1006
1225
|
undoNoWritesTitle: '本轮没有写入,无需撤销。',
|
|
1007
1226
|
undoUnsafeFullFileTitle: '已阻止旧格式全文撤销',
|
|
1008
1227
|
undoUnsafeFullFileReason: '这个撤销点会用全文替换恢复文件,在 Overleaf 留痕模式下会把整篇文档标成改动。请重新运行任务生成局部撤销点,或手动处理这次历史改动。',
|
|
@@ -1011,11 +1230,11 @@
|
|
|
1011
1230
|
undoConfirm: '撤销写入',
|
|
1012
1231
|
undoNoTraceStarted: '开始无留痕撤销本轮写入',
|
|
1013
1232
|
undoResult: '撤销结果:已撤销 {applied} 项,跳过 {skipped} 项',
|
|
1014
|
-
undoTrackedTitle: '
|
|
1233
|
+
undoTrackedTitle: '撤销本轮留痕改动?',
|
|
1015
1234
|
undoNativeTitle: '撤销本轮 Overleaf 写入?',
|
|
1016
1235
|
undoTrackedMessage: '将通过 Overleaf 自己的 Reject/拒绝功能撤销 {files}。\n\n这不会用文本补丁重写文件;如果插件不能确认对应留痕记录,会停止并让你在 Overleaf 审阅面板手动处理。',
|
|
1017
1236
|
undoNativeMessage: '撤销本轮在 {files} 中的改动。',
|
|
1018
|
-
undoTrackedConfirm: '
|
|
1237
|
+
undoTrackedConfirm: '撤销改动',
|
|
1019
1238
|
undoTrackedStarted: '开始拒绝本轮 Overleaf 留痕改动',
|
|
1020
1239
|
undoNativeStarted: '正在撤销本轮改动',
|
|
1021
1240
|
undoTrackedResult: '撤销结果:已拒绝 {applied} 条留痕,跳过 {skipped} 条',
|
|
@@ -1112,8 +1331,14 @@
|
|
|
1112
1331
|
codexLocalSkillsSkipped: '有 {count} 个本地技能未能加载。',
|
|
1113
1332
|
codexLocalSkillsLoadFailed: '无法加载 Codex 本地技能,请重新打开技能页重试。',
|
|
1114
1333
|
codexLocalSkillsDisabled: '运行时已禁用 Codex 本地技能。',
|
|
1115
|
-
slashUseLocalSkillSubtitle: '
|
|
1116
|
-
slashUseOverleafSkillSubtitle: '
|
|
1334
|
+
slashUseLocalSkillSubtitle: '本轮使用',
|
|
1335
|
+
slashUseOverleafSkillSubtitle: '本轮使用',
|
|
1336
|
+
slashGroupCommands: '命令',
|
|
1337
|
+
slashGroupOverleafSkills: 'Codex Overleaf 技能',
|
|
1338
|
+
slashGroupLocalSkills: 'Codex 本地技能',
|
|
1339
|
+
slashKeyMove: '选择',
|
|
1340
|
+
slashKeyRun: '执行',
|
|
1341
|
+
slashKeyClose: '关闭',
|
|
1117
1342
|
codexOverleafSkillsEmpty: '没有安装 Codex Overleaf 专属技能。',
|
|
1118
1343
|
codexOverleafSkillsDisabled: '运行时已禁用 Codex Overleaf 专属技能。',
|
|
1119
1344
|
loadCodexLocalSkills: '加载 Codex 本地技能',
|
|
@@ -1131,6 +1356,13 @@
|
|
|
1131
1356
|
codexOverleafSkillsSummaryOff: '已关闭',
|
|
1132
1357
|
codexOverleafSkillsSummaryCount: '已启用 {count} 个',
|
|
1133
1358
|
slashInstallSkillTitle: '安装 skill',
|
|
1359
|
+
slashCompactTitle: '压缩上下文',
|
|
1360
|
+
slashCompactSubtitle: '整理此前的对话,释放上下文窗口',
|
|
1361
|
+
compactNoThread: '请先开始一轮对话,再压缩上下文。',
|
|
1362
|
+
compactBusy: '请等待当前任务结束后再压缩上下文。',
|
|
1363
|
+
compactUnsupported: '当前本地 Codex 连接不支持手动压缩,请更新 Codex 并重新加载扩展。',
|
|
1364
|
+
compactCompleted: '会话上下文已压缩。',
|
|
1365
|
+
compactFailed: '上下文压缩未完成,请查看技术详情后再重试。',
|
|
1134
1366
|
slashInstallSkillSubtitle: '用自然语言调用 Codex 的 skill installer。',
|
|
1135
1367
|
slashUseSkillSubtitle: '本轮使用这个 skill。',
|
|
1136
1368
|
skillInstallerComposerLabel: 'Skill Installer',
|
|
@@ -1145,18 +1377,14 @@
|
|
|
1145
1377
|
settingsSaved: '已保存',
|
|
1146
1378
|
appearanceTitle: '外观',
|
|
1147
1379
|
settingsWorkbenchTitle: '设置',
|
|
1148
|
-
|
|
1149
|
-
settingsWorkbenchGeneral: '常规与外观',
|
|
1380
|
+
settingsWorkbenchWriting: '写作',
|
|
1150
1381
|
settingsWorkbenchModels: '模型与连接',
|
|
1151
|
-
|
|
1152
|
-
settingsWorkbenchInstructions: '指令与技能',
|
|
1382
|
+
settingsWorkbenchContextSkills: '上下文与技能',
|
|
1153
1383
|
settingsWorkbenchProtection: '文件保护与隐私',
|
|
1154
|
-
|
|
1155
|
-
settingsWorkbenchAll: '全部设置',
|
|
1156
|
-
settingsWorkbenchFilter: '按作用范围筛选设置',
|
|
1384
|
+
settingsWorkbenchChanges: '修改记录',
|
|
1157
1385
|
settingsWorkbenchCategories: '设置分类',
|
|
1158
|
-
|
|
1159
|
-
|
|
1386
|
+
settingsPageScopeProject: '仅当前项目',
|
|
1387
|
+
settingsPageScopeGlobal: '适用于所有项目',
|
|
1160
1388
|
settingsWorkbenchClose: '关闭设置',
|
|
1161
1389
|
settingsWorkbenchEnableSkills: '启用 Overleaf 技能',
|
|
1162
1390
|
settingsWorkbenchSkillsHelp: '关闭 Overleaf 技能时,各项选择会保留。',
|
|
@@ -1229,6 +1457,10 @@
|
|
|
1229
1457
|
diagnosticsDotWarn: '诊断——有需要留意的项',
|
|
1230
1458
|
diagnosticsDotFail: '诊断——有检查未通过,点击查看',
|
|
1231
1459
|
diagnosticsDotUnknown: '诊断',
|
|
1460
|
+
diagnosticsPillOk: '就绪',
|
|
1461
|
+
diagnosticsPillWarn: '需留意',
|
|
1462
|
+
diagnosticsPillFail: '有问题',
|
|
1463
|
+
diagnosticsPillUnknown: '检查中',
|
|
1232
1464
|
reasoningLabel: '推理强度',
|
|
1233
1465
|
speedLabel: '速度',
|
|
1234
1466
|
requireReviewing: '留痕',
|
|
@@ -1296,6 +1528,33 @@
|
|
|
1296
1528
|
queuedInputError_queue_full: '后续任务队列已满。',
|
|
1297
1529
|
queuedInputError_queue_too_large: '后续任务队列已达到存储上限。',
|
|
1298
1530
|
contextTitle: '@ 上下文',
|
|
1531
|
+
contextUsageTitle: '上下文窗口',
|
|
1532
|
+
contextUsageAmount: '{used} / {capacity} 词元',
|
|
1533
|
+
contextUsageSummary: '上下文窗口:{amount}({percentage})',
|
|
1534
|
+
contextUsageEstimate: '最近上报的上下文用量估计。',
|
|
1535
|
+
contextUsageUnavailable: '尚无上下文用量数据。',
|
|
1536
|
+
contextUsageBeforeFirstMessage: '发送第一条消息后,这里会显示用量。',
|
|
1537
|
+
contextUsageCapacityUnknown: '显示最近上报的用量;窗口容量未知。',
|
|
1538
|
+
contextUsageCompacting: '正在压缩上下文…',
|
|
1539
|
+
contextUsageCompactingAuto: '正在压缩上下文,Codex 会继续处理。',
|
|
1540
|
+
contextUsagePending: '上下文已压缩,下一次回复后会更新用量。',
|
|
1541
|
+
contextUsagePendingDetail: '下一次回复后会更新用量。',
|
|
1542
|
+
contextUsageCompactedChip: '已压缩',
|
|
1543
|
+
contextUsageHigh: '偏高',
|
|
1544
|
+
contextUsageNearLimit: '接近上限',
|
|
1545
|
+
contextUsageInput: '输入',
|
|
1546
|
+
contextUsageOutput: '输出',
|
|
1547
|
+
contextUsageBreakdownBasis: '占比按上报的输入 + 输出计算。',
|
|
1548
|
+
contextUsageCacheHit: '其中缓存命中',
|
|
1549
|
+
contextUsageCacheHitRate: '输入缓存命中率',
|
|
1550
|
+
contextUsageLatestReply: '最近一次回复 · {time}',
|
|
1551
|
+
contextUsageJustNow: '刚刚',
|
|
1552
|
+
contextUsageMinutesAgo: '{count} 分钟前',
|
|
1553
|
+
contextUsageHoursAgo: '{count} 小时前',
|
|
1554
|
+
contextUsageDayAgo: '1 天前',
|
|
1555
|
+
contextUsageDaysAgo: '{count} 天前',
|
|
1556
|
+
contextUsageCompactAction: '压缩',
|
|
1557
|
+
contextUsageCompactHint: '把此前的对话整理为摘要,释放上下文窗口;不读取或修改文档。',
|
|
1299
1558
|
refreshFileList: '刷新文件列表',
|
|
1300
1559
|
contextStatus: '输入 @ 添加文件,或点 +:文件、附件(PDF/图片)、@compile-log。',
|
|
1301
1560
|
contextLoadingFiles: '正在读取可添加的 @文件...',
|
|
@@ -1332,6 +1591,11 @@
|
|
|
1332
1591
|
fileContext: '已选择 @file 上下文',
|
|
1333
1592
|
contextContext: '已选择 @context',
|
|
1334
1593
|
refreshProbeLoading: '正在重新检测当前文件、写入权限和留痕状态...',
|
|
1594
|
+
probeScopeCurrentFile: '当前文件',
|
|
1595
|
+
probeScopeSelection: '已选文本',
|
|
1596
|
+
probeScopeFiles: '已选文件',
|
|
1597
|
+
probeScopeContext: '已选上下文',
|
|
1598
|
+
probeScopeProject: '整个项目',
|
|
1335
1599
|
refreshProbeDone: '已重新检测:{status}',
|
|
1336
1600
|
refreshProbeFailed: '检测失败:请刷新 Overleaf 页面后重试',
|
|
1337
1601
|
processedFailed: '处理失败 {elapsed}',
|
|
@@ -1378,6 +1642,10 @@
|
|
|
1378
1642
|
failureReason_accept_replay_failed_next: '请在 Overleaf 中检查该文件后重试。',
|
|
1379
1643
|
failureReason_native_request_failed_user: '向本地 Codex bridge 的请求失败。',
|
|
1380
1644
|
failureReason_native_request_failed_next: '打开「诊断」检查 bridge 后重试。',
|
|
1645
|
+
failureReason_panel_reload_interrupted_user: '页面刷新导致本轮中断。',
|
|
1646
|
+
failureReason_panel_reload_interrupted_next: '可编辑后重发任务以继续。',
|
|
1647
|
+
failureReason_sensitive_content_blocked_user: '发送前发现敏感内容,Codex 没有收到这次请求。',
|
|
1648
|
+
failureReason_sensitive_content_blocked_next: '请移除敏感内容、缩小 @context,或在项目设置里允许敏感内容显式确认。',
|
|
1381
1649
|
failureReason_project_snapshot_unavailable_user: 'Codex 没能读到 Overleaf 项目快照。',
|
|
1382
1650
|
failureReason_project_snapshot_unavailable_next: '请刷新 Overleaf,然后重试本轮任务。',
|
|
1383
1651
|
failureReason_selected_context_unresolved_user: 'Codex 没能解析所选的内容或上下文。',
|
|
@@ -1385,11 +1653,11 @@
|
|
|
1385
1653
|
failureReason_selection_scope_violation_user: '生成的一项改动超出了已附加的选区,已阻止写回。',
|
|
1386
1654
|
failureReason_selection_scope_violation_next: '请重新选择目标范围,仅请求修改该范围。已写入的合法部分可撤销。',
|
|
1387
1655
|
failureReason_governance_blocked_user: '项目文件规则阻止了此次写入。Codex 未写入受影响的路径。',
|
|
1388
|
-
failureReason_governance_blocked_next: '请在「设置 >
|
|
1656
|
+
failureReason_governance_blocked_next: '请在「设置 > 文件保护与隐私」中查看项目文件规则,然后请求修改允许写入的路径。',
|
|
1389
1657
|
failureReason_governance_readonly_user: '项目文件规则将此操作涉及的路径标记为只读。Codex 未执行此操作。',
|
|
1390
|
-
failureReason_governance_readonly_next: '请在「设置 >
|
|
1658
|
+
failureReason_governance_readonly_next: '请在「设置 > 文件保护与隐私」中查看只读路径规则,然后请求修改允许写入的路径。',
|
|
1391
1659
|
failureReason_governance_writable_allowlist_user: '此操作涉及的路径不在配置的可写路径范围内。Codex 未执行此操作。',
|
|
1392
|
-
failureReason_governance_writable_allowlist_next: '请在「设置 >
|
|
1660
|
+
failureReason_governance_writable_allowlist_next: '请在「设置 > 文件保护与隐私」中查看可写路径规则,然后请求修改允许范围内的路径。',
|
|
1393
1661
|
failureReason_target_file_not_found_user: 'Codex 在当前 Overleaf 项目中没有找到 {file}。',
|
|
1394
1662
|
failureReason_target_file_not_found_next: '请在 Overleaf 中核对文件名和路径后重试。',
|
|
1395
1663
|
failureReason_target_file_open_failed_user: 'Codex 没能在 Overleaf 中打开 {file}。',
|
|
@@ -1416,6 +1684,8 @@
|
|
|
1416
1684
|
failureReason_accept_not_verified_next: '请先在 Overleaf 审阅面板核对后再继续。',
|
|
1417
1685
|
failureReason_native_bridge_unavailable_user: '扩展无法连接到 Codex Native Host。',
|
|
1418
1686
|
failureReason_native_bridge_unavailable_next: '请运行 install-native,或者重新加载扩展。',
|
|
1687
|
+
failureReason_codex_context_limit_user: '本轮已停止:上下文超出模型的容量限制。',
|
|
1688
|
+
failureReason_codex_context_limit_next: '请重试任务;如果再次超限,可使用 /compact,或新建会话并减少上下文。',
|
|
1419
1689
|
failureReason_codex_no_usable_result_user: '本地 Codex 没有返回可用的最终报告或操作。',
|
|
1420
1690
|
failureReason_codex_no_usable_result_next: '请打开“技术细节”排查本地 Codex 错误。',
|
|
1421
1691
|
failureReason_codex_project_locked_user: '同一个 Overleaf 项目里已经有一轮 Codex 任务正在运行。',
|