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,11 +1,10 @@
1
1
  import {
2
- getCredentialsDir,
3
- getLegacyCredentialPath,
4
- migrateLegacyCredentialFile
5
- } from "./chunk-ZWQUWF6W.js";
2
+ asNonEmptyStringArray,
3
+ asTrimmedNonEmptyStringArray
4
+ } from "./chunk-I42VC5KR.js";
6
5
  import {
7
- asNonEmptyStringArray
8
- } from "./chunk-3AH7LNUB.js";
6
+ asOptionalPositiveFiniteNumber
7
+ } from "./chunk-U6VC4MU4.js";
9
8
  import {
10
9
  isRecord
11
10
  } from "./chunk-KUG52IAP.js";
@@ -13,136 +12,8 @@ import {
13
12
  asTrimmedString
14
13
  } from "./chunk-3EUW3WEO.js";
15
14
  import {
16
- asOptionalPositiveFiniteNumber
17
- } from "./chunk-U6VC4MU4.js";
18
-
19
- // packages/agent-runtime/fileCredentialBroker.ts
20
- import {
21
- chmodSync,
22
- existsSync,
23
- mkdirSync,
24
- readFileSync,
25
- unlinkSync,
26
- writeFileSync
27
- } from "node:fs";
28
- import { homedir } from "node:os";
29
- import { join } from "node:path";
30
-
31
- // packages/agent-runtime/credentialBroker.ts
32
- function assertCredentialRef(ref) {
33
- const trimmed = asTrimmedString(ref);
34
- if (!trimmed) {
35
- throw new Error("invalid_ref");
36
- }
37
- if (trimmed.includes("..") || trimmed.includes("/") || trimmed.includes("\\")) {
38
- throw new Error("invalid_ref");
39
- }
40
- return trimmed;
41
- }
42
-
43
- // packages/agent-runtime/fileCredentialBroker.ts
44
- function getApiKeyCredentialsDir(homeDir) {
45
- return join(getCredentialsDir(homeDir), "keys");
46
- }
47
- function credentialRefToFileName(ref) {
48
- const safe = assertCredentialRef(ref).replace(/[^a-zA-Z0-9._-]+/g, "_");
49
- if (!safe || safe === "." || safe === "..") {
50
- throw new Error(`Credential ref is not filesystem-safe: ${ref}`);
51
- }
52
- return `${safe}.json`;
53
- }
54
- function getApiKeyCredentialPath(ref, homeDir) {
55
- return join(getApiKeyCredentialsDir(homeDir), credentialRefToFileName(ref));
56
- }
57
- function ensurePrivateDir(dir) {
58
- mkdirSync(dir, { recursive: true, mode: 448 });
59
- try {
60
- chmodSync(dir, 448);
61
- } catch {
62
- }
63
- }
64
- function writePrivateFile(path, body) {
65
- writeFileSync(path, body, { encoding: "utf8", mode: 384 });
66
- try {
67
- chmodSync(path, 384);
68
- } catch {
69
- }
70
- }
71
- function migrateApiKeyCredentialIfNeeded(ref, homeDir, migration) {
72
- if (homeDir !== void 0 || !migration?.enableLegacyMigration) return;
73
- const legacyHomeDir = migration.legacyHomeDir ?? homedir();
74
- const relativePath = join("keys", credentialRefToFileName(ref));
75
- migrateLegacyCredentialFile({
76
- canonicalPath: getApiKeyCredentialPath(ref),
77
- legacyPath: getLegacyCredentialPath(relativePath, legacyHomeDir),
78
- mode: migration.mode ?? (migration.legacyHomeDir ? "test" : "production"),
79
- isValid: (raw) => {
80
- try {
81
- const parsed = JSON.parse(raw);
82
- return typeof parsed?.secret === "string" && Boolean(parsed.secret);
83
- } catch {
84
- return false;
85
- }
86
- }
87
- });
88
- }
89
- function readApiKeyCredential(ref, homeDir, migration) {
90
- migrateApiKeyCredentialIfNeeded(ref, homeDir, migration);
91
- const path = getApiKeyCredentialPath(ref, homeDir);
92
- if (!existsSync(path)) return null;
93
- try {
94
- const raw = readFileSync(path, "utf8");
95
- const parsed = JSON.parse(raw);
96
- if (typeof parsed?.secret !== "string" || !parsed.secret) return null;
97
- return parsed.secret;
98
- } catch {
99
- return null;
100
- }
101
- }
102
- function writeApiKeyCredential(ref, secret, homeDir, now = Date.now()) {
103
- const trimmedSecret = secret.trim();
104
- if (!trimmedSecret) {
105
- throw new Error("Cannot store an empty credential secret.");
106
- }
107
- assertCredentialRef(ref);
108
- const dir = getApiKeyCredentialsDir(homeDir);
109
- ensurePrivateDir(dir);
110
- const path = getApiKeyCredentialPath(ref, homeDir);
111
- const payload = {
112
- secret: trimmedSecret,
113
- updatedAt: now
114
- };
115
- writePrivateFile(path, `${JSON.stringify(payload, null, 2)}
116
- `);
117
- }
118
- function removeApiKeyCredential(ref, homeDir) {
119
- assertCredentialRef(ref);
120
- const path = getApiKeyCredentialPath(ref, homeDir);
121
- if (!existsSync(path)) return;
122
- unlinkSync(path);
123
- }
124
- function hasApiKeyCredential(ref, homeDir, migration) {
125
- return readApiKeyCredential(ref, homeDir, migration) !== null;
126
- }
127
- function createFileCredentialBroker(options = {}) {
128
- const homeDir = options.homeDir;
129
- const migration = options.migration;
130
- const now = options.now ?? Date.now;
131
- return {
132
- get(ref) {
133
- return readApiKeyCredential(ref, homeDir, migration);
134
- },
135
- put(ref, secret) {
136
- writeApiKeyCredential(ref, secret, homeDir, now());
137
- },
138
- delete(ref) {
139
- removeApiKeyCredential(ref, homeDir);
140
- },
141
- has(ref) {
142
- return hasApiKeyCredential(ref, homeDir, migration);
143
- }
144
- };
145
- }
15
+ asOptionalTrimmedString
16
+ } from "./chunk-G3SUCT4W.js";
146
17
 
