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,6 +1,6 @@
1
1
  import {
2
2
  resolveCliAgentKeyInput
3
- } from "./chunk-NBTY7YJF.js";
3
+ } from "./chunk-BR3GT6MR.js";
4
4
  import "./chunk-M2EJHDJP.js";
5
5
  import {
6
6
  toErrorMessage
@@ -10,13 +10,13 @@ import {
10
10
  resolveAuthToken,
11
11
  resolveServerCandidates,
12
12
  resolveServerUrl
13
- } from "./chunk-WACI5I6V.js";
13
+ } from "./chunk-2THCNKE4.js";
14
14
  import "./chunk-OLZBQWZU.js";
15
15
  import "./chunk-LCBAMY2M.js";
16
+ import "./chunk-G3SUCT4W.js";
16
17
  import "./chunk-4SN6J65J.js";
17
18
  import "./chunk-CF7PE763.js";
18
- import "./chunk-G3SUCT4W.js";
19
- import "./chunk-4VNS5WPM.js";
19
+ import "./chunk-U67V476Y.js";
20
20
 
21
21
  // packages/cli/agentFavoriteCommands.ts
22
22
  function wantsHelp(args) {
@@ -125,6 +125,7 @@ async function runAgentFavoriteCommand(args, deps = {}) {
125
125
  const isFavorite = !args.includes("--off");
126
126
  const primaryServerUrl = resolveServerUrl(args, env);
127
127
  const serverUrls = resolveServerCandidates(args, env, primaryServerUrl);
128
+ const favoritedAt = Date.now();
128
129
  try {
129
130
  const attempts = await setFavoriteAcrossServers({
130
131
  serverUrls,
@@ -132,9 +133,7 @@ async function runAgentFavoriteCommand(args, deps = {}) {
132
133
  fetchImpl: deps.fetchImpl ?? fetch,
133
134
  agentKey,
134
135
  isFavorite,
135
- // 同一批写入共享同一个收藏时间戳:list 合并多服务器时按 favoritedAt 取最新,
136
- // 各自取 Date.now() 会让各服务器时间错开毫秒级。
137
- favoritedAt: Date.now()
136
+ favoritedAt
138
137
  });
139
138
  const failures = attempts.filter((attempt) => !attempt.ok);
140
139
  if (failures.length === attempts.length) {
@@ -151,7 +150,7 @@ async function runAgentFavoriteCommand(args, deps = {}) {
151
150
  targetType: "agent",
152
151
  targetKey: agentKey,
153
152
  isFavorite,
154
- favoritedAt: attempts[0]?.response?.favoritedAt ?? null,
153
+ favoritedAt,
155
154
  servers: attempts
156
155
  },
157
156
  null,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveCliAgentKeyInput
3
- } from "./chunk-NBTY7YJF.js";
3
+ } from "./chunk-BR3GT6MR.js";
4
4
  import "./chunk-M2EJHDJP.js";
5
5
  import {
6
6
  toErrorMessage
@@ -11,15 +11,15 @@ import {
11
11
  readOption,
12
12
  resolveAuthToken,
13
13
  resolveServerUrl
14
- } from "./chunk-WACI5I6V.js";
14
+ } from "./chunk-2THCNKE4.js";
15
15
  import "./chunk-OLZBQWZU.js";
16
16
  import "./chunk-LCBAMY2M.js";
17
- import "./chunk-4SN6J65J.js";
18
- import "./chunk-CF7PE763.js";
19
17
  import {
20
18
  asOptionalTrimmedString
21
19
  } from "./chunk-G3SUCT4W.js";
22
- import "./chunk-4VNS5WPM.js";
20
+ import "./chunk-4SN6J65J.js";
21
+ import "./chunk-CF7PE763.js";
22
+ import "./chunk-U67V476Y.js";
23
23
 
24
24
  // packages/cli/agentGrantCommands.ts
25
25
  function wantsHelp(args) {
@@ -10,60 +10,58 @@ import {
10
10
  listRemotePublicAgents,
11
11
  normalizeListedAgent,
12
12
  parseAgentListArgs
13
- } from "./chunk-WXYLV624.js";
13
+ } from "./chunk-AIHYNKGV.js";
14
14
  import {
15
15
  buildSpaceLookup,
16
16
  getSpaceContentKeys
17
17
  } from "./chunk-ID4G2MAR.js";
18
18
  import {
19
19
  readLiveDbRecordAfterTombstoneMerge
20
- } from "./chunk-3AKFVZ2I.js";
20
+ } from "./chunk-MYHNBEXD.js";
21
21
  import {
22
22
  refreshSubscriptionQuotas
23
- } from "./chunk-YGILMZ7N.js";
23
+ } from "./chunk-QVBXJNZ2.js";
24
24
  import {
25
25
  getReadableCliDb
26
- } from "./chunk-J5JTMQIA.js";
26
+ } from "./chunk-YFLVRVYK.js";
27
27
  import {
28
28
  applyCredentialAvailability,
29
29
  clearCredentialAvailabilityIfMarkedAt,
30
30
  readCredentialAvailability,
31
31
  readEffectiveCredentialEntry
32
- } from "./chunk-GSQNH63I.js";
32
+ } from "./chunk-FIYSMXHY.js";
33
33
  import {
34
34
  queryUserRecords,
35
35
  readDbRecord
36
- } from "./chunk-IF45XG7K.js";
37
- import "./chunk-LKZPX6YH.js";
38
- import "./chunk-NBTY7YJF.js";
36
+ } from "./chunk-6WU5572L.js";
39
37
  import {
40
38
  buildAgentDiscoveryResult,
41
39
  matchesAgentQuery,
42
40
  resolvePaginationArgs,
43
41
  summarizeCredentialGroups,
44
42
  toDiscoverySafeAgentSummary
45
- } from "./chunk-CJRONOYL.js";
46
- import "./chunk-OXME3PEE.js";
47
- import {
48
- resolveNoloHome
49
- } from "./chunk-GLKOYSRU.js";
43
+ } from "./chunk-34J5K2YA.js";
44
+ import "./chunk-GBWGPTA7.js";
50
45
  import "./chunk-UEILX4EV.js";
