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
@@ -0,0 +1,78 @@
1
+ import {
2
+ clipCompactText
3
+ } from "./chunk-5MMAK75Q.js";
4
+ import {
5
+ asRecordOrEmpty
6
+ } from "./chunk-KX6YBIHG.js";
7
+ import {
8
+ asOptionalTrimmedString
9
+ } from "./chunk-G3SUCT4W.js";
10
+
11
+ // packages/agent-runtime/fileWritePolicy.ts
12
+ function evaluateFileWritePolicy(args) {
13
+ if (args.sessionApproved) return { permissionDecision: "allow" };
14
+ return {
15
+ permissionDecision: "ask",
16
+ permissionRequest: {
17
+ id: "permission-file-write-session",
18
+ tool: args.tool,
19
+ action: "file_write",
20
+ title: "\u786E\u8BA4\u5199\u5165\u6587\u4EF6",
21
+ body: `\u672C\u4F1A\u8BDD\u9996\u6B21\u5199\u5165\u6587\u4EF6\uFF1A${args.path}\u3002\u6279\u51C6\u540E\u672C\u4F1A\u8BDD\u540E\u7EED\u5199\u5165\u4E0D\u518D\u9010\u6B21\u786E\u8BA4\u3002`,
22
+ command: args.path,
23
+ suggestedRule: {
24
+ scope: "session",
25
+ pattern: { capability: "file_write", target: "session" }
26
+ }
27
+ }
28
+ };
29
+ }
30
+
31
+ // packages/agent-runtime/parseToolArguments.ts
32
+ function parseToolArgumentsJson(raw) {
33
+ if (!raw?.trim()) return {};
34
+ try {
35
+ return asRecordOrEmpty(JSON.parse(raw));
36
+ } catch {
37
+ return {};
38
+ }
39
+ }
40
+
41
+ // packages/agent-runtime/summarizeToolArguments.ts
42
+ function clip(value, max = 240) {
43
+ return clipCompactText(value, max);
44
+ }
45
+ function summarizeToolArguments(toolName, rawArgs) {
46
+ const args = parseToolArgumentsJson(rawArgs);
47
+ const pick = (...keys2) => {
48
+ for (const key of keys2) {
49
+ const value = asOptionalTrimmedString(args[key]);
50
+ if (value) return value;
51
+ }
52
+ return "";
53
+ };
54
+ const command = pick("command", "cmd", "runCommand", "executeCommand", "bash");
55
+ if (command) return clip(command);
56
+ const query = pick("query", "pattern", "search", "q");
57
+ if (query) return clip(query);
58
+ const filePath = pick("filePath", "file_path", "path", "filename", "file");
59
+ if (filePath) return clip(filePath);
60
+ const keys = Object.keys(args);
61
+ if (keys.length === 0) return "";
62
+ return clip(
63
+ keys.slice(0, 6).map((key) => {
64
+ const value = args[key];
65
+ if (typeof value === "string") return `${key}=${clip(value, 80)}`;
66
+ if (typeof value === "number" || typeof value === "boolean") {
67
+ return `${key}=${String(value)}`;
68
+ }
69
+ if (Array.isArray(value)) return `${key}[${value.length}]`;
70
+ return `${key}=${value === null ? "null" : typeof value}`;
71
+ }).join(" ")
72
+ );
73
+ }
74
+
75
+ export {
76
+ evaluateFileWritePolicy,
77
+ summarizeToolArguments
78
+ };
@@ -80,6 +80,7 @@ var buildTombstoneRecord = (record, nowIso) => {
80
80
 
81
81
  export {
82
82
  getRecordTimestamp,
83
+ getTombstoneTimestamp,
83
84
  isTombstoneRecord,
84
85
  shouldReplaceWithNextRecord,
85
86
  buildTombstoneRecord
@@ -7,63 +7,68 @@ import {
7
7
  listUserRecordsFromServers,
8
8
  readDbRecordFromServers,
9
9
  readLiveDbRecordAfterTombstoneMerge
10
- } from "./chunk-XISEYOGH.js";
11
- import {
12
- isLevelLockError
13
- } from "./chunk-URMS4XY2.js";
14
- import {
15
- resolveLocalDialogDbCandidates,
16
- resolveServerDbPath
17
- } from "./chunk-GLKOYSRU.js";
10
+ } from "./chunk-USHQX6VT.js";
18
11
  import {
19
12
  fetchWithTransientRetry
20
- } from "./chunk-5UTFL4QJ.js";
13
+ } from "./chunk-I2ZMGXXF.js";
21
14
  import {
22
15
  DRAIN_EXHAUSTED_USER_MESSAGE,
23
- isDrainExhaustedResponse
24
- } from "./chunk-3L2WKC3W.js";
16
+ isDrainExhaustedResponse,
17
+ parsePositiveFiniteNumberOrFallback
18
+ } from "./chunk-XPWGOTBQ.js";
25
19
  import {
26
20
  buildDialogAttachmentPlan,
27
21
  extractFileContentIds
28
- } from "./chunk-6O4IK4V2.js";
22
+ } from "./chunk-OFFL4DCR.js";
23
+ import {
24
+ createClientLogger
25
+ } from "./chunk-QQ56R7KS.js";
26
+ import {
27
+ isLevelNotFoundError
28
+ } from "./chunk-OW765XBU.js";
29
29
  import {
30
30
  boundSummaryText,
31
31
  buildDialogReadEnvelope,
32
32
  projectDialogReadForAgent
33
- } from "./chunk-RGNEEJ3Y.js";
34
- import {
35
- toErrorMessage
36
- } from "./chunk-HNMXYYJR.js";
37
- import {
38
- parseUserIdFromAuthToken,
39
- readOption,
40
- resolveAuthToken,
41
- resolveDeleteServerCandidates,
42
- resolveServerCandidates,
43
- resolveServerUrl
44
- } from "./chunk-A7GB5UGH.js";
45
- import {
46
- parsePositiveFiniteNumberOrFallback
47
- } from "./chunk-Y5GCAMGP.js";
33
+ } from "./chunk-QLQ573SU.js";
48
34
  import {
49
35
  asRecordOrEmpty
50
36
  } from "./chunk-KX6YBIHG.js";
