nolo-cli 0.108.0-alpha.1 → 0.108.0

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 (608) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-GTYLDSJW.js → _executeModel-RVAKYU4J.js} +128 -83
  3. package/action-RHUT4OHH.js +23 -0
  4. package/{addContentAction-MB2HHMDZ.js → addContentAction-BQ3LJLUW.js} +19 -13
  5. package/{addDialogAgentAction-MCEABSBA.js → addDialogAgentAction-B6X7BXR4.js} +24 -20
  6. package/{agentDeleteCommand-OWYHN6D6.js → agentDeleteCommand-T5MDAOE7.js} +154 -67
  7. package/{agentEmailCommands-C6J2KUL2.js → agentEmailCommands-UWBQSKLI.js} +125 -104
  8. package/{agentGrantCommands-M3XFO6EN.js → agentGrantCommands-HOJ3JBBQ.js} +3 -3
  9. package/agentListCommands-2Q456VYS.js +800 -0
  10. package/{agentMachineCommands-UDEXV472.js → agentMachineCommands-FPJJ4DCF.js} +54 -57
  11. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-7PCGR77I.js} +97 -2
  12. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-7GCDM4BK.js} +7 -7
  13. package/agentRecordCommands-3JGDR4NN.js +149 -0
  14. package/agentRunCommand-3NQOP3SD.js +179 -0
  15. package/{agentRunControl-AVJR4JW4.js → agentRunControl-2CDZNHXV.js} +10 -2
  16. package/{agentRuntimeLocal-KCMC2TBD.js → agentRuntimeLocal-SQUDRZWE.js} +42 -46
  17. package/{agentSlice-TNH7BSUC.js → agentSlice-R4W6MCEW.js} +22 -16
  18. package/{appDeleteCommands-JEPA3EWE.js → appDeleteCommands-CLLYGEBC.js} +55 -55
  19. package/{appDeployCommands-UTB76XFM.js → appDeployCommands-HY2NBNDQ.js} +64 -59
  20. package/{appDeployStatusCommands-LGHF2SBD.js → appDeployStatusCommands-SGO5GEXH.js} +53 -52
  21. package/{appGetCommands-PX2BFHOB.js → appGetCommands-ZPYK2N5D.js} +53 -52
  22. package/{appListCommands-BSMPTWKC.js → appListCommands-O2BHIMKS.js} +54 -55
  23. package/{authCommand-YW42YZA4.js → authCommand-GUIREPHK.js} +213 -72
  24. package/{authCommands-RGOGCPP6.js → authCommands-K3BDSTJ4.js} +10 -7
  25. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-MUOUTRNJ.js} +13 -10
  26. package/{chromeCommands-FZYAU75D.js → chromeCommands-Z2WRJB7O.js} +290 -38
  27. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-YWYXZTIR.js} +157 -23
  28. package/{chunk-RRPWH4LX.js → chunk-26UZ2Y4Z.js} +26 -31
  29. package/{chunk-2F7RJC6L.js → chunk-2C47W7IJ.js} +1 -1
  30. package/{chunk-VLTIYV3X.js → chunk-2ECUZDEL.js} +37 -11
  31. package/{chunk-ALXHV7NK.js → chunk-2GGXHQIW.js} +43 -4
  32. package/{chunk-AHAHBQMU.js → chunk-2OMUAIKR.js} +2 -2
  33. package/{chunk-DHDMC6FO.js → chunk-3CZM6HGQ.js} +53 -23
  34. package/{chunk-BNGW5ASC.js → chunk-3LI5UCTU.js} +23 -3
  35. package/{chunk-FDTR4QJ6.js → chunk-3MZAGMYY.js} +48 -1
  36. package/chunk-3PVYUPXK.js +40 -0
  37. package/chunk-3SK3J3IF.js +929 -0
  38. package/chunk-4LCOCOR5.js +50 -0
  39. package/{chunk-V7E4PXQD.js → chunk-4MSYSHZD.js} +15 -7
  40. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  41. package/{chunk-MP64VFGD.js → chunk-4XEYAFLY.js} +60 -18
  42. package/chunk-4YRTZIVN.js +871 -0
  43. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  44. package/{chunk-N7J63Q6C.js → chunk-56GBUMO5.js} +10 -1
  45. package/chunk-5MMAK75Q.js +15 -0
  46. package/{chunk-XT35TTFG.js → chunk-5WLADF62.js} +90 -36
  47. package/chunk-5XN3OSCT.js +164 -0
  48. package/chunk-6CCAXGFK.js +1712 -0
  49. package/{chunk-42V6BK2E.js → chunk-6MXDOUMH.js} +18 -36
  50. package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
  51. package/{chunk-J4MOO56S.js → chunk-6VRWNU5J.js} +10 -2
  52. package/{chunk-GEPUP7OO.js → chunk-726TCFLQ.js} +5 -5
  53. package/chunk-7DPNBQSV.js +9 -0
  54. package/chunk-7YVPCIEN.js +1858 -0
  55. package/{chunk-AEOE4Z6Q.js → chunk-A337PRRR.js} +41 -17
  56. package/chunk-AGIM7IMJ.js +147 -0
  57. package/{chunk-ABQYVJBJ.js → chunk-AIZE5TDM.js} +3 -3
  58. package/{chunk-GPCZ7UXG.js → chunk-ALKCVCA5.js} +4 -4
  59. package/{chunk-5UTFL4QJ.js → chunk-APO5TOXO.js} +1 -1
  60. package/{chunk-E4MARS3Q.js → chunk-AU7AXHUL.js} +1 -1
  61. package/{chunk-PBA4UJBK.js → chunk-BFYDNHYW.js} +12 -12
  62. package/{chunk-QTGQ2LTL.js → chunk-BIAETTOB.js} +5 -9
  63. package/{chunk-OIVSQH2O.js → chunk-CGEK73JN.js} +311 -12
  64. package/chunk-CHOZJMJS.js +78 -0
  65. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  66. package/chunk-DGDGNYI5.js +593 -0
  67. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  68. package/{chunk-PVZT43MU.js → chunk-EXR4XCFE.js} +17 -15
  69. package/chunk-EYLGAEB4.js +784 -0
  70. package/{chunk-3BMYXEUW.js → chunk-F2UJW3EK.js} +1 -1
  71. package/{chunk-P5EVSOPA.js → chunk-FWY6BHIJ.js} +363 -248
  72. package/{chunk-4MK3I7Y4.js → chunk-G23MQWLJ.js} +7 -128
  73. package/chunk-G6OOUQWJ.js +417 -0
  74. package/{chunk-WV42OMV7.js → chunk-GHZ2H2HJ.js} +11 -15
  75. package/chunk-GMZLP5DV.js +82 -0
  76. package/chunk-I42VC5KR.js +15 -0
  77. package/{chunk-GO3Z72MT.js → chunk-IFALJPEX.js} +71 -99
  78. package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
  79. package/{chunk-UKWGR5SS.js → chunk-IJERIUXS.js} +242 -1146
  80. package/chunk-IRG4OKY6.js +843 -0
  81. package/{chunk-TYYSADX4.js → chunk-IUTHWIZQ.js} +269 -141
  82. package/{chunk-QDSINZM3.js → chunk-IXH3HKY2.js} +1 -22
  83. package/chunk-JJM3WS6W.js +132 -0
  84. package/{chunk-R7RHOSZU.js → chunk-KN6MKCS5.js} +1733 -465
  85. package/{chunk-SH43IESU.js → chunk-KQ7DAEZ7.js} +202 -32
  86. package/{chunk-6OZ36FXI.js → chunk-KY6GPQ7O.js} +36 -12
  87. package/{chunk-MRIHM22T.js → chunk-LAVSW2C2.js} +77 -144
  88. package/{chunk-NA35QHCF.js → chunk-LNEKN523.js} +10 -7
  89. package/chunk-LWLNLZC5.js +265 -0
  90. package/{chunk-I3TQJXQ7.js → chunk-MHD5JBSS.js} +131 -10
  91. package/{chunk-KQ4ONNQD.js → chunk-MW533QT3.js} +190 -8
  92. package/{chunk-62CATUYY.js → chunk-NLEJWKF5.js} +10532 -9444
  93. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  94. package/{chunk-GQBOR3G6.js → chunk-NN4UUYGB.js} +18 -4
  95. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  96. package/chunk-OKARGYFT.js +15 -0
  97. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  98. package/{chunk-53HEEOTT.js → chunk-OYBAT7RT.js} +113 -17
  99. package/chunk-P3SFAHIL.js +134 -0
  100. package/{chunk-7U6P3PHS.js → chunk-P6KLYCL3.js} +310 -95
  101. package/{chunk-XD2MJFUG.js → chunk-PBGO5AFD.js} +1 -1
  102. package/{chunk-EYAQT56M.js → chunk-PFEK4SA2.js} +13 -10
  103. package/{chunk-Z77CRGTW.js → chunk-PHHFVGOJ.js} +1 -1
  104. package/{chunk-3VNWWVKB.js → chunk-PJNFNEJE.js} +114 -28
  105. package/{chunk-RRM7AJ3M.js → chunk-PS6XSDHW.js} +35 -30
  106. package/{chunk-HVURBGF3.js → chunk-PWRS2SU2.js} +27 -9
  107. package/chunk-QFEW2ULV.js +42 -0
  108. package/chunk-QH2QSBGP.js +7546 -0
  109. package/{chunk-IIVGDG4I.js → chunk-QLQ573SU.js} +124 -77
  110. package/chunk-QQ56R7KS.js +88 -0
  111. package/chunk-QYPE3TS3.js +43 -0
  112. package/{chunk-VMFTFOWF.js → chunk-RLRYVSCD.js} +31 -14
  113. package/{chunk-VRTTFDBM.js → chunk-RNNWTMKT.js} +56 -63
  114. package/chunk-ROXFUKKL.js +13941 -0
  115. package/{chunk-DUK4OQNO.js → chunk-RRPT5CGT.js} +124 -703
  116. package/{chunk-JRQFUXY7.js → chunk-RRQQAG7W.js} +93 -24
  117. package/chunk-SJ3QFSQS.js +1147 -0
  118. package/chunk-SP4WCECG.js +95 -0
  119. package/{chunk-Q67DOFOO.js → chunk-SZC4REES.js} +212 -105
  120. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  121. package/{chunk-UZGQNTVW.js → chunk-TSBCYK5F.js} +10 -8
  122. package/chunk-TY3TIUJK.js +89 -0
  123. package/chunk-U4STABYN.js +81 -0
  124. package/chunk-UEILX4EV.js +15 -0
  125. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  126. package/{chunk-EEGDMATE.js → chunk-UPFOOGHU.js} +90 -79
  127. package/{chunk-7S4YWN7P.js → chunk-V2UPLOXT.js} +4 -4
  128. package/{chunk-PQFHGD77.js → chunk-V5DCOM6G.js} +185 -16
  129. package/{chunk-LS2ZANRJ.js → chunk-V6WXGTUJ.js} +1 -1
  130. package/{chunk-6YTOJY35.js → chunk-VBG7GWWR.js} +253 -8
  131. package/{chunk-DVINR3PL.js → chunk-VEA7H5FG.js} +3 -3
  132. package/chunk-VIWDGTDA.js +8 -0
  133. package/chunk-VJVNU77E.js +83 -0
  134. package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
  135. package/{chunk-HKNXJGEC.js → chunk-VSPO4S33.js} +47 -192
  136. package/{chunk-ETI2NYVF.js → chunk-W2N3ZC4P.js} +7 -7
  137. package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
  138. package/{chunk-6Z7MY3V7.js → chunk-WCQNEMXG.js} +3 -3
  139. package/chunk-WJZOQR2J.js +151 -0
  140. package/{chunk-L7OXGGBN.js → chunk-WVES4PHL.js} +69 -57
  141. package/{chunk-BFDFRLLQ.js → chunk-WW2USJ3C.js} +3 -3
  142. package/{chunk-QWL5QZGU.js → chunk-X2VPXJZC.js} +20 -11
  143. package/chunk-X5BIY654.js +29 -0
  144. package/{chunk-Q554LLSI.js → chunk-XETG4RIX.js} +5 -5
  145. package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
  146. package/{chunk-JEDZAO7L.js → chunk-YBNHPX4S.js} +257 -37
  147. package/{chunk-JPGCXHNM.js → chunk-YLMMECCH.js} +1 -1
  148. package/{chunk-CSC3CU4K.js → chunk-YSZQSZR2.js} +61 -11
  149. package/{chunk-6D6VBVEW.js → chunk-YVTZMLXZ.js} +96 -25
  150. package/{chunk-AG2AZ6GX.js → chunk-YZZLKXCQ.js} +1449 -1094
  151. package/chunk-ZRAU6T47.js +56 -0
  152. package/{chunk-ONXOABJR.js → chunk-ZWQUWF6W.js} +36 -1
  153. package/{cliExecutor-HG3S345O.js → cliExecutor-AWYR3T33.js} +1 -1
  154. package/commandRegistry-C25O2ARU.js +839 -0
  155. package/contentThunks-UWODFKX6.js +83 -0
  156. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-JFKTYS2D.js} +2 -2
  157. package/{createAgentAutomationAction-OBH7GPW5.js → createAgentAutomationAction-SA4IA4CR.js} +51 -43
  158. package/createDialogAction-EDK5IMRG.js +75 -0
  159. package/{createPageAction-JJ7UUTWC.js → createPageAction-VYVF5EIZ.js} +60 -51
  160. package/{chunk-BVGTK7MR.js → cursorProvider-YGGNMVWX.js} +2751 -10185
  161. package/{dbSlice-A6C6H32X.js → dbSlice-JQFBMJ55.js} +18 -12
  162. package/{deleteFile-YG6QMJLU.js → deleteFile-6JWDDRVP.js} +9 -5
  163. package/dialogCommands-K734RXEQ.js +108 -0
  164. package/{dialogSlice-6Z2BPC3T.js → dialogSlice-EEDP6PJ3.js} +66 -41
  165. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  166. package/{docCreateCommands-WRG2JLGM.js → docCreateCommands-N3KPGP4A.js} +51 -53
  167. package/{docDeleteCommands-SHWJIBJS.js → docDeleteCommands-4CR4TXZ7.js} +53 -54
  168. package/{docReadCommands-WJN3WT6O.js → docReadCommands-62XK57VS.js} +50 -52
  169. package/{docStore-7WUS6XXX.js → docStore-RB7YBD4Y.js} +24 -15
  170. package/{docUpdateCommands-IE32IL6O.js → docUpdateCommands-DRAAWIDC.js} +51 -53
  171. package/{fetchMessages-EIU7UFFK.js → fetchMessages-LM6OMMQQ.js} +5 -4
  172. package/{getPricing-LUSEABA6.js → getPricing-XDF4OLTC.js} +6 -6
  173. package/handleSendMessageAction-TYDPIC6O.js +1849 -0
  174. package/index.js +91 -884
  175. package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
  176. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-BOETO2TD.js} +2 -2
  177. package/localRuntimeAdapter-VYB2QTU3.js +239 -0
  178. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-YSE6NH7B.js} +12 -9
  179. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-7FBKDEQY.js} +1 -1
  180. package/{machineCommands-KSN4COGR.js → machineCommands-IQRRLSYP.js} +493 -151
  181. package/machineWsRunDispatch-LIMM5CYE.js +164 -0
  182. package/{memberThunks-P2ECUJ56.js → memberThunks-Y3Q7GZTG.js} +24 -17
  183. package/{models-T3SG6MJ5.js → models-6V4ZCHEE.js} +2 -2
  184. package/node_modules/abstract-level/CHANGELOG.md +150 -0
  185. package/node_modules/abstract-level/LICENSE +21 -0
  186. package/node_modules/abstract-level/README.md +1957 -0
  187. package/node_modules/abstract-level/UPGRADING.md +669 -0
  188. package/node_modules/abstract-level/abstract-chained-batch.js +397 -0
  189. package/node_modules/abstract-level/abstract-iterator.js +404 -0
  190. package/node_modules/abstract-level/abstract-level.js +1127 -0
  191. package/node_modules/abstract-level/abstract-snapshot.js +84 -0
  192. package/node_modules/abstract-level/index.d.ts +52 -0
  193. package/node_modules/abstract-level/index.js +9 -0
  194. package/node_modules/abstract-level/lib/abstract-sublevel-iterator.js +141 -0
  195. package/node_modules/abstract-level/lib/abstract-sublevel.js +290 -0
  196. package/node_modules/abstract-level/lib/common.js +33 -0
  197. package/node_modules/abstract-level/lib/default-chained-batch.js +29 -0
  198. package/node_modules/abstract-level/lib/default-kv-iterator.js +74 -0
  199. package/node_modules/abstract-level/lib/deferred-iterator.js +110 -0
  200. package/node_modules/abstract-level/lib/deferred-queue.js +84 -0
  201. package/node_modules/abstract-level/lib/errors.js +21 -0
  202. package/node_modules/abstract-level/lib/event-monitor.js +30 -0
  203. package/node_modules/abstract-level/lib/hooks.js +78 -0
  204. package/node_modules/abstract-level/lib/prefixes.js +21 -0
  205. package/node_modules/abstract-level/lib/prewrite-batch.js +96 -0
  206. package/node_modules/abstract-level/lib/range-options.js +26 -0
  207. package/node_modules/abstract-level/package.json +66 -0
  208. package/node_modules/abstract-level/test/async-iterator-test.js +132 -0
  209. package/node_modules/abstract-level/test/batch-test.js +214 -0
  210. package/node_modules/abstract-level/test/chained-batch-test.js +315 -0
  211. package/node_modules/abstract-level/test/clear-range-test.js +262 -0
  212. package/node_modules/abstract-level/test/clear-test.js +110 -0
  213. package/node_modules/abstract-level/test/common.js +90 -0
  214. package/node_modules/abstract-level/test/deferred-open-test.js +209 -0
  215. package/node_modules/abstract-level/test/del-test.js +65 -0
  216. package/node_modules/abstract-level/test/encoding-buffer-test.js +336 -0
  217. package/node_modules/abstract-level/test/encoding-custom-test.js +92 -0
  218. package/node_modules/abstract-level/test/encoding-decode-error-test.js +85 -0
  219. package/node_modules/abstract-level/test/encoding-json-test.js +75 -0
  220. package/node_modules/abstract-level/test/encoding-test.js +130 -0
  221. package/node_modules/abstract-level/test/events/write.js +132 -0
  222. package/node_modules/abstract-level/test/factory-test.js +36 -0
  223. package/node_modules/abstract-level/test/get-many-test.js +157 -0
  224. package/node_modules/abstract-level/test/get-sync-test.js +61 -0
  225. package/node_modules/abstract-level/test/get-test.js +83 -0
  226. package/node_modules/abstract-level/test/has-many-test.js +144 -0
  227. package/node_modules/abstract-level/test/has-test.js +81 -0
  228. package/node_modules/abstract-level/test/hooks/newsub.js +57 -0
  229. package/node_modules/abstract-level/test/hooks/postopen.js +229 -0
  230. package/node_modules/abstract-level/test/hooks/prewrite.js +816 -0
  231. package/node_modules/abstract-level/test/hooks/shared.js +38 -0
  232. package/node_modules/abstract-level/test/index.js +86 -0
  233. package/node_modules/abstract-level/test/iterator-explicit-snapshot-test.js +393 -0
  234. package/node_modules/abstract-level/test/iterator-no-snapshot-test.js +49 -0
  235. package/node_modules/abstract-level/test/iterator-range-test.js +277 -0
  236. package/node_modules/abstract-level/test/iterator-seek-test.js +335 -0
  237. package/node_modules/abstract-level/test/iterator-snapshot-test.js +56 -0
  238. package/node_modules/abstract-level/test/iterator-test.js +621 -0
  239. package/node_modules/abstract-level/test/manifest-test.js +21 -0
  240. package/node_modules/abstract-level/test/open-create-if-missing-test.js +39 -0
  241. package/node_modules/abstract-level/test/open-error-if-exists-test.js +25 -0
  242. package/node_modules/abstract-level/test/open-test.js +263 -0
  243. package/node_modules/abstract-level/test/put-get-del-test.js +97 -0
  244. package/node_modules/abstract-level/test/put-test.js +70 -0
  245. package/node_modules/abstract-level/test/self/abstract-iterator-test.js +182 -0
  246. package/node_modules/abstract-level/test/self/async-iterator-test.js +242 -0
  247. package/node_modules/abstract-level/test/self/attach-resource-test.js +74 -0
  248. package/node_modules/abstract-level/test/self/defer-test.js +140 -0
  249. package/node_modules/abstract-level/test/self/deferred-iterator-test.js +314 -0
  250. package/node_modules/abstract-level/test/self/deferred-operations-test.js +86 -0
  251. package/node_modules/abstract-level/test/self/deferred-queue-test.js +93 -0
  252. package/node_modules/abstract-level/test/self/encoding-test.js +391 -0
  253. package/node_modules/abstract-level/test/self/errors-test.js +11 -0
  254. package/node_modules/abstract-level/test/self/iterator-test.js +1050 -0
  255. package/node_modules/abstract-level/test/self/sublevel-test.js +1039 -0
  256. package/node_modules/abstract-level/test/self.js +905 -0
  257. package/node_modules/abstract-level/test/sublevel-test.js +209 -0
  258. package/node_modules/abstract-level/test/traits/closed.js +42 -0
  259. package/node_modules/abstract-level/test/traits/index.js +4 -0
  260. package/node_modules/abstract-level/test/traits/open.js +62 -0
  261. package/node_modules/abstract-level/test/util.js +275 -0
  262. package/node_modules/abstract-level/types/abstract-chained-batch.d.ts +124 -0
  263. package/node_modules/abstract-level/types/abstract-iterator.d.ts +241 -0
  264. package/node_modules/abstract-level/types/abstract-level.d.ts +636 -0
  265. package/node_modules/abstract-level/types/abstract-snapshot.d.ts +30 -0
  266. package/node_modules/abstract-level/types/abstract-sublevel.d.ts +76 -0
  267. package/node_modules/abstract-level/types/interfaces.d.ts +43 -0
  268. package/node_modules/base64-js/LICENSE +21 -0
  269. package/node_modules/base64-js/README.md +34 -0
  270. package/node_modules/base64-js/base64js.min.js +1 -0
  271. package/node_modules/base64-js/index.d.ts +3 -0
  272. package/node_modules/base64-js/index.js +150 -0
  273. package/node_modules/base64-js/package.json +47 -0
  274. package/node_modules/browser-level/CHANGELOG.md +44 -0
  275. package/node_modules/browser-level/LICENSE +21 -0
  276. package/node_modules/browser-level/README.md +124 -0
  277. package/node_modules/browser-level/UPGRADING.md +143 -0
  278. package/node_modules/browser-level/index.d.ts +108 -0
  279. package/node_modules/browser-level/index.js +323 -0
  280. package/node_modules/browser-level/iterator.js +239 -0
  281. package/node_modules/browser-level/package.json +48 -0
  282. package/node_modules/browser-level/util/clear.js +38 -0
  283. package/node_modules/browser-level/util/deserialize.js +17 -0
  284. package/node_modules/browser-level/util/key-range.js +20 -0
  285. package/node_modules/buffer/AUTHORS.md +73 -0
  286. package/node_modules/buffer/LICENSE +21 -0
  287. package/node_modules/buffer/README.md +410 -0
  288. package/node_modules/buffer/index.d.ts +194 -0
  289. package/node_modules/buffer/index.js +2106 -0
  290. package/node_modules/buffer/package.json +93 -0
  291. package/node_modules/classic-level/CHANGELOG.md +115 -0
  292. package/node_modules/classic-level/LICENSE +21 -0
  293. package/node_modules/classic-level/README.md +274 -0
  294. package/node_modules/classic-level/UPGRADING.md +131 -0
  295. package/node_modules/classic-level/binding.cc +2652 -0
  296. package/node_modules/classic-level/binding.gyp +71 -0
  297. package/node_modules/classic-level/binding.js +1 -0
  298. package/node_modules/classic-level/chained-batch.js +35 -0
  299. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/LICENSE +27 -0
  300. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/Makefile +424 -0
  301. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/build_detect_platform +256 -0
  302. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/autocompact_test.cc +118 -0
  303. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.cc +88 -0
  304. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.h +34 -0
  305. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c.cc +595 -0
  306. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c_test.c +390 -0
  307. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/corruption_test.cc +374 -0
  308. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_bench.cc +1020 -0
  309. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.cc +1568 -0
  310. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.h +212 -0
  311. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.cc +317 -0
  312. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.h +28 -0
  313. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_test.cc +2158 -0
  314. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.cc +140 -0
  315. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.h +230 -0
  316. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat_test.cc +112 -0
  317. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dumpfile.cc +225 -0
  318. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/fault_injection_test.cc +554 -0
  319. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.cc +144 -0
  320. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.h +85 -0
  321. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename_test.cc +123 -0
  322. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/leveldbutil.cc +64 -0
  323. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_format.h +35 -0
  324. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.cc +284 -0
  325. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.h +113 -0
  326. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_test.cc +591 -0
  327. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.cc +112 -0
  328. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.h +54 -0
  329. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.cc +145 -0
  330. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.h +89 -0
  331. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/recovery_test.cc +324 -0
  332. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/repair.cc +461 -0
  333. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist.h +384 -0
  334. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist_test.cc +378 -0
  335. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/snapshot.h +67 -0
  336. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.cc +127 -0
  337. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.h +61 -0
  338. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.cc +266 -0
  339. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.h +107 -0
  340. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit_test.cc +46 -0
  341. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.cc +1535 -0
  342. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.h +399 -0
  343. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set_test.cc +179 -0
  344. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch.cc +147 -0
  345. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_internal.h +50 -0
  346. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_test.cc +120 -0
  347. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.cc +398 -0
  348. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.h +20 -0
  349. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv_test.cc +241 -0
  350. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/c.h +290 -0
  351. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/cache.h +110 -0
  352. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/comparator.h +63 -0
  353. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/db.h +164 -0
  354. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/dumpfile.h +25 -0
  355. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/env.h +351 -0
  356. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/filter_policy.h +70 -0
  357. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/iterator.h +100 -0
  358. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/options.h +213 -0
  359. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/slice.h +109 -0
  360. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/status.h +112 -0
  361. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table.h +85 -0
  362. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table_builder.h +92 -0
  363. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/value_sink.h +26 -0
  364. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/write_batch.h +64 -0
  365. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue178_test.cc +92 -0
  366. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue200_test.cc +59 -0
  367. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/atomic_pointer.h +242 -0
  368. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port.h +21 -0
  369. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_example.h +141 -0
  370. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.cc +53 -0
  371. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.h +156 -0
  372. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix_sse.cc +129 -0
  373. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/thread_annotations.h +60 -0
  374. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/win/stdint.h +24 -0
  375. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.cc +268 -0
  376. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.h +44 -0
  377. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.cc +109 -0
  378. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.h +57 -0
  379. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.cc +111 -0
  380. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.h +68 -0
  381. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block_test.cc +128 -0
  382. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.cc +144 -0
  383. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.h +108 -0
  384. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator.cc +67 -0
  385. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator_wrapper.h +66 -0
  386. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.cc +197 -0
  387. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.h +26 -0
  388. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table.cc +285 -0
  389. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_builder.cc +270 -0
  390. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_test.cc +876 -0
  391. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.cc +182 -0
  392. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.h +34 -0
  393. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.cc +68 -0
  394. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.h +68 -0
  395. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena_test.cc +68 -0
  396. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom.cc +95 -0
  397. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom_test.cc +162 -0
  398. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache.cc +405 -0
  399. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache_test.cc +226 -0
  400. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.cc +194 -0
  401. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.h +104 -0
  402. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding_test.cc +196 -0
  403. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/comparator.cc +81 -0
  404. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.cc +350 -0
  405. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.h +45 -0
  406. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c_test.cc +72 -0
  407. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env.cc +100 -0
  408. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix.cc +695 -0
  409. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test.cc +66 -0
  410. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test_helper.h +28 -0
  411. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_test.cc +106 -0
  412. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/filter_policy.cc +11 -0
  413. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.cc +52 -0
  414. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.h +19 -0
  415. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash_test.cc +54 -0
  416. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.cc +139 -0
  417. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.h +42 -0
  418. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.cc +72 -0
  419. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.h +43 -0
  420. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/mutexlock.h +41 -0
  421. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/options.cc +30 -0
  422. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/posix_logger.h +98 -0
  423. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/random.h +64 -0
  424. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/status.cc +75 -0
  425. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.cc +77 -0
  426. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.h +138 -0
  427. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.cc +51 -0
  428. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.h +63 -0
  429. package/node_modules/classic-level/deps/leveldb/leveldb.gyp +282 -0
  430. package/node_modules/classic-level/deps/leveldb/patches/001-value-sink.patch +164 -0
  431. package/node_modules/classic-level/deps/leveldb/port-libuv/atomic_pointer_win.h +48 -0
  432. package/node_modules/classic-level/deps/leveldb/port-libuv/env_win.cc +692 -0
  433. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.cc +36 -0
  434. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h +157 -0
  435. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h.bak +153 -0
  436. package/node_modules/classic-level/deps/leveldb/port-libuv/stdint-msvc2008.h +247 -0
  437. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar.h +45 -0
  438. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar_posix.cc +139 -0
  439. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.cc +79 -0
  440. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.h +28 -0
  441. package/node_modules/classic-level/deps/snappy/freebsd/config.h +135 -0
  442. package/node_modules/classic-level/deps/snappy/freebsd/snappy-stubs-public.h +100 -0
  443. package/node_modules/classic-level/deps/snappy/linux/config.h +135 -0
  444. package/node_modules/classic-level/deps/snappy/linux/snappy-stubs-public.h +100 -0
  445. package/node_modules/classic-level/deps/snappy/mac/config.h +137 -0
  446. package/node_modules/classic-level/deps/snappy/mac/snappy-stubs-public.h +100 -0
  447. package/node_modules/classic-level/deps/snappy/openbsd/config.h +135 -0
  448. package/node_modules/classic-level/deps/snappy/openbsd/snappy-stubs-public.h +100 -0
  449. package/node_modules/classic-level/deps/snappy/snappy/COPYING +54 -0
  450. package/node_modules/classic-level/deps/snappy/snappy/cmake/SnappyConfig.cmake +1 -0
  451. package/node_modules/classic-level/deps/snappy/snappy/cmake/config.h.in +62 -0
  452. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.cc +90 -0
  453. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.h +138 -0
  454. package/node_modules/classic-level/deps/snappy/snappy/snappy-internal.h +224 -0
  455. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.cc +104 -0
  456. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.h +182 -0
  457. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.cc +42 -0
  458. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.h +561 -0
  459. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-public.h.in +94 -0
  460. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.cc +612 -0
  461. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.h +573 -0
  462. package/node_modules/classic-level/deps/snappy/snappy/snappy.cc +1515 -0
  463. package/node_modules/classic-level/deps/snappy/snappy/snappy.h +203 -0
  464. package/node_modules/classic-level/deps/snappy/snappy/snappy_unittest.cc +1410 -0
  465. package/node_modules/classic-level/deps/snappy/snappy.gyp +119 -0
  466. package/node_modules/classic-level/deps/snappy/solaris/config.h +135 -0
  467. package/node_modules/classic-level/deps/snappy/solaris/snappy-stubs-public.h +100 -0
  468. package/node_modules/classic-level/deps/snappy/win32/config.h +29 -0
  469. package/node_modules/classic-level/deps/snappy/win32/snappy-stubs-public.h +100 -0
  470. package/node_modules/classic-level/index.d.ts +343 -0
  471. package/node_modules/classic-level/index.js +311 -0
  472. package/node_modules/classic-level/iterator.js +122 -0
  473. package/node_modules/classic-level/package.json +70 -0
  474. package/node_modules/classic-level/prebuilds/android-arm/classic-level.armv7.node +0 -0
  475. package/node_modules/classic-level/prebuilds/android-arm64/classic-level.armv8.node +0 -0
  476. package/node_modules/classic-level/prebuilds/darwin-x64+arm64/classic-level.node +0 -0
  477. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv6.node +0 -0
  478. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv7.node +0 -0
  479. package/node_modules/classic-level/prebuilds/linux-arm64/classic-level.armv8.node +0 -0
  480. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.musl.node +0 -0
  481. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.node +0 -0
  482. package/node_modules/classic-level/prebuilds/win32-ia32/classic-level.node +0 -0
  483. package/node_modules/classic-level/prebuilds/win32-x64/classic-level.node +0 -0
  484. package/node_modules/ieee754/LICENSE +11 -0
  485. package/node_modules/ieee754/README.md +51 -0
  486. package/node_modules/ieee754/index.d.ts +10 -0
  487. package/node_modules/ieee754/index.js +85 -0
  488. package/node_modules/ieee754/package.json +52 -0
  489. package/node_modules/is-buffer/LICENSE +21 -0
  490. package/node_modules/is-buffer/README.md +54 -0
  491. package/node_modules/is-buffer/index.d.ts +2 -0
  492. package/node_modules/is-buffer/index.js +11 -0
  493. package/node_modules/is-buffer/package.json +65 -0
  494. package/node_modules/level/CHANGELOG.md +532 -0
  495. package/node_modules/level/LICENSE +21 -0
  496. package/node_modules/level/README.md +107 -0
  497. package/node_modules/level/UPGRADING.md +413 -0
  498. package/node_modules/level/browser.js +1 -0
  499. package/node_modules/level/index.d.ts +75 -0
  500. package/node_modules/level/index.js +1 -0
  501. package/node_modules/level/package.json +62 -0
  502. package/node_modules/level-supports/CHANGELOG.md +140 -0
  503. package/node_modules/level-supports/LICENSE +21 -0
  504. package/node_modules/level-supports/README.md +276 -0
  505. package/node_modules/level-supports/index.d.ts +137 -0
  506. package/node_modules/level-supports/index.js +26 -0
  507. package/node_modules/level-supports/package.json +46 -0
  508. package/node_modules/level-supports/test/cloneable.js +26 -0
  509. package/node_modules/level-supports/test/index.js +24 -0
  510. package/node_modules/level-supports/test/self.js +86 -0
  511. package/node_modules/level-supports/test/shape.js +23 -0
  512. package/node_modules/level-transcoder/CHANGELOG.md +15 -0
  513. package/node_modules/level-transcoder/LICENSE +21 -0
  514. package/node_modules/level-transcoder/README.md +214 -0
  515. package/node_modules/level-transcoder/UPGRADING.md +13 -0
  516. package/node_modules/level-transcoder/index.d.ts +27 -0
  517. package/node_modules/level-transcoder/index.js +158 -0
  518. package/node_modules/level-transcoder/lib/encoding.d.ts +158 -0
  519. package/node_modules/level-transcoder/lib/encoding.js +105 -0
  520. package/node_modules/level-transcoder/lib/encodings.d.ts +9 -0
  521. package/node_modules/level-transcoder/lib/encodings.js +135 -0
  522. package/node_modules/level-transcoder/lib/formats.d.ts +13 -0
  523. package/node_modules/level-transcoder/lib/formats.js +111 -0
  524. package/node_modules/level-transcoder/lib/text-endec.d.ts +6 -0
  525. package/node_modules/level-transcoder/lib/text-endec.js +19 -0
  526. package/node_modules/level-transcoder/package.json +46 -0
  527. package/node_modules/maybe-combine-errors/LICENSE.md +21 -0
  528. package/node_modules/maybe-combine-errors/README.md +94 -0
  529. package/node_modules/maybe-combine-errors/index.js +60 -0
  530. package/node_modules/maybe-combine-errors/package.json +33 -0
  531. package/node_modules/module-error/CHANGELOG.md +23 -0
  532. package/node_modules/module-error/LICENSE +21 -0
  533. package/node_modules/module-error/README.md +89 -0
  534. package/node_modules/module-error/index.d.ts +18 -0
  535. package/node_modules/module-error/index.js +22 -0
  536. package/node_modules/module-error/package.json +36 -0
  537. package/node_modules/napi-macros/LICENSE +21 -0
  538. package/node_modules/napi-macros/README.md +277 -0
  539. package/node_modules/napi-macros/index.js +1 -0
  540. package/node_modules/napi-macros/napi-macros.h +255 -0
  541. package/node_modules/napi-macros/package.json +22 -0
  542. package/node_modules/node-gyp-build/LICENSE +21 -0
  543. package/node_modules/node-gyp-build/README.md +58 -0
  544. package/node_modules/node-gyp-build/SECURITY.md +5 -0
  545. package/node_modules/node-gyp-build/bin.js +84 -0
  546. package/node_modules/node-gyp-build/build-test.js +19 -0
  547. package/node_modules/node-gyp-build/index.js +6 -0
  548. package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  549. package/node_modules/node-gyp-build/optional.js +7 -0
  550. package/node_modules/node-gyp-build/package.json +43 -0
  551. package/oauthTokenStore-PADKLNOC.js +23 -0
  552. package/package.json +6 -3
  553. package/processSpawn-SOAV3FEV.js +11 -0
  554. package/profileConfig-ZGOFORWV.js +43 -0
  555. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-HIPK67DU.js} +9 -9
  556. package/{providerRegistry-757OWH3O.js → providerRegistry-AI4U2FNM.js} +13 -9
  557. package/{read-COE3ZYR6.js → read-RNUQ7F34.js} +11 -7
  558. package/{readDocTool-5USN4A6V.js → readDocTool-6WIZHE6O.js} +5 -3
  559. package/{readlineWorkspace-HO62DKCG.js → readlineWorkspace-P3I7ZJUP.js} +6948 -3879
  560. package/{removeDialogAgentAction-J6X5QMTA.js → removeDialogAgentAction-EFQ4O2IQ.js} +27 -26
  561. package/{runAgentClientLoop-JLRJIF3F.js → runAgentClientLoop-AYNL3KMJ.js} +150 -90
  562. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-5CIWJEZ3.js} +36 -8
  563. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  564. package/setDialogExtraReferencesAction-MXAH2KPV.js +37 -0
  565. package/{setPrimaryDialogAgentAction-FN22THHT.js → setPrimaryDialogAgentAction-7OPVNK4M.js} +28 -27
  566. package/{chunk-GP5LKBUZ.js → settingThunks-GHVLHABJ.js} +240 -945
  567. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-QC35EQY4.js} +3 -3
  568. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  569. package/{spaceCommands-5GLCWZPO.js → spaceCommands-WZCLRGBO.js} +56 -55
  570. package/{streamAgentChatTurn-DZ3PP7ZH.js → streamAgentChatTurn-O5T3B4B3.js} +325 -1557
  571. package/{switchDialogAgentAction-LVTEV3FR.js → switchDialogAgentAction-4PANDG3L.js} +24 -20
  572. package/{tableCommands-O6NWHFKV.js → tableCommands-U3QDY4L6.js} +19 -17
  573. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-54CXTU7C.js} +5 -4
  574. package/tools-UMU2DYQX.js +122 -0
  575. package/{tuiSummaryLlmCaller-OHHFTHMG.js → tuiSummaryLlmCaller-ISODIW2O.js} +15 -29
  576. package/{updateCommands-2M74UL7P.js → updateCommands-NQXAGFM7.js} +3 -3
  577. package/{updateDialogTitleAction-VWZT4J6J.js → updateDialogTitleAction-TIS2SETN.js} +101 -57
  578. package/action-P4TNFGAD.js +0 -31
  579. package/agentListCommands-B2V4YAC4.js +0 -410
  580. package/agentRecordCommands-XBVDEYVC.js +0 -128
  581. package/agentRunCommand-V6RTNFRH.js +0 -156
  582. package/browser-image-compression-MFDTD7K6.js +0 -1763
  583. package/chatQueueReduxAdapter-XMFWRG3P.js +0 -186
  584. package/chunk-ACTMNVHM.js +0 -93
  585. package/chunk-CQ3WA2NE.js +0 -299
  586. package/chunk-M76ECQRD.js +0 -13658
  587. package/chunk-MEYIRKDN.js +0 -8967
  588. package/chunk-N4G4PKQ6.js +0 -23
  589. package/chunk-PUOC4YRO.js +0 -394
  590. package/chunk-Q5FJJ6XI.js +0 -103
  591. package/chunk-QQWJUHSL.js +0 -34
  592. package/chunk-S7Z2HMCN.js +0 -25
  593. package/chunk-TWQWYIMJ.js +0 -21409
  594. package/chunk-Y5GCAMGP.js +0 -9
  595. package/chunk-YPREESF4.js +0 -225
  596. package/contentThunks-3Z6NAUW6.js +0 -73
  597. package/createDialogAction-7XW3RX2A.js +0 -65
  598. package/dialogCommands-H7FPUYUQ.js +0 -99
  599. package/handleSendMessageAction-GUBOMCGM.js +0 -633
  600. package/machineWsRunDispatch-AAG6PDBY.js +0 -144
  601. package/setDialogExtraReferencesAction-WX5VTY6O.js +0 -30
  602. package/settingSlice-P4ZW7K5X.js +0 -204
  603. package/syncMapping-N6RGXGBW.js +0 -437
  604. package/tools-XA4ZWLH4.js +0 -110
  605. package/{chunk-SV5IJK6K.js → chunk-NBTY7YJF.js} +3 -3
  606. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  607. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
  608. package/{offlineMarxistsAgentCommand-HGXZV4XJ.js → offlineMarxistsAgentCommand-2QTHJCHV.js} +4 -4
