nolo-cli 0.212.0-alpha.1 → 0.222.0-alpha.2

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 (263) hide show
  1. package/README.md +3 -2
  2. package/{_executeModel-KE6MBNUJ.js → _executeModel-4GGQQHOB.js} +111 -82
  3. package/{accountResolver-4LKIHEKL.js → accountResolver-EK2S4PWF.js} +6 -6
  4. package/{action-DF5UYSJF.js → action-CK64LS6S.js} +12 -11
  5. package/{addContentAction-N2YC5IL3.js → addContentAction-GDHDOF4U.js} +18 -17
  6. package/{addDialogAgentAction-3NKVQCEC.js → addDialogAgentAction-CAKRU3ZT.js} +21 -20
  7. package/{agentDeleteCommand-NWK7VU4N.js → agentDeleteCommand-BPV2XZL7.js} +128 -119
  8. package/{agentEmailCommands-UZ4DHEX2.js → agentEmailCommands-EJOS75YL.js} +132 -124
  9. package/{agentFavoriteCommands-EDK743YA.js → agentFavoriteCommands-2LKGKSUD.js} +7 -8
  10. package/{agentGrantCommands-RQWK2TEV.js → agentGrantCommands-QQV4N4JW.js} +5 -5
  11. package/{agentListCommands-HE7L2A6L.js → agentListCommands-HIZODBF3.js} +196 -124
  12. package/{agentMachineCommands-6TE4MBMP.js → agentMachineCommands-ZMQ2CY7Y.js} +62 -53
  13. package/{agentProviderCommands-Q5O33MED.js → agentProviderCommands-WKJOAWBP.js} +5 -5
  14. package/{agentPullCommand-6EM3URVK.js → agentPullCommand-XN6ZPBUW.js} +7 -7
  15. package/agentRecordCommands-OMXVDLDX.js +176 -0
  16. package/agentRunCommand-CB34YWMV.js +206 -0
  17. package/{agentRunControl-OI3LOENH.js → agentRunControl-JNONH3RP.js} +30 -15
  18. package/{agentRuntimeLocal-HL526DNQ.js → agentRuntimeLocal-QZPFWMLG.js} +52 -45
  19. package/{agentSlice-TMYP2UEA.js → agentSlice-RD2CDU7T.js} +20 -19
  20. package/{appDeleteCommands-ZERW4AXY.js → appDeleteCommands-QCCFDIEQ.js} +61 -52
  21. package/{appDeployCommands-DUWSMYHL.js → appDeployCommands-V2T7TNMQ.js} +61 -52
  22. package/{appDeployStatusCommands-N2KIE4BF.js → appDeployStatusCommands-6PGH7ZCG.js} +61 -52
  23. package/{appGetCommands-YVR4NPVY.js → appGetCommands-3L7WWJA6.js} +61 -52
  24. package/{appListCommands-JS6HOHZS.js → appListCommands-ENJCK4PO.js} +61 -52
  25. package/{authCommand-FE2C3ZUM.js → authCommand-6V47SYGK.js} +29 -28
  26. package/{authCommands-HV3EAU3V.js → authCommands-GAJ3NIXO.js} +14 -13
  27. package/{builtinSkillRegistry-3YOIGEF6.js → builtinSkillRegistry-2ECA42FC.js} +11 -13
  28. package/{chromeCommands-REEAH4SX.js → chromeCommands-G5UDKVSV.js} +3 -3
  29. package/{chromeOpsCommands-HEN5AX2J.js → chromeOpsCommands-YKX2QX3A.js} +20 -10
  30. package/{chunk-DM6UMOEL.js → chunk-27PCUMJI.js} +2 -2
  31. package/chunk-2CI3ZFWD.js +97 -0
  32. package/{chunk-HIRC32DV.js → chunk-2GJKRKI6.js} +543 -29
  33. package/{chunk-SM3NSZJV.js → chunk-2UCBGYO4.js} +20 -1
  34. package/{chunk-PYRUW7XN.js → chunk-2VUZSVAS.js} +136 -54
  35. package/chunk-2YGBI2XB.js +30 -0
  36. package/chunk-2ZKFCIJJ.js +13 -0
  37. package/{chunk-CJRONOYL.js → chunk-34J5K2YA.js} +19 -75
  38. package/{chunk-LOEO7LRC.js → chunk-3IK6ILVW.js} +4 -1
  39. package/{chunk-CTPXME7U.js → chunk-3LMUPOHG.js} +29 -6
  40. package/chunk-44X52WOJ.js +1621 -0
  41. package/{chunk-6VLJ6YA7.js → chunk-4DESLZTK.js} +9 -9
  42. package/{chunk-MYOH447Z.js → chunk-4JVNURX4.js} +1 -1
  43. package/chunk-5CHGAKRT.js +364 -0
  44. package/{chunk-YDH3FDFQ.js → chunk-5FUN7EG4.js} +1 -1
  45. package/{chunk-LKDF3ATR.js → chunk-5RKUPJYL.js} +1 -1
  46. package/{chunk-ZC3CMUKU.js → chunk-6OVNSQHN.js} +84 -2
  47. package/{chunk-IF45XG7K.js → chunk-6WU5572L.js} +40 -24
  48. package/{chunk-OHNELDTO.js → chunk-7EEZJ6BS.js} +11 -152
  49. package/{chunk-Y6ORVLSS.js → chunk-7ET2U67U.js} +1 -1
  50. package/{chunk-G7MLNNEX.js → chunk-7JLY4WYF.js} +5 -5
  51. package/{chunk-P5L7CXOC.js → chunk-7Z6EW7AH.js} +3 -2
  52. package/{chunk-IIQ6JGRI.js → chunk-AD5EWDFD.js} +2 -2
  53. package/{chunk-WXYLV624.js → chunk-AIHYNKGV.js} +4 -4
  54. package/{chunk-HPFCI4SK.js → chunk-AK5O76CC.js} +3 -3
  55. package/{chunk-Y63ZSOR6.js → chunk-AL3TYDIF.js} +1 -1
  56. package/{chunk-PJNFNEJE.js → chunk-AMEOV5VZ.js} +59 -13
  57. package/chunk-AN74ON4G.js +675 -0
  58. package/{chunk-HRMJUN5J.js → chunk-AQZ6BMRK.js} +1 -1
  59. package/{chunk-CQ46IRNN.js → chunk-B4GOW4MT.js} +445 -201
  60. package/{chunk-4KB6WQUL.js → chunk-BGP2EDFG.js} +1 -1
  61. package/{chunk-NBTY7YJF.js → chunk-BR3GT6MR.js} +1 -0
  62. package/{chunk-7RFNTILS.js → chunk-BUDVRYES.js} +2 -2
  63. package/{chunk-D2MDMY2M.js → chunk-BV3FLP2L.js} +47 -1
  64. package/{chunk-25JZEIXN.js → chunk-C4VAR65S.js} +92 -150
  65. package/{chunk-AVTVGMDY.js → chunk-C4WTX5TU.js} +2 -2
  66. package/{chunk-ZL5RAEEB.js → chunk-CIRB724Q.js} +1 -1
  67. package/{chunk-F6UUQOG6.js → chunk-CKT6QUE2.js} +4 -4
  68. package/{chunk-M6RL5JCD.js → chunk-CMZ3Z5PT.js} +14 -14
  69. package/{secretCommands-4QS3HCA2.js → chunk-D726I5AZ.js} +191 -16
  70. package/{chunk-INSBKSBB.js → chunk-DNKTQ3IN.js} +4 -4
  71. package/chunk-DVQH4BTR.js +1137 -0
  72. package/{chunk-SOHTHFV2.js → chunk-DWX2HEVC.js} +91 -132
  73. package/{chunk-NOMIGOST.js → chunk-EIAI3PPH.js} +116 -124
  74. package/chunk-EUCFKKDM.js +247 -0
  75. package/chunk-EWQ3HGNZ.js +90 -0
  76. package/{chunk-RPQXPZZF.js → chunk-F3GRJO4Z.js} +908 -13
  77. package/{chunk-GSQNH63I.js → chunk-FIYSMXHY.js} +3 -19
  78. package/{chunk-KSTEXKL6.js → chunk-FJ23FZXF.js} +76 -31
  79. package/{chunk-INN4LTAJ.js → chunk-FJK526XH.js} +2 -2
  80. package/chunk-FS2XP5D7.js +142 -0
  81. package/{chunk-QT6PKHYJ.js → chunk-FYF2TONJ.js} +5 -5
  82. package/{chunk-OXME3PEE.js → chunk-GBWGPTA7.js} +2 -1
  83. package/{chunk-RU4SD66C.js → chunk-GYVCJABP.js} +30 -254
  84. package/{chunk-YUXQAVRD.js → chunk-HOCHUZQ7.js} +257 -90
  85. package/{chunk-Y2WUYX4I.js → chunk-HXER7YJF.js} +4 -4
  86. package/chunk-HYIETXA6.js +99 -0
  87. package/{chunk-H2TJUNCH.js → chunk-I4EADJ4P.js} +6 -6
  88. package/{chunk-TCZHTTUU.js → chunk-I7WBYGBP.js} +8 -8
  89. package/{chunk-5RYBGBQH.js → chunk-IILMY4W4.js} +14 -9
  90. package/chunk-JA3ICVJY.js +271 -0
  91. package/{chunk-ZRSNONOB.js → chunk-JWXITTQB.js} +8 -3
  92. package/{chunk-JNKSDZFS.js → chunk-KEN3N2TN.js} +310 -66
  93. package/{chunk-LEC5ALIN.js → chunk-KEPOVMF4.js} +1 -1
  94. package/{chunk-UHJGXRJ4.js → chunk-KQSYAIZR.js} +3 -3
  95. package/{chunk-4VJAC32I.js → chunk-L5I543VB.js} +3 -2
  96. package/chunk-LKA64WH4.js +227 -0
  97. package/{chunk-6OQUPIQF.js → chunk-LVL6GFCM.js} +4 -4
  98. package/{chunk-UTV2AYEG.js → chunk-MAIITKBT.js} +2 -2
  99. package/chunk-MBG66ZBH.js +226 -0
  100. package/{chunk-YUA6OAH5.js → chunk-MDLS23JK.js} +2 -2
  101. package/{chunk-VL5KOY2C.js → chunk-MK2Q7ZJD.js} +67 -5
  102. package/{chunk-B7NJ3T4A.js → chunk-MS4NZNKI.js} +10 -10
  103. package/{chunk-3AKFVZ2I.js → chunk-MYHNBEXD.js} +3 -3
  104. package/{chunk-VZKUKCA6.js → chunk-MZLE5HQ3.js} +3673 -241
  105. package/{chunk-AZMYUSVF.js → chunk-N5Z2V73W.js} +1 -1
  106. package/chunk-NIZ2BXFD.js +526 -0
  107. package/{chunk-YPD3VJZW.js → chunk-NWP2OYOX.js} +20 -20
  108. package/{chunk-3FOQHGHN.js → chunk-O6J3OTOP.js} +4 -4
  109. package/{chunk-3RQVYR4B.js → chunk-OB6DVWPF.js} +197 -65
  110. package/{chunk-YWSEPJ7C.js → chunk-OBWT45ZU.js} +3 -3
  111. package/{chunk-5AQR3DGV.js → chunk-ODJ7BVSI.js} +80 -11
  112. package/{chunk-XJWWBO34.js → chunk-OJKUU3LP.js} +5 -7
  113. package/{chunk-GNDJKC4B.js → chunk-ON37YXGX.js} +29 -29
  114. package/{chunk-D5RCRX4A.js → chunk-P5ZJRTCH.js} +9415 -5169
  115. package/{chunk-6XIE5ZGI.js → chunk-PDCV7P5W.js} +1 -1
  116. package/{chunk-EZFQ6XRV.js → chunk-PJCIP64Z.js} +861 -59
  117. package/{chunk-GPO7FCEZ.js → chunk-PJVKMGPZ.js} +1222 -1719
  118. package/{chunk-CKAHAVMK.js → chunk-PPJYZRSQ.js} +40 -26
  119. package/chunk-QHEN7NZ7.js +46 -0
  120. package/{chunk-4KH4J3G5.js → chunk-QNWG52I4.js} +19 -7
  121. package/{chunk-YGILMZ7N.js → chunk-QVBXJNZ2.js} +1 -1
  122. package/chunk-RDH5CQ4T.js +1382 -0
  123. package/{chunk-C6KNNXWU.js → chunk-RGQ4UUWZ.js} +25 -2
  124. package/{chunk-OWYYDMGJ.js → chunk-S2NTVGA2.js} +4 -2
  125. package/{chunk-KC4XDTT3.js → chunk-SOF4OWDM.js} +6 -4
  126. package/{chunk-IAPCBNEE.js → chunk-SQYIK6HO.js} +1 -1
  127. package/{chunk-22CIEBYO.js → chunk-SVT62ULE.js} +50 -48
  128. package/{chunk-KIM6CLW5.js → chunk-SY3C4SQ7.js} +42 -15
  129. package/{chunk-JY5NGFFH.js → chunk-SYTHYBMI.js} +5 -5
  130. package/{chunk-6NSSLV67.js → chunk-T6DXNI6Z.js} +52 -50
  131. package/chunk-TLE77UJ5.js +230 -0
  132. package/{chunk-4VNS5WPM.js → chunk-U67V476Y.js} +1 -8
  133. package/{chunk-F7CI2ZC5.js → chunk-UAIHKQIA.js} +2 -1
  134. package/{chunk-MMNYUVLW.js → chunk-UB3D4TRQ.js} +11 -77
  135. package/{chunk-WPORQFYN.js → chunk-UVLYNWIE.js} +2 -2
  136. package/{chunk-YOIW77S2.js → chunk-UYOICCYG.js} +29 -19
  137. package/{chunk-4I7ERB7F.js → chunk-VREDDN25.js} +1 -1
  138. package/{chunk-JIT6FSXJ.js → chunk-WAE3GFCJ.js} +3 -3
  139. package/{chunk-IJXYFTV7.js → chunk-WI67URFP.js} +20 -20
  140. package/{chunk-7OCO4TDT.js → chunk-WJVYAO6P.js} +1 -1
  141. package/{chunk-T43B7LB2.js → chunk-WKGQSYTB.js} +1 -1
  142. package/{chunk-YJMRHHGY.js → chunk-WUUH4LWZ.js} +60 -30
  143. package/{chunk-PDGKOTO7.js → chunk-X7UF53VA.js} +33 -22
  144. package/{chunk-TY3TIUJK.js → chunk-XI2BWJM5.js} +65 -0
  145. package/{chunk-OOF4UPC5.js → chunk-XWVCYUUU.js} +16 -159
  146. package/{chunk-J5JTMQIA.js → chunk-YFLVRVYK.js} +1 -1
  147. package/{chunk-EYLGAEB4.js → chunk-YGMBIXCF.js} +132 -0
  148. package/chunk-YL3EFYL3.js +199 -0
  149. package/{chunk-MMA3LZ3W.js → chunk-YNIYE47Z.js} +1 -1
  150. package/{chunk-W4S457LU.js → chunk-YU4ZPWVF.js} +41 -5
  151. package/{chunk-NJR3WKVP.js → chunk-YWWDC3O7.js} +281 -159
  152. package/chunk-YZMNK53S.js +68 -0
  153. package/{chunk-FHU44LN3.js → chunk-Z2PITYZN.js} +2179 -552
  154. package/{chunk-FY7F4Q6X.js → chunk-Z4PCXPUE.js} +2 -2
  155. package/{cliAgentConfigHelpers-WJBZQTLW.js → cliAgentConfigHelpers-TKYL43MT.js} +15 -16
  156. package/{cliAuthorityBrokerClient-PM3U6Q6J.js → cliAuthorityBrokerClient-XHH7MH2P.js} +1 -1
  157. package/{cliAuthorityStoreDriver-TKLXNNTG.js → cliAuthorityStoreDriver-6FE3BJNB.js} +1 -1
  158. package/{cliEnvHelpers-BVYTMUPJ.js → cliEnvHelpers-VPSJ4XWC.js} +3 -3
  159. package/{cliExecutor-BWBF2MTI.js → cliExecutor-4MAX3PZL.js} +2 -2
  160. package/cliLocalAgentRecordReader-MHHD4T7R.js +90 -0
  161. package/{commandRegistry-VVMTPFAX.js → commandRegistry-5DA5UP7S.js} +106 -98
  162. package/{contentThunks-N52O67MI.js → contentThunks-5GUQ7FWJ.js} +47 -43
  163. package/{cooldownCommands-YXLWOXWR.js → cooldownCommands-X7P5M2V5.js} +5 -4
  164. package/{createAgentAutomationAction-ZC57YRSV.js → createAgentAutomationAction-UCLTHQRI.js} +51 -49
  165. package/{createDialogAction-VQW5WDYX.js → createDialogAction-UPN774AF.js} +46 -48
  166. package/{createPageAction-M5VDA7SC.js → createPageAction-JRQ2TA4O.js} +50 -48
  167. package/{cursorProvider-YGGNMVWX.js → cursorProvider-2RACMEMF.js} +1 -1
  168. package/{db-HUCI5R4G.js → db-CS4ZJQKV.js} +1 -1
  169. package/{dbSlice-HP7G4LX3.js → dbSlice-WNON7TOL.js} +17 -16
  170. package/{deleteFile-7VQGLK2V.js → deleteFile-Q3YDB4ML.js} +9 -9
  171. package/{desktopFolderProjects-SFY5EZS3.js → desktopFolderProjects-4POAMVJN.js} +2 -2
  172. package/{dialogCommands-JHMR2N2Y.js → dialogCommands-VRI7VCXH.js} +64 -57
  173. package/dialogNotifyCommand-6TMCX4D2.js +36 -0
  174. package/{dialogSlice-GRSVGDTF.js → dialogSlice-LFNVUSAN.js} +42 -40
  175. package/{dialogUsageCommand-7KCPYGHG.js → dialogUsageCommand-HTVPR2CX.js} +11 -10
  176. package/{docCreateCommands-F2K3UPSQ.js → docCreateCommands-AMPXMOX3.js} +61 -54
  177. package/{docDeleteCommands-XGXB5RFT.js → docDeleteCommands-I5WFAEHP.js} +63 -57
  178. package/{docReadCommands-7HWZZV6J.js → docReadCommands-X53ELNIE.js} +61 -54
  179. package/{docStore-KNZK6Y2G.js → docStore-2VAWVLWH.js} +21 -20
  180. package/{docUpdateCommands-OZZ7NQII.js → docUpdateCommands-6QPNDC7M.js} +64 -57
  181. package/{fetchMessages-M3QU7ZCQ.js → fetchMessages-TQEUZD7H.js} +8 -7
  182. package/{getPricing-2MNMXEVG.js → getPricing-MB2GBXOK.js} +6 -6
  183. package/{handleSendMessageAction-SHIH74GJ.js → handleSendMessageAction-AAJOHXOB.js} +193 -301
  184. package/{hostCredentialCreate-X64WK4JD.js → hostCredentialCreate-GLMJ22M6.js} +123 -114
  185. package/index.js +29 -29
  186. package/{keys-BEGDOTRL.js → keys-RWF7UCB4.js} +5 -4
  187. package/legacyMigration-TF4SYJCZ.js +19 -0
  188. package/{lib-5KKIBFIT.js → lib-OT5OTXRU.js} +7087 -6664
  189. package/{localDialogRead-XRLAH4CZ.js → localDialogRead-SVTPA5GY.js} +3 -3
  190. package/{localFirstLog-DHNOY2NA.js → localFirstLog-OIETGK66.js} +1 -1
  191. package/localRecall-2J6QPOK2.js +15 -0
  192. package/{localRuntimeAdapter-A7K3ABA6.js → localRuntimeAdapter-BMP57P42.js} +119 -110
  193. package/{localRuntimeAuthority-OYH4AE4G.js → localRuntimeAuthority-IBJAT62G.js} +1 -1
  194. package/{localRuntimeDb-VBIMCWUC.js → localRuntimeDb-N7KHDXS2.js} +2 -2
  195. package/{machineCommands-DE3MR7CJ.js → machineCommands-3MLIAK5Q.js} +128 -119
  196. package/{machineInfo-UKPTZO5Y.js → machineInfo-LWHTEBHJ.js} +1 -1
  197. package/machineWsRunDispatch-FKIGROQF.js +191 -0
  198. package/{memberThunks-7WJAY5V6.js → memberThunks-ZGLZ36PK.js} +29 -28
  199. package/{memoryCommands-ASCE5STX.js → memoryCommands-5WC3T66U.js} +4 -4
  200. package/models-ULVWLSQ6.js +9 -0
  201. package/{oauthTokenStore-OEERZFUC.js → oauthTokenStore-RUYNYALS.js} +1 -1
  202. package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-4IC3Y4C6.js} +4 -4
  203. package/overlay-THLKYIWY.js +11 -0
  204. package/package.json +2 -2
  205. package/{pdf-U6KSUEZZ.js → pdf-KE3QI2V7.js} +1 -1
  206. package/{processSpawn-ZU5QFM43.js → processSpawn-6GEO77KV.js} +1 -1
  207. package/{profileConfig-KN3N2BLF.js → profileConfig-KOWK4HOG.js} +1 -1
  208. package/{projectArchive-GGL5HLMD.js → projectArchive-HK63GMF4.js} +52 -50
  209. package/{providerPresetApply-YXGV6NXB.js → providerPresetApply-OIFQ73LH.js} +19 -12
  210. package/{providerRegistry-S6UL6UNA.js → providerRegistry-KZ3SDZ3D.js} +10 -10
  211. package/{read-4VZQODSN.js → read-MRQHJMJ2.js} +10 -10
  212. package/{readDocTool-AVD32RUJ.js → readDocTool-4BGTXTXA.js} +2 -2
  213. package/{readlineWorkspace-XKYKNL2I.js → readlineWorkspace-AKAHSCNY.js} +6505 -4634
  214. package/{removeDialogAgentAction-FKL4BYMR.js → removeDialogAgentAction-B6H7DXFM.js} +23 -22
  215. package/{runAgentClientLoop-V7E2WBVM.js → runAgentClientLoop-UVAWGEON.js} +81 -79
  216. package/{runtimeDoctorCommands-QAI3MBKQ.js → runtimeDoctorCommands-FW6XKDUG.js} +12 -12
  217. package/{runtimeModeArgs-2Y7BALTO.js → runtimeModeArgs-X7DL7PUN.js} +1 -1
  218. package/secretCommands-LJXOOYA7.js +24 -0
  219. package/{setDialogExtraReferencesAction-TLIOLWWI.js → setDialogExtraReferencesAction-EVCY3TRW.js} +22 -21
  220. package/{setPrimaryDialogAgentAction-2OLWRFYR.js → setPrimaryDialogAgentAction-KPFVPHCJ.js} +23 -22
  221. package/{settingThunks-UGBPCNYF.js → settingThunks-ENOAK2WV.js} +97 -88
  222. package/{skillDiscovery-XKHROSH2.js → skillDiscovery-B5V23AXP.js} +4 -4
  223. package/{skillSummaryMarker-42HKSXYY.js → skillSummaryMarker-62UW7HI7.js} +1 -1
  224. package/{slateToRenderMarkdown-Y5IYN73U.js → slateToRenderMarkdown-R3X74MCX.js} +1 -1
  225. package/{slateUtils-NGV2NMKM.js → slateUtils-ESQAJ6RN.js} +1 -1
  226. package/{spaceCommands-4KSLKVNF.js → spaceCommands-DTTNAS2L.js} +61 -53
  227. package/store-JRVN62NM.js +46 -0
  228. package/{streamAgentChatTurn-7FR7X2NU.js → streamAgentChatTurn-R5UY25VB.js} +875 -618
  229. package/{switchDialogAgentAction-UZSAG2N5.js → switchDialogAgentAction-SZ44XDRY.js} +21 -20
  230. package/{tableCommands-MP6VFSVT.js → tableCommands-HITDSLHS.js} +10 -10
  231. package/tombstones-FQQMEDOW.js +32 -0
  232. package/{toolApiClient-HGNO53TC.js → toolApiClient-OGQEBQVX.js} +4 -4
  233. package/{tools-ZLKCC25W.js → tools-HWFG6GMJ.js} +75 -74
  234. package/tuiSummaryLlmCaller-HQQZAMYF.js +44 -0
  235. package/{updateCommands-4744PL3P.js → updateCommands-RJVCRSBP.js} +10 -8
  236. package/{updateDialogTitleAction-U53ZT7PJ.js → updateDialogTitleAction-KNPOAMVS.js} +48 -46
  237. package/{usageCommand-F4IPVMIZ.js → usageCommand-FWZCB7AM.js} +11 -10
  238. package/{usageRebuildCommand-HAW2AD5N.js → usageRebuildCommand-SP2BLNJU.js} +12 -11
  239. package/userDataMerge-HT2ZVHBJ.js +13 -0
  240. package/{windowsSelfUpdate-XSQVF2GK.js → windowsSelfUpdate-KERHIAB4.js} +3 -3
  241. package/{workloadLifecycle-4BEQHMSD.js → workloadLifecycle-DYNEYHV5.js} +7 -6
  242. package/agentRecordCommands-L3QQ7HZ4.js +0 -167
  243. package/agentRunCommand-2IFGQHCO.js +0 -196
  244. package/chunk-3CGG2PAL.js +0 -594
  245. package/chunk-5XBUWM6I.js +0 -89
  246. package/chunk-BFM34N54.js +0 -842
  247. package/chunk-CJEIOP3E.js +0 -0
  248. package/chunk-CZM5YTZ7.js +0 -977
  249. package/chunk-EYUBHHFB.js +0 -636
  250. package/chunk-JTDORD5P.js +0 -415
  251. package/chunk-NRFKLKRU.js +0 -339
  252. package/chunk-VPAZOH2D.js +0 -115
  253. package/chunk-WJZOQR2J.js +0 -151
  254. package/chunk-ZCWRMUWT.js +0 -89
  255. package/dist-M676ULYG.js +0 -7314
  256. package/machineWsRunDispatch-R26P5V36.js +0 -182
  257. package/models-PJBE6JDV.js +0 -9
  258. package/tuiSummaryLlmCaller-WC54MVGP.js +0 -160
  259. package/{chunk-WACI5I6V.js → chunk-2THCNKE4.js} +3 -3
  260. package/{chunk-2QHFH3DR.js → chunk-47ITIXO7.js} +6 -6
  261. package/{chunk-GOO6G4PY.js → chunk-CKG3PRZ7.js} +0 -0
  262. package/{chunk-OQHIVPG4.js → chunk-SNBZZPYH.js} +3 -3
  263. package/{chunk-AETZ7AD6.js → chunk-W6RFEDN4.js} +3 -3
