nolo-cli 0.213.0 → 0.222.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/README.md +3 -2
  2. package/{_executeModel-CUJLCFWR.js → _executeModel-4GGQQHOB.js} +111 -82
  3. package/{accountResolver-4LKIHEKL.js → accountResolver-EK2S4PWF.js} +6 -6
  4. package/{action-DF5UYSJF.js → action-CK64LS6S.js} +12 -11
  5. package/{addContentAction-WERAONNY.js → addContentAction-GDHDOF4U.js} +18 -17
  6. package/{addDialogAgentAction-7VI7YRML.js → addDialogAgentAction-CAKRU3ZT.js} +21 -20
  7. package/{agentDeleteCommand-XJORXPGU.js → agentDeleteCommand-BPV2XZL7.js} +128 -119
  8. package/{agentEmailCommands-XTYYFR6Z.js → agentEmailCommands-EJOS75YL.js} +132 -124
  9. package/{agentFavoriteCommands-EDK743YA.js → agentFavoriteCommands-2LKGKSUD.js} +7 -8
  10. package/{agentGrantCommands-RQWK2TEV.js → agentGrantCommands-QQV4N4JW.js} +5 -5
  11. package/{agentListCommands-OBLRBLHS.js → agentListCommands-HIZODBF3.js} +155 -92
  12. package/{agentMachineCommands-5FMT3OT5.js → agentMachineCommands-ZMQ2CY7Y.js} +62 -54
  13. package/{agentProviderCommands-Q5O33MED.js → agentProviderCommands-WKJOAWBP.js} +5 -5
  14. package/{agentPullCommand-6EM3URVK.js → agentPullCommand-XN6ZPBUW.js} +7 -7
  15. package/agentRecordCommands-OMXVDLDX.js +176 -0
  16. package/agentRunCommand-CB34YWMV.js +206 -0
  17. package/{agentRunControl-TAMHJQSR.js → agentRunControl-JNONH3RP.js} +30 -15
  18. package/{agentRuntimeLocal-SOO2OPJG.js → agentRuntimeLocal-QZPFWMLG.js} +52 -45
  19. package/{agentSlice-CHR6KOZN.js → agentSlice-RD2CDU7T.js} +20 -19
  20. package/{appDeleteCommands-GUP6P5YE.js → appDeleteCommands-QCCFDIEQ.js} +61 -53
  21. package/{appDeployCommands-MH2FX4O5.js → appDeployCommands-V2T7TNMQ.js} +61 -53
  22. package/{appDeployStatusCommands-SUHN3HPJ.js → appDeployStatusCommands-6PGH7ZCG.js} +61 -53
  23. package/{appGetCommands-YWDEX6Z4.js → appGetCommands-3L7WWJA6.js} +61 -53
  24. package/{appListCommands-ZQVMLPAY.js → appListCommands-ENJCK4PO.js} +61 -53
  25. package/{authCommand-PWX2ZNUP.js → authCommand-6V47SYGK.js} +29 -28
  26. package/{authCommands-HV3EAU3V.js → authCommands-GAJ3NIXO.js} +14 -13
  27. package/{builtinSkillRegistry-2QETTQPM.js → builtinSkillRegistry-2ECA42FC.js} +11 -13
  28. package/{chromeCommands-REEAH4SX.js → chromeCommands-G5UDKVSV.js} +3 -3
  29. package/{chromeOpsCommands-DIVM2K3T.js → chromeOpsCommands-YKX2QX3A.js} +20 -10
  30. package/{chunk-CRHOO2ZR.js → chunk-27PCUMJI.js} +2 -2
  31. package/chunk-2CI3ZFWD.js +97 -0
  32. package/{chunk-NSAPDIN2.js → chunk-2GJKRKI6.js} +541 -31
  33. package/{chunk-SM3NSZJV.js → chunk-2UCBGYO4.js} +20 -1
  34. package/{chunk-PYRUW7XN.js → chunk-2VUZSVAS.js} +136 -54
  35. package/{chunk-YB3YZK56.js → chunk-2WZXXAQD.js} +1 -67
  36. package/chunk-2YGBI2XB.js +30 -0
  37. package/chunk-2ZKFCIJJ.js +13 -0
  38. package/{chunk-QG4AOSON.js → chunk-34J5K2YA.js} +13 -32
  39. package/{chunk-LOEO7LRC.js → chunk-3IK6ILVW.js} +4 -1
  40. package/{chunk-CTPXME7U.js → chunk-3LMUPOHG.js} +29 -6
  41. package/chunk-44X52WOJ.js +1621 -0
  42. package/{chunk-6VLJ6YA7.js → chunk-4DESLZTK.js} +9 -9
  43. package/{chunk-MYOH447Z.js → chunk-4JVNURX4.js} +1 -1
  44. package/chunk-5CHGAKRT.js +364 -0
  45. package/{chunk-YDH3FDFQ.js → chunk-5FUN7EG4.js} +1 -1
  46. package/{chunk-INUFILG6.js → chunk-5RKUPJYL.js} +1 -1
  47. package/{chunk-ZC3CMUKU.js → chunk-6OVNSQHN.js} +84 -2
  48. package/{chunk-MOIJOHA5.js → chunk-6WU5572L.js} +36 -25
  49. package/{chunk-IXNGOHV5.js → chunk-7EEZJ6BS.js} +11 -152
  50. package/{chunk-Y6ORVLSS.js → chunk-7ET2U67U.js} +1 -1
  51. package/{chunk-G7MLNNEX.js → chunk-7JLY4WYF.js} +5 -5
  52. package/{chunk-P5L7CXOC.js → chunk-7Z6EW7AH.js} +3 -2
  53. package/{chunk-NJLL224W.js → chunk-AD5EWDFD.js} +2 -2
  54. package/{chunk-J2NHJ7WX.js → chunk-AIHYNKGV.js} +4 -4
  55. package/{chunk-HPFCI4SK.js → chunk-AK5O76CC.js} +3 -3
  56. package/{chunk-Y63ZSOR6.js → chunk-AL3TYDIF.js} +1 -1
  57. package/{chunk-ALQ3657A.js → chunk-AMEOV5VZ.js} +32 -12
  58. package/chunk-AN74ON4G.js +675 -0
  59. package/{chunk-HRMJUN5J.js → chunk-AQZ6BMRK.js} +1 -1
  60. package/{chunk-XHQC4PXX.js → chunk-B4GOW4MT.js} +424 -194
  61. package/{chunk-4KB6WQUL.js → chunk-BGP2EDFG.js} +1 -1
  62. package/{chunk-NBTY7YJF.js → chunk-BR3GT6MR.js} +1 -0
  63. package/{chunk-7RFNTILS.js → chunk-BUDVRYES.js} +2 -2
  64. package/{chunk-SVYO6AO7.js → chunk-BV3FLP2L.js} +41 -1
  65. package/{chunk-RZOV7OMV.js → chunk-C4VAR65S.js} +83 -141
  66. package/{chunk-COFEN36Z.js → chunk-C4WTX5TU.js} +2 -2
  67. package/{chunk-ZL5RAEEB.js → chunk-CIRB724Q.js} +1 -1
  68. package/{chunk-F6UUQOG6.js → chunk-CKT6QUE2.js} +4 -4
  69. package/{chunk-X7SDOJUM.js → chunk-CMZ3Z5PT.js} +14 -14
  70. package/{secretCommands-LXDWOLZ6.js → chunk-D726I5AZ.js} +191 -16
  71. package/{chunk-TAKB25RM.js → chunk-DNKTQ3IN.js} +4 -4
  72. package/chunk-DVQH4BTR.js +1137 -0
  73. package/{chunk-WYDI6TGM.js → chunk-DWX2HEVC.js} +91 -132
  74. package/{chunk-5MQRBSMW.js → chunk-EIAI3PPH.js} +111 -113
  75. package/chunk-EUCFKKDM.js +247 -0
  76. package/chunk-EWQ3HGNZ.js +90 -0
  77. package/{chunk-RPQXPZZF.js → chunk-F3GRJO4Z.js} +908 -13
  78. package/{chunk-YTF4WH7J.js → chunk-FIYSMXHY.js} +1 -1
  79. package/{chunk-75XIDFBW.js → chunk-FJ23FZXF.js} +72 -28
  80. package/{chunk-INN4LTAJ.js → chunk-FJK526XH.js} +2 -2
  81. package/chunk-FS2XP5D7.js +142 -0
  82. package/{chunk-FUGMREBO.js → chunk-FYF2TONJ.js} +5 -5
  83. package/{chunk-PCLE46CE.js → chunk-GBWGPTA7.js} +2 -1
  84. package/{chunk-TX5EYMGT.js → chunk-GYVCJABP.js} +30 -254
  85. package/{chunk-3UKL3HPD.js → chunk-HOCHUZQ7.js} +8 -78
  86. package/{chunk-EHSZD5OI.js → chunk-HXER7YJF.js} +4 -4
  87. package/chunk-HYIETXA6.js +99 -0
  88. package/{chunk-H2TJUNCH.js → chunk-I4EADJ4P.js} +6 -6
  89. package/{chunk-TCZHTTUU.js → chunk-I7WBYGBP.js} +8 -8
  90. package/{chunk-6DWMYIUY.js → chunk-IILMY4W4.js} +14 -9
  91. package/chunk-JA3ICVJY.js +271 -0
  92. package/{chunk-ZRSNONOB.js → chunk-JWXITTQB.js} +8 -3
  93. package/{chunk-H4UOTUOX.js → chunk-KEN3N2TN.js} +148 -18
  94. package/{chunk-LEC5ALIN.js → chunk-KEPOVMF4.js} +1 -1
  95. package/{chunk-UHJGXRJ4.js → chunk-KQSYAIZR.js} +3 -3
  96. package/{chunk-4VJAC32I.js → chunk-L5I543VB.js} +3 -2
  97. package/chunk-LKA64WH4.js +227 -0
  98. package/{chunk-QHPRUL4O.js → chunk-LVL6GFCM.js} +4 -4
  99. package/{chunk-H5HF7TJA.js → chunk-MAIITKBT.js} +2 -2
  100. package/chunk-MBG66ZBH.js +226 -0
  101. package/{chunk-YUA6OAH5.js → chunk-MDLS23JK.js} +2 -2
  102. package/{chunk-VL5KOY2C.js → chunk-MK2Q7ZJD.js} +67 -5
  103. package/{chunk-MDB67IWP.js → chunk-MS4NZNKI.js} +10 -10
  104. package/{chunk-VO4WSAVP.js → chunk-MYHNBEXD.js} +3 -3
  105. package/{chunk-ZXOUUDCG.js → chunk-MZLE5HQ3.js} +3654 -231
  106. package/{chunk-AZMYUSVF.js → chunk-N5Z2V73W.js} +1 -1
  107. package/{chunk-V5Y3R6BT.js → chunk-NIZ2BXFD.js} +213 -210
  108. package/{chunk-KFLT5KAD.js → chunk-NWP2OYOX.js} +20 -20
  109. package/{chunk-G2BQWAVT.js → chunk-O6J3OTOP.js} +4 -4
  110. package/{chunk-VNYYOX3V.js → chunk-OB6DVWPF.js} +141 -48
  111. package/{chunk-YWSEPJ7C.js → chunk-OBWT45ZU.js} +3 -3
  112. package/{chunk-ZNWI6OVT.js → chunk-ODJ7BVSI.js} +80 -11
  113. package/{chunk-XJWWBO34.js → chunk-OJKUU3LP.js} +5 -7
  114. package/{chunk-HUBHAQK2.js → chunk-ON37YXGX.js} +29 -29
  115. package/{chunk-UYD5HQ6T.js → chunk-P5ZJRTCH.js} +5429 -1752
  116. package/{chunk-6XIE5ZGI.js → chunk-PDCV7P5W.js} +1 -1
  117. package/{chunk-WRYQ35LQ.js → chunk-PJCIP64Z.js} +859 -57
  118. package/{chunk-7QTZCMKL.js → chunk-PJVKMGPZ.js} +1089 -1639
  119. package/{chunk-A7TFUNZO.js → chunk-PPJYZRSQ.js} +6 -2
  120. package/chunk-QHEN7NZ7.js +46 -0
  121. package/{chunk-OQPKUBPB.js → chunk-QNWG52I4.js} +19 -7
  122. package/{chunk-YGILMZ7N.js → chunk-QVBXJNZ2.js} +1 -1
  123. package/{chunk-7BT37FK3.js → chunk-RDH5CQ4T.js} +648 -131
  124. package/{chunk-C6KNNXWU.js → chunk-RGQ4UUWZ.js} +25 -2
  125. package/{chunk-OWYYDMGJ.js → chunk-S2NTVGA2.js} +4 -2
  126. package/{chunk-KC4XDTT3.js → chunk-SOF4OWDM.js} +6 -4
  127. package/{chunk-RLBNLZVC.js → chunk-SQYIK6HO.js} +1 -1
  128. package/{chunk-YJAFKXMU.js → chunk-SVT62ULE.js} +50 -48
  129. package/{chunk-KIM6CLW5.js → chunk-SY3C4SQ7.js} +42 -15
  130. package/{chunk-JY5NGFFH.js → chunk-SYTHYBMI.js} +5 -5
  131. package/{chunk-WMTBPBMP.js → chunk-T6DXNI6Z.js} +52 -50
  132. package/chunk-TLE77UJ5.js +230 -0
  133. package/{chunk-4VNS5WPM.js → chunk-U67V476Y.js} +1 -8
  134. package/{chunk-F7CI2ZC5.js → chunk-UAIHKQIA.js} +2 -1
  135. package/{chunk-R5O4QAWG.js → chunk-UB3D4TRQ.js} +11 -77
  136. package/{chunk-WPORQFYN.js → chunk-UVLYNWIE.js} +2 -2
  137. package/{chunk-NOKUNJON.js → chunk-UYOICCYG.js} +29 -19
  138. package/{chunk-4I7ERB7F.js → chunk-VREDDN25.js} +1 -1
  139. package/{chunk-O2TZF4AI.js → chunk-WAE3GFCJ.js} +3 -3
  140. package/{chunk-H7PPIYWP.js → chunk-WI67URFP.js} +20 -20
  141. package/{chunk-7OCO4TDT.js → chunk-WJVYAO6P.js} +1 -1
  142. package/{chunk-T43B7LB2.js → chunk-WKGQSYTB.js} +1 -1
  143. package/{chunk-BBJ22CLB.js → chunk-WUUH4LWZ.js} +60 -30
  144. package/{chunk-4T2WNOY7.js → chunk-X7UF53VA.js} +33 -22
  145. package/{chunk-TY3TIUJK.js → chunk-XI2BWJM5.js} +65 -0
  146. package/{chunk-LLRPJECG.js → chunk-XWVCYUUU.js} +16 -159
  147. package/{chunk-J5JTMQIA.js → chunk-YFLVRVYK.js} +1 -1
  148. package/{chunk-EYLGAEB4.js → chunk-YGMBIXCF.js} +132 -0
  149. package/chunk-YL3EFYL3.js +199 -0
  150. package/{chunk-MMA3LZ3W.js → chunk-YNIYE47Z.js} +1 -1
  151. package/{chunk-W4S457LU.js → chunk-YU4ZPWVF.js} +41 -5
  152. package/{chunk-7Y4YTDQF.js → chunk-YWWDC3O7.js} +281 -159
  153. package/chunk-YZMNK53S.js +68 -0
  154. package/{chunk-RSHTSUEG.js → chunk-Z2PITYZN.js} +2060 -602
  155. package/{chunk-FY7F4Q6X.js → chunk-Z4PCXPUE.js} +2 -2
  156. package/{cliAgentConfigHelpers-WJBZQTLW.js → cliAgentConfigHelpers-TKYL43MT.js} +15 -16
  157. package/{cliAuthorityBrokerClient-PM3U6Q6J.js → cliAuthorityBrokerClient-XHH7MH2P.js} +1 -1
  158. package/{cliAuthorityStoreDriver-TKLXNNTG.js → cliAuthorityStoreDriver-6FE3BJNB.js} +1 -1
  159. package/{cliEnvHelpers-BVYTMUPJ.js → cliEnvHelpers-VPSJ4XWC.js} +3 -3
  160. package/{cliExecutor-BWBF2MTI.js → cliExecutor-4MAX3PZL.js} +2 -2
  161. package/cliLocalAgentRecordReader-MHHD4T7R.js +90 -0
  162. package/{commandRegistry-W63CYRZJ.js → commandRegistry-5DA5UP7S.js} +105 -97
  163. package/{contentThunks-U7PL5MQD.js → contentThunks-5GUQ7FWJ.js} +47 -43
  164. package/{cooldownCommands-TIGUHXTD.js → cooldownCommands-X7P5M2V5.js} +5 -4
  165. package/{createAgentAutomationAction-OLBQDD6R.js → createAgentAutomationAction-UCLTHQRI.js} +51 -49
  166. package/{createDialogAction-SVH6B3SB.js → createDialogAction-UPN774AF.js} +46 -48
  167. package/{createPageAction-F4DIWZ2Z.js → createPageAction-JRQ2TA4O.js} +50 -48
  168. package/{cursorProvider-YGGNMVWX.js → cursorProvider-2RACMEMF.js} +1 -1
  169. package/{db-HUCI5R4G.js → db-CS4ZJQKV.js} +1 -1
  170. package/{dbSlice-BVH2YZPQ.js → dbSlice-WNON7TOL.js} +17 -16
  171. package/{deleteFile-5YOEKV4U.js → deleteFile-Q3YDB4ML.js} +9 -9
  172. package/{desktopFolderProjects-SFY5EZS3.js → desktopFolderProjects-4POAMVJN.js} +2 -2
  173. package/{dialogCommands-KHIEPY3M.js → dialogCommands-VRI7VCXH.js} +64 -57
  174. package/dialogNotifyCommand-6TMCX4D2.js +36 -0
  175. package/{dialogSlice-ZCTDV2PZ.js → dialogSlice-LFNVUSAN.js} +42 -40
  176. package/{dialogUsageCommand-7KCPYGHG.js → dialogUsageCommand-HTVPR2CX.js} +11 -10
  177. package/{docCreateCommands-DPMZI7G5.js → docCreateCommands-AMPXMOX3.js} +61 -55
  178. package/{docDeleteCommands-IRQQLUBT.js → docDeleteCommands-I5WFAEHP.js} +63 -57
  179. package/{docReadCommands-LK37XH6L.js → docReadCommands-X53ELNIE.js} +61 -55
  180. package/{docStore-V2KECILA.js → docStore-2VAWVLWH.js} +21 -20
  181. package/{docUpdateCommands-O6T3HJHH.js → docUpdateCommands-6QPNDC7M.js} +64 -58
  182. package/{fetchMessages-NR4KNQLO.js → fetchMessages-TQEUZD7H.js} +8 -7
  183. package/{getPricing-2MNMXEVG.js → getPricing-MB2GBXOK.js} +6 -6
  184. package/{handleSendMessageAction-2PE25WM3.js → handleSendMessageAction-AAJOHXOB.js} +194 -302
  185. package/{hostCredentialCreate-S233UMAP.js → hostCredentialCreate-GLMJ22M6.js} +123 -114
  186. package/index.js +29 -29
  187. package/{keys-BEGDOTRL.js → keys-RWF7UCB4.js} +5 -4
  188. package/legacyMigration-TF4SYJCZ.js +19 -0
  189. package/{lib-5KKIBFIT.js → lib-OT5OTXRU.js} +7087 -6664
  190. package/{localDialogRead-7NNDVVF7.js → localDialogRead-SVTPA5GY.js} +3 -3
  191. package/{localFirstLog-DHNOY2NA.js → localFirstLog-OIETGK66.js} +1 -1
  192. package/localRecall-2J6QPOK2.js +15 -0
  193. package/{localRuntimeAdapter-KY6WXNBR.js → localRuntimeAdapter-BMP57P42.js} +119 -110
  194. package/{localRuntimeAuthority-OYH4AE4G.js → localRuntimeAuthority-IBJAT62G.js} +1 -1
  195. package/{localRuntimeDb-VBIMCWUC.js → localRuntimeDb-N7KHDXS2.js} +2 -2
  196. package/{machineCommands-Q6HA3IXF.js → machineCommands-3MLIAK5Q.js} +128 -119
  197. package/{machineInfo-UKPTZO5Y.js → machineInfo-LWHTEBHJ.js} +1 -1
  198. package/machineWsRunDispatch-FKIGROQF.js +191 -0
  199. package/{memberThunks-7EDJADWU.js → memberThunks-ZGLZ36PK.js} +29 -28
  200. package/{memoryCommands-ASCE5STX.js → memoryCommands-5WC3T66U.js} +4 -4
  201. package/models-ULVWLSQ6.js +9 -0
  202. package/{oauthTokenStore-OEERZFUC.js → oauthTokenStore-RUYNYALS.js} +1 -1
  203. package/{offlineMarxistsAgentCommand-2QTHJCHV.js → offlineMarxistsAgentCommand-4IC3Y4C6.js} +4 -4
  204. package/overlay-THLKYIWY.js +11 -0
  205. package/package.json +2 -2
  206. package/{pdf-U6KSUEZZ.js → pdf-KE3QI2V7.js} +1 -1
  207. package/{processSpawn-ZU5QFM43.js → processSpawn-6GEO77KV.js} +1 -1
  208. package/{profileConfig-KN3N2BLF.js → profileConfig-KOWK4HOG.js} +1 -1
  209. package/{projectArchive-DRTDIMEV.js → projectArchive-HK63GMF4.js} +52 -50
  210. package/{providerPresetApply-YXGV6NXB.js → providerPresetApply-OIFQ73LH.js} +19 -12
  211. package/{providerRegistry-S6UL6UNA.js → providerRegistry-KZ3SDZ3D.js} +10 -10
  212. package/{read-4V2RMG7N.js → read-MRQHJMJ2.js} +10 -10
  213. package/{readDocTool-BH6ATGQO.js → readDocTool-4BGTXTXA.js} +2 -2
  214. package/{readlineWorkspace-2W4WRCOU.js → readlineWorkspace-AKAHSCNY.js} +7982 -6274
  215. package/{removeDialogAgentAction-LYAZGNKW.js → removeDialogAgentAction-B6H7DXFM.js} +23 -22
  216. package/{runAgentClientLoop-J2VQBS2Z.js → runAgentClientLoop-UVAWGEON.js} +81 -79
  217. package/{runtimeDoctorCommands-QAI3MBKQ.js → runtimeDoctorCommands-FW6XKDUG.js} +12 -12
  218. package/{runtimeModeArgs-2Y7BALTO.js → runtimeModeArgs-X7DL7PUN.js} +1 -1
  219. package/secretCommands-LJXOOYA7.js +24 -0
  220. package/{setDialogExtraReferencesAction-OCRPGPYH.js → setDialogExtraReferencesAction-EVCY3TRW.js} +22 -21
  221. package/{setPrimaryDialogAgentAction-HFJDQIBU.js → setPrimaryDialogAgentAction-KPFVPHCJ.js} +23 -22
  222. package/{settingThunks-RAMHMTGM.js → settingThunks-ENOAK2WV.js} +97 -88
  223. package/{skillDiscovery-XKHROSH2.js → skillDiscovery-B5V23AXP.js} +4 -4
  224. package/{skillSummaryMarker-42HKSXYY.js → skillSummaryMarker-62UW7HI7.js} +1 -1
  225. package/{slateToRenderMarkdown-Y5IYN73U.js → slateToRenderMarkdown-R3X74MCX.js} +1 -1
  226. package/{slateUtils-NGV2NMKM.js → slateUtils-ESQAJ6RN.js} +1 -1
  227. package/{spaceCommands-KVJZVKVO.js → spaceCommands-DTTNAS2L.js} +61 -53
  228. package/store-JRVN62NM.js +46 -0
  229. package/{streamAgentChatTurn-GHBMJJ6S.js → streamAgentChatTurn-R5UY25VB.js} +875 -618
  230. package/{switchDialogAgentAction-EBRMW3RA.js → switchDialogAgentAction-SZ44XDRY.js} +21 -20
  231. package/{tableCommands-MP6VFSVT.js → tableCommands-HITDSLHS.js} +10 -10
  232. package/tombstones-FQQMEDOW.js +32 -0
  233. package/{toolApiClient-HGNO53TC.js → toolApiClient-OGQEBQVX.js} +4 -4
  234. package/{tools-EWKCPKMS.js → tools-HWFG6GMJ.js} +75 -74
  235. package/tuiSummaryLlmCaller-HQQZAMYF.js +44 -0
  236. package/{updateCommands-ZQYU6SCI.js → updateCommands-RJVCRSBP.js} +10 -8
  237. package/{updateDialogTitleAction-5GGMBTDF.js → updateDialogTitleAction-KNPOAMVS.js} +48 -46
  238. package/{usageCommand-F4IPVMIZ.js → usageCommand-FWZCB7AM.js} +11 -10
  239. package/{usageRebuildCommand-HAW2AD5N.js → usageRebuildCommand-SP2BLNJU.js} +12 -11
  240. package/userDataMerge-HT2ZVHBJ.js +13 -0
  241. package/{windowsSelfUpdate-257DV2T6.js → windowsSelfUpdate-KERHIAB4.js} +3 -3
  242. package/{workloadLifecycle-4C42SVBD.js → workloadLifecycle-DYNEYHV5.js} +6 -6
  243. package/agentRecordCommands-ZQ7SVYGG.js +0 -167
  244. package/agentRunCommand-WS7IGO2W.js +0 -196
  245. package/chunk-3CGG2PAL.js +0 -594
  246. package/chunk-5XBUWM6I.js +0 -89
  247. package/chunk-CJEIOP3E.js +0 -0
  248. package/chunk-EHGEOAHI.js +0 -636
  249. package/chunk-FW6YHHLI.js +0 -842
  250. package/chunk-GPVRUGGY.js +0 -115
  251. package/chunk-HSVBJRF4.js +0 -339
  252. package/chunk-WJZOQR2J.js +0 -151
  253. package/chunk-ZCWRMUWT.js +0 -89
  254. package/dist-M676ULYG.js +0 -7314
  255. package/machineWsRunDispatch-WWJQ6WR3.js +0 -182
  256. package/models-PJBE6JDV.js +0 -9
  257. package/tuiSummaryLlmCaller-ALQYUUWB.js +0 -189
  258. package/{chunk-WACI5I6V.js → chunk-2THCNKE4.js} +3 -3
  259. package/{chunk-2QHFH3DR.js → chunk-47ITIXO7.js} +6 -6
  260. package/{chunk-GOO6G4PY.js → chunk-CKG3PRZ7.js} +0 -0
  261. package/{chunk-OQHIVPG4.js → chunk-SNBZZPYH.js} +3 -3
  262. package/{chunk-AETZ7AD6.js → chunk-W6RFEDN4.js} +3 -3
