codex-overleaf-link 2.4.1 → 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.
Files changed (324) hide show
  1. package/README.md +272 -314
  2. package/README.zh-CN.md +287 -329
  3. package/extension/bootstrap/background.js +47 -10
  4. package/extension/bootstrap/manifest.template.json +9 -4
  5. package/extension/bootstrap/popup.html +10 -16
  6. package/extension/bootstrap/update.js +25 -2
  7. package/extension/runtime-manifest.json +3 -1
  8. package/extension/src/background.js +28 -3
  9. package/extension/src/backgroundSharedSessions.js +380 -0
  10. package/extension/src/backgroundUpdateCoordinator.js +442 -379
  11. package/extension/src/content/activeTurnControl.js +8 -0
  12. package/extension/src/content/assetTransferBroker.js +186 -12
  13. package/extension/src/content/changeHistoryView.js +175 -0
  14. package/extension/src/content/composerAttachments.js +24 -22
  15. package/extension/src/content/composerPanel.js +23 -8
  16. package/extension/src/content/contentRuntime.js +507 -507
  17. package/extension/src/content/diagnosticsController.js +1 -2
  18. package/extension/src/content/diagnosticsExport.js +222 -0
  19. package/extension/src/content/diagnosticsPanel.js +48 -19
  20. package/extension/src/content/diffReviewPanel.js +8 -5
  21. package/extension/src/content/generated/content.bundle.js +8330 -1349
  22. package/extension/src/content/generated/content.bundle.meta.json +22 -3
  23. package/extension/src/content/legacyGlobalRegistry.js +19 -1
  24. package/extension/src/content/localSkillsPanel.js +42 -7
  25. package/extension/src/content/markdownDomRenderer.js +9 -4
  26. package/extension/src/content/modelPicker.js +1 -1
  27. package/extension/src/content/pageBridgeClient.js +18 -3
  28. package/extension/src/content/panelMaintenance.js +48 -121
  29. package/extension/src/content/panelRenderer.js +4 -0
  30. package/extension/src/content/pendingInputView.js +109 -76
  31. package/extension/src/content/providerSettingsCoordinator.js +17 -6
  32. package/extension/src/content/providerSettingsDialog.js +661 -108
  33. package/extension/src/content/recentProjects.js +10 -1
  34. package/extension/src/content/runActivitySummary.js +631 -0
  35. package/extension/src/content/runController.js +3 -1
  36. package/extension/src/content/runFailureNotice.js +14 -1
  37. package/extension/src/content/runGuidanceController.js +4 -3
  38. package/extension/src/content/runPresence.js +306 -0
  39. package/extension/src/content/runQueueScheduler.js +2 -1
  40. package/extension/src/content/runResultActions.js +123 -3
  41. package/extension/src/content/runTimelineView.js +186 -154
  42. package/extension/src/content/selectionContextView.js +300 -0
  43. package/extension/src/content/sessionPersistence.js +6 -1
  44. package/extension/src/content/settingsPanel.js +77 -52
  45. package/extension/src/content/settingsWorkbench.js +374 -0
  46. package/extension/src/content/sharedSessionViewSync.js +72 -0
  47. package/extension/src/content/subagentActivityView.js +195 -0
  48. package/extension/src/content/trackedChangeCaptureController.js +7 -3
  49. package/extension/src/content/updateNotice.js +121 -50
  50. package/extension/src/content/writebackController.js +257 -0
  51. package/extension/src/content/writebackOrchestrator.js +146 -141
  52. package/extension/src/content/writebackPlan.js +231 -0
  53. package/extension/src/content/writebackRecovery.js +122 -0
  54. package/extension/src/content/writingStyleSettings.js +576 -0
  55. package/extension/src/content/writtenChangesView.js +152 -0
  56. package/extension/src/page/binaryAssetUploader.js +97 -19
  57. package/extension/src/page/overleafProjectSnapshot.js +1 -0
  58. package/extension/src/page/referenceProjects.js +148 -0
  59. package/extension/src/page/saveState.js +14 -2
  60. package/extension/src/page/snapshotRouter.js +44 -13
  61. package/extension/src/page/textCoordinates.js +102 -0
  62. package/extension/src/page/textFileCreator.js +350 -59
  63. package/extension/src/page/trackedChangeCapture.js +42 -56
  64. package/extension/src/page/trackedChangeOwnership.js +198 -0
  65. package/extension/src/page/trackedChangeReplay.js +164 -0
  66. package/extension/src/page/trackedChangesLifecycle.js +135 -149
  67. package/extension/src/page/treeOperations.js +26 -2
  68. package/extension/src/page/writebackReceiptJournal.js +112 -0
  69. package/extension/src/page/writebackRouter.js +175 -135
  70. package/extension/src/pageBridge.js +56 -101
  71. package/extension/src/popup.js +203 -59
  72. package/extension/src/shared/agentTranscript.js +18 -4
  73. package/extension/src/shared/auditRecords.js +71 -0
  74. package/extension/src/shared/changeHistoryModel.js +94 -0
  75. package/extension/src/shared/compatibility.js +1 -1
  76. package/extension/src/shared/compileAdapter.js +42 -0
  77. package/extension/src/shared/failureReasons.js +20 -0
  78. package/extension/src/shared/globalPreferences.js +1 -1
  79. package/extension/src/shared/i18n.js +93 -25
  80. package/extension/src/shared/managedUpdateProjection.js +6 -3
  81. package/extension/src/shared/pageRpcContract.js +7 -1
  82. package/extension/src/shared/providerProfiles.js +109 -0
  83. package/extension/src/shared/runActivityModel.js +361 -0
  84. package/extension/src/shared/runExecutionSnapshot.js +8 -2
  85. package/extension/src/shared/runExecutionSnapshotCodec.js +16 -4
  86. package/extension/src/shared/scopedPersistenceBrowserAdapter.js +6 -3
  87. package/extension/src/shared/selectionContext.js +28 -0
  88. package/extension/src/shared/sessionState.js +97 -6
  89. package/extension/src/shared/sharedSessionBridge.js +288 -0
  90. package/extension/src/shared/storageDb.js +22 -55
  91. package/extension/src/shared/storageMigration.js +3 -0
  92. package/extension/src/shared/storageRunActions.js +10 -4
  93. package/extension/src/shared/storageValuePruning.js +40 -0
  94. package/extension/src/shared/subagentActivityModel.js +174 -0
  95. package/extension/src/shared/undoOperations.js +87 -0
  96. package/extension/src/shared/updateConsent.js +37 -8
  97. package/extension/src/shared/writebackIntent.js +62 -0
  98. package/extension/src/shared/writebackSettlement.js +29 -10
  99. package/extension/src/shared/writingStyle.js +33 -0
  100. package/extension/styles/panel.css +1972 -384
  101. package/extension/styles/popup.css +110 -0
  102. package/native-host/src/anthropicBridgeRequest.js +2 -1
  103. package/native-host/src/codexModelRecovery.js +107 -0
  104. package/native-host/src/codexPromptAssembly.js +2 -0
  105. package/native-host/src/codexProviderLaunch.js +3 -3
  106. package/native-host/src/codexRuntimeIdentity.js +1 -0
  107. package/native-host/src/codexSessionRunner.js +106 -140
  108. package/native-host/src/codexSessionTiming.js +3 -0
  109. package/native-host/src/managedInstall.js +5 -4
  110. package/native-host/src/nativeEnvironment.js +70 -0
  111. package/native-host/src/nativeQuotas.js +15 -8
  112. package/native-host/src/overleafWorkspaceRules.js +16 -0
  113. package/native-host/src/processStopBarrier.js +80 -0
  114. package/native-host/src/providerModelCatalog.js +4 -3
  115. package/native-host/src/providerProfile.js +13 -1
  116. package/native-host/src/providerReasoning.js +9 -5
  117. package/native-host/src/providerStore.js +4 -0
  118. package/native-host/src/releaseTransport.js +14 -5
  119. package/native-host/src/selectionScope.js +58 -0
  120. package/native-host/src/skills/parallel-subagents/SKILL.md +31 -3
  121. package/native-host/src/skills/writing-style-builder/SKILL.md +146 -0
  122. package/native-host/src/subagentBroker.js +102 -98
  123. package/native-host/src/subagentTelemetry.js +316 -0
  124. package/native-host/src/subagentWorkspace.js +103 -0
  125. package/native-host/src/subagentWorkspacePath.js +31 -0
  126. package/native-host/src/taskRunnerRuntime.js +55 -5
  127. package/native-host/src/turnAttachments.js +113 -0
  128. package/native-host/src/updateManager.js +122 -12
  129. package/native-host/src/updateNetworkControl.js +75 -0
  130. package/native-host/src/updateTrust.js +21 -2
  131. package/native-host/src/vendor/pdfjs/LICENSE +177 -0
  132. package/native-host/src/vendor/pdfjs/SOURCE.txt +3 -0
  133. package/native-host/src/vendor/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
  134. package/native-host/src/vendor/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
  135. package/native-host/src/vendor/pdfjs/cmaps/78-H.bcmap +0 -0
  136. package/native-host/src/vendor/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
  137. package/native-host/src/vendor/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
  138. package/native-host/src/vendor/pdfjs/cmaps/78-V.bcmap +0 -0
  139. package/native-host/src/vendor/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
  140. package/native-host/src/vendor/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
  141. package/native-host/src/vendor/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
  142. package/native-host/src/vendor/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
  143. package/native-host/src/vendor/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
  144. package/native-host/src/vendor/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
  145. package/native-host/src/vendor/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
  146. package/native-host/src/vendor/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
  147. package/native-host/src/vendor/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
  148. package/native-host/src/vendor/pdfjs/cmaps/Add-H.bcmap +0 -0
  149. package/native-host/src/vendor/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
  150. package/native-host/src/vendor/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
  151. package/native-host/src/vendor/pdfjs/cmaps/Add-V.bcmap +0 -0
  152. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
  153. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
  154. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
  155. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
  156. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
  157. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
  158. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
  159. package/native-host/src/vendor/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  160. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
  161. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
  162. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
  163. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
  164. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
  165. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
  166. package/native-host/src/vendor/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  167. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
  168. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
  169. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
  170. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
  171. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
  172. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
  173. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
  174. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  175. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
  176. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
  177. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
  178. package/native-host/src/vendor/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  179. package/native-host/src/vendor/pdfjs/cmaps/B5-H.bcmap +0 -0
  180. package/native-host/src/vendor/pdfjs/cmaps/B5-V.bcmap +0 -0
  181. package/native-host/src/vendor/pdfjs/cmaps/B5pc-H.bcmap +0 -0
  182. package/native-host/src/vendor/pdfjs/cmaps/B5pc-V.bcmap +0 -0
  183. package/native-host/src/vendor/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
  184. package/native-host/src/vendor/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
  185. package/native-host/src/vendor/pdfjs/cmaps/CNS1-H.bcmap +0 -0
  186. package/native-host/src/vendor/pdfjs/cmaps/CNS1-V.bcmap +0 -0
  187. package/native-host/src/vendor/pdfjs/cmaps/CNS2-H.bcmap +0 -0
  188. package/native-host/src/vendor/pdfjs/cmaps/CNS2-V.bcmap +3 -0
  189. package/native-host/src/vendor/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
  190. package/native-host/src/vendor/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
  191. package/native-host/src/vendor/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
  192. package/native-host/src/vendor/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
  193. package/native-host/src/vendor/pdfjs/cmaps/ETenms-B5-H.bcmap +3 -0
  194. package/native-host/src/vendor/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
  195. package/native-host/src/vendor/pdfjs/cmaps/EUC-H.bcmap +0 -0
  196. package/native-host/src/vendor/pdfjs/cmaps/EUC-V.bcmap +0 -0
  197. package/native-host/src/vendor/pdfjs/cmaps/Ext-H.bcmap +0 -0
  198. package/native-host/src/vendor/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
  199. package/native-host/src/vendor/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
  200. package/native-host/src/vendor/pdfjs/cmaps/Ext-V.bcmap +0 -0
  201. package/native-host/src/vendor/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
  202. package/native-host/src/vendor/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
  203. package/native-host/src/vendor/pdfjs/cmaps/GB-H.bcmap +4 -0
  204. package/native-host/src/vendor/pdfjs/cmaps/GB-V.bcmap +0 -0
  205. package/native-host/src/vendor/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
  206. package/native-host/src/vendor/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
  207. package/native-host/src/vendor/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
  208. package/native-host/src/vendor/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
  209. package/native-host/src/vendor/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
  210. package/native-host/src/vendor/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
  211. package/native-host/src/vendor/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
  212. package/native-host/src/vendor/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
  213. package/native-host/src/vendor/pdfjs/cmaps/GBT-H.bcmap +0 -0
  214. package/native-host/src/vendor/pdfjs/cmaps/GBT-V.bcmap +0 -0
  215. package/native-host/src/vendor/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
  216. package/native-host/src/vendor/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
  217. package/native-host/src/vendor/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
  218. package/native-host/src/vendor/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
  219. package/native-host/src/vendor/pdfjs/cmaps/H.bcmap +0 -0
  220. package/native-host/src/vendor/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
  221. package/native-host/src/vendor/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
  222. package/native-host/src/vendor/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
  223. package/native-host/src/vendor/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
  224. package/native-host/src/vendor/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
  225. package/native-host/src/vendor/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
  226. package/native-host/src/vendor/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
  227. package/native-host/src/vendor/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
  228. package/native-host/src/vendor/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
  229. package/native-host/src/vendor/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
  230. package/native-host/src/vendor/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
  231. package/native-host/src/vendor/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
  232. package/native-host/src/vendor/pdfjs/cmaps/Hankaku.bcmap +0 -0
  233. package/native-host/src/vendor/pdfjs/cmaps/Hiragana.bcmap +0 -0
  234. package/native-host/src/vendor/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
  235. package/native-host/src/vendor/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
  236. package/native-host/src/vendor/pdfjs/cmaps/KSC-H.bcmap +0 -0
  237. package/native-host/src/vendor/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
  238. package/native-host/src/vendor/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
  239. package/native-host/src/vendor/pdfjs/cmaps/KSC-V.bcmap +0 -0
  240. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
  241. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  242. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  243. package/native-host/src/vendor/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
  244. package/native-host/src/vendor/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
  245. package/native-host/src/vendor/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
  246. package/native-host/src/vendor/pdfjs/cmaps/Katakana.bcmap +0 -0
  247. package/native-host/src/vendor/pdfjs/cmaps/LICENSE +36 -0
  248. package/native-host/src/vendor/pdfjs/cmaps/NWP-H.bcmap +0 -0
  249. package/native-host/src/vendor/pdfjs/cmaps/NWP-V.bcmap +0 -0
  250. package/native-host/src/vendor/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
  251. package/native-host/src/vendor/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
  252. package/native-host/src/vendor/pdfjs/cmaps/Roman.bcmap +0 -0
  253. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  254. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  255. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  256. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  257. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  258. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  259. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  260. package/native-host/src/vendor/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  261. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
  262. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
  263. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
  264. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
  265. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
  266. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
  267. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
  268. package/native-host/src/vendor/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
  269. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  270. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  271. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  272. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  273. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  274. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  275. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  276. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  277. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  278. package/native-host/src/vendor/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  279. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  280. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  281. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  282. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  283. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  284. package/native-host/src/vendor/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  285. package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  286. package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  287. package/native-host/src/vendor/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  288. package/native-host/src/vendor/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  289. package/native-host/src/vendor/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  290. package/native-host/src/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  291. package/native-host/src/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  292. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
  293. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
  294. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
  295. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
  296. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
  297. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
  298. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
  299. package/native-host/src/vendor/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
  300. package/native-host/src/vendor/pdfjs/cmaps/V.bcmap +0 -0
  301. package/native-host/src/vendor/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
  302. package/native-host/src/vendor/pdfjs/pdf.mjs +26740 -0
  303. package/native-host/src/vendor/pdfjs/pdf.worker.mjs +62201 -0
  304. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitDingbats.pfb +0 -0
  305. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixed.pfb +0 -0
  306. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedBold.pfb +0 -0
  307. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  308. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitFixedItalic.pfb +0 -0
  309. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerif.pfb +0 -0
  310. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifBold.pfb +0 -0
  311. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  312. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSerifItalic.pfb +0 -0
  313. package/native-host/src/vendor/pdfjs/standard_fonts/FoxitSymbol.pfb +0 -0
  314. package/native-host/src/vendor/pdfjs/standard_fonts/LICENSE_FOXIT +27 -0
  315. package/native-host/src/vendor/pdfjs/standard_fonts/LICENSE_LIBERATION +102 -0
  316. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Bold.ttf +0 -0
  317. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  318. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Italic.ttf +0 -0
  319. package/native-host/src/vendor/pdfjs/standard_fonts/LiberationSans-Regular.ttf +0 -0
  320. package/native-host/src/writingStyleEvidence.js +102 -0
  321. package/native-host/src/writingStylePdfWorker.js +35 -0
  322. package/native-host/src/writingStyleProfile.js +165 -0
  323. package/native-host/src/writingStyleRuntime.js +447 -0
  324. package/package.json +1 -1