@@ -2,149 +2,173 @@ import {
2
2
  buildMachinePermissionPromptBlock,
3
3
  handleConnectorRunMessage,
4
4
  resolveMachineRunPermissionPolicy
5
- } from "./chunk-RRM7AJ3M.js";
5
+ } from "./chunk-PS6XSDHW.js";
6
6
  import {
7
+ MAX_CONNECTOR_TIMER_DELAY_MS,
8
+ clampConnectorTimerDelayMs,
7
9
  isConnectorWebSocketAuthError,
8
10
  isConnectorWebSocketRetryableError,
11
+ resolveConnectorProbeTimeoutMs,
9
12
  resolveConnectorWebSocketTarget
10
- } from "./chunk-ALXHV7NK.js";
13
+ } from "./chunk-2GGXHQIW.js";
11
14
  import {
12
15
  detectMachineInfo
13
16
  } from "./chunk-ESHYE7WU.js";
14
- import "./chunk-BVGTK7MR.js";
15
- import "./chunk-53HEEOTT.js";
16
- import "./chunk-EADNWBAZ.js";
17
- import "./chunk-SH43IESU.js";
18
- import "./chunk-I3TQJXQ7.js";
19
- import "./chunk-42V6BK2E.js";
20
- import "./chunk-Z77CRGTW.js";
21
- import "./chunk-SV5IJK6K.js";
22
- import "./chunk-MP64VFGD.js";
17
+ import "./chunk-QH2QSBGP.js";
18
+ import "./chunk-OYBAT7RT.js";
19
+ import "./chunk-KQ7DAEZ7.js";
20
+ import "./chunk-6MXDOUMH.js";
21
+ import "./chunk-6CCAXGFK.js";
22
+ import "./chunk-VP3BINY7.js";
23
+ import "./chunk-PHHFVGOJ.js";
24
+ import "./chunk-NBTY7YJF.js";
25
+ import "./chunk-4XEYAFLY.js";
23
26
  import "./chunk-JBTJAPUF.js";
