nolo-cli 0.54.0-alpha.2 → 0.61.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 (172) hide show
  1. package/README.md +3 -3
  2. package/{_executeModel-ANY4SIAS.js → _executeModel-CKT6RGTL.js} +58 -49
  3. package/{action-Q4W5JPI5.js → action-76JX3JX3.js} +9 -8
  4. package/{addContentAction-O25HFR37.js → addContentAction-V3NAZRTJ.js} +9 -7
  5. package/{addDialogAgentAction-GH7AUPPB.js → addDialogAgentAction-RZOAF46K.js} +11 -9
  6. package/{agentDeleteCommand-JWIKNWWI.js → agentDeleteCommand-VN7NPXQ4.js} +37 -32
  7. package/{agentEmailCommands-PL22BEU5.js → agentEmailCommands-F2TNAV4A.js} +73 -65
  8. package/{agentGrantCommands-2LEZDADN.js → agentGrantCommands-R3VQEZJR.js} +1 -1
  9. package/{agentListCommands-6NR7AQEK.js → agentListCommands-OSM2ANI3.js} +78 -39
  10. package/{agentMachineCommands-TASPU6OA.js → agentMachineCommands-MTPWYVRV.js} +38 -33
  11. package/{agentPullCommand-M552CYSI.js → agentPullCommand-N7L2CT7L.js} +2 -2
  12. package/agentRecordCommands-VWAWTVVC.js +122 -0
  13. package/agentRunCommand-PLZOBNVK.js +149 -0
  14. package/{agentRunControl-4GHHSXFZ.js → agentRunControl-WECMOO6O.js} +13 -6
  15. package/{agentRuntimeLocal-PCJJ56J2.js → agentRuntimeLocal-XCJLRWQE.js} +35 -28
  16. package/{agentSlice-KYLDUSNN.js → agentSlice-F6DOP4IW.js} +10 -9
  17. package/{appDeleteCommands-WLHMJAVT.js → appDeleteCommands-3BCFTRFJ.js} +37 -32
  18. package/{appDeployCommands-CKON7N2E.js → appDeployCommands-B4GMHCYA.js} +37 -32
  19. package/{appDeployStatusCommands-PXRLDASH.js → appDeployStatusCommands-4MN36WIG.js} +37 -32
  20. package/{appGetCommands-RAB5RM4M.js → appGetCommands-4GJIEUAX.js} +37 -32
  21. package/{appListCommands-GU57FB62.js → appListCommands-CHU53GSX.js} +37 -32
  22. package/{authCommand-QOPOEYEK.js → authCommand-WOTWLJNF.js} +38 -32
  23. package/{authCommands-SBQVTD6V.js → authCommands-ILTBI6JV.js} +8 -6
  24. package/{chatQueueReduxAdapter-5O2WLITN.js → chatQueueReduxAdapter-HNSQXNIR.js} +29 -24
  25. package/{chunk-WL3UOGYO.js → chunk-22BTGNSP.js} +151 -155
  26. package/{chunk-7CH6U3FL.js → chunk-2GRGFCF6.js} +2 -4
  27. package/{chunk-V4KZGLOI.js → chunk-2HPRMEEZ.js} +3059 -1079
  28. package/{chunk-UNZDCI3O.js → chunk-2KDR4CWE.js} +35 -4
  29. package/{chunk-VRZIH5JO.js → chunk-2PGGC63K.js} +1 -1
  30. package/{chunk-T27IEBNQ.js → chunk-2QDDKFG5.js} +74 -1
  31. package/{chunk-7K5VMB4Q.js → chunk-37QVS7BU.js} +21 -8
  32. package/{chunk-UITMHBVK.js → chunk-37XDGCY7.js} +1 -1
  33. package/chunk-3BLB7QKO.js +433 -0
  34. package/{chunk-NQ4N4IGO.js → chunk-3JQ2NRYU.js} +33 -10
  35. package/{chunk-UW4INMD2.js → chunk-3JWKQDA4.js} +2 -2
  36. package/{chunk-IKTHA3JH.js → chunk-3QGUVVX5.js} +2 -2
  37. package/{chunk-WHVQA7PJ.js → chunk-45YO6H7P.js} +97 -35
  38. package/chunk-4C4ST2YE.js +20015 -0
  39. package/{chunk-32I5RVMY.js → chunk-4NJEIGBQ.js} +5 -5
  40. package/{chunk-KUUTWU4I.js → chunk-5ZYA4JJ3.js} +90 -22
  41. package/chunk-6YTOJY35.js +352 -0
  42. package/{chunk-INXBNYCG.js → chunk-7A3RRUCQ.js} +155 -12
  43. package/{chunk-GV35EHNA.js → chunk-7O7KH4X5.js} +1262 -971
  44. package/{chunk-Y7LNKP32.js → chunk-7UF7CQ6B.js} +4 -6
  45. package/{chunk-2BWU4ORW.js → chunk-AQMVUA7N.js} +2 -1
  46. package/{chunk-LA4IDAK7.js → chunk-AVE2YR4F.js} +1056 -3591
  47. package/{chunk-TI5BCZCH.js → chunk-B7DXRX7F.js} +59 -121
  48. package/chunk-BFU6C242.js +66 -0
  49. package/{chunk-FA4SY4F5.js → chunk-BYEJ7K2Z.js} +1 -1
  50. package/chunk-BYXBJQAS.js +0 -0
  51. package/{chunk-IA3A5373.js → chunk-C3FZR5EC.js} +1 -1
  52. package/{chunk-IWUMSAQF.js → chunk-CJCJF5XB.js} +26 -3
  53. package/{chunk-PAHILFNT.js → chunk-CP7VIDZ7.js} +4 -4
  54. package/{chunk-OYNDYVSE.js → chunk-CTCW7U7N.js} +1 -1
  55. package/{chunk-BJLYCOZK.js → chunk-D5XKNNUV.js} +135 -795
  56. package/{chunk-AV6KQCM5.js → chunk-DNNSCSA2.js} +19 -14
  57. package/{chunk-3AOLVADY.js → chunk-DVINR3PL.js} +1 -1
  58. package/{chunk-NI2BS6UD.js → chunk-DWUCB2A3.js} +1 -1
  59. package/{chunk-AA564GBL.js → chunk-DZZL7UBV.js} +1 -1
  60. package/{chunk-6FGXGFAH.js → chunk-E6RGHPDR.js} +6 -4
  61. package/chunk-EDKF7RX4.js +30 -0
  62. package/{chunk-6SZ52ORL.js → chunk-ES6CVKVD.js} +24 -30
  63. package/{chunk-DQLYEGP7.js → chunk-FHAGENAS.js} +3 -4
  64. package/{chunk-56W233KG.js → chunk-FKFMIBTT.js} +5 -1
  65. package/{chunk-INZZJSQF.js → chunk-FZGV4FGK.js} +24 -12
  66. package/{chunk-D3JQPONH.js → chunk-GAL47RNP.js} +1 -1
  67. package/{chunk-6FQ2552G.js → chunk-HBPV76EK.js} +1085 -1150
  68. package/{chunk-LN3OQJGG.js → chunk-HLU5Q2GV.js} +4 -4
  69. package/{chunk-U2A47SVI.js → chunk-HQP7HJDL.js} +7 -7
  70. package/{chunk-H2G6JXTR.js → chunk-HQUORJTM.js} +1 -1
  71. package/{chunk-3Z3DXZBD.js → chunk-IYCUMIYS.js} +24 -20
  72. package/{chunk-7APQB6R6.js → chunk-JX5PJCWS.js} +8 -6
  73. package/{chunk-LYGNQHUW.js → chunk-JYYZCK2Z.js} +2 -4
  74. package/{chunk-PYKV6FSC.js → chunk-KWSQR2KK.js} +16 -31
  75. package/{chunk-VULELK4T.js → chunk-L7B47JXR.js} +37 -64
  76. package/{chunk-4NN3EK7H.js → chunk-LAFC3B2I.js} +1 -1
  77. package/{chunk-VRJUIUIY.js → chunk-LJKICKVC.js} +2 -2
  78. package/chunk-M3JEW6N6.js +193 -0
  79. package/chunk-MBOEV4L2.js +301 -0
  80. package/{chunk-QDHZCAH3.js → chunk-MMZ6ZTVO.js} +229 -74
  81. package/{chunk-JDSUTNYY.js → chunk-MP64VFGD.js} +2 -2
  82. package/{chunk-U5Z7LFZF.js → chunk-MXUDQZXQ.js} +47 -8
  83. package/chunk-N4G4PKQ6.js +23 -0
  84. package/{chunk-SVEUG45B.js → chunk-NHRQCXIQ.js} +0 -24
  85. package/{chunk-KXKQO4Q6.js → chunk-NTW5GWDM.js} +58 -1
  86. package/chunk-ONXOABJR.js +215 -0
  87. package/{chunk-BANYWEYY.js → chunk-OZX2IPKM.js} +8 -3
  88. package/{chunk-Q24S4NDF.js → chunk-P7OOB7QP.js} +1 -1
  89. package/{chunk-GLGD2JGY.js → chunk-PEZJEQAO.js} +7 -7
  90. package/{chunk-GBADO3SM.js → chunk-PQDIDWGX.js} +1 -1
  91. package/chunk-PSCNXBYA.js +11 -0
  92. package/chunk-QEFJJS2I.js +508 -0
  93. package/{chunk-757BGY6Y.js → chunk-QEW2MFDQ.js} +1 -1
  94. package/{chunk-SP3DPVBH.js → chunk-RDBARW6T.js} +8 -3
  95. package/{chunk-TNPCQNGQ.js → chunk-RJ2SAFB5.js} +83 -41
  96. package/{chunk-FGEYVPPR.js → chunk-RVWRKFUB.js} +8 -65
  97. package/{chunk-43CXXVJD.js → chunk-RXX4GDIH.js} +1 -1
  98. package/chunk-SEJ5OS6F.js +49 -0
  99. package/{chunk-MFI4FGHX.js → chunk-SOJM57FX.js} +5 -2
  100. package/{chunk-EKLRRZIN.js → chunk-SPAQ4PVV.js} +0 -5
  101. package/{chunk-L7NG2M6H.js → chunk-TRV2MIDW.js} +89 -74
  102. package/chunk-UAD2WT54.js +64 -0
  103. package/{chunk-RTLJUGQH.js → chunk-UZPQSVM6.js} +2 -2
  104. package/{chunk-3QJTD6DO.js → chunk-VMWYBIXG.js} +9 -7
  105. package/{chunk-ZHXJ6M7T.js → chunk-W7XHHYWM.js} +4 -0
  106. package/{chunk-5WADL4O7.js → chunk-XAVSS3KE.js} +21 -3
  107. package/{chunk-CVT7L2WZ.js → chunk-XOKOSO35.js} +13 -22
  108. package/{chunk-6BYAXNH5.js → chunk-XTJTN3RW.js} +57 -4
  109. package/{chunk-T5HJEUQN.js → chunk-YCDWJX45.js} +1 -1
  110. package/{chunk-MRWGHF56.js → chunk-YDH3FDFQ.js} +12 -356
  111. package/{chunk-H4RYESI6.js → chunk-Z4QSJILV.js} +85 -13
  112. package/chunk-ZJ7UHBJS.js +89 -0
  113. package/{chunk-O5FLGN2L.js → chunk-ZRSJ3JEH.js} +6 -2
  114. package/{cliExecutor-BBUVQU4L.js → cliExecutor-HG3S345O.js} +1 -1
  115. package/{codingSkills-BCQXRZOI.js → codingSkills-VDXQYWX4.js} +2 -2
  116. package/contentThunks-7YG2ZYQC.js +73 -0
  117. package/{cooldownCommands-GI5NNWGL.js → cooldownCommands-BSCH2W7P.js} +2 -2
  118. package/{createAgentAutomationAction-UJLNFFFC.js → createAgentAutomationAction-PJQSCAIO.js} +32 -26
  119. package/createDialogAction-SFEJX6SP.js +64 -0
  120. package/{createPageAction-N3IYABHV.js → createPageAction-B7WRHOQO.js} +35 -28
  121. package/{dbSlice-D5CNGWPD.js → dbSlice-IBVOBVMS.js} +7 -6
  122. package/{deleteFile-44TUM34Y.js → deleteFile-FWP2PSBG.js} +4 -3
  123. package/{dialogCommands-35M6RBAC.js → dialogCommands-VL2X22QC.js} +38 -33
  124. package/{dialogSlice-KO7ADD7H.js → dialogSlice-ANMACABO.js} +29 -24
  125. package/{docCreateCommands-VXHZWQ3P.js → docCreateCommands-ITLGZ5YI.js} +40 -35
  126. package/{docDeleteCommands-4WFAJR6A.js → docDeleteCommands-LH3YNL4C.js} +37 -32
  127. package/{docReadCommands-OYREEFAR.js → docReadCommands-YAJ77F36.js} +36 -31
  128. package/{docStore-5BU76DFK.js → docStore-D4HGHPWI.js} +9 -33
  129. package/{docUpdateCommands-A7QERSME.js → docUpdateCommands-DQBOMH2G.js} +40 -35
  130. package/{fetchMessages-KZQVBXKY.js → fetchMessages-DRABNDPZ.js} +3 -3
  131. package/{getPricing-HAU62AFM.js → getPricing-NM3NUTAS.js} +5 -5
  132. package/handleSendMessageAction-DF2OABGW.js +675 -0
  133. package/index.js +79 -88
  134. package/{lib-2ZTNRXR4.js → lib-FRRS27KN.js} +63 -28
  135. package/{localDialogRead-NQ33HBSI.js → localDialogRead-PUQKFI73.js} +1 -1
  136. package/{localRuntimeAuthority-KQDAE64E.js → localRuntimeAuthority-R5UBODT3.js} +6 -4
  137. package/{localRuntimeDb-PF7CFKDL.js → localRuntimeDb-P37ZTX55.js} +1 -1
  138. package/{machineCommands-J43U3TX5.js → machineCommands-JXDYQ5LB.js} +309 -87
  139. package/{machineWsRunDispatch-Z2Z6STXZ.js → machineWsRunDispatch-3QHI7JX5.js} +67 -59
  140. package/memberThunks-VZI6G7YZ.js +640 -0
  141. package/{models-4QF4BJVY.js → models-FAMINFZ7.js} +2 -2
  142. package/package.json +3 -2
  143. package/{read-RGNPI5H2.js → read-2BYWW7AA.js} +4 -3
  144. package/{readDocTool-6ESWKTXD.js → readDocTool-LC3A7QTB.js} +1 -1
  145. package/{readlineWorkspace-YRPV6JPN.js → readlineWorkspace-KVZTEAHB.js} +4609 -2698
  146. package/{removeDialogAgentAction-JYT73FU2.js → removeDialogAgentAction-SFYZXHNK.js} +14 -12
  147. package/{runAgentClientLoop-5YM5WMAY.js → runAgentClientLoop-KGTEL7ZP.js} +60 -50
  148. package/{runtimeDoctorCommands-JKTTN723.js → runtimeDoctorCommands-CROTMULY.js} +7 -5
  149. package/{setDialogExtraReferencesAction-D564LMYQ.js → setDialogExtraReferencesAction-Q32RGFTA.js} +10 -8
  150. package/{setPrimaryDialogAgentAction-ACY3BLYA.js → setPrimaryDialogAgentAction-BFYJHUJS.js} +14 -12
  151. package/{settingSlice-MKI3MNZJ.js → settingSlice-IRUU4VFB.js} +8 -7
  152. package/{skillDiscovery-GPUDHDTZ.js → skillDiscovery-NTRLM6KP.js} +3 -3
  153. package/{spaceCommands-MY26V52L.js → spaceCommands-KNAYWMCZ.js} +40 -220
  154. package/{streamAgentChatTurn-XV5X5TNQ.js → streamAgentChatTurn-FLYPTXKZ.js} +140 -95
  155. package/{switchDialogAgentAction-CJ5H6SAR.js → switchDialogAgentAction-L2KOKCGG.js} +11 -9
  156. package/{tableCommands-R6WFRDYF.js → tableCommands-SUNTHAYX.js} +1 -1
  157. package/{toolApiClient-B2MFXMEG.js → toolApiClient-VGYUB4P5.js} +4 -2
  158. package/{tools-MIMELA2Y.js → tools-CVLUXK6P.js} +46 -38
  159. package/{tuiSummaryLlmCaller-XJ5BKNNS.js → tuiSummaryLlmCaller-F3DPFFZM.js} +20 -16
  160. package/{updateCommands-IYKLF3JX.js → updateCommands-AJYSD73Y.js} +2 -2
  161. package/{updateDialogTitleAction-EIZUSWHR.js → updateDialogTitleAction-HWJIZEIV.js} +33 -27
  162. package/agentRecordCommands-Z64TA63M.js +0 -114
  163. package/agentRunCommand-4QJQLPRW.js +0 -134
  164. package/agentSuperviseCommands-VB6BUS5H.js +0 -640
  165. package/chunk-6BGAQ3KR.js +0 -7081
  166. package/chunk-FD36SCCD.js +0 -105
  167. package/chunk-J3UALFHL.js +0 -370
  168. package/chunk-RU5D3B22.js +0 -230
  169. package/chunk-YBV6QJKM.js +0 -441
  170. package/createDialogAction-TJCX6GUE.js +0 -58
  171. package/handleSendMessageAction-OSGQJQ45.js +0 -406
  172. package/spaceSlice-JUIXC365.js +0 -127