51
37
  import {
52
38
  asNonEmptyStringArray,
53
39
  asTrimmedNonEmptyStringArray
54
- } from "./chunk-3AH7LNUB.js";
55
- import {
56
- createClientLogger
57
- } from "./chunk-QOKAKDPE.js";
40
+ } from "./chunk-I42VC5KR.js";
58
41
  import {
59
- isLevelNotFoundError
60
- } from "./chunk-OW765XBU.js";
42
+ resolveRunsDir
43
+ } from "./chunk-YVLQXTUB.js";
61
44
  import {
62
45
  isRecord
63
46
  } from "./chunk-KUG52IAP.js";
64
47
  import {
65
48
  asTrimmedString
66
49
  } from "./chunk-3EUW3WEO.js";
50
+ import {
51
+ getDefaultCliLocalRuntimeDb
52
+ } from "./chunk-2IXDJNZI.js";
53
+ import {
54
+ isLevelLockError
55
+ } from "./chunk-AWVFQMOV.js";
56
+ import {
57
+ toErrorMessage
58
+ } from "./chunk-HNMXYYJR.js";
59
+ import {
60
+ resolveLocalDialogDbCandidates,
61
+ resolveNoloHome,
62
+ resolveServerDbPath
63
+ } from "./chunk-GLKOYSRU.js";
64
+ import {
65
+ parseUserIdFromAuthToken,
66
+ readOption,
67
+ resolveAuthToken,
68
+ resolveDeleteServerCandidates,
69
+ resolveServerCandidates,
70
+ resolveServerUrl
71
+ } from "./chunk-A7GB5UGH.js";
67
72
  import {
68
73
  DEFAULT_LOCAL_API_ORIGIN
69
74
  } from "./chunk-4SN6J65J.js";