24
- import "./chunk-XD2MJFUG.js";
27
+ import "./chunk-VIWDGTDA.js";
25
28
  import "./chunk-ATNTHIZI.js";
26
- import "./chunk-L7OXGGBN.js";
29
+ import "./chunk-PBGO5AFD.js";
30
+ import "./chunk-WVES4PHL.js";
27
31
  import "./chunk-HS7MLR74.js";
28
- import "./chunk-AG2AZ6GX.js";
29
- import "./chunk-5UTFL4QJ.js";
32
+ import "./chunk-YZZLKXCQ.js";
33
+ import "./chunk-V5DCOM6G.js";
34
+ import "./chunk-APO5TOXO.js";
35
+ import "./chunk-OXME3PEE.js";
36
+ import "./chunk-WCQNEMXG.js";
37
+ import "./chunk-DGDGNYI5.js";
30
38
  import "./chunk-NF64D32W.js";
31
39
  import {
32
- CORE_DRAIN_REASON
33
- } from "./chunk-3L2WKC3W.js";
34
- import "./chunk-3VNWWVKB.js";
35
- import "./chunk-PQFHGD77.js";
36
- import "./chunk-KQHGZWSV.js";
37
- import "./chunk-J4MOO56S.js";
38
- import "./chunk-6Z7MY3V7.js";
39
- import "./chunk-EYAQT56M.js";
40
+ CORE_DRAIN_REASON,
41
+ parsePositiveFiniteNumberOrFallback
42
+ } from "./chunk-XPWGOTBQ.js";
43
+ import "./chunk-5XN3OSCT.js";
44
+ import "./chunk-2ECUZDEL.js";
45
+ import "./chunk-BIAETTOB.js";
46
+ import "./chunk-6VRWNU5J.js";
47
+ import "./chunk-PFEK4SA2.js";
40
48
  import "./chunk-VIDPVFP3.js";