147
18
  // packages/agent-runtime/migrateAgentSecrets.ts
148
19
  function buildAgentApiKeyCredentialRef(agentKey) {
@@ -255,13 +126,51 @@ function applyAgentSecretMigrationUpdates(record, updates) {
255
126
  function unique(values) {
256
127
  return [...new Set(values)];
257
128
  }
129
+ function mergeRecords(base, override) {
130
+ if (!base && !override) return void 0;
131
+ return {
132
+ ...base ?? {},
133
+ ...override ?? {}
134
+ };
135
+ }
136
+ function normalizeWorkspacePolicy(value) {
137
+ if (!isRecord(value)) return void 0;
138
+ const mode = value.mode === "none" || value.mode === "current" || value.mode === "lease" ? value.mode : void 0;
139
+ const readableRoots = unique(asNonEmptyStringArray(value.readableRoots));
140
+ const writableRoots = unique(asNonEmptyStringArray(value.writableRoots));
141
+ const cwd = asOptionalTrimmedString(value.cwd);
142
+ const normalized = {
143
+ ...mode ? { mode } : {},
144
+ ...readableRoots.length ? { readableRoots } : {},
145
+ ...writableRoots.length ? { writableRoots } : {},
146
+ ...cwd ? { cwd } : {}
147
+ };
148
+ return Object.keys(normalized).length > 0 ? normalized : void 0;
149
+ }
150
+ function mergeWorkspacePolicy(base, override) {
151
+ const readableRoots = unique([
152
+ ...base?.readableRoots ?? [],
153
+ ...override?.readableRoots ?? []
154
+ ]);
155
+ const writableRoots = unique([
156
+ ...base?.writableRoots ?? [],
157
+ ...override?.writableRoots ?? []
158
+ ]);
159
+ return {
160
+ ...base ?? {},
161
+ ...override ?? {},
162
+ ...readableRoots.length ? { readableRoots } : {},
163
+ ...writableRoots.length ? { writableRoots } : {}
164
+ };
165
+ }
258
166
  function normalizeAgentRuntimeToolPolicy(value) {
259
167
  if (!isRecord(value)) return void 0;
168
+ const workspace = normalizeWorkspacePolicy(value.workspace);
260
169
  return {
261
170
  version: 1,
262
171
  ...asNonEmptyStringArray(value.agentTools).length ? { agentTools: unique(asNonEmptyStringArray(value.agentTools)) } : {},
263
172
  ...asNonEmptyStringArray(value.runtimeTools).length ? { runtimeTools: unique(asNonEmptyStringArray(value.runtimeTools)) } : {},
264
- ...isRecord(value.workspace) ? { workspace: { ...value.workspace } } : {},
173
+ ...workspace ? { workspace } : {},
265
174
  ...isRecord(value.shell) ? { shell: { ...value.shell } } : {},
266
175
  ...isRecord(value.isolation) ? { isolation: { ...value.isolation } } : {},
267
176
  ...isRecord(value.git) ? { git: { ...value.git } } : {},
@@ -269,6 +178,21 @@ function normalizeAgentRuntimeToolPolicy(value) {
269
178
  ...isRecord(value.audit) ? { audit: { ...value.audit } } : {}
270
179
  };
271
180
  }
181
+ function normalizeRuntimeToolPolicyOverride(value) {
182
+ if (!isRecord(value)) return void 0;
183
+ const runtimeTools = unique(
184
+ asTrimmedNonEmptyStringArray(value.runtimeTools).filter(
185
+ (tool) => tool === "execShell"
186
+ )
187
+ );
188
+ const workspace = isRecord(value.workspace) && value.workspace.mode === "lease" ? { mode: "lease" } : void 0;
189
+ if (!runtimeTools.length && !workspace) return void 0;
190
+ return {
191
+ version: 1,
192
+ ...runtimeTools.length ? { runtimeTools } : {},
193
+ ...workspace ? { workspace } : {}
194
+ };
195
+ }
272
196
  function runtimeBindingRecord(runtimeBinding) {
273
197
  return isRecord(runtimeBinding) ? runtimeBinding : void 0;
274
198
  }
@@ -278,6 +202,26 @@ function runtimeToolNamesFromPolicy(policy) {
278
202
  function readPositiveNumber(value) {
279
203
  return asOptionalPositiveFiniteNumber(Number(value));
280
204
  }
205
+ function mergeAgentRuntimeToolPolicies(base, override) {
206
+ if (!base && !override) return void 0;
207
+ return {
208
+ version: 1,
209
+ agentTools: unique([
210
+ ...base?.agentTools ?? [],
211
+ ...override?.agentTools ?? []
212
+ ]),
213
+ runtimeTools: unique([
214
+ ...base?.runtimeTools ?? [],
215
+ ...override?.runtimeTools ?? []
216
+ ]),
217
+ workspace: mergeWorkspacePolicy(base?.workspace, override?.workspace),
218
+ shell: mergeRecords(base?.shell, override?.shell),
219
+ isolation: mergeRecords(base?.isolation, override?.isolation),
220
+ git: mergeRecords(base?.git, override?.git),
221
+ budget: mergeRecords(base?.budget, override?.budget),
222
+ audit: mergeRecords(base?.audit, override?.audit)
223
+ };
224
+ }
281
225
  function resolveRequestedRuntimeToolNames(args) {
282
226
  const runtimeBinding = runtimeBindingRecord(args.agentConfig.runtimeBinding);
283
227
  const bindingPolicy = normalizeAgentRuntimeToolPolicy(
@@ -310,14 +254,49 @@ function resolveLocalWorkspaceExecutorOptionsFromPolicy(policy) {
310
254
  ...maxOutputBytes ? { commandOutputLimit: Math.floor(maxOutputBytes) } : {}
311
255
  };
312
256
  }
257
+ function policyRequestsHostedWorkspace(policy) {
258
+ if (!policy) return false;
259
+ const workspaceMode = policy.workspace?.mode;
260
+ return policy.shell?.enabled === true || policy.runtimeTools?.some((tool) => tool === "execShell") || workspaceMode === "lease";
261
+ }
262
+ function applyWebRuntimeSafetyBaseline(policy) {
263
+ if (!policyRequestsHostedWorkspace(policy)) return policy;
264
+ return mergeAgentRuntimeToolPolicies(
265
+ policy,
266
+ {
267
+ version: 1,
268
+ shell: {
269
+ commandPolicy: "approval",
270
+ networkPolicy: "default-deny"
271
+ },
272
+ isolation: {
273
+ mode: "os-sandbox"
274
+ },
275
+ audit: {
276
+ logToolCalls: true,
277
+ logShellCommands: true,
278
+ writeToDialog: true
279
+ }
280
+ }
281
+ );
282
+ }
283
+ function resolveEffectiveRuntimeToolPolicy(args) {
284
+ const agentPolicy = resolveCurrentRunRuntimeToolPolicy(args.agentConfig);
285
+ const requestedPolicy = normalizeRuntimeToolPolicyOverride(
286
+ args.runtimeToolPolicyOverride
287
+ );
288
+ const effectivePolicy = mergeAgentRuntimeToolPolicies(agentPolicy, requestedPolicy);
289
+ return args.host === "web" ? applyWebRuntimeSafetyBaseline(effectivePolicy) : effectivePolicy;
290
+ }
313
291
 
314
292
  export {
315
- createFileCredentialBroker,
316
293
  migrateAgentSecrets,
317
294
  applyAgentSecretMigrationUpdates,
318
295
  normalizeAgentRuntimeToolPolicy,
296
+ normalizeRuntimeToolPolicyOverride,
319
297
  resolveRequestedRuntimeToolNames,
320
298
  resolveCurrentRunRuntimeToolPolicy,
321
299
  resolveLocalRuntimeEnvFromPolicy,
322
- resolveLocalWorkspaceExecutorOptionsFromPolicy
300
+ resolveLocalWorkspaceExecutorOptionsFromPolicy,
301
+ resolveEffectiveRuntimeToolPolicy
323
302
  };
@@ -1,53 +1,56 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-XYJSY4KG.js";
4
+ } from "./chunk-FJMRBOPO.js";
5
+ import {
6
+ t
7
+ } from "./chunk-SW4S4XYB.js";
5
8
  import {
6
9
  clipMultilineText
7
- } from "./chunk-ATLTFRYJ.js";
10
+ } from "./chunk-ES633ZS5.js";
8
11
  import {
9
12
  runLocalAgentTurn
10
- } from "./chunk-4H22P2JV.js";
13
+ } from "./chunk-AUIJZACN.js";
11
14
  import {
12
15
  applyToolSurfaceConstraints
13
- } from "./chunk-RGNEEJ3Y.js";
16
+ } from "./chunk-QLQ573SU.js";
14
17
  import {
15
18
  resolveLocalRuntimeEnvFromPolicy
16
- } from "./chunk-L36OWPP3.js";
17
- import {
18
- toErrorMessage
19
- } from "./chunk-HNMXYYJR.js";
20
- import {
21
- parseUserIdFromAuthToken
22
- } from "./chunk-A7GB5UGH.js";
23
- import {
24
- DEFAULT_NOLO_SERVER_URL
25
- } from "./chunk-OLZBQWZU.js";
26
- import {
27
- readPipeText,
28
- spawnProcess
29
- } from "./chunk-Y6ROFCZO.js";
19
+ } from "./chunk-LIQJTQRN.js";
30
20
  import {
31
21
  asRecordOrEmpty
32
22
  } from "./chunk-KX6YBIHG.js";
