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
@@ -3,7 +3,7 @@ import {
3
3
  require_differenceInMilliseconds,
4
4
  require_differenceInMinutes,
5
5
  require_roundingMethods
6
- } from "./chunk-FY7F4Q6X.js";
6
+ } from "./chunk-Z4PCXPUE.js";
7
7
  import {
8
8
  normalizeStats,
9
9
  require_addMilliseconds,
@@ -23,27 +23,27 @@ import {
23
23
  require_startOfUTCWeek,
24
24
  require_subMilliseconds,
25
25
  require_toInteger
26
- } from "./chunk-7RFNTILS.js";
26
+ } from "./chunk-BUDVRYES.js";
27
27
  import {
28
28
  require_formatISO
29
- } from "./chunk-WPORQFYN.js";
29
+ } from "./chunk-UVLYNWIE.js";
30
30
  import {
31
31
  require_addLeadingZeros,
32
32
  require_interopRequireDefault,
33
33
  require_requiredArgs,
34
34
  require_toDate,
35
35
  require_typeof
36
- } from "./chunk-MMA3LZ3W.js";
36
+ } from "./chunk-YNIYE47Z.js";
37
37
  import {
38
38
  getDefaultCliLocalRuntimeDb
39
- } from "./chunk-AZMYUSVF.js";
39
+ } from "./chunk-N5Z2V73W.js";
40
40
  import {
41
41
  createTokenStatsKey
42
- } from "./chunk-JY5NGFFH.js";
42
+ } from "./chunk-SYTHYBMI.js";
43
43
  import {
44
44
  __commonJS,
45
45
  __toESM
46
- } from "./chunk-4VNS5WPM.js";
46
+ } from "./chunk-U67V476Y.js";
47
47
 
48
48
  // node_modules/date-fns/addDays/index.js