51
- import "./chunk-D2MDMY2M.js";
52
- import "./chunk-FHU44LN3.js";
46
+ import "./chunk-BV3FLP2L.js";
47
+ import "./chunk-2ZKFCIJJ.js";
48
+ import "./chunk-BR3GT6MR.js";
49
+ import "./chunk-Z2PITYZN.js";
53
50
  import "./chunk-ZNFJWEN4.js";
54
- import "./chunk-4KH4J3G5.js";
55
- import "./chunk-CTPXME7U.js";
56
- import "./chunk-HNUWUO75.js";
51
+ import "./chunk-3LMUPOHG.js";
57
52
  import "./chunk-CHOZJMJS.js";
58
53
  import "./chunk-PWTNI4N7.js";
59
- import "./chunk-Y63ZSOR6.js";
60
- import "./chunk-W4S457LU.js";
61
- import "./chunk-4KB6WQUL.js";
54
+ import "./chunk-AL3TYDIF.js";
55
+ import "./chunk-QNWG52I4.js";
56
+ import "./chunk-HNUWUO75.js";
57
+ import "./chunk-LKA64WH4.js";
58
+ import "./chunk-YU4ZPWVF.js";
59
+ import "./chunk-2WZXXAQD.js";
60
+ import "./chunk-OBWT45ZU.js";
61
+ import "./chunk-BGP2EDFG.js";
62
62
  import "./chunk-56GBUMO5.js";
63
- import "./chunk-NOMIGOST.js";
64
- import "./chunk-UTV2AYEG.js";
65
- import "./chunk-E2BESSAW.js";
66
- import "./chunk-25JZEIXN.js";
63
+ import "./chunk-EIAI3PPH.js";
64
+ import "./chunk-C4VAR65S.js";
67
65
  import {
68
66
  DEFAULT_PROVIDER_RETRY_MS,
69
67
  formatQuotaSummary,
@@ -72,79 +70,89 @@ import {
72
70
  resolveCredentialCandidateKeys,
73
71
  resolveCredentialKeyWithFallback,
74
72
  shouldClearCooldownFromQuota
75
- } from "./chunk-YUXQAVRD.js";
76
- import "./chunk-KC4XDTT3.js";
77
- import "./chunk-2WZXXAQD.js";
78
- import "./chunk-YWSEPJ7C.js";
79
- import "./chunk-WJZOQR2J.js";
80
- import "./chunk-UHJGXRJ4.js";
73
+ } from "./chunk-HOCHUZQ7.js";
74
+ import "./chunk-SOF4OWDM.js";
75
+ import "./chunk-MAIITKBT.js";
76
+ import "./chunk-E2BESSAW.js";
77
+ import "./chunk-TLE77UJ5.js";
78
+ import "./chunk-FS2XP5D7.js";
79
+ import "./chunk-KQSYAIZR.js";
81
80
  import "./chunk-2MBTWINN.js";
