codex-overleaf-link 2.4.0 → 2.5.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 +272 -311
- package/README.zh-CN.md +287 -326
- package/extension/bootstrap/background.js +47 -10
- package/extension/bootstrap/manifest.template.json +9 -4
- package/extension/bootstrap/popup.html +10 -16
- package/extension/bootstrap/update.js +25 -2
- package/extension/runtime-manifest.json +3 -1
- package/extension/src/background.js +28 -3
- package/extension/src/backgroundSharedSessions.js +380 -0
- package/extension/src/backgroundUpdateCoordinator.js +442 -379
- package/extension/src/content/activeTurnControl.js +8 -0
- package/extension/src/content/assetTransferBroker.js +186 -12
- package/extension/src/content/changeHistoryView.js +175 -0
- package/extension/src/content/composerAttachments.js +24 -22
- package/extension/src/content/composerPanel.js +23 -8
- package/extension/src/content/contentRuntime.js +572 -571
- package/extension/src/content/diagnosticsController.js +1 -2
- package/extension/src/content/diagnosticsExport.js +222 -0
- package/extension/src/content/diagnosticsPanel.js +48 -19
- package/extension/src/content/diffReviewPanel.js +8 -5
- package/extension/src/content/generated/content.bundle.js +8974 -1781
- package/extension/src/content/generated/content.bundle.meta.json +22 -3
- package/extension/src/content/legacyGlobalRegistry.js +19 -1
- package/extension/src/content/localSkillsPanel.js +42 -7
- package/extension/src/content/markdownDomRenderer.js +9 -4
- package/extension/src/content/modelPicker.js +1 -1
- package/extension/src/content/pageBridgeClient.js +18 -3
- package/extension/src/content/panelMaintenance.js +51 -120
- package/extension/src/content/panelRenderer.js +4 -0
- package/extension/src/content/pendingInputView.js +109 -76
- package/extension/src/content/providerSettingsCoordinator.js +17 -6
- package/extension/src/content/providerSettingsDialog.js +661 -108
- package/extension/src/content/recentProjects.js +364 -356
- package/extension/src/content/runActivitySummary.js +631 -0
- package/extension/src/content/runController.js +3 -1
- package/extension/src/content/runFailureNotice.js +14 -1
- package/extension/src/content/runGuidanceController.js +4 -3
- package/extension/src/content/runPresence.js +306 -0
- package/extension/src/content/runQueueScheduler.js +2 -1
- package/extension/src/content/runResultActions.js +123 -3
- package/extension/src/content/runTimelineView.js +194 -164
- package/extension/src/content/scopedPersistenceCoordinator.js +2 -1
- package/extension/src/content/scopedPersistencePanelState.js +45 -2
- package/extension/src/content/selectionContextView.js +300 -0
- package/extension/src/content/sessionPersistence.js +10 -2
- package/extension/src/content/settingsPanel.js +93 -54
- package/extension/src/content/settingsWorkbench.js +374 -0
- package/extension/src/content/sharedSessionViewSync.js +72 -0
- package/extension/src/content/subagentActivityView.js +195 -0
- package/extension/src/content/trackedChangeCaptureController.js +7 -3
- package/extension/src/content/updateNotice.js +121 -50
- package/extension/src/content/writebackController.js +257 -0
- package/extension/src/content/writebackOrchestrator.js +146 -141
- package/extension/src/content/writebackPlan.js +231 -0
- package/extension/src/content/writebackRecovery.js +122 -0
- package/extension/src/content/writingStyleSettings.js +576 -0
- package/extension/src/content/writtenChangesView.js +152 -0
- package/extension/src/page/binaryAssetUploader.js +97 -19
- package/extension/src/page/overleafProjectSnapshot.js +1 -0
- package/extension/src/page/referenceProjects.js +148 -0
- package/extension/src/page/saveState.js +58 -3
- package/extension/src/page/snapshotRouter.js +44 -13
- package/extension/src/page/textCoordinates.js +102 -0
- package/extension/src/page/textFileCreator.js +350 -59
- package/extension/src/page/trackedChangeCapture.js +42 -56
- package/extension/src/page/trackedChangeOwnership.js +198 -0
- package/extension/src/page/trackedChangeReplay.js +164 -0
- package/extension/src/page/trackedChangesLifecycle.js +139 -150
- package/extension/src/page/treeOperations.js +36 -29
- package/extension/src/page/writebackReceiptJournal.js +112 -0
- package/extension/src/page/writebackRouter.js +176 -136
- package/extension/src/pageBridge.js +59 -101
- package/extension/src/popup.js +203 -59
- package/extension/src/shared/agentTranscript.js +18 -4
- package/extension/src/shared/auditRecords.js +71 -0
- package/extension/src/shared/changeHistoryModel.js +94 -0
- package/extension/src/shared/compatibility.js +1 -1
- package/extension/src/shared/compileAdapter.js +42 -0
- package/extension/src/shared/failureReasons.js +20 -0
- package/extension/src/shared/globalPreferences.js +1 -1
- package/extension/src/shared/i18n.js +187 -65
- package/extension/src/shared/managedUpdateProjection.js +6 -3
- package/extension/src/shared/pageRpcContract.js +7 -1
- package/extension/src/shared/providerProfiles.js +109 -0
- package/extension/src/shared/runActivityModel.js +361 -0
- package/extension/src/shared/runExecutionSnapshot.js +8 -2
- package/extension/src/shared/runExecutionSnapshotCodec.js +16 -4
- package/extension/src/shared/scopedPersistenceBrowserAdapter.js +6 -3
- package/extension/src/shared/selectionContext.js +28 -0
- package/extension/src/shared/sessionState.js +97 -6
- package/extension/src/shared/sharedSessionBridge.js +288 -0
- package/extension/src/shared/storageDb.js +23 -55
- package/extension/src/shared/storageMigration.js +3 -0
- package/extension/src/shared/storageRunActions.js +54 -4
- package/extension/src/shared/storageValuePruning.js +40 -0
- package/extension/src/shared/subagentActivityModel.js +174 -0
- package/extension/src/shared/undoOperations.js +87 -0
- package/extension/src/shared/updateConsent.js +37 -8
- package/extension/src/shared/writebackIntent.js +62 -0
- package/extension/src/shared/writebackSettlement.js +29 -10
- package/extension/src/shared/writingStyle.js +33 -0
- package/extension/styles/panel.css +2136 -744
- package/extension/styles/popup.css +110 -0
- package/native-host/src/anthropicBridgeRequest.js +2 -1
- package/native-host/src/codexModelRecovery.js +107 -0
- package/native-host/src/codexPromptAssembly.js +2 -0
- package/native-host/src/codexProviderLaunch.js +3 -3
- package/native-host/src/codexRuntimeIdentity.js +1 -0
- package/native-host/src/codexSessionRunner.js +146 -177
- package/native-host/src/codexSessionTiming.js +71 -0
- package/native-host/src/managedInstall.js +5 -4
- package/native-host/src/nativeEnvironment.js +70 -0
- package/native-host/src/nativeQuotas.js +15 -8
- package/native-host/src/overleafWorkspaceRules.js +16 -0
- package/native-host/src/processStopBarrier.js +80 -0
- package/native-host/src/providerModelCatalog.js +4 -3
- package/native-host/src/providerProfile.js +13 -1
- package/native-host/src/providerReasoning.js +9 -5
- package/native-host/src/providerStore.js +4 -0
- package/native-host/src/readProgressGuard.js +84 -17
- package/native-host/src/releaseTransport.js +14 -5
- package/native-host/src/selectionScope.js +58 -0
- package/native-host/src/skills/parallel-subagents/SKILL.md +31 -3
- package/native-host/src/skills/writing-style-builder/SKILL.md +146 -0
- package/native-host/src/subagentBroker.js +102 -98
- package/native-host/src/subagentTelemetry.js +316 -0
- package/native-host/src/subagentWorkspace.js +103 -0
- package/native-host/src/subagentWorkspacePath.js +31 -0
- package/native-host/src/taskRunnerRuntime.js +55 -5
- package/native-host/src/turnAttachments.js +113 -0
- package/native-host/src/updateManager.js +122 -12
- package/native-host/src/updateNetworkControl.js +75 -0
- package/native-host/src/updateTrust.js +21 -2
- package/native-host/src/vendor/pdfjs/LICENSE +177 -0
- package/native-host/src/vendor/pdfjs/SOURCE.txt +3 -0
- package/native-host/src/vendor/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/78-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/78-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Add-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Add-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/B5pc-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/B5pc-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/CNS1-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/CNS1-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/CNS2-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/CNS2-V.bcmap +3 -0
- package/native-host/src/vendor/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/ETenms-B5-H.bcmap +3 -0
- package/native-host/src/vendor/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Ext-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Ext-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GB-H.bcmap +4 -0
- package/native-host/src/vendor/pdfjs/cmaps/GB-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBT-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBT-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Hankaku.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Hiragana.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Katakana.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/LICENSE +36 -0
- package/native-host/src/vendor/pdfjs/cmaps/NWP-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/NWP-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/Roman.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/V.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
- package/native-host/src/vendor/pdfjs/pdf.mjs +26740 -0
- package/native-host/src/vendor/pdfjs/pdf.worker.mjs +62201 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitDingbats.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixed.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedBold.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedItalic.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerif.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifBold.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifItalic.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSymbol.pfb +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/LICENSE_FOXIT +27 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/LICENSE_LIBERATION +102 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Bold.ttf +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Italic.ttf +0 -0
- package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Regular.ttf +0 -0
- package/native-host/src/writingStyleEvidence.js +102 -0
- package/native-host/src/writingStylePdfWorker.js +35 -0
- package/native-host/src/writingStyleProfile.js +165 -0
- package/native-host/src/writingStyleRuntime.js +447 -0
- package/package.json +1 -1
|
@@ -150,10 +150,10 @@
|
|
|
150
150
|
undoTrackedTitle: 'Reject this run\'s Overleaf tracked changes?',
|
|
151
151
|
undoNativeTitle: 'Undo this run\'s Overleaf writes?',
|
|
152
152
|
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
|
-
|
|
153
|
+
undoNativeMessage: 'Undo this run\'s changes in {files}.',
|
|
154
154
|
undoTrackedConfirm: 'Reject this run',
|
|
155
155
|
undoTrackedStarted: 'Starting rejection of this run\'s Overleaf tracked changes',
|
|
156
|
-
|
|
156
|
+
undoNativeStarted: 'Undoing this run\'s changes',
|
|
157
157
|
undoTrackedResult: 'Undo result: rejected {applied} tracked change(s), skipped {skipped}',
|
|
158
158
|
undoNativeResult: 'Undo result: undone {applied} file(s), skipped {skipped}',
|
|
159
159
|
undoSwitchedEditing: 'Switched to Editing for undo and left Editing active afterward.',
|
|
@@ -272,6 +272,24 @@
|
|
|
272
272
|
personalizationHelp: 'Style, terminology, and LaTeX conventions Codex should follow in this project.',
|
|
273
273
|
settingsSaved: 'Saved',
|
|
274
274
|
appearanceTitle: 'Appearance',
|
|
275
|
+
settingsWorkbenchTitle: 'Settings',
|
|
276
|
+
settingsWorkbenchSubtitle: 'Preferences, project rules, and local tools.',
|
|
277
|
+
settingsWorkbenchGeneral: 'General & appearance',
|
|
278
|
+
settingsWorkbenchModels: 'Models & connections',
|
|
279
|
+
settingsWorkbenchContext: 'Project context',
|
|
280
|
+
settingsWorkbenchInstructions: 'Instructions & skills',
|
|
281
|
+
settingsWorkbenchProtection: 'Protection & privacy',
|
|
282
|
+
settingsWorkbenchHistory: 'History & storage',
|
|
283
|
+
settingsWorkbenchAll: 'All settings',
|
|
284
|
+
settingsWorkbenchFilter: 'Filter settings by scope',
|
|
285
|
+
settingsWorkbenchCategories: 'Settings categories',
|
|
286
|
+
settingsWorkbenchProjectFilter: 'Show only settings that apply to this project.',
|
|
287
|
+
settingsWorkbenchOpenProject: 'Open a project to configure its settings.',
|
|
288
|
+
settingsWorkbenchClose: 'Close settings',
|
|
289
|
+
settingsWorkbenchEnableSkills: 'Enable Overleaf skills',
|
|
290
|
+
settingsWorkbenchSkillsHelp: 'Turn off all skills without changing individual selections.',
|
|
291
|
+
settingsWorkbenchSkillsList: 'Available skills',
|
|
292
|
+
settingsWorkbenchProviderOpenFailed: 'Could not open provider settings.',
|
|
275
293
|
themeLabel: 'Theme',
|
|
276
294
|
themeDark: 'Dark',
|
|
277
295
|
themeLight: 'Light',
|
|
@@ -300,22 +318,30 @@
|
|
|
300
318
|
runsTruncatedNote: 'Showing the most recent 20 runs — older runs were trimmed.',
|
|
301
319
|
eventsTruncatedNote: 'Earlier steps of this run were trimmed.',
|
|
302
320
|
newSessionTooltip: 'Start a fresh conversation — the current session\u2019s context will not carry over',
|
|
303
|
-
storageTitle: '
|
|
321
|
+
storageTitle: 'Local data',
|
|
322
|
+
storageSavedData: 'Saved conversations & records',
|
|
304
323
|
softwareUpdatesTitle: 'Software updates',
|
|
305
324
|
softwareUpdatesHelp: 'Automatically checks signed stable releases for the Extension and Native Host.',
|
|
306
325
|
checkForUpdates: 'Check for updates',
|
|
307
326
|
providerSettingsTitle: 'Model providers',
|
|
308
327
|
providerSettingsExperimental: 'Third-party experimental',
|
|
309
|
-
providerSettingsHelp: '
|
|
328
|
+
providerSettingsHelp: 'Manage model API connections.',
|
|
310
329
|
providerSettingsConfigure: 'Configure',
|
|
311
330
|
providerSettingsBuiltin: 'Built-in Codex is active',
|
|
312
331
|
providerSettingsLoading: 'Checking current project provider…',
|
|
313
|
-
storageUsageLoading: '
|
|
314
|
-
storageClearAll: 'Clear
|
|
315
|
-
storageClearAllHelp: '
|
|
332
|
+
storageUsageLoading: 'Loading saved history\u2026',
|
|
333
|
+
storageClearAll: 'Clear local history\u2026',
|
|
334
|
+
storageClearAllHelp: 'Clearing removes local conversations, change records and their undo information for all projects. Overleaf files, project settings and rules stay unchanged.',
|
|
316
335
|
runTurnNavLabel: 'Jump to a turn\u2026',
|
|
317
|
-
historyTitle: '
|
|
318
|
-
historyHelp: '
|
|
336
|
+
historyTitle: 'File changes',
|
|
337
|
+
historyHelp: 'Review file changes from the latest 50 recorded runs and open the matching conversation.',
|
|
338
|
+
historyStatusLabel: 'Change status',
|
|
339
|
+
historyStatusAll: 'All statuses',
|
|
340
|
+
historyStatusPending: 'Pending review',
|
|
341
|
+
historyStatusAccepted: 'Accepted',
|
|
342
|
+
historyStatusUndone: 'Undone',
|
|
343
|
+
historyStatusAttention: 'Needs attention',
|
|
344
|
+
historyStatusWritten: 'Written',
|
|
319
345
|
runSearchPlaceholder: 'Search this session\u2019s runs\u2026',
|
|
320
346
|
undoFileSelectTitle: 'Undo which files?',
|
|
321
347
|
undoFileSelectConfirm: 'Undo selected',
|
|
@@ -335,8 +361,8 @@
|
|
|
335
361
|
speedLabel: 'Speed',
|
|
336
362
|
requireReviewing: 'Track',
|
|
337
363
|
requireReviewingTitle: 'When enabled, Codex checks or switches Overleaf Reviewing/Track Changes before writing. Deletes still require confirmation.',
|
|
338
|
-
autoCompile: '
|
|
339
|
-
autoCompileTitle: '
|
|
364
|
+
autoCompile: 'Auto compile',
|
|
365
|
+
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
366
|
experimentalOtWarmMirror: 'OT warm mirror',
|
|
341
367
|
experimentalOtWarmMirrorShort: 'OT',
|
|
342
368
|
experimentalOtWarmMirrorTitle: 'Read-only local text warming. File scope and freshness are checked before reuse; normal project reading remains the fallback.',
|
|
@@ -376,7 +402,15 @@
|
|
|
376
402
|
queuedInputPaused: 'Queue paused',
|
|
377
403
|
queuedInputGuiding: 'Sending guidance',
|
|
378
404
|
queuedInputExecuting: 'Running',
|
|
379
|
-
queuedInputGuide: '
|
|
405
|
+
queuedInputGuide: 'Steer now',
|
|
406
|
+
queuedInputUpNext: 'Up next · sends after this run',
|
|
407
|
+
queuedInputUpNextMany: 'Up next · sends in order after this run',
|
|
408
|
+
queuedInputSteering: 'Steering the current turn…',
|
|
409
|
+
queuedInputMore: '{count} more queued',
|
|
410
|
+
queuedInputShowLess: 'Show less',
|
|
411
|
+
queuedInputEdit: 'Edit in the composer',
|
|
412
|
+
queuedInputEditBlocked: 'Send or clear the current draft before editing a queued message.',
|
|
413
|
+
queuedInputGuideHint: 'Steer is available once the current tool step finishes.',
|
|
380
414
|
queuedInputGuideTitle: 'Send this message into the active Codex turn now.',
|
|
381
415
|
queuedInputGuideUnavailable: 'The active turn is not ready for guidance yet.',
|
|
382
416
|
queuedInputGuideFailed: 'Guidance could not be delivered. The message remains queued.',
|
|
@@ -508,14 +542,39 @@
|
|
|
508
542
|
failureReason_editor_project_id_unavailable_next: 'Refresh the Overleaf tab and retry; if it persists, reload the extension.',
|
|
509
543
|
// Welcome-panel + write-guard: Recent-projects
|
|
510
544
|
// variant copy. Spec §5.3–§5.5, §5.8, §5.10 are the source of truth.
|
|
511
|
-
recentProjects_welcome: '
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
545
|
+
recentProjects_welcome: 'Continue working',
|
|
546
|
+
recentProjects_focusEyebrow: 'Last conversation',
|
|
547
|
+
recentProjects_historyHeading: 'Other recent conversations',
|
|
548
|
+
recentProjects_historyHint: 'Select to continue',
|
|
549
|
+
recentProjects_projectConversations: "View this project's conversations",
|
|
550
|
+
recentProjects_allProjects: 'All projects',
|
|
551
|
+
recentProjects_showAllConversations: 'View all {count} conversations',
|
|
552
|
+
recentProjects_unstarted: 'Not started \u00b7 {count}',
|
|
553
|
+
recentProjects_unstartedHint: 'Empty conversations are kept here, without deleting their records.',
|
|
554
|
+
recentProjects_noStarted: 'No conversation has been started yet. Empty conversations are available below.',
|
|
555
|
+
recentProjects_savedDraft: 'Saved draft, ready to continue.',
|
|
556
|
+
recentProjects_attention: 'Needs attention',
|
|
557
|
+
recentProjects_unavailableRecords: 'Records with unavailable project links',
|
|
558
|
+
recentProjects_loadingHistory: 'Loading conversations...',
|
|
559
|
+
recentProjects_loadFailed: 'Conversation history could not be read. Please retry.',
|
|
560
|
+
recentProjects_continueHint: 'Open this conversation without automatically starting a task.',
|
|
561
|
+
recentProjects_more: 'More options',
|
|
562
|
+
recentProjects_continue: 'Continue',
|
|
563
|
+
recentProjects_openProject: 'Open project',
|
|
564
|
+
recentProjects_loadingConversation: 'Loading conversation...',
|
|
565
|
+
recentProjects_noConversation: 'No saved conversation',
|
|
566
|
+
recentProjects_noRuns: 'No runs yet',
|
|
567
|
+
recentProjects_previewUnavailable: 'Conversation unavailable',
|
|
568
|
+
recentProjects_previewUnavailableHint: 'Saved conversation could not be loaded.',
|
|
569
|
+
recentProjects_conversationGone: 'This conversation is no longer available. Choose another conversation from the refreshed list.',
|
|
570
|
+
recentProjects_continueFailed: 'Could not open the conversation. Please try again.',
|
|
571
|
+
recentProjects_welcome_subtitle: 'Conversations saved in this browser',
|
|
572
|
+
recentProjects_empty: 'No conversations saved in this browser yet. Open an Overleaf project and start a Codex conversation.',
|
|
573
|
+
recentProjects_sessions_empty: 'No saved conversations in this project',
|
|
574
|
+
recentProjects_sessions_toggle: "Show or manage this project's conversations",
|
|
575
|
+
recentProjects_sessions_action: 'All conversations',
|
|
576
|
+
recentProjects_sessions_action_open: 'Hide conversations',
|
|
577
|
+
recentProjects_clearProject: 'Delete this project\'s conversations',
|
|
519
578
|
recentProjects_clearProject_title: 'Delete all Codex sessions for {project}?',
|
|
520
579
|
recentProjects_clearProject_message: 'This permanently deletes all {count} plugin sessions, run history, and matching plugin-local Codex thread history for {project}. It will not modify Overleaf files or global Codex history.',
|
|
521
580
|
recentProjects_clearProject_confirm: 'Delete all',
|
|
@@ -531,15 +590,17 @@
|
|
|
531
590
|
recentProjects_degraded: 'Sign in to Overleaf to see your recent Codex projects.',
|
|
532
591
|
recentProjects_row_projectLinkUnavailable: 'Project link unavailable.',
|
|
533
592
|
recentProjects_settings_entry: 'Settings & Diagnostics',
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
593
|
+
recentProjects_settingsTitle: 'General Settings',
|
|
594
|
+
recentProjects_settingsSubtitle: 'Manage Codex preferences and local history across all projects.',
|
|
595
|
+
recentProjects_badge_pending: 'Last run pending',
|
|
596
|
+
recentProjects_badge_accepted: 'Last changes accepted',
|
|
597
|
+
recentProjects_badge_rejected: 'Last changes undone',
|
|
598
|
+
recentProjects_badge_needs_review: 'Last run needs review',
|
|
599
|
+
recentProjects_badge_running: 'Last recorded as running',
|
|
600
|
+
recentProjects_badge_completed: 'Last run completed',
|
|
601
|
+
recentProjects_badge_failed: 'Last run failed',
|
|
602
|
+
recentProjects_badge_interrupted: 'Last run may have been interrupted',
|
|
603
|
+
recentProjects_badge_stale: 'Last run status unconfirmed',
|
|
543
604
|
recentProjects_unnamed: 'Project \u00b7 {prefix}',
|
|
544
605
|
recentProjects_zombieRunningNote: 'Marked as running, but it may be a leftover from an interrupted run.',
|
|
545
606
|
recentProjects_zombieDeleteConfirm: 'This session is marked as running. If no other tab is actually running it, you can delete it anyway.',
|
|
@@ -547,9 +608,9 @@
|
|
|
547
608
|
recentProjects_degraded_hint: 'Could not identify the Overleaf account on this page, so the project list is hidden to avoid mixing accounts. This usually resolves on a reload.',
|
|
548
609
|
recentProjects_sessionsCount: '{count} session(s)',
|
|
549
610
|
recentProjects_welcome_stats: '{projects} projects \u00b7 {sessions} Codex sessions',
|
|
550
|
-
recentProjects_badge_background_completed: 'completed in background',
|
|
551
|
-
recentProjects_badge_needs_review_after_navigation: '
|
|
552
|
-
recentProjects_badge_abandoned_after_navigation: '
|
|
611
|
+
recentProjects_badge_background_completed: 'Last run completed in background',
|
|
612
|
+
recentProjects_badge_needs_review_after_navigation: 'Last run needs review',
|
|
613
|
+
recentProjects_badge_abandoned_after_navigation: 'Last run stopped after navigation'
|
|
553
614
|
},
|
|
554
615
|
zh: {
|
|
555
616
|
resizePanel: '拖动调整 Codex 面板宽度,双击恢复默认宽度',
|
|
@@ -690,10 +751,10 @@
|
|
|
690
751
|
undoTrackedTitle: '拒绝本轮 Overleaf 留痕改动?',
|
|
691
752
|
undoNativeTitle: '撤销本轮 Overleaf 写入?',
|
|
692
753
|
undoTrackedMessage: '将通过 Overleaf 自己的 Reject/拒绝功能撤销 {files}。\n\n这不会用文本补丁重写文件;如果插件不能确认对应留痕记录,会停止并让你在 Overleaf 审阅面板手动处理。',
|
|
693
|
-
|
|
754
|
+
undoNativeMessage: '撤销本轮在 {files} 中的改动。',
|
|
694
755
|
undoTrackedConfirm: '拒绝本轮改动',
|
|
695
756
|
undoTrackedStarted: '开始拒绝本轮 Overleaf 留痕改动',
|
|
696
|
-
|
|
757
|
+
undoNativeStarted: '正在撤销本轮改动',
|
|
697
758
|
undoTrackedResult: '撤销结果:已拒绝 {applied} 条留痕,跳过 {skipped} 条',
|
|
698
759
|
undoNativeResult: '撤销结果:已撤销 {applied} 个文件,跳过 {skipped} 项',
|
|
699
760
|
undoSwitchedEditing: '撤销时已切到 Editing;撤销后保持 Editing。',
|
|
@@ -812,6 +873,24 @@
|
|
|
812
873
|
personalizationHelp: 'Codex 在本项目中应遵循的风格、术语和 LaTeX 约定。',
|
|
813
874
|
settingsSaved: '已保存',
|
|
814
875
|
appearanceTitle: '外观',
|
|
876
|
+
settingsWorkbenchTitle: '设置',
|
|
877
|
+
settingsWorkbenchSubtitle: '偏好设置、项目规则与本地工具。',
|
|
878
|
+
settingsWorkbenchGeneral: '常规与外观',
|
|
879
|
+
settingsWorkbenchModels: '模型与连接',
|
|
880
|
+
settingsWorkbenchContext: '项目上下文',
|
|
881
|
+
settingsWorkbenchInstructions: '指令与技能',
|
|
882
|
+
settingsWorkbenchProtection: '文件保护与隐私',
|
|
883
|
+
settingsWorkbenchHistory: '历史与存储',
|
|
884
|
+
settingsWorkbenchAll: '全部设置',
|
|
885
|
+
settingsWorkbenchFilter: '按作用范围筛选设置',
|
|
886
|
+
settingsWorkbenchCategories: '设置分类',
|
|
887
|
+
settingsWorkbenchProjectFilter: '仅显示作用于当前项目的设置。',
|
|
888
|
+
settingsWorkbenchOpenProject: '进入项目后可配置项目设置。',
|
|
889
|
+
settingsWorkbenchClose: '关闭设置',
|
|
890
|
+
settingsWorkbenchEnableSkills: '启用 Overleaf 技能',
|
|
891
|
+
settingsWorkbenchSkillsHelp: '关闭总开关时,各技能的单独选择会保留。',
|
|
892
|
+
settingsWorkbenchSkillsList: '可用技能',
|
|
893
|
+
settingsWorkbenchProviderOpenFailed: '无法打开模型服务设置。',
|
|
815
894
|
themeLabel: '主题',
|
|
816
895
|
themeDark: '深色',
|
|
817
896
|
themeLight: '浅色',
|
|
@@ -840,22 +919,30 @@
|
|
|
840
919
|
runsTruncatedNote: '仅显示最近 20 轮——更早的轮次已精简。',
|
|
841
920
|
eventsTruncatedNote: '本轮更早的步骤已精简。',
|
|
842
921
|
newSessionTooltip: '开启全新对话——当前会话的上下文不会带入',
|
|
843
|
-
storageTitle: '
|
|
922
|
+
storageTitle: '本地数据',
|
|
923
|
+
storageSavedData: '已保存的对话与记录',
|
|
844
924
|
softwareUpdatesTitle: '软件更新',
|
|
845
925
|
softwareUpdatesHelp: '自动检查 Extension 与 Native Host 的签名稳定版本。',
|
|
846
926
|
checkForUpdates: '检查更新',
|
|
847
927
|
providerSettingsTitle: '模型服务',
|
|
848
928
|
providerSettingsExperimental: '第三方实验性',
|
|
849
|
-
providerSettingsHelp: '
|
|
929
|
+
providerSettingsHelp: '管理模型 API 连接。',
|
|
850
930
|
providerSettingsConfigure: '配置',
|
|
851
931
|
providerSettingsBuiltin: '当前使用内置 Codex',
|
|
852
932
|
providerSettingsLoading: '正在读取当前项目的模型服务…',
|
|
853
|
-
storageUsageLoading: '
|
|
854
|
-
storageClearAll: '
|
|
855
|
-
storageClearAllHelp: '
|
|
933
|
+
storageUsageLoading: '正在读取已保存的历史…',
|
|
934
|
+
storageClearAll: '清理本地历史…',
|
|
935
|
+
storageClearAllHelp: '清理会移除所有项目的本地对话、修改记录及撤销信息。Overleaf 文件、项目设置与规则保持不变。',
|
|
856
936
|
runTurnNavLabel: '跳到某一轮…',
|
|
857
|
-
historyTitle: '
|
|
858
|
-
historyHelp: '
|
|
937
|
+
historyTitle: '文件修改记录',
|
|
938
|
+
historyHelp: '查看最近 50 轮的文件修改及处理状态,可跳转到对应对话。',
|
|
939
|
+
historyStatusLabel: '修改状态',
|
|
940
|
+
historyStatusAll: '所有状态',
|
|
941
|
+
historyStatusPending: '待接受',
|
|
942
|
+
historyStatusAccepted: '已接受',
|
|
943
|
+
historyStatusUndone: '已撤销',
|
|
944
|
+
historyStatusAttention: '需检查',
|
|
945
|
+
historyStatusWritten: '已写入',
|
|
859
946
|
runSearchPlaceholder: '搜索本会话的轮次…',
|
|
860
947
|
undoFileSelectTitle: '撤销哪些文件?',
|
|
861
948
|
undoFileSelectConfirm: '撤销所选',
|
|
@@ -875,8 +962,8 @@
|
|
|
875
962
|
speedLabel: '速度',
|
|
876
963
|
requireReviewing: '留痕',
|
|
877
964
|
requireReviewingTitle: '开启后,写入前会确认并尝试切到 Overleaf Reviewing/Track Changes;删除仍需确认。',
|
|
878
|
-
autoCompile: '
|
|
879
|
-
autoCompileTitle: 'Codex
|
|
965
|
+
autoCompile: '自动编译',
|
|
966
|
+
autoCompileTitle: 'Codex 写入后自动触发 Overleaf Recompile,并记录编译结果。切换此开关不会立即编译;只问不改时不触发编译。',
|
|
880
967
|
experimentalOtWarmMirror: 'OT 预热镜像',
|
|
881
968
|
experimentalOtWarmMirrorShort: 'OT',
|
|
882
969
|
experimentalOtWarmMirrorTitle: '只读本地文本预热;复用前校验文件范围和新鲜度,常规项目读取作为回退路径。',
|
|
@@ -916,13 +1003,21 @@
|
|
|
916
1003
|
queuedInputPaused: '队列已暂停',
|
|
917
1004
|
queuedInputGuiding: '正在发送引导',
|
|
918
1005
|
queuedInputExecuting: '正在运行',
|
|
919
|
-
queuedInputGuide: '
|
|
1006
|
+
queuedInputGuide: '现在插入',
|
|
1007
|
+
queuedInputUpNext: '下一条 · 本轮结束后发送',
|
|
1008
|
+
queuedInputUpNextMany: '接下来 · 本轮结束后依次发送',
|
|
1009
|
+
queuedInputSteering: '正在插入当前回合…',
|
|
1010
|
+
queuedInputMore: '还有 {count} 条待发送',
|
|
1011
|
+
queuedInputShowLess: '收起',
|
|
1012
|
+
queuedInputEdit: '拉回输入框编辑',
|
|
1013
|
+
queuedInputEditBlocked: '请先发送或清空当前输入框里的内容,再编辑排队消息。',
|
|
1014
|
+
queuedInputGuideHint: '当前工具步骤结束后才能插入。',
|
|
920
1015
|
queuedInputGuideTitle: '立即把这条消息发送到当前 Codex turn。',
|
|
921
1016
|
queuedInputGuideUnavailable: '当前 turn 尚未进入可引导状态。',
|
|
922
1017
|
queuedInputGuideFailed: '引导消息未送达,消息已保留在队列中。',
|
|
923
1018
|
queuedInputGuided: '后续引导已发送到当前 Codex turn。',
|
|
924
1019
|
queuedInputAdded: '后续任务已排队,将在当前任务完整结束后执行。',
|
|
925
|
-
queuedInputResume: '
|
|
1020
|
+
queuedInputResume: '继续',
|
|
926
1021
|
queuedInputRemove: '删除',
|
|
927
1022
|
queuedInputAttachmentsUnsupported: '当前排队消息支持文本和 @context;请先移除二进制附件。',
|
|
928
1023
|
queuedInputError_empty_input: '请先输入后续任务。',
|
|
@@ -1047,14 +1142,39 @@
|
|
|
1047
1142
|
failureReason_editor_project_id_unavailable_next: '请刷新 Overleaf 页面后重试;如果仍然失败,请重新加载扩展。',
|
|
1048
1143
|
// Welcome-panel + write-guard: Recent-projects
|
|
1049
1144
|
// variant copy. 见 spec §5.3–§5.5、§5.8、§5.10。
|
|
1050
|
-
recentProjects_welcome: '
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1145
|
+
recentProjects_welcome: '继续工作',
|
|
1146
|
+
recentProjects_focusEyebrow: '上次对话',
|
|
1147
|
+
recentProjects_historyHeading: '其他最近对话',
|
|
1148
|
+
recentProjects_historyHint: '点击条目继续',
|
|
1149
|
+
recentProjects_projectConversations: '查看该项目的全部对话',
|
|
1150
|
+
recentProjects_allProjects: '所有项目',
|
|
1151
|
+
recentProjects_showAllConversations: '查看全部 {count} 段对话',
|
|
1152
|
+
recentProjects_unstarted: '未开始 · {count}',
|
|
1153
|
+
recentProjects_unstartedHint: '空白对话收纳在这里,记录不会被删除。',
|
|
1154
|
+
recentProjects_noStarted: '尚无已开始的对话,空白对话可在下方展开。',
|
|
1155
|
+
recentProjects_savedDraft: '草稿已保存,可继续补充。',
|
|
1156
|
+
recentProjects_attention: '需要查看',
|
|
1157
|
+
recentProjects_unavailableRecords: '项目链接不可用的记录',
|
|
1158
|
+
recentProjects_loadingHistory: '正在加载对话…',
|
|
1159
|
+
recentProjects_loadFailed: '暂时无法读取对话历史,请重试。',
|
|
1160
|
+
recentProjects_continueHint: '仅打开这段对话,不会自动启动任务。',
|
|
1161
|
+
recentProjects_more: '更多选项',
|
|
1162
|
+
recentProjects_continue: '继续',
|
|
1163
|
+
recentProjects_openProject: '打开项目',
|
|
1164
|
+
recentProjects_loadingConversation: '正在加载对话…',
|
|
1165
|
+
recentProjects_noConversation: '暂无保存的对话',
|
|
1166
|
+
recentProjects_noRuns: '尚未运行任务',
|
|
1167
|
+
recentProjects_previewUnavailable: '暂时无法读取对话',
|
|
1168
|
+
recentProjects_previewUnavailableHint: '已保存的对话暂时无法读取。',
|
|
1169
|
+
recentProjects_conversationGone: '该对话已不可用,请从更新后的列表中选择其他对话。',
|
|
1170
|
+
recentProjects_continueFailed: '暂时无法打开对话,请重试。',
|
|
1171
|
+
recentProjects_welcome_subtitle: '当前浏览器保存的对话',
|
|
1172
|
+
recentProjects_empty: '当前浏览器还没有保存的对话。打开一个 Overleaf 项目,与 Codex 开始对话即可。',
|
|
1173
|
+
recentProjects_sessions_empty: '该项目还没有保存的对话',
|
|
1174
|
+
recentProjects_sessions_toggle: '查看或管理该项目的对话',
|
|
1175
|
+
recentProjects_sessions_action: '全部对话',
|
|
1176
|
+
recentProjects_sessions_action_open: '收起对话',
|
|
1177
|
+
recentProjects_clearProject: '删除该项目的全部对话',
|
|
1058
1178
|
recentProjects_clearProject_title: '删除 {project} 的全部 Codex 会话?',
|
|
1059
1179
|
recentProjects_clearProject_message: '这会永久删除 {project} 的全部 {count} 个插件会话、运行历史及对应的插件本地 Codex 线程历史。不会修改 Overleaf 文件或全局 Codex 历史。',
|
|
1060
1180
|
recentProjects_clearProject_confirm: '全部删除',
|
|
@@ -1070,15 +1190,17 @@
|
|
|
1070
1190
|
recentProjects_degraded: '请登录 Overleaf 后查看你最近的 Codex 项目。',
|
|
1071
1191
|
recentProjects_row_projectLinkUnavailable: '项目链接不可用。',
|
|
1072
1192
|
recentProjects_settings_entry: '设置与诊断',
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1193
|
+
recentProjects_settingsTitle: '通用设置',
|
|
1194
|
+
recentProjects_settingsSubtitle: '管理适用于所有项目的 Codex 偏好设置与本地历史记录。',
|
|
1195
|
+
recentProjects_badge_pending: '上次运行待处理',
|
|
1196
|
+
recentProjects_badge_accepted: '上次修改已接受',
|
|
1197
|
+
recentProjects_badge_rejected: '上次修改已撤回',
|
|
1198
|
+
recentProjects_badge_needs_review: '上次运行需要检查',
|
|
1199
|
+
recentProjects_badge_running: '上次记录为运行中',
|
|
1200
|
+
recentProjects_badge_completed: '上次运行已完成',
|
|
1201
|
+
recentProjects_badge_failed: '上次运行失败',
|
|
1202
|
+
recentProjects_badge_interrupted: '上次运行可能已中断',
|
|
1203
|
+
recentProjects_badge_stale: '上次运行状态未确认',
|
|
1082
1204
|
recentProjects_unnamed: '项目 · {prefix}',
|
|
1083
1205
|
recentProjects_zombieRunningNote: '标记为运行中,但可能是被中断后的残留。',
|
|
1084
1206
|
recentProjects_zombieDeleteConfirm: '该会话标记为运行中。如果确认没有其他标签页在运行它,可以直接删除。',
|
|
@@ -1086,9 +1208,9 @@
|
|
|
1086
1208
|
recentProjects_degraded_hint: '无法识别本页的 Overleaf 账号,为避免账号间串数据已隐藏项目列表。通常刷新即可恢复。',
|
|
1087
1209
|
recentProjects_sessionsCount: '{count} 个会话',
|
|
1088
1210
|
recentProjects_welcome_stats: '{projects} 个项目 · {sessions} 个 Codex 会话',
|
|
1089
|
-
recentProjects_badge_background_completed: '
|
|
1090
|
-
recentProjects_badge_needs_review_after_navigation: '
|
|
1091
|
-
recentProjects_badge_abandoned_after_navigation: '
|
|
1211
|
+
recentProjects_badge_background_completed: '上次运行已在后台完成',
|
|
1212
|
+
recentProjects_badge_needs_review_after_navigation: '上次运行需要检查',
|
|
1213
|
+
recentProjects_badge_abandoned_after_navigation: '上次运行已在离开页面后停止'
|
|
1092
1214
|
}
|
|
1093
1215
|
};
|
|
1094
1216
|
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
'up_to_date',
|
|
14
14
|
'checking',
|
|
15
15
|
'update_available',
|
|
16
|
+
'manual_install_required',
|
|
16
17
|
'downloading',
|
|
17
18
|
'staged',
|
|
18
19
|
'waiting_for_idle',
|
|
@@ -27,7 +28,7 @@
|
|
|
27
28
|
|
|
28
29
|
const PHASE_TIMEOUTS = Object.freeze({
|
|
29
30
|
checking: 60 * 1000,
|
|
30
|
-
downloading:
|
|
31
|
+
downloading: 6 * 60 * 1000,
|
|
31
32
|
applying: 90 * 1000,
|
|
32
33
|
awaiting_health: 2 * 60 * 1000,
|
|
33
34
|
rolling_back: 60 * 1000
|
|
@@ -75,9 +76,11 @@
|
|
|
75
76
|
const TRANSITIONS = Object.freeze({
|
|
76
77
|
idle: Object.freeze(['checking']),
|
|
77
78
|
up_to_date: Object.freeze(['checking', 'idle']),
|
|
78
|
-
checking: Object.freeze(['idle', 'up_to_date', 'update_available', 'failed']),
|
|
79
|
+
checking: Object.freeze(['idle', 'up_to_date', 'update_available', 'manual_install_required', 'failed']),
|
|
80
|
+
// Only a reinstall resolves it; leave by checking again or going idle.
|
|
81
|
+
manual_install_required: Object.freeze(['checking', 'idle', 'update_available', 'failed']),
|
|
79
82
|
update_available: Object.freeze(['checking', 'downloading', 'deferred', 'failed']),
|
|
80
|
-
downloading: Object.freeze(['staged', 'failed']),
|
|
83
|
+
downloading: Object.freeze(['staged', 'failed', 'update_available', 'idle']),
|
|
81
84
|
staged: Object.freeze(['waiting_for_idle', 'applying', 'update_available', 'deferred', 'failed']),
|
|
82
85
|
waiting_for_idle: Object.freeze(['applying', 'update_available', 'deferred', 'failed']),
|
|
83
86
|
applying: Object.freeze(['staged', 'awaiting_health', 'rolling_back', 'failed']),
|
|
@@ -5,21 +5,27 @@
|
|
|
5
5
|
})(typeof window !== 'undefined' ? window : (typeof globalThis !== 'undefined' ? globalThis : this), function () {
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
-
var REVISION = '2026-09-
|
|
8
|
+
var REVISION = '2026-09-27-writing-style-references-v33';
|
|
9
9
|
var METHODS = freezeCatalog({
|
|
10
10
|
initializeCapability: entry('bridge.initialize', 'control', 'none', 'default', false, 'none'),
|
|
11
11
|
probe: entry('bridge.probe', 'read', 'none', 'default', false, 'safe'),
|
|
12
12
|
cancelActiveWrite: entry('write.cancel', 'control', 'none', 'default', false, 'idempotent'),
|
|
13
13
|
getProjectSnapshot: entry('snapshot.read', 'read', 'none', 'snapshot', true, 'safe'),
|
|
14
14
|
getProjectFileList: entry('snapshot.list', 'read', 'none', 'file_list', true, 'safe'),
|
|
15
|
+
listReferenceProjects: entry('reference.list', 'read', 'none', 'file_list', false, 'safe'),
|
|
16
|
+
getReferenceProjectSnapshot: entry('reference.read', 'read', 'none', 'snapshot', false, 'safe'),
|
|
17
|
+
cancelReferenceRead: entry('reference.cancel', 'control', 'none', 'default', false, 'idempotent'),
|
|
15
18
|
invalidateProjectSnapshot: entry('snapshot.invalidate', 'cache', 'none', 'default', false, 'idempotent'),
|
|
16
19
|
createCheckpoint: entry('checkpoint.create', 'page_state', 'none', 'default', false, 'no_retry'),
|
|
17
20
|
ensureReviewing: entry('reviewing.enable', 'page_state', 'optional', 'default', true, 'idempotent'),
|
|
18
21
|
ensureEditing: entry('reviewing.disable', 'page_state', 'optional', 'default', true, 'idempotent'),
|
|
19
22
|
applyOperations: entry('document.write', 'document', 'required', 'writeback', true, 'no_retry'),
|
|
23
|
+
getWritebackReceipt: entry('writeback.receipt', 'read', 'required', 'default', true, 'safe'),
|
|
24
|
+
getSelectionContext: entry('editor.selection', 'read', 'required', 'default', true, 'safe'),
|
|
20
25
|
binaryUploadBegin: entry('asset.stage', 'cache', 'required', 'default', false, 'no_retry'),
|
|
21
26
|
binaryUploadAppend: entry('asset.stage', 'cache', 'none', 'writeback', true, 'no_retry'),
|
|
22
27
|
binaryUploadCommit: entry('asset.write', 'document', 'required', 'writeback', true, 'no_retry'),
|
|
28
|
+
binaryUploadStatus: entry('asset.receipt', 'read', 'required', 'default', true, 'safe'),
|
|
23
29
|
binaryUploadAbort: entry('asset.stage', 'cache', 'none', 'default', false, 'idempotent'),
|
|
24
30
|
jumpToPosition: entry('editor.navigate', 'navigation', 'required', 'default', false, 'idempotent'),
|
|
25
31
|
reconcileTrackedChangeCapture: entry('tracked_changes.read', 'read', 'required', 'default', false, 'safe'),
|
|
@@ -9,6 +9,105 @@
|
|
|
9
9
|
|
|
10
10
|
const BUILTIN_PROVIDER_ID = 'builtin';
|
|
11
11
|
|
|
12
|
+
const PROVIDER_CONNECTIONS = {
|
|
13
|
+
kimi: {
|
|
14
|
+
anthropic: { baseUrl: 'https://api.moonshot.cn/anthropic', wireApiPreference: 'anthropic', authMode: 'bearer', reasoningAdapter: 'anthropic' },
|
|
15
|
+
chat: { baseUrl: 'https://api.moonshot.cn/v1', wireApiPreference: 'chat', authMode: 'bearer', reasoningAdapter: 'auto' }
|
|
16
|
+
},
|
|
17
|
+
glm: {
|
|
18
|
+
anthropic: { baseUrl: 'https://open.bigmodel.cn/api/anthropic', wireApiPreference: 'anthropic', authMode: 'bearer', reasoningAdapter: 'anthropic' },
|
|
19
|
+
chat: { baseUrl: 'https://open.bigmodel.cn/api/paas/v4', wireApiPreference: 'chat', authMode: 'bearer', reasoningAdapter: 'auto' }
|
|
20
|
+
},
|
|
21
|
+
deepseek: {
|
|
22
|
+
anthropic: { baseUrl: 'https://api.deepseek.com/anthropic', wireApiPreference: 'anthropic', authMode: 'x-api-key', reasoningAdapter: 'anthropic' },
|
|
23
|
+
chat: { baseUrl: 'https://api.deepseek.com', wireApiPreference: 'chat', authMode: 'bearer', reasoningAdapter: 'deepseek' }
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// Shortcuts select a protocol-specific connection, never an active provider.
|
|
28
|
+
const PROVIDER_PRESETS = [
|
|
29
|
+
{ id: 'custom', name: 'Custom connection', short: '+', baseUrl: '', wireApiPreference: 'auto' },
|
|
30
|
+
{ id: 'openai-compatible', name: 'OpenAI-compatible API', short: 'API', baseUrl: '', wireApiPreference: 'auto' },
|
|
31
|
+
{ id: 'anthropic-compatible', name: 'Anthropic-compatible API', short: 'API', baseUrl: '', wireApiPreference: 'anthropic', authMode: 'x-api-key', reasoningAdapter: 'anthropic' },
|
|
32
|
+
{ id: 'kimi', name: 'Kimi', short: 'K', ...PROVIDER_CONNECTIONS.kimi.anthropic },
|
|
33
|
+
{ id: 'glm', name: 'GLM', short: 'G', ...PROVIDER_CONNECTIONS.glm.anthropic },
|
|
34
|
+
{ id: 'deepseek', name: 'DeepSeek', short: 'D', ...PROVIDER_CONNECTIONS.deepseek.anthropic }
|
|
35
|
+
];
|
|
36
|
+
const MODEL_EFFORTS = ['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'];
|
|
37
|
+
|
|
38
|
+
function getPresetConnectionInfo(baseUrl) {
|
|
39
|
+
const normalized = normalizeText(baseUrl).replace(/\/+$/, '');
|
|
40
|
+
for (const [id, variants] of Object.entries(PROVIDER_CONNECTIONS)) {
|
|
41
|
+
for (const connection of Object.values(variants)) {
|
|
42
|
+
if (normalized === connection.baseUrl) return { id, connection: { ...connection } };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function getPresetConnection(id, protocol) {
|
|
49
|
+
const variants = Object.prototype.hasOwnProperty.call(PROVIDER_CONNECTIONS, id)
|
|
50
|
+
? PROVIDER_CONNECTIONS[id] : null;
|
|
51
|
+
const connection = variants && Object.prototype.hasOwnProperty.call(variants, protocol)
|
|
52
|
+
? variants[protocol] : null;
|
|
53
|
+
return connection ? { ...connection } : null;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function getProviderPresets() {
|
|
57
|
+
return PROVIDER_PRESETS.map(preset => ({ ...preset }));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function buildPresetDraft(id) {
|
|
61
|
+
const preset = PROVIDER_PRESETS.find(item => item.id === id) || PROVIDER_PRESETS[0];
|
|
62
|
+
const { id: _id, short: _short, ...connection } = preset;
|
|
63
|
+
return { ...buildEmptyDraft(), ...connection,
|
|
64
|
+
name: preset.id === 'custom' ? 'Custom provider' : preset.name };
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function updateDraftModel(draft, originalId, patch) {
|
|
68
|
+
const models = Array.isArray(draft.models) ? draft.models : [];
|
|
69
|
+
const existing = models.find(model => model.id === originalId);
|
|
70
|
+
const fail = (message, field) => { throw Object.assign(new Error(message), { field }); };
|
|
71
|
+
const id = normalizeText(patch.id);
|
|
72
|
+
if (!id || id.length > 200 || /[\0\r\n"&|<>^%!\x60]/.test(id))
|
|
73
|
+
fail('Enter a valid model ID (up to 200 characters).', 'id');
|
|
74
|
+
if (models.some(model => model.id === id && model.id !== originalId))
|
|
75
|
+
fail('This model ID is already configured.', 'id');
|
|
76
|
+
if (!existing && models.length >= 32) fail('A provider can contain up to 32 models.', 'id');
|
|
77
|
+
const contextWindow = Number(patch.contextWindow);
|
|
78
|
+
if (!Number.isSafeInteger(contextWindow) || contextWindow < 8192 || contextWindow > 4000000)
|
|
79
|
+
fail('Context window must be an integer between 8192 and 4000000.', 'contextWindow');
|
|
80
|
+
const maxOutputTokens = patch.maxOutputTokens === '' || patch.maxOutputTokens == null
|
|
81
|
+
? null : Number(patch.maxOutputTokens);
|
|
82
|
+
if (maxOutputTokens !== null && (!Number.isSafeInteger(maxOutputTokens)
|
|
83
|
+
|| maxOutputTokens < 256 || maxOutputTokens > 65536 || maxOutputTokens >= contextWindow))
|
|
84
|
+
fail('Output limit must be between 256 and 65536 and smaller than the context window.', 'maxOutputTokens');
|
|
85
|
+
const model = { ...existing, id, label: normalizeText(patch.label).slice(0, 200) || id,
|
|
86
|
+
contextWindow, maxOutputTokens,
|
|
87
|
+
inputModalities: normalizeInputModalities(patch.inputModalities),
|
|
88
|
+
supportsParallelToolCalls: patch.supportsParallelToolCalls === true,
|
|
89
|
+
upstreamResponseMode: normalizeUpstreamResponseMode(patch.upstreamResponseMode, true),
|
|
90
|
+
reasoningEfforts: MODEL_EFFORTS.filter(effort => patch.reasoningEfforts?.includes(effort)),
|
|
91
|
+
reasoningAdapter: patch.reasoningAdapter ? normalizeReasoningAdapter(patch.reasoningAdapter) : '',
|
|
92
|
+
reasoningCapability: patch.reasoningCapability ? normalizeReasoningCapability(patch.reasoningCapability)
|
|
93
|
+
: patch.reasoningEfforts?.length ? 'effort' : '',
|
|
94
|
+
baseInstructions: normalizeText(patch.baseInstructions).slice(0, 8000)
|
|
95
|
+
};
|
|
96
|
+
model.resolvedUpstreamResponseMode = model.upstreamResponseMode === existing?.upstreamResponseMode
|
|
97
|
+
? existing.resolvedUpstreamResponseMode || '' : '';
|
|
98
|
+
return { ...draft,
|
|
99
|
+
models: existing ? models.map(item => item.id === originalId ? model : item) : [...models, model],
|
|
100
|
+
defaultModelId: !draft.defaultModelId || draft.defaultModelId === originalId ? id : draft.defaultModelId
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function removeDraftModel(draft, id) {
|
|
105
|
+
const models = (draft.models || []).filter(model => model.id !== id);
|
|
106
|
+
return { ...draft, models, defaultModelId: draft.defaultModelId === id
|
|
107
|
+
? models[0]?.id || '' : draft.defaultModelId };
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
|
|
12
111
|
function normalizeCatalog(value = {}) {
|
|
13
112
|
const providers = Array.isArray(value.providers)
|
|
14
113
|
? value.providers.map(normalizeProvider).filter(Boolean)
|
|
@@ -110,6 +209,9 @@
|
|
|
110
209
|
upstreamResponseMode: normalizeUpstreamResponseMode(value?.upstreamResponseMode, true),
|
|
111
210
|
resolvedUpstreamResponseMode: normalizeUpstreamResponseMode(value?.resolvedUpstreamResponseMode, false),
|
|
112
211
|
contextWindow: normalizeInteger(value?.contextWindow) || 262144,
|
|
212
|
+
maxOutputTokens: value?.maxOutputTokens == null ? null : Math.min(65536, Math.max(256, normalizeInteger(value.maxOutputTokens))),
|
|
213
|
+
reasoningAdapter: value?.reasoningAdapter ? normalizeReasoningAdapter(value.reasoningAdapter) : '',
|
|
214
|
+
reasoningCapability: value?.reasoningCapability ? normalizeReasoningCapability(value.reasoningCapability) : '',
|
|
113
215
|
supportsParallelToolCalls: value?.supportsParallelToolCalls === true,
|
|
114
216
|
inputModalities: normalizeInputModalities(value?.inputModalities),
|
|
115
217
|
baseInstructions: normalizeText(value?.baseInstructions)
|
|
@@ -286,6 +388,13 @@
|
|
|
286
388
|
|
|
287
389
|
return {
|
|
288
390
|
BUILTIN_PROVIDER_ID,
|
|
391
|
+
MODEL_EFFORTS,
|
|
392
|
+
getProviderPresets,
|
|
393
|
+
getPresetConnectionInfo,
|
|
394
|
+
getPresetConnection,
|
|
395
|
+
buildPresetDraft,
|
|
396
|
+
updateDraftModel,
|
|
397
|
+
removeDraftModel,
|
|
289
398
|
buildBuiltinProvider,
|
|
290
399
|
buildEmptyDraft,
|
|
291
400
|
buildRunSelection,
|