codex-overleaf-link 2.4.1 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/README.md +275 -305
  2. package/README.zh-CN.md +290 -320
  3. package/extension/bootstrap/background.js +99 -19
  4. package/extension/bootstrap/manifest.template.json +9 -4
  5. package/extension/bootstrap/popup.html +11 -16
  6. package/extension/bootstrap/popupFallback.js +55 -0
  7. package/extension/bootstrap/update.js +25 -2
  8. package/extension/bootstrap/updateStatus.js +1 -0
  9. package/extension/runtime-manifest.json +3 -1
  10. package/extension/src/background.js +234 -56
  11. package/extension/src/backgroundBootstrapMigration.js +181 -0
  12. package/extension/src/backgroundSharedSessions.js +440 -0
  13. package/extension/src/backgroundUpdateCoordinator.js +541 -381
  14. package/extension/src/backgroundUpdateSafety.js +173 -0
  15. package/extension/src/content/activeTurnControl.js +16 -2
  16. package/extension/src/content/applyResultFormatters.js +46 -73
  17. package/extension/src/content/assetTransferBroker.js +244 -12
  18. package/extension/src/content/changeHistoryView.js +175 -0
  19. package/extension/src/content/composerAttachments.js +117 -67
  20. package/extension/src/content/composerPanel.js +41 -8
  21. package/extension/src/content/contentRuntime.js +1084 -1099
  22. package/extension/src/content/diagnosticsController.js +122 -97
  23. package/extension/src/content/diagnosticsExport.js +236 -0
  24. package/extension/src/content/diagnosticsPanel.js +78 -19
  25. package/extension/src/content/diffReviewPanel.js +8 -5
  26. package/extension/src/content/directoryCleanupRecovery.js +54 -0
  27. package/extension/src/content/generated/content.bundle.js +14680 -3606
  28. package/extension/src/content/generated/content.bundle.meta.json +30 -3
  29. package/extension/src/content/globalPreferencesController.js +1 -1
  30. package/extension/src/content/legacyGlobalRegistry.js +25 -1
  31. package/extension/src/content/localSkillsPanel.js +141 -16
  32. package/extension/src/content/markdownDomRenderer.js +9 -4
  33. package/extension/src/content/markdownText.js +5 -6
  34. package/extension/src/content/modelPicker.js +8 -5
  35. package/extension/src/content/nativeCompatibilityController.js +45 -20
  36. package/extension/src/content/otWarmMirror.js +4 -5
  37. package/extension/src/content/otWarmMirrorController.js +17 -20
  38. package/extension/src/content/pageBridgeClient.js +33 -5
  39. package/extension/src/content/panelMaintenance.js +87 -132
  40. package/extension/src/content/panelRenderer.js +10 -0
  41. package/extension/src/content/pendingInputView.js +109 -76
  42. package/extension/src/content/projectProviderSelection.js +13 -4
  43. package/extension/src/content/projectSessionCleanup.js +109 -62
  44. package/extension/src/content/projectSettingsCoordinator.js +39 -2
  45. package/extension/src/content/providerSettingsCoordinator.js +63 -14
  46. package/extension/src/content/providerSettingsDialog.js +724 -113
  47. package/extension/src/content/recentProjects.js +21 -6
  48. package/extension/src/content/runActivitySummary.js +665 -0
  49. package/extension/src/content/runCompletionMeta.js +344 -0
  50. package/extension/src/content/runController.js +40 -15
  51. package/extension/src/content/runFailureNotice.js +34 -12
  52. package/extension/src/content/runGuidanceController.js +76 -30
  53. package/extension/src/content/runGuidanceView.js +59 -10
  54. package/extension/src/content/runPresence.js +306 -0
  55. package/extension/src/content/runQueueScheduler.js +150 -43
  56. package/extension/src/content/runRecoveryActions.js +146 -0
  57. package/extension/src/content/runResultActions.js +11 -8
  58. package/extension/src/content/runReviewController.js +574 -0
  59. package/extension/src/content/runScrollLayout.js +21 -2
  60. package/extension/src/content/runTimelineView.js +315 -290
  61. package/extension/src/content/scopedPersistencePanelState.js +51 -6
  62. package/extension/src/content/selectionContextView.js +300 -0
  63. package/extension/src/content/sensitivePreflight.js +140 -0
  64. package/extension/src/content/sessionForkController.js +80 -17
  65. package/extension/src/content/sessionManager.js +1 -1
  66. package/extension/src/content/sessionPersistence.js +6 -1
  67. package/extension/src/content/settingsPanel.js +84 -55
  68. package/extension/src/content/settingsWorkbench.js +379 -0
  69. package/extension/src/content/sharedSessionViewSync.js +109 -0
  70. package/extension/src/content/subagentActivityView.js +195 -0
  71. package/extension/src/content/trackedChangeCaptureController.js +7 -3
  72. package/extension/src/content/updateIdle.js +4 -1
  73. package/extension/src/content/updateNotice.js +179 -56
  74. package/extension/src/content/updateSafetyReceiver.js +58 -0
  75. package/extension/src/content/writebackController.js +308 -2
  76. package/extension/src/content/writebackOrchestrator.js +213 -199
  77. package/extension/src/content/writebackPlan.js +231 -0
  78. package/extension/src/content/writebackRecovery.js +122 -0
  79. package/extension/src/content/writingStyleSettings.js +600 -0
  80. package/extension/src/content/writtenChangesView.js +152 -0
  81. package/extension/src/page/binaryAssetUploader.js +223 -23
  82. package/extension/src/page/fileMover.js +256 -0
  83. package/extension/src/page/overleafProjectSnapshot.js +1 -0
  84. package/extension/src/page/ownedDirectoryCleanup.js +94 -0
  85. package/extension/src/page/referenceProjects.js +149 -0
  86. package/extension/src/page/reviewContext.js +113 -0
  87. package/extension/src/page/saveState.js +20 -6
  88. package/extension/src/page/snapshotRouter.js +124 -48
  89. package/extension/src/page/textCoordinates.js +102 -0
  90. package/extension/src/page/textFileCreator.js +442 -71
  91. package/extension/src/page/trackedChangeCapture.js +53 -57
  92. package/extension/src/page/trackedChangeOwnership.js +216 -0
  93. package/extension/src/page/trackedChangeReplay.js +184 -0
  94. package/extension/src/page/trackedChangesLifecycle.js +343 -339
  95. package/extension/src/page/treeOperations.js +33 -12
  96. package/extension/src/page/updateSafetyProbe.js +41 -0
  97. package/extension/src/page/writebackReceiptJournal.js +114 -0
  98. package/extension/src/page/writebackRouter.js +242 -201
  99. package/extension/src/pageBridge.js +73 -102
  100. package/extension/src/popup.js +261 -65
  101. package/extension/src/shared/agentTranscript.js +41 -4
  102. package/extension/src/shared/auditRecords.js +73 -0
  103. package/extension/src/shared/changeHistoryModel.js +94 -0
  104. package/extension/src/shared/compatibility.js +22 -6
  105. package/extension/src/shared/compileAdapter.js +101 -37
  106. package/extension/src/shared/composerAttachmentDraft.js +151 -0
  107. package/extension/src/shared/directoryCleanupProof.js +43 -0
  108. package/extension/src/shared/failureReasons.js +329 -3
  109. package/extension/src/shared/globalPreferences.js +31 -14
  110. package/extension/src/shared/governanceRules.js +4 -37
  111. package/extension/src/shared/i18n.js +389 -25
  112. package/extension/src/shared/managedUpdateProjection.js +8 -5
  113. package/extension/src/shared/nativeRequestIdentity.js +1 -0
  114. package/extension/src/shared/pageRpcContract.js +9 -2
  115. package/extension/src/shared/projectFiles.js +21 -44
  116. package/extension/src/shared/providerProfiles.js +114 -3
  117. package/extension/src/shared/runActivityModel.js +361 -0
  118. package/extension/src/shared/runExecutionSnapshot.js +8 -2
  119. package/extension/src/shared/runExecutionSnapshotCodec.js +16 -4
  120. package/extension/src/shared/runInputQueue.js +48 -5
  121. package/extension/src/shared/scopedPersistenceBrowserAdapter.js +6 -3
  122. package/extension/src/shared/selectionContext.js +37 -0
  123. package/extension/src/shared/sessionState.js +166 -30
  124. package/extension/src/shared/settlementFacts.js +10 -2
  125. package/extension/src/shared/sharedSessionBridge.js +311 -0
  126. package/extension/src/shared/sharedSessionTransfer.js +140 -0
  127. package/extension/src/shared/staleGuard.js +118 -13
  128. package/extension/src/shared/storageDb.js +77 -78
  129. package/extension/src/shared/storageMigration.js +74 -111
  130. package/extension/src/shared/storageRunActions.js +211 -22
  131. package/extension/src/shared/storageValuePruning.js +40 -0
  132. package/extension/src/shared/subagentActivityModel.js +174 -0
  133. package/extension/src/shared/undoOperations.js +216 -6
  134. package/extension/src/shared/updateConsent.js +42 -11
  135. package/extension/src/shared/updateRuntimeIdentity.js +1 -1
  136. package/extension/src/shared/writebackIntent.js +78 -0
  137. package/extension/src/shared/writebackOperationEvidence.js +4 -15
  138. package/extension/src/shared/writebackSettlement.js +67 -48
  139. package/extension/src/shared/writingStyle.js +33 -0
  140. package/extension/styles/panel.css +1987 -385
  141. package/extension/styles/popup.css +110 -0
  142. package/native-host/src/anthropicBridgeRequest.js +6 -3
  143. package/native-host/src/anthropicBridgeResponse.js +6 -2
  144. package/native-host/src/anthropicMessagesBridge.js +24 -16
  145. package/native-host/src/bootstrapMigration.js +296 -0
  146. package/native-host/src/bootstrapMigrationContract.js +101 -0
  147. package/native-host/src/bootstrapUpdate.js +233 -0
  148. package/native-host/src/bootstrapUpdateWatchdog.js +44 -0
  149. package/native-host/src/chatBridgeResponse.js +10 -0
  150. package/native-host/src/chatCompletionsBridge.js +21 -15
  151. package/native-host/src/codexConfigPaths.js +106 -0
  152. package/native-host/src/codexHome.js +66 -73
  153. package/native-host/src/codexHomeScope.js +124 -0
  154. package/native-host/src/codexInheritedAuth.js +90 -0
  155. package/native-host/src/codexLocalSkills.js +301 -0
  156. package/native-host/src/codexModelRecovery.js +107 -0
  157. package/native-host/src/codexPromptAssembly.js +33 -12
  158. package/native-host/src/codexProviderLaunch.js +3 -3
  159. package/native-host/src/codexProviderTest.js +24 -26
  160. package/native-host/src/codexRuntimeIdentity.js +1 -0
  161. package/native-host/src/codexSessionRunner.js +211 -318
  162. package/native-host/src/codexSessionTiming.js +21 -8
  163. package/native-host/src/codexSkillIsolation.js +170 -0
  164. package/native-host/src/codexThreadFork.js +19 -3
  165. package/native-host/src/index.js +19 -7
  166. package/native-host/src/managedInstall.js +115 -39
  167. package/native-host/src/managedInstallRecovery.js +140 -0
  168. package/native-host/src/managedRuntimeEvidence.js +57 -0
  169. package/native-host/src/mirrorWorkspace.js +92 -22
  170. package/native-host/src/nativeDoctor.js +15 -0
  171. package/native-host/src/nativeEnvironment.js +70 -0
  172. package/native-host/src/nativeHelperLifecycle.js +21 -0
  173. package/native-host/src/nativeHostRegistration.js +33 -0
  174. package/native-host/src/nativeQuotas.js +15 -8
  175. package/native-host/src/nativeRunLifecycle.js +71 -0
  176. package/native-host/src/overleafWorkspaceRules.js +16 -0
  177. package/native-host/src/processStopBarrier.js +115 -0
  178. package/native-host/src/projectPathPlatform.js +30 -0
  179. package/native-host/src/providerHttp.js +80 -0
  180. package/native-host/src/providerModelCatalog.js +4 -3
  181. package/native-host/src/providerProfile.js +17 -3
  182. package/native-host/src/providerReasoning.js +10 -11
  183. package/native-host/src/providerRuntime.js +1 -0
  184. package/native-host/src/providerStore.js +76 -14
  185. package/native-host/src/releaseTransport.js +14 -5
  186. package/native-host/src/responsesPassthroughBridge.js +266 -52
  187. package/native-host/src/runtimeInstaller.js +21 -1
  188. package/native-host/src/selectionScope.js +86 -0
  189. package/native-host/src/skills/parallel-subagents/SKILL.md +31 -3
  190. package/native-host/src/skills/writing-style-builder/SKILL.md +146 -0
  191. package/native-host/src/subagentAdmission.js +26 -0
  192. package/native-host/src/subagentBroker.js +176 -159
  193. package/native-host/src/subagentTelemetry.js +325 -0
  194. package/native-host/src/subagentWorkspace.js +103 -0
  195. package/native-host/src/subagentWorkspacePath.js +34 -0
  196. package/native-host/src/taskRunnerRuntime.js +130 -57
  197. package/native-host/src/tomlStatements.js +140 -0
  198. package/native-host/src/turnAttachments.js +113 -0
  199. package/native-host/src/updateManager.js +406 -38
  200. package/native-host/src/updateNetworkControl.js +75 -0
  201. package/native-host/src/updateTrust.js +21 -2
  202. package/native-host/src/vendor/pdfjs/LICENSE +177 -0
  203. package/native-host/src/vendor/pdfjs/SOURCE.txt +3 -0
  204. package/native-host/src/vendor/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
  205. package/native-host/src/vendor/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
  206. package/native-host/src/vendor/pdfjs/cmaps/78-H.bcmap +0 -0
  207. package/native-host/src/vendor/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
  208. package/native-host/src/vendor/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
  209. package/native-host/src/vendor/pdfjs/cmaps/78-V.bcmap +0 -0
  210. package/native-host/src/vendor/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
  211. package/native-host/src/vendor/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
  212. package/native-host/src/vendor/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
  213. package/native-host/src/vendor/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
  214. package/native-host/src/vendor/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
  215. package/native-host/src/vendor/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
  216. package/native-host/src/vendor/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
  217. package/native-host/src/vendor/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
  218. package/native-host/src/vendor/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
  219. package/native-host/src/vendor/pdfjs/cmaps/Add-H.bcmap +0 -0
  220. package/native-host/src/vendor/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
  221. package/native-host/src/vendor/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
  222. package/native-host/src/vendor/pdfjs/cmaps/Add-V.bcmap +0 -0
  223. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
  224. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
  225. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
  226. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
  227. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
  228. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
  229. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
  230. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  231. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
  232. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
  233. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
  234. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
  235. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
  236. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
  237. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  238. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
  239. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
  240. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
  241. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
  242. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
  243. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
  244. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
  245. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  246. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
  247. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
  248. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
  249. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  250. package/native-host/src/vendor/pdfjs/cmaps/B5-H.bcmap +0 -0
  251. package/native-host/src/vendor/pdfjs/cmaps/B5-V.bcmap +0 -0
  252. package/native-host/src/vendor/pdfjs/cmaps/B5pc-H.bcmap +0 -0
  253. package/native-host/src/vendor/pdfjs/cmaps/B5pc-V.bcmap +0 -0
  254. package/native-host/src/vendor/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
  255. package/native-host/src/vendor/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
  256. package/native-host/src/vendor/pdfjs/cmaps/CNS1-H.bcmap +0 -0
  257. package/native-host/src/vendor/pdfjs/cmaps/CNS1-V.bcmap +0 -0
  258. package/native-host/src/vendor/pdfjs/cmaps/CNS2-H.bcmap +0 -0
  259. package/native-host/src/vendor/pdfjs/cmaps/CNS2-V.bcmap +3 -0
  260. package/native-host/src/vendor/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
  261. package/native-host/src/vendor/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
  262. package/native-host/src/vendor/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
  263. package/native-host/src/vendor/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
  264. package/native-host/src/vendor/pdfjs/cmaps/ETenms-B5-H.bcmap +3 -0
  265. package/native-host/src/vendor/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
  266. package/native-host/src/vendor/pdfjs/cmaps/EUC-H.bcmap +0 -0
  267. package/native-host/src/vendor/pdfjs/cmaps/EUC-V.bcmap +0 -0
  268. package/native-host/src/vendor/pdfjs/cmaps/Ext-H.bcmap +0 -0
  269. package/native-host/src/vendor/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
  270. package/native-host/src/vendor/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
  271. package/native-host/src/vendor/pdfjs/cmaps/Ext-V.bcmap +0 -0
  272. package/native-host/src/vendor/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
  273. package/native-host/src/vendor/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
  274. package/native-host/src/vendor/pdfjs/cmaps/GB-H.bcmap +4 -0
  275. package/native-host/src/vendor/pdfjs/cmaps/GB-V.bcmap +0 -0
  276. package/native-host/src/vendor/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
  277. package/native-host/src/vendor/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
  278. package/native-host/src/vendor/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
  279. package/native-host/src/vendor/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
  280. package/native-host/src/vendor/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
  281. package/native-host/src/vendor/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
  282. package/native-host/src/vendor/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
  283. package/native-host/src/vendor/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
  284. package/native-host/src/vendor/pdfjs/cmaps/GBT-H.bcmap +0 -0
  285. package/native-host/src/vendor/pdfjs/cmaps/GBT-V.bcmap +0 -0
  286. package/native-host/src/vendor/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
  287. package/native-host/src/vendor/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
  288. package/native-host/src/vendor/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
  289. package/native-host/src/vendor/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
  290. package/native-host/src/vendor/pdfjs/cmaps/H.bcmap +0 -0
  291. package/native-host/src/vendor/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
  292. package/native-host/src/vendor/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
  293. package/native-host/src/vendor/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
  294. package/native-host/src/vendor/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
  295. package/native-host/src/vendor/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
  296. package/native-host/src/vendor/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
  297. package/native-host/src/vendor/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
  298. package/native-host/src/vendor/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
  299. package/native-host/src/vendor/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
  300. package/native-host/src/vendor/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
  301. package/native-host/src/vendor/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
  302. package/native-host/src/vendor/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
  303. package/native-host/src/vendor/pdfjs/cmaps/Hankaku.bcmap +0 -0
  304. package/native-host/src/vendor/pdfjs/cmaps/Hiragana.bcmap +0 -0
  305. package/native-host/src/vendor/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
  306. package/native-host/src/vendor/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
  307. package/native-host/src/vendor/pdfjs/cmaps/KSC-H.bcmap +0 -0
  308. package/native-host/src/vendor/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
  309. package/native-host/src/vendor/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
  310. package/native-host/src/vendor/pdfjs/cmaps/KSC-V.bcmap +0 -0
  311. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
  312. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  313. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  314. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
  315. package/native-host/src/vendor/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
  316. package/native-host/src/vendor/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
  317. package/native-host/src/vendor/pdfjs/cmaps/Katakana.bcmap +0 -0
  318. package/native-host/src/vendor/pdfjs/cmaps/LICENSE +36 -0
  319. package/native-host/src/vendor/pdfjs/cmaps/NWP-H.bcmap +0 -0
  320. package/native-host/src/vendor/pdfjs/cmaps/NWP-V.bcmap +0 -0
  321. package/native-host/src/vendor/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
  322. package/native-host/src/vendor/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
  323. package/native-host/src/vendor/pdfjs/cmaps/Roman.bcmap +0 -0
  324. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  325. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  326. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  327. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  328. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  329. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  330. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  331. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  332. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
  333. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
  334. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
  335. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
  336. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
  337. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
  338. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
  339. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
  340. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  341. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  342. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  343. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  344. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  345. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  346. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  347. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  348. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  349. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  350. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  351. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  352. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  353. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  354. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  355. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  356. package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  357. package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  358. package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  359. package/native-host/src/vendor/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  360. package/native-host/src/vendor/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  361. package/native-host/src/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  362. package/native-host/src/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  363. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
  364. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
  365. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
  366. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
  367. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
  368. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
  369. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
  370. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
  371. package/native-host/src/vendor/pdfjs/cmaps/V.bcmap +0 -0
  372. package/native-host/src/vendor/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
  373. package/native-host/src/vendor/pdfjs/pdf.mjs +26740 -0
  374. package/native-host/src/vendor/pdfjs/pdf.worker.mjs +62201 -0
  375. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitDingbats.pfb +0 -0
  376. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixed.pfb +0 -0
  377. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedBold.pfb +0 -0
  378. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  379. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedItalic.pfb +0 -0
  380. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerif.pfb +0 -0
  381. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifBold.pfb +0 -0
  382. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  383. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifItalic.pfb +0 -0
  384. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSymbol.pfb +0 -0
  385. package/native-host/src/vendor/pdfjs/standard_fonts/LICENSE_FOXIT +27 -0
  386. package/native-host/src/vendor/pdfjs/standard_fonts/LICENSE_LIBERATION +102 -0
  387. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Bold.ttf +0 -0
  388. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  389. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Italic.ttf +0 -0
  390. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Regular.ttf +0 -0
  391. package/native-host/src/writingStyleEvidence.js +102 -0
  392. package/native-host/src/writingStylePdfWorker.js +35 -0
  393. package/native-host/src/writingStyleProfile.js +165 -0
  394. package/native-host/src/writingStyleRuntime.js +475 -0
  395. package/native-host/src/writingStyleStore.js +73 -0
  396. package/package.json +1 -1
  397. package/scripts/install-managed.mjs +1 -0