23
+ import {
24
+ ownedAgentKey
25
+ } from "./chunk-M2EJHDJP.js";
33
26
  import {
34
27
  asTrimmedNonEmptyStringArray
35
- } from "./chunk-3AH7LNUB.js";
28
+ } from "./chunk-I42VC5KR.js";
29
+ import {
30
+ asOptionalPositiveFiniteNumber
31
+ } from "./chunk-U6VC4MU4.js";
36
32
  import {
37
33
  isRecord
38
34
  } from "./chunk-KUG52IAP.js";
39
- import {
40
- ownedAgentKey
41
- } from "./chunk-M2EJHDJP.js";
42
35
  import {
43
36
  asTrimmedString
44
37
  } from "./chunk-3EUW3WEO.js";
45
38
  import {
46
- asOptionalPositiveFiniteNumber
47
- } from "./chunk-U6VC4MU4.js";
39
+ toErrorMessage
40
+ } from "./chunk-HNMXYYJR.js";
41
+ import {
42
+ parseUserIdFromAuthToken
43
+ } from "./chunk-A7GB5UGH.js";
44
+ import {
45
+ DEFAULT_NOLO_SERVER_URL
46
+ } from "./chunk-OLZBQWZU.js";
48
47
  import {
49
48
  asOptionalTrimmedString
50
49
  } from "./chunk-G3SUCT4W.js";
