nolo-cli 0.149.0-alpha.1 → 0.151.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 (258) hide show
  1. package/{_executeModel-OW3H7ICR.js → _executeModel-XHAFJ2MM.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-DPUUS56Z.js} +181 -93
  7. package/{agentEmailCommands-A6XBQZBN.js → agentEmailCommands-V4P5EFLP.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-MELPAZZI.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-FSWSSQIO.js +154 -0
  14. package/agentRunCommand-GDBJVOAT.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-YO2ZLJMD.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-GNMAFAIS.js → chunk-44WXLHFI.js} +1 -1
  35. package/{chunk-AGGIDPCZ.js → chunk-4JH2UMJR.js} +6 -0
  36. package/chunk-4LCOCOR5.js +50 -0
  37. package/chunk-4YRTZIVN.js +871 -0
  38. package/chunk-556RW72X.js +14110 -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-M5PVFLD4.js → chunk-64K7WX26.js} +90 -21
  46. package/{chunk-AKG5W4LG.js → chunk-6CCFTVBP.js} +76 -221
  47. package/chunk-6MJNEXUU.js +614 -0
  48. package/{chunk-62IL3KQV.js → chunk-6MXDOUMH.js} +15 -3
  49. package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
  50. package/chunk-6QDYSCPW.js +223 -0
  51. package/{chunk-HYZIYH2H.js → chunk-74RAWNQN.js} +56 -63
  52. package/chunk-7DPNBQSV.js +9 -0
  53. package/chunk-7MOXKPHC.js +119 -0
  54. package/{chunk-ZUEK6A6C.js → chunk-7XKL25PW.js} +1973 -754
  55. package/{chunk-IAESIMK7.js → chunk-A4MW3YZL.js} +10 -14
  56. package/chunk-AGIM7IMJ.js +147 -0
  57. package/{chunk-7CHC4W22.js → chunk-AIZE5TDM.js} +3 -3
  58. package/{chunk-YAQJJDC2.js → chunk-AOCM7HPT.js} +214 -51
  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-RYZINGPM.js → chunk-BPMPOFWP.js} +347 -235
  63. package/{chunk-YUNJN43V.js → chunk-BU2YQBV4.js} +215 -28
  64. package/{chunk-XPRWFQQK.js → chunk-CBHGZRCE.js} +38 -12
  65. package/{chunk-Y3PMXGLH.js → chunk-CHCS6XPJ.js} +365 -144
  66. package/chunk-CHOZJMJS.js +78 -0
  67. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  68. package/{chunk-3SV7RM24.js → chunk-D2QN6CTI.js} +117 -72
  69. package/{chunk-5TEEECZM.js → chunk-E2AKSW7L.js} +10 -7
  70. package/{chunk-RSEEDUMS.js → chunk-EDX5XSJM.js} +2 -2
  71. package/{chunk-ATLTFRYJ.js → chunk-ES633ZS5.js} +280 -98
  72. package/{chunk-QDSINZM3.js → chunk-EUGTFFO6.js} +2 -23
  73. package/{chunk-UNYJU5L6.js → chunk-EYLGAEB4.js} +5 -1
  74. package/{chunk-CU3QB4HW.js → chunk-EYWJT7A2.js} +12 -12
  75. package/{chunk-BNGW5ASC.js → chunk-EZVK3N5L.js} +66 -18
  76. package/{chunk-6FGTMQCL.js → chunk-F32Z66T4.js} +6 -10
  77. package/chunk-FJMRBOPO.js +11507 -0
  78. package/{chunk-ZOVKKMF6.js → chunk-FY4SDK2E.js} +1 -1
  79. package/chunk-G6OOUQWJ.js +417 -0
  80. package/{chunk-PQWU42UQ.js → chunk-GCKHQECX.js} +6 -6
  81. package/chunk-GKXCHNTE.js +15 -0
  82. package/{chunk-TXH4IWJL.js → chunk-GQN2WLAI.js} +20 -11
  83. package/{chunk-P6GMCCAT.js → chunk-GQV5KHJU.js} +78 -12
  84. package/{chunk-B2XUQXQX.js → chunk-HIQ4GF53.js} +191 -68
  85. package/{chunk-MST6R3E4.js → chunk-HKX3ULQB.js} +34 -22
  86. package/{chunk-GMZLP5DV.js → chunk-HNUWUO75.js} +30 -19
  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-CPUFH46E.js → chunk-ILU2NPWY.js} +10 -10
  93. package/{chunk-SLLGJZDT.js → chunk-ISQL4V7C.js} +4 -4
  94. package/chunk-IT3ZZRJE.js +12 -0
  95. package/{chunk-TZZ2WRBL.js → chunk-IZ7OJB6K.js} +20 -16
  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-UASIEDKM.js → chunk-LTRUTOHX.js} +36 -31
  103. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  104. package/{chunk-5J3PYNUP.js → chunk-NYYFIKHI.js} +17 -3
  105. package/{chunk-6O4IK4V2.js → chunk-OFFL4DCR.js} +1 -1
  106. package/{chunk-B6SAMB33.js → chunk-OWYYDMGJ.js} +209 -9
  107. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  108. package/{chunk-CTUQJVQM.js → chunk-P5QACQDK.js} +1 -1
  109. package/{chunk-DXHL7G2L.js → chunk-PCKVQXYV.js} +274 -93
  110. package/{chunk-4JMDLJAD.js → chunk-PJNFNEJE.js} +114 -37
  111. package/{chunk-Z4CSIXYP.js → chunk-PLSVXHSA.js} +3 -3
  112. package/{chunk-BIDGLJQ3.js → chunk-PLXDDGBK.js} +45 -8
  113. package/chunk-PWTNI4N7.js +47 -0
  114. package/chunk-QFEW2ULV.js +42 -0
  115. package/{chunk-RGNEEJ3Y.js → chunk-QLQ573SU.js} +35 -9
  116. package/chunk-QQ56R7KS.js +88 -0
  117. package/chunk-QYPE3TS3.js +43 -0
  118. package/{chunk-4DPP773Q.js → chunk-RSHPU4PD.js} +59 -11
  119. package/chunk-RVWMAFIT.js +134 -0
  120. package/{chunk-ESHYE7WU.js → chunk-S73EPYNC.js} +10 -7
  121. package/{chunk-UQNS32WZ.js → chunk-SCMHQUMK.js} +1 -1
  122. package/{chunk-HTVYCXBP.js → chunk-SMENBO3M.js} +354 -120
  123. package/{chunk-OMRJYNCI.js → chunk-SSFDFOVT.js} +26 -31
  124. package/chunk-SW4S4XYB.js +1794 -0
  125. package/{chunk-TB3MIBRC.js → chunk-T6X3D7NB.js} +572 -430
  126. package/chunk-TY3TIUJK.js +89 -0
  127. package/{chunk-X2QRZXZH.js → chunk-TYJ5XFEA.js} +4 -4
  128. package/{chunk-ALFH24P3.js → chunk-TYYRSFBG.js} +197 -155
  129. package/{chunk-7KVZ5LDQ.js → chunk-UBUH2TCC.js} +18 -4
  130. package/chunk-UEILX4EV.js +15 -0
  131. package/chunk-UHTDNB5Y.js +140 -0
  132. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  133. package/{chunk-OHOVNO7I.js → chunk-UOKFKFPO.js} +6 -3
  134. package/{chunk-XISEYOGH.js → chunk-USHQX6VT.js} +5 -5
  135. package/chunk-UUPR3TD7.js +53 -0
  136. package/{chunk-HDLLCBRF.js → chunk-VEA7H5FG.js} +2 -2
  137. package/chunk-VHGD6FHV.js +116 -0
  138. package/chunk-VIWDGTDA.js +8 -0
  139. package/{chunk-GOH6RW6F.js → chunk-VJXHL6MH.js} +34 -11
  140. package/{chunk-4XEYAFLY.js → chunk-VL5KOY2C.js} +623 -94
  141. package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
  142. package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
  143. package/chunk-WD4XYDYC.js +567 -0
  144. package/chunk-WJZOQR2J.js +151 -0
  145. package/{chunk-AUDNYVRC.js → chunk-XETG4RIX.js} +5 -5
  146. package/{chunk-MX574M24.js → chunk-XI7DGLUK.js} +4 -4
  147. package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
  148. package/chunk-XRUSXPCQ.js +514 -0
  149. package/{chunk-I4OPU5TK.js → chunk-XS47QOFV.js} +273 -11
  150. package/{chunk-S5XGT6GB.js → chunk-XZNCX52W.js} +30 -9
  151. package/{chunk-ID7LNBWR.js → chunk-Y2DXOPSO.js} +1920 -644
  152. package/{chunk-5OA5HMTL.js → chunk-YLMMECCH.js} +1 -1
  153. package/{chunk-CFT5HBGW.js → chunk-YVLQXTUB.js} +448 -12
  154. package/chunk-YVPQATSC.js +709 -0
  155. package/{chunk-3DAVPNFT.js → chunk-Z7OJUX6S.js} +122 -107
  156. package/chunk-ZEZC7IIM.js +126 -0
  157. package/{chunk-ALGORS6Y.js → chunk-ZF6526IQ.js} +43 -8
  158. package/chunk-ZIWPQEFU.js +165 -0
  159. package/chunk-ZKZ5X2HS.js +7012 -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-XN7C5GHO.js} +183 -107
  164. package/contentThunks-5L7YQI3S.js +84 -0
  165. package/{cooldownCommands-ZLEPIB4A.js → cooldownCommands-JFKTYS2D.js} +2 -2
  166. package/{createAgentAutomationAction-5UGTB26P.js → createAgentAutomationAction-QOPOLCRK.js} +53 -44
  167. package/createDialogAction-MZ66VY5Q.js +76 -0
  168. package/{createPageAction-CDLDKPRM.js → createPageAction-VQDJIXMY.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-6RODVYCK.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-ZZA3OPM5.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-DVG5U26T.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-HXRHFKRC.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-5KBF4RCC.js} +503 -161
  190. package/{machineInfo-66ZFUMLE.js → machineInfo-UKPTZO5Y.js} +2 -2
  191. package/machineWsRunDispatch-4OQDEDOR.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-RIE62QVZ.js} +5022 -921
  200. package/{removeDialogAgentAction-OSYNZRX7.js → removeDialogAgentAction-E2H3OZU6.js} +29 -28
  201. package/{runAgentClientLoop-6E6UC3CE.js → runAgentClientLoop-KLUUXBZS.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-MN2SSPGA.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-W2MOLERY.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-Z4JX6REN.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
@@ -1,3 +1,10 @@
1
+ import {
2
+ fetchCiStatus
3
+ } from "./chunk-VHGD6FHV.js";
4
+ import {
5
+ cliCommandDescription,
6
+ t
7
+ } from "./chunk-SW4S4XYB.js";
1
8
  import "./chunk-4VNS5WPM.js";
2
9
 
3
10
  // packages/cli/cliCommandDispatch.ts
@@ -103,7 +110,7 @@ function createDaemonShortcutCommand(path, description, command) {
103
110
  // packages/cli/agentInternalCommandEntries.ts
104
111
  function getAgentInternalCommandEntries() {
105
112
  const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args, ctx) => {
106
- const { runAgentRunCommand } = await import("./agentRunCommand-YNLDKVR7.js");
113
+ const { runAgentRunCommand } = await import("./agentRunCommand-GDBJVOAT.js");
107
114
  return runAgentRunCommand(args, {
108
115
  env: ctx.env,
109
116
  scriptDir: ctx.scriptDir,
@@ -115,104 +122,104 @@ function getAgentInternalCommandEntries() {
115
122
  createAgentRunCommand(["run"], "Run a no-login local agent in this workspace"),
116
123
  createAgentRunCommand(["chat"], "Chat with an agent"),
117
124
  createEnvCommand(["agent", "list"], "List owned agents", async (args, deps) => {
118
- const { runAgentListCommand } = await import("./agentListCommands-IW3GQVUP.js");
125
+ const { runAgentListCommand } = await import("./agentListCommands-TWFLUYIZ.js");
119
126
  return runAgentListCommand(args, deps);
120
127
  }),
121
128
  createEnvCommand(["agent", "create"], "Create a new agent", async (args, deps) => {
122
- const { runAgentCreateCommand } = await import("./agentRecordCommands-VCA76W6B.js");
129
+ const { runAgentCreateCommand } = await import("./agentRecordCommands-FSWSSQIO.js");
123
130
  return runAgentCreateCommand(args, deps);
124
131
  }),
125
- createEnvCommand(["agent", "models"], "List models available on an OpenAI-compatible provider", async (args, deps) => {
126
- const { runAgentModelsCommand } = await import("./agentProviderCommands-YK2BIIXZ.js");
132
+ createEnvCommand(["agent", "models"], "List models: --preset <id> (server discovery, exit 1 on static fallback) or --url <base> --api-key <key> (OpenAI-compatible /models)", async (args, deps) => {
133
+ const { runAgentModelsCommand } = await import("./agentProviderCommands-HL6MBLCL.js");
127
134
  return runAgentModelsCommand(args, deps);
128
135
  }),
129
136
  createEnvCommand(["agent", "providers"], "List agent-creation provider presets (subscription / metered / oauth)", async (args, deps) => {
130
- const { runAgentProvidersCommand } = await import("./agentProviderCommands-YK2BIIXZ.js");
137
+ const { runAgentProvidersCommand } = await import("./agentProviderCommands-HL6MBLCL.js");
131
138
  return runAgentProvidersCommand(args, deps);
132
139
  }),
133
140
  createEnvCommand(["agent", "pull"], "Cache an agent for local runs", async (args, deps) => {
134
- const { runAgentPullCommand } = await import("./agentPullCommand-HF4A42D4.js");
141
+ const { runAgentPullCommand } = await import("./agentPullCommand-FA43RBRU.js");
135
142
  return runAgentPullCommand(args, deps);
136
143
  }),
137
144
  createEnvCommand(["agent", "read"], "Read a single agent", async (args, deps) => {
138
- const { runAgentReadCommand } = await import("./agentRecordCommands-VCA76W6B.js");
145
+ const { runAgentReadCommand } = await import("./agentRecordCommands-FSWSSQIO.js");
139
146
  return runAgentReadCommand(args, deps);
140
147
  }),
141
148
  createAgentRunCommand(["agent", "run"], "Run an agent"),
142
149
  createEnvCommand(["agent", "ps"], "List active and recent local agent runs (--json for machine-readable output)", async (_args, deps) => {
143
- const { runAgentPsCommand } = await import("./agentRunControl-2SKCR4SB.js");
150
+ const { runAgentPsCommand } = await import("./agentRunControl-IFM7IGMG.js");
144
151
  return runAgentPsCommand(_args, { ...deps, output: process.stdout });
145
152
  }),
146
153
  createEnvCommand(["agent", "status"], "Show status of a local agent run (--json, --watch, --interval-ms N)", async (args, deps) => {
147
- const { runAgentStatusCommand } = await import("./agentRunControl-2SKCR4SB.js");
154
+ const { runAgentStatusCommand } = await import("./agentRunControl-IFM7IGMG.js");
148
155
  return runAgentStatusCommand(args, { ...deps, output: process.stdout });
149
156
  }),
150
157
  createEnvCommand(["agent", "logs"], "Show logs of a local agent run", async (args, deps) => {
151
- const { runAgentLogsCommand } = await import("./agentRunControl-2SKCR4SB.js");
158
+ const { runAgentLogsCommand } = await import("./agentRunControl-IFM7IGMG.js");
152
159
  return runAgentLogsCommand(args, { ...deps, output: process.stdout });
153
160
  }),
154
161
  createEnvCommand(["agent", "stop"], "Stop a local agent run", async (args, deps) => {
155
- const { runAgentStopCommand } = await import("./agentRunControl-2SKCR4SB.js");
162
+ const { runAgentStopCommand } = await import("./agentRunControl-IFM7IGMG.js");
156
163
  return runAgentStopCommand(args, { ...deps, output: process.stdout });
157
164
  }),
158
165
  createEnvCommand(["agent", "kill"], "Kill a local agent run", async (args, deps) => {
159
- const { runAgentKillCommand } = await import("./agentRunControl-2SKCR4SB.js");
166
+ const { runAgentKillCommand } = await import("./agentRunControl-IFM7IGMG.js");
160
167
  return runAgentKillCommand(args, { ...deps, output: process.stdout });
161
168
  }),
162
169
  createEnvCommand(["agent", "setup-offline-marxists"], "Create or update the Marxists.org offline book agent", async (args, deps) => {
163
- const { runSetupOfflineMarxistsAgentCommand } = await import("./offlineMarxistsAgentCommand-HGXZV4XJ.js");
170
+ const { runSetupOfflineMarxistsAgentCommand } = await import("./offlineMarxistsAgentCommand-2QTHJCHV.js");
164
171
  return runSetupOfflineMarxistsAgentCommand(args, deps);
165
172
  }),
166
173
  createEnvCommand(["agent", "update"], "Update agent fields", async (args, deps) => {
167
- const { runAgentUpdateCommand } = await import("./agentRecordCommands-VCA76W6B.js");
174
+ const { runAgentUpdateCommand } = await import("./agentRecordCommands-FSWSSQIO.js");
168
175
  return runAgentUpdateCommand(args, deps);
169
176
  }),
170
177
  createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args, deps) => {
171
- const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-A6XBQZBN.js");
178
+ const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-V4P5EFLP.js");
172
179
  return runAgentEmailProvisionCommand(args, deps);
173
180
  }),
174
181
  createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args, deps) => {
175
- const { runAgentEmailBindCommand } = await import("./agentEmailCommands-A6XBQZBN.js");
182
+ const { runAgentEmailBindCommand } = await import("./agentEmailCommands-V4P5EFLP.js");
176
183
  return runAgentEmailBindCommand(args, deps);
177
184
  }),
178
185
  createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args, deps) => {
179
- const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-A6XBQZBN.js");
186
+ const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-V4P5EFLP.js");
180
187
  return runAgentEmailTransferCommand(args, deps);
181
188
  }),
182
189
  createEnvCommand(
183
190
  ["agent", "email", "create-and-provision"],
184
191
  "Create an agent and provision its controlled inbox",
185
192
  async (args, deps) => {
186
- const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-A6XBQZBN.js");
193
+ const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-V4P5EFLP.js");
187
194
  return runAgentEmailCreateAndProvisionCommand(args, deps);
188
195
  }
189
196
  ),
190
197
  createEnvCommand(["agent", "delete"], "Hard-delete an agent's private and public records", async (args, deps) => {
191
- const { runAgentDeleteCommand } = await import("./agentDeleteCommand-7IDWF6E3.js");
198
+ const { runAgentDeleteCommand } = await import("./agentDeleteCommand-DPUUS56Z.js");
192
199
  return runAgentDeleteCommand(args, deps);
193
200
  }),
194
201
  createEnvCommand(["agent", "grant"], "Grant another user access to this agent's owner credentials", async (args, deps) => {
195
- const { runAgentGrantCommand } = await import("./agentGrantCommands-M3XFO6EN.js");
202
+ const { runAgentGrantCommand } = await import("./agentGrantCommands-HOJ3JBBQ.js");
196
203
  return runAgentGrantCommand(args, deps);
197
204
  }),
198
205
  createEnvCommand(["agent", "grants"], "List active credential grants for an agent", async (args, deps) => {
199
- const { runAgentGrantsListCommand } = await import("./agentGrantCommands-M3XFO6EN.js");
206
+ const { runAgentGrantsListCommand } = await import("./agentGrantCommands-HOJ3JBBQ.js");
200
207
  return runAgentGrantsListCommand(args, deps);
201
208
  }),
202
209
  createEnvCommand(["agent", "revoke-grant"], "Revoke a credential grant for an agent", async (args, deps) => {
203
- const { runAgentRevokeGrantCommand } = await import("./agentGrantCommands-M3XFO6EN.js");
210
+ const { runAgentRevokeGrantCommand } = await import("./agentGrantCommands-HOJ3JBBQ.js");
204
211
  return runAgentRevokeGrantCommand(args, deps);
205
212
  }),
206
213
  createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args, deps) => {
207
- const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-DQPUIMAC.js");
214
+ const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-MELPAZZI.js");
208
215
  return runAgentBindCurrentCommand(args, deps);
209
216
  }),
