nolo-cli 0.107.0-alpha.4 → 0.107.1

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 (211) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-UDCSOTD2.js → _executeModel-M573MKVE.js} +78 -70
  3. package/action-GVA5ARSJ.js +20 -0
  4. package/{addContentAction-MB2HHMDZ.js → addContentAction-M2WOWZCL.js} +13 -12
  5. package/{addDialogAgentAction-MCEABSBA.js → addDialogAgentAction-QMAQ5Z6N.js} +19 -20
  6. package/{agentDeleteCommand-OWYHN6D6.js → agentDeleteCommand-ZFHYRHBS.js} +118 -43
  7. package/{agentEmailCommands-AU5I4M4W.js → agentEmailCommands-X6AVPIVQ.js} +100 -90
  8. package/agentListCommands-PAD2CI2I.js +741 -0
  9. package/{agentMachineCommands-YMNME2L6.js → agentMachineCommands-UPH6RJCC.js} +50 -46
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-CMVTBY5X.js} +97 -2
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
  12. package/agentRecordCommands-UMACPRAF.js +138 -0
  13. package/agentRunCommand-H6KKHHMU.js +167 -0
  14. package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
  15. package/{agentRuntimeLocal-KCMC2TBD.js → agentRuntimeLocal-N4YGKL7M.js} +44 -40
  16. package/{agentSlice-R7PR6KYM.js → agentSlice-2LPP43XH.js} +15 -14
  17. package/{appDeleteCommands-JEPA3EWE.js → appDeleteCommands-7DAF33AM.js} +46 -42
  18. package/{appDeployCommands-UTB76XFM.js → appDeployCommands-ZPZSMFGZ.js} +46 -42
  19. package/{appDeployStatusCommands-LGHF2SBD.js → appDeployStatusCommands-FWBDSSS5.js} +46 -42
  20. package/{appGetCommands-PX2BFHOB.js → appGetCommands-SZZOHGEP.js} +46 -42
  21. package/{appListCommands-BSMPTWKC.js → appListCommands-FPMUBDPM.js} +46 -42
  22. package/{authCommand-YW42YZA4.js → authCommand-VL3G26NQ.js} +119 -25
  23. package/{authCommands-RGOGCPP6.js → authCommands-5RTUDYZW.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-ZK4K67Y5.js} +11 -9
  25. package/{chromeCommands-FZYAU75D.js → chromeCommands-AU5ZJXBG.js} +289 -37
  26. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-ZYTCMNHG.js} +156 -22
  27. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  28. package/{chunk-HVURBGF3.js → chunk-2U3NHADM.js} +6 -6
  29. package/{chunk-QTGQ2LTL.js → chunk-3DQY5IFB.js} +6 -10
  30. package/{chunk-XT35TTFG.js → chunk-3IXAHOJS.js} +19 -21
  31. package/{chunk-UVA7OYO3.js → chunk-3W67RV75.js} +29 -9
  32. package/chunk-4LCOCOR5.js +50 -0
  33. package/{chunk-JPGCXHNM.js → chunk-4LKMZ3RR.js} +1 -1
  34. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  35. package/{chunk-6D6VBVEW.js → chunk-4W24JM32.js} +80 -14
  36. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  37. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  38. package/{chunk-C3M4465B.js → chunk-5HYJ3DSZ.js} +404 -659
  39. package/chunk-5MMAK75Q.js +15 -0
  40. package/{chunk-7S4YWN7P.js → chunk-5UUIGN6I.js} +4 -4
  41. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  42. package/{chunk-4MK3I7Y4.js → chunk-6MAW4XOF.js} +5 -5
  43. package/{chunk-3UZPUAES.js → chunk-74PPKIY2.js} +1 -1
  44. package/chunk-76HO2DP6.js +15 -0
  45. package/{chunk-ASIFZ2WY.js → chunk-7BBP7ZX3.js} +66 -54
  46. package/{chunk-VLTIYV3X.js → chunk-7I25CBT5.js} +34 -8
  47. package/{chunk-IBOZNTG2.js → chunk-7X5XZ34C.js} +23 -28
  48. package/chunk-AGIM7IMJ.js +147 -0
  49. package/{chunk-5UTFL4QJ.js → chunk-APO5TOXO.js} +1 -1
  50. package/{chunk-EEGDMATE.js → chunk-AZOVPTL6.js} +91 -81
  51. package/{chunk-6OZ36FXI.js → chunk-BIPGGSJS.js} +22 -4
  52. package/{chunk-EYAQT56M.js → chunk-BNQMNUKZ.js} +9 -6
  53. package/{chunk-62CATUYY.js → chunk-CBUMFIFE.js} +834 -962
  54. package/{chunk-OIVSQH2O.js → chunk-CDEEFJXN.js} +308 -11
  55. package/chunk-CHOZJMJS.js +78 -0
  56. package/{chunk-ETI2NYVF.js → chunk-CIP3AAMT.js} +4 -4
  57. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  58. package/{chunk-W7HLWAQ7.js → chunk-DE45KZNH.js} +118 -90
  59. package/{chunk-Q554LLSI.js → chunk-DMXLXZKL.js} +1 -1
  60. package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
  61. package/{chunk-HKNXJGEC.js → chunk-ECFHBYUW.js} +85 -50
  62. package/{chunk-ACTMNVHM.js → chunk-EHSYSKXV.js} +1 -1
  63. package/{chunk-WV42OMV7.js → chunk-ELUDRSRD.js} +8 -8
  64. package/{chunk-ABQYVJBJ.js → chunk-EV235ILT.js} +5 -5
  65. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  66. package/{chunk-BFDFRLLQ.js → chunk-EZ4VZHAG.js} +5 -5
  67. package/{chunk-GO3Z72MT.js → chunk-FHLMQIU7.js} +65 -95
  68. package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
  69. package/{chunk-SH43IESU.js → chunk-GGC55Q32.js} +199 -29
  70. package/chunk-GMZLP5DV.js +82 -0
  71. package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
  72. package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
  73. package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
  74. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  75. package/{chunk-BNGW5ASC.js → chunk-I2RGRVQ7.js} +22 -2
  76. package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
  77. package/{chunk-QDSINZM3.js → chunk-IXH3HKY2.js} +1 -22
  78. package/{chunk-GQBOR3G6.js → chunk-JBKHQOYK.js} +8 -4
  79. package/{chunk-XD2MJFUG.js → chunk-JEFXP73H.js} +1 -1
  80. package/{chunk-PBA4UJBK.js → chunk-JIXGJTBU.js} +4 -4
  81. package/{chunk-AEOE4Z6Q.js → chunk-K6L5PNXK.js} +39 -15
  82. package/{chunk-Z77CRGTW.js → chunk-KA5O5KQL.js} +1 -1
  83. package/{chunk-GPCZ7UXG.js → chunk-KD6D6BLA.js} +1 -1
  84. package/{chunk-4CR5I7BD.js → chunk-KFWDYYSS.js} +47 -67
  85. package/{chunk-UZGQNTVW.js → chunk-KHKTDMYG.js} +8 -6
  86. package/{chunk-JDPFV2JV.js → chunk-KWUKOQM2.js} +20 -11
  87. package/{chunk-MRIHM22T.js → chunk-LBFL6RZG.js} +58 -9
  88. package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
  89. package/{chunk-DHDMC6FO.js → chunk-LUBFABMJ.js} +15 -14
  90. package/{chunk-NA35QHCF.js → chunk-LVBFKW65.js} +1 -1
  91. package/chunk-LWLNLZC5.js +265 -0
  92. package/chunk-N4NGJDT6.js +929 -0
  93. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  94. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  95. package/chunk-NWENLDMM.js +42 -0
  96. package/chunk-O7SVKKLY.js +875 -0
  97. package/chunk-OCZKATRC.js +129 -0
  98. package/{chunk-6Z7MY3V7.js → chunk-OEJLGVBL.js} +5 -5
  99. package/{chunk-VMFTFOWF.js → chunk-OKGVNZTL.js} +35 -8
  100. package/{chunk-GEPUP7OO.js → chunk-OR2UWD6X.js} +3 -3
  101. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  102. package/{chunk-J4MOO56S.js → chunk-PNXHPLRU.js} +10 -2
  103. package/{chunk-3BMYXEUW.js → chunk-R5AJODNI.js} +1 -1
  104. package/{chunk-P5EVSOPA.js → chunk-R6EBQEQE.js} +22 -29
  105. package/chunk-RQ6CTX2E.js +164 -0
  106. package/{chunk-MS7TSPZR.js → chunk-RU36ZYSG.js} +19 -17
  107. package/{chunk-ALXHV7NK.js → chunk-RWXLPUKI.js} +40 -4
  108. package/{chunk-KQ4ONNQD.js → chunk-RXA3HAVW.js} +190 -8
  109. package/{chunk-IIVGDG4I.js → chunk-SJKULPGX.js} +13 -7
  110. package/{chunk-Q67DOFOO.js → chunk-SZC4REES.js} +212 -105
  111. package/{chunk-JRQFUXY7.js → chunk-TBAXFWOS.js} +99 -22
  112. package/{chunk-PQFHGD77.js → chunk-TBM2RS3U.js} +161 -14
  113. package/{chunk-NOF3HDSN.js → chunk-TFOIJFCM.js} +11 -9
  114. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  115. package/chunk-TY3TIUJK.js +89 -0
  116. package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
  117. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  118. package/chunk-UM7TA3K4.js +1008 -0
  119. package/{chunk-6YTOJY35.js → chunk-VBG7GWWR.js} +253 -8
  120. package/{chunk-GL3EHUR4.js → chunk-VHGYUYQ3.js} +69 -47
  121. package/chunk-VIWDGTDA.js +8 -0
  122. package/chunk-VJVNU77E.js +83 -0
  123. package/chunk-VM6IE2GN.js +8004 -0
  124. package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
  125. package/chunk-VZLO4XJD.js +17 -0
  126. package/chunk-W32HPLTL.js +13692 -0
  127. package/{chunk-AHAHBQMU.js → chunk-WDLSZMTA.js} +2 -2
  128. package/{chunk-53HEEOTT.js → chunk-WF5X57VW.js} +83 -16
  129. package/{chunk-VRTTFDBM.js → chunk-WPHY3VPF.js} +35 -22
  130. package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
  131. package/chunk-YV25TM3R.js +780 -0
  132. package/chunk-ZRAU6T47.js +56 -0
  133. package/{chunk-IBOOZVVD.js → chunk-ZTKZZY2A.js} +851 -279
  134. package/commandRegistry-ASW6IVZ3.js +833 -0
  135. package/{contentThunks-IV2T3EJC.js → contentThunks-4XNVOIR7.js} +39 -36
  136. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  137. package/{createAgentAutomationAction-JCOIEYY4.js → createAgentAutomationAction-NHHTCJMC.js} +40 -37
  138. package/createDialogAction-XEBTHDB3.js +70 -0
  139. package/{createPageAction-D2VOOLP3.js → createPageAction-VR3WW2AQ.js} +47 -43
  140. package/{chunk-FG3HKPQP.js → cursorProvider-YGGNMVWX.js} +2751 -10185
  141. package/{dbSlice-A6C6H32X.js → dbSlice-TG4MZ5EB.js} +12 -11
  142. package/{deleteFile-YG6QMJLU.js → deleteFile-KESP65GC.js} +7 -6
  143. package/{dialogCommands-H7FPUYUQ.js → dialogCommands-FJWQG3MX.js} +50 -47
  144. package/{dialogSlice-6JZOOTDS.js → dialogSlice-GVRDGCRG.js} +57 -37
  145. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  146. package/{docCreateCommands-WRG2JLGM.js → docCreateCommands-AZSK4NAG.js} +48 -44
  147. package/{docDeleteCommands-SHWJIBJS.js → docDeleteCommands-DDJMSMFZ.js} +49 -45
  148. package/{docReadCommands-WJN3WT6O.js → docReadCommands-5F5Q6EBZ.js} +47 -43
  149. package/{docStore-HUPQ2FSS.js → docStore-SUZUUWDI.js} +17 -13
  150. package/{docUpdateCommands-IE32IL6O.js → docUpdateCommands-XPNPVZOC.js} +48 -44
  151. package/{fetchMessages-EIU7UFFK.js → fetchMessages-3PXAHKCR.js} +5 -5
  152. package/{getPricing-LUSEABA6.js → getPricing-DOBBZLOK.js} +4 -4
  153. package/{handleSendMessageAction-DFPMQ7YM.js → handleSendMessageAction-VC6VTFKS.js} +109 -42
  154. package/index.js +87 -884
  155. package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
  156. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-UYCKO7YZ.js} +2 -2
  157. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
  158. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
  159. package/{machineCommands-M2T2I5NF.js → machineCommands-M634V2L3.js} +98 -89
  160. package/machineWsRunDispatch-Z3HUSTFI.js +154 -0
  161. package/{memberThunks-P2ECUJ56.js → memberThunks-5S5D3N4U.js} +20 -18
  162. package/{models-T3SG6MJ5.js → models-PQU25T6Q.js} +2 -2
  163. package/oauthTokenStore-ITEB663N.js +23 -0
  164. package/package.json +1 -1
  165. package/processSpawn-SOAV3FEV.js +11 -0
  166. package/profileConfig-ZGOFORWV.js +43 -0
  167. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-HAQWVAQX.js} +7 -7
  168. package/{providerRegistry-757OWH3O.js → providerRegistry-5FGWB3X5.js} +11 -7
  169. package/{read-COE3ZYR6.js → read-LSYFLSIM.js} +8 -7
  170. package/{readDocTool-5USN4A6V.js → readDocTool-XWRXV3DR.js} +5 -3
  171. package/{readlineWorkspace-XQRDGWRZ.js → readlineWorkspace-J3YD3DNW.js} +2596 -2032
  172. package/{removeDialogAgentAction-J6X5QMTA.js → removeDialogAgentAction-4TEFC3VL.js} +22 -26
  173. package/{runAgentClientLoop-5ZA62FBA.js → runAgentClientLoop-APSMCLAF.js} +79 -72
  174. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
  175. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  176. package/{setDialogExtraReferencesAction-WX5VTY6O.js → setDialogExtraReferencesAction-LSEN44OY.js} +16 -14
  177. package/{setPrimaryDialogAgentAction-FN22THHT.js → setPrimaryDialogAgentAction-SR366X5A.js} +23 -27
  178. package/{chunk-GP5LKBUZ.js → settingThunks-CTVPPGIN.js} +226 -940
  179. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  180. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  181. package/{spaceCommands-5GLCWZPO.js → spaceCommands-3UK63WPE.js} +51 -47
  182. package/{streamAgentChatTurn-6UZJMYRB.js → streamAgentChatTurn-DNY2PSRW.js} +215 -115
  183. package/{switchDialogAgentAction-LVTEV3FR.js → switchDialogAgentAction-M6NAFOOU.js} +19 -20
  184. package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
  185. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-AD7CXTA4.js} +4 -3
  186. package/tools-X5UWATZK.js +117 -0
  187. package/{tuiSummaryLlmCaller-OHHFTHMG.js → tuiSummaryLlmCaller-DEH7ZEM6.js} +25 -23
  188. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  189. package/{updateDialogTitleAction-QTKNIURB.js → updateDialogTitleAction-YSY5BF5A.js} +84 -45
  190. package/action-P4TNFGAD.js +0 -31
  191. package/agentListCommands-B2V4YAC4.js +0 -410
  192. package/agentRecordCommands-G4KK4R7H.js +0 -128
  193. package/agentRunCommand-UTZJA23G.js +0 -156
  194. package/browser-image-compression-MFDTD7K6.js +0 -1763
  195. package/chatQueueReduxAdapter-2P6NFX64.js +0 -186
  196. package/chunk-CQ3WA2NE.js +0 -299
  197. package/chunk-M76ECQRD.js +0 -13658
  198. package/chunk-MEYIRKDN.js +0 -8967
  199. package/chunk-PUOC4YRO.js +0 -394
  200. package/chunk-Q5FJJ6XI.js +0 -103
  201. package/chunk-S7Z2HMCN.js +0 -25
  202. package/chunk-T75QD6AB.js +0 -20923
  203. package/chunk-Y5GCAMGP.js +0 -9
  204. package/chunk-YPREESF4.js +0 -225
  205. package/createDialogAction-NGG7YVNU.js +0 -65
  206. package/machineWsRunDispatch-ISBKOOD7.js +0 -144
  207. package/settingSlice-P4ZW7K5X.js +0 -204
  208. package/syncMapping-N6RGXGBW.js +0 -437
  209. package/tools-KMGFWO43.js +0 -110
  210. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  211. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -1,186 +0,0 @@