@@ -2,90 +2,99 @@ import {
2
2
  buildMachinePermissionPromptBlock,
3
3
  handleConnectorRunMessage,
4
4
  resolveMachineRunPermissionPolicy
5
- } from "./chunk-7K5VMB4Q.js";
5
+ } from "./chunk-37QVS7BU.js";
6
6
  import {
7
7
  isConnectorWebSocketAuthError,
8
8
  isConnectorWebSocketRetryableError,
9
9
  resolveConnectorWebSocketTarget
10
10
  } from "./chunk-ALXHV7NK.js";
11
- import "./chunk-GV35EHNA.js";
12
- import "./chunk-U5Z7LFZF.js";
11
+ import "./chunk-7O7KH4X5.js";
12
+ import "./chunk-MXUDQZXQ.js";
13
13
  import "./chunk-EADNWBAZ.js";
14
- import "./chunk-NI2BS6UD.js";
15
- import "./chunk-OYNDYVSE.js";
16
- import "./chunk-EKLRRZIN.js";
17
- import "./chunk-JDSUTNYY.js";
18
- import "./chunk-WHVQA7PJ.js";
14
+ import "./chunk-45YO6H7P.js";
15
+ import "./chunk-DWUCB2A3.js";
16
+ import "./chunk-CTCW7U7N.js";
17
+ import "./chunk-SPAQ4PVV.js";
18
+ import "./chunk-MP64VFGD.js";
19
19
  import {
20
20
  detectMachineInfo
21
21
  } from "./chunk-ESHYE7WU.js";