41
- import "./chunk-VLTIYV3X.js";
42
- import "./chunk-QTGQ2LTL.js";
43
- import "./chunk-N4G4PKQ6.js";
44
- import "./chunk-FZGV4FGK.js";
45
- import "./chunk-MEYIRKDN.js";
49
+ import "./chunk-NUHHBEJC.js";
50
+ import "./chunk-AGIM7IMJ.js";
46
51
  import "./chunk-63W5N6P3.js";
47
52
  import "./chunk-VF4K2QE6.js";
48
- import "./chunk-QWL5QZGU.js";
49
- import "./chunk-RRPWH4LX.js";
50
- import "./chunk-7U6P3PHS.js";
53
+ import "./chunk-X2VPXJZC.js";
54
+ import "./chunk-26UZ2Y4Z.js";
55
+ import "./chunk-BFYDNHYW.js";
56
+ import "./chunk-P6KLYCL3.js";
51
57
  import "./chunk-ZJ7UHBJS.js";
52
- import "./chunk-TWQWYIMJ.js";
53
- import "./chunk-MC4XLIJ7.js";
54
- import "./chunk-3BMYXEUW.js";
55
- import "./chunk-YYLHWIW6.js";
58
+ import "./chunk-ROXFUKKL.js";
59
+ import "./chunk-523DITKR.js";
60
+ import "./chunk-UKZX3NHN.js";
61
+ import "./chunk-F2UJW3EK.js";
62
+ import "./chunk-BYXBJQAS.js";
63
+ import "./chunk-QYPE3TS3.js";
64
+ import "./chunk-EXR4XCFE.js";
56
65
  import "./chunk-AGGIDPCZ.js";
