nolo-cli 0.149.0-alpha.1 → 0.151.0-alpha.3

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 (258) hide show
  1. package/{_executeModel-OW3H7ICR.js → _executeModel-T7ANHTUW.js} +134 -91
  2. package/accountResolver-7RYB4D2P.js +300 -0
  3. package/action-SXJD5N5R.js +23 -0
  4. package/{addContentAction-B2DRF7P6.js → addContentAction-ZV774PHH.js} +20 -14
  5. package/{addDialogAgentAction-2P2FLTLD.js → addDialogAgentAction-A6SMKAGH.js} +26 -22
  6. package/{agentDeleteCommand-7IDWF6E3.js → agentDeleteCommand-4L5KCKFY.js} +181 -93
  7. package/{agentEmailCommands-A6XBQZBN.js → agentEmailCommands-2IMMIRO2.js} +132 -112
  8. package/{agentGrantCommands-M3XFO6EN.js → agentGrantCommands-HOJ3JBBQ.js} +3 -3
  9. package/agentListCommands-TWFLUYIZ.js +802 -0
  10. package/{agentMachineCommands-DQPUIMAC.js → agentMachineCommands-KIWXWT6L.js} +58 -62
  11. package/{agentProviderCommands-YK2BIIXZ.js → agentProviderCommands-HL6MBLCL.js} +149 -2
  12. package/{agentPullCommand-HF4A42D4.js → agentPullCommand-FA43RBRU.js} +7 -7
  13. package/agentRecordCommands-727NPCRW.js +154 -0
  14. package/agentRunCommand-JASIG3FZ.js +183 -0
  15. package/{agentRunControl-2SKCR4SB.js → agentRunControl-IFM7IGMG.js} +10 -2
  16. package/{agentRuntimeLocal-AK2QVJHY.js → agentRuntimeLocal-KKSQJMTE.js} +47 -50
  17. package/{agentSlice-O4RUQUMT.js → agentSlice-SLV57QGU.js} +23 -16
  18. package/{appDeleteCommands-N3XEVVYC.js → appDeleteCommands-4PL4KYRN.js} +58 -59
  19. package/{appDeployCommands-AWFIXYVW.js → appDeployCommands-EEEXCEB6.js} +67 -63
  20. package/{appDeployStatusCommands-CZRON2FO.js → appDeployStatusCommands-35ZX7T66.js} +56 -56
  21. package/{appGetCommands-XQIUY4TD.js → appGetCommands-WFCHXJWF.js} +56 -56
  22. package/{appListCommands-NNG4H36Y.js → appListCommands-XY2U6DPF.js} +57 -59
  23. package/{authCommand-UBJ4EWYZ.js → authCommand-QYN47CQD.js} +371 -68
  24. package/{authCommands-H6WKKCRW.js → authCommands-77CHYBGF.js} +12 -9
  25. package/{builtinSkillRegistry-ZMF6YGNO.js → builtinSkillRegistry-TDQ6JB2E.js} +13 -11
  26. package/{chromeCommands-2N6MEWRU.js → chromeCommands-OBBNJCLS.js} +314 -13
  27. package/chromeOpsCommands-3Z34RKSE.js +472 -0
  28. package/{chunk-ALXHV7NK.js → chunk-2GGXHQIW.js} +43 -4
  29. package/{localRuntimeAuthority-5W6IJRAD.js → chunk-2IXDJNZI.js} +154 -75
  30. package/{chunk-IVZJWTDI.js → chunk-36OMEXXR.js} +89 -21
  31. package/{chunk-H6A6X4EK.js → chunk-3MZAGMYY.js} +16 -0
  32. package/chunk-3PVYUPXK.js +40 -0
  33. package/chunk-3SZA4U64.js +1192 -0
  34. package/{chunk-ID7LNBWR.js → chunk-3T4ZG6AC.js} +1920 -644
  35. package/{chunk-GNMAFAIS.js → chunk-44WXLHFI.js} +1 -1
  36. package/{chunk-AGGIDPCZ.js → chunk-4JH2UMJR.js} +6 -0
  37. package/chunk-4LCOCOR5.js +50 -0
  38. package/chunk-4YRTZIVN.js +871 -0
  39. package/{chunk-N7J63Q6C.js → chunk-56GBUMO5.js} +10 -1
  40. package/{chunk-W7XHHYWM.js → chunk-5BHQICF2.js} +5 -1
  41. package/{chunk-XUWRURDF.js → chunk-5EBLANFT.js} +1 -1
  42. package/{chunk-3AH7LNUB.js → chunk-5EMSBTQ6.js} +33 -14
  43. package/{chunk-YRRASA5Q.js → chunk-5MM7NNO6.js} +113 -52
  44. package/chunk-5MMAK75Q.js +15 -0
  45. package/{chunk-TXH4IWJL.js → chunk-626KHJNX.js} +20 -11
  46. package/{chunk-M5PVFLD4.js → chunk-64K7WX26.js} +90 -21
  47. package/{chunk-AKG5W4LG.js → chunk-6CCFTVBP.js} +76 -221
  48. package/chunk-6MJNEXUU.js +614 -0
  49. package/{chunk-62IL3KQV.js → chunk-6MXDOUMH.js} +15 -3
  50. package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
  51. package/chunk-6QDYSCPW.js +223 -0
  52. package/{chunk-HYZIYH2H.js → chunk-74RAWNQN.js} +56 -63
  53. package/chunk-7DPNBQSV.js +9 -0
  54. package/{chunk-IAESIMK7.js → chunk-A4MW3YZL.js} +10 -14
  55. package/{chunk-OMRJYNCI.js → chunk-AG7MCDLR.js} +26 -31
  56. package/chunk-AGIM7IMJ.js +147 -0
  57. package/{chunk-7CHC4W22.js → chunk-AIZE5TDM.js} +3 -3
  58. package/chunk-AJ3G7X2K.js +7012 -0
  59. package/{chunk-5GVBDNTO.js → chunk-AU7AXHUL.js} +1 -1
  60. package/{chunk-4H22P2JV.js → chunk-AUIJZACN.js} +2073 -1275
  61. package/{chunk-CIF4X6ZM.js → chunk-AWVFQMOV.js} +25 -3
  62. package/{chunk-YAQJJDC2.js → chunk-BJEZC5RA.js} +214 -51
  63. package/{chunk-RYZINGPM.js → chunk-BPMPOFWP.js} +347 -235
  64. package/{chunk-YUNJN43V.js → chunk-BU2YQBV4.js} +215 -28
  65. package/{chunk-XPRWFQQK.js → chunk-CBHGZRCE.js} +38 -12
  66. package/{chunk-Y3PMXGLH.js → chunk-CHCS6XPJ.js} +365 -144
  67. package/chunk-CHOZJMJS.js +78 -0
  68. package/chunk-CYJWI3NH.js +119 -0
  69. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  70. package/{chunk-3SV7RM24.js → chunk-D2QN6CTI.js} +117 -72
  71. package/{chunk-TZZ2WRBL.js → chunk-DFDXM2Y4.js} +20 -16
  72. package/{chunk-5TEEECZM.js → chunk-E2AKSW7L.js} +10 -7
  73. package/{chunk-RSEEDUMS.js → chunk-EDX5XSJM.js} +2 -2
  74. package/{chunk-QDSINZM3.js → chunk-EUGTFFO6.js} +2 -23
  75. package/{chunk-UNYJU5L6.js → chunk-EYLGAEB4.js} +5 -1
  76. package/{chunk-CU3QB4HW.js → chunk-EYWJT7A2.js} +12 -12
  77. package/{chunk-BNGW5ASC.js → chunk-EZVK3N5L.js} +66 -18
  78. package/{chunk-6FGTMQCL.js → chunk-F32Z66T4.js} +6 -10
  79. package/{chunk-ZOVKKMF6.js → chunk-FY4SDK2E.js} +1 -1
  80. package/chunk-G6OOUQWJ.js +417 -0
  81. package/{chunk-PQWU42UQ.js → chunk-GCKHQECX.js} +6 -6
  82. package/chunk-GKXCHNTE.js +15 -0
  83. package/{chunk-P6GMCCAT.js → chunk-GQV5KHJU.js} +78 -12
  84. package/{chunk-B2XUQXQX.js → chunk-HIQ4GF53.js} +191 -68
  85. package/{chunk-GMZLP5DV.js → chunk-HNUWUO75.js} +30 -19
  86. package/{chunk-UASIEDKM.js → chunk-I2XLRXVX.js} +36 -31
  87. package/{chunk-5UTFL4QJ.js → chunk-I2ZMGXXF.js} +10 -5
  88. package/chunk-I42VC5KR.js +15 -0
  89. package/{chunk-3BXNTXYI.js → chunk-I4SN4NUQ.js} +1199 -56
  90. package/chunk-IA7TRNNR.js +11 -0
  91. package/{chunk-WIWM4FE3.js → chunk-IJERIUXS.js} +55 -748
  92. package/{chunk-BIDGLJQ3.js → chunk-IK2TSJQA.js} +45 -8
  93. package/{chunk-CPUFH46E.js → chunk-ILU2NPWY.js} +10 -10
  94. package/{chunk-SLLGJZDT.js → chunk-ISQL4V7C.js} +4 -4
  95. package/chunk-IT3ZZRJE.js +12 -0
  96. package/{chunk-DY7ANLKG.js → chunk-JKMLSTZK.js} +43 -12
  97. package/{chunk-6TPOEJMQ.js → chunk-JZX2XLKC.js} +64 -23
  98. package/{chunk-27ONFIEY.js → chunk-K2AER7RX.js} +19 -12
  99. package/{chunk-O2OWEFII.js → chunk-KFHQQ3NO.js} +1 -1
  100. package/{chunk-QXGPFY6J.js → chunk-LGN377P3.js} +27 -17
  101. package/{chunk-L36OWPP3.js → chunk-LIQJTQRN.js} +118 -139
  102. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  103. package/{chunk-5J3PYNUP.js → chunk-NYYFIKHI.js} +17 -3
  104. package/{chunk-6O4IK4V2.js → chunk-OFFL4DCR.js} +1 -1
  105. package/{chunk-B6SAMB33.js → chunk-OWYYDMGJ.js} +209 -9
  106. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  107. package/{chunk-CTUQJVQM.js → chunk-P5QACQDK.js} +1 -1
  108. package/{chunk-TB3MIBRC.js → chunk-PIDUNDFS.js} +572 -430
  109. package/{chunk-4JMDLJAD.js → chunk-PJNFNEJE.js} +114 -37
  110. package/chunk-PKZKOVA5.js +11507 -0
  111. package/{chunk-Z4CSIXYP.js → chunk-PLSVXHSA.js} +3 -3
  112. package/chunk-PWTNI4N7.js +47 -0
  113. package/chunk-QFEW2ULV.js +42 -0
  114. package/{chunk-RGNEEJ3Y.js → chunk-QLQ573SU.js} +35 -9
  115. package/chunk-QQ56R7KS.js +88 -0
  116. package/chunk-QYPE3TS3.js +43 -0
  117. package/{chunk-HTVYCXBP.js → chunk-RN2GPWN6.js} +354 -120
  118. package/{chunk-ATLTFRYJ.js → chunk-ROCUB2H2.js} +280 -98
  119. package/{chunk-4DPP773Q.js → chunk-RSHPU4PD.js} +59 -11
  120. package/chunk-RVWMAFIT.js +134 -0
  121. package/{chunk-ESHYE7WU.js → chunk-S73EPYNC.js} +10 -7
  122. package/{chunk-UQNS32WZ.js → chunk-SCMHQUMK.js} +1 -1
  123. package/chunk-SW4S4XYB.js +1794 -0
  124. package/{chunk-ZUEK6A6C.js → chunk-TTH4HOJD.js} +1973 -754
  125. package/chunk-TY3TIUJK.js +89 -0
  126. package/{chunk-X2QRZXZH.js → chunk-TYJ5XFEA.js} +4 -4
  127. package/{chunk-ALFH24P3.js → chunk-TYYRSFBG.js} +197 -155
  128. package/{chunk-MST6R3E4.js → chunk-U5GPBQDG.js} +34 -22
  129. package/chunk-U5ICMAFV.js +14110 -0
  130. package/{chunk-7KVZ5LDQ.js → chunk-UBUH2TCC.js} +18 -4
  131. package/chunk-UEILX4EV.js +15 -0
  132. package/chunk-UHTDNB5Y.js +140 -0
  133. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  134. package/{chunk-OHOVNO7I.js → chunk-UOKFKFPO.js} +6 -3
  135. package/{chunk-XISEYOGH.js → chunk-USHQX6VT.js} +5 -5
  136. package/chunk-UUPR3TD7.js +53 -0
  137. package/{chunk-3DAVPNFT.js → chunk-V4EE3D54.js} +122 -107
  138. package/{chunk-HDLLCBRF.js → chunk-VEA7H5FG.js} +2 -2
  139. package/chunk-VHGD6FHV.js +116 -0
  140. package/chunk-VIWDGTDA.js +8 -0
  141. package/{chunk-GOH6RW6F.js → chunk-VJXHL6MH.js} +34 -11
  142. package/{chunk-4XEYAFLY.js → chunk-VL5KOY2C.js} +623 -94
  143. package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
  144. package/{chunk-DXHL7G2L.js → chunk-VWW6O2TL.js} +274 -93
  145. package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
  146. package/chunk-WD4XYDYC.js +567 -0
  147. package/chunk-WJZOQR2J.js +151 -0
  148. package/{chunk-AUDNYVRC.js → chunk-XETG4RIX.js} +5 -5
  149. package/{chunk-MX574M24.js → chunk-XI7DGLUK.js} +4 -4
  150. package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
  151. package/chunk-XRUSXPCQ.js +514 -0
  152. package/{chunk-I4OPU5TK.js → chunk-XS47QOFV.js} +273 -11
  153. package/{chunk-S5XGT6GB.js → chunk-XZNCX52W.js} +30 -9
  154. package/{chunk-5OA5HMTL.js → chunk-YLMMECCH.js} +1 -1
  155. package/{chunk-CFT5HBGW.js → chunk-YVLQXTUB.js} +448 -12
  156. package/chunk-YVPQATSC.js +709 -0
  157. package/chunk-ZEZC7IIM.js +126 -0
  158. package/{chunk-ALGORS6Y.js → chunk-ZF6526IQ.js} +43 -8
  159. package/chunk-ZIWPQEFU.js +165 -0
  160. package/chunk-ZRAU6T47.js +56 -0
  161. package/{cliExecutor-AWYR3T33.js → cliExecutor-BWBF2MTI.js} +4 -3
  162. package/{clipboardy-BX4NMYHE.js → clipboardy-GCO3GT3I.js} +3 -8
  163. package/{commandRegistry-2KBOXZQC.js → commandRegistry-NBLZEMCW.js} +183 -107
  164. package/contentThunks-6AIWNSGO.js +84 -0
  165. package/{cooldownCommands-ZLEPIB4A.js → cooldownCommands-JFKTYS2D.js} +2 -2
  166. package/{createAgentAutomationAction-5UGTB26P.js → createAgentAutomationAction-4BUS65DZ.js} +53 -44
  167. package/createDialogAction-QAIKSCG4.js +76 -0
  168. package/{createPageAction-CDLDKPRM.js → createPageAction-DXCZ334C.js} +65 -54
  169. package/cursorProvider-YGGNMVWX.js +6123 -0
  170. package/{db-VQSAOWAO.js → db-2QOTXYGH.js} +11 -5
  171. package/{dbSlice-DQ32LYTJ.js → dbSlice-J37OGIXH.js} +19 -13
  172. package/{deleteFile-NX6QHCWZ.js → deleteFile-6JWDDRVP.js} +10 -6
  173. package/dialogCommands-YZLSJB6X.js +113 -0
  174. package/{dialogSlice-N3YB65G5.js → dialogSlice-PVUSMKFW.js} +53 -39
  175. package/{docCreateCommands-ZSLGVBZT.js → docCreateCommands-JB2RRMRJ.js} +54 -57
  176. package/{docDeleteCommands-5N4GVZBG.js → docDeleteCommands-AQENULNM.js} +56 -58
  177. package/{docReadCommands-YJSAA7AV.js → docReadCommands-DYD25YLQ.js} +53 -56
  178. package/{docStore-E3CEOV5Q.js → docStore-CSEBEMKP.js} +25 -16
  179. package/{docUpdateCommands-WEMLSW6W.js → docUpdateCommands-3GVS23QL.js} +54 -57
  180. package/{fetchMessages-67MEFPZR.js → fetchMessages-IIJWQ3HR.js} +5 -4
  181. package/{getPricing-NMMFT3YI.js → getPricing-FKK3F5EJ.js} +11 -9
  182. package/{handleSendMessageAction-DQAD5ERJ.js → handleSendMessageAction-G2TLYGC4.js} +422 -118
  183. package/index.js +11 -7
  184. package/{lib-FRRS27KN.js → lib-4YTWAGY7.js} +581 -248
  185. package/{localDialogRead-EBRS242U.js → localDialogRead-FSOMOPDZ.js} +2 -2
  186. package/localRuntimeAdapter-B4TAYYA7.js +244 -0
  187. package/localRuntimeAuthority-JDAD7CB6.js +16 -0
  188. package/{localRuntimeDb-3LRMNLCM.js → localRuntimeDb-CVC62PM5.js} +1 -1
  189. package/{machineCommands-HAP75VSG.js → machineCommands-6OBFD3XF.js} +503 -161
  190. package/{machineInfo-66ZFUMLE.js → machineInfo-UKPTZO5Y.js} +2 -2
  191. package/machineWsRunDispatch-OO7N3O3Y.js +169 -0
  192. package/{memberThunks-5ZXPR63F.js → memberThunks-66DH6ABQ.js} +25 -18
  193. package/{models-ZPU5EDF4.js → models-LAS4B2B5.js} +2 -2
  194. package/package.json +1 -1
  195. package/{providerPresetApply-DD6NGWW6.js → providerPresetApply-MY66I6NT.js} +10 -10
  196. package/{providerRegistry-XDRLMYGJ.js → providerRegistry-QOE2FT57.js} +13 -9
  197. package/{read-EPTJRAEF.js → read-DC4NUGN6.js} +12 -8
  198. package/{readDocTool-W4NDXNEX.js → readDocTool-NCJ5NT25.js} +1 -1
  199. package/{readlineWorkspace-7BC66QSX.js → readlineWorkspace-UIQN7JUR.js} +5017 -915
  200. package/{removeDialogAgentAction-OSYNZRX7.js → removeDialogAgentAction-E2H3OZU6.js} +29 -28
  201. package/{runAgentClientLoop-6E6UC3CE.js → runAgentClientLoop-GS3SGG37.js} +154 -97
  202. package/{runtimeDoctorCommands-ID23PNNZ.js → runtimeDoctorCommands-GIOGC5SC.js} +17 -17
  203. package/secretCommands-ZXZRLR3R.js +700 -0
  204. package/setDialogExtraReferencesAction-SITRPMYU.js +37 -0
  205. package/{setPrimaryDialogAgentAction-WZ7KI3YA.js → setPrimaryDialogAgentAction-U7N45TGC.js} +30 -29
  206. package/{chunk-SONWNI3L.js → settingThunks-Y7SVJOMZ.js} +223 -928
  207. package/{skillDiscovery-ZBU76COE.js → skillDiscovery-QC35EQY4.js} +2 -2
  208. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  209. package/{spaceCommands-UJOVU4XI.js → spaceCommands-ZR5BR3GX.js} +59 -59
  210. package/{streamAgentChatTurn-3UXPYFNX.js → streamAgentChatTurn-4XYC33KE.js} +309 -165
  211. package/{switchDialogAgentAction-GMR7WN3P.js → switchDialogAgentAction-OMGBD3N2.js} +26 -22
  212. package/{tableCommands-G7RV3RU3.js → tableCommands-U3QDY4L6.js} +19 -17
  213. package/{toolApiClient-CVGWM4PN.js → toolApiClient-7WSJJJBV.js} +6 -5
  214. package/tools-P77EE7Q4.js +124 -0
  215. package/tuiSummaryLlmCaller-BM3VSTBU.js +130 -0
  216. package/{updateCommands-4EHDLF5J.js → updateCommands-NQXAGFM7.js} +3 -3
  217. package/{updateDialogTitleAction-UPFV7TDT.js → updateDialogTitleAction-CIANVPZC.js} +102 -57
  218. package/workloadLifecycle-36DXRZKU.js +320 -0
  219. package/action-GI44T4DR.js +0 -31
  220. package/agentListCommands-IW3GQVUP.js +0 -427
  221. package/agentRecordCommands-VCA76W6B.js +0 -134
  222. package/agentRunCommand-YNLDKVR7.js +0 -161
  223. package/browser-image-compression-MFDTD7K6.js +0 -1763
  224. package/chatQueueReduxAdapter-TJRMXMYA.js +0 -186
  225. package/chromeOpsCommands-IXRLN57H.js +0 -289
  226. package/chunk-36KZDDO5.js +0 -2415
  227. package/chunk-ACQD6YI2.js +0 -25363
  228. package/chunk-CQ3WA2NE.js +0 -299
  229. package/chunk-CYSYR67N.js +0 -93
  230. package/chunk-JBTJAPUF.js +0 -35
  231. package/chunk-K2CSUCHJ.js +0 -620
  232. package/chunk-LTRXGFMS.js +0 -83
  233. package/chunk-M76ECQRD.js +0 -13658
  234. package/chunk-MEYIRKDN.js +0 -8967
  235. package/chunk-OCZKATRC.js +0 -129
  236. package/chunk-OTGFTBLI.js +0 -13
  237. package/chunk-PUOC4YRO.js +0 -394
  238. package/chunk-PZZTFEKK.js +0 -34
  239. package/chunk-URMS4XY2.js +0 -10
  240. package/chunk-UV6VISQJ.js +0 -20
  241. package/chunk-VJVNU77E.js +0 -83
  242. package/chunk-XYJSY4KG.js +0 -13807
  243. package/chunk-Y5GCAMGP.js +0 -9
  244. package/chunk-YPREESF4.js +0 -225
  245. package/contentThunks-BDIQRZR6.js +0 -73
  246. package/createDialogAction-B7VGVEVU.js +0 -66
  247. package/dialogCommands-G7YBVAMC.js +0 -102
  248. package/levelLazyShim-GZBKODGI.js +0 -7
  249. package/machineWsRunDispatch-L32G7C4P.js +0 -149
  250. package/serverStoreFactory-YMXDF4NI.js +0 -20
  251. package/setDialogExtraReferencesAction-M32UYNCG.js +0 -30
  252. package/settingSlice-Q6EKL7EQ.js +0 -204
  253. package/syncMapping-N6RGXGBW.js +0 -437
  254. package/tools-MKYDMWA4.js +0 -111
  255. package/tuiSummaryLlmCaller-3YFNHCTW.js +0 -128
  256. package/{chunk-SV5IJK6K.js → chunk-NBTY7YJF.js} +3 -3
  257. package/{chunk-2SYTUTLI.js → chunk-YBNHPX4S.js} +3 -3
  258. package/{offlineMarxistsAgentCommand-HGXZV4XJ.js → offlineMarxistsAgentCommand-2QTHJCHV.js} +4 -4