22
22
  import "./chunk-JBTJAPUF.js";
23
- import "./chunk-4NN3EK7H.js";
23
+ import "./chunk-LAFC3B2I.js";
24
24
  import "./chunk-ATNTHIZI.js";
25
- import "./chunk-UW4INMD2.js";
25
+ import "./chunk-3JWKQDA4.js";
26
26
  import "./chunk-HS7MLR74.js";
27
- import "./chunk-757BGY6Y.js";
28
- import "./chunk-V4KZGLOI.js";
27
+ import "./chunk-2HPRMEEZ.js";
29
28
  import "./chunk-5XTOKQLW.js";
30
29
  import "./chunk-NF64D32W.js";
31
30
  import {
32
31
  CORE_DRAIN_REASON
33
32
  } from "./chunk-3L2WKC3W.js";
34
- import "./chunk-RU5D3B22.js";
33
+ import "./chunk-NTW5GWDM.js";
34
+ import "./chunk-3BLB7QKO.js";
35
35
  import "./chunk-KQHGZWSV.js";
36
- import "./chunk-VRZIH5JO.js";
37
- import "./chunk-KXKQO4Q6.js";
38
- import "./chunk-INZZJSQF.js";
39
- import "./chunk-Y7LNKP32.js";
40
- import "./chunk-BANYWEYY.js";
41
- import "./chunk-PAHILFNT.js";
36
+ import "./chunk-2PGGC63K.js";
37
+ import "./chunk-MBOEV4L2.js";
38
+ import "./chunk-OZX2IPKM.js";
39
+ import "./chunk-CP7VIDZ7.js";
40
+ import "./chunk-N4G4PKQ6.js";
41
+ import "./chunk-FZGV4FGK.js";
42
42
  import "./chunk-MEYIRKDN.js";