@@ -0,0 +1,110 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --popup-bg: light-dark(#ffffff, #1b201d);
4
+ --popup-text: light-dark(#28312b, #e5eae6);
5
+ --popup-muted: light-dark(#717b74, #a3aea6);
6
+ --popup-border: light-dark(#e8ece9, #333c36);
7
+ --popup-surface: light-dark(#f6f8f6, #242c27);
8
+ --popup-green: light-dark(#35734a, #9ccdab);
9
+ --popup-on-green: light-dark(#ffffff, #182b1f);
10
+ --popup-danger: light-dark(#aa443d, #df928c);
11
+ --popup-warn: light-dark(#99702a, #d6b671);
12
+ }
13
+ :root[data-popup-theme="light"] { color-scheme: light; }
14
+ :root[data-popup-theme="auto"] { color-scheme: light dark; }
15
+ /* Give Chrome an intrinsic popup width; viewport-relative caps can shrink it
16
+ back to the initial narrow viewport during popup sizing. */
17
+ html.popup-minimal-root {
18
+ box-sizing: border-box;
19
+ width: 340px;
20
+ min-width: 340px;
21
+ margin: 0;
22
+ overflow-x: hidden;
23
+ overflow-y: auto;
24
+ background: var(--popup-bg);
25
+ }
26
+ .popup-minimal * { box-sizing: border-box; }
27
+ body.popup-minimal {
28
+ width: 340px;
29
+ min-width: 340px;
30
+ max-width: none;
31
+ min-height: 0;
32
+ margin: 0;
33
+ padding: 0;
34
+ color: var(--popup-text);
35
+ background: var(--popup-bg);
36
+ font: 13px/1.5 "Avenir Next", "Segoe UI", sans-serif;
37
+ animation: none;
38
+ }
39
+ .popup-minimal #popup-shell { display: block; width: 100%; min-width: 0; }
40
+ .popup-minimal .popup-header { display: flex; align-items: center; gap: 12px; padding: 17px 18px 16px; }
41
+ .popup-minimal .popup-icon { display: block; width: 32px; height: 32px; object-fit: contain; flex: 0 0 auto; }
42
+ .popup-minimal .popup-brand { flex: 1; min-width: 0; }
43
+ .popup-minimal .popup-brand h1 { margin: 0; font-size: 14px; font-weight: 500; letter-spacing: -.02em; line-height: 1.45; white-space: nowrap; overflow-wrap: normal; }
44
+ .popup-minimal .connection-toggle {
45
+ appearance: none;
46
+ display: inline-flex;
47
+ align-items: center;
48
+ gap: 5px;
49
+ width: auto;
50
+ min-height: 24px;
51
+ margin: 1px 0 -2px -4px;
52
+ padding: 2px 4px;
53
+ border: 1px solid transparent;
54
+ border-radius: 5px;
55
+ box-shadow: none;
56
+ background: transparent;
57
+ color: var(--popup-muted);
58
+ font: inherit;
59
+ font-size: 11px;
60
+ font-weight: 400;
61
+ line-height: 1.45;
62
+ white-space: nowrap;
63
+ cursor: pointer;
64
+ }
65
+ .popup-minimal .connection-toggle:hover { border-color: var(--popup-border); background: var(--popup-surface); color: var(--popup-text); transform: none; }
66
+ .popup-minimal .connection-chevron { width: 5px; height: 5px; flex: 0 0 auto; margin: -2px 2px 0; border: solid currentColor; border-width: 0 1px 1px 0; transform: rotate(45deg); }
67
+ .popup-minimal .connection-toggle[aria-expanded="true"] .connection-chevron { margin-top: 2px; transform: rotate(225deg); }
68
+ .popup-minimal .status-icon { display: block; width: 5px; height: 5px; min-width: 5px; min-height: 5px; flex: 0 0 auto; border-radius: 50%; background: var(--popup-muted); font-size: 0; box-shadow: none; }
69
+ .popup-minimal .status-icon.compatible { background: var(--popup-green); }
70
+ .popup-minimal .status-icon.update-available { background: var(--popup-warn); }
71
+ .popup-minimal .status-icon.incompatible { background: var(--popup-danger); }
72
+ .popup-minimal .connection-details { padding: 12px 18px; border-top: 1px solid var(--popup-border); background: var(--popup-surface); }
73
+ .popup-minimal #version-pair { display: grid; gap: 8px; margin: 0; font-size: 11px; line-height: 1.45; }
74
+ .popup-minimal #version-pair > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
75
+ .popup-minimal #version-pair dt { color: var(--popup-muted); }
76
+ .popup-minimal #version-pair dd { margin: 0; color: var(--popup-text); font-variant-numeric: tabular-nums; white-space: nowrap; }
77
+ .popup-minimal .launcher-setting { display: grid; grid-template-columns: minmax(0, 1fr) 31px; align-items: center; gap: 16px; padding: 15px 18px 17px; border-top: 1px solid var(--popup-border); cursor: pointer; }
78
+ .popup-minimal .launcher-copy { min-width: 0; }
79
+ .popup-minimal .launcher-copy strong { display: block; font-size: 12px; font-weight: 500; line-height: 1.5; }
80
+ .popup-minimal .launcher-copy small { display: block; margin-top: 3px; color: var(--popup-muted); font-size: 11px; line-height: 1.5; }
81
+ .popup-minimal .launcher-toggle {
82
+ appearance: none;
83
+ -webkit-appearance: none;
84
+ position: relative;
85
+ width: 31px;
86
+ height: 19px;
87
+ margin: 0;
88
+ padding: 0;
89
+ flex: 0 0 auto;
90
+ border: 1px solid var(--popup-border);
91
+ border-radius: 20px;
92
+ background: var(--popup-surface);
93
+ cursor: pointer;
94
+ }
95
+ .popup-minimal .launcher-toggle::after { content: ""; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: var(--popup-muted); transition: transform 130ms ease; }
96
+ .popup-minimal .launcher-toggle:checked { border-color: var(--popup-green); background: var(--popup-green); }
97
+ .popup-minimal .launcher-toggle:checked::after { background: var(--popup-on-green); transform: translateX(12px); }
98
+ .popup-minimal .launcher-toggle:disabled { cursor: default; opacity: .5; }
99
+ .popup-minimal .popup-note { margin: 0; padding: 11px 18px; border-top: 1px solid var(--popup-border); color: var(--popup-muted); font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
100
+ .popup-minimal .popup-note[role="alert"] { color: var(--popup-danger); }
101
+ .popup-minimal .install { margin: 0; padding: 14px 18px 16px; border: 0; border-top: 1px solid var(--popup-border); border-radius: 0; background: var(--popup-surface); }
102
+ .popup-minimal .install > strong { font-size: 12px; font-weight: 500; }
103
+ .popup-minimal .install p { margin: 6px 0 0; color: var(--popup-muted); font-size: 11px; line-height: 1.6; }
104
+ .popup-minimal .install code { display: block; margin: 10px 0; padding: 9px; max-height: 120px; overflow: auto; border: 1px solid var(--popup-border); border-radius: 6px; color: var(--popup-text); background: var(--popup-bg); white-space: pre-wrap; overflow-wrap: anywhere; font: 11px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
105
+ .popup-minimal .copy-command { appearance: none; width: auto; min-height: 29px; margin: 0; padding: 5px 8px; border: 1px solid var(--popup-border); border-radius: 6px; background: var(--popup-bg); color: var(--popup-text); font: inherit; font-size: 11px; font-weight: 500; cursor: pointer; }
106
+ .popup-minimal .copy-command:hover { background: var(--popup-surface); border-color: var(--popup-muted); transform: none; }
107
+ .popup-minimal .copy-command:disabled { opacity: .55; cursor: default; }
108
+ .popup-minimal button:focus-visible, .popup-minimal input:focus-visible { outline: 2px solid var(--popup-green); outline-offset: 3px; }
109
+ .popup-minimal [hidden] { display: none !important; }
110
+ @media (prefers-reduced-motion: reduce) { .popup-minimal .launcher-toggle::after { transition: none; } }
@@ -175,7 +175,8 @@ function convertToolChoice(value, context, launch) {
175
175
  }
176
176
 
177
177
  function applyAnthropicThinking(body, requestBody, launch, maxTokens) {
178
- const effort = text(requestBody?.reasoning?.effort || launch.reasoningEffort).toLowerCase();
178
+ // The captured panel choice wins over a model-generated request default.
179
+ const effort = text(launch.reasoningEffort || requestBody?.reasoning?.effort).toLowerCase();
179
180
  if (!effort || ['none', 'off', 'disabled'].includes(effort) || launch.anthropicThinkingMode === 'none') {
180
181
  return false;
181
182
  }
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ const { refreshCodexRuntimeEnv } = require('./nativeEnvironment');
4
+ const { getCodexRuntimeIdentityFromEnv, compareCodexVersions, buildCodexRuntimeEvent } = require('./codexRuntimeIdentity');
5
+ const { logDebug } = require('./debugLog');
6
+
7
+ const UPGRADE_CODE = 'codex_model_requires_newer_cli';
8
+ const STOP_CODES = new Set(['codex_cancelled', 'codex_process_stop_unconfirmed', 'thread_resume_failed']);
9
+
10
+ function rejectedModel(error, expectedModel) {
11
+ if (!error || STOP_CODES.has(error.code)) return '';
12
+ let current = error, inheritedStatus = 0;
13
+ for (let depth = 0; depth < 4 && current && typeof current === 'object'; depth++) {
14
+ const detail = current.error && typeof current.error === 'object' ? current.error : current;
15
+ const status = Number(current.status || current.statusCode || inheritedStatus);
16
+ const type = detail.type || detail.code;
17
+ const message = String(detail.message || current.message || '');
18
+ const match = /^The ['"]([^'"]+)['"] model requires a newer version of Codex\b/i.exec(message.trim());
19
+ if (status === 400 && type === 'invalid_request_error' && match) {
20
+ return !expectedModel || match[1] === expectedModel ? match[1] : '';
21
+ }
22
+ inheritedStatus = status;
23
+ if (message.length <= 12000 && message.trim().startsWith('{')) {
24
+ try { current = JSON.parse(message); continue; } catch (_) {}
25
+ }
26
+ if (detail !== current) current = detail;
27
+ else break;
28
+ }
29
+ return '';
30
+ }
31
+
32
+ function formatModelUpgradeError(error, env, options = {}) {
33
+ if (error?.code === UPGRADE_CODE) return error;
34
+ const model = rejectedModel(error, options.model);
35
+ if (!model) return null;
36
+ const identity = getCodexRuntimeIdentityFromEnv(env);
37
+ const selected = identity.selected || {};
38
+ const version = selected.version || env.CODEX_OVERLEAF_CODEX_VERSION || 'unknown';
39
+ const pinned = identity.selectedBy === 'explicit-path' || identity.selectedBy === 'legacy-path';
40
+ const chinese = /^zh\b/i.test(String(options.locale || ''));
41
+ const message = chinese
42
+ ? '模型 ' + model + ' 要求更新的 Codex 运行时。本次使用 CLI ' + version + '。'
43
+ + (pinned ? '当前 CLI 路径已手动固定,请更新该安装或调整固定路径后重试。'
44
+ : options.retried ? '切换本机较新版本后仍被拒绝,请更新 Codex 后重试。'
45
+ : '未找到可自动切换的更新版本,请更新 Codex 后重试。')
46
+ : 'Model ' + model + ' requires a newer Codex runtime. This task used CLI ' + version + '. '
47
+ + (pinned ? 'The CLI path is pinned. Update that installation or change the configured path, then retry.'
48
+ : options.retried ? 'The newer local CLI was also rejected. Update Codex and retry.'
49
+ : 'No newer local CLI was available for automatic recovery. Update Codex and retry.');
50
+ return Object.assign(new Error(message), {
51
+ code: UPGRADE_CODE,
52
+ details: {
53
+ model, codexVersion: version, codexSource: selected.source || '',
54
+ codexPath: selected.displayPath || selected.path || '',
55
+ pinned, recoveryAttempted: options.retried === true
56
+ }
57
+ });
58
+ }
59
+
60
+ // This runner is used only for the isolated, read-only style-generation job.
61
+ // Its model/provider/input remain unchanged; the one retry changes only CLI env.
62
+ function createRecoveringStyleRunner(options) {
63
+ let currentEnv = options.env;
64
+ let retried = false;
65
+ return async function run(input) {
66
+ if (input.signal?.aborted) throw input.signal.reason || Object.assign(new Error('Cancelled'), { code: 'codex_cancelled' });
67
+ try {
68
+ return await options.execute({ ...input, env: currentEnv });
69
+ } catch (error) {
70
+ if (input.signal?.aborted || !rejectedModel(error, input.model)) throw error;
71
+ const previous = getCodexRuntimeIdentityFromEnv(currentEnv);
72
+ let refreshed = currentEnv;
73
+ try { refreshed = refreshCodexRuntimeEnv(currentEnv, { force: true }); }
74
+ catch (_) { /* Keep the original failure if discovery itself is unavailable. */ }
75
+ const next = getCodexRuntimeIdentityFromEnv(refreshed);
76
+ const newer = next.selected?.path && compareCodexVersions(
77
+ next.selected.version, previous.selected?.version || ''
78
+ ) > 0;
79
+ if (!retried && newer) {
80
+ retried = true;
81
+ currentEnv = refreshed;
82
+ if (input.signal?.aborted) throw input.signal.reason || Object.assign(new Error('Cancelled'), { code: 'codex_cancelled' });
83
+ logDebug('codex.runtime.model_retry_started', {
84
+ model: input.model, previousVersion: previous.selected?.version || '',
85
+ selectedVersion: next.selected.version, source: next.selected.source
86
+ });
87
+ const runtimeEvent = buildCodexRuntimeEvent(currentEnv);
88
+ if (runtimeEvent && typeof options.emit === 'function') options.emit(runtimeEvent);
89
+ try {
90
+ const result = await options.execute({ ...input, env: currentEnv });
91
+ logDebug('codex.runtime.model_retry_completed', { model: input.model, selectedVersion: next.selected.version });
92
+ return result;
93
+ } catch (retryError) {
94
+ if (input.signal?.aborted) throw retryError;
95
+ throw formatModelUpgradeError(retryError, currentEnv, {
96
+ model: input.model, locale: options.locale, retried: true
97
+ }) || retryError;
98
+ }
99
+ }
100
+ throw formatModelUpgradeError(error, currentEnv, {
101
+ model: input.model, locale: options.locale, retried
102
+ }) || error;
103
+ }
104
+ };
105
+ }
106
+
107
+ module.exports = { createRecoveringStyleRunner, formatModelUpgradeError };
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const { truncateText } = require('./debugLog');
4
+ const { formatOverleafWorkspaceRules } = require('./overleafWorkspaceRules');
4
5
 
5
6
  const PROJECT_CUSTOM_INSTRUCTIONS_MAX_CHARS = 12000;
6
7
  const NATIVE_MESSAGE_PROMPT_MAX_CHARS = 1024 * 1024;
@@ -32,6 +33,7 @@ function buildCodexTurnPrompt(options = {}) {
32
33
  `- Project: ${context.projectKey || context.projectId || 'unknown'}`,
33
34
  '- The local workspace was synced from Overleaf immediately before this turn.',
34
35
  '- If the recent session history conflicts with the files in the workspace, trust the files.',
36
+ ...(isSkillInstallerInvocation(context.skillInvocation) ? [] : ['', formatOverleafWorkspaceRules()]),
35
37
  '',
36
38
  'Project location citation rules:',
37
39
  formatProjectLocationCitationRules(),
@@ -26,8 +26,8 @@ function createProviderLaunch({ profile, secret = '', modelId, wireApi, reasonin
26
26
  wireApi,
27
27
  upstreamResponseMode: resolvedResponseMode === 'buffered' ? 'buffered' : 'streaming',
28
28
  requestTimeoutMs: profile.requestTimeoutMs,
29
- reasoningAdapter: profile.reasoningAdapter || 'auto',
30
- reasoningCapability: profile.reasoningCapability || 'auto',
29
+ reasoningAdapter: model.reasoningAdapter || profile.reasoningAdapter || 'auto',
30
+ reasoningCapability: model.reasoningCapability || profile.reasoningCapability || 'auto',
31
31
  reasoningEffort,
32
32
  reasoningEfforts: model.reasoningEfforts?.length
33
33
  ? model.reasoningEfforts.slice()
@@ -50,7 +50,7 @@ function createProviderLaunch({ profile, secret = '', modelId, wireApi, reasonin
50
50
  anthropicThinkingMode: profile.anthropicThinkingMode || 'budget',
51
51
  anthropicPromptCaching: profile.anthropicPromptCaching === true,
52
52
  impersonateClaudeCode: profile.impersonateClaudeCode === true,
53
- maxOutputTokens: profile.maxOutputTokens || 65536,
53
+ maxOutputTokens: model.maxOutputTokens || profile.maxOutputTokens || 65536,
54
54
  apiKey: secret
55
55
  });
56
56
  }
@@ -285,6 +285,7 @@ module.exports = {
285
285
  RUNTIME_ENV_KEY,
286
286
  buildCodexRuntimeEvent,
287
287
  buildCodexRuntimeIdentity,
288
+ compareCodexVersions,
288
289
  discoverCodexCandidates,
289
290
  getCodexRuntimeIdentityFromEnv,
290
291
  readCodexVersion,