@@ -2,15 +2,6 @@ import {
2
2
  estimateTokenCount
3
3
  } from "./chunk-PSCNXBYA.js";
4
4
 
5
- // packages/ai/tools/agent/runTitle.ts
6
- var RUN_TITLE_MAX = 60;
7
- function normalizeRunTitle(value) {
8
- if (typeof value !== "string") return void 0;
9
- const cleaned = value.replace(/[\u0000-\u001f\u007f-\u009f]+/g, " ").replace(/\s+/g, " ").trim();
10
- if (!cleaned) return void 0;
11
- return cleaned.length > RUN_TITLE_MAX ? `${cleaned.slice(0, RUN_TITLE_MAX - 1)}\u2026` : cleaned;
12
- }
13
-
14
5
  // packages/ai/tools/agent/agentRunDisplayHelpers.ts
15
6
  function buildDelegatedTaskContent(task, input) {
16
7
  if (input === void 0 || input === null) {
@@ -109,7 +100,18 @@ var DEFAULT_LABELS = {
109
100
  runStopped: "Run stopped",
110
101
  runFinished: "Run finished",
111
102
  logTail: "Log tail:",
112
- runs: (count) => `Runs (${count})`
103
+ runs: (count) => `Runs (${count})`,
104
+ toolCount: (count) => `${count} tools`,
105
+ statusWord: (status) => status,
106
+ unnamedAgent: "agent",
107
+ rows: {
108
+ agent: "agent ",
109
+ status: "status ",
110
+ tools: "tools ",
111
+ note: "note ",
112
+ error: "error ",
113
+ task: "task "
114
+ }
113
115
  };
114
116
  function resolveLabels(labels) {
115
117
  return {
@@ -118,7 +120,11 @@ function resolveLabels(labels) {
118
120
  runStopped: labels?.runStopped ?? DEFAULT_LABELS.runStopped,
119
121
  runFinished: labels?.runFinished ?? DEFAULT_LABELS.runFinished,
120
122
  logTail: labels?.logTail ?? DEFAULT_LABELS.logTail,
121
- runs: labels?.runs ?? DEFAULT_LABELS.runs
123
+ runs: labels?.runs ?? DEFAULT_LABELS.runs,
124
+ toolCount: labels?.toolCount ?? DEFAULT_LABELS.toolCount,
125
+ statusWord: labels?.statusWord ?? DEFAULT_LABELS.statusWord,
126
+ unnamedAgent: labels?.unnamedAgent ?? DEFAULT_LABELS.unnamedAgent,
127
+ rows: { ...DEFAULT_LABELS.rows, ...labels?.rows ?? {} }
122
128
  };
123
129
  }
124
130
  function shortRunId(runId) {
@@ -149,10 +155,39 @@ function formatRunAge(timing, now = Date.now()) {
149
155
  const end = typeof timing?.finishedAt === "number" && Number.isFinite(timing.finishedAt) && timing.finishedAt > 0 ? timing.finishedAt : now;
150
156
  return formatDuration(end - startedAt);
151
157
  }
152
- function formatIdentityRow(agentName, runId) {
153
- const parts = [];
154
- if (!isAgentNameFallback(agentName)) parts.push(agentName);
158
+ var AGENT_KEY_NAME_PATTERNS = [
159
+ /^agent-[0-9a-f]{6,}-[a-z0-9]/i,
160
+ /^agent-pub-[a-z0-9]+/i,
161
+ /^agent-system-[a-z0-9]+/i,
162
+ /^run-\d{4}-\d{2}-\d{2}T[\d-]+Z-[a-z0-9]+$/i
163
+ ];
164
+ function isAgentKeyShapedName(agentName) {
165
+ const trimmed = agentName.trim();
166
+ return AGENT_KEY_NAME_PATTERNS.some((pattern) => pattern.test(trimmed));
167
+ }
168
+ function formatIdentityRow(agentName, runId, opts) {
169
+ const trimmed = typeof agentName === "string" ? agentName.trim() : "";
170
+ const title = opts?.title?.trim();
171
+ let displayName = "";
172
+ if (!isAgentNameFallback(trimmed)) {
173
+ if (isAgentKeyShapedName(trimmed)) {
174
+ displayName = opts?.unnamedAgent?.trim() ?? "";
175
+ } else {
176
+ displayName = trimmed;
177
+ }
178
+ }
179
+ if (displayName === title) displayName = "";
155
180
  const short = shortRunId(runId);
181
+ const idSuffix = short ? ` #${short}` : "";
182
+ if (title) {
183
+ if (opts?.titleOnOwnLine) {
184
+ return displayName ? `${displayName}${idSuffix}` : short ? `#${short}` : "";
185
+ }
186
+ if (displayName) return `${title} \xB7 ${displayName}${idSuffix}`;
187
+ return `${title}${idSuffix}`;
188
+ }
189
+ const parts = [];
190
+ if (displayName) parts.push(displayName);
156
191
  if (short) parts.push(`#${short}`);
157
192
  return parts.join(" ");
158
193
  }
@@ -161,7 +196,7 @@ function isAgentNameFallback(agentName) {
161
196
  return !trimmed || trimmed === "agent";
162
197
  }
163
198
  function resolveRunLabel(run) {
164
- for (const candidate of [run.agentName, run.name, run.agentKey, run.runId]) {
199
+ for (const candidate of [run.agentName, run.name, run.title, run.agentKey, run.runId]) {
165
200
  if (typeof candidate === "string" && !isAgentNameFallback(candidate)) {
166
201
  return candidate.trim();
167
202
  }
@@ -172,23 +207,31 @@ function formatStartRunCard(agentName, status = "running", opts) {
172
207
  const L = resolveLabels(opts?.labels);
173
208
  const icon = getAgentRunStatusIcon(status);
174
209
  const lines = [L.runStarted];
175
- const identity = formatIdentityRow(agentName, opts?.runId);
210
+ const title = opts?.title?.trim();
211
+ if (title) {
212
+ lines.push(` ${title}`);
213
+ }
214
+ const identity = formatIdentityRow(agentName, opts?.runId, {
215
+ title,
216
+ titleOnOwnLine: true,
217
+ unnamedAgent: L.unnamedAgent
218
+ });
176
219
  if (identity) {
177
- lines.push(` agent ${identity}`);
220
+ lines.push(` ${L.rows.agent}${identity}`);
178
221
  }
179
- lines.push(` status ${icon} ${status}`);
222
+ lines.push(` ${L.rows.status}${icon} ${L.statusWord(status)}`);
180
223
  const task = opts?.task?.trim();
181
- if (task) {
182
- lines.push(` task ${clipText(task, TASK_PREVIEW_MAX)}`);
224
+ if (task && !title) {
225
+ lines.push(` ${L.rows.task}${clipText(task, TASK_PREVIEW_MAX)}`);
183
226
  }
184
227
  return lines.join("\n");
185
228
  }
186
229
  var TASK_PREVIEW_MAX = 72;
187
230
  var NOTE_PREVIEW_MAX = 72;
188
- function formatProgressRow(toolCallCount, lastToolNames) {
231
+ function formatProgressRow(toolCallCount, lastToolNames, labels = DEFAULT_LABELS) {
189
232
  const parts = [];
190
233
  if (typeof toolCallCount === "number" && Number.isFinite(toolCallCount)) {
191
- parts.push(`${toolCallCount} tools`);
234
+ parts.push(labels.toolCount(toolCallCount));
192
235
  }
193
236
  if (lastToolNames && lastToolNames.length > 0) {
194
237
  parts.push(lastToolNames.join(", "));
@@ -199,21 +242,24 @@ function formatStatusRunCard(agentName, status = "running", opts) {
199
242
  const L = resolveLabels(opts?.labels);
200
243
  const icon = getAgentRunStatusIcon(status);
201
244
  const age = formatRunAge(opts?.timing, opts?.now);
202
- const lines = [L.runStatus, ` ${icon} ${status}${age ? ` ${age}` : ""}`];
203
- const identity = formatIdentityRow(agentName, opts?.runId);
245
+ const lines = [L.runStatus, ` ${icon} ${L.statusWord(status)}${age ? ` ${age}` : ""}`];
246
+ const identity = formatIdentityRow(agentName, opts?.runId, {
247
+ title: opts?.title,
248
+ unnamedAgent: L.unnamedAgent
249
+ });
204
250
  if (identity) {
205
- lines.push(` agent ${identity}`);
251
+ lines.push(` ${L.rows.agent}${identity}`);
206
252
  }
207
- const progress = formatProgressRow(opts?.toolCallCount, opts?.lastToolNames);
253
+ const progress = formatProgressRow(opts?.toolCallCount, opts?.lastToolNames, L);
208
254
  if (progress) {
209
- lines.push(` tools ${progress}`);
255
+ lines.push(` ${L.rows.tools}${progress}`);
210
256
  }
211
257
  const note = opts?.lastAssistantText?.trim();
212
258
  if (note) {
213
- lines.push(` note ${clipText(note, NOTE_PREVIEW_MAX)}`);
259
+ lines.push(` ${L.rows.note}${clipText(note, NOTE_PREVIEW_MAX)}`);
214
260
  }
215
261
  if (opts?.errorMessage?.trim()) {
216
- lines.push(` error ${opts.errorMessage.trim()}`);
262
+ lines.push(` ${L.rows.error}${opts.errorMessage.trim()}`);
217
263
  }
218
264
  if (shouldShowLogTail(status, opts?.includeLogTail, opts?.logLines)) {
219
265
  lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
@@ -232,11 +278,14 @@ function formatFinishedRunCard(agentName, status, opts) {
232
278
  const L = resolveLabels(opts?.labels);
233
279
  const icon = getAgentRunStatusIcon(status);
234
280
  const age = formatRunAge(opts?.timing, opts?.now);
235
- const summary = [status, age, formatProgressRow(opts?.toolCallCount, opts?.lastToolNames)].filter(Boolean).join(" \xB7 ");
281
+ const summary = [L.statusWord(status), age, formatProgressRow(opts?.toolCallCount, opts?.lastToolNames, L)].filter(Boolean).join(" \xB7 ");
236
282
  const lines = [L.runFinished, ` ${icon} ${summary}`];
237
- const identity = formatIdentityRow(agentName, opts?.runId);
283
+ const identity = formatIdentityRow(agentName, opts?.runId, {
284
+ title: opts?.title,
285
+ unnamedAgent: L.unnamedAgent
286
+ });
238
287
  if (identity) {
239
- lines.push(` agent ${identity}`);
288
+ lines.push(` ${L.rows.agent}${identity}`);
240
289
  }
241
290
  const note = opts?.lastAssistantText?.trim();
242
291
  if (note) {
@@ -254,7 +303,7 @@ function formatStopRunCard(status = "killed", labels) {
254
303
  const L = resolveLabels(labels);
255
304
  const icon = getAgentRunStatusIcon(status);
256
305
  return `${L.runStopped}
257
- ${icon} ${status}`;
306
+ ${icon} ${L.statusWord(status)}`;
258
307
  }
259
308
  function formatListRunsCard(runs, labels) {
260
309
  const L = resolveLabels(labels);
@@ -269,7 +318,7 @@ function formatListRunsCard(runs, labels) {
269
318
  function formatNotFoundRunCard(labels) {
270
319
  const L = resolveLabels(labels);
271
320
  return `${L.runStatus}
272
- ? not_found`;
321
+ ? ${L.statusWord("not_found")}`;
273
322
  }
274
323
  var AGENT_RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
275
324
  "done",
@@ -285,10 +334,35 @@ var AGENT_RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
285
334
  function isAgentRunTerminalStatus(status) {
286
335
  return typeof status === "string" && AGENT_RUN_TERMINAL_STATUSES.has(status);
287
336
  }
337
+ function formatAgentListCard(agents, maxDisplay = 8) {
338
+ const total = agents.length;
339
+ const lines = [`Agents (${total})`];
340
+ const visible = agents.slice(0, maxDisplay);
341
+ for (const agent of visible) {
342
+ const star = agent.isFavorite ? "\u2605" : " ";
343
+ const own = agent.isOwned ? "\u25CE" : " ";
344
+ const name = agent.name || "(unnamed)";
345
+ const model = agent.model || "\u2014";
346
+ const source = agent.apiSource || agent.provider || agent.cliProvider || "\u2014";
347
+ const key = agent.agentKey || "(agentKey unavailable)";
348
+ lines.push(`${star}${own} ${name} ${model} ${source} ${key}`);
349
+ }
350
+ if (total > maxDisplay) {
351
+ lines.push(`\u2026 +${total - maxDisplay} more`);
352
+ }
353
+ return lines.join("\n");
354
+ }
355
+
356
+ // packages/ai/tools/agent/runTitle.ts
357
+ var RUN_TITLE_MAX = 60;
358
+ function normalizeRunTitle(value) {
359
+ if (typeof value !== "string") return void 0;
360
+ const cleaned = value.replace(/[\u0000-\u001f\u007f-\u009f]+/g, " ").replace(/\s+/g, " ").trim();
361
+ if (!cleaned) return void 0;
362
+ return cleaned.length > RUN_TITLE_MAX ? `${cleaned.slice(0, RUN_TITLE_MAX - 1)}\u2026` : cleaned;
363
+ }
288
364
 
289
365
  export {
290
- RUN_TITLE_MAX,
291
- normalizeRunTitle,
292
366
  buildDelegatedTaskContent,
293
367
  calculateDelegatedPayloadMetrics,
294
368
  shortRunId,
@@ -304,5 +378,8 @@ export {
304
378
  formatStopRunCard,
305
379
  formatListRunsCard,
306
380
  formatNotFoundRunCard,
307
- isAgentRunTerminalStatus
381
+ isAgentRunTerminalStatus,
382
+ formatAgentListCard,
383
+ RUN_TITLE_MAX,
384
+ normalizeRunTitle
308
385
  };