43
43
  import "./chunk-63W5N6P3.js";
44
44
  import "./chunk-VF4K2QE6.js";
45
- import "./chunk-6SZ52ORL.js";
46
- import "./chunk-LA4IDAK7.js";
47
- import "./chunk-BJLYCOZK.js";
45
+ import "./chunk-7UF7CQ6B.js";
46
+ import "./chunk-ES6CVKVD.js";
47
+ import "./chunk-AVE2YR4F.js";
48
+ import "./chunk-ZJ7UHBJS.js";
49
+ import "./chunk-D5XKNNUV.js";
48
50
  import "./chunk-EVBFYPDC.js";
49
- import "./chunk-H2G6JXTR.js";
51
+ import "./chunk-HQUORJTM.js";
50
52
  import "./chunk-YYLHWIW6.js";
51
- import "./chunk-U2A47SVI.js";
52
53
  import "./chunk-AGGIDPCZ.js";
53
- import "./chunk-32I5RVMY.js";
54
+ import "./chunk-HQP7HJDL.js";
55
+ import "./chunk-4NJEIGBQ.js";
54
56
  import "./chunk-5RGU3J7P.js";
57
+ import "./chunk-6YTOJY35.js";
55
58
  import "./chunk-M76ECQRD.js";
56
- import "./chunk-MRWGHF56.js";
57
- import "./chunk-IA3A5373.js";
59
+ import "./chunk-YDH3FDFQ.js";
60
+ import "./chunk-C3FZR5EC.js";
58
61
  import "./chunk-GLKOYSRU.js";
59
- import "./chunk-AA564GBL.js";
60
- import "./chunk-O5FLGN2L.js";
62
+ import "./chunk-DZZL7UBV.js";
63
+ import "./chunk-ZRSJ3JEH.js";
61
64
  import "./chunk-EY7V7REW.js";