82
- import "./chunk-JTDORD5P.js";
83
- import "./chunk-CZM5YTZ7.js";
84
- import "./chunk-H57T64RA.js";
81
+ import "./chunk-NIZ2BXFD.js";
85
82
  import "./chunk-5ZUL4CUO.js";
83
+ import "./chunk-RDH5CQ4T.js";
84
+ import "./chunk-H57T64RA.js";
86
85
  import "./chunk-UKZX3NHN.js";
87
86
  import "./chunk-5MMAK75Q.js";
88
- import "./chunk-2QHFH3DR.js";
89
- import "./chunk-OQHIVPG4.js";
87
+ import "./chunk-47ITIXO7.js";
90
88
  import "./chunk-KX6YBIHG.js";
89
+ import "./chunk-SNBZZPYH.js";
91
90
  import "./chunk-DWLEOOGR.js";
91
+ import "./chunk-OW765XBU.js";
92
92
  import "./chunk-7DPNBQSV.js";
93
- import "./chunk-T43B7LB2.js";
94
- import "./chunk-ZRSNONOB.js";
95
- import "./chunk-4VJAC32I.js";
96
- import "./chunk-CJEIOP3E.js";
97
- import "./chunk-ZCWRMUWT.js";
98
- import "./chunk-ZC3CMUKU.js";
99
- import "./chunk-LOEO7LRC.js";
93
+ import "./chunk-WKGQSYTB.js";
94
+ import "./chunk-SY3C4SQ7.js";
95
+ import "./chunk-PJCIP64Z.js";
96
+ import "./chunk-6OVNSQHN.js";
97
+ import "./chunk-W6RFEDN4.js";
98
+ import "./chunk-7ET2U67U.js";
99
+ import "./chunk-3IK6ILVW.js";
100
100
  import "./chunk-M2EJHDJP.js";
101
- import "./chunk-KIM6CLW5.js";
102
- import "./chunk-JNKSDZFS.js";
101
+ import {
102
+ createKey,
103
+ createTokenKey
104
+ } from "./chunk-SYTHYBMI.js";
105
+ import "./chunk-OJKUU3LP.js";
106
+ import "./chunk-YZMNK53S.js";
107
+ import "./chunk-I42VC5KR.js";
108
+ import "./chunk-JWXITTQB.js";
109
+ import "./chunk-L5I543VB.js";
110
+ import "./chunk-KHCLMKZZ.js";
111
+ import "./chunk-4O22PGNQ.js";
112
+ import {
113
+ t
114
+ } from "./chunk-OB6DVWPF.js";
115
+ import {
116
+ listRunRecords
117
+ } from "./chunk-2GJKRKI6.js";
118
+ import "./chunk-AQZ6BMRK.js";
119
+ import "./chunk-AMEOV5VZ.js";
120
+ import "./chunk-KEN3N2TN.js";
121
+ import "./chunk-EWQ3HGNZ.js";
103
122
  import "./chunk-PSCNXBYA.js";
104
- import "./chunk-TCZHTTUU.js";
105
- import "./chunk-YUA6OAH5.js";
106
- import "./chunk-SM3NSZJV.js";
107
- import "./chunk-JRTNUU5Z.js";
123
+ import "./chunk-I7WBYGBP.js";
124
+ import "./chunk-MDLS23JK.js";
108
125
  import {
109
126
  toErrorMessage
110
127
  } from "./chunk-HNMXYYJR.js";
128
+ import "./chunk-3EUW3WEO.js";
129
+ import "./chunk-2UCBGYO4.js";
130
+ import "./chunk-JRTNUU5Z.js";
111
131
  import "./chunk-KUG52IAP.js";
112
- import "./chunk-GOO6G4PY.js";
132
+ import "./chunk-CKG3PRZ7.js";
113
133
  import "./chunk-QSJ3HFEF.js";