57
- import "./chunk-PVZT43MU.js";
58
- import "./chunk-BFDFRLLQ.js";
66
+ import "./chunk-WW2USJ3C.js";
59
67
  import "./chunk-5RGU3J7P.js";
60
- import "./chunk-6YTOJY35.js";
61
- import "./chunk-M76ECQRD.js";
68
+ import "./chunk-VBG7GWWR.js";
69
+ import "./chunk-ZRAU6T47.js";
70
+ import "./chunk-4LCOCOR5.js";
62
71
  import "./chunk-YDH3FDFQ.js";
63
- import "./chunk-2F7RJC6L.js";
64
- import "./chunk-GLKOYSRU.js";
65
- import "./chunk-JRQFUXY7.js";
66
- import "./chunk-DHDMC6FO.js";
67
- import "./chunk-Q554LLSI.js";
68
- import "./chunk-KHCLMKZZ.js";
72
+ import "./chunk-QFEW2ULV.js";
73
+ import "./chunk-V2UPLOXT.js";
74
+ import "./chunk-2OMUAIKR.js";
75
+ import "./chunk-UAD2WT54.js";
76
+ import "./chunk-RNNWTMKT.js";
77
+ import "./chunk-3PVYUPXK.js";
78
+ import "./chunk-GHZ2H2HJ.js";
79
+ import "./chunk-AIZE5TDM.js";
80
+ import "./chunk-4YRTZIVN.js";
81
+ import "./chunk-UEILX4EV.js";
82
+ import "./chunk-IJERIUXS.js";
83
+ import "./chunk-6Q7UTJKR.js";
84
+ import "./chunk-QQ56R7KS.js";
85
+ import "./chunk-OW765XBU.js";
86
+ import "./chunk-SEJ5OS6F.js";
87
+ import "./chunk-D2MDMY2M.js";
88
+ import "./chunk-RRQQAG7W.js";
89
+ import "./chunk-3CZM6HGQ.js";
90
+ import "./chunk-IXH3HKY2.js";
91
+ import "./chunk-XETG4RIX.js";
92
+ import "./chunk-OKARGYFT.js";
69
93
  import {
94
+ NEW_TEXT_FIELD_ALIASES,
70
95
  PATH_FIELD_ALIASES,
71
- createLocalWorkspaceToolExecutors
72
- } from "./chunk-62CATUYY.js";
73
- import "./chunk-GO3Z72MT.js";
74
- import "./chunk-Q5FJJ6XI.js";
96
+ createLocalWorkspaceToolExecutors,
97
+ resolveRequestedWorkspacePath
98
+ } from "./chunk-NLEJWKF5.js";
99
+ import "./chunk-3SK3J3IF.js";
75
100
  import "./chunk-ZNFJWEN4.js";
76
- import "./chunk-4MK3I7Y4.js";
77
- import "./chunk-CQ3WA2NE.js";
101
+ import "./chunk-IFALJPEX.js";
102
+ import "./chunk-GMZLP5DV.js";
103
+ import "./chunk-CHOZJMJS.js";
104
+ import "./chunk-G23MQWLJ.js";
78
105
  import "./chunk-5ZUL4CUO.js";
79
- import "./chunk-N7J63Q6C.js";
80
- import "./chunk-MRIHM22T.js";
81
- import "./chunk-PUOC4YRO.js";
82
- import "./chunk-IIVGDG4I.js";
83
- import "./chunk-FDTR4QJ6.js";
84
- import "./chunk-UZGQNTVW.js";
85
- import "./chunk-6OZ36FXI.js";
106
+ import "./chunk-JJM3WS6W.js";
107
+ import "./chunk-G6OOUQWJ.js";
108
+ import "./chunk-56GBUMO5.js";
109
+ import "./chunk-WJZOQR2J.js";
110
+ import "./chunk-LAVSW2C2.js";
111
+ import "./chunk-SJ3QFSQS.js";
112
+ import "./chunk-QLQ573SU.js";
113
+ import "./chunk-3MZAGMYY.js";
86
114
  import "./chunk-2MBTWINN.js";
87
- import "./chunk-HKNXJGEC.js";
88
- import "./chunk-P5EVSOPA.js";
89
- import "./chunk-PSCNXBYA.js";
90
- import "./chunk-GQBOR3G6.js";
91
- import "./chunk-BYXBJQAS.js";
92
- import "./chunk-OIVSQH2O.js";
115
+ import "./chunk-VSPO4S33.js";
116
+ import "./chunk-FWY6BHIJ.js";
117
+ import "./chunk-5MMAK75Q.js";
93
118
  import "./chunk-DWLEOOGR.js";
94
- import "./chunk-HVURBGF3.js";
95
- import "./chunk-ONXOABJR.js";
119
+ import "./chunk-PWRS2SU2.js";
120
+ import "./chunk-KX6YBIHG.js";
121
+ import "./chunk-7DPNBQSV.js";
122
+ import "./chunk-IHPDK6UD.js";
123
+ import "./chunk-LWLNLZC5.js";
124
+ import "./chunk-3LI5UCTU.js";
125
+ import "./chunk-M2EJHDJP.js";
126
+ import "./chunk-RLRYVSCD.js";
127
+ import "./chunk-I42VC5KR.js";
128
+ import "./chunk-U6VC4MU4.js";
129
+ import "./chunk-MW533QT3.js";
130
+ import "./chunk-TSBCYK5F.js";
131
+ import "./chunk-WWC7I6TA.js";
132
+ import "./chunk-MHD5JBSS.js";
133
+ import "./chunk-PJNFNEJE.js";
134
+ import "./chunk-PSCNXBYA.js";
135
+ import "./chunk-KY6GPQ7O.js";
136
+ import "./chunk-NN4UUYGB.js";
137
+ import "./chunk-CGEK73JN.js";
96
138
  import "./chunk-W7XHHYWM.js";
139
+ import {
140
+ isRecord
141
+ } from "./chunk-KUG52IAP.js";
142
+ import {
143
+ asTrimmedString
144
+ } from "./chunk-3EUW3WEO.js";
97
145
  import {
98
146
  toErrorMessage
99
147
  } from "./chunk-HNMXYYJR.js";
100
- import "./chunk-DVINR3PL.js";
101
- import "./chunk-2GRGFCF6.js";
102
- import "./chunk-O6OSWFZQ.js";
103
- import "./chunk-7S4YWN7P.js";
104
- import "./chunk-X7HHHIOZ.js";
148
+ import "./chunk-2C47W7IJ.js";
149
+ import "./chunk-GLKOYSRU.js";
150
+ import "./chunk-EYLGAEB4.js";
105
151
  import {
106
152
  isCompiledBinary
107
153
  } from "./chunk-A7GB5UGH.js";
108
154
  import {
109
155
  DEFAULT_NOLO_SERVER_URL
110
156
  } from "./chunk-OLZBQWZU.js";
111
- import "./chunk-ACTMNVHM.js";
112
- import "./chunk-Q67DOFOO.js";
113
- import "./chunk-PBA4UJBK.js";
114
- import "./chunk-GP5LKBUZ.js";
115
- import {
116
- parsePositiveFiniteNumberOrFallback
117
- } from "./chunk-Y5GCAMGP.js";
118
- import "./chunk-QDSINZM3.js";
119
- import "./chunk-KX6YBIHG.js";
120
- import "./chunk-AHAHBQMU.js";
121
- import "./chunk-UAD2WT54.js";
122
- import "./chunk-VRTTFDBM.js";
123
- import "./chunk-VMFTFOWF.js";
124
- import "./chunk-WWC7I6TA.js";
125
- import "./chunk-ABQYVJBJ.js";
126
- import "./chunk-QSJ3HFEF.js";
127
- import "./chunk-WV42OMV7.js";
128
- import "./chunk-BNGW5ASC.js";
129
- import "./chunk-M2EJHDJP.js";
130
- import "./chunk-UKWGR5SS.js";
131
- import "./chunk-QOKAKDPE.js";
132
- import "./chunk-OW765XBU.js";
133
- import "./chunk-SEJ5OS6F.js";
134
- import "./chunk-GBRG75BQ.js";
135
- import {
136
- isRecord
137
- } from "./chunk-KUG52IAP.js";
138
- import {
139
- asTrimmedString
140
- } from "./chunk-3EUW3WEO.js";
141
- import "./chunk-U6VC4MU4.js";
142
157
  import "./chunk-LCBAMY2M.js";
143
158
  import "./chunk-4SN6J65J.js";
144
159
  import {
145
160
  normalizeServerOrigin
146
161
  } from "./chunk-CF7PE763.js";
147
162
  import "./chunk-G3SUCT4W.js";
163
+ import "./chunk-TNIX77YM.js";
164
+ import "./chunk-Y6ROFCZO.js";
165
+ import "./chunk-P3SFAHIL.js";
166
+ import "./chunk-SZC4REES.js";
167
+ import "./chunk-QSJ3HFEF.js";
168
+ import "./chunk-ZWQUWF6W.js";
169
+ import "./chunk-KHCLMKZZ.js";
170
+ import "./chunk-VEA7H5FG.js";
171
+ import "./chunk-4VJAC32I.js";
148
172
  import "./chunk-4VNS5WPM.js";