@@ -1,76 +1,83 @@
1
- // packages/ai/tools/agent/quotaCircuitBreaker.ts
2
- var QUOTA_ERROR_PATTERNS = [
3
- /429/,
4
- /quota/i,
5
- /access_terminated_error/i,
6
- /(?:weekly|monthly)\s*(?:\([^)]*\)\s*)?usage\s+limit/i,
7
- /rate\s*limit/i,
8
- /too\s*many\s*requests/i,
9
- /额度/,
10
- /上限/,
11
- /用尽/,
12
- /CliProviderQuotaError/i
13
- ];
14
- function isCliProviderQuotaErrorShape(error) {
15
- if (!error || typeof error !== "object") return false;
16
- const e = error;
17
- return e.name === "CliProviderQuotaError" || typeof e.message === "string" && e.message.startsWith("[QUOTA_LIMITED:");
18
- }
19
- function isQuotaExhaustedError(error) {
20
- if (!error) return false;
21
- if (isCliProviderQuotaErrorShape(error)) return true;
22
- if (error instanceof Error) {
23
- return QUOTA_ERROR_PATTERNS.some((pattern) => pattern.test(error.message));
24
- }
25
- if (typeof error === "string") {
26
- return QUOTA_ERROR_PATTERNS.some((pattern) => pattern.test(error));
27
- }
28
- const maybeStatus = error.status;
29
- const maybeStatusCode = error.statusCode;
30
- const status = typeof maybeStatus === "number" ? maybeStatus : maybeStatusCode;
31
- if (status === 429) return true;
32
- if (status === 403) {
33
- const message = extractMessage(error);
34
- return QUOTA_ERROR_PATTERNS.some((pattern) => pattern.test(message));
1
+ import {
2
+ parseResetsInMs
3
+ } from "./chunk-EWQ3HGNZ.js";
4
+
5
+ // packages/ai/agent/quotaSnapshot.ts
6
+ function normalizeHeaders(headers) {
7
+ const out = {};
8
+ if (!headers) return out;
9
+ if (typeof headers.get === "function") {
10
+ headers.forEach((value, key) => {
11
+ out[key.toLowerCase()] = value;
12
+ });
13
+ return out;
14
+ }
15
+ for (const [key, value] of Object.entries(headers)) {
16
+ if (typeof value === "string") out[key.toLowerCase()] = value;
17
+ }
18
+ return out;
19
+ }
20
+ function readNumber(raw) {
21
+ if (typeof raw === "number" && Number.isFinite(raw)) return raw >= 0 ? raw : void 0;
22
+ if (typeof raw === "string") {
23
+ const n = Number(raw.trim());
24
+ if (Number.isFinite(n) && n >= 0) return n;
35
25
  }
36
- return false;
26
+ return void 0;
37
27
  }
38
- function extractMessage(error) {
39
- if (typeof error === "string") return error;
40
- if (error instanceof Error) return error.message;
41
- if (error && typeof error === "object") {
42
- const m = error.message;
43
- return typeof m === "string" ? m : "";
28
+ function readResetAt(raw, now) {
29
+ if (typeof raw === "number" && Number.isFinite(raw)) {
30
+ if (raw >= 1e12) return raw;
31
+ if (raw >= 1e9) return raw * 1e3;
32
+ return raw > 0 ? now + raw * 1e3 : now;
44
33
  }
45
- return "";
46
- }
47
- function parseResetsInMs(text) {
34
+ if (typeof raw !== "string") return void 0;
35
+ const text = raw.trim();
48
36
  if (!text) return void 0;
49
- const sanitized = text.replace(/\btrace[\s_-]?id\b[^)\n]*/gi, " ").replace(/\b[0-9a-f]{16,}\b/gi, " ");
50
- const unitMs = (n, unit) => {
51
- if (/^d/.test(unit)) return n * 24 * 3600 * 1e3;
52
- if (/^h/.test(unit)) return n * 3600 * 1e3;
53
- if (/^m/.test(unit)) return n * 60 * 1e3;
54
- if (/^s/.test(unit)) return n * 1e3;
55
- return NaN;
56
- };
57
- const re = /(\d+)\s*(d(?:ay|ays)?|h(?:r|rs|our|ours)?|m(?:in|ins|inute|inutes)?|s(?:ec|ecs|econd|econds)?)/gi;
58
- const MAX_SINGLE_MATCH_MS = 7 * 24 * 3600 * 1e3;
59
- let totalMs = 0;
60
- let matched = false;
61
- let m;
62
- while ((m = re.exec(sanitized)) !== null) {
63
- const ms = unitMs(Number(m[1]), m[2]);
64
- if (!Number.isFinite(ms) || ms > MAX_SINGLE_MATCH_MS) continue;
65
- totalMs += ms;
66
- matched = true;
67
- }
68
- return matched ? totalMs : void 0;
69
- }
70
- var DEFAULT_QUOTA_BREAKER_MS = 6 * 3600 * 1e3;
71
- var DEFAULT_AGENT_NOT_FOUND_BREAKER_MS = 15 * 60 * 1e3;
72
-
73
- // packages/ai/agent/quotaSnapshot.ts
37
+ const msMatch = /^(\d+(?:\.\d+)?)ms$/i.exec(text);
38
+ let dur;
39
+ if (msMatch) {
40
+ dur = Number(msMatch[1]) / 1e3;
41
+ } else {
42
+ const m = /^(?:(\d+(?:\.\d+)?)h)?(?:(\d+(?:\.\d+)?)m)?(?:(\d+(?:\.\d+)?)s)?$/i.exec(text);
43
+ dur = m && (m[1] || m[2] || m[3]) ? Number(m[1] ?? 0) * 3600 + Number(m[2] ?? 0) * 60 + Number(m[3] ?? 0) : NaN;
44
+ }
45
+ if (Number.isFinite(dur)) return now + dur * 1e3;
46
+ const n = Number(text);
47
+ if (Number.isFinite(n)) {
48
+ if (n >= 1e12) return n;
49
+ if (n >= 1e9) return n * 1e3;
50
+ return n > 0 ? now + n * 1e3 : now;
51
+ }
52
+ const parsed = Date.parse(text);
53
+ return Number.isFinite(parsed) ? parsed : void 0;
54
+ }
55
+ function readUtilization(raw) {
56
+ const n = readNumber(raw);
57
+ if (n === void 0) return void 0;
58
+ return n > 1 ? n / 100 : n;
59
+ }
60
+ function mergeWindow(into, win) {
61
+ const existing = into.get(win.scope);
62
+ if (!existing) {
63
+ into.set(win.scope, { ...win });
64
+ return;
65
+ }
66
+ if (win.resetAt !== void 0) {
67
+ existing.resetAt = existing.resetAt === void 0 ? win.resetAt : Math.max(existing.resetAt, win.resetAt);
68
+ }
69
+ if (win.remaining !== void 0) {
70
+ existing.remaining = existing.remaining === void 0 ? win.remaining : Math.min(existing.remaining, win.remaining);
71
+ }
72
+ if (win.limit !== void 0) {
73
+ existing.limit = existing.limit === void 0 ? win.limit : Math.min(existing.limit, win.limit);
74
+ }
75
+ if (win.utilization !== void 0) {
76
+ existing.utilization = existing.utilization === void 0 ? win.utilization : Math.max(existing.utilization, win.utilization);
77
+ }
78
+ if (win.unit !== void 0 && existing.unit === void 0) existing.unit = win.unit;
79
+ existing.source = win.source;
80
+ }
74
81
  function parseQuotaWindowScope(scope) {
75
82
  const matched = /^(gemini|3p)-(.+)$/.exec(scope);
76
83
  return matched ? { family: matched[1], period: matched[2] } : { period: scope };
@@ -95,6 +102,181 @@ function isQuotaWindowExpired(window, now) {
95
102
  const resetAt = window?.resetAt;
96
103
  return typeof resetAt === "number" && Number.isFinite(resetAt) && resetAt <= now;
97
104
  }
105
+ function scanOpenAiRateLimitHeaders(headers, now, out) {
106
+ for (const kind of ["requests", "tokens"]) {
107
+ const remaining = readNumber(headers[`x-ratelimit-remaining-${kind}`]);
108
+ const limit = readNumber(headers[`x-ratelimit-limit-${kind}`]);
109
+ const resetAt = readResetAt(headers[`x-ratelimit-reset-${kind}`], now);
110
+ if (remaining === void 0 && limit === void 0 && resetAt === void 0) continue;
111
+ mergeWindow(out, {
112
+ scope: kind,
113
+ ...remaining !== void 0 ? { remaining } : {},
114
+ ...limit !== void 0 ? { limit } : {},
115
+ ...resetAt !== void 0 ? { resetAt } : {},
116
+ unit: kind,
117
+ source: `x-ratelimit-*-${kind}`
118
+ });
119
+ }
120
+ const genericRemaining = readNumber(headers["x-ratelimit-remaining"]);
121
+ const genericLimit = readNumber(headers["x-ratelimit-limit"]);
122
+ const genericReset = readResetAt(headers["x-ratelimit-reset"], now);
123
+ if (genericRemaining !== void 0 || genericLimit !== void 0 || genericReset !== void 0) {
124
+ mergeWindow(out, {
125
+ scope: "requests",
126
+ ...genericRemaining !== void 0 ? { remaining: genericRemaining } : {},
127
+ ...genericLimit !== void 0 ? { limit: genericLimit } : {},
128
+ ...genericReset !== void 0 ? { resetAt: genericReset } : {},
129
+ unit: "requests",
130
+ source: "x-ratelimit"
131
+ });
132
+ }
133
+ }
134
+ function scanAnthropicUnifiedHeaders(headers, now, out) {
135
+ for (const scope of ["5h", "7d"]) {
136
+ const utilization = readUtilization(
137
+ headers[`anthropic-ratelimit-unified-${scope}-utilization`]
138
+ );
139
+ const resetAt = readResetAt(
140
+ headers[`anthropic-ratelimit-unified-${scope}-reset`],
141
+ now
142
+ );
143
+ if (utilization === void 0 && resetAt === void 0) continue;
144
+ mergeWindow(out, {
145
+ scope,
146
+ ...utilization !== void 0 ? { utilization } : {},
147
+ ...resetAt !== void 0 ? { resetAt } : {},
148
+ source: `anthropic-ratelimit-unified-${scope}`
149
+ });
150
+ }
151
+ }
152
+ function scanGoogleQuotaHeaders(headers, now, out) {
153
+ const genericReset = readResetAt(headers["x-goog-quota-reset"], now);
154
+ const dims = [
155
+ { prefix: "x-goog-quota-user-", scope: "user" },
156
+ { prefix: "x-goog-quota-project-", scope: "project" }
157
+ ];
158
+ for (const { prefix, scope } of dims) {
159
+ const remaining = readNumber(headers[`${prefix}remaining`]);
160
+ const limit = readNumber(headers[`${prefix}limit`]);
161
+ const resetAt = readResetAt(headers[`${prefix}reset`], now) ?? genericReset;
162
+ if (remaining === void 0 && limit === void 0 && resetAt === void 0) continue;
163
+ mergeWindow(out, {
164
+ scope,
165
+ ...remaining !== void 0 ? { remaining } : {},
166
+ ...limit !== void 0 ? { limit } : {},
167
+ ...resetAt !== void 0 ? { resetAt } : {},
168
+ source: `${prefix}*`
169
+ });
170
+ }
171
+ }
172
+ function scanSub2ApiHeaders(headers, now, out) {
173
+ const FIELD_RE = /^x-sub2api-quota(?:-([a-z0-9][a-z0-9._:-]*))?-(remaining|limit|reset)$/;
174
+ const groups = /* @__PURE__ */ new Map();
175
+ for (const [name, value] of Object.entries(headers)) {
176
+ const m = FIELD_RE.exec(name);
177
+ if (!m) continue;
178
+ const scope = m[1] ?? "sub2api";
179
+ const group = groups.get(scope) ?? {};
180
+ if (m[2] === "reset") {
181
+ const at = readResetAt(value, now);
182
+ if (at !== void 0) group.resetAt = at;
183
+ } else if (m[2] === "remaining") {
184
+ const n = readNumber(value);
185
+ if (n !== void 0) group.remaining = n;
186
+ } else if (m[2] === "limit") {
187
+ const n = readNumber(value);
188
+ if (n !== void 0) group.limit = n;
189
+ }
190
+ groups.set(scope, group);
191
+ }
192
+ for (const [scope, g] of groups) {
193
+ mergeWindow(out, {
194
+ scope,
195
+ ...g.remaining !== void 0 ? { remaining: g.remaining } : {},
196
+ ...g.limit !== void 0 ? { limit: g.limit } : {},
197
+ ...g.resetAt !== void 0 ? { resetAt: g.resetAt } : {},
198
+ source: "x-sub2api-quota"
199
+ });
200
+ }
201
+ }
202
+ function scanBody(body, now, out) {
203
+ if (!body || typeof body !== "object") return;
204
+ const root = body;
205
+ const error = root.error && typeof root.error === "object" ? root.error : void 0;
206
+ for (const holder of [root, error]) {
207
+ const quota = holder?.quota;
208
+ if (!quota || typeof quota !== "object") continue;
209
+ const q = quota;
210
+ const remaining = readNumber(q.remaining ?? q.remaining_amount);
211
+ const limit = readNumber(q.limit ?? q.total ?? q.quota);
212
+ const resetAt = readResetAt(
213
+ q.reset_at ?? q.resets_at ?? q.resetAt ?? q.resetTime ?? q.reset_time,
214
+ now
215
+ );
216
+ const unit = typeof q.unit === "string" && q.unit ? q.unit : void 0;
217
+ if (remaining === void 0 && limit === void 0 && resetAt === void 0) continue;
218
+ const scope = typeof q.scope === "string" && q.scope ? q.scope : "daily";
219
+ mergeWindow(out, {
220
+ scope,
221
+ ...remaining !== void 0 ? { remaining } : {},
222
+ ...limit !== void 0 ? { limit } : {},
223
+ ...resetAt !== void 0 ? { resetAt } : {},
224
+ ...unit ? { unit } : {},
225
+ source: "body.quota"
226
+ });
227
+ }
228
+ const details = error?.details ?? root.details;
229
+ if (!Array.isArray(details)) return;
230
+ let retryResetAt;
231
+ const quotaScopes = /* @__PURE__ */ new Set();
232
+ for (const item of details) {
233
+ if (!item || typeof item !== "object") continue;
234
+ const record = item;
235
+ const type = typeof record["@type"] === "string" ? record["@type"] : "";
236
+ if (type.includes("RetryInfo")) {
237
+ const at = readResetAt(record.retryDelay ?? record.retry_delay, now);
238
+ if (at !== void 0) retryResetAt = retryResetAt === void 0 ? at : Math.max(retryResetAt, at);
239
+ }
240
+ if (type.includes("QuotaFailure") && Array.isArray(record.violations)) {
241
+ for (const v of record.violations) {
242
+ const metric = v && typeof v === "object" && typeof v.quotaMetric === "string" ? v.quotaMetric : void 0;
243
+ if (metric) quotaScopes.add(`model:${metric}`);
244
+ }
245
+ }
246
+ }
247
+ if (retryResetAt !== void 0 || quotaScopes.size > 0) {
248
+ if (quotaScopes.size === 0) {
249
+ mergeWindow(out, {
250
+ scope: "user",
251
+ ...retryResetAt !== void 0 ? { resetAt: retryResetAt } : {},
252
+ source: "body.details.RetryInfo"
253
+ });
254
+ }
255
+ for (const scope of quotaScopes) {
256
+ mergeWindow(out, {
257
+ scope,
258
+ ...retryResetAt !== void 0 ? { resetAt: retryResetAt } : {},
259
+ source: "body.details.QuotaFailure"
260
+ });
261
+ }
262
+ }
263
+ }
264
+ function extractQuotaSnapshot(provider, status, headers, body, now) {
265
+ try {
266
+ if (!Number.isFinite(now)) return void 0;
267
+ const bag = normalizeHeaders(headers);
268
+ const windows = /* @__PURE__ */ new Map();
269
+ scanOpenAiRateLimitHeaders(bag, now, windows);
270
+ scanAnthropicUnifiedHeaders(bag, now, windows);
271
+ scanGoogleQuotaHeaders(bag, now, windows);
272
+ scanSub2ApiHeaders(bag, now, windows);
273
+ scanBody(body, now, windows);
274
+ if (windows.size === 0) return void 0;
275
+ return { windows: [...windows.values()], observedAt: now };
276
+ } catch {
277
+ return void 0;
278
+ }
279
+ }
98
280
  function findTightestQuotaWindow(quota, now = Date.now(), options) {
99
281
  const windows = selectQuotaWindowsForModel(quota, now, options?.model);
100
282
  if (windows.length === 0) return void 0;
@@ -321,7 +503,7 @@ function readResetTimestamp(body, now) {
321
503
  }
322
504
  }
323
505
  const details = !Array.isArray(error.details) && error.details && typeof error.details === "object" ? error.details : void 0;
324
- const raw = error.resets_at ?? error.resetsAt ?? details?.resets_at ?? details?.resetsAt;
506
+ const raw = error.resets_at ?? error.resetsAt ?? error.reset_at ?? error.resetAt ?? details?.resets_at ?? details?.resetsAt ?? details?.reset_at ?? details?.resetAt;
325
507
  if (typeof raw === "number" && Number.isFinite(raw)) {
326
508
  return raw > 1e12 ? raw : raw * 1e3;
327
509
  }
@@ -421,18 +603,6 @@ function resolveAvailabilityAction(status, body, now, headers) {
421
603
  function mergeAvailabilityDeadline(currentDeadline, nextAvailableAt) {
422
604
  return typeof currentDeadline === "number" && Number.isFinite(currentDeadline) ? Math.max(currentDeadline, nextAvailableAt) : nextAvailableAt;
423
605
  }
424
- var PROBE_INTERVAL_MS = 10 * 60 * 1e3;
425
- function resolveCooldownGate(input, now) {
426
- const nextAvailableAt = input.nextAvailableAt;
427
- if (typeof nextAvailableAt !== "number" || !Number.isFinite(nextAvailableAt) || nextAvailableAt <= now) {
428
- return "open";
429
- }
430
- const lastProbeAt = input.lastProbeAt;
431
- if (typeof lastProbeAt !== "number" || !Number.isFinite(lastProbeAt)) {
432
- return "probe";
433
- }
434
- return now - lastProbeAt >= PROBE_INTERVAL_MS ? "probe" : "blocked";
435
- }
436
606
  function isPublicOrSystemAgentRecord(agent) {
437
607
  if (!agent || typeof agent !== "object") return false;
438
608
  for (const keyField of ["agentKey", "key", "id", "dbKey", "privateKey"]) {
@@ -552,8 +722,8 @@ function inspectQuotaWindowExhaustion(window, now) {
552
722
  } else if (typeof w.resets_at === "number" && Number.isFinite(w.resets_at)) {
553
723
  resetAt = w.resets_at >= 1e12 ? w.resets_at : w.resets_at * 1e3;
554
724
  }
555
- const hasResetAt = typeof resetAt === "number" && Number.isFinite(resetAt);
556
- if (hasResetAt && resetAt <= now) {
725
+ const resetAtIsFinite = typeof resetAt === "number" && Number.isFinite(resetAt);
726
+ if (resetAtIsFinite && resetAt !== void 0 && resetAt <= now) {
557
727
  return {
558
728
  isExhausted: true,
559
729
  isActive: false,
@@ -564,7 +734,7 @@ function inspectQuotaWindowExhaustion(window, now) {
564
734
  utilizationHigh: isHigh
565
735
  };
566
736
  }
567
- if (hasResetAt && resetAt > now) {
737
+ if (resetAtIsFinite && resetAt !== void 0 && resetAt > now) {
568
738
  return {
569
739
  isExhausted: true,
570
740
  isActive: true,
@@ -622,7 +792,7 @@ function classifyFailureSubclass(input, now = Date.now()) {
622
792
  } else if (input && typeof input === "object") {
623
793
  const rec = input;
624
794
  status = typeof rec.status === "number" ? rec.status : typeof rec.statusCode === "number" ? rec.statusCode : void 0;
625
- rawMessage = typeof rec.message === "string" ? rec.message : typeof rec.message === "string" ? rec.message : "";
795
+ rawMessage = typeof rec.message === "string" ? rec.message : "";
626
796
  body = rec.body ?? ("status" in rec || "message" in rec ? void 0 : input);
627
797
  headers = rec.headers;
628
798
  quota = rec.quota;
@@ -663,8 +833,7 @@ function classifyFailureSubclass(input, now = Date.now()) {
663
833
  }
664
834
 
665
835
  export {
666
- QUOTA_ERROR_PATTERNS,
667
- isQuotaExhaustedError,
836
+ extractQuotaSnapshot,
668
837
  formatQuotaSummary,
669
838
  DEFAULT_PROVIDER_RETRY_MS,
670
839
  shouldClearCooldownFromQuota,
@@ -674,8 +843,6 @@ export {
674
843
  isCapacitySaturatedRateLimit,
675
844
  resolveAvailabilityAction,
676
845
  mergeAvailabilityDeadline,
677
- PROBE_INTERVAL_MS,
678
- resolveCooldownGate,
679
846
  resolveCredentialCandidateKeys,
680
847
  resolveCredentialKeyWithFallback,
681
848
  classifyFailureSubclass
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  isTombstoneRecord
3
- } from "./chunk-D2MDMY2M.js";
3
+ } from "./chunk-BV3FLP2L.js";
4
+ import {
5
+ dialogMessageRange
6
+ } from "./chunk-OJKUU3LP.js";
4
7
  import {
5
8
  isRecord
6
9
  } from "./chunk-KUG52IAP.js";
7
- import {
8
- dialogMessageRange
9
- } from "./chunk-XJWWBO34.js";
10
10
 
11
11
  // packages/chat/messages/fetchMessages.ts
12
12
  function isUnboundedMessageLimit(limit) {
@@ -0,0 +1,99 @@
1
+ import {
2
+ BUILTIN_NOLO_AGENT_KEY,
3
+ builtinAgentCatalogEntryById,
4
+ builtinRuntimeFallbackEntries,
5
+ isBuiltinPlatformAgentKey,
6
+ parseBuiltinPlatformAgentId
7
+ } from "./chunk-3IK6ILVW.js";
8
+ import {
9
+ publicAgentKey
10
+ } from "./chunk-M2EJHDJP.js";
11
+
12
+ // packages/agent-runtime/builtinPlatformAgentRoute.ts
13
+ function resolveBuiltinAgentRuntimeFields(agentKey) {
14
+ if (!isBuiltinPlatformAgentKey(agentKey)) return null;
15
+ const entry = builtinAgentCatalogEntryById(parseBuiltinPlatformAgentId(agentKey));
16
+ if (!entry) return null;
17
+ return { provider: entry.provider, model: entry.model };
18
+ }
19
+
20
+ // packages/agent-runtime/builtinPlatformAgentConfigs.ts
21
+ function buildConfig(e) {
22
+ const key = publicAgentKey(e.id);
23
+ const rawRecord = {
24
+ dbKey: key,
25
+ isPublic: true,
26
+ provider: e.provider,
27
+ model: e.model,
28
+ apiSource: e.apiSource ?? "platform",
29
+ useServerProxy: e.useServerProxy ?? true
30
+ };
31
+ if (e.hasImageOutput) rawRecord.hasImageOutput = true;
32
+ if (e.imageModel) rawRecord.imageModel = e.imageModel;
33
+ if (e.imageWorkflow) rawRecord.imageWorkflow = e.imageWorkflow;
34
+ if (e.imageConfig) rawRecord.imageConfig = e.imageConfig;
35
+ return {
36
+ key,
37
+ name: e.name,
38
+ provider: e.provider,
39
+ model: e.model,
40
+ apiSource: e.apiSource ?? "platform",
41
+ useServerProxy: e.useServerProxy ?? true,
42
+ rawRecord
43
+ };
44
+ }
45
+ var BUILTIN_PLATFORM_AGENT_CONFIGS = Object.fromEntries(
46
+ builtinRuntimeFallbackEntries().map((e) => [publicAgentKey(e.id), buildConfig(e)])
47
+ );
48
+ function resolveBuiltinPlatformAgentConfig(agentRef) {
49
+ return BUILTIN_PLATFORM_AGENT_CONFIGS[agentRef] ?? null;
50
+ }
51
+ function resolveBuiltinPlatformAgentRecord(agentRef) {
52
+ const config = resolveBuiltinPlatformAgentConfig(agentRef);
53
+ if (!config) return null;
54
+ return {
55
+ ...config.rawRecord,
56
+ dbKey: agentRef,
57
+ ...config.name ? { name: config.name } : {}
58
+ };
59
+ }
60
+ var BUILTIN_RUNTIME_EXTRA_OVERRIDES = {
61
+ [BUILTIN_NOLO_AGENT_KEY]: { reasoningEffort: "max" }
62
+ };
63
+ function applyBuiltinAgentRuntimeOverride(agentKey, record) {
64
+ const fields = resolveBuiltinAgentRuntimeFields(agentKey);
65
+ if (!fields) return record;
66
+ const extraFields = BUILTIN_RUNTIME_EXTRA_OVERRIDES[agentKey];
67
+ const extraNeedsOverride = (target) => {
68
+ if (extraFields == null || target == null || typeof target !== "object") {
69
+ return false;
70
+ }
71
+ const flat = target;
72
+ return Object.entries(extraFields).some(([key, value]) => flat[key] !== value);
73
+ };
74
+ const current = record;
75
+ const rawNeedsOverride = current.rawRecord != null && (current.rawRecord.provider !== fields.provider || current.rawRecord.model !== fields.model || extraNeedsOverride(current.rawRecord));
76
+ if (current.provider === fields.provider && current.model === fields.model && !rawNeedsOverride && !extraNeedsOverride(record)) {
77
+ return record;
78
+ }
79
+ return {
80
+ ...record,
81
+ provider: fields.provider,
82
+ model: fields.model,
83
+ ...extraFields ?? {},
84
+ ...current.rawRecord ? {
85
+ rawRecord: {
86
+ ...current.rawRecord,
87
+ provider: fields.provider,
88
+ model: fields.model,
89
+ ...extraFields ?? {}
90
+ }
91
+ } : {}
92
+ };
93
+ }
94
+
95
+ export {
96
+ resolveBuiltinPlatformAgentConfig,
97
+ resolveBuiltinPlatformAgentRecord,
98
+ applyBuiltinAgentRuntimeOverride
99
+ };
@@ -1,6 +1,3 @@
1
- import {
2
- getModelPricing
3
- } from "./chunk-INN4LTAJ.js";
4
1
  import {
5
2
  PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID,
6
3
  PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID,
@@ -15,22 +12,25 @@ import {
15
12
  builtinAgentCatalogEntryById,
16
13
  catalogReleasedAtMs,
17
14
  isRetiredCatalogEntry
18
- } from "./chunk-LOEO7LRC.js";
15
+ } from "./chunk-3IK6ILVW.js";
19
16
  import {
20
17
  parsePublicAgentId,
21
18
  parseSystemAgentId,
22
19
  publicAgentKey
23
20
  } from "./chunk-M2EJHDJP.js";
21
+ import {
22
+ getModelPricing
23
+ } from "./chunk-FJK526XH.js";
24
24
  import {
25
25
  getModelConfig
26
- } from "./chunk-SM3NSZJV.js";
26
+ } from "./chunk-2UCBGYO4.js";
27
27
  import {
28
28
  isRecord
29
29
  } from "./chunk-KUG52IAP.js";
30
30
  import {
31
31
  isNoloHostedProvider,
32
32
  isPlatformHostedImageModel
33
- } from "./chunk-GOO6G4PY.js";
33
+ } from "./chunk-CKG3PRZ7.js";
34
34
 
35
35
  // packages/core/publicAgentSeeds.ts
36
36
  var AGENT_SEED_DEFAULTS = {
@@ -4,7 +4,10 @@ import {
4
4
  resolvePlatformHostedCredentialProvider,
5
5
  resolvePlatformProxyChatGatewayEndpoint,
6
6
  resolvePlatformResponsesEndpoint
7
- } from "./chunk-YUA6OAH5.js";
7
+ } from "./chunk-MDLS23JK.js";
8
+ import {
9
+ asTrimmedString
10
+ } from "./chunk-3EUW3WEO.js";
8
11
  import {
9
12
  CLI_PROVIDER_VALUES
10
13
  } from "./chunk-JRTNUU5Z.js";
@@ -12,19 +15,16 @@ import {
12
15
  CLIENT_VERSION_TOO_OLD_CODE,
13
16
  buildClientVersionGateErrorDetail,
14
17
  evaluatePlatformHostedClientVersionGate
15
- } from "./chunk-GOO6G4PY.js";
18
+ } from "./chunk-CKG3PRZ7.js";
16
19
  import {
17
20
  asTrimmedLowercaseString
18
21
  } from "./chunk-QSJ3HFEF.js";
19
- import {
20
- normalizeServerOrigin
21
- } from "./chunk-CF7PE763.js";
22
- import {
23
- asTrimmedString
24
- } from "./chunk-3EUW3WEO.js";
25
22
  import {
26
23
  asOptionalTrimmedString
27
24
  } from "./chunk-G3SUCT4W.js";
25
+ import {
26
+ normalizeServerOrigin
27
+ } from "./chunk-CF7PE763.js";
28
28
 
29
29
  // packages/agent-runtime/agentConfigOptions.ts
30
30
  function pickAgentRuntimeInferenceOptions(agentConfig) {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  require_formatISO
3
- } from "./chunk-WPORQFYN.js";
3
+ } from "./chunk-UVLYNWIE.js";
4
4
  import {
5
5
  require_react
6
- } from "./chunk-YDH3FDFQ.js";
6
+ } from "./chunk-5FUN7EG4.js";
7
7
  import {
8
8
  patch,
9
9
  readAndWait
10
- } from "./chunk-BFM34N54.js";
10
+ } from "./chunk-44X52WOJ.js";
11
11
  import {
12
12
  toErrorMessage
13
13
  } from "./chunk-HNMXYYJR.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-G3SUCT4W.js";
17
17
  import {
18
18
  __toESM
19
- } from "./chunk-4VNS5WPM.js";
19
+ } from "./chunk-U67V476Y.js";
20
20
 
21
21
  // packages/render/page/docStore.ts
22
22
  var import_react = __toESM(require_react(), 1);
@@ -308,9 +308,9 @@ async function saveDocState(arg, { dispatch, getState }) {
308
308
  { slateToRenderMarkdown },
309
309
  { buildSkillSummaryMarker }
310
310
  ] = await Promise.all([
311
- import("./slateUtils-NGV2NMKM.js"),
312
- import("./slateToRenderMarkdown-Y5IYN73U.js"),
313
- import("./skillSummaryMarker-42HKSXYY.js")
311
+ import("./slateUtils-ESQAJ6RN.js"),
312
+ import("./slateToRenderMarkdown-R3X74MCX.js"),
313
+ import("./skillSummaryMarker-62UW7HI7.js")
314
314
  ]);
315
315
  const title = asOptionalTrimmedString(current.title) || extractTitleFromSlate(slateData) || "\u672A\u547D\u540D\u9875\u9762";
316
316
  const tools = extractMentionsFromSlate(slateData);
@@ -321,6 +321,7 @@ async function saveDocState(arg, { dispatch, getState }) {
321
321
  await dispatch(
322
322
  patch({
323
323
  dbKey: pageKey,
324
+ requireServerConfirmation: true,
324
325
  changes: {
325
326
  updatedAt,
326
327
  slateData,
@@ -334,7 +335,7 @@ async function saveDocState(arg, { dispatch, getState }) {
334
335
  ).unwrap();
335
336
  if (dbSpaceId) {
336
337
  try {
337
- const { updateContentTitle } = await import("./contentThunks-N52O67MI.js");
338
+ const { updateContentTitle } = await import("./contentThunks-5GUQ7FWJ.js");
338
339
  await dispatch(
339
340
  updateContentTitle({
340
341
  spaceId: dbSpaceId,
@@ -352,6 +353,10 @@ async function saveDocState(arg, { dispatch, getState }) {
352
353
  if (typeof window !== "undefined") {
353
354
  window.dispatchEvent(new Event("nolo-user-data-updated"));
354
355
  }
356
+ if (state.pageKey !== pageKey || state.slateData !== slateData || state.title !== current.title || state.icon !== icon) {
357
+ if (state.pageKey === pageKey) setState((prev) => ({ ...prev, isSaving: false, justSaved: false }));
358
+ return;
359
+ }
355
360
  setState((prev) => ({
356
361
  ...prev,
357
362
  isSaving: false,
@@ -373,7 +378,7 @@ async function saveDocState(arg, { dispatch, getState }) {
373
378
  }
374
379
  }
375
380
  async function createDocState(args, thunkApi) {
376
- const { createPageAction } = await import("./createPageAction-M5VDA7SC.js");
381
+ const { createPageAction } = await import("./createPageAction-JRQ2TA4O.js");
377
382
  return createPageAction(args, thunkApi);
378
383
  }
379
384
  function subscribe(listener) {