134
+ import "./chunk-U6VC4MU4.js";
135
+ import "./chunk-WWC7I6TA.js";
114
136
  import {
115
137
  parseUserIdFromAuthToken,
116
138
  readOption,
117
139
  resolveAuthToken,
118
140
  resolveServerCandidates,
119
141
  resolveServerUrl
120
- } from "./chunk-WACI5I6V.js";
142
+ } from "./chunk-2THCNKE4.js";
121
143
  import "./chunk-OLZBQWZU.js";
122
144
  import "./chunk-LCBAMY2M.js";
145
+ import "./chunk-G3SUCT4W.js";
123
146
  import "./chunk-4SN6J65J.js";
124
147
  import "./chunk-CF7PE763.js";
125
- import "./chunk-4O22PGNQ.js";
126
- import {
127
- t
128
- } from "./chunk-3RQVYR4B.js";
129
148
  import "./chunk-G7Y4GXTY.js";
130
149
  import "./chunk-6UBGXX2W.js";
131
- import {
132
- createKey,
133
- createTokenKey
134
- } from "./chunk-JY5NGFFH.js";
135
- import "./chunk-XJWWBO34.js";
136
- import "./chunk-I42VC5KR.js";
137
- import "./chunk-U6VC4MU4.js";
138
- import "./chunk-WWC7I6TA.js";
139
- import "./chunk-3EUW3WEO.js";
140
- import "./chunk-G3SUCT4W.js";
141
- import "./chunk-4VNS5WPM.js";
150
+ import "./chunk-U67V476Y.js";
142
151
 
143
152
  // packages/ai/agent/speedSampleCache.ts
144
153
  var SPEED_SAMPLE_DISK_CACHE_TTL_MS = 10 * 6e4;
145
154
  var SPEED_SAMPLE_SCAN_BUDGET_MS = 2500;
146
- var SPEED_SAMPLE_CACHE_VERSION = 2;
147
- var SPEED_SAMPLE_LEGACY_CACHE_VERSION = 1;
155
+ var SPEED_SAMPLE_CACHE_VERSION = 4;
148
156
  var isFiniteNumber = (value) => typeof value === "number" && Number.isFinite(value);