49
49
  var require_addDays = __commonJS({
@@ -11658,7 +11658,7 @@ async function runUsageCommand(args, deps) {
11658
11658
  const output = deps.output ?? process.stdout;
11659
11659
  const errorOutput = deps.errorOutput ?? process.stderr;
11660
11660
  if (args[0] === "rebuild") {
11661
- const { runUsageRebuildCommand } = await import("./usageRebuildCommand-HAW2AD5N.js");
11661
+ const { runUsageRebuildCommand } = await import("./usageRebuildCommand-SP2BLNJU.js");
11662
11662
  return runUsageRebuildCommand(args.slice(1), deps);
11663
11663
  }
11664
11664
  if (hasFlag(args, "-h") || hasFlag(args, "--help")) {
@@ -11729,7 +11729,7 @@ async function runUsageCommand(args, deps) {
11729
11729
  return 0;
11730
11730
  }
11731
11731
  async function resolveUsageUserId(env) {
11732
- const { resolveLocalUserId } = await import("./cliAgentConfigHelpers-WJBZQTLW.js");
11732
+ const { resolveLocalUserId } = await import("./cliAgentConfigHelpers-TKYL43MT.js");
11733
11733
  return resolveLocalUserId(env);
11734
11734
  }
11735
11735
  function isLocalDbMissingError(error) {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-QYPE3TS3.js";
4
4
  import {
5
5
  getActiveDialogKey
6
- } from "./chunk-OWYYDMGJ.js";
6
+ } from "./chunk-S2NTVGA2.js";
7
7
  import {
8
8
  selectIdentityToken
9
9
  } from "./chunk-PXYBUFDB.js";
@@ -0,0 +1,364 @@
1
+ import {
2
+ authRoutes
3
+ } from "./chunk-M3JEW6N6.js";
4
+ import {
5
+ BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
6
+ BUILTIN_SUMMARY_LLM_CONFIG
7
+ } from "./chunk-523DITKR.js";
8
+ import {
9
+ buildPlatformChatCompletionRequest,
10
+ canUsePlatformChatProvider,
11
+ parsePlatformChatCompletionResponse,
12
+ resolvePlatformChatProviderConfig
13
+ } from "./chunk-QNWG52I4.js";
14
+ import {
15
+ COMPACTION_SUMMARY_SYSTEM_PROMPT,
16
+ classifySummaryError,
17
+ createSummaryBudget,
18
+ isTruncatedCompletion,
19
+ selectSummaryRoute,
20
+ summaryCompletionTokens
21
+ } from "./chunk-RDH5CQ4T.js";
22
+ import {
23
+ isAbortError
24
+ } from "./chunk-7DPNBQSV.js";
25
+ import {
26
+ resolvePlatformAuthToken,
27
+ resolvePlatformServerUrl
28
+ } from "./chunk-I7WBYGBP.js";
29
+ import {
30
+ PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL
31
+ } from "./chunk-CKG3PRZ7.js";
32
+ import {
33
+ parseUserIdFromAuthToken
34
+ } from "./chunk-2THCNKE4.js";
35
+
36
+ // packages/core/accountSession/fetchAccountProfile.ts
37
+ async function fetchAccountProfile(input) {
38
+ const serverUrl = input.serverUrl?.trim();
39
+ const token = input.token?.trim();
40
+ const userId = input.userId?.trim();
41
+ if (!serverUrl || !token || !userId) {
42
+ throw new Error("missing_profile_request_params");
43
+ }
44
+ const path = authRoutes.users.detail.createPath({ userId });
45
+ const fetchImpl = input.fetchImpl ?? ((url, init) => fetch(url, init));
46
+ const response = await fetchImpl(`${serverUrl}${path}`, {
47
+ method: authRoutes.users.detail.method,
48
+ headers: {
49
+ Authorization: `Bearer ${token}`
50
+ }
51
+ });
52
+ if (!response.ok) {
53
+ const errorText = await response.text().catch(() => "");
54
+ throw new Error(`profile_fetch_failed: ${response.status} ${errorText}`);
55
+ }
56
+ const profileData = await response.json().catch(() => ({}));
57
+ return {
58
+ userId,
59
+ balance: profileData.balance,
60
+ gptProAccess: profileData.gptProAccess,
61
+ adminPermissions: profileData.adminPermissions
62
+ };
63
+ }
64
+
65
+ // packages/cli/client/tuiSummaryLlmCaller.ts
66
+ import { randomUUID } from "node:crypto";
67
+ var TUI_SUMMARY_MAX_OUTPUT_TOKENS = 8192;
68
+ function createTuiSummaryLlmCaller(env, options) {
69
+ const fetchImpl = options?.fetchImpl ?? fetch;
70
+ const configuredTimeout = options?.timeoutMs;
71
+ const timeoutMs = typeof configuredTimeout === "number" && Number.isFinite(configuredTimeout) && configuredTimeout > 0 ? Math.min(configuredTimeout, 3e4) : 3e4;
72
+ const resolveProviderConfig = options?.resolveProviderConfig ?? resolvePlatformChatProviderConfig;
73
+ const caller = async (content, callOptions) => {
74
+ if (callOptions?.signal?.aborted) throw new DOMException("Summary cancelled", "AbortError");
75
+ if (!canUsePlatformChatProvider(env)) return null;
76
+ const requestedOutputTokens = callOptions?.maxOutputTokens;
77
+ if (requestedOutputTokens !== void 0 && (!Number.isFinite(requestedOutputTokens) || requestedOutputTokens < 1)) return null;
78
+ const maxOutputTokens = requestedOutputTokens === void 0 ? TUI_SUMMARY_MAX_OUTPUT_TOKENS : Math.min(TUI_SUMMARY_MAX_OUTPUT_TOKENS, Math.floor(requestedOutputTokens));
79
+ const deadlineMs = Math.min(Date.now() + timeoutMs, callOptions?.deadlineMs ?? Infinity);
80
+ const remainingMs = deadlineMs - Date.now();
81
+ if (!(remainingMs > 0)) return null;
82
+ const controller = new AbortController();
83
+ const parentSignal = callOptions?.signal;
84
+ const onAbort = () => controller.abort(parentSignal?.reason);
85
+ parentSignal?.addEventListener("abort", onAbort, { once: true });
86
+ if (parentSignal?.aborted) onAbort();
87
+ const timer = setTimeout(() => controller.abort(new DOMException("Summary deadline exceeded", "TimeoutError")), remainingMs);
88
+ const signal = controller.signal;
89
+ const attemptId = callOptions?.attemptId ?? randomUUID();
90
+ const attempt = async (model, budgetMs) => {
91
+ if (signal.aborted || !(budgetMs > 0)) return null;
92
+ const attemptController = new AbortController();
93
+ const attemptSignal = attemptController.signal;
94
+ const attemptDeadlineMs = Date.now() + budgetMs;
95
+ const onStop = () => attemptController.abort(signal.reason);
96
+ signal.addEventListener("abort", onStop, { once: true });
97
+ if (signal.aborted) onStop();
98
+ const attemptTimer = setTimeout(() => attemptController.abort(
99
+ new DOMException("Summary attempt budget exceeded", "TimeoutError")
100
+ ), budgetMs);
101
+ let onAttemptAbort = () => {
102
+ };
103
+ const stopped = new Promise((resolve) => {
104
+ onAttemptAbort = () => resolve(null);
105
+ if (attemptSignal.aborted) resolve(null);
106
+ else attemptSignal.addEventListener("abort", onAttemptAbort, { once: true });
107
+ });
108
+ const isStopped = () => attemptSignal.aborted || Date.now() >= attemptDeadlineMs;
109
+ let stage = "resolve";
110
+ let operationStage = "resolve";
111
+ let errorKind = null;
112
+ let httpStatus = null;
113
+ const startedAt = Date.now();
114
+ const work = async () => {
115
+ try {
116
+ const providerConfig = await resolveProviderConfig({
117
+ agentConfig: { ...BUILTIN_SUMMARY_LLM_CONFIG, model, key: BUILTIN_SUMMARY_LLM_CONFIG.id },
118
+ env,
119
+ apiKeyRefResolver: options?.apiKeyRefResolver,
120
+ credentialBroker: options?.credentialBroker
121
+ });
122
+ if (isStopped()) return null;
123
+ operationStage = "build";
124
+ if (!providerConfig?.authToken) {
125
+ stage = "auth";
126
+ return null;
127
+ }
128
+ stage = "build";
129
+ const messages = [
130
+ { role: "system", content: COMPACTION_SUMMARY_SYSTEM_PROMPT },
131
+ { role: "user", content }
132
+ ];
133
+ const request = buildPlatformChatCompletionRequest({
134
+ providerConfig: {
135
+ ...providerConfig,
136
+ requestOptions: { ...providerConfig.requestOptions, max_tokens: maxOutputTokens, reasoning_effort: "low" }
137
+ },
138
+ messages,
139
+ stream: false,
140
+ requestId: attemptId
141
+ });
142
+ stage = "http";
143
+ operationStage = "http";
144
+ if (isStopped()) return null;
145
+ const response = await fetchImpl(request.url, { ...request.init, signal: attemptSignal });
146
+ httpStatus = response.status;
147
+ if (isStopped() || !response.ok) return null;
148
+ stage = "body";
149
+ operationStage = "body";
150
+ let responseText;
151
+ try {
152
+ responseText = await response.text();
153
+ } catch (error) {
154
+ if (isAbortError(error)) throw error;
155
+ errorKind = "body";
156
+ throw new Error("body-read-failed");
157
+ }
158
+ if (isStopped()) return null;
159
+ operationStage = "parse";
160
+ let data;
161
+ try {
162
+ data = JSON.parse(responseText);
163
+ } catch {
164
+ errorKind = "parse";
165
+ throw new Error("response-json-invalid");
166
+ }
167
+ if (isStopped()) return null;
168
+ stage = "parse";
169
+ const parsed = parsePlatformChatCompletionResponse({ providerConfig, data, trace: [] });
170
+ if (isTruncatedCompletion({
171
+ finishReason: parsed.finish_reason,
172
+ responseStatus: data?.status,
173
+ incompleteReason: data?.incomplete_details?.reason,
174
+ truncated: !!data?.incomplete_details
175
+ })) {
176
+ stage = "truncated";
177
+ throw {
178
+ code: "SUMMARY_TRUNCATED",
179
+ stage: "decode",
180
+ finishReason: parsed.finish_reason,
181
+ responseStatus: data?.status,
182
+ incompleteReason: data?.incomplete_details?.reason,
183
+ maxOutputTokens,
184
+ completionTokens: summaryCompletionTokens(parsed.usage),
185
+ outputChars: parsed.content?.length,
186
+ model,
187
+ provider: "nolo",
188
+ attemptId
189
+ };
190
+ }
191
+ const summary = parsed?.content?.trim() || null;
192
+ stage = summary ? "done" : "empty";
193
+ return summary;
194
+ } catch (error) {
195
+ if (parentSignal?.aborted || isAbortError(error) && !attemptSignal.aborted) {
196
+ throw new DOMException("Summary cancelled", "AbortError");
197
+ }
198
+ if (error?.code === "SUMMARY_TRUNCATED") {
199
+ const safe = classifySummaryError(error);
200
+ throw Object.assign(new Error(safe.message), safe);
201
+ }
202
+ if (errorKind === null) errorKind = operationStage === "resolve" ? "resolve" : operationStage === "http" ? "http" : null;
203
+ return null;
204
+ }
205
+ };
206
+ try {
207
+ const result = await Promise.race([work(), stopped]);
208
+ if (parentSignal?.aborted) throw new DOMException("Summary cancelled", "AbortError");
209
+ if (!result) console.warn("[tuiSummary] summary attempt failed", {
210
+ attemptId,
211
+ model,
212
+ stage: parentSignal?.aborted ? "cancelled" : signal.aborted || Date.now() >= deadlineMs ? "deadline" : isStopped() ? "attempt-budget" : stage,
213
+ operationStage,
214
+ elapsedMs: Math.max(0, Date.now() - startedAt),
215
+ ...errorKind ? { errorKind } : {},
216
+ ...httpStatus !== null ? { httpStatus } : {}
217
+ });
218
+ return result;
219
+ } finally {
220
+ clearTimeout(attemptTimer);
221
+ signal.removeEventListener("abort", onStop);
222
+ attemptSignal.removeEventListener("abort", onAttemptAbort);
223
+ }
224
+ };
225
+ try {
226
+ const primary = await attempt(options?.platformPrimary ? PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL : BUILTIN_SUMMARY_LLM_CONFIG.model, deadlineMs - Date.now());
227
+ if (options?.platformPrimary) return primary;
228
+ if (primary || signal.aborted || parentSignal?.aborted || Date.now() >= deadlineMs) return primary;
229
+ return await attempt(BUILTIN_DIALOG_LLM_FALLBACK_MODEL, deadlineMs - Date.now());
230
+ } finally {
231
+ clearTimeout(timer);
232
+ parentSignal?.removeEventListener("abort", onAbort);
233
+ }
234
+ };
235
+ return Object.assign(caller, {
236
+ complete: async (content, callOptions) => {
237
+ const configured = typeof configuredTimeout === "number" && Number.isFinite(configuredTimeout) && configuredTimeout > 0 ? Date.now() + configuredTimeout : Infinity;
238
+ const budget = createSummaryBudget({
239
+ mode: "manual",
240
+ signal: callOptions?.signal,
241
+ deadlineMs: Math.min(callOptions?.deadlineMs ?? Date.now() + 6e4, configured)
242
+ });
243
+ const model = PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL;
244
+ const attemptId = callOptions?.attemptId ?? randomUUID();
245
+ let stage = "resolve";
246
+ let httpStatus;
247
+ try {
248
+ return await budget.run(async ({ signal, deadlineMs }) => {
249
+ if (!canUsePlatformChatProvider(env)) throw { code: "PLATFORM_AUTH_UNAVAILABLE", stage: "auth" };
250
+ const requested = callOptions?.maxOutputTokens;
251
+ if (requested !== void 0 && (!Number.isFinite(requested) || requested < 1)) throw { code: "INVALID_OUTPUT_BUDGET", stage: "build" };
252
+ const providerConfig = await resolveProviderConfig({
253
+ agentConfig: { ...BUILTIN_SUMMARY_LLM_CONFIG, model, key: BUILTIN_SUMMARY_LLM_CONFIG.id },
254
+ env,
255
+ apiKeyRefResolver: options?.apiKeyRefResolver,
256
+ credentialBroker: options?.credentialBroker
257
+ });
258
+ if (signal.aborted) throw signal.reason;
259
+ if (!providerConfig?.authToken) throw { code: "PLATFORM_AUTH_UNAVAILABLE", stage: "auth" };
260
+ stage = "build";
261
+ const request = buildPlatformChatCompletionRequest({
262
+ providerConfig: {
263
+ ...providerConfig,
264
+ requestOptions: { ...providerConfig.requestOptions, max_tokens: Math.min(TUI_SUMMARY_MAX_OUTPUT_TOKENS, Math.floor(requested ?? TUI_SUMMARY_MAX_OUTPUT_TOKENS)), reasoning_effort: "low" }
265
+ },
266
+ messages: [{ role: "system", content: COMPACTION_SUMMARY_SYSTEM_PROMPT }, { role: "user", content }],
267
+ stream: false,
268
+ requestId: attemptId
269
+ });
270
+ stage = "http";
271
+ const response = await fetchImpl(request.url, { ...request.init, signal });
272
+ httpStatus = response.status;
273
+ stage = "body";
274
+ const body = await response.text();
275
+ if (!response.ok) {
276
+ let data2;
277
+ try {
278
+ data2 = JSON.parse(body);
279
+ } catch {
280
+ data2 = {};
281
+ }
282
+ throw {
283
+ status: response.status,
284
+ code: data2?.error?.code ?? data2?.code,
285
+ type: data2?.error?.type ?? data2?.type,
286
+ balanceSource: data2?.balanceSource,
287
+ stage: "http"
288
+ };
289
+ }
290
+ stage = "decode";
291
+ let data;
292
+ try {
293
+ data = JSON.parse(body);
294
+ } catch {
295
+ throw { code: "INVALID_SUMMARY_JSON" };
296
+ }
297
+ const parsed = parsePlatformChatCompletionResponse({ providerConfig, data, trace: [] });
298
+ return {
299
+ text: parsed.content ?? "",
300
+ finishReason: parsed.finish_reason,
301
+ responseStatus: data?.status,
302
+ incompleteReason: data?.incomplete_details?.reason,
303
+ maxOutputTokens: Math.min(TUI_SUMMARY_MAX_OUTPUT_TOKENS, Math.floor(requested ?? TUI_SUMMARY_MAX_OUTPUT_TOKENS)),
304
+ completionTokens: summaryCompletionTokens(parsed.usage),
305
+ truncated: isTruncatedCompletion({ finishReason: parsed.finish_reason, responseStatus: data?.status, incompleteReason: data?.incomplete_details?.reason, truncated: !!data?.incomplete_details })
306
+ };
307
+ });
308
+ } catch (cause) {
309
+ const safe = classifySummaryError(
310
+ budget.signal.aborted ? budget.signal.reason : cause,
311
+ { model, provider: "nolo", attemptId, stage }
312
+ );
313
+ if (httpStatus !== void 0 && safe.status === void 0) safe.status = httpStatus;
314
+ throw Object.assign(new Error(safe.message), safe, {
315
+ type: safe.errorType,
316
+ name: safe.category === "cancelled" ? "AbortError" : safe.category === "timeout" ? "TimeoutError" : "SummaryError"
317
+ });
318
+ } finally {
319
+ budget.dispose();
320
+ }
321
+ },
322
+ preferPlatform: async (callOptions) => {
323
+ if (callOptions?.signal?.aborted) throw new DOMException("Summary cancelled", "AbortError");
324
+ if (!options?.platformPrimary || !canUsePlatformChatProvider(env)) return false;
325
+ const token = resolvePlatformAuthToken(env);
326
+ const userId = parseUserIdFromAuthToken(token);
327
+ if (!userId || userId === "local" || userId === "guest") return false;
328
+ const controller = new AbortController();
329
+ const onAbort = () => controller.abort(callOptions?.signal?.reason);
330
+ callOptions?.signal?.addEventListener("abort", onAbort, { once: true });
331
+ if (callOptions?.signal?.aborted) onAbort();
332
+ const budget = Math.min(5e3, (callOptions?.deadlineMs ?? Infinity) - Date.now());
333
+ const timer = setTimeout(() => controller.abort(), Math.max(0, budget));
334
+ try {
335
+ if (!(budget > 0)) throw new DOMException("Summary deadline exceeded", "TimeoutError");
336
+ const profile = await fetchAccountProfile({
337
+ serverUrl: resolvePlatformServerUrl(env),
338
+ token,
339
+ userId,
340
+ fetchImpl: (url, init) => fetchImpl(url, { ...init, signal: controller.signal })
341
+ });
342
+ return selectSummaryRoute({
343
+ userId,
344
+ authenticated: true,
345
+ platformAvailable: !controller.signal.aborted,
346
+ credits: profile.balance
347
+ }).kind === "platform";
348
+ } catch (error) {
349
+ if (callOptions?.signal?.aborted) throw callOptions.signal.reason ?? new DOMException("Summary cancelled", "AbortError");
350
+ if (Date.now() >= (callOptions?.deadlineMs ?? Infinity)) throw new DOMException("Summary deadline exceeded", "TimeoutError");
351
+ if (isAbortError(error) && !controller.signal.aborted) throw new DOMException("Summary cancelled", "AbortError");
352
+ return false;
353
+ } finally {
354
+ clearTimeout(timer);
355
+ callOptions?.signal?.removeEventListener("abort", onAbort);
356
+ }
357
+ }
358
+ });
359
+ }
360
+
361
+ export {
362
+ TUI_SUMMARY_MAX_OUTPUT_TOKENS,
363
+ createTuiSummaryLlmCaller
364
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __commonJS
3
- } from "./chunk-4VNS5WPM.js";
3
+ } from "./chunk-U67V476Y.js";
4
4
 
5
5
  // node_modules/react/cjs/react.production.js
6
6
  var require_react_production = __commonJS({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  t
3
- } from "./chunk-3RQVYR4B.js";
3
+ } from "./chunk-OB6DVWPF.js";
4
4
 
5
5
  // packages/cli/windowsSelfUpdate.ts
6
6
  import { spawn } from "node:child_process";
@@ -311,12 +311,94 @@ async function chromeConnectorUnavailableFunc() {
311
311
  throw new Error("Browser connector tools are only executable in the Nolo desktop local runtime.");
312
312
  }
313
313
 
314
+ // packages/agent-runtime/toolNameAliases.ts
315
+ var LEGACY_TOOL_NAME_ALIASES = {
316
+ // Nolo Browser Connector: legacy chrome_* → canonical browser_*
317
+ ...CHROME_CONNECTOR_LEGACY_TOOL_ALIASES,
318
+ createPage: "createDoc",
319
+ updatePage: "updateDoc",
320
+ update_page: "updateDoc",
321
+ create_page: "createDoc",
322
+ fetchwebpage: "fetchWebpage",
323
+ fetch_webpage: "fetchWebpage",
324
+ "fetch-page": "fetchWebpage",
325
+ exasearch: "exa_search",
326
+ "exa-search": "exa_search",
327
+ exa_search: "exa_search",
328
+ firecrawlscrape: "firecrawl_scrape",
329
+ "firecrawl-scrape": "firecrawl_scrape",
330
+ firecrawl_scrape: "firecrawl_scrape",
331
+ firecrawlsearch: "firecrawl_search",
332
+ "firecrawl-search": "firecrawl_search",
333
+ firecrawl_search: "firecrawl_search",
334
+ readDoc: "readDoc",
335
+ readpage: "readDoc",
336
+ read_page: "readDoc",
337
+ read_doc: "readDoc",
338
+ createdoc: "createDoc",
339
+ updateDocTool: "updateDoc",
340
+ terminalCommand: "execShell",
341
+ terminal_command: "execShell",
342
+ runCommand: "execShell",
343
+ run_command: "execShell",
344
+ runInBash: "execShell",
345
+ run_in_bash: "execShell",
346
+ executeCommand: "execShell",
347
+ execute_command: "execShell",
348
+ // Codex CLI 风格工具名 → nolo 原生工具名
349
+ bash: "execShell",
350
+ shell: "execShell",
351
+ read: "readFile",
352
+ edit: "editFile",
353
+ write: "writeFile",
354
+ glob: "globFiles",
355
+ // 联网搜索别名
356
+ web_search: "exa_search",
357
+ websearch: "exa_search",
358
+ search_web: "exa_search",
359
+ searchweb: "exa_search",
360
+ webfetch: "fetchWebpage",
361
+ web_fetch: "fetchWebpage",
362
+ fetchweb: "fetchWebpage",
363
+ fetch_web: "fetchWebpage",
364
+ // 模型偶尔会把 loadSkill 幻觉成 readSkill(参数风格 name= 一致),
365
+ // 规范化到 loadSkill,避免 localToolPolicy 把这种调用直接拦死。
366
+ readSkill: "loadSkill"
367
+ };
368
+ var normalizeToolName = (name) => name.replace(/[-_]/g, "").toLowerCase();
369
+ var canonicalizeToolName = (rawName) => {
370
+ const trimmedName = rawName.trim();
371
+ if (!trimmedName) return rawName;
372
+ if (LEGACY_TOOL_NAME_ALIASES[trimmedName]) {
373
+ return LEGACY_TOOL_NAME_ALIASES[trimmedName];
374
+ }
375
+ const normalizedRawName = normalizeToolName(trimmedName);
376
+ const matchedAlias = Object.entries(LEGACY_TOOL_NAME_ALIASES).find(
377
+ ([alias]) => normalizeToolName(alias) === normalizedRawName
378
+ );
379
+ return matchedAlias?.[1] ?? trimmedName;
380
+ };
381
+ var canonicalizeToolNames = (toolNames) => Array.from(
382
+ new Set(
383
+ toolNames.filter((toolName) => typeof toolName === "string").map(canonicalizeToolName)
384
+ )
385
+ );
386
+ var prioritizeToolNames = (toolNames, preferredToolNames) => {
387
+ const canonicalTools = canonicalizeToolNames(toolNames);
388
+ const preferred = new Set(canonicalizeToolNames(preferredToolNames));
389
+ const prioritized = canonicalTools.filter((toolName) => preferred.has(toolName));
390
+ const remaining = canonicalTools.filter((toolName) => !preferred.has(toolName));
391
+ return [...prioritized, ...remaining];
392
+ };
393
+
314
394
  export {
315
- CHROME_CONNECTOR_LEGACY_TOOL_ALIASES,
316
395
  CHROME_CONNECTOR_ACCEPTED_TOOL_NAMES,
317
396
  canonicalizeChromeConnectorToolNames,
318
397
  getChromeConnectorToolBehavior,
319
398
  getChromeConnectorToolDefaultConsent,
320
399
  chromeConnectorToolSchemas,
321
- chromeConnectorUnavailableFunc
400
+ chromeConnectorUnavailableFunc,
401
+ canonicalizeToolName,
402
+ canonicalizeToolNames,
403
+ prioritizeToolNames
322
404
  };
@@ -1,22 +1,38 @@
1
+ import {
2
+ buildRestorePatch
3
+ } from "./chunk-BV3FLP2L.js";
4
+ import {
5
+ buildLocalAgentLookupKeys,
6
+ shouldReadAgentKeyRemotely
7
+ } from "./chunk-2ZKFCIJJ.js";
1
8
  import {
2
9
  resolveCliAgentKeyInput
3
- } from "./chunk-NBTY7YJF.js";
10
+ } from "./chunk-BR3GT6MR.js";
4
11
  import {
5
12
  createHostCredentialBrokerChain,
6
13
  createStrictHostCredentialBroker
7
- } from "./chunk-FHU44LN3.js";
14
+ } from "./chunk-Z2PITYZN.js";
8
15
  import {
9
- buildAgentRuntimeAgentLookupKeys,
10
- shouldFetchAgentRuntimeRecordRemotely
11
- } from "./chunk-25JZEIXN.js";
16
+ collectInvalidAgentSkillModes,
17
+ formatInvalidAgentSkillModeMessage,
18
+ formatInvalidAgentSkillModesFieldMessage,
19
+ isAgentSkillModesFieldShapeValid
20
+ } from "./chunk-FS2XP5D7.js";
12
21
  import {
13
22
  buildAgentApiKeyCredentialRef,
14
23
  migrateAgentSecrets
15
- } from "./chunk-2QHFH3DR.js";
24
+ } from "./chunk-47ITIXO7.js";
16
25
  import {
17
26
  assertCredentialRef,
18
27
  createFileCredentialBroker
19
- } from "./chunk-OQHIVPG4.js";
28
+ } from "./chunk-SNBZZPYH.js";
29
+ import {
30
+ createAgentKey
31
+ } from "./chunk-SYTHYBMI.js";
32
+ import {
33
+ readPipeText,
34
+ spawnProcess
35
+ } from "./chunk-4O22PGNQ.js";
20
36
  import {
21
37
  toErrorMessage
22
38
  } from "./chunk-HNMXYYJR.js";