@@ -12,6 +12,121 @@
12
12
 
13
13
  const MESSAGES = {
14
14
  en: {
15
+ failureReason_base_file_missing_at_start_user: "A file needed for this task was missing during the initial project read.",
16
+ failureReason_base_file_missing_at_start_next: "Refresh project context and rerun.",
17
+ failureReason_target_file_missing_path_user: "The change did not include a target file path.",
18
+ failureReason_target_file_missing_path_next: "Retry after regenerating the change; report a bug if repeated.",
19
+ failureReason_target_file_focus_lost_user: "Target file became active, then focus switched before the write landed.",
20
+ failureReason_target_file_focus_lost_next: "Avoid switching files during writeback and retry.",
21
+ failureReason_jump_target_not_resolved_user: "A line/position link could not map to an editor range.",
22
+ failureReason_jump_target_not_resolved_next: "Open the file manually and inspect the referenced line.",
23
+ failureReason_missing_base_file_user: "A write safety check needed a base file that is missing from the run snapshot.",
24
+ failureReason_missing_base_file_next: "Refresh project context and rerun.",
25
+ failureReason_patch_anchor_ambiguous_user: "The edit anchor matches multiple locations.",
26
+ failureReason_patch_anchor_ambiguous_next: "Narrow the request or select a smaller region.",
27
+ failureReason_delete_confirmation_missing_user: "A destructive delete was not confirmed.",
28
+ failureReason_delete_confirmation_missing_next: "Confirm the delete explicitly if intended.",
29
+ failureReason_binary_write_blocked_user: "Codex tried to write unsupported binary content.",
30
+ failureReason_binary_write_blocked_next: "Upload the file manually or attach a supported text file.",
31
+ failureReason_write_post_read_failed_user: "Codex could not read the file after writing.",
32
+ failureReason_write_post_read_failed_next: "Check Overleaf manually, then refresh and retry.",
33
+ failureReason_file_tree_verification_failed_user: "Create/delete/rename/move did not appear in the file tree as expected.",
34
+ failureReason_file_tree_verification_failed_next: "Inspect the file tree and retry if needed.",
35
+ failureReason_source_zip_unavailable_user: "The project could not be checked before uploading this file.",
36
+ failureReason_source_zip_unavailable_next: "Retry sync; only missing files will be uploaded.",
37
+ failureReason_file_upload_unconfirmed_user: "The file was submitted, but its saved content is not yet confirmed.",
38
+ failureReason_file_upload_unconfirmed_next: "Check the file before retrying; matching content will not be uploaded twice.",
39
+ failureReason_subagent_unfinished_output_user: "A subagent stopped before finishing this file; the main agent must review and adopt it.",
40
+ failureReason_subagent_unfinished_output_next: "Have the main agent complete and adopt the pending file.",
41
+ failureReason_subagent_unauthorized_edit_user: "A file changed outside the subagent ownership boundary and was not synced.",
42
+ failureReason_subagent_unauthorized_edit_next: "Review the ownership violation; it cannot be cleared through output adoption.",
43
+ failureReason_reviewing_enable_failed_user: "Codex could not enable Reviewing when it needed to.",
44
+ failureReason_reviewing_enable_failed_next: "Enable Reviewing manually or retry.",
45
+ failureReason_reviewing_disable_failed_user: "Codex could not switch to Editing / no-trace mode.",
46
+ failureReason_reviewing_disable_failed_next: "Switch to Editing manually, wait briefly, then retry.",
47
+ failureReason_tracked_changes_created_unexpectedly_user: "A replay intended to be untracked created Track Changes.",
48
+ failureReason_tracked_changes_created_unexpectedly_next: "Inspect Overleaf Reviewing and decide whether to accept or reject.",
49
+ failureReason_tracked_change_nodes_not_identified_user: "Codex wrote while Reviewing was enabled but cannot map generated tracked-change nodes.",
50
+ failureReason_tracked_change_nodes_not_identified_next: "Use Overleaf review tools manually; automatic tracked undo is disabled.",
51
+ failureReason_undo_preflight_content_drift_user: "Current content no longer matches this run's written content.",
52
+ failureReason_undo_preflight_content_drift_next: "Review manual edits; Codex did not undo to avoid removing them.",
53
+ failureReason_undo_reviewing_restore_unverified_user: "Undo completed but previous Reviewing state was not verified afterward.",
54
+ failureReason_undo_reviewing_restore_unverified_next: "Check Overleaf Reviewing/Editing mode manually.",
55
+ failureReason_accept_preflight_content_drift_user: "Content drifted from this run's writeback before accept.",
56
+ failureReason_accept_preflight_content_drift_next: "Retry Accept changes after reviewing current content.",
57
+ failureReason_accept_replay_created_tracked_changes_user: "Replay created tracked changes, so accept cannot be proven clean.",
58
+ failureReason_accept_replay_created_tracked_changes_next: "Review remaining tracked changes manually.",
59
+ failureReason_native_protocol_incompatible_user: "Native host version or capabilities do not match the extension.",
60
+ failureReason_native_protocol_incompatible_next: "Update the native host.",
61
+ failureReason_provider_revision_conflict_user: "The active model provider changed after this tab loaded it.",
62
+ failureReason_provider_revision_conflict_next: "Refresh the provider configuration and retry.",
63
+ failureReason_provider_not_found_user: "The active model provider no longer exists.",
64
+ failureReason_provider_not_found_next: "Select Built-in Codex or another provider.",
65
+ failureReason_provider_model_not_configured_user: "The selected model is not configured for the active provider.",
66
+ failureReason_provider_model_not_configured_next: "Add or select a model in Model Providers.",
67
+ failureReason_provider_protocol_unverified_user: "The provider API protocol has not been verified.",
68
+ failureReason_provider_protocol_unverified_next: "Run Test connection, save the provider, and retry.",
69
+ failureReason_provider_auth_rejected_user: "The provider rejected the configured API key.",
70
+ failureReason_provider_auth_rejected_next: "Replace the API key and test the connection.",
71
+ failureReason_provider_model_not_found_user: "The provider could not find the configured model.",
72
+ failureReason_provider_model_not_found_next: "Correct the model ID and test the connection.",
73
+ failureReason_provider_protocol_incompatible_user: "The endpoint is incompatible with the selected API protocol.",
74
+ failureReason_provider_protocol_incompatible_next: "Select another protocol or use Auto detection.",
75
+ failureReason_provider_request_rejected_user: "The provider rejected the protocol probe request.",
76
+ failureReason_provider_request_rejected_next: "Review the model ID, reasoning controls, tool support, and request overrides.",
77
+ failureReason_provider_rate_limited_user: "The provider rate limit was reached.",
78
+ failureReason_provider_rate_limited_next: "Wait for the rate-limit window to recover and retry.",
79
+ failureReason_provider_connection_timeout_user: "The provider connection timed out.",
80
+ failureReason_provider_connection_timeout_next: "Check the endpoint and network, then retry.",
81
+ failureReason_provider_dns_failed_user: "The provider hostname could not be resolved.",
82
+ failureReason_provider_dns_failed_next: "Check the Base URL and DNS, then retry.",
83
+ failureReason_provider_tls_failed_user: "TLS verification failed for the provider endpoint.",
84
+ failureReason_provider_tls_failed_next: "Check the endpoint certificate and Base URL.",
85
+ failureReason_provider_response_invalid_user: "The provider returned an incompatible or invalid response.",
86
+ failureReason_provider_response_invalid_next: "Test the connection and verify protocol compatibility.",
87
+ failureReason_provider_store_unavailable_user: "The Native Host could not access provider configuration storage.",
88
+ failureReason_provider_store_unavailable_next: "Check local permissions and Native Host status.",
89
+ failureReason_provider_store_corrupt_user: "The provider configuration store is corrupt or inconsistent.",
90
+ failureReason_provider_store_corrupt_next: "Repair or rebuild the local provider configuration.",
91
+ failureReason_codex_result_parse_failed_user: "Codex output could not be parsed into operations.",
92
+ failureReason_codex_result_parse_failed_next: "Retry with a simpler request; report if repeated.",
93
+ failureReason_run_state_persist_failed_user: "Current run state could not be saved.",
94
+ failureReason_run_state_persist_failed_next: "Continue carefully; refresh may lose this run's recovery state.",
95
+ failureReason_receipt_persist_failed_user: "Writeback receipt could not be saved.",
96
+ failureReason_receipt_persist_failed_next: "Export/copy Technical Details before refreshing.",
97
+ deleteSessionNativeFailureDetail: "The local bridge did not confirm success.",
98
+ failureReason_missing_tracked_changes_user: "No matching Overleaf tracked-change records were found for this run. Codex did not undo with text patches.",
99
+ failureReason_tracked_change_file_open_failed_user: "Could not open the file to find this run's tracked changes. Check it in the Overleaf review panel.",
100
+ failureReason_tracked_change_reject_control_not_found_user: "Some tracked changes remain, but the matching Reject button was not found. Check them in the Overleaf review panel.",
101
+ failureReason_tracked_change_reject_not_confirmed_user: "Codex clicked Reject, but Overleaf still shows this tracked change. Check it in the Overleaf review panel.",
102
+ failureReason_tracked_change_accept_control_not_found_user: "Some tracked changes remain, but the matching Accept button was not found. Check them in the Overleaf review panel.",
103
+ failureReason_tracked_change_accept_not_confirmed_user: "Codex clicked Accept, but Overleaf still shows this tracked change. Check it in the Overleaf review panel.",
104
+ failureReason_tracked_change_editor_undo_open_failed_user: "Could not open the file for Overleaf native Undo.",
105
+ failureReason_tracked_change_editor_undo_current_mismatch_user: "The current content no longer matches this run's written content. Codex stopped native Undo to preserve later edits.",
106
+ failureReason_editor_undo_control_not_found_user: "Could not find Overleaf's editor Undo button to undo this run.",
107
+ failureReason_editor_undo_no_progress_user: "Codex clicked Overleaf Undo, but the file did not change.",
108
+ failureReason_editor_undo_max_iterations_user: "The file did not return to its pre-run content after repeated native Undo steps. Codex stopped to avoid undoing other edits.",
109
+ failureReason_tracked_change_undo_max_iterations_user: "Tracked changes are still left. Codex stopped to avoid rejecting unrelated edits.",
110
+ failureReason_tracked_change_undo_verify_open_failed_user: "Could not open the file after Undo to verify its content. Reload Overleaf and check it.",
111
+ failureReason_tracked_change_undo_verify_failed_user: "The file did not return to its pre-run content after rejecting tracked changes. Check this run's changes in the Overleaf review panel.",
112
+ failureReason_accept_missing_run_content_user: "The pre-write or post-write content is unavailable. Codex did not replay or accept the tracked changes.",
113
+ failureReason_accept_editor_undo_unavailable_user: "Native Undo and a safe checkpoint rollback are unavailable. Codex did not accept this run.",
114
+ failureReason_accept_editing_not_confirmed_user: "Codex could not confirm Overleaf Editing mode. It stopped replaying this run to avoid creating new tracked changes.",
115
+ failureReason_accept_editing_not_stable_user: "Overleaf Editing mode did not remain stable long enough for an untracked Accept replay. Codex did not replay this write.",
116
+ failureReason_accept_replay_rollback_missing_content_user: "Accept created fresh tracked changes, but rollback could not run because the pre-write or post-write content was unavailable.",
117
+ failureReason_review_scope_unavailable_user: "The native tracked-change scope could not be safely isolated. No review mutation was attempted. Check the changes individually in Overleaf Review.",
118
+ failureReason_native_untracked_undo_pending_changes_user: "This file has unresolved tracked changes. Undo without track changes was stopped to preserve them; no document changes were made.",
119
+ failureReason_native_untracked_undo_pending_changes_next: "Resolve the pending changes in Overleaf Review, then retry Undo. Switching to Editing does not clear existing tracked changes.",
120
+ failureReason_review_request_unverified_user: "The native review request could not be fully verified; some target changes may already be accepted. No text replay was attempted. Check Overleaf Review before retrying.",
121
+ failureReason_review_owner_disconnected_user: "The Undo owner disconnected; no further review writes were started.",
122
+ failureReason_review_deadline_exceeded_user: "The review time budget expired; no further review writes were started.",
123
+ failureReason_review_cancelled_user: "The review was cancelled; no further review writes were started.",
124
+ failureReason_review_project_changed_user: "The original review project is no longer active.",
125
+ failureReason_review_detail_next: "Check the remaining changes and run details in Overleaf before continuing.",
126
+ queuedInputGuideNotReady: "The active Codex turn is not ready for guidance.",
127
+ queuedInputGuideTurnChanged: "The active Codex turn changed before the guidance was delivered.",
128
+ queuedInputGuideEmpty: "Guidance input is empty.",
129
+ queuedInputGuideTooLarge: "Guidance input exceeds the 12000 character limit.",
15
130
  resizePanel: 'Drag to resize the Codex panel. Double click to reset.',
16
131
  codexActions: 'Codex actions',
17
132
  refreshProbe: 'Refresh current file status. This will not sync or modify files.',
@@ -150,10 +265,10 @@
150
265
  undoTrackedTitle: 'Reject this run\'s Overleaf tracked changes?',
151
266
  undoNativeTitle: 'Undo this run\'s Overleaf writes?',
152
267
  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.',
153
- undoNativeMessage: 'This will use Overleaf Undo to roll back {files}.\n\nBefore running, Codex verifies the current content still matches this run\'s written content. If you edited it afterward, Codex stops to avoid undoing your new changes.',
268
+ undoNativeMessage: 'Undo this run\'s changes in {files}.',
154
269
  undoTrackedConfirm: 'Reject this run',
155
270
  undoTrackedStarted: 'Starting rejection of this run\'s Overleaf tracked changes',
156
- undoNativeStarted: 'Starting Overleaf native undo for this run',
271
+ undoNativeStarted: 'Undoing this run\'s changes',
157
272
  undoTrackedResult: 'Undo result: rejected {applied} tracked change(s), skipped {skipped}',
158
273
  undoNativeResult: 'Undo result: undone {applied} file(s), skipped {skipped}',
159
274
  undoSwitchedEditing: 'Switched to Editing for undo and left Editing active afterward.',
@@ -242,6 +357,14 @@
242
357
  sensitiveConfirmMessage: 'Codex found possible sensitive content. Raw detected secrets are not shown here. Continue only if this project context may be sent to Codex.',
243
358
  sensitiveConfirmRun: 'Run anyway',
244
359
  localSkillsTitle: 'Skills',
360
+ skillsManageEntry: 'Manage skills',
361
+ codexLocalSkillsTitle: 'Local Codex skills',
362
+ codexLocalSkillsEmpty: 'No local Codex skills found.',
363
+ codexLocalSkillsSkipped: '{count} local skills could not be loaded.',
364
+ codexLocalSkillsLoadFailed: 'Could not load local Codex skills. Open Skills again to retry.',
365
+ codexLocalSkillsDisabled: 'Local Codex skills are disabled for runs.',
366
+ slashUseLocalSkillSubtitle: 'Local Codex · Use for this turn',
367
+ slashUseOverleafSkillSubtitle: 'Codex Overleaf · Use for this turn',
245
368
  codexOverleafSkillsEmpty: 'No Codex Overleaf skills installed.',
246
369
  codexOverleafSkillsDisabled: 'Codex Overleaf skills are disabled for runs.',
247
370
  loadCodexLocalSkills: 'Load local Codex skills',
@@ -272,6 +395,24 @@
272
395
  personalizationHelp: 'Style, terminology, and LaTeX conventions Codex should follow in this project.',
273
396
  settingsSaved: 'Saved',
274
397
  appearanceTitle: 'Appearance',
398
+ settingsWorkbenchTitle: 'Settings',
399
+ settingsWorkbenchSubtitle: 'Preferences, project rules, and local tools.',
400
+ settingsWorkbenchGeneral: 'General & appearance',
401
+ settingsWorkbenchModels: 'Models & connections',
402
+ settingsWorkbenchContext: 'Project context',
403
+ settingsWorkbenchInstructions: 'Instructions & skills',
404
+ settingsWorkbenchProtection: 'Protection & privacy',
405
+ settingsWorkbenchHistory: 'History & storage',
406
+ settingsWorkbenchAll: 'All settings',
407
+ settingsWorkbenchFilter: 'Filter settings by scope',
408
+ settingsWorkbenchCategories: 'Settings categories',
409
+ settingsWorkbenchProjectFilter: 'Show only settings that apply to this project.',
410
+ settingsWorkbenchOpenProject: 'Open a project to configure its settings.',
411
+ settingsWorkbenchClose: 'Close settings',
412
+ settingsWorkbenchEnableSkills: 'Enable Overleaf skills',
413
+ settingsWorkbenchSkillsHelp: 'Turn off Overleaf skills without changing individual selections.',
414
+ settingsWorkbenchSkillsList: 'Available skills',
415
+ settingsWorkbenchProviderOpenFailed: 'Could not open provider settings.',
275
416
  themeLabel: 'Theme',
276
417
  themeDark: 'Dark',
277
418
  themeLight: 'Light',
@@ -300,22 +441,30 @@
300
441
  runsTruncatedNote: 'Showing the most recent 20 runs — older runs were trimmed.',
301
442
  eventsTruncatedNote: 'Earlier steps of this run were trimmed.',
302
443
  newSessionTooltip: 'Start a fresh conversation — the current session\u2019s context will not carry over',
303
- storageTitle: 'History & storage',
444
+ storageTitle: 'Local data',
445
+ storageSavedData: 'Saved conversations & records',
304
446
  softwareUpdatesTitle: 'Software updates',
305
447
  softwareUpdatesHelp: 'Automatically checks signed stable releases for the Extension and Native Host.',
306
448
  checkForUpdates: 'Check for updates',
307
449
  providerSettingsTitle: 'Model providers',
308
450
  providerSettingsExperimental: 'Third-party experimental',
309
- providerSettingsHelp: 'Configure experimental third-party model APIs. Compatibility varies by provider and gateway.',
451
+ providerSettingsHelp: 'Manage model API connections.',
310
452
  providerSettingsConfigure: 'Configure',
311
453
  providerSettingsBuiltin: 'Built-in Codex is active',
312
454
  providerSettingsLoading: 'Checking current project provider…',
313
- storageUsageLoading: 'Calculating usage\u2026',
314
- storageClearAll: 'Clear all history\u2026',
315
- storageClearAllHelp: 'Removes every stored session, run and audit record for all projects. Project settings and rules are kept.',
455
+ storageUsageLoading: 'Loading saved history\u2026',
456
+ storageClearAll: 'Clear local history\u2026',
457
+ storageClearAllHelp: 'Clearing removes local conversations, change records and their undo information for all projects. Overleaf files, project settings and rules stay unchanged.',
316
458
  runTurnNavLabel: 'Jump to a turn\u2026',
317
- historyTitle: 'Change history',
318
- historyHelp: 'What Codex wrote to this project, per run. Filter by file name or task text.',
459
+ historyTitle: 'File changes',
460
+ historyHelp: 'Review file changes from the latest 50 recorded runs and open the matching conversation.',
461
+ historyStatusLabel: 'Change status',
462
+ historyStatusAll: 'All statuses',
463
+ historyStatusPending: 'Pending review',
464
+ historyStatusAccepted: 'Accepted',
465
+ historyStatusUndone: 'Undone',
466
+ historyStatusAttention: 'Needs attention',
467
+ historyStatusWritten: 'Written',
319
468
  runSearchPlaceholder: 'Search this session\u2019s runs\u2026',
320
469
  undoFileSelectTitle: 'Undo which files?',
321
470
  undoFileSelectConfirm: 'Undo selected',
@@ -335,8 +484,8 @@
335
484
  speedLabel: 'Speed',
336
485
  requireReviewing: 'Track',
337
486
  requireReviewingTitle: 'When enabled, Codex checks or switches Overleaf Reviewing/Track Changes before writing. Deletes still require confirmation.',
338
- autoCompile: 'Compile',
339
- autoCompileTitle: 'After Codex writes, click Overleaf Recompile and record the compile result for this task. Ask mode will not trigger it.',
487
+ autoCompile: 'Auto compile',
488
+ autoCompileTitle: 'Automatically recompile in Overleaf after Codex writes and record the result. Toggling this setting does not compile immediately. Ask mode does not trigger compilation.',
340
489
  experimentalOtWarmMirror: 'OT warm mirror',
341
490
  experimentalOtWarmMirrorShort: 'OT',
342
491
  experimentalOtWarmMirrorTitle: 'Read-only local text warming. File scope and freshness are checked before reuse; normal project reading remains the fallback.',
@@ -376,7 +525,15 @@
376
525
  queuedInputPaused: 'Queue paused',
377
526
  queuedInputGuiding: 'Sending guidance',
378
527
  queuedInputExecuting: 'Running',
379
- queuedInputGuide: 'Guide',
528
+ queuedInputGuide: 'Steer now',
529
+ queuedInputUpNext: 'Up next · sends after this run',
530
+ queuedInputUpNextMany: 'Up next · sends in order after this run',
531
+ queuedInputSteering: 'Steering the current turn…',
532
+ queuedInputMore: '{count} more queued',
533
+ queuedInputShowLess: 'Show less',
534
+ queuedInputEdit: 'Edit in the composer',
535
+ queuedInputEditBlocked: 'Send or clear the current draft before editing a queued message.',
536
+ queuedInputGuideHint: 'Steer is available once the current tool step finishes.',
380
537
  queuedInputGuideTitle: 'Send this message into the active Codex turn now.',
381
538
  queuedInputGuideUnavailable: 'The active turn is not ready for guidance yet.',
382
539
  queuedInputGuideFailed: 'Guidance could not be delivered. The message remains queued.',
@@ -444,6 +601,12 @@
444
601
  // Each entry follows the §9 catalog copy. {file} / {activeFile} interpolate from the failure record.
445
602
  failureReason_partial_write_needs_review_user: 'Some operations wrote to Overleaf; others were skipped.',
446
603
  failureReason_partial_write_needs_review_next: 'Review the written files; use "Undo written parts" to roll back if needed.',
604
+ failureReason_file_plan_confirmation_rejected_user: 'The complete file plan was cancelled; no part was applied.',
605
+ failureReason_file_plan_confirmation_rejected_next: 'Review the intended changes and start a new run if you want to apply them.',
606
+ failureReason_file_tree_controls_unavailable_user: 'Codex could not safely perform this file operation with the available Overleaf controls.',
607
+ failureReason_file_tree_controls_unavailable_next: 'Check the file operation in Overleaf before starting a new task.',
608
+ failureReason_delete_confirmation_rejected_user: 'The deletion was cancelled and was not applied. Other allowed changes in this run may still proceed.',
609
+ failureReason_delete_confirmation_rejected_next: 'Review the other changes. If deletion is still intended, request it in a new task.',
447
610
  failureReason_codex_run_cancelled_user: 'The local Codex run was cancelled.',
448
611
  failureReason_codex_run_cancelled_next: 'Start a new run when you are ready.',
449
612
  failureReason_write_operation_failed_user: 'The editor write call for {file} failed.',
@@ -452,6 +615,13 @@
452
615
  failureReason_write_timeout_next: 'Refresh Overleaf, then retry.',
453
616
  failureReason_undo_operation_failed_user: 'The Overleaf undo or reject operation failed.',
454
617
  failureReason_undo_operation_failed_next: 'Use Overleaf undo/review tools manually.',
618
+ failureReason_tracked_change_not_found_user: 'No matching tracked changes were found on the Overleaf page for this run. Codex did not undo with text patches.',
619
+ failureReason_snapshot_undo_current_mismatch_user: 'The current content or document identity does not match this run\'s undo checkpoint. Codex stopped Undo and kept the recovery data.',
620
+ failureReason_snapshot_undo_current_mismatch_next: 'Inspect the file and any later edits before trying Undo again.',
621
+ failureReason_snapshot_undo_open_failed_user: 'Codex could not open the file to restore its saved checkpoint.',
622
+ failureReason_snapshot_undo_open_failed_next: 'Open the file in Overleaf, wait for it to load, then retry Undo.',
623
+ failureReason_snapshot_undo_unavailable_user: 'The saved checkpoint is unavailable for this Undo. Codex kept the remaining recovery data.',
624
+ failureReason_snapshot_undo_unavailable_next: 'Inspect the file and the run details before continuing.',
455
625
  failureReason_undo_partial_user: "Some of this run's writes were undone; others were skipped.",
456
626
  failureReason_undo_partial_next: 'Review the remaining files and retry undo if it is safe.',
457
627
  failureReason_accept_force_editing_failed_user: 'Codex could not enter a stable Editing mode to accept the changes.',
@@ -464,6 +634,14 @@
464
634
  failureReason_project_snapshot_unavailable_next: 'Refresh Overleaf, then rerun the task.',
465
635
  failureReason_selected_context_unresolved_user: 'Codex could not resolve the requested selection or context.',
466
636
  failureReason_selected_context_unresolved_next: 'Select the target again or specify the file/section explicitly.',
637
+ failureReason_selection_scope_violation_user: 'A generated change exceeded the attached selection and was blocked.',
638
+ failureReason_selection_scope_violation_next: 'Select the intended region again and request only changes within it. Valid written parts can be undone.',
639
+ failureReason_governance_blocked_user: 'Project file rules blocked this write. Codex did not write the affected path.',
640
+ failureReason_governance_blocked_next: 'Review the project file rules in Settings > Protection & privacy, then request changes within the allowed paths.',
641
+ failureReason_governance_readonly_user: 'Project file rules marked a path in this operation read-only. Codex did not apply this operation.',
642
+ failureReason_governance_readonly_next: 'Review the read-only paths in Settings > Protection & privacy, then request changes within the allowed paths.',
643
+ failureReason_governance_writable_allowlist_user: 'A path in this operation is outside the configured writable paths. Codex did not apply this operation.',
644
+ failureReason_governance_writable_allowlist_next: 'Review the writable paths in Settings > Protection & privacy, then request changes within those paths.',
467
645
  failureReason_target_file_not_found_user: 'Codex could not find {file} in this Overleaf project.',
468
646
  failureReason_target_file_not_found_next: 'Check the file name/path in Overleaf and retry.',
469
647
  failureReason_target_file_open_failed_user: 'Codex could not open {file} in Overleaf.',
@@ -498,6 +676,10 @@
498
676
  failureReason_codex_timeout_next: 'Check whether local Codex is still running. If there is no progress, cancel and retry with smaller @context.',
499
677
  failureReason_codex_output_limit_user: 'Local Codex output was too large, so the bridge stopped reading.',
500
678
  failureReason_codex_output_limit_next: 'Retry with smaller @context, or open Technical Details to inspect the output limit.',
679
+ failureReason_codex_local_skill_unavailable_user: 'The selected local Codex skill is unavailable or disabled. This run did not start.',
680
+ failureReason_codex_local_skill_unavailable_next: 'Open Skills, select an available enabled skill, and submit again.',
681
+ failureReason_codex_local_skills_failed_user: 'Local Codex skills could not be loaded. This run did not start.',
682
+ failureReason_codex_local_skills_failed_next: 'Open Skills to reload the local catalog, then submit again.',
501
683
  failureReason_codex_not_found_user: 'Codex CLI was not found on this machine.',
502
684
  failureReason_codex_not_found_next: 'Confirm `codex` works in Terminal, then reinstall the native host or reload the extension.',
503
685
  failureReason_storage_quota_exceeded_user: 'Browser storage quota was exceeded.',
@@ -579,6 +761,121 @@
579
761
  recentProjects_badge_abandoned_after_navigation: 'Last run stopped after navigation'
580
762
  },
581
763
  zh: {
764
+ failureReason_base_file_missing_at_start_user: "首次读取项目时,缺少本任务所需的文件。",
765
+ failureReason_base_file_missing_at_start_next: "请刷新项目上下文后重新运行。",
766
+ failureReason_target_file_missing_path_user: "改动中未包含目标文件路径。",
767
+ failureReason_target_file_missing_path_next: "请重新生成改动后重试;若再次发生,请报告此问题。",
768
+ failureReason_target_file_focus_lost_user: "目标文件曾处于活动状态,但写入前焦点切换到了其他文件。",
769
+ failureReason_target_file_focus_lost_next: "写回期间请保持当前文件不变,然后重试。",
770
+ failureReason_jump_target_not_resolved_user: "无法将行号或位置链接对应到编辑器中的文本范围。",
771
+ failureReason_jump_target_not_resolved_next: "请手动打开文件,检查所引用的行。",
772
+ failureReason_missing_base_file_user: "写入安全检查所需的基准文件未包含在本轮快照中。",
773
+ failureReason_missing_base_file_next: "请刷新项目上下文后重新运行。",
774
+ failureReason_patch_anchor_ambiguous_user: "修改位置的定位文本匹配到了多处内容。",
775
+ failureReason_patch_anchor_ambiguous_next: "请缩小请求范围,或选择更小的文本区域。",
776
+ failureReason_delete_confirmation_missing_user: "删除操作尚未得到确认。",
777
+ failureReason_delete_confirmation_missing_next: "如果确实需要删除,请明确确认该操作。",
778
+ failureReason_binary_write_blocked_user: "Codex 尝试写入尚不支持的二进制内容。",
779
+ failureReason_binary_write_blocked_next: "请手动上传文件,或附上受支持的文本文件。",
780
+ failureReason_write_post_read_failed_user: "写入后,Codex 无法读取该文件。",
781
+ failureReason_write_post_read_failed_next: "请先在 Overleaf 检查文件,再刷新并重试。",
782
+ failureReason_file_tree_verification_failed_user: "新建、删除、重命名或移动的结果未按预期出现在文件树中。",
783
+ failureReason_file_tree_verification_failed_next: "请检查文件树,必要时再重试。",
784
+ failureReason_source_zip_unavailable_user: "上传此文件前,无法完成项目检查。",
785
+ failureReason_source_zip_unavailable_next: "请重试同步;仅会上传缺失的文件。",
786
+ failureReason_file_upload_unconfirmed_user: "文件已提交,但尚未确认其保存后的内容。",
787
+ failureReason_file_upload_unconfirmed_next: "重试前请检查文件;内容一致的文件不会重复上传。",
788
+ failureReason_subagent_unfinished_output_user: "子代理在完成此文件前已停止;主代理需要审阅并采纳该文件。",
789
+ failureReason_subagent_unfinished_output_next: "请由主代理完成并采纳待处理文件。",
790
+ failureReason_subagent_unauthorized_edit_user: "文件修改超出了子代理负责的范围,因此未同步。",
791
+ failureReason_subagent_unauthorized_edit_next: "请检查超出负责范围的修改;采纳输出无法解除此限制。",
792
+ failureReason_reviewing_enable_failed_user: "Codex 无法在需要时启用审阅模式。",
793
+ failureReason_reviewing_enable_failed_next: "请手动启用审阅模式,或重试。",
794
+ failureReason_reviewing_disable_failed_user: "Codex 无法切换到不留痕的编辑模式。",
795
+ failureReason_reviewing_disable_failed_next: "请手动切换到编辑模式,稍候再重试。",
796
+ failureReason_tracked_changes_created_unexpectedly_user: "原本应当不留痕的重放产生了留痕改动。",
797
+ failureReason_tracked_changes_created_unexpectedly_next: "请在 Overleaf 审阅面板检查,并决定接受或拒绝。",
798
+ failureReason_tracked_change_nodes_not_identified_user: "Codex 在审阅模式下完成了写入,但无法识别所生成的留痕记录。",
799
+ failureReason_tracked_change_nodes_not_identified_next: "请手动使用 Overleaf 审阅工具;自动留痕撤销当前不可用。",
800
+ failureReason_undo_preflight_content_drift_user: "当前内容已与本轮写入后的内容不一致。",
801
+ failureReason_undo_preflight_content_drift_next: "请检查后续手动编辑;Codex 未执行撤销,以免删除这些编辑。",
802
+ failureReason_undo_reviewing_restore_unverified_user: "撤销已完成,但未能确认原来的审阅状态已恢复。",
803
+ failureReason_undo_reviewing_restore_unverified_next: "请手动检查 Overleaf 的审阅或编辑模式。",
804
+ failureReason_accept_preflight_content_drift_user: "接受改动前,内容已偏离本轮写回的结果。",
805
+ failureReason_accept_preflight_content_drift_next: "请检查当前内容后,再重试接受改动。",
806
+ failureReason_accept_replay_created_tracked_changes_user: "重放产生了留痕改动,无法确认接受操作已无留痕地完成。",
807
+ failureReason_accept_replay_created_tracked_changes_next: "请手动检查剩余的留痕改动。",
808
+ failureReason_native_protocol_incompatible_user: "本地主机的版本或能力与扩展不匹配。",
809
+ failureReason_native_protocol_incompatible_next: "请更新本地主机。",
810
+ failureReason_provider_revision_conflict_user: "本标签页加载配置后,当前模型服务的配置已发生变化。",
811
+ failureReason_provider_revision_conflict_next: "请刷新模型服务配置后重试。",
812
+ failureReason_provider_not_found_user: "当前模型服务已不存在。",
813
+ failureReason_provider_not_found_next: "请选择内置 Codex 或其他模型服务。",
814
+ failureReason_provider_model_not_configured_user: "当前模型服务中未配置所选模型。",
815
+ failureReason_provider_model_not_configured_next: "请在模型服务设置中添加或选择模型。",
816
+ failureReason_provider_protocol_unverified_user: "模型服务的 API 协议尚未验证。",
817
+ failureReason_provider_protocol_unverified_next: "请测试连接并保存模型服务配置,然后重试。",
818
+ failureReason_provider_auth_rejected_user: "模型服务拒绝了所配置的 API 密钥。",
819
+ failureReason_provider_auth_rejected_next: "请更换 API 密钥并测试连接。",
820
+ failureReason_provider_model_not_found_user: "模型服务找不到所配置的模型。",
821
+ failureReason_provider_model_not_found_next: "请修正模型标识并测试连接。",
822
+ failureReason_provider_protocol_incompatible_user: "服务端点与所选 API 协议不兼容。",
823
+ failureReason_provider_protocol_incompatible_next: "请选择其他协议,或使用自动检测。",
824
+ failureReason_provider_request_rejected_user: "模型服务拒绝了协议探测请求。",
825
+ failureReason_provider_request_rejected_next: "请检查模型标识、推理设置、工具支持及自定义请求参数。",
826
+ failureReason_provider_rate_limited_user: "模型服务已达到请求频率限制。",
827
+ failureReason_provider_rate_limited_next: "请等待限流窗口恢复后重试。",
828
+ failureReason_provider_connection_timeout_user: "模型服务连接超时。",
829
+ failureReason_provider_connection_timeout_next: "请检查服务端点和网络,然后重试。",
830
+ failureReason_provider_dns_failed_user: "无法解析模型服务的主机名。",
831
+ failureReason_provider_dns_failed_next: "请检查基础 URL 和 DNS,然后重试。",
832
+ failureReason_provider_tls_failed_user: "模型服务端点的 TLS 验证失败。",
833
+ failureReason_provider_tls_failed_next: "请检查端点证书和基础 URL。",
834
+ failureReason_provider_response_invalid_user: "模型服务返回了不兼容或无效的响应。",
835
+ failureReason_provider_response_invalid_next: "请测试连接并确认协议兼容性。",
836
+ failureReason_provider_store_unavailable_user: "本地主机无法访问模型服务配置存储。",
837
+ failureReason_provider_store_unavailable_next: "请检查本地权限和本地主机状态。",
838
+ failureReason_provider_store_corrupt_user: "模型服务配置存储已损坏或不一致。",
839
+ failureReason_provider_store_corrupt_next: "请修复或重建本地模型服务配置。",
840
+ failureReason_codex_result_parse_failed_user: "无法将 Codex 输出解析为操作。",
841
+ failureReason_codex_result_parse_failed_next: "请使用更简单的请求重试;若再次发生,请报告此问题。",
842
+ failureReason_run_state_persist_failed_user: "无法保存当前运行状态。",
843
+ failureReason_run_state_persist_failed_next: "请谨慎继续;刷新可能导致本轮恢复状态丢失。",
844
+ failureReason_receipt_persist_failed_user: "无法保存写回回执。",
845
+ failureReason_receipt_persist_failed_next: "刷新前请导出或复制技术详情。",
846
+ deleteSessionNativeFailureDetail: "本地桥接程序未确认操作成功。",
847
+ failureReason_missing_tracked_changes_user: "这轮写入没有可识别的 Overleaf 留痕记录;Codex 没有执行文本补丁撤销。",
848
+ failureReason_tracked_change_file_open_failed_user: "无法打开文件来查找这轮写入的留痕记录;请在 Overleaf 审阅面板检查。",
849
+ failureReason_tracked_change_reject_control_not_found_user: "仍有留痕记录未处理,但未找到对应的拒绝按钮;请在 Overleaf 审阅面板检查。",
850
+ failureReason_tracked_change_reject_not_confirmed_user: "Codex 已点击拒绝,但 Overleaf 仍显示该留痕记录;请在审阅面板检查。",
851
+ failureReason_tracked_change_accept_control_not_found_user: "仍有留痕记录未处理,但未找到对应的接受按钮;请在 Overleaf 审阅面板检查。",
852
+ failureReason_tracked_change_accept_not_confirmed_user: "Codex 已点击接受,但 Overleaf 仍显示该留痕记录;请在审阅面板检查。",
853
+ failureReason_tracked_change_editor_undo_open_failed_user: "无法打开文件来执行 Overleaf 原生撤销。",
854
+ failureReason_tracked_change_editor_undo_current_mismatch_user: "当前内容与本轮写入后的内容不一致;Codex 已停止原生撤销,以保留后续编辑。",
855
+ failureReason_editor_undo_control_not_found_user: "未找到 Overleaf 编辑器的撤销按钮,无法撤销本轮改动。",
856
+ failureReason_editor_undo_no_progress_user: "Codex 已点击 Overleaf 撤销,但文件内容没有变化。",
857
+ failureReason_editor_undo_max_iterations_user: "经过多次原生撤销后,文件仍未恢复到本轮写入前的内容;Codex 已停止,以免撤销其他编辑。",
858
+ failureReason_tracked_change_undo_max_iterations_user: "仍有未处理的留痕记录;Codex 已停止,以免误拒绝其他编辑。",
859
+ failureReason_tracked_change_undo_verify_open_failed_user: "撤销后无法打开文件验证内容;请刷新 Overleaf 后检查。",
860
+ failureReason_tracked_change_undo_verify_failed_user: "拒绝留痕后,文件内容仍未恢复到写入前状态;请在 Overleaf 审阅面板检查本轮修改。",
861
+ failureReason_accept_missing_run_content_user: "缺少写入前或写入后的内容;Codex 未重放或接受留痕改动。",
862
+ failureReason_accept_editor_undo_unavailable_user: "原生撤销及安全的检查点回滚均不可用;Codex 未接受本轮改动。",
863
+ failureReason_accept_editing_not_confirmed_user: "无法确认 Overleaf 已进入编辑模式;Codex 已停止重放本轮改动,以免产生新的留痕。",
864
+ failureReason_accept_editing_not_stable_user: "Overleaf 编辑模式未保持稳定,无法无留痕地重放接受的改动;Codex 未重放此次写入。",
865
+ failureReason_accept_replay_rollback_missing_content_user: "接受改动时产生了新的留痕,但缺少写入前或写入后的内容,无法回滚。",
866
+ failureReason_review_scope_unavailable_user: "无法安全确认本轮原生留痕的范围;尚未尝试审阅写入。请在 Overleaf 审阅面板逐项检查。",
867
+ failureReason_native_untracked_undo_pending_changes_user: "此文件仍有未处理的留痕改动。为保留这些改动,本次无留痕撤销已停止,文档未改动。",
868
+ failureReason_native_untracked_undo_pending_changes_next: "请先在 Overleaf 审阅面板处理现有留痕,再重试撤销。切换到编辑模式不会清除已有留痕。",
869
+ failureReason_review_request_unverified_user: "原生审阅请求未能完全核实,部分目标改动可能已接受;未尝试文本重放。请先在 Overleaf 审阅面板检查,再决定是否重试。",
870
+ failureReason_review_owner_disconnected_user: "撤销操作的连接已断开;未再启动后续审阅写入。",
871
+ failureReason_review_deadline_exceeded_user: "审阅操作已超时;未再启动后续审阅写入。",
872
+ failureReason_review_cancelled_user: "审阅操作已取消;未再启动后续审阅写入。",
873
+ failureReason_review_project_changed_user: "原审阅项目已不再处于活动状态。",
874
+ failureReason_review_detail_next: "继续操作前,请在 Overleaf 检查剩余改动及运行详情。",
875
+ queuedInputGuideNotReady: "当前 Codex 轮次尚未准备好接收指导。",
876
+ queuedInputGuideTurnChanged: "指导送达前,当前 Codex 轮次已发生变化。",
877
+ queuedInputGuideEmpty: "指导内容为空。",
878
+ queuedInputGuideTooLarge: "指导内容超过 12000 字符上限。",
582
879
  resizePanel: '拖动调整 Codex 面板宽度,双击恢复默认宽度',
583
880
  codexActions: 'Codex 操作',
584
881
  refreshProbe: '重新检测当前文件状态;不会同步或修改文件',
@@ -717,10 +1014,10 @@
717
1014
  undoTrackedTitle: '拒绝本轮 Overleaf 留痕改动?',
718
1015
  undoNativeTitle: '撤销本轮 Overleaf 写入?',
719
1016
  undoTrackedMessage: '将通过 Overleaf 自己的 Reject/拒绝功能撤销 {files}。\n\n这不会用文本补丁重写文件;如果插件不能确认对应留痕记录,会停止并让你在 Overleaf 审阅面板手动处理。',
720
- undoNativeMessage: '将通过 Overleaf 自己的 Undo/撤销功能回退 {files}。\n\n执行前会确认当前内容仍是本轮写入后的内容;如果你已经手动改过,Codex 会停止,避免撤掉你的新修改。',
1017
+ undoNativeMessage: '撤销本轮在 {files} 中的改动。',
721
1018
  undoTrackedConfirm: '拒绝本轮改动',
722
1019
  undoTrackedStarted: '开始拒绝本轮 Overleaf 留痕改动',
723
- undoNativeStarted: '开始用 Overleaf 原生撤销回退本轮写入',
1020
+ undoNativeStarted: '正在撤销本轮改动',
724
1021
  undoTrackedResult: '撤销结果:已拒绝 {applied} 条留痕,跳过 {skipped} 条',
725
1022
  undoNativeResult: '撤销结果:已撤销 {applied} 个文件,跳过 {skipped} 项',
726
1023
  undoSwitchedEditing: '撤销时已切到 Editing;撤销后保持 Editing。',
@@ -809,6 +1106,14 @@
809
1106
  sensitiveConfirmMessage: 'Codex 发现了可能的敏感内容。这里不会显示原始密钥或秘密值。只有在确认可以把这些项目上下文发送给 Codex 时才继续。',
810
1107
  sensitiveConfirmRun: '仍然运行',
811
1108
  localSkillsTitle: '技能',
1109
+ skillsManageEntry: '管理技能',
1110
+ codexLocalSkillsTitle: 'Codex 本地技能',
1111
+ codexLocalSkillsEmpty: '没有找到 Codex 本地技能。',
1112
+ codexLocalSkillsSkipped: '有 {count} 个本地技能未能加载。',
1113
+ codexLocalSkillsLoadFailed: '无法加载 Codex 本地技能,请重新打开技能页重试。',
1114
+ codexLocalSkillsDisabled: '运行时已禁用 Codex 本地技能。',
1115
+ slashUseLocalSkillSubtitle: 'Codex 本地 · 本轮使用',
1116
+ slashUseOverleafSkillSubtitle: 'Codex Overleaf · 本轮使用',
812
1117
  codexOverleafSkillsEmpty: '没有安装 Codex Overleaf 专属技能。',
813
1118
  codexOverleafSkillsDisabled: '运行时已禁用 Codex Overleaf 专属技能。',
814
1119
  loadCodexLocalSkills: '加载 Codex 本地技能',
@@ -839,6 +1144,24 @@
839
1144
  personalizationHelp: 'Codex 在本项目中应遵循的风格、术语和 LaTeX 约定。',
840
1145
  settingsSaved: '已保存',
841
1146
  appearanceTitle: '外观',
1147
+ settingsWorkbenchTitle: '设置',
1148
+ settingsWorkbenchSubtitle: '偏好设置、项目规则与本地工具。',
1149
+ settingsWorkbenchGeneral: '常规与外观',
1150
+ settingsWorkbenchModels: '模型与连接',
1151
+ settingsWorkbenchContext: '项目上下文',
1152
+ settingsWorkbenchInstructions: '指令与技能',
1153
+ settingsWorkbenchProtection: '文件保护与隐私',
1154
+ settingsWorkbenchHistory: '历史与存储',
1155
+ settingsWorkbenchAll: '全部设置',
1156
+ settingsWorkbenchFilter: '按作用范围筛选设置',
1157
+ settingsWorkbenchCategories: '设置分类',
1158
+ settingsWorkbenchProjectFilter: '仅显示作用于当前项目的设置。',
1159
+ settingsWorkbenchOpenProject: '进入项目后可配置项目设置。',
1160
+ settingsWorkbenchClose: '关闭设置',
1161
+ settingsWorkbenchEnableSkills: '启用 Overleaf 技能',
1162
+ settingsWorkbenchSkillsHelp: '关闭 Overleaf 技能时,各项选择会保留。',
1163
+ settingsWorkbenchSkillsList: '可用技能',
1164
+ settingsWorkbenchProviderOpenFailed: '无法打开模型服务设置。',
842
1165
  themeLabel: '主题',
843
1166
  themeDark: '深色',
844
1167
  themeLight: '浅色',
@@ -867,22 +1190,30 @@
867
1190
  runsTruncatedNote: '仅显示最近 20 轮——更早的轮次已精简。',
868
1191
  eventsTruncatedNote: '本轮更早的步骤已精简。',
869
1192
  newSessionTooltip: '开启全新对话——当前会话的上下文不会带入',
870
- storageTitle: '历史与存储',
1193
+ storageTitle: '本地数据',
1194
+ storageSavedData: '已保存的对话与记录',
871
1195
  softwareUpdatesTitle: '软件更新',
872
1196
  softwareUpdatesHelp: '自动检查 Extension 与 Native Host 的签名稳定版本。',
873
1197
  checkForUpdates: '检查更新',
874
1198
  providerSettingsTitle: '模型服务',
875
1199
  providerSettingsExperimental: '第三方实验性',
876
- providerSettingsHelp: '配置实验性第三方模型 API;兼容性取决于具体模型服务与网关。',
1200
+ providerSettingsHelp: '管理模型 API 连接。',
877
1201
  providerSettingsConfigure: '配置',
878
1202
  providerSettingsBuiltin: '当前使用内置 Codex',
879
1203
  providerSettingsLoading: '正在读取当前项目的模型服务…',
880
- storageUsageLoading: '正在计算占用…',
881
- storageClearAll: '清空全部历史…',
882
- storageClearAllHelp: '删除所有项目已存储的全部会话、运行与审计记录。项目设置与规则会保留。',
1204
+ storageUsageLoading: '正在读取已保存的历史…',
1205
+ storageClearAll: '清理本地历史…',
1206
+ storageClearAllHelp: '清理会移除所有项目的本地对话、修改记录及撤销信息。Overleaf 文件、项目设置与规则保持不变。',
883
1207
  runTurnNavLabel: '跳到某一轮…',
884
- historyTitle: '变更历史',
885
- historyHelp: 'Codex 每一轮写入本项目的记录。可按文件名或任务内容过滤。',
1208
+ historyTitle: '文件修改记录',
1209
+ historyHelp: '查看最近 50 轮的文件修改及处理状态,可跳转到对应对话。',
1210
+ historyStatusLabel: '修改状态',
1211
+ historyStatusAll: '所有状态',
1212
+ historyStatusPending: '待接受',
1213
+ historyStatusAccepted: '已接受',
1214
+ historyStatusUndone: '已撤销',
1215
+ historyStatusAttention: '需检查',
1216
+ historyStatusWritten: '已写入',
886
1217
  runSearchPlaceholder: '搜索本会话的轮次…',
887
1218
  undoFileSelectTitle: '撤销哪些文件?',
888
1219
  undoFileSelectConfirm: '撤销所选',
@@ -902,8 +1233,8 @@
902
1233
  speedLabel: '速度',
903
1234
  requireReviewing: '留痕',
904
1235
  requireReviewingTitle: '开启后,写入前会确认并尝试切到 Overleaf Reviewing/Track Changes;删除仍需确认。',
905
- autoCompile: '编译',
906
- autoCompileTitle: 'Codex 写入后自动点击 Overleaf Recompile,并把编译结果记录到本轮任务。只问不改时不会触发。',
1236
+ autoCompile: '自动编译',
1237
+ autoCompileTitle: 'Codex 写入后自动触发 Overleaf Recompile,并记录编译结果。切换此开关不会立即编译;只问不改时不触发编译。',
907
1238
  experimentalOtWarmMirror: 'OT 预热镜像',
908
1239
  experimentalOtWarmMirrorShort: 'OT',
909
1240
  experimentalOtWarmMirrorTitle: '只读本地文本预热;复用前校验文件范围和新鲜度,常规项目读取作为回退路径。',
@@ -943,13 +1274,21 @@
943
1274
  queuedInputPaused: '队列已暂停',
944
1275
  queuedInputGuiding: '正在发送引导',
945
1276
  queuedInputExecuting: '正在运行',
946
- queuedInputGuide: '立即引导',
1277
+ queuedInputGuide: '现在插入',
1278
+ queuedInputUpNext: '下一条 · 本轮结束后发送',
1279
+ queuedInputUpNextMany: '接下来 · 本轮结束后依次发送',
1280
+ queuedInputSteering: '正在插入当前回合…',
1281
+ queuedInputMore: '还有 {count} 条待发送',
1282
+ queuedInputShowLess: '收起',
1283
+ queuedInputEdit: '拉回输入框编辑',
1284
+ queuedInputEditBlocked: '请先发送或清空当前输入框里的内容,再编辑排队消息。',
1285
+ queuedInputGuideHint: '当前工具步骤结束后才能插入。',
947
1286
  queuedInputGuideTitle: '立即把这条消息发送到当前 Codex turn。',
948
1287
  queuedInputGuideUnavailable: '当前 turn 尚未进入可引导状态。',
949
1288
  queuedInputGuideFailed: '引导消息未送达,消息已保留在队列中。',
950
1289
  queuedInputGuided: '后续引导已发送到当前 Codex turn。',
951
1290
  queuedInputAdded: '后续任务已排队,将在当前任务完整结束后执行。',
952
- queuedInputResume: '恢复队列',
1291
+ queuedInputResume: '继续',
953
1292
  queuedInputRemove: '删除',
954
1293
  queuedInputAttachmentsUnsupported: '当前排队消息支持文本和 @context;请先移除二进制附件。',
955
1294
  queuedInputError_empty_input: '请先输入后续任务。',
@@ -1010,6 +1349,8 @@
1010
1349
  // FailureReason 高优先级双语文案(设计规格 §15.4)。文案对应 §9 目录的英文 fallback。
1011
1350
  failureReason_partial_write_needs_review_user: '部分操作已写入 Overleaf,其余被跳过。',
1012
1351
  failureReason_partial_write_needs_review_next: '请检查已写入的文件;如需回滚,使用「撤销已写入部分」。',
1352
+ failureReason_file_plan_confirmation_rejected_user: '整份文件计划已取消,未应用任何部分。',
1353
+ failureReason_file_plan_confirmation_rejected_next: '请先审阅预期改动;需要应用时重新发起一轮任务。',
1013
1354
  failureReason_codex_run_cancelled_user: '本地 Codex 任务已取消。',
1014
1355
  failureReason_codex_run_cancelled_next: '准备好后可以重新发起一轮任务。',
1015
1356
  failureReason_write_operation_failed_user: '对 {file} 的编辑器写入调用失败。',
@@ -1017,7 +1358,18 @@
1017
1358
  failureReason_write_timeout_user: 'Overleaf 在超时前没有接受对 {file} 的写入。',
1018
1359
  failureReason_write_timeout_next: '刷新 Overleaf 后重试。',
1019
1360
  failureReason_undo_operation_failed_user: 'Overleaf 的撤销或拒绝操作失败。',
1361
+ failureReason_file_tree_controls_unavailable_user: 'Codex 无法通过当前可用的 Overleaf 控件安全执行此文件操作。',
1362
+ failureReason_file_tree_controls_unavailable_next: '请先在 Overleaf 中检查文件操作,再开始新任务。',
1363
+ failureReason_delete_confirmation_rejected_user: '删除已取消,未执行该删除;本轮其他获准改动仍可能继续。',
1364
+ failureReason_delete_confirmation_rejected_next: '请检查其他改动;若仍需删除,请在新任务中提出。',
1020
1365
  failureReason_undo_operation_failed_next: '请手动使用 Overleaf 的撤销/审阅工具。',
1366
+ failureReason_tracked_change_not_found_user: '没有在 Overleaf 页面里找到这轮写入对应的留痕记录;Codex 没有用文本补丁伪撤销。',
1367
+ failureReason_snapshot_undo_current_mismatch_user: '当前内容或文档身份与本轮撤销检查点不一致;Codex 已停止撤销并保留恢复材料。',
1368
+ failureReason_snapshot_undo_current_mismatch_next: '请先检查文件及后续编辑,再决定是否重试撤销。',
1369
+ failureReason_snapshot_undo_open_failed_user: 'Codex 无法打开文件来恢复已保存的检查点。',
1370
+ failureReason_snapshot_undo_open_failed_next: '请在 Overleaf 中打开文件,等待加载完成后再重试撤销。',
1371
+ failureReason_snapshot_undo_unavailable_user: '本次撤销所需的检查点不可用;Codex 已保留剩余恢复材料。',
1372
+ failureReason_snapshot_undo_unavailable_next: '请先检查文件和本轮运行详情,再继续操作。',
1021
1373
  failureReason_undo_partial_user: '本轮的部分写入已撤销,其余被跳过。',
1022
1374
  failureReason_undo_partial_next: '检查剩余文件,确认安全后再重试撤销。',
1023
1375
  failureReason_accept_force_editing_failed_user: 'Codex 未能进入稳定的 Editing 模式来接受改动。',
@@ -1030,6 +1382,14 @@
1030
1382
  failureReason_project_snapshot_unavailable_next: '请刷新 Overleaf,然后重试本轮任务。',
1031
1383
  failureReason_selected_context_unresolved_user: 'Codex 没能解析所选的内容或上下文。',
1032
1384
  failureReason_selected_context_unresolved_next: '请重新选择目标,或者显式指定文件 / 区段。',
1385
+ failureReason_selection_scope_violation_user: '生成的一项改动超出了已附加的选区,已阻止写回。',
1386
+ failureReason_selection_scope_violation_next: '请重新选择目标范围,仅请求修改该范围。已写入的合法部分可撤销。',
1387
+ failureReason_governance_blocked_user: '项目文件规则阻止了此次写入。Codex 未写入受影响的路径。',
1388
+ failureReason_governance_blocked_next: '请在「设置 > 保护与隐私」中查看项目文件规则,然后请求修改允许写入的路径。',
1389
+ failureReason_governance_readonly_user: '项目文件规则将此操作涉及的路径标记为只读。Codex 未执行此操作。',
1390
+ failureReason_governance_readonly_next: '请在「设置 > 保护与隐私」中查看只读路径规则,然后请求修改允许写入的路径。',
1391
+ failureReason_governance_writable_allowlist_user: '此操作涉及的路径不在配置的可写路径范围内。Codex 未执行此操作。',
1392
+ failureReason_governance_writable_allowlist_next: '请在「设置 > 保护与隐私」中查看可写路径规则,然后请求修改允许范围内的路径。',
1033
1393
  failureReason_target_file_not_found_user: 'Codex 在当前 Overleaf 项目中没有找到 {file}。',
1034
1394
  failureReason_target_file_not_found_next: '请在 Overleaf 中核对文件名和路径后重试。',
1035
1395
  failureReason_target_file_open_failed_user: 'Codex 没能在 Overleaf 中打开 {file}。',
@@ -1064,6 +1424,10 @@
1064
1424
  failureReason_codex_timeout_next: '请检查本机 Codex 是否仍在运行;如果没有进展,可以中断后缩小 @context 再重试。',
1065
1425
  failureReason_codex_output_limit_user: '本地 Codex 输出过长,桥接器停止读取。',
1066
1426
  failureReason_codex_output_limit_next: '请缩小 @context 后重试,或在技术详情中查看输出限制。',
1427
+ failureReason_codex_local_skill_unavailable_user: '所选 Codex 本地技能不可用或已关闭,本轮没有启动。',
1428
+ failureReason_codex_local_skill_unavailable_next: '请打开技能页,选择可用且已启用的技能后重新提交。',
1429
+ failureReason_codex_local_skills_failed_user: 'Codex 本地技能未能加载,本轮没有启动。',
1430
+ failureReason_codex_local_skills_failed_next: '请打开技能页重新加载本地目录,然后重新提交。',
1067
1431
  failureReason_codex_not_found_user: '本机没有找到 Codex CLI。',
1068
1432
  failureReason_codex_not_found_next: '请确认终端里可以运行 `codex`,然后重新安装 native host 或刷新扩展后重试。',
1069
1433
  failureReason_storage_quota_exceeded_user: '浏览器本地存储配额已超出。',