@@ -180,7 +185,8 @@ async function deleteDialogAttachmentCandidates(args) {
180
185
  }
181
186
 
182
187
  // packages/cli/dialogCommands.ts
183
- import { existsSync } from "node:fs";
188
+ import { existsSync, realpathSync } from "node:fs";
189
+ import path from "node:path";
184
190
 
185
191
  // packages/core/positiveIntegerOrFallback.ts
186
192
  function parsePositiveIntegerOrFallback(value, fallback) {
@@ -188,6 +194,32 @@ function parsePositiveIntegerOrFallback(value, fallback) {
188
194
  return Number.isInteger(parsed) && parsed > 0 ? parsed : fallback;
189
195
  }
190
196
 
197
+ // packages/cli/tui/localRunChildDialogIds.ts
198
+ import { readdirSync, readFileSync } from "node:fs";
199
+ import { join } from "node:path";
200
+ function loadLocalRunChildDialogIds(args = {}) {
201
+ const ids = /* @__PURE__ */ new Set();
202
+ const runsDir = resolveRunsDir(args.env, args.homedir);
203
+ let entries;
204
+ try {
205
+ entries = readdirSync(runsDir);
206
+ } catch {
207
+ return ids;
208
+ }
209
+ for (const name of entries) {
210
+ if (!name.endsWith(".json")) continue;
211
+ try {
212
+ const record = JSON.parse(readFileSync(join(runsDir, name), "utf8"));
213
+ const dialogId = record?.dialogId;
214
+ if (typeof dialogId === "string" && dialogId.trim()) {
215
+ ids.add(dialogId.trim());
216
+ }
217
+ } catch {
218
+ }
219
+ }
220
+ return ids;
221
+ }
222
+
191
223
  // packages/cli/dialogCommands.ts
192
224
  var logger = createClientLogger("cli:dialog");
193
225
  var DIALOG_ID_RE = /^[0-9A-HJKMNP-TV-Z]{26}$/i;
@@ -361,6 +393,7 @@ function normalizeDialogRecord(record, fallbackDbKey) {
361
393
  createdAt: typeof record?.createdAt === "string" || typeof record?.createdAt === "number" ? record.createdAt : typeof record?.created === "string" || typeof record?.created === "number" ? record.created : null,
362
394
  spaceId: typeof record?.spaceId === "string" && record.spaceId.trim() ? record.spaceId : null,
363
395
  triggerType: typeof record?.triggerType === "string" ? record.triggerType : null,
396
+ parentDialogId: asOptionalTrimmedString(record?.parentDialogId) ?? null,
364
397
  primaryAgentKey: typeof record?.primaryAgentKey === "string" && record.primaryAgentKey.trim() ? record.primaryAgentKey : null,
365
398
  cybots: Array.isArray(record?.cybots) ? record.cybots.filter((agent) => typeof agent === "string") : []
366
399
  };
@@ -377,16 +410,33 @@ function sortDialogs(dialogs) {
377
410
  function isScheduledDialog(record) {
378
411
  return record.triggerType === "automation_run" || record.triggerType === "scheduled_run" || Boolean(record.parentAutomationKey) || Boolean(record.parentTaskKey);
379
412
  }
413
+ function isRunSpawnedDialog(record) {
414
+ return record.triggerType === "api" || record.triggerType === "localhost";
415
+ }
416
+ function isChildDialogByField(record) {
417
+ return Boolean(record.parentDialogId) && record.parentDialogId !== record.id;
418
+ }
419
+ function isChildDialog(record, localChildIds) {
420
+ return isRunSpawnedDialog(record) || localChildIds.has(record.id) || isChildDialogByField(record);
421
+ }
422
+ function isHiddenFromDialogList(record, localChildIds, options = {}) {
423
+ if (!options.includeScheduled && isScheduledDialog(record)) return true;
424
+ if (!options.includeChild && isChildDialog(record, localChildIds)) return true;
425
+ return false;
426
+ }
380
427
  function printListUsage(output) {
381
428
  output.write(`Usage:
382
- nolo dialog list [--space <spaceId|spaceUrl>] [--limit ${DEFAULT_DIALOG_LIST_LIMIT}] [--offset <n>] [--all] [--json] [--jsonl] [--ids-only]
429
+ nolo dialog list [--space <spaceId|spaceUrl>] [--limit ${DEFAULT_DIALOG_LIST_LIMIT}] [--offset <n>] [--all] [--json] [--jsonl] [--ids-only] [--include-scheduled] [--include-child]
383
430
 
384
431
  Options:
385
432
  --space <space> List current user's dialogs attached to one space.
386
433
  --limit <n> Maximum dialogs to return. Default: ${DEFAULT_DIALOG_LIST_LIMIT}. Use 0 or --all for full dump.
387
434
  --offset <n> Skip first n dialogs after sort/filter (paging).
388
435
  --all Full dump (same as --limit 0). Prefer --jsonl for large results.
389
- --include-scheduled Include scheduled automation run dialogs.
436
+ --include-scheduled Include scheduled automation run dialogs (hidden by default). Independent of --include-child.
437
+ --include-child Include child run dialogs (hidden by default): triggerType api/localhost, dialogs in the
438
+ local run record set, or with a parentDialogId pointing to another dialog.
439
+ Independent of --include-scheduled.
390
440
  --json Print machine-readable JSON object.
391
441
  --jsonl Stream one dialog JSON object per line (lowest memory).
392
442
  --ids-only Print only dialog ids.
@@ -725,7 +775,7 @@ function isExplicitDialogIdMismatch(meta, dialogId) {
725
775
  return meta && typeof meta === "object" && "id" in meta && meta.id != null && String(meta.id) !== dialogId;
726
776
  }
727
777
  async function readDialogFromLocalDb(dialogKey, dialogId, limit, readLocalDialog) {
728
- const reader = readLocalDialog ?? (await import("./localDialogRead-EBRS242U.js")).readDialogFromLocalDb;
778
+ const reader = readLocalDialog ?? (await import("./localDialogRead-FSOMOPDZ.js")).readDialogFromLocalDb;
729
779
  const result = await reader({ dialogKey, dialogId, limit });
730
780
  return {
731
781
  ...result,
@@ -733,48 +783,31 @@ async function readDialogFromLocalDb(dialogKey, dialogId, limit, readLocalDialog
733
783
  };
734
784
  }
735
785
  async function readLocalDialogAtDbPathDefault(args) {
736
- if (!existsSync(args.dbPath)) {
786
+ if (!existsSync(path.join(args.dbPath, "CURRENT"))) {
737
787
  throw Object.assign(
738
- new Error(`local database directory does not exist: ${args.dbPath}`),
739
- { code: "LEVEL_DATABASE_DIR_MISSING" }
788
+ new Error(`local database does not exist: ${args.dbPath}`),
789
+ { code: "LEVEL_NOT_FOUND" }
740
790
  );
741
791
  }
742
- const [{ Level }, { safeJsonEncoding }, { fetchMessages }] = await Promise.all([
743
- import("./levelLazyShim-GZBKODGI.js"),
744
- import("./serverStoreFactory-YMXDF4NI.js"),
745
- import("./fetchMessages-67MEFPZR.js")
746
- ]);
747
- const db = new Level(args.dbPath, {
748
- valueEncoding: safeJsonEncoding,
749
- createIfMissing: false
750
- });
751
- try {
752
- await db.open();
753
- let meta;
754
- try {
755
- meta = await db.get(args.dialogKey);
756
- } catch (error) {
757
- if (isLevelNotFoundError(error)) return { meta: void 0, msgs: [] };
758
- throw error;
759
- }
760
- const msgs = await fetchMessages(db, args.dialogId, {
761
- limit: args.limit,
762
- throwOnError: true
763
- });
764
- return { meta, msgs };
765
- } finally {
766
- await db.close().catch(() => void 0);
767
- }
792
+ const db = await getDefaultCliLocalRuntimeDb();
793
+ const { readDialogFromLocalDb: reader } = await import("./localDialogRead-FSOMOPDZ.js");
794
+ return reader({ ...args, db });
768
795
  }
769
796
  async function readDialogFromLocalDbWithFallback(args) {
770
797
  const candidates = localDialogDbCandidates();
771
798
  const attempts = [];
772
799
  let missMessage = "local dialog not found";
773
800
  let lockedError;
774
- let genericError;
775
801
  const primaryPath = candidates[0];
802
+ const homePath = path.join(resolveNoloHome(), "data", "leveldb");
803
+ const isHomePath = existsSync(primaryPath) && existsSync(homePath) && realpathSync(primaryPath) === realpathSync(homePath);
776
804
  try {
777
- const local = await readDialogFromLocalDb(
805
+ if (!args.readLocalDialog && !existsSync(primaryPath)) {
806
+ throw Object.assign(new Error(`local database directory does not exist: ${primaryPath}`), {
807
+ code: "LEVEL_NOT_FOUND"
808
+ });
809
+ }
810
+ const local = !args.readLocalDialog && isHomePath ? await readLocalDialogAtDbPathDefault({ ...args, dbPath: primaryPath }) : await readDialogFromLocalDb(
778
811
  args.dialogKey,
779
812
  args.dialogId,
780
813
  args.limit,
@@ -828,11 +861,15 @@ async function readDialogFromLocalDbWithFallback(args) {
828
861
  const locked = isLevelDbOpenUnavailableError(error);
829
862
  attempts.push({
830
863
  path: dbPath,
831
- status: locked ? "locked" : "error",
864
+ status: locked ? "locked" : isLevelNotFoundError(error) ? "miss" : "error",
832
865
  reason: toErrorMessage(error)
833
866
  });
867
+ if (!locked && !isLevelNotFoundError(error)) {
868
+ const failure = error instanceof Error ? error : new Error(toErrorMessage(error));
869
+ Object.assign(failure, { localAttempts: attempts });
870
+ throw failure;
871
+ }
834
872
  if (locked && !lockedError) lockedError = error;
835
- else if (!locked && !genericError) genericError = error;
836
873
  }
837
874
  }
838
875
  const aggregate = (error, code) => {
@@ -842,7 +879,6 @@ async function readDialogFromLocalDbWithFallback(args) {
842
879
  return err;
843
880
  };
844
881
  if (lockedError) throw aggregate(lockedError);
845
- if (genericError) throw aggregate(genericError);
846
882
  throw aggregate(new Error(missMessage), "LEVEL_NOT_FOUND");
847
883
  }
848
884
  async function readDialogSnapshot(args) {
@@ -1560,6 +1596,8 @@ async function runDialogListCommand(args, deps = {}) {
1560
1596
  const offset = readOffset(args);
1561
1597
  const spaceInput = readOption(args, "--space") ?? readOption(args, "--space-id");
1562
1598
  const includeScheduled = hasFlag(args, "--include-scheduled");
1599
+ const includeChild = hasFlag(args, "--include-child");
1600
+ const localChildIds = deps.localChildDialogIds ?? loadLocalRunChildDialogIds({ env });
1563
1601
  try {
1564
1602
  let source = "user-data";
1565
1603
  let resolvedSpaceId = null;
@@ -1592,7 +1630,9 @@ async function runDialogListCommand(args, deps = {}) {
1592
1630
  queryFailures = result.failures;
1593
1631
  }
1594
1632
  const sorted = sortDialogs(
1595
- records.map((record) => normalizeDialogRecord(record)).filter((dialog) => dialog != null).filter((dialog) => includeScheduled || !isScheduledDialog(dialog))
1633
+ records.map((record) => normalizeDialogRecord(record)).filter((dialog) => dialog != null).filter(
1634
+ (dialog) => !isHiddenFromDialogList(dialog, localChildIds, { includeScheduled, includeChild })
1635
+ )
1596
1636
  );
1597
1637
  const window = resultLimit.unlimited ? sorted.slice(offset, offset + UNBOUNDED_DIALOG_CAP) : sorted.slice(offset, offset + limit);
1598
1638
  const hitLimit = !resultLimit.unlimited && sorted.length > offset + window.length;
@@ -1946,9 +1986,14 @@ ${d.title}
1946
1986
  }
1947
1987
 
1948
1988
  export {
1989
+ loadLocalRunChildDialogIds,
1949
1990
  normalizeDialogRecord,
1950
1991
  sortDialogs,
1951
1992
  isScheduledDialog,
1993
+ isRunSpawnedDialog,
1994
+ isChildDialogByField,
1995
+ isChildDialog,
1996
+ isHiddenFromDialogList,
1952
1997
  isLevelDbOpenUnavailableError,
1953
1998
  readDialogSnapshot,
1954
1999
  isCleanDialogNotFoundFailure,
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  requireTokenUser
3
- } from "./chunk-SLLGJZDT.js";
3
+ } from "./chunk-ISQL4V7C.js";
4
+ import {
5
+ t
6
+ } from "./chunk-SW4S4XYB.js";
4
7
  import {
5
8
  resolveServerUrl
6
9
  } from "./chunk-A7GB5UGH.js";
@@ -34,21 +37,21 @@ async function cliApiRequest(args) {
34
37
  try {
35
38
  response = await fetch(url, init);
36
39
  } catch (error) {
37
- throw new CliApiError(`\u8BF7\u6C42\u5931\u8D25: ${error.message}`, "NETWORK_ERROR", 0);
40
+ throw new CliApiError(t("api.requestFailed", error.message), "NETWORK_ERROR", 0);
38
41
  }
39
42
  let data;
40
43
  try {
41
44
  data = await response.json();
42
45
  } catch {
43
46
  throw new CliApiError(
44
- `\u670D\u52A1\u7AEF\u8FD4\u56DE\u975E JSON \u54CD\u5E94 (HTTP ${response.status})`,
47
+ t("api.nonJsonResponse", String(response.status)),
45
48
  "INVALID_RESPONSE",
46
49
  response.status
47
50
  );
48
51
  }
49
52
  if (!response.ok || data.success !== true) {
50
53
  const errorObj = data.error ?? {};
51
- const message = errorObj.message || data.message || `\u8BF7\u6C42\u5931\u8D25 (HTTP ${response.status})`;
54
+ const message = errorObj.message || data.message || t("api.requestFailedHttp", String(response.status));
52
55
  const code = errorObj.code || `HTTP_${response.status}`;
53
56
  throw new CliApiError(message, code, response.status);
54
57
  }
@@ -56,13 +59,13 @@ async function cliApiRequest(args) {
56
59
  }
57
60
  function printCliError(error) {
58
61
  if (error instanceof CliApiError) {
59
- process.stderr.write(`\u9519\u8BEF [${error.code}]: ${error.message}
62
+ process.stderr.write(`${t("api.errorWithCode", error.code, error.message)}
60
63
  `);
61
64
  } else if (error instanceof Error) {
62
- process.stderr.write(`\u9519\u8BEF: ${error.message}
65
+ process.stderr.write(`${t("api.error", error.message)}
63
66
  `);
64
67
  } else {
65
- process.stderr.write(`\u9519\u8BEF: ${String(error)}
68
+ process.stderr.write(`${t("api.error", String(error))}
66
69
  `);
67
70
  }
68
71
  }
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  patch,
6
6
  read
7
- } from "./chunk-HYZIYH2H.js";
7
+ } from "./chunk-74RAWNQN.js";
8
8
  import {
9
9
  DEVICE_LOCAL_OWNER_ID,
10
10
  isDeviceLocalSpaceBody
11
- } from "./chunk-WIWM4FE3.js";
11
+ } from "./chunk-4YRTZIVN.js";
12
12
  import {
13
13
  selectIdentityUserId
14
14
  } from "./chunk-SEJ5OS6F.js";