62
- import "./chunk-6BGAQ3KR.js";
63
- import "./chunk-INXBNYCG.js";
65
+ import {
66
+ PATH_FIELD_ALIASES,
67
+ createLocalWorkspaceToolExecutors
68
+ } from "./chunk-4C4ST2YE.js";
69
+ import "./chunk-7A3RRUCQ.js";
64
70
  import "./chunk-ZNFJWEN4.js";
65
- import "./chunk-CVT7L2WZ.js";
66
- import "./chunk-T27IEBNQ.js";
71
+ import "./chunk-XOKOSO35.js";
72
+ import "./chunk-2QDDKFG5.js";
67
73
  import "./chunk-N7J63Q6C.js";
68
- import "./chunk-YBV6QJKM.js";
69
- import "./chunk-6BYAXNH5.js";
70
- import "./chunk-SP3DPVBH.js";
71
- import "./chunk-TNPCQNGQ.js";
72
- import "./chunk-IWUMSAQF.js";
74
+ import "./chunk-QEFJJS2I.js";
75
+ import "./chunk-XTJTN3RW.js";
76
+ import "./chunk-QEW2MFDQ.js";
77
+ import "./chunk-RDBARW6T.js";
78
+ import "./chunk-RJ2SAFB5.js";
79
+ import "./chunk-CJCJF5XB.js";
73
80
  import "./chunk-2MBTWINN.js";
74
- import "./chunk-KUUTWU4I.js";
75
- import "./chunk-H4RYESI6.js";
76
- import "./chunk-VRJUIUIY.js";
77
- import "./chunk-NQ4N4IGO.js";
78
- import "./chunk-FD36SCCD.js";
79
- import "./chunk-QDHZCAH3.js";
81
+ import "./chunk-5ZYA4JJ3.js";
82
+ import "./chunk-Z4QSJILV.js";
83
+ import "./chunk-LJKICKVC.js";
84
+ import "./chunk-PSCNXBYA.js";
85
+ import "./chunk-BYXBJQAS.js";
86
+ import "./chunk-MMZ6ZTVO.js";
80
87
  import "./chunk-DWLEOOGR.js";
81
- import "./chunk-ZHXJ6M7T.js";
88
+ import "./chunk-3JQ2NRYU.js";
89
+ import "./chunk-ONXOABJR.js";
90
+ import "./chunk-W7XHHYWM.js";
82
91
  import {
83
92
  toErrorMessage
84
93
  } from "./chunk-HNMXYYJR.js";
85
- import "./chunk-3AOLVADY.js";
86
- import "./chunk-7CH6U3FL.js";
94
+ import "./chunk-DVINR3PL.js";
95
+ import "./chunk-2GRGFCF6.js";
87
96
  import "./chunk-O6OSWFZQ.js";
88
- import "./chunk-FA4SY4F5.js";
97
+ import "./chunk-BYEJ7K2Z.js";
89
98
  import "./chunk-IDZTNRP2.js";