50
+ import {
51
+ readPipeText,
52
+ spawnProcess
53
+ } from "./chunk-Y6ROFCZO.js";
51
54
 
52
55
  // packages/ai/agent/machineRunPermissions.ts
53
56
  var DEFAULT_POLICY = {
@@ -655,7 +658,7 @@ ${Date.now()}
655
658
  } catch (error) {
656
659
  const code = error && typeof error === "object" && "code" in error ? error.code : void 0;
657
660
  if (code === "EEXIST") {
658
- throw new Error("ChatGPT \u7F51\u9875\u751F\u56FE\u4EFB\u52A1\u6B63\u5728\u8FDB\u884C\u4E2D\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\uFF08\u9501\u6587\u4EF6\u5360\u7528\uFF09");
661
+ throw new Error(t("chatgptWebImage.jobInProgress"));
659
662
  }
660
663
  throw error;
661
664
  }
@@ -706,10 +709,10 @@ function assertOutputImage(outPath) {
706
709
  try {
707
710
  st = statSync(outPath);
708
711
  } catch {
709
- throw new Error(`ChatGPT \u7F51\u9875\u751F\u56FE\u672A\u4EA7\u51FA\u6587\u4EF6\uFF1A${outPath}`);
712
+ throw new Error(t("chatgptWebImage.noOutputFile", outPath));
710
713
  }
711
714
  if (!st.isFile() || st.size <= 0) {
712
- throw new Error(`ChatGPT \u7F51\u9875\u751F\u56FE\u6587\u4EF6\u65E0\u6548\u6216\u4E3A\u7A7A\uFF1A${outPath}`);
715
+ throw new Error(t("chatgptWebImage.outputFileInvalid", outPath));
713
716
  }
714
717
  }