210
217
  createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args, deps) => {
211
- const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-DQPUIMAC.js");
218
+ const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-MELPAZZI.js");
212
219
  return runAgentSmokeCurrentCommand(args, deps);
213
220
  }),
214
221
  createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args, deps) => {
215
- const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-DQPUIMAC.js");
222
+ const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-MELPAZZI.js");
216
223
  return runAgentRuntimeDoctorCommand(args, deps);
217
224
  }),
218
225
  createAgentRunCommand(["agent", "chat"], "Chat with an agent")
@@ -223,23 +230,23 @@ function getAgentInternalCommandEntries() {
223
230
  function getAppInternalCommandEntries() {
224
231
  return [
225
232
  createEnvCommand(["app", "list"], "List your apps", async (args, deps) => {
226
- const { runAppListCommand } = await import("./appListCommands-NNG4H36Y.js");
233
+ const { runAppListCommand } = await import("./appListCommands-XY2U6DPF.js");
227
234
  return runAppListCommand(args, deps);
228
235
  }),
229
236
  createEnvCommand(["app", "get"], "Get app details", async (args, deps) => {
230
- const { runAppGetCommand } = await import("./appGetCommands-XQIUY4TD.js");
237
+ const { runAppGetCommand } = await import("./appGetCommands-WFCHXJWF.js");
231
238
  return runAppGetCommand(args, deps);
232
239
  }),
233
240
  createEnvCommand(["app", "deploy"], "Deploy an app", async (args, deps) => {
234
- const { runAppDeployCommand } = await import("./appDeployCommands-AWFIXYVW.js");
241
+ const { runAppDeployCommand } = await import("./appDeployCommands-EEEXCEB6.js");
235
242
  return runAppDeployCommand(args, deps);
236
243
  }),
237
244
  createEnvCommand(["app", "deploy", "status"], "Check app deploy status", async (args, deps) => {
238
- const { runAppDeployStatusCommand } = await import("./appDeployStatusCommands-CZRON2FO.js");
245
+ const { runAppDeployStatusCommand } = await import("./appDeployStatusCommands-35ZX7T66.js");
239
246
  return runAppDeployStatusCommand(args, deps);
240
247
  }),
241
248
  createEnvCommand(["app", "delete"], "Delete an app", async (args, deps) => {
242
- const { runAppDeleteCommand } = await import("./appDeleteCommands-N3XEVVYC.js");
249
+ const { runAppDeleteCommand } = await import("./appDeleteCommands-4PL4KYRN.js");
243
250
  return runAppDeleteCommand(args, deps);
244
251
  })
245
252
  ];
@@ -247,12 +254,12 @@ function getAppInternalCommandEntries() {
247
254
 
248
255
  // packages/cli/chromeInternalCommandEntries.ts
249
256
  var CHROME_OPS_SUBCOMMANDS = [
250
- { name: "list-tabs", summary: "List controllable Chrome tabs" },
257
+ { name: "list-tabs", summary: "List controllable browser tabs" },
251
258
  { name: "open-tab", summary: "Open a URL in a new tab (--url <url> [--active])" },
252
259
  { name: "close-tab", summary: "Close a tab (--tab <id>)" },
253
260
  {
254
261
  name: "read-page",
255
- summary: "Read a tab's text and interactive elements as elementRefs (--tab <id>)"
262
+ summary: "Read a tab's text and interactive elements as elementRefs (--tab <id> [--offset N] [--viewport])"
256
263
  },
257
264
  { name: "click", summary: "Click an element (--tab <id> --ref|--selector)" },
258
265
  {
@@ -264,80 +271,130 @@ var CHROME_OPS_SUBCOMMANDS = [
264
271
  summary: "Upload files to a file input element (--tab <id> --ref|--selector --file <path>)"
265
272
  },
266
273
  { name: "press", summary: "Press a keyboard key (--tab <id> --key <key>)" },
267
- { name: "scroll", summary: "Scroll a tab (--tab <id> [--delta-x N] [--delta-y N])" },
274
+ {
275
+ name: "scroll",
276
+ summary: "Scroll a tab or observe a container (--tab <id> [--selector <css>] [--delta-x N] [--delta-y N])"
277
+ },
268
278
  { name: "screenshot", summary: "Capture a screenshot (--tab <id> [--out <path>])" },
269
279
  { name: "read-console", summary: "Read recent console entries (--tab <id>)" },
270
280
  { name: "read-network", summary: "Read recent network entries (--tab <id>)" }
271
281
  ];
272
- function getChromeFamilyEntries() {
282
+ function getBrowserFamilyEntries() {
273
283
  return [
274
284
  createEnvCommand(
275
- ["chrome", "status"],
285
+ ["browser", "status"],
276
286
  "Show Nolo Browser Connector status (native host manifest, token, live connection)",
277
287
  async (args, deps) => {
278
- const { runChromeStatusCommand } = await import("./chromeCommands-2N6MEWRU.js");
288
+ const { runChromeStatusCommand } = await import("./chromeCommands-OBBNJCLS.js");
279
289
  return runChromeStatusCommand(args, deps);
280
290
  }
281
291
  ),
282
292
  createEnvCommand(
283
- ["chrome", "install"],
293
+ ["browser", "install"],
284
294
  "Install the native messaging host manifest for this user (--browser chrome|firefox)",
285
295
  async (args, deps) => {
286
- const { runChromeInstallCommand } = await import("./chromeCommands-2N6MEWRU.js");
296
+ const { runChromeInstallCommand } = await import("./chromeCommands-OBBNJCLS.js");
287
297
  return runChromeInstallCommand(args, deps);
288
298
  }
289
299
  ),
290
300
  createEnvCommand(
291
- ["chrome", "reload"],
301
+ ["browser", "reload"],
292
302
  "Reload the connector extension through the running native host",
293
303
  async (args, deps) => {
294
- const { runChromeReloadCommand } = await import("./chromeCommands-2N6MEWRU.js");
304
+ const { runChromeReloadCommand } = await import("./chromeCommands-OBBNJCLS.js");
295
305
  return runChromeReloadCommand(args, deps);
296
306
  }
297
307
  ),
298
308
  ...CHROME_OPS_SUBCOMMANDS.map(
299
- ({ name, summary }) => createArgsCommand(["chrome", name], summary, async (args) => {
300
- const { runChromeOpsCommand } = await import("./chromeOpsCommands-IXRLN57H.js");
309
+ ({ name, summary }) => createArgsCommand(["browser", name], summary, async (args) => {
310
+ const { runChromeOpsCommand } = await import("./chromeOpsCommands-3Z34RKSE.js");
301
311
  return runChromeOpsCommand(name, args);
302
312
  })
303
313
  )
304
314
  ];
305
315
  }
306
316
  function getChromeInternalCommandEntries() {
307
- const chromeEntries = getChromeFamilyEntries();
308
- const browserEntries = chromeEntries.map((entry) => ({
317
+ const browserEntries = getBrowserFamilyEntries();
318
+ const chromeEntries = browserEntries.map((entry) => ({
309
319
  ...entry,
310
- path: ["browser", ...entry.path.slice(1)],
311
- description: `${entry.description} (Alias of \`nolo chrome ${entry.path.slice(1).join(" ")}\`)`
320
+ path: ["chrome", ...entry.path.slice(1)],
321
+ description: `${entry.description} (Compatibility alias of \`nolo browser ${entry.path.slice(1).join(" ")}\`)`
312
322
  }));
313
- return [...chromeEntries, ...browserEntries];
323
+ return [...browserEntries, ...chromeEntries];
324
+ }
325
+
326
+ // packages/cli/ciInternalCommandEntries.ts
327
+ function formatDuration(job) {
328
+ if (typeof job.durationMs !== "number") return "-";
329
+ const seconds = Math.round(job.durationMs / 1e3);
330
+ return seconds >= 60 ? `${Math.floor(seconds / 60)}m${seconds % 60}s` : `${seconds}s`;
331
+ }
332
+ function formatJob(job) {
333
+ const sha = (job.shortSha || "???????").slice(0, 7).padEnd(7);
334
+ const kind = job.kind.padEnd(16);
335
+ const status = job.status.padEnd(9);
336
+ const duration = formatDuration(job).padStart(6);
337
+ const failure = job.failedPhase ? ` \u2717 ${job.failedPhase}` : "";
338
+ return ` ${sha} ${kind} ${status} ${duration}${failure}`;
339
+ }
340
+ function parseLimit(args) {
341
+ const idx = args.indexOf("--limit");
342
+ if (idx === -1) return 5;
343
+ const parsed = Number.parseInt(args[idx + 1] ?? "", 10);
344
+ if (!Number.isFinite(parsed) || parsed <= 0) return 5;
345
+ return Math.min(parsed, 20);
346
+ }
347
+ function getCiInternalCommandEntries() {
348
+ return [
349
+ {
350
+ path: ["ci", "status"],
351
+ description: "Show recent nolo-ci deploy jobs (alpha / main)",
352
+ kind: "internal",
353
+ handler: async (args) => {
354
+ const jobs = await fetchCiStatus(parseLimit(args));
355
+ if (!jobs) {
356
+ console.log(
357
+ "\u65E0\u6CD5\u83B7\u53D6\u90E8\u7F72\u72B6\u6001\uFF1A\u672C\u673A\u5230 alpha \u7684 ssh \u901A\u9053\u4E0D\u53EF\u7528\uFF08\u9700\u8981 ~/.ssh/config \u91CC\u6709 alpha-raw\uFF0C\u6216\u8BBE\u7F6E NOLO_ALPHA_SSH_CONFIG_HOST\uFF09\u3002"
358
+ );
359
+ return 1;
360
+ }
361
+ if (jobs.length === 0) {
362
+ console.log("nolo-ci \u6682\u65E0\u4EFB\u52A1\u8BB0\u5F55\u3002");
363
+ return 0;
364
+ }
365
+ console.log("\u6700\u8FD1\u90E8\u7F72\u4EFB\u52A1\uFF08\u65B0 \u2192 \u65E7\uFF09\uFF1A");
366
+ for (const job of jobs) console.log(formatJob(job));
367
+ return 0;
368
+ }
369
+ }
370
+ ];
314
371
  }
315
372
 
316
373
  // packages/cli/dialogInternalCommandEntries.ts
317
374
  function getDialogInternalCommandEntries() {
318
375
  return [
319
376
  createEnvCommand(["dialog", "search"], "Search dialog messages across dialogs", async (args, deps) => {
320
- const { runDialogSearchCommand } = await import("./dialogCommands-G7YBVAMC.js");
377
+ const { runDialogSearchCommand } = await import("./dialogCommands-YZLSJB6X.js");
321
378
  return runDialogSearchCommand(args, deps);
322
379
  }),
323
380
  createEnvCommand(["dialog", "list"], "List dialogs (default --limit 50; --all/--limit 0 full; --jsonl streams)", async (args, deps) => {
324
- const { runDialogListCommand } = await import("./dialogCommands-G7YBVAMC.js");
381
+ const { runDialogListCommand } = await import("./dialogCommands-YZLSJB6X.js");
325
382
  return runDialogListCommand(args, deps);
326
383
  }),
327
384
  createEnvCommand(["dialog", "delete"], "Delete one or more dialogs", async (args, deps) => {
328
- const { runDialogDeleteCommand } = await import("./dialogCommands-G7YBVAMC.js");
385
+ const { runDialogDeleteCommand } = await import("./dialogCommands-YZLSJB6X.js");
329
386
  return runDialogDeleteCommand(args, deps);
330
387
  }),
331
388
  createEnvCommand(["dialog", "query"], "Query dialogs by subject refs (default --limit 50; --all full; --jsonl streams)", async (args, deps) => {
332
- const { runDialogQueryCommand } = await import("./dialogCommands-G7YBVAMC.js");
389
+ const { runDialogQueryCommand } = await import("./dialogCommands-YZLSJB6X.js");
333
390
  return runDialogQueryCommand(args, deps);
334
391
  }),
335
392
  createEnvCommand(["dialog", "read"], "Read a dialog", async (args, deps) => {
336
- const { runDialogReadCommand } = await import("./dialogCommands-G7YBVAMC.js");
393
+ const { runDialogReadCommand } = await import("./dialogCommands-YZLSJB6X.js");
337
394
  return runDialogReadCommand(args, deps);
338
395
  }),
339
396
  createEnvCommand(["dialog", "status"], "Read compact dialog status", async (args, deps) => {
340
- const { runDialogStatusCommand } = await import("./dialogCommands-G7YBVAMC.js");
397
+ const { runDialogStatusCommand } = await import("./dialogCommands-YZLSJB6X.js");
341
398
  return runDialogStatusCommand(args, deps);
342
399
  })
343
400
  ];
@@ -347,39 +404,39 @@ function getDialogInternalCommandEntries() {
347
404
  function getDocInternalCommandEntries() {
348
405
  return [
349
406
  createEnvCommand(["doc", "create"], "Create a normal doc", async (args, deps) => {
350
- const { runDocCreateCommand } = await import("./docCreateCommands-ZSLGVBZT.js");
407
+ const { runDocCreateCommand } = await import("./docCreateCommands-JB2RRMRJ.js");
351
408
  return runDocCreateCommand(args, deps);
352
409
  }),
353
410
  createEnvCommand(["doc", "read"], "Read a normal doc", async (args, deps) => {
354
- const { runDocReadCommand } = await import("./docReadCommands-YJSAA7AV.js");
411
+ const { runDocReadCommand } = await import("./docReadCommands-DYD25YLQ.js");
355
412
  return runDocReadCommand(args, deps);
356
413
  }),
357
414
  createEnvCommand(["doc", "update"], "Update a normal doc", async (args, deps) => {
358
- const { runDocUpdateCommand } = await import("./docUpdateCommands-WEMLSW6W.js");
415
+ const { runDocUpdateCommand } = await import("./docUpdateCommands-3GVS23QL.js");
359
416
  return runDocUpdateCommand(args, deps);
360
417
  }),
361
418
  createEnvCommand(["doc", "delete"], "Delete a normal doc", async (args, deps) => {
362
- const { runDocDeleteCommand } = await import("./docDeleteCommands-5N4GVZBG.js");
419
+ const { runDocDeleteCommand } = await import("./docDeleteCommands-AQENULNM.js");
363
420
  return runDocDeleteCommand(args, deps);
364
421
  }),
365
422
  createEnvCommand(["skill-doc", "create"], "Create a skill-backed doc", async (args, deps) => {
366
- const { runSkillDocCreateCommand } = await import("./docCreateCommands-ZSLGVBZT.js");
423
+ const { runSkillDocCreateCommand } = await import("./docCreateCommands-JB2RRMRJ.js");
367
424
  return runSkillDocCreateCommand(args, deps);
368
425
  }),
369
426
  createEnvCommand(["skill", "create-doc"], "Create a skill-backed doc", async (args, deps) => {
370
- const { runSkillDocCreateCommand } = await import("./docCreateCommands-ZSLGVBZT.js");
427
+ const { runSkillDocCreateCommand } = await import("./docCreateCommands-JB2RRMRJ.js");
371
428
  return runSkillDocCreateCommand(args, deps);
372
429
  }),
373
430
  createEnvCommand(["skill-doc", "read"], "Read a skill doc", async (args, deps) => {
374
- const { runSkillDocReadCommand } = await import("./docReadCommands-YJSAA7AV.js");
431
+ const { runSkillDocReadCommand } = await import("./docReadCommands-DYD25YLQ.js");
375
432
  return runSkillDocReadCommand(args, deps);
376
433
  }),
377
434
  createEnvCommand(["skill-doc", "update"], "Update a skill doc", async (args, deps) => {
378
- const { runSkillDocUpdateCommand } = await import("./docUpdateCommands-WEMLSW6W.js");
435
+ const { runSkillDocUpdateCommand } = await import("./docUpdateCommands-3GVS23QL.js");
379
436
  return runSkillDocUpdateCommand(args, deps);
380
437
  }),
381
438
  createEnvCommand(["skill-doc", "delete"], "Delete a skill doc", async (args, deps) => {
382
- const { runSkillDocDeleteCommand } = await import("./docDeleteCommands-5N4GVZBG.js");
439
+ const { runSkillDocDeleteCommand } = await import("./docDeleteCommands-AQENULNM.js");
383
440
  return runSkillDocDeleteCommand(args, deps);
384
441
  })
385
442
  ];
@@ -407,19 +464,19 @@ function getMemoryInternalCommandEntries() {
407
464
  function getSpaceInternalCommandEntries() {
408
465
  return [
409
466
  createEnvCommand(["space", "create"], "Create a space", async (args, deps) => {
410
- const { runSpaceCreateCommand } = await import("./spaceCommands-UJOVU4XI.js");
467
+ const { runSpaceCreateCommand } = await import("./spaceCommands-ZR5BR3GX.js");
411
468
  return runSpaceCreateCommand(args, deps);
412
469
  }),
413
470
  createEnvCommand(["space", "invite"], "Invite an existing user to a space", async (args, deps) => {
414
- const { runSpaceInviteCommand } = await import("./spaceCommands-UJOVU4XI.js");
471
+ const { runSpaceInviteCommand } = await import("./spaceCommands-ZR5BR3GX.js");
415
472
  return runSpaceInviteCommand(args, deps);
416
473
  }),
417
474
  createEnvCommand(["space", "accept-invite"], "Accept a space invite", async (args, deps) => {
418
- const { runSpaceAcceptInviteCommand } = await import("./spaceCommands-UJOVU4XI.js");
475
+ const { runSpaceAcceptInviteCommand } = await import("./spaceCommands-ZR5BR3GX.js");
419
476
  return runSpaceAcceptInviteCommand(args, deps);
420
477
  }),
421
478
  createEnvCommand(["space", "upload"], "Upload a file to a space", async (args, deps) => {
422
- const { runSpaceUploadCommand } = await import("./spaceCommands-UJOVU4XI.js");
479
+ const { runSpaceUploadCommand } = await import("./spaceCommands-ZR5BR3GX.js");
423
480
  return runSpaceUploadCommand(args, deps);
424
481
  })
425
482
  ];
@@ -429,67 +486,75 @@ function getSpaceInternalCommandEntries() {
429
486
  function getSystemInternalCommandEntries(renderHelpText2) {
430
487
  return [
431
488
  createContextCommand(["auth", "cooldown"], "List / clear credential availability cooldowns", async (_args, ctx) => {
432
- const { runAuthCooldownCommand } = await import("./cooldownCommands-ZLEPIB4A.js");
489
+ const { runAuthCooldownCommand } = await import("./cooldownCommands-JFKTYS2D.js");
433
490
  return runAuthCooldownCommand(_args, ctx.env);
434
491
  }),
435
492
  createArgsCommand(["auth", "cloudflare"], "Authorize Cloudflare OAuth", async (args) => {
436
- const { runAuthCloudflareCommand } = await import("./authCommand-UBJ4EWYZ.js");
493
+ const { runAuthCloudflareCommand } = await import("./authCommand-QYN47CQD.js");
437
494
  return runAuthCloudflareCommand(args);
438
495
  }),
439
496
  createArgsCommand(["auth", "chatgpt"], "Authorize ChatGPT / OpenAI Codex OAuth", async (args) => {
440
- const { runAuthChatgptCommand } = await import("./authCommand-UBJ4EWYZ.js");
497
+ const { runAuthChatgptCommand } = await import("./authCommand-QYN47CQD.js");
441
498
  return runAuthChatgptCommand(args);
442
499
  }),
443
500
  createArgsCommand(["auth", "xai"], "Authorize xAI Grok OAuth (SuperGrok subscription)", async (args) => {
444
- const { runAuthXaiCommand } = await import("./authCommand-UBJ4EWYZ.js");
501
+ const { runAuthXaiCommand } = await import("./authCommand-QYN47CQD.js");
445
502
  return runAuthXaiCommand(args);
446
503
  }),
447
504
  createArgsCommand(["auth", "antigravity"], "Authorize Google Antigravity OAuth", async (args) => {
448
- const { runAuthAntigravityCommand } = await import("./authCommand-UBJ4EWYZ.js");
505
+ const { runAuthAntigravityCommand } = await import("./authCommand-QYN47CQD.js");
449
506
  return runAuthAntigravityCommand(args);
450
507
  }),
451
508
  createArgsCommand(["auth", "claude"], "Authorize Claude Pro/Max OAuth", async (args) => {
452
- const { runAuthClaudeCommand } = await import("./authCommand-UBJ4EWYZ.js");
509
+ const { runAuthClaudeCommand } = await import("./authCommand-QYN47CQD.js");
453
510
  return runAuthClaudeCommand(args);
454
511
  }),
455
512
  createArgsCommand(["auth", "cursor"], "Authorize Cursor Pro OAuth", async (args) => {
456
- const { runAuthCursorCommand } = await import("./authCommand-UBJ4EWYZ.js");
513
+ const { runAuthCursorCommand } = await import("./authCommand-QYN47CQD.js");
457
514
  return runAuthCursorCommand(args);
458
515
  }),
459
516
  createArgsCommand(["auth", "devin"], "Authorize Devin OAuth (Free SWE-2)", async (args) => {
460
- const { runAuthDevinCommand } = await import("./authCommand-UBJ4EWYZ.js");
517
+ const { runAuthDevinCommand } = await import("./authCommand-QYN47CQD.js");
461
518
  return runAuthDevinCommand(args);
462
519
  }),
520
+ createArgsCommand(["auth", "workbuddy"], "Authorize WorkBuddy OAuth (China)", async (args) => {
521
+ const { runAuthWorkbuddyCommand } = await import("./authCommand-QYN47CQD.js");
522
+ return runAuthWorkbuddyCommand(args);
523
+ }),
524
+ createArgsCommand(["auth", "workbuddy-ai"], "Authorize WorkBuddy AI OAuth (International)", async (args) => {
525
+ const { runAuthWorkbuddyAiCommand } = await import("./authCommand-QYN47CQD.js");
526
+ return runAuthWorkbuddyAiCommand(args);
527
+ }),
463
528
  createArgsCommand(["login"], "Log in to Nolo", async (args) => {
464
- const { runLoginCommand } = await import("./authCommands-H6WKKCRW.js");
529
+ const { runLoginCommand } = await import("./authCommands-77CHYBGF.js");
465
530
  return runLoginCommand(args);
466
531
  }),
467
532
  createContextCommand(["logout"], "Log out of Nolo", async (args, ctx) => {
468
- const { runLogoutCommand } = await import("./authCommands-H6WKKCRW.js");
533
+ const { runLogoutCommand } = await import("./authCommands-77CHYBGF.js");
469
534
  return runLogoutCommand({ args, env: ctx.env });
470
535
  }),
471
536
  createContextCommand(["whoami"], "Show the current login state", async (args, ctx) => {
472
- const { runWhoamiCommand } = await import("./authCommands-H6WKKCRW.js");
537
+ const { runWhoamiCommand } = await import("./authCommands-77CHYBGF.js");
473
538
  return runWhoamiCommand({ args, env: ctx.env });
474
539
  }),
475
540
  createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args, deps) => {
476
- const { runMachineConnectCommand } = await import("./machineCommands-HAP75VSG.js");
541
+ const { runMachineConnectCommand } = await import("./machineCommands-5KBF4RCC.js");
477
542
  return runMachineConnectCommand(args, deps);
478
543
  }),
479
544
  createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args, deps) => {
480
- const { runMachineConnectCommand } = await import("./machineCommands-HAP75VSG.js");
545
+ const { runMachineConnectCommand } = await import("./machineCommands-5KBF4RCC.js");
481
546
  return runMachineConnectCommand(args, deps);
482
547
  }),
483
548
  createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args, deps) => {
484
- const { runMachineStatusCommand } = await import("./machineCommands-HAP75VSG.js");
549
+ const { runMachineStatusCommand } = await import("./machineCommands-5KBF4RCC.js");
485
550
  return runMachineStatusCommand(args, deps);
486
551
  }),
487
552
  createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args, deps) => {
488
- const { runDoctorRuntimeCommand } = await import("./runtimeDoctorCommands-ID23PNNZ.js");
553
+ const { runDoctorRuntimeCommand } = await import("./runtimeDoctorCommands-GIOGC5SC.js");
489
554
  return runDoctorRuntimeCommand(args, deps);
490
555
  }),
491
556
  createContextCommand(["doctor"], "Show CLI doctor information", async (_args, ctx) => {
492
- const { buildCliDoctorText, getCliInstallChannel, resolveSelfUpdateServerUrl } = await import("./updateCommands-4EHDLF5J.js");
557
+ const { buildCliDoctorText, getCliInstallChannel, resolveSelfUpdateServerUrl } = await import("./updateCommands-NQXAGFM7.js");
493
558
  const { isCompiledBinary } = await import("./cliEnvHelpers-ZXNMX7VV.js");
494
559
  const serverUrl = resolveSelfUpdateServerUrl(ctx.env);
495
560
  console.log(
@@ -506,25 +571,30 @@ function getSystemInternalCommandEntries(renderHelpText2) {
506
571
  return 0;
507
572
  }),
508
573
  createContextCommand(["update"], "Update the CLI", async (_args, ctx) => {
509
- const { resolveSelfUpdateServerUrl, runSelfUpdate } = await import("./updateCommands-4EHDLF5J.js");
574
+ const { resolveSelfUpdateServerUrl, runSelfUpdate } = await import("./updateCommands-NQXAGFM7.js");
510
575
  return runSelfUpdate({
511
576
  entrypointPath: ctx.entrypointPath,
512
577
  serverUrl: resolveSelfUpdateServerUrl(ctx.env),
513
578
  env: ctx.env
514
579
  });
515
580
  }),
581
+ createArgsCommand(["secret"], "Manage local developer secrets (~/.nolo/credentials/secrets.json)", async (args) => {
582
+ const { runSecretCommand } = await import("./secretCommands-ZXZRLR3R.js");
583
+ await runSecretCommand(args);
584
+ return process.exitCode ?? 0;
585
+ }),
516
586
  createContextCommand(["version"], "Show CLI version", async (_args, ctx) => {
517
- const { buildCliVersionText } = await import("./updateCommands-4EHDLF5J.js");
587
+ const { buildCliVersionText } = await import("./updateCommands-NQXAGFM7.js");
518
588
  console.log(buildCliVersionText(ctx.packageInfo));
519
589
  return 0;
520
590
  }),
521
591
  createContextCommand(["--version"], "Show CLI version", async (_args, ctx) => {
522
- const { buildCliVersionText } = await import("./updateCommands-4EHDLF5J.js");
592
+ const { buildCliVersionText } = await import("./updateCommands-NQXAGFM7.js");
523
593
  console.log(buildCliVersionText(ctx.packageInfo));
524
594
  return 0;
525
595
  }),
526
596
  createContextCommand(["-v"], "Show CLI version", async (_args, ctx) => {
527
- const { buildCliVersionText } = await import("./updateCommands-4EHDLF5J.js");
597
+ const { buildCliVersionText } = await import("./updateCommands-NQXAGFM7.js");
528
598
  console.log(buildCliVersionText(ctx.packageInfo));
529
599
  return 0;
530
600
  }),
@@ -578,39 +648,39 @@ function getTableInternalCommandEntries() {
578
648
  return 0;
579
649
  }),
580
650
  createArgsCommand(["table", "delete-rows"], "Delete table rows", async (args) => {
581
- const { runTableDeleteRowsCommand } = await import("./tableCommands-G7RV3RU3.js");
651
+ const { runTableDeleteRowsCommand } = await import("./tableCommands-U3QDY4L6.js");
582
652
  return runTableDeleteRowsCommand(args);
583
653
  }),
584
654
  createEnvCommand(["table", "purge-rows"], "Permanently purge table rows", async (args, deps) => {
585
- const { runTablePurgeRowsCommand } = await import("./tableCommands-G7RV3RU3.js");
655
+ const { runTablePurgeRowsCommand } = await import("./tableCommands-U3QDY4L6.js");
586
656
  return runTablePurgeRowsCommand(args, deps);
587
657
  }),
588
658
  createEnvCommand(["table", "remove-row-fields"], "Remove fields from table rows", async (args, deps) => {
589
- const { runTableRemoveRowFieldsCommand } = await import("./tableCommands-G7RV3RU3.js");
659
+ const { runTableRemoveRowFieldsCommand } = await import("./tableCommands-U3QDY4L6.js");
590
660
  return runTableRemoveRowFieldsCommand(args, deps);
591
661
  }),
592
662
  createEnvCommand(["table", "add-column"], "Add a table column", async (args, deps) => {
593
- const { runTableAddColumnCommand } = await import("./tableCommands-G7RV3RU3.js");
663
+ const { runTableAddColumnCommand } = await import("./tableCommands-U3QDY4L6.js");
594
664
  return runTableAddColumnCommand(args, deps);
595
665
  }),
596
666
  createEnvCommand(["table", "add-row"], "Add a table row", async (args, deps) => {
597
- const { runTableAddRowCommand } = await import("./tableCommands-G7RV3RU3.js");
667
+ const { runTableAddRowCommand } = await import("./tableCommands-U3QDY4L6.js");
598
668
  return runTableAddRowCommand(args, deps);
599
669
  }),
600
670
  createEnvCommand(["table", "add-rows"], "Add table rows", async (args, deps) => {
601
- const { runTableAddRowsCommand } = await import("./tableCommands-G7RV3RU3.js");
671
+ const { runTableAddRowsCommand } = await import("./tableCommands-U3QDY4L6.js");
602
672
  return runTableAddRowsCommand(args, deps);
603
673
  }),
604
674
  createEnvCommand(["table", "update-row"], "Update a table row", async (args, deps) => {
605
- const { runTableUpdateRowCommand } = await import("./tableCommands-G7RV3RU3.js");
675
+ const { runTableUpdateRowCommand } = await import("./tableCommands-U3QDY4L6.js");
606
676
  return runTableUpdateRowCommand(args, deps);
607
677
  }),
608
678
  createEnvCommand(["table", "update-rows"], "Update table rows", async (args, deps) => {
609
- const { runTableUpdateRowsCommand } = await import("./tableCommands-G7RV3RU3.js");
679
+ const { runTableUpdateRowsCommand } = await import("./tableCommands-U3QDY4L6.js");
610
680
  return runTableUpdateRowsCommand(args, deps);
611
681
  }),
612
682
  createEnvCommand(["table", "delete-row"], "Delete a table row", async (args, deps) => {
613
- const { runTableDeleteRowCommand } = await import("./tableCommands-G7RV3RU3.js");
683
+ const { runTableDeleteRowCommand } = await import("./tableCommands-U3QDY4L6.js");
614
684
  return runTableDeleteRowCommand(args, deps);
615
685
  })
616
686
  ];
@@ -620,11 +690,11 @@ function getTableInternalCommandEntries() {
620
690
  function getWorkflowInternalCommandEntries() {
621
691
  return [
622
692
  createEnvCommand(["table", "list"], "List table metadata", async (args, deps) => {
623
- const { runTableListCommand } = await import("./tableCommands-G7RV3RU3.js");
693
+ const { runTableListCommand } = await import("./tableCommands-U3QDY4L6.js");
624
694
  return runTableListCommand(args, deps);
625
695
  }),
626
696
  createEnvCommand(["table", "query"], "Query table rows", async (args, deps) => {
627
- const { runTableQueryCommand } = await import("./tableCommands-G7RV3RU3.js");
697
+ const { runTableQueryCommand } = await import("./tableCommands-U3QDY4L6.js");
628
698
  return runTableQueryCommand(args, deps);
629
699
  })
630
700
  ];
@@ -641,8 +711,9 @@ function getInternalCommandEntries(renderHelpText2) {
641
711
  ...getTableInternalCommandEntries(),
642
712
  ...getAppInternalCommandEntries(),
643
713
  ...getWorkflowInternalCommandEntries(),
644
- // nolo chrome — connector setup (status|install|reload) + live-Chrome operations.
714
+ // nolo browser (main) / chrome (alias) — connector setup (status|install|reload) + live browser operations.
645
715
  ...getChromeInternalCommandEntries(),
716
+ ...getCiInternalCommandEntries(),
646
717
  ...getSystemInternalCommandEntries(renderHelpText2)
647
718
  ];
648
719
  }
@@ -704,8 +775,9 @@ var GROUP_ORDER = [
704
775
  "skill",
705
776
  "agent",
706
777
  "machine",
707
- "chrome",
708
778
  "browser",
779
+ "chrome",
780
+ "ci",
709
781
  "doctor",
710
782
  "dialog",
711
783
  "memory",
@@ -739,10 +811,10 @@ function renderHelpText() {
739
811
  " nolo connect --ws --server-url https://api.nolo.chat --machine-key sk_machine_xxx",
740
812
  " nolo connect --daemon --server-url https://api.nolo.chat --machine-key sk_machine_xxx",
741
813
  " nolo machine status",
742
- " nolo chrome install",
743
- " nolo chrome status",
814
+ " nolo browser install",
744
815
  " nolo browser status",
745
- ' nolo chrome upload --tab 1 --selector "#upload" --file ./photo.jpg',
816
+ " nolo chrome status # compatibility alias",
817
+ ' nolo browser upload --tab 1 --selector "#upload" --file ./photo.jpg',
746
818
  " nolo doctor",
747
819
  " nolo doctor runtime",
748
820
  " nolo update",
@@ -772,7 +844,9 @@ function renderHelpText() {
772
844
  " nolo llama status",
773
845
  " nolo app list --json",
774
846
  " nolo app get --name my-app",
775
- " nolo app deploy --name my-app --code-file ./worker.js"
847
+ " nolo app deploy --name my-app --code-file ./worker.js",
848
+ " nolo secret list",
849
+ " nolo secret run --with amo -- bunx web-ext sign"
776
850
  ];
777
851
  for (const group of GROUP_ORDER) {
778
852
  const commands = COMMANDS.filter((entry) => entry.path[0] === group);
@@ -791,10 +865,12 @@ function renderCommandGroupHelpText(group) {
791
865
  const commands = COMMANDS.filter((entry) => entry.path[0] === group);
792
866
  if (commands.length === 0) return "";
793
867
  return [
794
- `nolo ${group} commands`,
868
+ t("cli.groupCommandsTitle", group),
795
869
  "",
796
- "Usage:",
797
- ...commands.map((entry) => ` nolo ${entry.path.join(" ")} ${entry.description}`),
870
+ t("cli.usageLabel"),
871
+ ...commands.map(
872
+ (entry) => ` nolo ${entry.path.join(" ")} ${cliCommandDescription(entry.path.join(" ")) ?? entry.description}`
873
+ ),
798
874
  ""
799
875
  ].join("\n");
800
876
  }