90
99
  import {
91
100
  isCompiledBinary
@@ -93,35 +102,37 @@ import {
93
102
  import {
94
103
  DEFAULT_NOLO_SERVER_URL
95
104
  } from "./chunk-OLZBQWZU.js";
96
- import "./chunk-56W233KG.js";
97
- import "./chunk-WL3UOGYO.js";
98
- import "./chunk-7APQB6R6.js";
99
- import "./chunk-3QJTD6DO.js";
105
+ import "./chunk-FKFMIBTT.js";
106
+ import "./chunk-22BTGNSP.js";
107
+ import "./chunk-JX5PJCWS.js";
108
+ import "./chunk-VMWYBIXG.js";
100
109
  import {
101
110
  parsePositiveFiniteNumberOrFallback
102
111
  } from "./chunk-Y5GCAMGP.js";
103
112
  import "./chunk-UZ6XXCVR.js";
104
113
  import "./chunk-KX6YBIHG.js";
105
- import "./chunk-FGEYVPPR.js";
106
- import "./chunk-AV6KQCM5.js";
107
- import "./chunk-SVEUG45B.js";
114
+ import "./chunk-RVWRKFUB.js";
115
+ import "./chunk-UAD2WT54.js";
116
+ import "./chunk-DNNSCSA2.js";
117
+ import "./chunk-NHRQCXIQ.js";
108
118
  import "./chunk-WWC7I6TA.js";
109
119
  import "./chunk-I42VC5KR.js";
110
- import "./chunk-MFI4FGHX.js";
120
+ import "./chunk-SOJM57FX.js";
111
121
  import "./chunk-QSJ3HFEF.js";
112
- import "./chunk-VULELK4T.js";
122
+ import "./chunk-L7B47JXR.js";
113
123
  import "./chunk-BJIRLHJR.js";
114
- import "./chunk-PYKV6FSC.js";
124
+ import "./chunk-KWSQR2KK.js";
115
125
  import "./chunk-QOKAKDPE.js";
116
126
  import "./chunk-OW765XBU.js";
127
+ import "./chunk-SEJ5OS6F.js";
117
128
  import "./chunk-GBRG75BQ.js";
118
- import {
119
- isRecord
120
- } from "./chunk-KUG52IAP.js";
121
129
  import {
122
130
  asTrimmedString
123
131
  } from "./chunk-3EUW3WEO.js";
124
132
  import "./chunk-U6VC4MU4.js";
133
+ import {
134
+ isRecord
135
+ } from "./chunk-KUG52IAP.js";
125
136
  import "./chunk-LCBAMY2M.js";
126
137
  import "./chunk-4SN6J65J.js";
127
138
  import {
@@ -131,7 +142,7 @@ import "./chunk-G3SUCT4W.js";
131
142
  import "./chunk-4VNS5WPM.js";
132
143
 
133
144
  // packages/connector-experimental/heartbeatLoop.ts
134
- var defaultSleep = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
145
+ var defaultSleep = (ms) => new Promise((resolve3) => setTimeout(resolve3, ms));
135
146
  async function runHeartbeatLoop(options) {
136
147
  const sleep = options.sleep ?? defaultSleep;
137
148
  let beats = 0;
@@ -348,6 +359,201 @@ async function runMachineWatchCommand(deps) {
348
359
  }
349
360
  }
350
361
 
362
+ // packages/cli/machineToolInvokeDispatch.ts
363
+ import { lstat, realpath } from "node:fs/promises";
364
+ import { dirname as dirname2, isAbsolute as isAbsolute2, relative as relative2, resolve as resolve2, sep } from "node:path";
365
+ var MACHINE_TOOL_INVOKE_V1_TOOL_NAMES = ["readFile", "globFiles"];
366
+ var V1_ALLOWED_TOOL_NAMES = new Set(MACHINE_TOOL_INVOKE_V1_TOOL_NAMES);
367
+ var DEFAULT_TOOL_INVOKE_TIMEOUT_MS = 3e4;
368
+ var TOOL_RESULT_MESSAGE_MAX_CHARS = 1e6;
369
+ var TOOL_NOT_ALLOWED_MESSAGE = "tool not allowed in v1 (read-only)";
370
+ var TOOL_PAYLOAD_MALFORMED_MESSAGE = "malformed tool.invoke payload (payload object required)";
371
+ var TOOL_ARGS_MALFORMED_MESSAGE = "malformed tool.invoke args (args object required)";
372
+ function createMachineToolInvokeHandlers(args) {
373
+ const executors = (args.createToolExecutors ?? createLocalWorkspaceToolExecutors)({
374
+ workspaceRoot: args.workspaceRoot,
375
+ // v1 硬 containment:localWorkspaceTools 在无确认回调时对工作区外路径
376
+ // 默认放行(交互式 TUI 语义)。机器侧是无人值守的 server 驱动调用,
377
+ // 一律拒绝外部路径 —— 该回调只对「未走 spill 例外」的工作区外路径触发,
378
+ // 是纵深防御的第二层;第一层是 dispatch 入口的 machinePathPreflight
379
+ // (词法 + realpath 双检,spill 路径同样被拒,confirm 不可达)。
380
+ confirmExternalFileAccess: async () => false,
381
+ // 机器协议 v1(M3 修复):TUI 的 readFile 去重 ledger 面向「同一会话的
382
+ // 重复读提示」,daemon 长生命周期会让它跨越多个 server 会话 —— 新会话
383
+ // 重读同一文件会拿到去重文案而非内容。readFileNoLedger 关闭去重 ledger,
384
+ // 机器侧 readFile 每次都返回真实内容,语义等价于 TUI 的 force:true。
385
+ readFileNoLedger: true
386
+ });
387
+ const executorMap = executors;
388
+ const invokeWithTimeout = async (toolName, executorArgs, timeoutMs, workspaceRoot) => {
389
+ const call = {
390
+ id: "machine-tool-invoke",
391
+ name: toolName,
392
+ arguments: typeof executorArgs === "string" ? executorArgs : JSON.stringify(executorArgs ?? {})
393
+ };
394
+ const requestPath = extractMachineToolRequestPath(executorArgs);
395
+ if (requestPath !== null) {
396
+ const preflightError = await machinePathPreflight({
397
+ workspaceRoot,
398
+ request: requestPath
399
+ });
400
+ if (preflightError) return { error: preflightError };
401
+ }
402
+ let timer = null;
403
+ try {
404
+ const outcome = await Promise.race([
405
+ executorMap[toolName](call),
406
+ new Promise((_, reject) => {
407
+ timer = setTimeout(() => reject(new Error(`tool.invoke timed out after ${timeoutMs}ms`)), timeoutMs);
408
+ })
409
+ ]);
410
+ const content = typeof outcome?.content === "string" ? outcome.content : "";
411
+ if (content.length > TOOL_RESULT_MESSAGE_MAX_CHARS) {
412
+ return {
413
+ result: content.slice(0, TOOL_RESULT_MESSAGE_MAX_CHARS) + `
414
+
415
+ [... output truncated at ${TOOL_RESULT_MESSAGE_MAX_CHARS} chars ...]`
416
+ };
417
+ }
418
+ return { result: content };
419
+ } catch (error) {
420
+ return { error: toMessage(error) };
421
+ } finally {
422
+ if (timer) clearTimeout(timer);
423
+ }
424
+ };
425
+ const invokeMachineTool = async (requestId, toolName, toolArgs, timeoutMs) => {
426
+ if (!V1_ALLOWED_TOOL_NAMES.has(toolName)) {
427
+ return { error: TOOL_NOT_ALLOWED_MESSAGE };
428
+ }
429
+ const resolvedTimeout = resolveTimeoutMs(timeoutMs);
430
+ return invokeWithTimeout(toolName, toolArgs, resolvedTimeout, args.workspaceRoot);
431
+ };
432
+ return {
433
+ handleToolInvokeMessage: async (message, send) => {
434
+ const frame = parseToolInvokeFrame(message);
435
+ if (!frame) return null;
436
+ const { requestId, payload } = frame;
437
+ if (frame.payloadMalformed) {
438
+ send(
439
+ JSON.stringify({ type: "tool.result", requestId, error: TOOL_PAYLOAD_MALFORMED_MESSAGE })
440
+ );
441
+ return JSON.stringify({ type: "tool.result", requestId, error: TOOL_PAYLOAD_MALFORMED_MESSAGE });
442
+ }
443
+ if (!isRecord2(payload.args)) {
444
+ send(
445
+ JSON.stringify({ type: "tool.result", requestId, error: TOOL_ARGS_MALFORMED_MESSAGE })
446
+ );
447
+ return JSON.stringify({ type: "tool.result", requestId, error: TOOL_ARGS_MALFORMED_MESSAGE });
448
+ }
449
+ const outcome = await invokeMachineTool(
450
+ requestId,
451
+ payload.tool,
452
+ payload.args,
453
+ payload.timeoutMs
454
+ );
455
+ send(
456
+ JSON.stringify(
457
+ outcome.error !== void 0 ? { type: "tool.result", requestId, error: outcome.error } : { type: "tool.result", requestId, result: outcome.result ?? "" }
458
+ )
459
+ );
460
+ return JSON.stringify(
461
+ outcome.error !== void 0 ? { type: "tool.result", requestId, error: outcome.error } : { type: "tool.result", requestId, result: outcome.result ?? "" }
462
+ );
463
+ },
464
+ invokeMachineTool
465
+ };
466
+ }
467
+ function resolveTimeoutMs(value) {
468
+ const parsed = Number(value);
469
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_TOOL_INVOKE_TIMEOUT_MS;
470
+ }
471
+ function toMessage(error) {
472
+ if (error instanceof Error && error.message) return error.message;
473
+ if (typeof error === "string" && error) return error;
474
+ return "tool.invoke failed";
475
+ }
476
+ function isLexicallyInsideRoot(root, targetPath) {
477
+ const rel = relative2(resolve2(root), resolve2(targetPath));
478
+ return rel === "" || rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute2(rel);
479
+ }
480
+ async function machinePathPreflight(args) {
481
+ const workspaceRoot = resolve2(args.workspaceRoot);
482
+ const lexicalPath = resolve2(workspaceRoot, args.request);
483
+ if (!isLexicallyInsideRoot(workspaceRoot, lexicalPath)) {
484
+ return `path outside workspace root: ${args.request}`;
485
+ }
486
+ let current = lexicalPath;
487
+ const symlinks = [];
488
+ while (true) {
489
+ const stats = await lstat(current).catch(() => void 0);
490
+ if (!stats) {
491
+ return null;
492
+ }
493
+ if (!stats.isSymbolicLink()) break;
494
+ const target = await realpath(current).catch(() => void 0);
495
+ if (!target) return null;
496
+ symlinks.push({ link: current, target });
497
+ current = resolve2(current, "..");
498
+ if (current === dirname2(current)) break;
499
+ }
500
+ try {
501
+ const [realRequest, realRoot] = await Promise.all([realpath(lexicalPath), realpath(workspaceRoot)]);
502
+ if (!isLexicallyInsideRoot(realRoot, realRequest)) {
503
+ return `path outside workspace root after symlink resolution: ${args.request}`;
504
+ }
505
+ } catch (error) {
506
+ if (symlinks.length === 0) return null;
507
+ return `path outside workspace root after symlink resolution: ${args.request}`;
508
+ }
509
+ return null;
510
+ }
511
+ function extractMachineToolRequestPath(executorArgs) {
512
+ const rawArgs = typeof executorArgs === "string" ? executorArgs : executorArgs !== void 0 && executorArgs !== null ? JSON.stringify(executorArgs) : null;
513
+ if (rawArgs === null) return null;
514
+ let parsed;
515
+ try {
516
+ parsed = JSON.parse(rawArgs);
517
+ } catch {
518
+ return null;
519
+ }
520
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return null;
521
+ for (const key of PATH_FIELD_ALIASES) {
522
+ const value = parsed[key];
523
+ if (typeof value === "string" && value.length > 0) return value.trim();
524
+ }
525
+ return null;
526
+ }
527
+ function parseToolInvokeFrame(message) {
528
+ let parsed;
529
+ try {
530
+ parsed = JSON.parse(message);
531
+ } catch {
532
+ return null;
533
+ }
534
+ if (!isRecord2(parsed) || parsed.type !== "tool.invoke") return null;
535
+ if (typeof parsed.requestId !== "string" || parsed.requestId.length === 0) return null;
536
+ if (!isRecord2(parsed.payload)) {
537
+ return {
538
+ requestId: parsed.requestId,
539
+ payload: { tool: "", args: {}, timeoutMs: void 0 },
540
+ payloadMalformed: true
541
+ };
542
+ }
543
+ const payload = parsed.payload;
544
+ return {
545
+ requestId: parsed.requestId,
546
+ payload: {
547
+ tool: typeof payload.tool === "string" ? payload.tool : "",
548
+ args: payload.args,
549
+ timeoutMs: payload.timeoutMs
550
+ }
551
+ };
552
+ }
553
+ function isRecord2(value) {
554
+ return typeof value === "object" && value !== null && !Array.isArray(value);
555
+ }
556
+
351
557
  // packages/cli/machineWsSession.ts
352
558
  var CONNECTOR_WS_KEEPALIVE_MS = 25e3;
353
559
  function buildConnectorKeepaliveMessage() {
@@ -364,7 +570,7 @@ async function defaultConnectWebSocket(url, options) {
364
570
  if (!WebSocketCtor) {
365
571
  throw new Error("WebSocket is not available in this runtime");
366
572
  }
367
- await new Promise((resolve2, reject) => {
573
+ await new Promise((resolve3, reject) => {
368
574
  const ws = new WebSocketCtor(url, {
369
575
  headers: options.headers
370
576
  });
@@ -383,7 +589,7 @@ async function defaultConnectWebSocket(url, options) {
383
589
  try {
384
590
  ws.close();
385
591
  } catch {
386
- resolve2();
592
+ resolve3();
387
593
  }
388
594
  };
389
595
  options.signal?.addEventListener("abort", handleAbort, { once: true });
@@ -404,7 +610,7 @@ async function defaultConnectWebSocket(url, options) {
404
610
  ws.addEventListener("error", () => {
405
611
  clearKeepalive();
406
612
  if (aborted) {
407
- resolve2();
613
+ resolve3();
408
614
  return;
409
615
  }
410
616
  reject(new Error("connector websocket failed"));
@@ -413,7 +619,7 @@ async function defaultConnectWebSocket(url, options) {
413
619
  "close",
414
620
  () => {
415
621
  clearKeepalive();
416
- if (opened || aborted) resolve2();
622
+ if (opened || aborted) resolve3();
417
623
  else reject(new Error("connector websocket closed before opening"));
418
624
  },
419
625
  { once: true }
@@ -466,12 +672,12 @@ async function runMachineWsSession(options) {
466
672
  sentMessages.push(response);
467
673
  })
468
674
  });
469
- const abortPromise = options.signal ? new Promise((resolve2) => {
675
+ const abortPromise = options.signal ? new Promise((resolve3) => {
470
676
  if (options.signal?.aborted) {
471
- resolve2("aborted");
677
+ resolve3("aborted");
472
678
  return;
473
679
  }
474
- options.signal?.addEventListener("abort", () => resolve2("aborted"), { once: true });
680
+ options.signal?.addEventListener("abort", () => resolve3("aborted"), { once: true });
475
681
  }) : null;
476
682
  const raceResult = await Promise.race(
477
683
  [websocketPromise, heartbeatMonitorPromise, abortPromise].filter(Boolean)
@@ -581,6 +787,14 @@ ${text}
581
787
  }
582
788
 
583
789
  // packages/cli/machineCommands.ts
790
+ async function handleMachineWsMessageDemux(message, send, handlers, runConnectorMessage) {
791
+ try {
792
+ const toolResult = await handlers.toolInvoke.handleToolInvokeMessage(message, send);
793
+ if (toolResult !== null) return;
794
+ } catch {
795
+ }
796
+ await runConnectorMessage();
797
+ }
584
798
  function resolveAuthToken2(env) {
585
799
  return env.AUTH_TOKEN || env.AUTH || "";
586
800
  }
@@ -614,7 +828,7 @@ function resolveConnectServerUrl(args, env) {
614
828
  function resolveConnectAuthToken(args, env) {
615
829
  return readOption(args, "--machine-key") || readOption(args, "--token") || resolveAuthToken2(env);
616
830
  }
617
- var defaultSleep2 = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
831
+ var defaultSleep2 = (ms) => new Promise((resolve3) => setTimeout(resolve3, ms));
618
832
  async function sleepWithAbort(ms, sleep, signal) {
619
833
  if (!signal) {
620
834
  await sleep(ms);
@@ -623,8 +837,8 @@ async function sleepWithAbort(ms, sleep, signal) {
623
837
  if (signal.aborted) return;
624
838
  await Promise.race([
625
839
  sleep(ms),
626
- new Promise((resolve2) => {
627
- signal.addEventListener("abort", () => resolve2(), { once: true });
840
+ new Promise((resolve3) => {
841
+ signal.addEventListener("abort", () => resolve3(), { once: true });
628
842
  })
629
843
  ]);
630
844
  }
@@ -633,7 +847,7 @@ function resolveConnectorReconnectDelayMs(env) {
633
847
  return Number.isFinite(raw) && raw >= 0 ? raw : 5e3;
634
848
  }
635
849
  async function defaultExecuteCli(provider, prompt, options) {
636
- const { executeCli } = await import("./cliExecutor-BBUVQU4L.js");
850
+ const { executeCli } = await import("./cliExecutor-HG3S345O.js");
637
851
  return executeCli(provider, prompt, options);
638
852
  }
639
853
  function detectLaunchableMachineInfo() {
@@ -726,6 +940,9 @@ ${text}`);
726
940
  const maxAttempts = deps.maxConnectorAttempts ?? Infinity;
727
941
  const sleep = deps.sleep ?? defaultSleep2;
728
942
  const reconnectDelayMs = resolveConnectorReconnectDelayMs(env);
943
+ const toolInvokeHandlers = createMachineToolInvokeHandlers({
944
+ workspaceRoot: process.cwd()
945
+ });
729
946
  for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
730
947
  if (deps.signal?.aborted) {
731
948
  return 0;
@@ -745,22 +962,27 @@ ${text}`);
745
962
  ...options,
746
963
  fetchImpl
747
964
  }),
748
- onMessage: (message, send) => handleConnectorRunMessage(
965
+ onMessage: (message, send) => handleMachineWsMessageDemux(
749
966
  message,
750
967
  send,
751
- deps.executeCli ?? defaultExecuteCli,
752
- {
753
- ...env,
754
- NOLO_SERVER: runtimeServerUrl,
755
- NOLO_SERVER_URL: runtimeServerUrl,
756
- BASE_URL: runtimeServerUrl,
757
- AUTH_TOKEN: authToken,
758
- NOLO_MACHINE_API_KEY: authToken
759
- },
760
- fetchImpl,
761
- {
762
- buildConnectorCliPrompt
763
- }
968
+ { toolInvoke: toolInvokeHandlers },
969
+ () => handleConnectorRunMessage(
970
+ message,
971
+ send,
972
+ deps.executeCli ?? defaultExecuteCli,
973
+ {
974
+ ...env,
975
+ NOLO_SERVER: runtimeServerUrl,
976
+ NOLO_SERVER_URL: runtimeServerUrl,
977
+ BASE_URL: runtimeServerUrl,
978
+ AUTH_TOKEN: authToken,
979
+ NOLO_MACHINE_API_KEY: authToken
980
+ },
981
+ fetchImpl,
982
+ {
983
+ buildConnectorCliPrompt
984
+ }
985
+ )
764
986
  )
765
987
  });
766
988
  const exitCode = sessionResult.exitCode;