715
718
  async function uploadPngToNoloFs(args) {
@@ -752,11 +755,11 @@ async function uploadPngToNoloFs(args) {
752
755
  if (!response.ok) {
753
756
  const errField = body.error;
754
757
  const message = typeof errField === "string" && errField || isRecord(errField) && typeof errField.message === "string" && errField.message || typeof body.details === "string" && body.details || `HTTP ${response.status}`;
755
- throw new Error(`\u4E0A\u4F20\u751F\u56FE\u7ED3\u679C\u5230 Nolo FS \u5931\u8D25\uFF1A${message}`);
758
+ throw new Error(t("chatgptWebImage.uploadFailed", message));
756
759
  }
757
760
  const fileId = asTrimmedString(body.fileId);
758
761
  if (!fileId) {
759
- throw new Error("\u4E0A\u4F20\u751F\u56FE\u7ED3\u679C\u6210\u529F\u4F46\u54CD\u5E94\u7F3A\u5C11 fileId");
762
+ throw new Error(t("chatgptWebImage.missingUploadFileId"));
760
763
  }
761
764
  const metadata = asRecordOrEmpty(body.metadata);
762
765
  return { fileId, metadata };
@@ -764,7 +767,7 @@ async function uploadPngToNoloFs(args) {
764
767
  async function runChatgptWebImageLocalJob(input, deps = {}) {
765
768
  const prompt = asTrimmedString(input.prompt);
766
769
  if (!prompt) {
767
- throw new Error("\u7F3A\u5C11\u751F\u56FE prompt\uFF08payload.meta.prompt \u5FC5\u586B\uFF09");
770
+ throw new Error(t("chatgptWebImage.missingPrompt"));
768
771
  }
769
772
  const home = (deps.homedir ?? homedir)();
770
773
  const lockPath = deps.lockPath ?? defaultLockPath(home);
@@ -781,7 +784,9 @@ async function runChatgptWebImageLocalJob(input, deps = {}) {
781
784
  });
782
785
  assertOutputImage(outPath);
783
786
  const userAuthToken = input.userAuthToken?.trim() || "";
784
- const userId = parseUserIdFromAuthToken(userAuthToken) || "default";
787
+ if (!userAuthToken) throw new Error("Cannot upload generated image without a user authentication token.");
788
+ const userId = parseUserIdFromAuthToken(userAuthToken);
789
+ if (!userId) throw new Error("Cannot determine authenticated user from the user authentication token.");
785
790
  const serverBase = (input.serverBase?.trim() || DEFAULT_NOLO_SERVER_URL).replace(/\/+$/, "");
786
791
  const uploaded = await uploadPngToNoloFs({
787
792
  outPath,
@@ -37,7 +37,7 @@ function resolveCliAuthorityBrokerPort(options = {}) {
37
37
  ...options,
38
38
  env: options.env ?? {}
39
39
  });
40
- return 47e3 + hashString(noloHome) % 2e3;
40
+ return 24e3 + hashString(noloHome) % 2e3;
41
41
  }
42
42
  function resolveCliAuthorityStoreDriver(options = {}) {
43
43
  return readCliAuthorityDriver(options.env ?? {}).driver;
@@ -48,7 +48,8 @@ function canonicalizeChromeConnectorToolNames(toolNames) {
48
48
  }
49
49
  var CONNECTOR_TARGET_PROPERTY = {
50
50
  type: "string",
51
- description: "Reserved and ignored for now; future multi-provider targeting."
51
+ enum: ["chrome", "firefox"],
52
+ description: `Which browser's connector serves this call: "chrome" or "firefox". Omit for the default endpoint.`
52
53
  };
53
54
  var CHROME_CONNECTOR_READ_TOOL_NAMES = [
54
55
  "browser_list_tabs",
@@ -112,7 +113,7 @@ var chromeCloseTabFunctionSchema = baseSchema(
112
113
  );
113
114
  var chromeReadPageFunctionSchema = baseSchema(
114
115
  "browser_read_page",
115
- "Read a compact view of a browser tab: visible text (hard cap 6000 chars) plus short-lived elementRefs (hard cap 35) and a pageRevision. Reuse those refs for browser_click_element and browser_type instead of guessing selectors; use region to focus a big page. Does not read cookies or profile databases.",
116
+ "Read a compact view of a browser tab: visible text (hard cap 6000 chars) plus short-lived elementRefs (hard cap 35) and a pageRevision. Reuse those refs for browser_click_element and browser_type instead of guessing selectors; use region to focus a big page. When the element list exceeds one page, continue by passing the returned nextOffset as offset. Does not read cookies or profile databases.",
116
117
  {
117
118
  tabId,
118
119
  region: {
@@ -127,6 +128,15 @@ var chromeReadPageFunctionSchema = baseSchema(
127
128
  type: "string",
128
129
  enum: ["compact", "full"],
129
130
  description: "compact (default) returns budgeted text; full raises the budget and adds capped HTML."
131
+ },
132
+ offset: {
133
+ type: "integer",
134
+ minimum: 0,
135
+ description: "Optional element offset for paging. When an element list exceeds one page, continue by passing the returned nextOffset as offset."
136
+ },
137
+ viewportOnly: {
138
+ type: "boolean",
139
+ description: "Optional. When true, only elements intersecting the current viewport are listed."
130
140
  }
131
141
  },
132
142
  ["tabId"]
@@ -173,9 +183,13 @@ var chromePressFunctionSchema = baseSchema(
173
183
  );
174
184
  var chromeScrollFunctionSchema = baseSchema(
175
185
  "browser_scroll",
176
- "Scroll a browser tab by pixel deltas.",
186
+ "Scroll the browser page or a CSS-selected container by pixel deltas; with selector and no deltas, observe the container's scroll position without moving it. Selector matching must resolve to exactly one valid element; invalid, missing, or ambiguous selectors fail without falling back to page scrolling. Results include targetBefore and targetAfter measurements for scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, and clientWidth.",
177
187
  {
178
188
  tabId,
189
+ selector: {
190
+ type: "string",
191
+ description: "Optional CSS selector for exactly one scroll container. When provided, only that container is scrolled; invalid, not-found, or ambiguous selectors fail without falling back. May be used without deltas to observe scroll position."
192
+ },
179
193
  deltaX: {
180
194
  type: "number",
181
195
  description: "Horizontal scroll delta in pixels."
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  dialogMessageKey
3
- } from "./chunk-3AH7LNUB.js";
3
+ } from "./chunk-5EMSBTQ6.js";
4
4
  import {
5
5
  asOptionalFiniteNumber
6
6
  } from "./chunk-WWC7I6TA.js";