1
- import {
2
- createChatQueueRuntime,
3
- createTurnRequest
4
- } from "./chunk-YPREESF4.js";
5
- import {
6
- handleSendMessage
7
- } from "./chunk-T75QD6AB.js";
8
- import "./chunk-MC4XLIJ7.js";
9
- import "./chunk-3BMYXEUW.js";
10
- import "./chunk-YYLHWIW6.js";
11
- import "./chunk-AGGIDPCZ.js";
12
- import "./chunk-NOF3HDSN.js";
13
- import "./chunk-BFDFRLLQ.js";
14
- import "./chunk-5RGU3J7P.js";
15
- import {
16
- clearPendingUserInputQueue,
17
- dequeueUserInput,
18
- enqueueUserInput,
19
- getLoopStopReason,
20
- getPendingUserInputQueue
21
- } from "./chunk-6YTOJY35.js";
22
- import "./chunk-M76ECQRD.js";
23
- import "./chunk-YDH3FDFQ.js";
24
- import "./chunk-HKNXJGEC.js";
25
- import "./chunk-P5EVSOPA.js";
26
- import "./chunk-PSCNXBYA.js";
27
- import "./chunk-GQBOR3G6.js";
28
- import "./chunk-BYXBJQAS.js";
29
- import "./chunk-OIVSQH2O.js";
30
- import "./chunk-DWLEOOGR.js";
31
- import "./chunk-HVURBGF3.js";
32
- import "./chunk-ONXOABJR.js";
33
- import "./chunk-W7XHHYWM.js";
34
- import "./chunk-HNMXYYJR.js";
35
- import "./chunk-7S4YWN7P.js";
36
- import "./chunk-ACTMNVHM.js";
37
- import "./chunk-Q67DOFOO.js";
38
- import "./chunk-GP5LKBUZ.js";
39
- import "./chunk-Y5GCAMGP.js";
40
- import "./chunk-QDSINZM3.js";
41
- import "./chunk-KX6YBIHG.js";
42
- import "./chunk-AHAHBQMU.js";
43
- import "./chunk-UAD2WT54.js";
44
- import "./chunk-VRTTFDBM.js";
45
- import "./chunk-VMFTFOWF.js";
46
- import "./chunk-WWC7I6TA.js";
47
- import "./chunk-ABQYVJBJ.js";
48
- import "./chunk-QSJ3HFEF.js";
49
- import "./chunk-WV42OMV7.js";
50
- import "./chunk-BNGW5ASC.js";
51
- import "./chunk-M2EJHDJP.js";
52
- import "./chunk-UKWGR5SS.js";
53
- import "./chunk-QOKAKDPE.js";
54
- import "./chunk-OW765XBU.js";
55
- import "./chunk-SEJ5OS6F.js";
56
- import "./chunk-GBRG75BQ.js";
57
- import "./chunk-KUG52IAP.js";
58
- import "./chunk-3EUW3WEO.js";
59
- import "./chunk-U6VC4MU4.js";
60
- import "./chunk-LCBAMY2M.js";
61
- import "./chunk-4SN6J65J.js";
62
- import "./chunk-CF7PE763.js";
63
- import "./chunk-G3SUCT4W.js";
64
- import "./chunk-4VNS5WPM.js";
65
-
66
- // packages/chat/queue/chatQueueReduxAdapter.ts
67
- var ChatQueueReduxAdapter = class {
68
- runtimes = /* @__PURE__ */ new Map();
69
- store;
70
- opts;
71
- /** Pending drain promises per dialog, so notifyTurnEnd can be awaited. */
72
- pendingDrains = /* @__PURE__ */ new Map();
73
- constructor(store, opts = {}) {
74
- this.store = store;
75
- this.opts = opts;
76
- }
77
- /**
78
- * Get (or lazily create) the runtime for a dialog. The runtime is seeded from
79
- * dialogRuntimeStore `pendingUserInputQueue` so we don't lose queued items
80
- * written before the adapter existed.
81
- */
82
- getRuntime(dialogKey) {
83
- let rt = this.runtimes.get(dialogKey);
84
- if (rt) return rt;
85
- const legacyQueue = getPendingUserInputQueue(dialogKey);
86
- const seed = {
87
- running: false,
88
- queue: Array.isArray(legacyQueue) ? legacyQueue.map((t) => createTurnRequest(t)) : [],
89
- drainPaused: getLoopStopReason(dialogKey) === "pending",
90
- lastDrainError: null
91
- };
92
- rt = createChatQueueRuntime(seed);
93
- this.runtimes.set(dialogKey, rt);
94
- rt.on("drain-ready", ({ text }) => {
95
- const dispatch = this.store.dispatch;
96
- const runtime = rt;
97
- const promise = (async () => {
98
- try {
99
- if (this.opts.sendDrainedText) {
100
- await this.opts.sendDrainedText({ dialogKey, text, dispatch });
101
- } else {
102
- await dispatch(
103
- handleSendMessage({
104
- dialogKey,
105
- userInput: text
106
- })
107
- );
108
- }
109
- runtime.send({ type: "dequeue" });
110
- dequeueUserInput({ dialogKey });
111
- } catch (error) {
112
- const message = error instanceof Error ? error.message : typeof error === "string" ? error : "drain send failed";
113
- runtime.send({ type: "drain-error", message });
114
- } finally {
115
- this.pendingDrains.delete(dialogKey);
116
- }
117
- })();
118
- this.pendingDrains.set(dialogKey, promise);
119
- });
120
- return rt;
121
- }
122
- /** Drop a dialog's runtime (e.g. when the dialog is closed/deleted). */
123
- disposeRuntime(dialogKey) {
124
- const rt = this.runtimes.get(dialogKey);
125
- if (rt) {
126
- rt.dispose();
127
- this.runtimes.delete(dialogKey);
128
- }
129
- }
130
- /** Call when an agent turn starts streaming for this dialog. */
131
- notifyTurnStart(dialogKey) {
132
- this.getRuntime(dialogKey).send({ type: "turn-start" });
133
- }
134
- /**
135
- * Call when an agent turn ends for this dialog.
136
- * `ok` false without `aborted` keeps the queue (failure stop); `aborted`
137
- * clears the queue (user abandoned follow-ups) both in the core and in the
138
- * dialogRuntimeStore shadow.
139
- *
140
- * Returns a promise that resolves once any drain triggered by this turn-end
141
- * has committed (sent + dequeued) or failed. Callers that need to assert on
142
- * the post-drain state should await it.
143
- */
144
- notifyTurnEnd(dialogKey, outcome) {
145
- const rt = this.getRuntime(dialogKey);
146
- rt.send({ type: "turn-end", ...outcome });
147
- if (outcome.aborted) {
148
- clearPendingUserInputQueue({ dialogKey });
149
- }
150
- const pending = this.pendingDrains.get(dialogKey);
151
- return pending ? pending.then(() => void 0) : Promise.resolve();
152
- }
153
- /**
154
- * Enqueue a user input through the adapter. This writes to both the core
155
- * runtime and the dialogRuntimeStore queue so existing UI hooks keep working
156
- * during the migration.
157
- *
158
- * Order matters: we touch the runtime first (creating it if needed, seeded
159
- * from the *current* store shadow) and then mirror into the store. Doing it
160
- * the other way around would let the seed read back the value we just wrote
161
- * and double-count it.
162
- */
163
- enqueue(dialogKey, text) {
164
- const runtime = this.getRuntime(dialogKey);
165
- runtime.send({ type: "enqueue", text });
166
- enqueueUserInput({ text, dialogKey });
167
- return {
168
- accepted: true,
169
- queueLength: runtime.getState().queue.length
170
- };
171
- }
172
- /** Current queue snapshot (from the core runtime). */
173
- getQueue(dialogKey) {
174
- return this.getRuntime(dialogKey).getState().queue.map((req) => req.text);
175
- }
176
- /** Reflect `loopStopReason === "pending"` into the runtime's pause flag. */
177
- syncDrainPause(dialogKey) {
178
- const paused = getLoopStopReason(dialogKey) === "pending";
179
- const rt = this.getRuntime(dialogKey);
180
- if (paused) rt.send({ type: "pause-drain" });
181
- else rt.send({ type: "resume-drain" });
182
- }
183
- };
184
- export {
185
- ChatQueueReduxAdapter
186
- };
package/chunk-CQ3WA2NE.js DELETED
@@ -1,299 +0,0 @@
1
- // packages/agent-runtime/declaredToolNames.ts
2
- function extractDeclaredToolNames(tools) {
3
- if (!Array.isArray(tools)) return void 0;
4
- const names = /* @__PURE__ */ new Set();
5
- for (const t of tools) {
6
- const fn = t?.function;
7
- if (fn && typeof fn.name === "string" && fn.name) names.add(fn.name);
8
- }
9
- return names;
10
- }
11
-
12
- // packages/agent-runtime/outboundHistorySanitize.ts
13
- function sanitizeForOutbound(messages, tools) {
14
- return sanitizeOutboundHistory(messages, {
15
- declaredToolNames: extractDeclaredToolNames(tools)
16
- });
17
- }
18
- function stableToolCallId(assistantIndex, callIndex) {
19
- return `call_sanitize_${assistantIndex}_${callIndex}`;
20
- }
21
- function isString(v) {
22
- return typeof v === "string";
23
- }
24
- function isNonEmptyString(v) {
25
- return typeof v === "string" && v.length > 0;
26
- }
27
- function joinLines(...parts) {
28
- return parts.filter(isNonEmptyString).join("\n");
29
- }
30
- function jsonStringifyArguments(args) {
31
- if (typeof args === "string") return args;
32
- try {
33
- return JSON.stringify(args ?? "");
34
- } catch {
35
- return "";
36
- }
37
- }
38
- function renderToolCallAsText(call) {
39
- const name = call?.function?.name ?? "unknown";
40
- const rawArgs = call?.function?.arguments;
41
- const args = jsonStringifyArguments(rawArgs);
42
- return `[tool_call: ${name}(${args})]`;
43
- }
44
- function renderToolResultAsText(message) {
45
- const name = isNonEmptyString(message.toolName) ? message.toolName : "tool";
46
- const body = typeof message.content === "string" ? message.content : "";
47
- return `[tool_result: ${name}: ${body}]`;
48
- }
49
- function normalizeToolCall(call, assistantIndex, callIndex) {
50
- if (!call || typeof call !== "object") return null;
51
- const c = call;
52
- const fn = c.function;
53
- if (!fn || typeof fn !== "object" || !isString(fn.name)) return null;
54
- const id = isNonEmptyString(c.id) ? c.id : stableToolCallId(assistantIndex, callIndex);
55
- return {
56
- id,
57
- type: isString(c.type) && c.type ? c.type : "function",
58
- function: { name: fn.name, arguments: jsonStringifyArguments(fn.arguments) },
59
- ...typeof c.thought_signature === "string" ? { thought_signature: c.thought_signature } : {}
60
- };
61
- }
62
- function sanitizeOutboundHistory(messages, options) {
63
- if (!Array.isArray(messages) || messages.length === 0) return messages;
64
- const declared = options?.declaredToolNames;
65
- const candidateCallIds = /* @__PURE__ */ new Set();
66
- for (let i = 0; i < messages.length; i++) {
67
- const m = messages[i];
68
- if (m.role !== "assistant" || !Array.isArray(m.tool_calls)) continue;
69
- m.tool_calls.forEach((call, callIndex) => {
70
- const name = call?.function?.name;
71
- const declaredAllows = !declared || isString(name) && declared.has(name);
72
- if (!declaredAllows) return;
73
- if (!hasParsableObjectArguments(call?.function?.arguments)) {
74
- return;
75
- }
76
- const id = isNonEmptyString(call?.id) ? call.id : stableToolCallId(i, callIndex);
77
- candidateCallIds.add(id);
78
- });
79
- }
80
- const resultIds = /* @__PURE__ */ new Set();
81
- for (const m of messages) {
82
- if (m.role === "tool" && isNonEmptyString(m.tool_call_id)) {
83
- resultIds.add(m.tool_call_id);
84
- }
85
- }
86
- const keepCallIds = /* @__PURE__ */ new Set();
87
- for (const id of candidateCallIds) {
88
- if (resultIds.has(id)) keepCallIds.add(id);
89
- }
90
- const out = [];
91
- for (let i = 0; i < messages.length; i++) {
92
- const m = messages[i];
93
- if (m.role === "assistant") {
94
- let toolCalls;
95
- const downgradedLines = [];
96
- if (Array.isArray(m.tool_calls) && m.tool_calls.length > 0) {
97
- const kept = [];
98
- m.tool_calls.forEach((call, callIndex) => {
99
- const name = call?.function?.name;
100
- const declaredAllows = !declared || isString(name) && declared.has(name);
101
- const id = isNonEmptyString(call?.id) ? call.id : stableToolCallId(i, callIndex);
102
- const keepStructural = declaredAllows && keepCallIds.has(id);
103
- if (keepStructural) {
104
- const normalized = normalizeToolCall(call, i, callIndex);
105
- if (normalized) kept.push(normalized);
106
- } else {
107
- downgradedLines.push(renderToolCallAsText(call));
108
- }
109
- });
110
- toolCalls = kept.length > 0 ? kept : void 0;
111
- }
112
- const downgradedText = joinLines(...downgradedLines);
113
- const contentWithDowngrade = downgradedText.length > 0 ? combineContentWithText(m.content, downgradedText) : m.content;
114
- const sanitizedAssistant = {
115
- ...m,
116
- content: contentWithDowngrade,
117
- tool_calls: toolCalls
118
- };
119
- if (!toolCalls) delete sanitizedAssistant.tool_calls;
120
- out.push(sanitizedAssistant);
121
- continue;
122
- }
123
- if (m.role === "tool") {
124
- const id = isNonEmptyString(m.tool_call_id) ? m.tool_call_id : "";
125
- if (id && keepCallIds.has(id)) {
126
- out.push({ ...m, content: m.content ?? "", tool_call_id: id });
127
- } else {
128
- out.push({
129
- role: "assistant",
130
- content: renderToolResultAsText(m)
131
- });
132
- }
133
- continue;
134
- }
135
- out.push({ ...m });
136
- }
137
- return out;
138
- }
139
- function combineContentWithText(base, extra) {
140
- if (typeof base === "string") {
141
- return base ? `${base}
142
- ${extra}` : extra;
143
- }
144
- if (Array.isArray(base)) {
145
- return [...base, { type: "text", text: extra }];
146
- }
147
- return extra;
148
- }
149
- function hasParsableObjectArguments(raw) {
150
- if (raw === void 0) return true;
151
- if (raw === null || typeof raw === "number" || typeof raw === "boolean") {
152
- return false;
153
- }
154
- if (typeof raw !== "string") return true;
155
- if (raw.trim() === "") return true;
156
- try {
157
- const parsed = JSON.parse(raw);
158
- return parsed !== null && typeof parsed === "object";
159
- } catch {
160
- return false;
161
- }
162
- }
163
- var STRICT_JSON_STRING_TOKEN = /^"(?:[^"\\\u0000-\u001F]|\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4})*"$/;
164
- function isStrictJsonStringToken(value) {
165
- if (!STRICT_JSON_STRING_TOKEN.test(value)) return false;
166
- try {
167
- return typeof JSON.parse(value) === "string";
168
- } catch {
169
- return false;
170
- }
171
- }
172
- function closersOf(openStack) {
173
- return openStack.slice().reverse().map((ch) => ch === "{" ? "}" : "]").join("");
174
- }
175
- function scanJsonForTailRepair(input) {
176
- const stack = [];
177
- let inString = false;
178
- let escaped = false;
179
- let lastCommaOutsideString = null;
180
- for (let i = 0; i < input.length; i += 1) {
181
- const ch = input[i];
182
- if (inString) {
183
- if (escaped) escaped = false;
184
- else if (ch === "\\") escaped = true;
185
- else if (ch === '"') inString = false;
186
- continue;
187
- }
188
- if (ch === '"') {
189
- inString = true;
190
- continue;
191
- }
192
- if (ch === "{" || ch === "[") {
193
- stack.push(ch);
194
- continue;
195
- }
196
- if (ch === "}" || ch === "]") {
197
- const open = stack.pop();
198
- if (open !== (ch === "}" ? "{" : "[")) return null;
199
- continue;
200
- }
201
- if (ch === ",") {
202
- lastCommaOutsideString = { index: i, closers: closersOf(stack) };
203
- continue;
204
- }
205
- }
206
- return { inString, closers: closersOf(stack), lastCommaOutsideString };
207
- }
208
- function repairTruncatedToolArguments(raw) {
209
- if (typeof raw !== "string") return null;
210
- const withoutTrailingSpace = raw.replace(/\s+$/, "");
211
- const endsWithComma = withoutTrailingSpace.endsWith(",");
212
- const trimmed = endsWithComma ? withoutTrailingSpace.slice(0, -1).replace(/\s+$/, "") : withoutTrailingSpace;
213
- if (trimmed === "" || trimmed.endsWith(",")) return null;
214
- const scan = scanJsonForTailRepair(trimmed);
215
- if (!scan || scan.inString) return null;
216
- const lastChar = trimmed[trimmed.length - 1];
217
- const tailIsCompleteToken = endsWithComma || lastChar === '"' || lastChar === "}" || lastChar === "]";
218
- if (!tailIsCompleteToken) return null;
219
- const candidates = [trimmed + scan.closers];
220
- const lastComma = scan.lastCommaOutsideString;
221
- if (lastComma && lastComma.index > 0) {
222
- const tailAfterComma = trimmed.slice(lastComma.index + 1).trim();
223
- if (isStrictJsonStringToken(tailAfterComma)) {
224
- const head = trimmed.slice(0, lastComma.index);
225
- candidates.push(head + lastComma.closers);
226
- }
227
- }
228
- for (const candidate of candidates) {
229
- try {
230
- const parsed = JSON.parse(candidate);
231
- if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed) && Object.keys(parsed).length > 0) {
232
- return candidate;
233
- }
234
- } catch {
235
- }
236
- }
237
- return null;
238
- }
239
- function downgradeUnparsableToolCalls(messages) {
240
- if (!Array.isArray(messages) || messages.length === 0) {
241
- return { messages, downgraded: 0 };
242
- }
243
- const poisonIds = /* @__PURE__ */ new Set();
244
- for (let i = 0; i < messages.length; i++) {
245
- const m = messages[i];
246
- if (m.role !== "assistant" || !Array.isArray(m.tool_calls)) continue;
247
- m.tool_calls.forEach((call, callIndex) => {
248
- if (!hasParsableObjectArguments(call?.function?.arguments)) {
249
- const id = isNonEmptyString(call?.id) ? call.id : stableToolCallId(i, callIndex);
250
- poisonIds.add(id);
251
- }
252
- });
253
- }
254
- if (poisonIds.size === 0) return { messages, downgraded: 0 };
255
- let downgraded = 0;
256
- const out = [];
257
- for (const m of messages) {
258
- if (m.role === "assistant" && Array.isArray(m.tool_calls) && m.tool_calls.length > 0) {
259
- const kept = [];
260
- const lines = [];
261
- for (const call of m.tool_calls) {
262
- if (!hasParsableObjectArguments(call?.function?.arguments)) {
263
- lines.push(renderToolCallAsText(call));
264
- downgraded++;
265
- } else {
266
- kept.push(call);
267
- }
268
- }
269
- if (lines.length === 0) {
270
- out.push(m);
271
- continue;
272
- }
273
- const sanitized = {
274
- ...m,
275
- content: combineContentWithText(m.content, joinLines(...lines)),
276
- tool_calls: kept.length > 0 ? kept : void 0
277
- };
278
- if (kept.length === 0) delete sanitized.tool_calls;
279
- out.push(sanitized);
280
- continue;
281
- }
282
- if (m.role === "tool") {
283
- const id = isNonEmptyString(m.tool_call_id) ? m.tool_call_id : "";
284
- if (id && poisonIds.has(id)) {
285
- out.push({ role: "assistant", content: renderToolResultAsText(m) });
286
- continue;
287
- }
288
- }
289
- out.push(m);
290
- }
291
- return { messages: out, downgraded };
292
- }
293
-
294
- export {
295
- sanitizeForOutbound,
296
- hasParsableObjectArguments,
297
- repairTruncatedToolArguments,
298
- downgradeUnparsableToolCalls
299
- };