149
173
 
150
174
  // packages/connector-experimental/heartbeatLoop.ts
@@ -366,16 +390,104 @@ async function runMachineWatchCommand(deps) {
366
390
  }
367
391
 
368
392
  // packages/cli/machineToolInvokeDispatch.ts
369
- import { lstat, realpath } from "node:fs/promises";
370
- import { dirname as dirname2, isAbsolute as isAbsolute2, relative as relative2, resolve as resolve2, sep } from "node:path";
371
- var MACHINE_TOOL_INVOKE_V1_TOOL_NAMES = ["readFile", "globFiles"];
393
+ import { appendFile, lstat, mkdir, realpath, stat } from "node:fs/promises";
394
+ import { homedir as homedir2 } from "node:os";
395
+ import { dirname as dirname2, isAbsolute as isAbsolute2, join as join2, relative as relative2, resolve as resolve2, sep } from "node:path";
396
+
397
+ // packages/agent-runtime/machineToolGrants.ts
398
+ function isRecord2(value) {
399
+ return typeof value === "object" && value !== null && !Array.isArray(value);
400
+ }
401
+ function normalizeMachineToolGrants(raw) {
402
+ if (!isRecord2(raw)) return void 0;
403
+ const grants = {};
404
+ for (const [rawKey, rawEntry] of Object.entries(raw)) {
405
+ const agentKey = rawKey.trim();
406
+ if (!agentKey) continue;
407
+ if (!isRecord2(rawEntry)) continue;
408
+ if (typeof rawEntry.write !== "boolean") continue;
409
+ grants[agentKey] = { write: rawEntry.write };
410
+ }
411
+ return Object.keys(grants).length > 0 ? grants : void 0;
412
+ }
413
+
414
+ // packages/cli/machineToolInvokeDispatch.ts
415
+ var MACHINE_TOOL_INVOKE_V1_READ_ONLY_TOOL_NAMES = ["readFile", "globFiles"];
416
+ var READ_ONLY_TOOL_NAME_SET = new Set(MACHINE_TOOL_INVOKE_V1_READ_ONLY_TOOL_NAMES);
417
+ var MACHINE_TOOL_INVOKE_V1_TOOL_NAMES = [
418
+ "readFile",
419
+ "globFiles",
420
+ "writeFile",
421
+ "editFile"
422
+ ];
372
423
  var V1_ALLOWED_TOOL_NAMES = new Set(MACHINE_TOOL_INVOKE_V1_TOOL_NAMES);
373
424
  var DEFAULT_TOOL_INVOKE_TIMEOUT_MS = 3e4;
374
425
  var TOOL_RESULT_MESSAGE_MAX_CHARS = 1e6;
375
- var TOOL_NOT_ALLOWED_MESSAGE = "tool not allowed in v1 (read-only)";
426
+ var TOOL_NOT_ALLOWED_MESSAGE = "tool not allowed in v1 (allowlisted read/write file tools only)";
376
427
  var TOOL_PAYLOAD_MALFORMED_MESSAGE = "malformed tool.invoke payload (payload object required)";
377
428
  var TOOL_ARGS_MALFORMED_MESSAGE = "malformed tool.invoke args (args object required)";
