nolo-cli 0.213.0 → 0.223.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/README.md +3 -2
  2. package/{_executeModel-CUJLCFWR.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-WERAONNY.js → addContentAction-GDHDOF4U.js} +18 -17
  6. package/{addDialogAgentAction-7VI7YRML.js → addDialogAgentAction-CAKRU3ZT.js} +21 -20
  7. package/{agentDeleteCommand-XJORXPGU.js → agentDeleteCommand-BPV2XZL7.js} +128 -119
  8. package/{agentEmailCommands-XTYYFR6Z.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-OBLRBLHS.js → agentListCommands-HIZODBF3.js} +155 -92
  12. package/{agentMachineCommands-5FMT3OT5.js → agentMachineCommands-ZMQ2CY7Y.js} +62 -54
  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-TAMHJQSR.js → agentRunControl-JNONH3RP.js} +30 -15
  18. package/{agentRuntimeLocal-SOO2OPJG.js → agentRuntimeLocal-QZPFWMLG.js} +52 -45
  19. package/{agentSlice-CHR6KOZN.js → agentSlice-RD2CDU7T.js} +20 -19
  20. package/{appDeleteCommands-GUP6P5YE.js → appDeleteCommands-QCCFDIEQ.js} +61 -53
  21. package/{appDeployCommands-MH2FX4O5.js → appDeployCommands-V2T7TNMQ.js} +61 -53
  22. package/{appDeployStatusCommands-SUHN3HPJ.js → appDeployStatusCommands-6PGH7ZCG.js} +61 -53
  23. package/{appGetCommands-YWDEX6Z4.js → appGetCommands-3L7WWJA6.js} +61 -53
  24. package/{appListCommands-ZQVMLPAY.js → appListCommands-ENJCK4PO.js} +61 -53
  25. package/{authCommand-PWX2ZNUP.js → authCommand-6V47SYGK.js} +29 -28
  26. package/{authCommands-HV3EAU3V.js → authCommands-GAJ3NIXO.js} +14 -13
  27. package/{builtinSkillRegistry-2QETTQPM.js → builtinSkillRegistry-2ECA42FC.js} +11 -13
  28. package/{chromeCommands-REEAH4SX.js → chromeCommands-G5UDKVSV.js} +3 -3
  29. package/{chromeOpsCommands-DIVM2K3T.js → chromeOpsCommands-YKX2QX3A.js} +20 -10
  30. package/{chunk-CRHOO2ZR.js → chunk-27PCUMJI.js} +2 -2
  31. package/chunk-2CI3ZFWD.js +97 -0
  32. package/{chunk-NSAPDIN2.js → chunk-2GJKRKI6.js} +541 -31
  33. package/{chunk-SM3NSZJV.js → chunk-2UCBGYO4.js} +20 -1
  34. package/{chunk-PYRUW7XN.js → chunk-2VUZSVAS.js} +136 -54
  35. package/{chunk-YB3YZK56.js → chunk-2WZXXAQD.js} +1 -67
  36. package/chunk-2YGBI2XB.js +30 -0
  37. package/chunk-2ZKFCIJJ.js +13 -0
  38. package/{chunk-QG4AOSON.js → chunk-34J5K2YA.js} +13 -32
  39. package/{chunk-LOEO7LRC.js → chunk-3IK6ILVW.js} +4 -1
  40. package/{chunk-CTPXME7U.js → chunk-3LMUPOHG.js} +29 -6
  41. package/chunk-44X52WOJ.js +1621 -0
  42. package/{chunk-6VLJ6YA7.js → chunk-4DESLZTK.js} +9 -9
  43. package/{chunk-MYOH447Z.js → chunk-4JVNURX4.js} +1 -1
  44. package/chunk-5CHGAKRT.js +364 -0
  45. package/{chunk-YDH3FDFQ.js → chunk-5FUN7EG4.js} +1 -1
  46. package/{chunk-INUFILG6.js → chunk-5RKUPJYL.js} +1 -1
  47. package/{chunk-ZC3CMUKU.js → chunk-6OVNSQHN.js} +84 -2
  48. package/{chunk-MOIJOHA5.js → chunk-6WU5572L.js} +36 -25
  49. package/{chunk-IXNGOHV5.js → chunk-7EEZJ6BS.js} +11 -152
  50. package/{chunk-Y6ORVLSS.js → chunk-7ET2U67U.js} +1 -1
  51. package/{chunk-G7MLNNEX.js → chunk-7JLY4WYF.js} +5 -5
  52. package/{chunk-P5L7CXOC.js → chunk-7Z6EW7AH.js} +3 -2
  53. package/{chunk-NJLL224W.js → chunk-AD5EWDFD.js} +2 -2
  54. package/{chunk-J2NHJ7WX.js → chunk-AIHYNKGV.js} +4 -4
  55. package/{chunk-HPFCI4SK.js → chunk-AK5O76CC.js} +3 -3
  56. package/{chunk-Y63ZSOR6.js → chunk-AL3TYDIF.js} +1 -1
  57. package/{chunk-ALQ3657A.js → chunk-AMEOV5VZ.js} +32 -12
  58. package/chunk-AN74ON4G.js +675 -0
  59. package/{chunk-HRMJUN5J.js → chunk-AQZ6BMRK.js} +1 -1
  60. package/{chunk-XHQC4PXX.js → chunk-B4GOW4MT.js} +424 -194
  61. package/{chunk-4KB6WQUL.js → chunk-BGP2EDFG.js} +1 -1
  62. package/{chunk-NBTY7YJF.js → chunk-BR3GT6MR.js} +1 -0
  63. package/{chunk-7RFNTILS.js → chunk-BUDVRYES.js} +2 -2
  64. package/{chunk-SVYO6AO7.js → chunk-BV3FLP2L.js} +41 -1
  65. package/{chunk-RZOV7OMV.js → chunk-C4VAR65S.js} +83 -141
  66. package/{chunk-COFEN36Z.js → chunk-C4WTX5TU.js} +2 -2
  67. package/{chunk-ZL5RAEEB.js → chunk-CIRB724Q.js} +1 -1
  68. package/{chunk-F6UUQOG6.js → chunk-CKT6QUE2.js} +4 -4
  69. package/{chunk-X7SDOJUM.js → chunk-CMZ3Z5PT.js} +14 -14
  70. package/{secretCommands-LXDWOLZ6.js → chunk-D726I5AZ.js} +191 -16
  71. package/{chunk-TAKB25RM.js → chunk-DNKTQ3IN.js} +4 -4
  72. package/chunk-DVQH4BTR.js +1137 -0
  73. package/{chunk-WYDI6TGM.js → chunk-DWX2HEVC.js} +91 -132
  74. package/{chunk-5MQRBSMW.js → chunk-EIAI3PPH.js} +111 -113
  75. package/chunk-EUCFKKDM.js +247 -0
  76. package/chunk-EWQ3HGNZ.js +90 -0
  77. package/{chunk-RPQXPZZF.js → chunk-F3GRJO4Z.js} +908 -13
  78. package/{chunk-YTF4WH7J.js → chunk-FIYSMXHY.js} +1 -1
  79. package/{chunk-75XIDFBW.js → chunk-FJ23FZXF.js} +72 -28
  80. package/{chunk-INN4LTAJ.js → chunk-FJK526XH.js} +2 -2
  81. package/chunk-FS2XP5D7.js +142 -0
  82. package/{chunk-FUGMREBO.js → chunk-FYF2TONJ.js} +5 -5
  83. package/{chunk-PCLE46CE.js → chunk-GBWGPTA7.js} +2 -1
  84. package/{chunk-TX5EYMGT.js → chunk-GYVCJABP.js} +30 -254
  85. package/{chunk-3UKL3HPD.js → chunk-HOCHUZQ7.js} +8 -78
  86. package/{chunk-EHSZD5OI.js → chunk-HXER7YJF.js} +4 -4
  87. package/chunk-HYIETXA6.js +99 -0
  88. package/{chunk-H2TJUNCH.js → chunk-I4EADJ4P.js} +6 -6
  89. package/{chunk-TCZHTTUU.js → chunk-I7WBYGBP.js} +8 -8
  90. package/{chunk-6DWMYIUY.js → chunk-IILMY4W4.js} +14 -9
  91. package/chunk-JA3ICVJY.js +271 -0
  92. package/{chunk-ZRSNONOB.js → chunk-JWXITTQB.js} +8 -3
  93. package/{chunk-H4UOTUOX.js → chunk-KEN3N2TN.js} +148 -18
  94. package/{chunk-LEC5ALIN.js → chunk-KEPOVMF4.js} +1 -1
  95. package/{chunk-UHJGXRJ4.js → chunk-KQSYAIZR.js} +3 -3
  96. package/{chunk-4VJAC32I.js → chunk-L5I543VB.js} +3 -2
  97. package/chunk-LKA64WH4.js +227 -0
  98. package/{chunk-QHPRUL4O.js → chunk-LVL6GFCM.js} +4 -4
  99. package/{chunk-H5HF7TJA.js → chunk-MAIITKBT.js} +2 -2
  100. package/chunk-MBG66ZBH.js +226 -0
  101. package/{chunk-YUA6OAH5.js → chunk-MDLS23JK.js} +2 -2
  102. package/{chunk-VL5KOY2C.js → chunk-MK2Q7ZJD.js} +67 -5
  103. package/{chunk-MDB67IWP.js → chunk-MS4NZNKI.js} +10 -10
  104. package/{chunk-VO4WSAVP.js → chunk-MYHNBEXD.js} +3 -3
  105. package/{chunk-ZXOUUDCG.js → chunk-MZLE5HQ3.js} +3654 -231
  106. package/{chunk-AZMYUSVF.js → chunk-N5Z2V73W.js} +1 -1
  107. package/{chunk-V5Y3R6BT.js → chunk-NIZ2BXFD.js} +213 -210
  108. package/{chunk-KFLT5KAD.js → chunk-NWP2OYOX.js} +20 -20
  109. package/{chunk-G2BQWAVT.js → chunk-O6J3OTOP.js} +4 -4
  110. package/{chunk-VNYYOX3V.js → chunk-OB6DVWPF.js} +141 -48
  111. package/{chunk-YWSEPJ7C.js → chunk-OBWT45ZU.js} +3 -3
  112. package/{chunk-ZNWI6OVT.js → chunk-ODJ7BVSI.js} +80 -11
  113. package/{chunk-XJWWBO34.js → chunk-OJKUU3LP.js} +5 -7
  114. package/{chunk-HUBHAQK2.js → chunk-ON37YXGX.js} +29 -29
  115. package/{chunk-UYD5HQ6T.js → chunk-P5ZJRTCH.js} +5429 -1752
  116. package/{chunk-6XIE5ZGI.js → chunk-PDCV7P5W.js} +1 -1
  117. package/{chunk-WRYQ35LQ.js → chunk-PJCIP64Z.js} +859 -57
  118. package/{chunk-7QTZCMKL.js → chunk-PJVKMGPZ.js} +1089 -1639
  119. package/{chunk-A7TFUNZO.js → chunk-PPJYZRSQ.js} +6 -2
  120. package/chunk-QHEN7NZ7.js +46 -0
  121. package/{chunk-OQPKUBPB.js → chunk-QNWG52I4.js} +19 -7
  122. package/{chunk-YGILMZ7N.js → chunk-QVBXJNZ2.js} +1 -1
  123. package/{chunk-7BT37FK3.js → chunk-RDH5CQ4T.js} +648 -131
  124. package/{chunk-C6KNNXWU.js → chunk-RGQ4UUWZ.js} +25 -2
  125. package/{chunk-OWYYDMGJ.js → chunk-S2NTVGA2.js} +4 -2
  126. package/{chunk-KC4XDTT3.js → chunk-SOF4OWDM.js} +6 -4
  127. package/{chunk-RLBNLZVC.js → chunk-SQYIK6HO.js} +1 -1
  128. package/{chunk-YJAFKXMU.js → chunk-SVT62ULE.js} +50 -48
  129. package/{chunk-KIM6CLW5.js → chunk-SY3C4SQ7.js} +42 -15
  130. package/{chunk-JY5NGFFH.js → chunk-SYTHYBMI.js} +5 -5
  131. package/{chunk-WMTBPBMP.js → chunk-T6DXNI6Z.js} +52 -50
  132. package/chunk-TLE77UJ5.js +230 -0
  133. package/{chunk-4VNS5WPM.js → chunk-U67V476Y.js} +1 -8
  134. package/{chunk-F7CI2ZC5.js → chunk-UAIHKQIA.js} +2 -1
  135. package/{chunk-R5O4QAWG.js → chunk-UB3D4TRQ.js} +11 -77
  136. package/{chunk-WPORQFYN.js → chunk-UVLYNWIE.js} +2 -2
  137. package/{chunk-NOKUNJON.js → chunk-UYOICCYG.js} +29 -19
  138. package/{chunk-4I7ERB7F.js → chunk-VREDDN25.js} +1 -1
  139. package/{chunk-O2TZF4AI.js → chunk-WAE3GFCJ.js} +3 -3
  140. package/{chunk-H7PPIYWP.js → chunk-WI67URFP.js} +20 -20
  141. package/{chunk-7OCO4TDT.js → chunk-WJVYAO6P.js} +1 -1
  142. package/{chunk-T43B7LB2.js → chunk-WKGQSYTB.js} +1 -1
  143. package/{chunk-BBJ22CLB.js → chunk-WUUH4LWZ.js} +60 -30
  144. package/{chunk-4T2WNOY7.js → chunk-X7UF53VA.js} +33 -22
  145. package/{chunk-TY3TIUJK.js → chunk-XI2BWJM5.js} +65 -0
  146. package/{chunk-LLRPJECG.js → chunk-XWVCYUUU.js} +16 -159
  147. package/{chunk-J5JTMQIA.js → chunk-YFLVRVYK.js} +1 -1
  148. package/{chunk-EYLGAEB4.js → chunk-YGMBIXCF.js} +132 -0
  149. package/chunk-YL3EFYL3.js +199 -0
  150. package/{chunk-MMA3LZ3W.js → chunk-YNIYE47Z.js} +1 -1
  151. package/{chunk-W4S457LU.js → chunk-YU4ZPWVF.js} +41 -5
  152. package/{chunk-7Y4YTDQF.js → chunk-YWWDC3O7.js} +281 -159
  153. package/chunk-YZMNK53S.js +68 -0
  154. package/{chunk-RSHTSUEG.js → chunk-Z2PITYZN.js} +2060 -602
  155. package/{chunk-FY7F4Q6X.js → chunk-Z4PCXPUE.js} +2 -2
  156. package/{cliAgentConfigHelpers-WJBZQTLW.js → cliAgentConfigHelpers-TKYL43MT.js} +15 -16
  157. package/{cliAuthorityBrokerClient-PM3U6Q6J.js → cliAuthorityBrokerClient-XHH7MH2P.js} +1 -1
  158. package/{cliAuthorityStoreDriver-TKLXNNTG.js → cliAuthorityStoreDriver-6FE3BJNB.js} +1 -1
  159. package/{cliEnvHelpers-BVYTMUPJ.js → cliEnvHelpers-VPSJ4XWC.js} +3 -3
  160. package/{cliExecutor-BWBF2MTI.js → cliExecutor-4MAX3PZL.js} +2 -2
  161. package/cliLocalAgentRecordReader-MHHD4T7R.js +90 -0
  162. package/{commandRegistry-W63CYRZJ.js → commandRegistry-5DA5UP7S.js} +105 -97
  163. package/{contentThunks-U7PL5MQD.js → contentThunks-5GUQ7FWJ.js} +47 -43
  164. package/{cooldownCommands-TIGUHXTD.js → cooldownCommands-X7P5M2V5.js} +5 -4
  165. package/{createAgentAutomationAction-OLBQDD6R.js → createAgentAutomationAction-UCLTHQRI.js} +51 -49
  166. package/{createDialogAction-SVH6B3SB.js → createDialogAction-UPN774AF.js} +46 -48
  167. package/{createPageAction-F4DIWZ2Z.js → createPageAction-JRQ2TA4O.js} +50 -48
  168. package/{cursorProvider-YGGNMVWX.js → cursorProvider-2RACMEMF.js} +1 -1
  169. package/{db-HUCI5R4G.js → db-CS4ZJQKV.js} +1 -1
  170. package/{dbSlice-BVH2YZPQ.js → dbSlice-WNON7TOL.js} +17 -16
  171. package/{deleteFile-5YOEKV4U.js → deleteFile-Q3YDB4ML.js} +9 -9
  172. package/{desktopFolderProjects-SFY5EZS3.js → desktopFolderProjects-4POAMVJN.js} +2 -2
  173. package/{dialogCommands-KHIEPY3M.js → dialogCommands-VRI7VCXH.js} +64 -57
  174. package/dialogNotifyCommand-6TMCX4D2.js +36 -0
  175. package/{dialogSlice-ZCTDV2PZ.js → dialogSlice-LFNVUSAN.js} +42 -40
  176. package/{dialogUsageCommand-7KCPYGHG.js → dialogUsageCommand-HTVPR2CX.js} +11 -10
  177. package/{docCreateCommands-DPMZI7G5.js → docCreateCommands-AMPXMOX3.js} +61 -55
  178. package/{docDeleteCommands-IRQQLUBT.js → docDeleteCommands-I5WFAEHP.js} +63 -57
  179. package/{docReadCommands-LK37XH6L.js → docReadCommands-X53ELNIE.js} +61 -55
  180. package/{docStore-V2KECILA.js → docStore-2VAWVLWH.js} +21 -20
  181. package/{docUpdateCommands-O6T3HJHH.js → docUpdateCommands-6QPNDC7M.js} +64 -58
  182. package/{fetchMessages-NR4KNQLO.js → fetchMessages-TQEUZD7H.js} +8 -7
  183. package/{getPricing-2MNMXEVG.js → getPricing-MB2GBXOK.js} +6 -6
  184. package/{handleSendMessageAction-2PE25WM3.js → handleSendMessageAction-AAJOHXOB.js} +194 -302
  185. package/{hostCredentialCreate-S233UMAP.js → hostCredentialCreate-GLMJ22M6.js} +123 -114
  186. package/index.js +29 -29
  187. package/{keys-BEGDOTRL.js → keys-RWF7UCB4.js} +5 -4
  188. package/legacyMigration-TF4SYJCZ.js +19 -0
  189. package/{lib-5KKIBFIT.js → lib-OT5OTXRU.js} +7087 -6664
  190. package/{localDialogRead-7NNDVVF7.js → localDialogRead-SVTPA5GY.js} +3 -3
  191. package/{localFirstLog-DHNOY2NA.js → localFirstLog-OIETGK66.js} +1 -1
  192. package/localRecall-2J6QPOK2.js +15 -0
  193. package/{localRuntimeAdapter-KY6WXNBR.js → localRuntimeAdapter-BMP57P42.js} +119 -110
  194. package/{localRuntimeAuthority-OYH4AE4G.js → localRuntimeAuthority-IBJAT62G.js} +1 -1
  195. package/{localRuntimeDb-VBIMCWUC.js → localRuntimeDb-N7KHDXS2.js} +2 -2
  196. package/{machineCommands-Q6HA3IXF.js → machineCommands-3MLIAK5Q.js} +128 -119
  197. package/{machineInfo-UKPTZO5Y.js → machineInfo-LWHTEBHJ.js} +1 -1
  198. package/machineWsRunDispatch-FKIGROQF.js +191 -0
  199. package/{memberThunks-7EDJADWU.js → memberThunks-ZGLZ36PK.js} +29 -28
  200. package/{memoryCommands-ASCE5STX.js → memoryCommands-5WC3T66U.js} +4 -4
  201. package/models-ULVWLSQ6.js +9 -0
  202. package/{oauthTokenStore-OEERZFUC.js → oauthTokenStore-RUYNYALS.js} +1 -1
  203. package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-4IC3Y4C6.js} +4 -4
  204. package/overlay-THLKYIWY.js +11 -0
  205. package/package.json +2 -2
  206. package/{pdf-U6KSUEZZ.js → pdf-KE3QI2V7.js} +1 -1
  207. package/{processSpawn-ZU5QFM43.js → processSpawn-6GEO77KV.js} +1 -1
  208. package/{profileConfig-KN3N2BLF.js → profileConfig-KOWK4HOG.js} +1 -1
  209. package/{projectArchive-DRTDIMEV.js → projectArchive-HK63GMF4.js} +52 -50
  210. package/{providerPresetApply-YXGV6NXB.js → providerPresetApply-OIFQ73LH.js} +19 -12
  211. package/{providerRegistry-S6UL6UNA.js → providerRegistry-KZ3SDZ3D.js} +10 -10
  212. package/{read-4V2RMG7N.js → read-MRQHJMJ2.js} +10 -10
  213. package/{readDocTool-BH6ATGQO.js → readDocTool-4BGTXTXA.js} +2 -2
  214. package/{readlineWorkspace-2W4WRCOU.js → readlineWorkspace-AKAHSCNY.js} +7982 -6274
  215. package/{removeDialogAgentAction-LYAZGNKW.js → removeDialogAgentAction-B6H7DXFM.js} +23 -22
  216. package/{runAgentClientLoop-J2VQBS2Z.js → runAgentClientLoop-UVAWGEON.js} +81 -79
  217. package/{runtimeDoctorCommands-QAI3MBKQ.js → runtimeDoctorCommands-FW6XKDUG.js} +12 -12
  218. package/{runtimeModeArgs-2Y7BALTO.js → runtimeModeArgs-X7DL7PUN.js} +1 -1
  219. package/secretCommands-LJXOOYA7.js +24 -0
  220. package/{setDialogExtraReferencesAction-OCRPGPYH.js → setDialogExtraReferencesAction-EVCY3TRW.js} +22 -21
  221. package/{setPrimaryDialogAgentAction-HFJDQIBU.js → setPrimaryDialogAgentAction-KPFVPHCJ.js} +23 -22
  222. package/{settingThunks-RAMHMTGM.js → settingThunks-ENOAK2WV.js} +97 -88
  223. package/{skillDiscovery-XKHROSH2.js → skillDiscovery-B5V23AXP.js} +4 -4
  224. package/{skillSummaryMarker-42HKSXYY.js → skillSummaryMarker-62UW7HI7.js} +1 -1
  225. package/{slateToRenderMarkdown-Y5IYN73U.js → slateToRenderMarkdown-R3X74MCX.js} +1 -1
  226. package/{slateUtils-NGV2NMKM.js → slateUtils-ESQAJ6RN.js} +1 -1
  227. package/{spaceCommands-KVJZVKVO.js → spaceCommands-DTTNAS2L.js} +61 -53
  228. package/store-JRVN62NM.js +46 -0
  229. package/{streamAgentChatTurn-GHBMJJ6S.js → streamAgentChatTurn-R5UY25VB.js} +875 -618
  230. package/{switchDialogAgentAction-EBRMW3RA.js → switchDialogAgentAction-SZ44XDRY.js} +21 -20
  231. package/{tableCommands-MP6VFSVT.js → tableCommands-HITDSLHS.js} +10 -10
  232. package/tombstones-FQQMEDOW.js +32 -0
  233. package/{toolApiClient-HGNO53TC.js → toolApiClient-OGQEBQVX.js} +4 -4
  234. package/{tools-EWKCPKMS.js → tools-HWFG6GMJ.js} +75 -74
  235. package/tuiSummaryLlmCaller-HQQZAMYF.js +44 -0
  236. package/{updateCommands-ZQYU6SCI.js → updateCommands-RJVCRSBP.js} +10 -8
  237. package/{updateDialogTitleAction-5GGMBTDF.js → updateDialogTitleAction-KNPOAMVS.js} +48 -46
  238. package/{usageCommand-F4IPVMIZ.js → usageCommand-FWZCB7AM.js} +11 -10
  239. package/{usageRebuildCommand-HAW2AD5N.js → usageRebuildCommand-SP2BLNJU.js} +12 -11
  240. package/userDataMerge-HT2ZVHBJ.js +13 -0
  241. package/{windowsSelfUpdate-257DV2T6.js → windowsSelfUpdate-KERHIAB4.js} +3 -3
  242. package/{workloadLifecycle-4C42SVBD.js → workloadLifecycle-DYNEYHV5.js} +6 -6
  243. package/agentRecordCommands-ZQ7SVYGG.js +0 -167
  244. package/agentRunCommand-WS7IGO2W.js +0 -196
  245. package/chunk-3CGG2PAL.js +0 -594
  246. package/chunk-5XBUWM6I.js +0 -89
  247. package/chunk-CJEIOP3E.js +0 -0
  248. package/chunk-EHGEOAHI.js +0 -636
  249. package/chunk-FW6YHHLI.js +0 -842
  250. package/chunk-GPVRUGGY.js +0 -115
  251. package/chunk-HSVBJRF4.js +0 -339
  252. package/chunk-WJZOQR2J.js +0 -151
  253. package/chunk-ZCWRMUWT.js +0 -89
  254. package/dist-M676ULYG.js +0 -7314
  255. package/machineWsRunDispatch-WWJQ6WR3.js +0 -182
  256. package/models-PJBE6JDV.js +0 -9
  257. package/tuiSummaryLlmCaller-ALQYUUWB.js +0 -189
  258. package/{chunk-WACI5I6V.js → chunk-2THCNKE4.js} +3 -3
  259. package/{chunk-2QHFH3DR.js → chunk-47ITIXO7.js} +6 -6
  260. package/{chunk-GOO6G4PY.js → chunk-CKG3PRZ7.js} +0 -0
  261. package/{chunk-OQHIVPG4.js → chunk-SNBZZPYH.js} +3 -3
  262. 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-VNYYOX3V.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,25 +1,38 @@