@@ -4,9 +4,6 @@ import {
4
4
  import {
5
5
  isRecord
6
6
  } from "./chunk-KUG52IAP.js";
7
- import {
8
- resolveNoloStateDir
9
- } from "./chunk-6UBGXX2W.js";
10
7
  import {
11
8
  asOptionalPositiveFiniteNumber
12
9
  } from "./chunk-U6VC4MU4.js";
@@ -16,6 +13,9 @@ import {
16
13
  import {
17
14
  asOptionalTrimmedString
18
15
  } from "./chunk-G3SUCT4W.js";
16
+ import {
17
+ resolveNoloStateDir
18
+ } from "./chunk-6UBGXX2W.js";
19
19
 
20
20
  // packages/agent-runtime/processTask.ts
21
21
  var PROCESS_TASK_TERMINAL_STATUSES = [
@@ -435,8 +435,9 @@ function getProcessRegistry() {
435
435
  }
436
436
 
437
437
  // packages/agent-runtime/workspaceShell.ts
438
+ import { AsyncLocalStorage } from "node:async_hooks";
438
439
  import { createWriteStream, mkdirSync as mkdirSync2, rmSync } from "node:fs";
439
- import { dirname, join as join3, resolve } from "node:path";
440
+ import { dirname, join as join3, resolve as resolve2 } from "node:path";
440
441
  import { spawn as spawnChildProcess } from "node:child_process";
441
442
  import { randomUUID as randomUUID2 } from "node:crypto";
442
443
  import { tmpdir } from "node:os";
@@ -594,9 +595,9 @@ function spawnToWebStreams(options) {
594
595
  env: options.env,
595
596
  stdio: ["ignore", "pipe", "pipe"]
596
597
  });
597
- const exited = new Promise((resolve2) => {
598
- child.on("exit", (code) => resolve2(code ?? 1));
599
- child.on("error", () => resolve2(127));
598
+ const exited = new Promise((resolve3) => {
599
+ child.on("exit", (code) => resolve3(code ?? 1));
600
+ child.on("error", () => resolve3(127));
600
601
  });
601
602
  const toWeb = (stream) => {
602
603
  if (!stream) return null;
@@ -691,6 +692,11 @@ function findWindowsPowerShellAlias(options = {}) {
691
692
  return null;
692
693
  }
693
694
 
695
+ // packages/agent-runtime/processTaskResult.ts
696
+ import { openSync, readSync, closeSync } from "node:fs";
697
+ import { isAbsolute as isAbsolute2, resolve } from "node:path";
698
+ import { StringDecoder } from "node:string_decoder";
699
+
694
700
  // packages/agent-runtime/toolSpillStore.ts
695
701
  import { createHash, randomUUID } from "node:crypto";
696
702
  import { constants, copyFileSync, createReadStream, existsSync as existsSync2, mkdirSync, readdirSync as readdirSync2, renameSync, statSync as statSync3, unlinkSync, utimesSync, writeFileSync } from "node:fs";
@@ -722,11 +728,11 @@ function countLines(text) {
722
728
  var SPILL_PUBLICATION_GRACE_MS = 6e4;
723
729
  async function hashFileStreaming(path) {
724
730
  const hash = createHash("sha256");
725
- await new Promise((resolve2, reject) => {
731
+ await new Promise((resolve3, reject) => {
726
732
  const stream = createReadStream(path);
727
733
  stream.on("data", (chunk) => hash.update(chunk));
728
734
  stream.on("error", reject);
729
- stream.on("end", () => resolve2());
735
+ stream.on("end", () => resolve3());
730
736
  });
731
737
  return hash.digest("hex");
732
738
  }
@@ -952,6 +958,41 @@ function formatToolOverflowMarker(args) {
952
958
  `;
953
959
  }
954
960
 
961
+ // packages/agent-runtime/toolOutputSpillProjection.ts
962
+ var TOOL_OUTPUT_SPILL_BYTES = 30 * 1024;
963
+ var TOOL_OUTPUT_SPILL_LINES = 800;
964
+ var HEAD_LINES = 30;
965
+ var TAIL_LINES = 50;
966
+ var PREVIEW_CHARS = 12 * 1024;
967
+ var MARKER = /\[Omitted \d+ lines \([\d.]+ KB\)\. Full output saved to [^\n]+\]/;
968
+ function isSpilledToolOutput(text) {
969
+ return MARKER.test(text) && text.length <= PREVIEW_CHARS * 2 + 2048;
970
+ }
971
+ function formatSpilledToolOutput(args) {
972
+ const headLines = args.head.split("\n").slice(0, HEAD_LINES);
973
+ const tailLines = args.tail.split("\n").slice(-TAIL_LINES);
974
+ const head = headLines.join("\n").slice(0, PREVIEW_CHARS);
975
+ const tail = tailLines.join("\n").slice(-PREVIEW_CHARS);
976
+ const omitted = Math.max(0, args.totalLines - headLines.length - tailLines.length);
977
+ return `${head}
978
+
979
+ [Omitted ${omitted} lines (${(args.byteLength / 1024).toFixed(1)} KB). Full output saved to ${args.displayPath}]
980
+
981
+ ${tail}`;
982
+ }
983
+ function spillLargeToolOutput(content, toolName, workspaceRoot) {
984
+ if (isSpilledToolOutput(content)) return content;
985
+ const byteLength = Buffer.byteLength(content);
986
+ const totalLines = countLines(content);
987
+ if (byteLength <= TOOL_OUTPUT_SPILL_BYTES && totalLines <= TOOL_OUTPUT_SPILL_LINES) return content;
988
+ try {
989
+ const spill = spillToolOutput({ content, toolName, workspaceRoot });
990
+ return formatSpilledToolOutput({ head: content, tail: content, totalLines, byteLength, displayPath: spill.displayPath });
991
+ } catch {
992
+ return content;
993
+ }
994
+ }
995
+
955
996
  // packages/agent-runtime/processTaskResult.ts
956
997
  var PROCESS_RESULT_CAPSULE_TAIL_CHARS = 4e3;
957
998
  var PROCESS_RESULT_CAPSULE_SPILL_THRESHOLD_CHARS = 2e4;
@@ -959,6 +1000,27 @@ function tailText(value, maxChars) {
959
1000
  if (value.length <= maxChars) return { text: value, truncated: false };
960
1001
  return { text: value.slice(-maxChars), truncated: true };
961
1002
  }
1003
+ function reuseStreamSpill(text, workspaceRoot) {
1004
+ const displayPath = /Full output saved to ([^\n]+?)\]/.exec(text)?.[1];
1005
+ if (!displayPath) return void 0;
1006
+ const path = isAbsolute2(displayPath) ? displayPath : workspaceRoot ? resolve(workspaceRoot, displayPath) : void 0;
1007
+ if (!path) return void 0;
1008
+ const fd = openSync(path, "r");
1009
+ try {
1010
+ const buffer = Buffer.alloc(64 * 1024);
1011
+ const decoder = new StringDecoder("utf8");
1012
+ let totalChars = 0, newlines = 0;
1013
+ const count = (chunk) => {
1014
+ totalChars += chunk.length;
1015
+ for (let i = chunk.indexOf("\n"); i >= 0; i = chunk.indexOf("\n", i + 1)) newlines++;
1016
+ };
1017
+ for (let bytes; (bytes = readSync(fd, buffer, 0, buffer.length, null)) > 0; ) count(decoder.write(buffer.subarray(0, bytes)));
1018
+ count(decoder.end());
1019
+ return { displayPath, totalChars, totalLines: totalChars ? newlines + 1 : 0 };
1020
+ } finally {
1021
+ closeSync(fd);
1022
+ }
1023
+ }
962
1024
  function formatCapsuleStream(name, value) {
963
1025
  return value.trim() ? `${name}:
964
1026
  ${value.replace(/\n+$/, "")}` : "";
@@ -980,10 +1042,33 @@ function buildProcessTaskResultCapsule(args) {
980
1042
  const stderrTail = tailText(stderrTailSource, tailChars);
981
1043
  const inlineSize = stdout.length + stderr.length;
982
1044
  const inlineTruncated = stdoutTail.truncated || stderrTail.truncated;
983
- const truncated = inlineTruncated || ringEvicted || Boolean(captureError);
1045
+ const truncated = inlineTruncated || ringEvicted || Boolean(captureError) || isSpilledToolOutput(stdout) || isSpilledToolOutput(stderr);
984
1046
  const shouldSpill = truncated || inlineSize > spillThresholdChars;
985
1047
  let spill;
986
- if (shouldSpill) {
1048
+ let streamSpills;
1049
+ if (isSpilledToolOutput(stdout) || isSpilledToolOutput(stderr)) {
1050
+ streamSpills = {};
1051
+ for (const [name, text] of [["stdout", stdout], ["stderr", stderr]]) {
1052
+ if (!text) continue;
1053
+ try {
1054
+ if (isSpilledToolOutput(text)) {
1055
+ streamSpills[name] = reuseStreamSpill(text, args.workspaceRoot);
1056
+ } else {
1057
+ const result = spillToolOutput({ content: text, toolName: "execShell", workspaceRoot: args.workspaceRoot });
1058
+ streamSpills[name] = { displayPath: result.displayPath, totalChars: result.totalChars, totalLines: result.totalLines };
1059
+ }
1060
+ } catch {
1061
+ }
1062
+ }
1063
+ const primary = streamSpills.stdout ?? streamSpills.stderr;
1064
+ if (primary) {
1065
+ spill = {
1066
+ displayPath: primary.displayPath,
1067
+ totalChars: (streamSpills.stdout?.totalChars ?? 0) + (streamSpills.stderr?.totalChars ?? 0),
1068
+ totalLines: (streamSpills.stdout?.totalLines ?? 0) + (streamSpills.stderr?.totalLines ?? 0)
1069
+ };
1070
+ }
1071
+ } else if (shouldSpill) {
987
1072
  try {
988
1073
  const result = spillToolOutput({
989
1074
  content: [
@@ -1011,11 +1096,16 @@ function buildProcessTaskResultCapsule(args) {
1011
1096
  ...durationMs !== void 0 ? { durationMs } : {},
1012
1097
  ...captureError ? { captureError } : {},
1013
1098
  truncated,
1014
- ...spill ? { spill } : {}
1099
+ ...spill ? { spill } : {},
1100
+ ...streamSpills ? { streamSpills } : {}
1015
1101
  };
1016
1102
  }
1017
1103
 
1018
1104
  // packages/agent-runtime/workspaceShell.ts
1105
+ var shellChildEnvironment = new AsyncLocalStorage();
1106
+ function withShellChildEnvironment(env, run) {
1107
+ return shellChildEnvironment.run(env, run);
1108
+ }
1019
1109
  var EXEC_SHELL_TIMEOUT_ENV = "NOLO_EXEC_SHELL_TIMEOUT_MS";
1020
1110
  var EXEC_SHELL_DETACH_ENV = "NOLO_EXEC_SHELL_DETACH_MS";
1021
1111
  var DEFAULT_EXEC_SHELL_DETACH_MS = 12e4;
@@ -1310,19 +1400,33 @@ function resolveDetachMs(override) {
1310
1400
  return parsed === void 0 ? DEFAULT_EXEC_SHELL_DETACH_MS : parsed;
1311
1401
  }
1312
1402
  function truncateToolOutput(value, limit = 2e4, options) {
1403
+ if (isSpilledToolOutput(value)) return value;
1313
1404
  if (value.length <= limit) return value;
1314
1405
  let spillNote = "";
1406
+ let spillPathOnly = "";
1315
1407
  try {
1316
1408
  const spill = spillToolOutput({
1317
1409
  content: value,
1318
1410
  toolName: options?.toolName ?? "execShell",
1319
1411
  workspaceRoot: options?.workspaceRoot
1320
1412
  });
1321
- spillNote = `; spillFile=${spill.displayPath}; totalLines=${spill.totalLines}`;
1413
+ spillNote = `; spillFile=${spill.displayPath}; totalLines=${spill.totalLines}; hint=read a range, not the whole spill (readFile lines=A-B or sed -n 'A,Bp'); a full read re-injects ${spill.totalChars} chars`;
1414
+ spillPathOnly = `; spillFile=${spill.displayPath}`;
1322
1415
  } catch {
1323
1416
  }
1324
1417
  const approxMarkerLen = 40 + spillNote.length;
1325
- if (limit <= approxMarkerLen) return value.slice(0, limit);
1418
+ if (limit <= approxMarkerLen) {
1419
+ const notice = `[... truncated ${value.length} chars]`;
1420
+ const withFullNote = `[... truncated ${value.length} chars${spillNote} ...]`;
1421
+ if (withFullNote.length <= limit) return withFullNote;
1422
+ const withPath = `[... truncated ${value.length} chars${spillPathOnly} ...]`;
1423
+ if (withPath.length <= limit) return withPath;
1424
+ if (notice.length <= limit) {
1425
+ const pathOmitted = " [... path omitted]";
1426
+ return notice.length + pathOmitted.length <= limit ? notice + pathOmitted : notice;
1427
+ }
1428
+ return limit <= 0 ? "" : "\u2026";
1429
+ }
1326
1430
  const remaining = limit - approxMarkerLen;
1327
1431
  const headSize = Math.floor(remaining * 0.3);
1328
1432
  const tailSize = remaining - headSize;
@@ -1352,6 +1456,9 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
1352
1456
  return new Promise((resolveStream, rejectStream) => {
1353
1457
  const chunks = [];
1354
1458
  let totalBytes = 0;
1459
+ let observedBytes = 0;
1460
+ let observedLines = 1;
1461
+ let tail = Buffer.alloc(0);
1355
1462
  let settled = false;
1356
1463
  let captureResolved = false;
1357
1464
  const resolveCapture = (text) => {
@@ -1481,6 +1588,16 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
1481
1588
  await settleSpillRetention();
1482
1589
  if (captureResolved) return;
1483
1590
  let text = baseText;
1591
+ if (truncatedNow && spillRetainedPath && sourceEnded && options.maxLines !== void 0) {
1592
+ resolveCapture(formatSpilledToolOutput({
1593
+ head: baseText,
1594
+ tail: tail.toString("utf8"),
1595
+ totalLines: observedLines,
1596
+ byteLength: observedBytes,
1597
+ displayPath: spillRetainedPath
1598
+ }));
1599
+ return;
1600
+ }
1484
1601
  if (truncatedNow) {
1485
1602
  const notes = [`output exceeded ${formatLimit} buffer limit`];
1486
1603
  if (spillRetainedPath && sourceEnded) {
@@ -1548,11 +1665,16 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
1548
1665
  stream.on("data", (chunk) => {
1549
1666
  if (settled) return;
1550
1667
  const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
1668
+ observedBytes += buf.length;
1669
+ for (const byte of buf) if (byte === 10) observedLines++;
1670
+ if (options.maxLines !== void 0) {
1671
+ tail = Buffer.concat([tail, buf.subarray(Math.max(0, buf.length - maxBytes))]).subarray(-maxBytes);
1672
+ }
1551
1673
  if (truncated) {
1552
1674
  writeToSink(buf);
1553
1675
  return;
1554
1676
  }
1555
- if (totalBytes + buf.length >= maxBytes) {
1677
+ if (totalBytes + buf.length >= maxBytes || observedLines > (options.maxLines ?? Infinity)) {
1556
1678
  const remaining = Math.max(0, maxBytes - totalBytes);
1557
1679
  const headChunks = chunks.slice();
1558
1680
  if (remaining > 0) {
@@ -1644,7 +1766,8 @@ async function runWorkspaceCommand(args) {
1644
1766
  ];
1645
1767
  const spawnedAt = Date.now();
1646
1768
  const proc = spawnChildProcess(command[0] ?? "", command.slice(1), {
1647
- cwd: resolve(args.workspaceRoot),
1769
+ cwd: resolve2(args.workspaceRoot),
1770
+ env: { ...process.env, ...shellChildEnvironment.getStore() },
1648
1771
  stdio: [
1649
1772
  args.stdin === void 0 ? "ignore" : "pipe",
1650
1773
  "pipe",
@@ -1704,6 +1827,8 @@ async function runWorkspaceCommand(args) {
1704
1827
  let stderrIncomplete;
1705
1828
  const stdoutCapture = stdoutPromiseResult(
1706
1829
  readNodeStream(proc.stdout, {
1830
+ maxBytes: TOOL_OUTPUT_SPILL_BYTES,
1831
+ maxLines: TOOL_OUTPUT_SPILL_LINES,
1707
1832
  spillPath: join3(tmpdir(), `nolo-stream-${randomUUID2()}.log`),
1708
1833
  spillRetention: "promote",
1709
1834
  spillWorkspaceRoot: args.workspaceRoot
@@ -1716,6 +1841,8 @@ async function runWorkspaceCommand(args) {
1716
1841
  ).then((result) => ({ ...result, error: result.error || stdoutIncomplete }));
1717
1842
  const stderrCapture = stdoutPromiseResult(
1718
1843
  readNodeStream(proc.stderr, {
1844
+ maxBytes: TOOL_OUTPUT_SPILL_BYTES,
1845
+ maxLines: TOOL_OUTPUT_SPILL_LINES,
1719
1846
  spillPath: join3(tmpdir(), `nolo-stream-${randomUUID2()}-stderr.log`),
1720
1847
  spillRetention: "promote",
1721
1848
  spillWorkspaceRoot: args.workspaceRoot
@@ -1955,8 +2082,6 @@ ${stderr.trim()}` : "",
1955
2082
  }
1956
2083
 
1957
2084
  export {
1958
- spillToolOutput,
1959
- formatToolOverflowMarker,
1960
2085
  resolveExecutableOnPath,
1961
2086
  createGlob,
1962
2087
  spawnToWebStreams,
@@ -1964,7 +2089,12 @@ export {
1964
2089
  reportedTaskStatus,
1965
2090
  toProcessTaskView,
1966
2091
  getProcessRegistry,
2092
+ spillToolOutput,
2093
+ formatToolOverflowMarker,
2094
+ isSpilledToolOutput,
2095
+ spillLargeToolOutput,
1967
2096
  buildProcessTaskResultCapsule,
2097
+ withShellChildEnvironment,
1968
2098
  extractActivity,
1969
2099
  findPowerShellExecutable,
1970
2100
  buildWorkspaceShellPlan,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  dialogMessageKey
3
- } from "./chunk-XJWWBO34.js";
3
+ } from "./chunk-OJKUU3LP.js";
4
4
  import {
5
5
  asOptionalFiniteNumber
6
6
  } from "./chunk-WWC7I6TA.js";
@@ -5,15 +5,15 @@ import {
5
5
  ANTIGRAVITY_CLOUD_CODE_BASE_URL,
6
6
  isAntigravityCloudCodeBaseUrl,
7
7
  isAntigravityOAuthAgent
8
- } from "./chunk-KIM6CLW5.js";
8
+ } from "./chunk-SY3C4SQ7.js";
9
9
  import {
10
10
  isOpenAiResponsesModel,
11
11
  resolvePlatformChatCompletionsEndpoint,
12
12
  resolvePlatformResponsesEndpoint
13
- } from "./chunk-YUA6OAH5.js";
13
+ } from "./chunk-MDLS23JK.js";
14
14
  import {
15
15
  findModelConfig
16
- } from "./chunk-SM3NSZJV.js";
16
+ } from "./chunk-2UCBGYO4.js";
17
17
  import {
18
18
  asTrimmedLowercaseString
19
19
  } from "./chunk-QSJ3HFEF.js";
@@ -43,7 +43,7 @@ var normalizeLocale = (value) => {
43
43
  return language;
44
44
  };
45
45
  var resolveUserResponseLanguage = (input = {}) => {
46
- const raw = asLocale(input.responseLanguage) || asLocale(input.language) || asLocale(input.fallbackLanguage) || "en-US";
46
+ const raw = asLocale(input.language) || "en-US";
47
47
  const locale = normalizeLocale(raw);
48
48
  return {
49
49
  locale,
@@ -80,7 +80,8 @@ var MEMORY_USE_GUIDANCE = `--- \u8BB0\u5FC6\u4F7F\u7528\u65B9\u5F0F ---
80
80
  - \u8BB0\u5FC6\u542B\u7528\u6237\u8EAB\u4EFD/\u79F0\u547C/\u5173\u7CFB/\u957F\u671F\u504F\u597D/\u9879\u76EE\u80CC\u666F\u65F6\uFF0C\u76F8\u5173\u5904\u81EA\u7136\u4F53\u73B0\uFF08\u5F00\u573A\u79F0\u547C\u3001\u4E0A\u4E0B\u6587\u786E\u8BA4\u3001\u56DE\u7B54\u7ED3\u6784\u3001\u53D6\u820D\u6807\u51C6\uFF09\uFF0C\u4E0D\u8981\u6BCF\u53E5\u673A\u68B0\u79F0\u547C\u7528\u6237\u3002
81
81
  - \u201C\u4E0A\u6B21/\u7EE7\u7EED/\u8FD9\u4E2A\u9879\u76EE\u201D\u7B49\u6307\u4EE3\u4F18\u5148\u6309\u5F53\u524D dialog/space/project/agent/sourceDialog \u7B49 KV \u8DEF\u5F84\u548C\u65F6\u95F4\u7EBF\u5B9A\u4F4D\uFF0C\u4E0D\u8981\u53EA\u6309\u8BED\u4E49\u76F8\u4F3C\u5EA6\u635E\u4E00\u6761\u3002
82
82
  - \u63A8\u65AD\u578B\u8BB0\u5FC6\uFF08inferred\uFF09\u53EA\u7528\u4E8E\u628A\u63E1\u8BED\u6C14\u3001\u72B6\u6001\u548C\u672A\u5B8C\u6210\u4E8B\u9879\uFF0C\u4E0D\u8981\u8BF4\u6210\u201C\u4F60\u660E\u786E\u544A\u8BC9\u8FC7\u6211\u201D\u6216\u5F53\u6210\u7528\u6237\u5DF2\u6388\u6743\u4FDD\u5B58\u7684\u4E8B\u5B9E\uFF1B\u51B2\u7A81\u6216\u573A\u666F\u4E0D\u660E\u65F6\u8BF4\u660E\u4F9D\u636E\u6216\u7B80\u77ED\u786E\u8BA4\uFF0C\u4E0D\u8981\u786C\u5957\u3002
83
- - \u7F6E\u4FE1\u5EA6\uFF08verified/stated/inferred\uFF09\u3001\u53EC\u56DE\u4E0A\u4E0B\u6587\u8981\u6C42\u4E0E\u964D\u6743/\u5220\u9664\u8FB9\u754C\u4EE5\u8BB0\u5FC6\u5DE5\u5177\uFF08rememberMemory / queryMemory / deleteMemory\uFF09schema \u4E3A\u51C6\u3002`;
83
+ - \u7F6E\u4FE1\u5EA6\uFF08verified/stated/inferred\uFF09\u3001\u53EC\u56DE\u4E0A\u4E0B\u6587\u8981\u6C42\u4E0E\u964D\u6743/\u5220\u9664\u8FB9\u754C\u4EE5\u8BB0\u5FC6\u5DE5\u5177\uFF08rememberMemory / queryMemory / deleteMemory\uFF09schema \u4E3A\u51C6\u3002
84
+ - \u7528\u6237\u660E\u786E\u8868\u8FBE**\u8DE8\u4F1A\u8BDD**\u7684\u6253\u6270\u5F3A\u5EA6\u504F\u597D\u65F6\uFF08\u5982\u300C\u4EE5\u540E\u90FD\u53EA\u62A5\u7ED3\u679C\u300D\u300C\u6BCF\u6B21\u90FD\u7ED9\u6211\u770B\u8BE6\u7EC6\u8FC7\u7A0B\u300D\uFF0C\u800C\u975E\u4E00\u6B21\u4EFB\u52A1\u91CC\u7684\u300C\u8FD9\u6B21\u522B\u70E6\u6211\u300D\uFF09\uFF0C\u7528 rememberMemory \u8BB0\u4E3A\u7528\u6237\u504F\u597D\uFF1B\u4E4B\u540E\u6309\u5B83\u8C03\u6574 ignore / FYI / important \u7684\u8BE6\u7565\u3002\u8BB0\u5FC6\u504F\u597D\u7EDD\u4E0D\u80FD\u53D6\u6D88 decision / blocked / failed \u4E09\u7C7B\u5FC5\u987B\u62A5\u7684\u5185\u5BB9\u3002`;
84
85
 
85
86
  export {
86
87
  buildUserResponseLanguageContext,
@@ -0,0 +1,227 @@
1
+ import {
2
+ canonicalizeToolName
3
+ } from "./chunk-6OVNSQHN.js";
4
+
5
+ // packages/ai/tools/toolExecutionSemantics.ts
6
+ var UNKNOWN_TOOL_EXECUTION_CONTRACT = {
7
+ replay: "unknown",
8
+ sideEffects: "unknown",
9
+ locality: "unknown",
10
+ interaction: "unknown",
11
+ concurrency: "exclusive",
12
+ durableWebForeground: false
13
+ };
14
+ var serverPureRead = (durableWebForeground) => ({
15
+ replay: "pure",
16
+ sideEffects: "none",
17
+ locality: "server",
18
+ interaction: "none",
19
+ concurrency: "safe",
20
+ durableWebForeground
21
+ });
22
+ var serverExternalRead = (durableWebForeground) => ({
23
+ // Repeating the request should not mutate the target resource, but may spend
24
+ // provider quota/money and may observe newer remote state; it is not pure.
25
+ replay: "idempotent",
26
+ sideEffects: "observable",
27
+ locality: "server",
28
+ interaction: "none",
29
+ concurrency: "safe",
30
+ durableWebForeground
31
+ });
32
+ var serverConfirmedHandoffStep = () => ({
33
+ replay: "unsafe",
34
+ sideEffects: "observable",
35
+ locality: "server",
36
+ interaction: "handoff",
37
+ concurrency: "exclusive",
38
+ durableWebForeground: false
39
+ });
40
+ var TOOL_EXECUTION_CONTRACT = Object.freeze({
41
+ // Proven durable network reads. They execute on the server but touch external
42
+ // systems, so replay/cost semantics are intentionally not called "pure".
43
+ exa_search: serverExternalRead("read-only"),
44
+ fetchWebpage: serverExternalRead("read-only"),
45
+ // Proven durable server-hosted workspace reads/queries.
46
+ searchDialogMessages: serverPureRead("read-only"),
47
+ listDialogs: serverPureRead("read-only"),
48
+ readDialog: serverPureRead("read-only"),
49
+ queryDialogsBySubjectRef: serverPureRead("read-only"),
50
+ listAgents: serverPureRead("read-only"),
51
+ readAgent: serverPureRead("read-only"),
52
+ listSpaces: serverPureRead("read-only"),
53
+ readSpace: serverPureRead("read-only"),
54
+ readDoc: serverPureRead("read-only"),
55
+ readSkillDoc: serverPureRead("read-only"),
56
+ listTables: serverPureRead("read-only"),
57
+ queryTableRows: serverPureRead("read-only"),
58
+ list_cloud_resources: serverPureRead("read-only"),
59
+ cloud_probe: serverPureRead("read-only"),
60
+ // Audited execution against an owned cloud resource. Same class as execShell
61
+ // (arbitrary command, not replayable), except the executor itself runs on the
62
+ // server through the authorization/capability/audit gate. Never read-only.
63
+ cloud_exec: {
64
+ replay: "unsafe",
65
+ sideEffects: "mutation",
66
+ locality: "server",
67
+ interaction: "none",
68
+ concurrency: "exclusive",
69
+ durableWebForeground: false
70
+ },
71
+ // Read-only presentation payload. Actions remain inert; this adds no submit or
72
+ // open-app authority to server-owned projection.
73
+ show_interaction: {
74
+ replay: "pure",
75
+ sideEffects: "none",
76
+ locality: "server",
77
+ interaction: "none",
78
+ concurrency: "safe",
79
+ durableWebForeground: "read-only"
80
+ },
81
+ // Durable interactive boundary: the current execution ends and a later user
82
+ // choice starts a new execution. It is intentionally not modeled as a read.
83
+ ask_user: {
84
+ replay: "unsafe",
85
+ sideEffects: "observable",
86
+ locality: "server",
87
+ interaction: "blocking",
88
+ concurrency: "exclusive",
89
+ durableWebForeground: "interactive"
90
+ },
91
+ // Confirmed human hand-off boundary for the media step family. These tools
92
+ // do not start work needing authorization: they return
93
+ // `{ status: "requires_confirmation", ... }` and the run must stop and wait
94
+ // for the user. Registered explicitly (rather than inferred from any status)
95
+ // so a random tool echoing the same status never pauses the run, and kept out
96
+ // of the durable Web foreground plane on purpose (media ServerTool admission
97
+ // is owned elsewhere).
98
+ transcribe: serverConfirmedHandoffStep(),
99
+ translate: serverConfirmedHandoffStep(),
100
+ exportDocument: serverConfirmedHandoffStep(),
101
+ readArtifact: serverConfirmedHandoffStep(),
102
+ // Representative explicitly non-durable execution classes. These entries
103
+ // make the reason machine-readable; unlisted tools remain UNKNOWN.
104
+ execShell: {
105
+ replay: "unsafe",
106
+ sideEffects: "mutation",
107
+ locality: "workspace",
108
+ interaction: "none",
109
+ concurrency: "exclusive",
110
+ durableWebForeground: false
111
+ },
112
+ readFile: {
113
+ replay: "idempotent",
114
+ sideEffects: "none",
115
+ locality: "device",
116
+ interaction: "none",
117
+ concurrency: "safe",
118
+ durableWebForeground: false
119
+ },
120
+ globFiles: {
121
+ replay: "idempotent",
122
+ sideEffects: "none",
123
+ locality: "device",
124
+ interaction: "none",
125
+ concurrency: "safe",
126
+ durableWebForeground: false
127
+ },
128
+ createDoc: {
129
+ replay: "unsafe",
130
+ sideEffects: "mutation",
131
+ locality: "server",
132
+ interaction: "none",
133
+ concurrency: "exclusive",
134
+ durableWebForeground: false
135
+ },
136
+ updateDoc: {
137
+ replay: "unsafe",
138
+ sideEffects: "mutation",
139
+ locality: "server",
140
+ interaction: "none",
141
+ concurrency: "exclusive",
142
+ durableWebForeground: false
143
+ },
144
+ createHtmlArtifact: {
145
+ replay: "unsafe",
146
+ sideEffects: "mutation",
147
+ locality: "server",
148
+ interaction: "none",
149
+ concurrency: "exclusive",
150
+ durableWebForeground: "mutating"
151
+ },
152
+ readHtmlArtifact: serverPureRead("read-only"),
153
+ updateHtmlArtifact: {
154
+ replay: "unsafe",
155
+ sideEffects: "mutation",
156
+ locality: "server",
157
+ interaction: "none",
158
+ concurrency: "exclusive",
159
+ durableWebForeground: "mutating"
160
+ },
161
+ deleteDialogs: {
162
+ replay: "unsafe",
163
+ sideEffects: "mutation",
164
+ locality: "server",
165
+ interaction: "confirm",
166
+ concurrency: "exclusive",
167
+ durableWebForeground: false
168
+ },
169
+ loadSkill: {
170
+ replay: "unsafe",
171
+ sideEffects: "observable",
172
+ locality: "server",
173
+ interaction: "none",
174
+ concurrency: "exclusive",
175
+ durableWebForeground: false
176
+ }
177
+ });
178
+ function resolveToolExecutionContract(toolName) {
179
+ if (typeof toolName !== "string" || !toolName.trim()) {
180
+ return UNKNOWN_TOOL_EXECUTION_CONTRACT;
181
+ }
182
+ const canonicalName = canonicalizeToolName(toolName);
183
+ return TOOL_EXECUTION_CONTRACT[canonicalName] ?? UNKNOWN_TOOL_EXECUTION_CONTRACT;
184
+ }
185
+ function collectDurableWebToolNames(durableClass) {
186
+ return new Set(
187
+ Object.entries(TOOL_EXECUTION_CONTRACT).filter(([, contract]) => contract.durableWebForeground === durableClass).map(([name]) => name)
188
+ );
189
+ }
190
+ var DURABLE_WEB_FOREGROUND_READ_ONLY_TOOL_NAMES = collectDurableWebToolNames("read-only");
191
+ var DURABLE_WEB_FOREGROUND_INTERACTIVE_TOOL_NAMES = collectDurableWebToolNames("interactive");
192
+ var DURABLE_WEB_FOREGROUND_MUTATING_TOOL_NAMES = collectDurableWebToolNames("mutating");
193
+ var DURABLE_WEB_FOREGROUND_TOOL_NAMES = /* @__PURE__ */ new Set([
194
+ ...DURABLE_WEB_FOREGROUND_READ_ONLY_TOOL_NAMES,
195
+ ...DURABLE_WEB_FOREGROUND_INTERACTIVE_TOOL_NAMES,
196
+ ...DURABLE_WEB_FOREGROUND_MUTATING_TOOL_NAMES
197
+ ]);
198
+ var CONFIRMED_HANDOFF_TOOL_NAMES = new Set(
199
+ Object.entries(TOOL_EXECUTION_CONTRACT).filter(([, contract]) => contract.interaction === "handoff").map(([name]) => name)
200
+ );
201
+ function hasProvenServerReadOnlySemantics(toolName) {
202
+ const contract = resolveToolExecutionContract(toolName);
203
+ return contract.durableWebForeground === "read-only" && (contract.replay === "pure" || contract.replay === "idempotent") && (contract.sideEffects === "none" || contract.sideEffects === "observable") && contract.locality === "server" && contract.interaction === "none";
204
+ }
205
+ function hasProvenServerMutatingSemantics(toolName) {
206
+ const contract = resolveToolExecutionContract(toolName);
207
+ return contract.durableWebForeground === "mutating" && (contract.replay === "unsafe" || contract.replay === "deduplicated") && contract.sideEffects === "mutation" && contract.locality === "server" && contract.interaction === "none";
208
+ }
209
+ function hasProvenDurableWebForegroundSemantics(toolName) {
210
+ const contract = resolveToolExecutionContract(toolName);
211
+ if (contract.durableWebForeground === "read-only") {
212
+ return hasProvenServerReadOnlySemantics(toolName);
213
+ }
214
+ if (contract.durableWebForeground === "interactive") {
215
+ return contract.locality === "server" && contract.interaction === "blocking" && contract.sideEffects === "observable";
216
+ }
217
+ if (contract.durableWebForeground === "mutating") {
218
+ return hasProvenServerMutatingSemantics(toolName);
219
+ }
220
+ return false;
221
+ }
222
+
223
+ export {
224
+ resolveToolExecutionContract,
225
+ DURABLE_WEB_FOREGROUND_TOOL_NAMES,
226
+ hasProvenDurableWebForegroundSemantics
227
+ };
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-TX5EYMGT.js";
4
+ } from "./chunk-GYVCJABP.js";
5
5
  import {
6
6
  updateTokensAction
7
- } from "./chunk-ZXOUUDCG.js";
7
+ } from "./chunk-MZLE5HQ3.js";
8
8
  import {
9
9
  applyUpdateTokensFulfilled
10
- } from "./chunk-OWYYDMGJ.js";
10
+ } from "./chunk-S2NTVGA2.js";
11
11
  import {
12
12
  extractReasoningFromResponseOutput,
13
13
  extractTextFromResponseOutput,
14
14
  extractToolCallsFromResponseOutput
15
- } from "./chunk-H5HF7TJA.js";
15
+ } from "./chunk-MAIITKBT.js";
16
16
  import {
17
17
  isRecord
18
18
  } from "./chunk-KUG52IAP.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-E2BESSAW.js";
11
11
  import {
12
12
  getModelContextWindow
13
- } from "./chunk-7BT37FK3.js";
13
+ } from "./chunk-RDH5CQ4T.js";
14
14
  import {
15
15
  isRecord
16
16
  } from "./chunk-KUG52IAP.js";
@@ -18,7 +18,7 @@ import {
18
18
  PLATFORM_HOSTED_KIMI_K3_MODEL,
19
19
  isFireworksKimiModel,
20
20
  isNoloHostedProvider
21
- } from "./chunk-GOO6G4PY.js";
21
+ } from "./chunk-CKG3PRZ7.js";
22
22
  import {
23
23
  asTrimmedLowercaseString
24
24
  } from "./chunk-QSJ3HFEF.js";