429
+ var GRANT_DIMENSION_BY_TOOL = {
430
+ writeFile: "write",
431
+ editFile: "write"
432
+ };
433
+ var MACHINE_TOOL_INVOKE_V1_WRITE_TOOL_NAMES = Object.keys(GRANT_DIMENSION_BY_TOOL);
434
+ function grantDimensionForTool(toolName) {
435
+ return Object.hasOwn(GRANT_DIMENSION_BY_TOOL, toolName) ? GRANT_DIMENSION_BY_TOOL[toolName] : void 0;
436
+ }
437
+ var AUDIT_TARGET_MAX_CHARS = 200;
438
+ function machineToolNotGrantedMessage(toolName, agentKey) {
439
+ const dimension = grantDimensionForTool(toolName);
440
+ if (!dimension) {
441
+ return `tool not granted on this machine: ${toolName} is not a registered machine tool (no grant dimension) (NOLO_MACHINE_TOOL_GRANTS)`;
442
+ }
443
+ return agentKey ? `tool not granted on this machine: ${toolName} requires ${dimension} grant for agent ${agentKey} (NOLO_MACHINE_TOOL_GRANTS)` : `tool not granted on this machine: ${toolName} requires an agentKey with ${dimension} grant (NOLO_MACHINE_TOOL_GRANTS)`;
444
+ }
445
+ function isMachineToolGranted(grants, toolName, agentKey) {
446
+ if (READ_ONLY_TOOL_NAME_SET.has(toolName)) return true;
447
+ const dimension = grantDimensionForTool(toolName);
448
+ if (!dimension) return false;
449
+ const normalizedAgentKey = typeof agentKey === "string" ? agentKey.trim() : "";
450
+ if (!normalizedAgentKey || !grants) return false;
451
+ if (!Object.prototype.hasOwnProperty.call(grants, normalizedAgentKey)) return false;
452
+ const entry = grants[normalizedAgentKey];
453
+ if (!isRecord3(entry)) return false;
454
+ return Object.hasOwn(entry, dimension) && entry[dimension] === true;
455
+ }
456
+ function resolveMachineToolAuditLogPath() {
457
+ const noloHome = process.env.NOLO_HOME?.trim();
458
+ const base = noloHome ? noloHome : join2(homedir2(), ".nolo");
459
+ return join2(base, "logs", "machine-tool-audit.jsonl");
460
+ }
461
+ function auditTargetFor(executorArgs) {
462
+ const target = extractMachineToolRequestPath(executorArgs) ?? "";
463
+ return target.length > AUDIT_TARGET_MAX_CHARS ? target.slice(0, AUDIT_TARGET_MAX_CHARS) : target;
464
+ }
465
+ function machineToolOutcomeFailed(outcome) {
466
+ const metadata = outcome.metadata;
467
+ if (!isRecord3(metadata)) return false;
468
+ if (metadata.timedOut === true) return true;
469
+ if (metadata.aborted === true) return true;
470
+ const exitCode = metadata.exitCode;
471
+ return typeof exitCode === "number" && exitCode !== 0;
472
+ }
473
+ async function appendMachineToolAudit(entry) {
474
+ try {
475
+ const logPath = resolveMachineToolAuditLogPath();
476
+ await mkdir(dirname2(logPath), { recursive: true });
477
+ await appendFile(
478
+ logPath,
479
+ `${JSON.stringify({ ts: (/* @__PURE__ */ new Date()).toISOString(), agentKey: entry.agentKey ?? null, tool: entry.tool, target: entry.target, ok: entry.ok })}
480
+ `,
481
+ "utf8"
482
+ );
483
+ } catch (error) {
484
+ console.warn(`[nolo] machine tool audit write failed: ${toMessage(error)}`);
485
+ }
486
+ }
378
487
  function createMachineToolInvokeHandlers(args) {
488
+ const grants = normalizeMachineToolGrants(
489
+ args.grants ?? readMachineToolGrants(args.env ?? process.env)
490
+ );
379
491
  const executors = (args.createToolExecutors ?? createLocalWorkspaceToolExecutors)({
380
492
  workspaceRoot: args.workspaceRoot,
381
493
  // v1 硬 containment:localWorkspaceTools 在无确认回调时对工作区外路径
@@ -391,7 +503,7 @@ function createMachineToolInvokeHandlers(args) {
391
503
  readFileNoLedger: true
392
504
  });
393
505
  const executorMap = executors;
394
- const invokeWithTimeout = async (toolName, executorArgs, timeoutMs, workspaceRoot) => {
506
+ const invokeWithTimeout = async (toolName, executorArgs, timeoutMs, workspaceRoot, agentKey) => {
395
507
  const call = {
396
508
  id: "machine-tool-invoke",
397
509
  name: toolName,
@@ -405,7 +517,11 @@ function createMachineToolInvokeHandlers(args) {
405
517
  });
406
518
  if (preflightError) return { error: preflightError };
407
519
  }
520
+ const deleteGuardError = await machinePureDeleteGuard(toolName, executorArgs, workspaceRoot);
521
+ if (deleteGuardError) return { error: deleteGuardError };
408
522
  let timer = null;
523
+ const audited = grantDimensionForTool(toolName) !== void 0;
524
+ let auditOk = false;
409
525
  try {
410
526
  const outcome = await Promise.race([
411
527
  executorMap[toolName](call),
@@ -414,6 +530,7 @@ function createMachineToolInvokeHandlers(args) {
414
530
  })
415
531
  ]);
416
532
  const content = typeof outcome?.content === "string" ? outcome.content : "";
533
+ auditOk = !machineToolOutcomeFailed(outcome);
417
534
  if (content.length > TOOL_RESULT_MESSAGE_MAX_CHARS) {
418
535
  return {
419
536
  result: content.slice(0, TOOL_RESULT_MESSAGE_MAX_CHARS) + `
@@ -426,14 +543,25 @@ function createMachineToolInvokeHandlers(args) {
426
543
  return { error: toMessage(error) };
427
544
  } finally {
428
545
  if (timer) clearTimeout(timer);
546
+ if (audited) {
547
+ await appendMachineToolAudit({
548
+ agentKey,
549
+ tool: toolName,
550
+ target: auditTargetFor(executorArgs),
551
+ ok: auditOk
552
+ });
553
+ }
429
554
  }
430
555
  };
431
- const invokeMachineTool = async (requestId, toolName, toolArgs, timeoutMs) => {
556
+ const invokeMachineTool = async (requestId, toolName, toolArgs, timeoutMs, agentKey) => {
432
557
  if (!V1_ALLOWED_TOOL_NAMES.has(toolName)) {
433
558
  return { error: TOOL_NOT_ALLOWED_MESSAGE };
434
559
  }
560
+ if (!isMachineToolGranted(grants, toolName, agentKey)) {
561
+ return { error: machineToolNotGrantedMessage(toolName, agentKey) };
562
+ }
435
563
  const resolvedTimeout = resolveTimeoutMs(timeoutMs);
436
- return invokeWithTimeout(toolName, toolArgs, resolvedTimeout, args.workspaceRoot);
564
+ return invokeWithTimeout(toolName, toolArgs, resolvedTimeout, args.workspaceRoot, agentKey);
437
565
  };
438
566
  return {
439
567
  handleToolInvokeMessage: async (message, send) => {
@@ -446,7 +574,7 @@ function createMachineToolInvokeHandlers(args) {
446
574
  );
447
575
  return JSON.stringify({ type: "tool.result", requestId, error: TOOL_PAYLOAD_MALFORMED_MESSAGE });
448
576
  }
449
- if (!isRecord2(payload.args)) {
577
+ if (!isRecord3(payload.args)) {
450
578
  send(
451
579
  JSON.stringify({ type: "tool.result", requestId, error: TOOL_ARGS_MALFORMED_MESSAGE })
452
580
  );
@@ -456,7 +584,8 @@ function createMachineToolInvokeHandlers(args) {
456
584
  requestId,
457
585
  payload.tool,
458
586
  payload.args,
459
- payload.timeoutMs
587
+ payload.timeoutMs,
588
+ payload.agentKey
460
589
  );
461
590
  send(
462
591
  JSON.stringify(
@@ -485,7 +614,7 @@ function isLexicallyInsideRoot(root, targetPath) {
485
614
  }
486
615
  async function machinePathPreflight(args) {
487
616
  const workspaceRoot = resolve2(args.workspaceRoot);
488
- const lexicalPath = resolve2(workspaceRoot, args.request);
617
+ const lexicalPath = resolveRequestedWorkspacePath(workspaceRoot, args.request);
489
618
  if (!isLexicallyInsideRoot(workspaceRoot, lexicalPath)) {
490
619
  return `path outside workspace root: ${args.request}`;
491
620
  }
@@ -494,11 +623,19 @@ async function machinePathPreflight(args) {
494
623
  while (true) {
495
624
  const stats = await lstat(current).catch(() => void 0);
496
625
  if (!stats) {
497
- return null;
626
+ const parent = resolve2(current, "..");
627
+ if (parent === current) return null;
628
+ return await ancestorContainmentPreflight({
629
+ workspaceRoot,
630
+ ancestor: parent,
631
+ request: args.request
632
+ });
498
633
  }
499
634
  if (!stats.isSymbolicLink()) break;
500
635
  const target = await realpath(current).catch(() => void 0);
501
- if (!target) return null;
636
+ if (!target) {
637
+ return `path outside workspace root after symlink resolution: ${args.request}`;
638
+ }
502
639
  symlinks.push({ link: current, target });
503
640
  current = resolve2(current, "..");
504
641
  if (current === dirname2(current)) break;
@@ -514,6 +651,76 @@ async function machinePathPreflight(args) {
514
651
  }
515
652
  return null;
516
653
  }
654
+ async function ancestorContainmentPreflight(args) {
655
+ const workspaceRoot = resolve2(args.workspaceRoot);
656
+ let existing = args.ancestor;
657
+ while (true) {
658
+ const stats = await lstat(existing).catch(() => void 0);
659
+ if (stats) break;
660
+ const parent = resolve2(existing, "..");
661
+ if (parent === existing) return null;
662
+ existing = parent;
663
+ }
664
+ try {
665
+ const [realExisting, realRoot] = await Promise.all([realpath(existing), realpath(workspaceRoot)]);
666
+ if (!isLexicallyInsideRoot(realRoot, realExisting)) {
667
+ return `path outside workspace root after symlink resolution: ${args.request}`;
668
+ }
669
+ } catch {
670
+ return `path outside workspace root after symlink resolution: ${args.request}`;
671
+ }
672
+ return null;
673
+ }
674
+ var WRITEFILE_DELETE_GUARD_MESSAGE = "writeFile blocked: refusing to overwrite an existing non-empty file with empty content (data-deletion guard). Use editFile with the exact oldText to remove specific text, or write the intended content explicitly.";
675
+ var WRITEFILE_DIRECTORY_TARGET_MESSAGE = "writeFile blocked: target path is an existing directory, not a file (refusing to write; nothing was modified).";
676
+ var EDITFILE_DELETE_GUARD_MESSAGE = "editFile blocked: refusing to replace matched text with an empty newText (data-deletion guard). Provide the intended replacement text.";
677
+ function extractMachineToolStringField(executorArgs, aliases) {
678
+ const rawArgs = typeof executorArgs === "string" ? executorArgs : executorArgs !== void 0 && executorArgs !== null ? JSON.stringify(executorArgs) : null;
679
+ if (rawArgs === null) return void 0;
680
+ let parsed;
681
+ try {
682
+ parsed = JSON.parse(rawArgs);
683
+ } catch {
684
+ return void 0;
685
+ }
686
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return void 0;
687
+ for (const key of aliases) {
688
+ const value = parsed[key];
689
+ if (typeof value === "string") return value;
690
+ }
691
+ return void 0;
692
+ }
693
+ function writeFileUninspectableTargetMessage(code) {
694
+ return `writeFile blocked: target cannot be inspected (${code}); refusing to write (fail closed \u2014 only a missing target counts as a new file).`;
695
+ }
696
+ function fsErrorCode(error) {
697
+ if (!error || typeof error !== "object") return void 0;
698
+ const code = error.code;
699
+ return typeof code === "string" ? code : void 0;
700
+ }
701
+ async function machinePureDeleteGuard(toolName, executorArgs, workspaceRoot) {
702
+ if (toolName === "writeFile") {
703
+ const content = extractMachineToolStringField(executorArgs, ["content"]);
704
+ if (content === void 0 || content.trim() !== "") return null;
705
+ const requestPath = extractMachineToolRequestPath(executorArgs);
706
+ if (requestPath === null) return null;
707
+ let stats;
708
+ try {
709
+ stats = await stat(resolveRequestedWorkspacePath(workspaceRoot, requestPath));
710
+ } catch (error) {
711
+ if (fsErrorCode(error) === "ENOENT") return null;
712
+ return writeFileUninspectableTargetMessage(fsErrorCode(error) ?? "unknown");
713
+ }
714
+ if (stats.isDirectory()) return WRITEFILE_DIRECTORY_TARGET_MESSAGE;
715
+ return stats.size > 0 ? WRITEFILE_DELETE_GUARD_MESSAGE : null;
716
+ }
717
+ if (toolName === "editFile") {
718
+ const newText = extractMachineToolStringField(executorArgs, NEW_TEXT_FIELD_ALIASES);
719
+ if (newText !== void 0 && newText.trim() === "") return EDITFILE_DELETE_GUARD_MESSAGE;
720
+ return null;
721
+ }
722
+ return null;
723
+ }
517
724
  function extractMachineToolRequestPath(executorArgs) {
518
725
  const rawArgs = typeof executorArgs === "string" ? executorArgs : executorArgs !== void 0 && executorArgs !== null ? JSON.stringify(executorArgs) : null;
519
726
  if (rawArgs === null) return null;
@@ -537,9 +744,9 @@ function parseToolInvokeFrame(message) {
537
744
  } catch {
538
745
  return null;
539
746
  }
540
- if (!isRecord2(parsed) || parsed.type !== "tool.invoke") return null;
747
+ if (!isRecord3(parsed) || parsed.type !== "tool.invoke") return null;
541
748
  if (typeof parsed.requestId !== "string" || parsed.requestId.length === 0) return null;
542
- if (!isRecord2(parsed.payload)) {
749
+ if (!isRecord3(parsed.payload)) {
543
750
  return {
544
751
  requestId: parsed.requestId,
545
752
  payload: { tool: "", args: {}, timeoutMs: void 0 },
@@ -552,23 +759,46 @@ function parseToolInvokeFrame(message) {
552
759
  payload: {
553
760
  tool: typeof payload.tool === "string" ? payload.tool : "",
554
761
  args: payload.args,
555
- timeoutMs: payload.timeoutMs
762
+ timeoutMs: payload.timeoutMs,
763
+ agentKey: typeof payload.agentKey === "string" && payload.agentKey.length > 0 ? payload.agentKey : void 0
556
764
  }
557
765
  };
558
766
  }
559
- function isRecord2(value) {
767
+ function isRecord3(value) {
560
768
  return typeof value === "object" && value !== null && !Array.isArray(value);
561
769
  }
562
770
 
563
771
  // packages/cli/machineWsSession.ts
564
772
  var CONNECTOR_WS_KEEPALIVE_MS = 25e3;
773
+ var DEFAULT_CONNECTOR_TEARDOWN_TIMEOUT_MS = 2e3;
774
+ function resolveTeardownTimeoutMs(env) {
775
+ return clampConnectorTimerDelayMs(
776
+ parsePositiveFiniteNumberOrFallback(
777
+ env.NOLO_CONNECT_TEARDOWN_TIMEOUT_MS,
778
+ DEFAULT_CONNECTOR_TEARDOWN_TIMEOUT_MS
779
+ )
780
+ );
781
+ }
782
+ async function settleWithinTimeout(promises, timeoutMs) {
783
+ let timer = null;
784
+ try {
785
+ const outcome = await Promise.race([
786
+ Promise.allSettled(promises).then(() => "settled"),
787
+ new Promise((resolve3) => {
788
+ timer = setTimeout(() => resolve3("timeout"), timeoutMs);
789
+ })
790
+ ]);
791
+ return { timedOut: outcome === "timeout" };
792
+ } finally {
793
+ if (timer) clearTimeout(timer);
794
+ }
795
+ }
565
796
  function buildConnectorKeepaliveMessage() {
566
797
  return JSON.stringify({ type: "connector.keepalive", sentAt: Date.now() });
567
798
  }
568
799
  function resolveHeartbeatIntervalMs2(env) {
569
- return parsePositiveFiniteNumberOrFallback(
570
- env.NOLO_CONNECT_HEARTBEAT_MS,
571
- 3e4
800
+ return clampConnectorTimerDelayMs(
801
+ parsePositiveFiniteNumberOrFallback(env.NOLO_CONNECT_HEARTBEAT_MS, 3e4)
572
802
  );
573
803
  }
574
804
  async function defaultConnectWebSocket(url, options) {
@@ -599,6 +829,7 @@ async function defaultConnectWebSocket(url, options) {
599
829
  }
600
830
  };
601
831
  options.signal?.addEventListener("abort", handleAbort, { once: true });
832
+ options.teardownSignal?.addEventListener("abort", handleAbort, { once: true });
602
833
  ws.addEventListener(
603
834
  "open",
604
835
  () => {
@@ -608,8 +839,13 @@ async function defaultConnectWebSocket(url, options) {
608
839
  ws.send(buildConnectorKeepaliveMessage());
609
840
  } catch {
610
841
  clearKeepalive();
842
+ try {
843
+ ws.close();
844
+ } catch {
845
+ resolve3();
846
+ }
611
847
  }
612
- }, CONNECTOR_WS_KEEPALIVE_MS);
848
+ }, options.keepaliveMs ?? CONNECTOR_WS_KEEPALIVE_MS);
613
849
  },
614
850
  { once: true }
615
851
  );
@@ -643,8 +879,19 @@ async function defaultConnectWebSocket(url, options) {
643
879
  async function runMachineWsSession(options) {
644
880
  const sentMessages = [];
645
881
  const heartbeatAbort = new AbortController();
882
+ const teardownAbort = new AbortController();
883
+ const teardownTimeoutMs = resolveTeardownTimeoutMs(options.env);
646
884
  let heartbeatLoopPromise = null;
647
885
  let websocketPromise = null;
886
+ const settleTeardown = async () => {
887
+ const { timedOut } = await settleWithinTimeout(
888
+ [websocketPromise, heartbeatLoopPromise].filter(Boolean),
889
+ teardownTimeoutMs
890
+ );
891
+ if (timedOut) {
892
+ teardownAbort.abort();
893
+ }
894
+ };
648
895
  try {
649
896
  if (options.signal?.aborted) {
650
897
  return { exitCode: 0 };
@@ -668,11 +915,13 @@ async function runMachineWsSession(options) {
668
915
  serverUrl: options.serverUrl,
669
916
  machineId: options.machine.machineId,
670
917
  connectorSurface: "cli",
671
- headers: { Authorization: `Bearer ${options.authToken}` }
918
+ headers: { Authorization: `Bearer ${options.authToken}` },
919
+ probeTimeoutMs: resolveConnectorProbeTimeoutMs(options.env)
672
920
  });
673
921
  websocketPromise = options.connectWebSocket(wsTarget, {
674
922
  headers: { Authorization: `Bearer ${options.authToken}` },
675
923
  signal: options.signal,
924
+ teardownSignal: teardownAbort.signal,
676
925
  sentMessages,
677
926
  onMessage: (message) => options.onMessage(message, (response) => {
678
927
  sentMessages.push(response);
@@ -689,16 +938,14 @@ async function runMachineWsSession(options) {
689
938
  [websocketPromise, heartbeatMonitorPromise, abortPromise].filter(Boolean)
690
939
  );
691
940
  heartbeatAbort.abort();
692
- await Promise.allSettled([websocketPromise, heartbeatLoopPromise]);
941
+ await settleTeardown();
693
942
  if (raceResult === "aborted") {
694
943
  return { exitCode: 0 };
695
944
  }
696
945
  return { exitCode: 0 };
697
946
  } catch (error) {
698
947
  heartbeatAbort.abort();
699
- await Promise.allSettled(
700
- [websocketPromise, heartbeatLoopPromise].filter(Boolean)
701
- );
948
+ await settleTeardown();
702
949
  if (isConnectorWebSocketAuthError(error)) {
703
950
  options.output.write(
704
951
  `[nolo] Connector websocket auth failed: ${error.message}. Re-register this machine or update NOLO_MACHINE_API_KEY.
@@ -801,6 +1048,43 @@ async function handleMachineWsMessageDemux(message, send, handlers, runConnector
801
1048
  }
802
1049
  await runConnectorMessage();
803
1050
  }
1051
+ function readMachineToolGrants(env) {
1052
+ const raw = env.NOLO_MACHINE_TOOL_GRANTS?.trim();
1053
+ if (!raw) return void 0;
1054
+ let parsed;
1055
+ try {
1056
+ parsed = JSON.parse(raw);
1057
+ } catch (error) {
1058
+ warnMalformedMachineToolGrantsOnce(
1059
+ `json:${raw}`,
1060
+ `[nolo] NOLO_MACHINE_TOOL_GRANTS is not valid JSON, ignoring it: ${error instanceof Error ? error.message : String(error)}`
1061
+ );
1062
+ return void 0;
1063
+ }
1064
+ if (!isRecord(parsed)) {
1065
+ warnMalformedMachineToolGrantsOnce(
1066
+ `shape:${raw}`,
1067
+ "[nolo] NOLO_MACHINE_TOOL_GRANTS must be a JSON object, ignoring it"
1068
+ );
1069
+ return void 0;
1070
+ }
1071
+ return parsed;
1072
+ }
1073
+ var warnedMalformedMachineToolGrants = /* @__PURE__ */ new Set();
1074
+ function warnMalformedMachineToolGrantsOnce(dedupeKey, message) {
1075
+ if (warnedMalformedMachineToolGrants.has(dedupeKey)) return;
1076
+ warnedMalformedMachineToolGrants.add(dedupeKey);
1077
+ console.warn(message);
1078
+ }
1079
+ function __resetMalformedMachineToolGrantsWarningsForTests() {
1080
+ warnedMalformedMachineToolGrants.clear();
1081
+ }
1082
+ function appendToolGrantsToWsUrl(wsUrl, grants) {
1083
+ if (!grants) return wsUrl;
1084
+ const target = new URL(wsUrl);
1085
+ target.searchParams.set("toolGrants", JSON.stringify(grants));
1086
+ return target.toString();
1087
+ }
804
1088
  function resolveAuthToken2(env) {
805
1089
  return env.AUTH_TOKEN || env.AUTH || "";
806
1090
  }
@@ -849,11 +1133,60 @@ async function sleepWithAbort(ms, sleep, signal) {
849
1133
  ]);
850
1134
  }
851
1135
  function resolveConnectorReconnectDelayMs(env) {
852
- const raw = Number(env.NOLO_CONNECT_RECONNECT_MS ?? "");
853
- return Number.isFinite(raw) && raw >= 0 ? raw : 5e3;
1136
+ const rawValue = env.NOLO_CONNECT_RECONNECT_MS;
1137
+ if (rawValue === void 0 || rawValue.trim() === "") return 5e3;
1138
+ const raw = Number(rawValue);
1139
+ if (!Number.isFinite(raw) || raw < 0) return 5e3;
1140
+ return Math.min(raw, MAX_CONNECTOR_TIMER_DELAY_MS);
1141
+ }
1142
+ var DEFAULT_CONNECTOR_HEARTBEAT_TIMEOUT_MS = 1e4;
1143
+ function resolveConnectorHeartbeatTimeoutMs(env) {
1144
+ return clampConnectorTimerDelayMs(
1145
+ parsePositiveFiniteNumberOrFallback(
1146
+ env.NOLO_CONNECT_HEARTBEAT_TIMEOUT_MS,
1147
+ DEFAULT_CONNECTOR_HEARTBEAT_TIMEOUT_MS
1148
+ )
1149
+ );
1150
+ }
1151
+ async function postMachineHeartbeat(args) {
1152
+ const { fetchImpl, serverUrl, authToken, machine, timeoutMs } = args;
1153
+ const controller = new AbortController();
1154
+ const startedAt = Date.now();
1155
+ let timer = null;
1156
+ const timeoutPromise = new Promise((_resolve, reject) => {
1157
+ timer = setTimeout(() => {
1158
+ controller.abort();
1159
+ reject(
1160
+ new Error(
1161
+ `heartbeat timed out after ${Date.now() - startedAt}ms (NOLO_CONNECT_HEARTBEAT_TIMEOUT_MS=${timeoutMs})`
1162
+ )
1163
+ );
1164
+ }, timeoutMs);
1165
+ });
1166
+ try {
1167
+ const res = await Promise.race([
1168
+ fetchImpl(`${serverUrl}/api/machines/heartbeat`, {
1169
+ method: "POST",
1170
+ headers: {
1171
+ Authorization: `Bearer ${authToken}`,
1172
+ "Content-Type": "application/json"
1173
+ },
1174
+ body: JSON.stringify(machine),
1175
+ signal: controller.signal
1176
+ }),
1177
+ timeoutPromise
1178
+ ]);
1179
+ if (!res.ok) {
1180
+ const text = await res.text().catch(() => "");
1181
+ throw new Error(`HTTP ${res.status}
1182
+ ${text}`);
1183
+ }
1184
+ } finally {
1185
+ if (timer) clearTimeout(timer);
1186
+ }
854
1187
  }
855
1188
  async function defaultExecuteCli(provider, prompt, options) {
856
- const { executeCli } = await import("./cliExecutor-HG3S345O.js");
1189
+ const { executeCli } = await import("./cliExecutor-AWYR3T33.js");
857
1190
  return executeCli(provider, prompt, options);
858
1191
  }
859
1192
  function detectLaunchableMachineInfo() {
@@ -923,21 +1256,13 @@ async function runMachineConnectCommand(args, deps = {}) {
923
1256
  });
924
1257
  }
925
1258
  const machine = (deps.machineInfo ?? detectLaunchableMachineInfo)();
926
- const sendHeartbeat = async () => {
927
- const res = await fetchImpl(`${serverUrl}/api/machines/heartbeat`, {
928
- method: "POST",
929
- headers: {
930
- Authorization: `Bearer ${authToken}`,
931
- "Content-Type": "application/json"
932
- },
933
- body: JSON.stringify(machine)
934
- });
935
- if (!res.ok) {
936
- const text = await res.text().catch(() => "");
937
- throw new Error(`HTTP ${res.status}
938
- ${text}`);
939
- }
940
- };
1259
+ const sendHeartbeat = () => postMachineHeartbeat({
1260
+ fetchImpl,
1261
+ serverUrl,
1262
+ authToken,
1263
+ machine,
1264
+ timeoutMs: resolveConnectorHeartbeatTimeoutMs(env)
1265
+ });
941
1266
  if (hasFlag(args, "--ws")) {
942
1267
  const validateWorkspaceLinks = deps.validateWorkspaceLinks ?? (() => []);
943
1268
  if (!await checkConnectorWorkspaceLinks(process.cwd(), output, validateWorkspaceLinks)) {
@@ -946,8 +1271,15 @@ ${text}`);
946
1271
  const maxAttempts = deps.maxConnectorAttempts ?? Infinity;
947
1272
  const sleep = deps.sleep ?? defaultSleep2;
948
1273
  const reconnectDelayMs = resolveConnectorReconnectDelayMs(env);
1274
+ const toolGrants = readMachineToolGrants(env);
949
1275
  const toolInvokeHandlers = createMachineToolInvokeHandlers({
950
- workspaceRoot: process.cwd()
1276
+ workspaceRoot: process.cwd(),
1277
+ // M2 修复:机器侧授权复核与握手上报共用同一来源——本次 `deps.env ??
1278
+ // process.env`。grants 快照与 WS URL 上报的那份逐字节相同;未配置时也
1279
+ // 显式传 env,工厂不再回落到 process.env(调用方经 deps.env 注入环境时
1280
+ // 两端曾不一致)。
1281
+ env,
1282
+ ...toolGrants ? { grants: toolGrants } : {}
951
1283
  });
952
1284
  for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
953
1285
  if (deps.signal?.aborted) {
@@ -964,10 +1296,13 @@ ${text}`);
964
1296
  connectWebSocket: deps.connectWebSocket ?? defaultConnectWebSocket,
965
1297
  serverUrl,
966
1298
  authToken,
967
- resolveConnectorWebSocketTarget: (options) => resolveConnectorWebSocketTarget({
968
- ...options,
969
- fetchImpl
970
- }),
1299
+ resolveConnectorWebSocketTarget: async (options) => appendToolGrantsToWsUrl(
1300
+ await resolveConnectorWebSocketTarget({
1301
+ ...options,
1302
+ fetchImpl
1303
+ }),
1304
+ toolGrants
1305
+ ),
971
1306
  onMessage: (message, send) => handleMachineWsMessageDemux(
972
1307
  message,
973
1308
  send,
@@ -997,7 +1332,10 @@ ${text}`);
997
1332
  return 0;
998
1333
  }
999
1334
  if (attempt >= maxAttempts) return exitCode;
1000
- const retryDelayMs = sessionResult.retryAfterMs ?? reconnectDelayMs;
1335
+ const retryDelayMs = Math.min(
1336
+ sessionResult.retryAfterMs ?? reconnectDelayMs,
1337
+ MAX_CONNECTOR_TIMER_DELAY_MS
1338
+ );
1001
1339
  const reconnectContext = sessionResult.reconnectReason === CORE_DRAIN_REASON ? " during core draining" : "";
1002
1340
  output.write(
1003
1341
  `[nolo] Connector websocket disconnected${reconnectContext}. Reconnecting in ${retryDelayMs}ms.
@@ -1023,7 +1361,11 @@ ${text}`);
1023
1361
  });
1024
1362
  }
1025
1363
  export {
1364
+ __resetMalformedMachineToolGrantsWarningsForTests,
1026
1365
  formatMachineStatus,
1366
+ postMachineHeartbeat,
1367
+ readMachineToolGrants,
1368
+ resolveConnectorHeartbeatTimeoutMs,
1027
1369
  runMachineConnectCommand,
1028
1370
  runMachineStatusCommand
1029
1371
  };