1
- import {
2
- resolveCliAgentKeyInput
3
- } from "./chunk-NBTY7YJF.js";
4
1
  import {
5
2
  buildRestorePatch
6
- } from "./chunk-SVYO6AO7.js";
3
+ } from "./chunk-BV3FLP2L.js";
4
+ import {
5
+ buildLocalAgentLookupKeys,
6
+ shouldReadAgentKeyRemotely
7
+ } from "./chunk-2ZKFCIJJ.js";
8
+ import {
9
+ resolveCliAgentKeyInput
10
+ } from "./chunk-BR3GT6MR.js";
7
11
  import {
8
12
  createHostCredentialBrokerChain,
9
13
  createStrictHostCredentialBroker
10
- } from "./chunk-RSHTSUEG.js";
14
+ } from "./chunk-Z2PITYZN.js";
11
15
  import {
12
- buildAgentRuntimeAgentLookupKeys,
13
- shouldFetchAgentRuntimeRecordRemotely
14
- } from "./chunk-RZOV7OMV.js";
16
+ collectInvalidAgentSkillModes,
17
+ formatInvalidAgentSkillModeMessage,
18
+ formatInvalidAgentSkillModesFieldMessage,
19
+ isAgentSkillModesFieldShapeValid
20
+ } from "./chunk-FS2XP5D7.js";
15
21
  import {
16
22
  buildAgentApiKeyCredentialRef,
17
23
  migrateAgentSecrets
18
- } from "./chunk-2QHFH3DR.js";
24
+ } from "./chunk-47ITIXO7.js";
19
25
  import {
20
26
  assertCredentialRef,
21
27
  createFileCredentialBroker
22
- } 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";
23
36
  import {
24
37
  toErrorMessage
25
38
  } from "./chunk-HNMXYYJR.js";