@@ -26,14 +42,7 @@ import {
26
42
  resolveAuthToken,
27
43
  resolveServerCandidates,
28
44
  resolveServerUrl
29
- } from "./chunk-WACI5I6V.js";
30
- import {
31
- readPipeText,
32
- spawnProcess
33
- } from "./chunk-4O22PGNQ.js";
34
- import {
35
- createAgentKey
36
- } from "./chunk-JY5NGFFH.js";
45
+ } from "./chunk-2THCNKE4.js";
37
46
 
38
47
  // packages/agent-runtime/sessionCredentialBroker.ts
39
48
  function createSessionMemoryCredentialBroker() {
@@ -108,10 +117,6 @@ function normalizeAgentHandle(value) {
108
117
  return typeof value === "string" && value.trim() ? value.trim().toLowerCase().replace(/\s+/g, " ") : void 0;
109
118
  }
110
119
 
111
- // packages/cli/client/localAgentRecords.ts
112
- var buildLocalAgentLookupKeys = buildAgentRuntimeAgentLookupKeys;
113
- var shouldReadAgentKeyRemotely = shouldFetchAgentRuntimeRecordRemotely;
114
-
115
120
  // packages/cli/agentRecordHelpers.ts
116
121
  var PROVIDER_COPY_FIELDS = [
117
122
  "apiSource",
@@ -632,7 +637,7 @@ async function bindVaultCredentialToAgent(args) {
632
637
  const secret = await broker.get(args.vaultId);
633
638
  if (!secret) {
634
639
  throw new Error(
635
- `--api-key received a vault credential id (${args.vaultId}) but no secret is stored for it on this device. Re-paste the key in the chat so the runtime can isolate it again, or ask the user to run \`nolo secret set <name> --prompt\`.`
640
+ `--api-key received a vault credential id (${args.vaultId}) but no secret is stored for it on this device. Re-paste the key in the chat so the runtime can isolate it again.`
636
641
  );
637
642
  }
638
643
  return await storeAgentCredential({ agentKey: args.agentKey, secret, broker: args.broker });
@@ -691,6 +696,16 @@ function parseAgentUpdateArgs(args) {
691
696
  }
692
697
  updates[entry.slice(0, index)] = parseJsonishValue(entry.slice(index + 1));
693
698
  }
699
+ if (Object.prototype.hasOwnProperty.call(updates, "skills")) {
700
+ const skillsField = updates.skills;
701
+ if (!isAgentSkillModesFieldShapeValid(skillsField)) {
702
+ throw new Error(formatInvalidAgentSkillModesFieldMessage());
703
+ }
704
+ const invalidModes = collectInvalidAgentSkillModes(skillsField);
705
+ if (invalidModes.length > 0) {
706
+ throw new Error(formatInvalidAgentSkillModeMessage(invalidModes[0]));
707
+ }
708
+ }
694
709
  if (Object.keys(updates).length === 0) {
695
710
  if (!promptDoc && !copyProviderFrom && !presetId) {
696
711
  throw new Error("No updates provided. Use --model / --cli-provider / --api-source / --field key=value.");
@@ -748,7 +763,7 @@ async function buildCreatedAgentRecord(args) {
748
763
  const resolvedAgentInput = resolveCliAgentKeyInput(args.parsed.agentInput);
749
764
  const agentKey = resolvedAgentInput.startsWith("agent-") ? resolvedAgentInput : createAgentKey.private(userId || "local", resolvedAgentInput);
750
765
  if (args.parsed.presetId) {
751
- const { resolveProviderPresetFields } = await import("./providerPresetApply-YXGV6NXB.js");
766
+ const { resolveProviderPresetFields } = await import("./providerPresetApply-OIFQ73LH.js");
752
767
  const fields = resolveProviderPresetFields(args.parsed.presetId);
753
768
  if (fields.kind === "manual") {
754
769
  throw new Error(
@@ -814,13 +829,15 @@ async function buildCreatedAgentRecord(args) {
814
829
  void 0,
815
830
  !args.hostApproval?.gateId
816
831
  );
832
+ const now = Date.now();
817
833
  const nextRecord = {
818
834
  ...args.parsed.updates,
819
835
  dbKey: agentKey,
820
836
  key: agentKey,
821
837
  type: "agent" /* AGENT */,
822
- createdAt: Date.now(),
823
- updatedAt: Date.now(),
838
+ ...buildRestorePatch(new Date(now).toISOString()),
839
+ createdAt: now,
840
+ updatedAt: now,
824
841
  userId
825
842
  };
826
843
  return {
@@ -909,7 +926,6 @@ async function buildUpdatedAgentRecord(args) {
909
926
  export {
910
927
  getSharedSessionCredentialBroker,
911
928
  OAUTH_PROVIDER_REFS,
912
- buildLocalAgentLookupKeys,
913
929
  fetchWithTransportFallback,
914
930
  readAgentRecord,
915
931
  readDbRecord,