149
157
  var sanitizeSample = (value) => {
150
158
  if (!value || typeof value !== "object") return null;
@@ -164,7 +172,7 @@ async function parseCacheFile(cachePath, userId) {
164
172
  const parsed = JSON.parse(raw);
165
173
  if (!parsed || typeof parsed !== "object") return null;
166
174
  const version = parsed.version;
167
- if (version !== SPEED_SAMPLE_CACHE_VERSION && version !== SPEED_SAMPLE_LEGACY_CACHE_VERSION) {
175
+ if (version !== SPEED_SAMPLE_CACHE_VERSION) {
168
176
  return null;
169
177
  }
170
178
  if (parsed.userId !== userId) return null;
@@ -181,7 +189,7 @@ async function parseCacheFile(cachePath, userId) {
181
189
  }
182
190
  samples.set(model, cleaned);
183
191
  }
184
- const complete = version === SPEED_SAMPLE_LEGACY_CACHE_VERSION ? true : parsed.complete === true;
192
+ const complete = parsed.complete === true;
185
193
  const cursor = typeof parsed.cursor === "string" && parsed.cursor.length > 0 ? parsed.cursor : void 0;
186
194
  return { samples, at: parsed.at, complete, cursor: complete ? void 0 : cursor };
187
195
  } catch {
@@ -212,8 +220,8 @@ function resolveSpeedSamplesProgressPath(cachePath) {
212
220
  async function writeSpeedSamplesCache(cachePath, payload) {
213
221
  try {
214
222
  const fs = await import("node:fs/promises");
215
- const path2 = await import("node:path");
216
- await fs.mkdir(path2.dirname(cachePath), { recursive: true });
223
+ const path = await import("node:path");
224
+ await fs.mkdir(path.dirname(cachePath), { recursive: true });
217
225
  const tmpPath = `${cachePath}.tmp-${process.pid}-${Math.random().toString(36).slice(2, 8)}`;
218
226
  await fs.writeFile(tmpPath, JSON.stringify(payload), "utf8");
219
227
  await fs.rename(tmpPath, cachePath);
@@ -295,6 +303,7 @@ function buildCandidateSpeedContext(models, samplesByModel, options = {}) {
295
303
  return formatCandidateSpeedFacts(resolveCandidateSpeedFacts(models, samplesByModel), options);
296
304
  }
297
305
  var SPEED_SAMPLE_PAGE_SIZE = 2e3;
306
+ var DISPATCH_ENTRY_PATH = "agent-run";
298
307
  var eventTime = (value) => {
299
308
  if (isFiniteNumber2(value.timestamp)) return value.timestamp;
300
309
  if (isFiniteNumber2(value.createdAt)) return value.createdAt;
@@ -331,6 +340,25 @@ async function collectRecentSpeedSamples(db, userId, options = {}) {
331
340
  const budgetMs = isFiniteNumber2(options.budgetMs) ? options.budgetMs : Number.POSITIVE_INFINITY;
332
341
  const { start, end } = createTokenKey.rangeOfUser(userId);
333
342
  const failedPrefix = createKey("token", userId, "failed-call", "");
343
+ const dispatchRunCache = /* @__PURE__ */ new Map();
344
+ const isDispatchSampleRecord = async (record2, resolver, cache) => {
345
+ if (record2.entry_path !== DISPATCH_ENTRY_PATH && record2.entry_path !== "cli-local") return false;
346
+ const runId = typeof record2.dialogId === "string" ? record2.dialogId.trim() : "";
347
+ if (!runId) return false;
348
+ const cacheKey = `${record2.entry_path}:${runId}`;
349
+ const cached = cache.get(cacheKey);
350
+ if (cached !== void 0) return cached;
351
+ let dispatch = false;
352
+ if (resolver) {
353
+ try {
354
+ dispatch = await resolver(runId, record2.entry_path) === true;
355
+ } catch {
356
+ dispatch = false;
357
+ }
358
+ }
359
+ cache.set(cacheKey, dispatch);
360
+ return dispatch;
361
+ };
334
362
  const collected = /* @__PURE__ */ new Map();
335
363
  const startedAt = Date.now();
336
364
  let lastKey = options.startAfter;
@@ -356,7 +384,15 @@ async function collectRecentSpeedSamples(db, userId, options = {}) {
356
384
  newestKey = key;
357
385
  if (key.startsWith(failedPrefix)) continue;
358
386
  if (!raw || typeof raw !== "object") continue;
359
- collectSample(collected, raw);
387
+ const record2 = raw;
388
+ const resolver = options.isDispatchRun ?? db.isDispatchRun;
389
+ if (!await isDispatchSampleRecord(
390
+ record2,
391
+ resolver ? (runId, entryPath) => resolver.call(db, runId, entryPath) : void 0,
392
+ dispatchRunCache
393
+ ))
394
+ continue;
395
+ collectSample(collected, record2);
360
396
  }
361
397
  if (accepted === 0 || accepted < pageSize) break;
362
398
  lastKey = newestKey;
@@ -507,13 +543,45 @@ async function injectSpeedContextIntoListAgentsResult(result, options = {}) {
507
543
  }
508
544
  }
509
545
 
546
+ // packages/ai/agent/dispatchSpeedProvenance.ts
547
+ var record = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
548
+ function isServerDispatchSpeedSource(value, dialogId, userId) {
549
+ const dialog = record(value);
550
+ const proof = record(dialog.dispatchSpeedProvenance);
551
+ return proof.version === 1 && proof.source === "server-startAgentRun" && proof.userId === userId && record(dialog.runtimeBinding).tenantUserId === userId && dialog.id === dialogId;
552
+ }
553
+ function isLocalDispatchSpeedSource(value, dialogId, userId) {
554
+ const run = record(value);
555
+ const proof = record(run.dispatchSpeedProvenance);
556
+ return proof.version === 1 && proof.source === "cli-startAgentRun" && proof.userId === userId && typeof run.runId === "string" && run.runId.length > 0 && run.dialogId === dialogId && run.ephemeral !== true;
557
+ }
558
+
510
559
  // packages/cli/agentListCommands.ts
511
- import path from "node:path";
512
- var discardOutput = { write: () => void 0 };
513
- function resolveSpeedSamplesCachePath(env, userId) {
514
- const safeUserId = userId.replace(/[^A-Za-z0-9._-]/g, "_");
515
- const mergedEnv = { ...process.env, ...env };
516
- return path.join(resolveNoloHome({ env: mergedEnv }), "cache", `speed-samples-${safeUserId}.json`);
560
+ var createCliDispatchSampleDb = (db, userId, env) => {
561
+ let localDialogs;
562
+ return {
563
+ iterator: (options) => db.iterator(options),
564
+ isDispatchRun: async (dialogId, entryPath) => {
565
+ if (entryPath === "cli-local") {
566
+ localDialogs ??= new Set(listRunRecords({ env }).filter(
567
+ (run) => typeof run.dialogId === "string" && isLocalDispatchSpeedSource(run, run.dialogId, userId)
568
+ ).map((run) => run.dialogId));
569
+ return localDialogs.has(dialogId);
570
+ }
571
+ if (entryPath !== "agent-run") return false;
572
+ try {
573
+ return isServerDispatchSpeedSource(await db.get(`dialog-${userId}-${dialogId}`), dialogId, userId);
574
+ } catch {
575
+ return false;
576
+ }
577
+ }
578
+ };
579
+ };
580
+ function formatCooldownUntilLocal(at, now = /* @__PURE__ */ new Date()) {
581
+ const pad = (value) => String(value).padStart(2, "0");
582
+ const time = `${pad(at.getHours())}:${pad(at.getMinutes())}`;
583
+ const sameDay = at.getFullYear() === now.getFullYear() && at.getMonth() === now.getMonth() && at.getDate() === now.getDate();
584
+ return sameDay ? time : `${pad(at.getMonth() + 1)}-${pad(at.getDate())} ${time}`;
517
585
  }
518
586
  async function runAgentListCommand(args, deps = {}) {
519
587
  const env = deps.env ?? process.env;
@@ -525,7 +593,7 @@ async function runAgentListCommand(args, deps = {}) {
525
593
  if (requestedScope && publicOnly && requestedScope !== "public") {
526
594
  throw new Error(`Conflicting arguments: scope='${requestedScope}' conflicts with publicOnly=true.`);
527
595
  }
528
- const scope = requestedScope ?? "preferred";
596
+ const scope = requestedScope ?? "all";
529
597
  const spaceInput = readOption(args, "--space") ?? readOption(args, "--space-id");
530
598
  const authToken = resolveAuthToken(args, env);
531
599
  if (!authToken) {
@@ -591,7 +659,7 @@ async function runAgentListCommand(args, deps = {}) {
591
659
  limit: upstreamLimit,
592
660
  query: hasQuery ? query : void 0
593
661
  })));
594
- agents = publicResults.flatMap((r) => r.agents);
662
+ const publicAgents = publicResults.flatMap((r) => r.agents);
595
663
  for (const r of publicResults) {
596
664
  if (r.truncated) cliUpstreamTruncated = true;
597
665
  if (typeof r.total === "number") {
@@ -599,14 +667,21 @@ async function runAgentListCommand(args, deps = {}) {
599
667
  }
600
668
  }
601
669
  if (scope === "all") {
602
- const preferred = await listRemoteAgentsAcrossServers({
603
- authToken,
604
- fallbackFetchImpl,
605
- fetchImpl,
606
- serverUrls,
607
- userId
608
- });
609
- agents = [...preferred.agents, ...agents];
670
+ const seenPublicKeys = /* @__PURE__ */ new Set();
671
+ for (const agent of agents) {
672
+ if (agent.publicKey) seenPublicKeys.add(agent.publicKey);
673
+ }
674
+ agents = [
675
+ ...agents,
676
+ ...publicAgents.filter((agent) => {
677
+ if (!agent.publicKey) return true;
678
+ if (seenPublicKeys.has(agent.publicKey)) return false;
679
+ seenPublicKeys.add(agent.publicKey);
680
+ return true;
681
+ })
682
+ ];
683
+ } else {
684
+ agents = publicAgents;
610
685
  }
611
686
  }
612
687
  agents = agents.filter((agent) => agent.privateKey.startsWith("agent-"));
@@ -648,7 +723,7 @@ async function runAgentListCommand(args, deps = {}) {
648
723
  await readCredentialAvailability(env).catch(() => ({}))
649
724
  );
650
725
  let unavailableCount = agents.filter((agent) => isAgentUnavailableNow(agent)).length;
651
- let agentsForOutput = showUnavailable ? agents : agents.filter((agent) => !isAgentUnavailableNow(agent));
726
+ let agentsForOutput = agents;
652
727
  if (query && typeof query === "string" && query.trim()) {
653
728
  agentsForOutput = agentsForOutput.filter((agent) => matchesAgentQuery(agent, query));
654
729
  }
@@ -707,12 +782,6 @@ async function runAgentListCommand(args, deps = {}) {
707
782
  }
708
783
  }
709
784
  unavailableCount = agents.filter((agent) => isAgentUnavailableNow(agent)).length;
710
- if (!showUnavailable) {
711
- agentsForOutput = agents.filter((agent) => !isAgentUnavailableNow(agent));
712
- if (query && typeof query === "string" && query.trim()) {
713
- agentsForOutput = agentsForOutput.filter((agent) => matchesAgentQuery(agent, query));
714
- }
715
- }
716
785
  }
717
786
  const totalCount = agentsForOutput.length;
718
787
  const pagedAgents = typeof pagination.limit === "number" || typeof pagination.offset === "number" ? agentsForOutput.slice(
@@ -748,18 +817,18 @@ async function runAgentListCommand(args, deps = {}) {
748
817
  fetchImpl,
749
818
  serverUrls
750
819
  });
751
- const record = favRead.record;
752
- if (!record || record.type && record.type !== "agent") continue;
753
- const norm = normalizeListedAgent(record);
754
- const candidateKeys = [record.dbKey, record.publicKey, record.id].filter((key) => typeof key === "string" && key.length > 0);
820
+ const record2 = favRead.record;
821
+ if (!record2 || record2.type && record2.type !== "agent") continue;
822
+ const norm = normalizeListedAgent(record2);
823
+ const candidateKeys = [record2.dbKey, record2.publicKey, record2.id].filter((key) => typeof key === "string" && key.length > 0);
755
824
  if (spaceContentKeys && !candidateKeys.some((key) => spaceContentKeys?.has(key))) {
756
825
  continue;
757
826
  }
758
827
  if (norm) {
759
828
  if (!favKey.startsWith("agent-pub-")) {
760
829
  norm.verifiedAgentKey = favKey;
761
- if (typeof record.userId === "string" && record.userId) {
762
- norm.ownerId = record.userId;
830
+ if (typeof record2.userId === "string" && record2.userId) {
831
+ norm.ownerId = record2.userId;
763
832
  }
764
833
  }
765
834
  agents.push(norm);
@@ -768,7 +837,7 @@ async function runAgentListCommand(args, deps = {}) {
768
837
  existingKeys.add(norm.publicKey);
769
838
  existingKeys.add(norm.id);
770
839
  } else {
771
- extraFavoriteRecords.push(record);
840
+ extraFavoriteRecords.push(record2);
772
841
  for (const key of candidateKeys) existingKeys.add(key);
773
842
  }
774
843
  } catch {
@@ -783,7 +852,7 @@ async function runAgentListCommand(args, deps = {}) {
783
852
  serverUrls
784
853
  });
785
854
  }
786
- const safeRecords = [...agents, ...extraFavoriteRecords].map((record) => toDiscoverySafeAgentSummary(record, { favoritesMap, userId })).filter((agent) => publicOnly ? agent.isPublic === true : true);
855
+ const safeRecords = [...agents, ...extraFavoriteRecords].map((record2) => toDiscoverySafeAgentSummary(record2, { favoritesMap, userId })).filter((agent) => publicOnly ? agent.isPublic === true : true);
787
856
  const discovery = buildAgentDiscoveryResult({
788
857
  agents: safeRecords,
789
858
  scope: requestedScope ?? (publicOnly ? "public" : "all"),
@@ -806,17 +875,19 @@ async function runAgentListCommand(args, deps = {}) {
806
875
  ...discovery.truncated ? { truncated: true } : {},
807
876
  unavailableCount: discovery.unavailableCount,
808
877
  // agents 在最前:host 截断长输出时保头保尾,派发所需的 agentKey
809
- // 必须落在头部;凭证分组/限流清单是说明性大块,放最后。
878
+ // 必须落在头部;凭证分组是说明性大块,放最后。
879
+ // 限流 agent 已合入 agents(带 availabilityStatus / nextAvailableAt
880
+ // 参考标注),不再单列 unavailableAgents,避免两套真相。
810
881
  agents: discovery.agents,
811
- credentialGroups: discovery.credentialGroups,
812
- unavailableAgents: discovery.unavailableAgents
882
+ credentialGroups: discovery.credentialGroups
813
883
  }, null, 2);
814
- const withSpeedContext = await injectSpeedContextIntoListAgentsResult(listResult, {
815
- db: deps.db ?? await getReadableCliDb(discardOutput),
884
+ const cliNoloHome = env.NOLO_HOME?.trim() || (env.HOME?.trim() ? `${env.HOME.trim()}/.nolo` : "");
885
+ const speedAwareListResult = await injectSpeedContextIntoListAgentsResult(listResult, {
886
+ db: createCliDispatchSampleDb(deps.db ?? await getReadableCliDb(output), userId, env),
816
887
  userId,
817
- diskCache: { cachePath: resolveSpeedSamplesCachePath(env, userId) }
888
+ ...cliNoloHome ? { diskCache: { cachePath: `${cliNoloHome}/cache/speed-samples-${userId}.json` } } : {}
818
889
  });
819
- output.write(withSpeedContext);
890
+ output.write(speedAwareListResult);
820
891
  output.write("\n");
821
892
  return 0;
822
893
  }
@@ -855,17 +926,8 @@ async function runAgentListCommand(args, deps = {}) {
855
926
  `);
856
927
  output.write(`public agents: ${agentsForOutput.filter((agent) => agent.publicRecordExists).length}
857
928
  `);
858
- if (unavailableCount > 0 && !showUnavailable) {
859
- output.write(t("agent.unavailableHidden", String(unavailableCount)));
860
- const unavailableList = agents.filter((agent) => isAgentUnavailableNow(agent));
861
- for (const unavail of unavailableList) {
862
- const remainingSec = Math.max(0, Math.ceil(((unavail.nextAvailableAt ?? 0) - Date.now()) / 1e3));
863
- const quotaSummary = formatQuotaSummary(unavail.quota, Date.now(), { model: unavail.model });
864
- const quotaText = quotaSummary ? ` (${quotaSummary})` : "";
865
- output.write(
866
- t("agent.rateLimitedRecovery", unavail.name, unavail.id, String(remainingSec), quotaText)
867
- );
868
- }
929
+ if (unavailableCount > 0) {
930
+ output.write(t("agent.rateLimitedSummary", String(unavailableCount)));
869
931
  }
870
932
  output.write(`source: ${source}
871
933
  `);
@@ -879,9 +941,20 @@ async function runAgentListCommand(args, deps = {}) {
879
941
  const credentialLine = agent.credentialConfigured ? `credentialConfigured=true${agent.credentialRef ? ` credentialRef=${agent.credentialRef}` : ""}${agent.apiKeyRef ? ` apiKeyRef=${agent.apiKeyRef}` : ""}` : "credentialConfigured=false";
880
942
  const availDecision = resolveAgentAvailability(agent);
881
943
  const availabilityStatusLine = `availability=${availDecision.status} (${availDecision.reason})`;
882
- const availabilityLine = typeof agent.nextAvailableAt === "number" && agent.nextAvailableAt > Date.now() ? `nextAvailableAt=${new Date(agent.nextAvailableAt).toISOString()}` : "nextAvailableAt=now";
944
+ const availabilityLine = typeof agent.nextAvailableAt === "number" && agent.nextAvailableAt > Date.now() ? `nextAvailableAt=${new Date(agent.nextAvailableAt).toISOString()} (reference info, not a dispatch gate)` : "nextAvailableAt=now";
883
945
  const quotaSummary = formatQuotaSummary(agent.quota, Date.now(), { model: agent.model });
884
946
  const quotaLine = `quota=${quotaSummary ?? "-"}`;
947
+ if (isAgentUnavailableNow(agent)) {
948
+ const recoveryAt = agent.nextAvailableAt;
949
+ output.write(t(
950
+ "agent.rateLimitedRecovery",
951
+ agent.name,
952
+ agent.id,
953
+ String(typeof recoveryAt === "number" ? Math.max(0, Math.ceil((recoveryAt - Date.now()) / 1e3)) : 0),
954
+ quotaSummary ? ` quota=${quotaSummary}` : "",
955
+ typeof recoveryAt === "number" ? formatCooldownUntilLocal(new Date(recoveryAt)) : "-"
956
+ ));
957
+ }
885
958
  output.write(
886
959
  [
887
960
  `
@@ -914,6 +987,5 @@ async function runAgentListCommand(args, deps = {}) {
914
987
  }
915
988
  }
916
989
  export {
917
- resolveSpeedSamplesCachePath,
918
990
  runAgentListCommand
919
991
  };