@@ -29,14 +42,7 @@ import {
29
42
  resolveAuthToken,
30
43
  resolveServerCandidates,
31
44
  resolveServerUrl
32
- } from "./chunk-WACI5I6V.js";
33
- import {
34
- readPipeText,
35
- spawnProcess
36
- } from "./chunk-4O22PGNQ.js";
37
- import {
38
- createAgentKey
39
- } from "./chunk-JY5NGFFH.js";
45
+ } from "./chunk-2THCNKE4.js";
40
46
 
41
47
  // packages/agent-runtime/sessionCredentialBroker.ts
42
48
  function createSessionMemoryCredentialBroker() {
@@ -111,10 +117,6 @@ function normalizeAgentHandle(value) {
111
117
  return typeof value === "string" && value.trim() ? value.trim().toLowerCase().replace(/\s+/g, " ") : void 0;
112
118
  }
113
119
 
114
- // packages/cli/client/localAgentRecords.ts
115
- var buildLocalAgentLookupKeys = buildAgentRuntimeAgentLookupKeys;
116
- var shouldReadAgentKeyRemotely = shouldFetchAgentRuntimeRecordRemotely;
117
-
118
120
  // packages/cli/agentRecordHelpers.ts
119
121
  var PROVIDER_COPY_FIELDS = [
120
122
  "apiSource",
@@ -635,7 +637,7 @@ async function bindVaultCredentialToAgent(args) {
635
637
  const secret = await broker.get(args.vaultId);
636
638
  if (!secret) {
637
639
  throw new Error(
638
- `--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.`
639
641
  );
640
642
  }
641
643
  return await storeAgentCredential({ agentKey: args.agentKey, secret, broker: args.broker });
@@ -694,6 +696,16 @@ function parseAgentUpdateArgs(args) {
694
696
  }
695
697
  updates[entry.slice(0, index)] = parseJsonishValue(entry.slice(index + 1));
696
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
+ }
697
709
  if (Object.keys(updates).length === 0) {
698
710
  if (!promptDoc && !copyProviderFrom && !presetId) {
699
711
  throw new Error("No updates provided. Use --model / --cli-provider / --api-source / --field key=value.");
@@ -751,7 +763,7 @@ async function buildCreatedAgentRecord(args) {
751
763
  const resolvedAgentInput = resolveCliAgentKeyInput(args.parsed.agentInput);
752
764
  const agentKey = resolvedAgentInput.startsWith("agent-") ? resolvedAgentInput : createAgentKey.private(userId || "local", resolvedAgentInput);
753
765
  if (args.parsed.presetId) {
754
- const { resolveProviderPresetFields } = await import("./providerPresetApply-YXGV6NXB.js");
766
+ const { resolveProviderPresetFields } = await import("./providerPresetApply-OIFQ73LH.js");
755
767
  const fields = resolveProviderPresetFields(args.parsed.presetId);
756
768
  if (fields.kind === "manual") {
757
769
  throw new Error(
@@ -914,7 +926,6 @@ async function buildUpdatedAgentRecord(args) {
914
926
  export {
915
927
  getSharedSessionCredentialBroker,
916
928
  OAUTH_PROVIDER_REFS,
917
- buildLocalAgentLookupKeys,
918
929
  fetchWithTransportFallback,
919
930
  readAgentRecord,
920
931
  readDbRecord,