nolo-cli 0.97.0-alpha.1 → 0.97.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 (182) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-JIG7MRXQ.js → _executeModel-DYHTQJZC.js} +68 -63
  3. package/{action-YVYQEAAV.js → action-GI44T4DR.js} +10 -10
  4. package/{addContentAction-O7R66HEX.js → addContentAction-B2DRF7P6.js} +9 -9
  5. package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-T3I7IXPK.js} +15 -17
  6. package/{agentDeleteCommand-THAZ5GQS.js → agentDeleteCommand-LLNNP3AM.js} +47 -43
  7. package/{agentEmailCommands-A7T7AJA4.js → agentEmailCommands-EO3H2LDW.js} +90 -82
  8. package/agentListCommands-J3MWAZWO.js +741 -0
  9. package/{agentMachineCommands-DM4N5PK3.js → agentMachineCommands-V65VOQNK.js} +42 -38
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-EMZCM6VA.js} +1 -1
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-HF4A42D4.js} +1 -1
  12. package/agentRecordCommands-VY35OMX3.js +136 -0
  13. package/{agentRunCommand-JVSTGVG2.js → agentRunCommand-CSEX4QIH.js} +90 -80
  14. package/{agentRunControl-WCTKX5VL.js → agentRunControl-5T64LM2M.js} +2 -2
  15. package/{agentRuntimeLocal-73CVIWBB.js → agentRuntimeLocal-AY6YNUAL.js} +44 -36
  16. package/{agentSlice-6X4JL2E3.js → agentSlice-FOZUXW7X.js} +11 -11
  17. package/{appDeleteCommands-S7CK4OYL.js → appDeleteCommands-QTTL3QF3.js} +42 -38
  18. package/{appDeployCommands-U6TMS5GO.js → appDeployCommands-43LJECGV.js} +42 -38
  19. package/{appDeployStatusCommands-DTNQJ3LJ.js → appDeployStatusCommands-L5BKOLYW.js} +42 -38
  20. package/{appGetCommands-3SHZEQD5.js → appGetCommands-HOFZKOPC.js} +42 -38
  21. package/{appListCommands-E2ZMIUB6.js → appListCommands-I7C3SJCE.js} +42 -38
  22. package/{authCommand-F4EFRRX6.js → authCommand-2YPMMIJN.js} +117 -23
  23. package/{authCommands-RGOGCPP6.js → authCommands-FFDS4FVX.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-CALVIJTX.js} +6 -5
  25. package/{chatQueueReduxAdapter-LAQEZQKE.js → chatQueueReduxAdapter-NMEZRYC2.js} +30 -29
  26. package/{chromeCommands-FZYAU75D.js → chromeCommands-K27J4OVZ.js} +124 -28
  27. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-IXRLN57H.js} +4 -3
  28. package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
  29. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  30. package/{chunk-YQTQQX2H.js → chunk-2UV22D2F.js} +1 -1
  31. package/{chunk-R2B3MIZA.js → chunk-3BFMH6GE.js} +6 -7
  32. package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
  33. package/{chunk-QIAVMDHY.js → chunk-3LX6YE3P.js} +4 -4
  34. package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
  35. package/chunk-4LCOCOR5.js +50 -0
  36. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  37. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  38. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  39. package/chunk-5J3PYNUP.js +255 -0
  40. package/chunk-5MMAK75Q.js +15 -0
  41. package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
  42. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  43. package/{chunk-6YTOJY35.js → chunk-6D2JFXLY.js} +35 -0
  44. package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
  45. package/{chunk-IIVGDG4I.js → chunk-6PHKBY2Q.js} +10 -4
  46. package/{chunk-WADCY6G6.js → chunk-6ZWMH6TJ.js} +111 -41
  47. package/{chunk-ABQYVJBJ.js → chunk-7CHC4W22.js} +1 -1
  48. package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
  49. package/{chunk-ZWUOR654.js → chunk-7WCQEMPB.js} +971 -1093
  50. package/{chunk-BLJWCTRL.js → chunk-AOPCEXTB.js} +1 -1
  51. package/{chunk-LXF6XQDT.js → chunk-AQ3I6DZE.js} +865 -207
  52. package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
  53. package/{chunk-RG6JBBX5.js → chunk-AWF3WO5R.js} +166 -13
  54. package/{chunk-GPCZ7UXG.js → chunk-AZRHIN5B.js} +1 -1
  55. package/chunk-BMQ2MJUK.js +153 -0
  56. package/{chunk-HWIZU4OL.js → chunk-C3VLSD4K.js} +236 -36
  57. package/{chunk-3IIEFNGY.js → chunk-C53ZG23R.js} +2 -2
  58. package/chunk-CHOZJMJS.js +78 -0
  59. package/{chunk-HJUYAD4A.js → chunk-CPUFH46E.js} +8 -8
  60. package/{chunk-LS2ZANRJ.js → chunk-CTUQJVQM.js} +1 -1
  61. package/{chunk-BP4XNZRM.js → chunk-CU3QB4HW.js} +3 -3
  62. package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
  63. package/{chunk-KQ4ONNQD.js → chunk-DAWDCRIG.js} +82 -8
  64. package/{chunk-VLTIYV3X.js → chunk-DCLMZ5TX.js} +4 -4
  65. package/{chunk-UKZDAFYT.js → chunk-DSSTTEKI.js} +6 -10
  66. package/{chunk-LZIWMYX4.js → chunk-EKS2APRJ.js} +21 -5
  67. package/{chunk-HVURBGF3.js → chunk-ESRMFY7G.js} +2 -2
  68. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  69. package/chunk-FD5K6MPI.js +7808 -0
  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-JCIHVIVG.js → chunk-HKTIX4ZE.js} +23 -76
  74. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  75. package/{chunk-H62HCIUP.js → chunk-HYZIYH2H.js} +11 -10
  76. package/{chunk-3VNWWVKB.js → chunk-I3QNET24.js} +30 -17
  77. package/{chunk-WV42OMV7.js → chunk-IAESIMK7.js} +4 -4
  78. package/{chunk-6FVRQBRR.js → chunk-JJ7P5CIY.js} +56 -34
  79. package/{chunk-3WD6RUUJ.js → chunk-JZ5II5UV.js} +15 -20
  80. package/{chunk-JRQFUXY7.js → chunk-KCDUTE5V.js} +96 -19
  81. package/{chunk-Y5HW6GM2.js → chunk-KHVJXNRY.js} +100 -100
  82. package/{chunk-7S4YWN7P.js → chunk-MX574M24.js} +1 -1
  83. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  84. package/{chunk-53HEEOTT.js → chunk-O26PCYLS.js} +80 -13
  85. package/{chunk-3DII57IT.js → chunk-O2OWEFII.js} +1 -1
  86. package/{chunk-TDRTS7QW.js → chunk-O6JPWEEK.js} +77 -17
  87. package/chunk-OCZKATRC.js +129 -0
  88. package/{chunk-6D6VBVEW.js → chunk-OTEMQQZI.js} +80 -14
  89. package/{chunk-7OLPQSMQ.js → chunk-OYOWA3CP.js} +24 -5
  90. package/chunk-P6GMCCAT.js +870 -0
  91. package/{chunk-ESWUWEFS.js → chunk-PQTSOHBT.js} +13 -13
  92. package/{chunk-WGR3J4Q6.js → chunk-Q4GP72HX.js} +9 -3
  93. package/{chunk-DHDMC6FO.js → chunk-QKUMVP3O.js} +11 -6
  94. package/{chunk-TZJJ77KQ.js → chunk-RMAWULCS.js} +498 -480
  95. package/{chunk-V4MJDUSR.js → chunk-RSEEDUMS.js} +2 -2
  96. package/{chunk-UZGQNTVW.js → chunk-S5XGT6GB.js} +5 -3
  97. package/{chunk-76WEAXJB.js → chunk-SACTCJAC.js} +18 -15
  98. package/{chunk-AFUORTY4.js → chunk-SONWNI3L.js} +21 -21
  99. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  100. package/{chunk-OF7AQZUG.js → chunk-TU5NE4U3.js} +9 -84
  101. package/chunk-TY3TIUJK.js +89 -0
  102. package/chunk-UEGYKNHO.js +13349 -0
  103. package/chunk-UNYJU5L6.js +780 -0
  104. package/{chunk-J4MOO56S.js → chunk-UQNS32WZ.js} +10 -2
  105. package/chunk-VIWDGTDA.js +8 -0
  106. package/chunk-VJVNU77E.js +83 -0
  107. package/{chunk-54ADB4W7.js → chunk-VYN7O3OY.js} +1 -1
  108. package/{chunk-JAXOVNM4.js → chunk-WILHZY7K.js} +45 -45
  109. package/{chunk-UKWGR5SS.js → chunk-WIWM4FE3.js} +187 -398
  110. package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
  111. package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
  112. package/{chunk-SNPMM7H3.js → chunk-Y6AZRODX.js} +13 -13
  113. package/{chunk-SQQVLHMH.js → chunk-YJKDTJ2X.js} +7 -7
  114. package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
  115. package/{chunk-TOP2VXOR.js → chunk-Z4CSIXYP.js} +2 -2
  116. package/{chunk-2F7RJC6L.js → chunk-ZOVKKMF6.js} +1 -1
  117. package/chunk-ZRAU6T47.js +56 -0
  118. package/{chunk-Z77CRGTW.js → chunk-ZYWQNCBN.js} +1 -1
  119. package/commandRegistry-MRPLKSWP.js +833 -0
  120. package/{contentThunks-ATLWNC2D.js → contentThunks-TD5YOAQM.js} +32 -30
  121. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  122. package/{createAgentAutomationAction-QYYWTVUR.js → createAgentAutomationAction-XUG62ANM.js} +32 -30
  123. package/{createDialogAction-7I5VGWCR.js → createDialogAction-L3CMZKNL.js} +36 -33
  124. package/{createPageAction-WNURYCWU.js → createPageAction-WJ3MX6JS.js} +38 -36
  125. package/{chunk-YVIV7WT4.js → cursorProvider-YGGNMVWX.js} +2496 -9890
  126. package/{dbSlice-XVWBAGYN.js → dbSlice-DQ32LYTJ.js} +8 -8
  127. package/{deleteFile-YG6QMJLU.js → deleteFile-NX6QHCWZ.js} +3 -3
  128. package/{dialogCommands-RILHDRQ5.js → dialogCommands-VM3I4HBW.js} +45 -41
  129. package/{dialogSlice-W5BYELVR.js → dialogSlice-DSHG3YUE.js} +36 -29
  130. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  131. package/{docCreateCommands-GSTPU7SG.js → docCreateCommands-TYUJPCOP.js} +44 -40
  132. package/{docDeleteCommands-2FC3LSUT.js → docDeleteCommands-5XEG2LXO.js} +44 -40
  133. package/{docReadCommands-27POBA34.js → docReadCommands-M6RO6QHV.js} +43 -39
  134. package/{docStore-7LAHBFP2.js → docStore-RYOGMPEF.js} +11 -10
  135. package/{docUpdateCommands-U4II6VCO.js → docUpdateCommands-DKOFTZRX.js} +44 -40
  136. package/{fetchMessages-EIU7UFFK.js → fetchMessages-67MEFPZR.js} +2 -2
  137. package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +3 -3
  138. package/{handleSendMessageAction-SKMJMVRU.js → handleSendMessageAction-XH742B27.js} +91 -83
  139. package/index.js +87 -884
  140. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-EBRS242U.js} +2 -2
  141. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-5W6IJRAD.js} +6 -6
  142. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-3LRMNLCM.js} +1 -1
  143. package/{machineCommands-S2RNYKVJ.js → machineCommands-BKYVMMEG.js} +85 -77
  144. package/{machineWsRunDispatch-JC44LBLP.js → machineWsRunDispatch-QOBSQQ72.js} +82 -74
  145. package/{memberThunks-QGFLFVCI.js → memberThunks-5ZXPR63F.js} +9 -9
  146. package/{models-T3SG6MJ5.js → models-ZPU5EDF4.js} +2 -2
  147. package/oauthTokenStore-ITEB663N.js +23 -0
  148. package/package.json +1 -1
  149. package/pdf-U6KSUEZZ.js +26435 -0
  150. package/processSpawn-SOAV3FEV.js +11 -0
  151. package/profileConfig-ZGOFORWV.js +43 -0
  152. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-76AVU3HD.js} +7 -7
  153. package/{providerRegistry-757OWH3O.js → providerRegistry-Z62NC45X.js} +11 -7
  154. package/{read-COE3ZYR6.js → read-EPTJRAEF.js} +5 -5
  155. package/{readDocTool-5USN4A6V.js → readDocTool-W4NDXNEX.js} +5 -3
  156. package/{readlineWorkspace-VZSBXUH4.js → readlineWorkspace-7P7IORIT.js} +2450 -2022
  157. package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-BVAWQKXE.js} +17 -19
  158. package/{runAgentClientLoop-ZYENU7GH.js → runAgentClientLoop-7WXN6I7L.js} +62 -58
  159. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-3USD722U.js} +3 -3
  160. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  161. package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-LYY45IAD.js} +12 -11
  162. package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-73IL7DLU.js} +18 -20
  163. package/{settingSlice-ZQZVUPKK.js → settingSlice-Q6EKL7EQ.js} +9 -9
  164. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  165. package/{spaceCommands-QB3NNEMN.js → spaceCommands-QFP4ZXKG.js} +44 -40
  166. package/{streamAgentChatTurn-43GPPQSN.js → streamAgentChatTurn-B4PXPJJS.js} +184 -91
  167. package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-UUXDSQ6X.js} +15 -17
  168. package/{tableCommands-O6NWHFKV.js → tableCommands-G7RV3RU3.js} +4 -4
  169. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-INIQCPGY.js} +3 -3
  170. package/{tools-SX6Y4STZ.js → tools-QFS2L7BU.js} +55 -51
  171. package/{tuiSummaryLlmCaller-T2SHYMDZ.js → tuiSummaryLlmCaller-74NRRLVW.js} +18 -16
  172. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  173. package/{updateDialogTitleAction-VAKA4ZNY.js → updateDialogTitleAction-HTDYCNNZ.js} +81 -43
  174. package/agentListCommands-BRZFEJQM.js +0 -406
  175. package/agentRecordCommands-TTAEMNHB.js +0 -128
  176. package/chunk-K4YGZD3P.js +0 -18881
  177. package/chunk-M76ECQRD.js +0 -13658
  178. package/chunk-Q5FJJ6XI.js +0 -103
  179. package/chunk-S7Z2HMCN.js +0 -25
  180. package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
  181. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  182. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -1,3 +1,11 @@
1
+ import {
2
+ scanValidationDetails
3
+ } from "./chunk-BMQ2MJUK.js";
4
+ import {
5
+ CONTEXT_OVERFLOW_ACTIONS,
6
+ CONTEXT_TOO_LARGE_ACTIONS,
7
+ isContextOverflowText
8
+ } from "./chunk-OCZKATRC.js";
1
9
  import {
2
10
  waitForAbortableDelay
3
11
  } from "./chunk-N4G4PKQ6.js";
@@ -6,64 +14,67 @@ import {
6
14
  prepareAndPersistUserMessage,
7
15
  resolveHandleSendMessageContext,
8
16
  selectAllMsgs
9
- } from "./chunk-K4YGZD3P.js";
10
- import "./chunk-MC4XLIJ7.js";
11
- import "./chunk-3BMYXEUW.js";
17
+ } from "./chunk-UEGYKNHO.js";
18
+ import "./chunk-523DITKR.js";
12
19
  import "./chunk-YYLHWIW6.js";
13
- import "./chunk-AGGIDPCZ.js";
20
+ import "./chunk-6O4IK4V2.js";
14
21
  import {
15
22
  streamAgentChatTurn
16
- } from "./chunk-SQQVLHMH.js";
17
- import "./chunk-TOP2VXOR.js";
23
+ } from "./chunk-YJKDTJ2X.js";
24
+ import "./chunk-Z4CSIXYP.js";
18
25
  import "./chunk-5RGU3J7P.js";
26
+ import "./chunk-4LCOCOR5.js";
19
27
  import {
20
28
  addActiveController,
21
29
  getActiveDialogKey,
22
30
  removeActiveController
23
- } from "./chunk-6YTOJY35.js";
24
- import "./chunk-M76ECQRD.js";
31
+ } from "./chunk-6D2JFXLY.js";
25
32
  import "./chunk-YDH3FDFQ.js";
26
- import "./chunk-JAXOVNM4.js";
27
- import "./chunk-WADCY6G6.js";
33
+ import "./chunk-MX574M24.js";
34
+ import "./chunk-AGGIDPCZ.js";
35
+ import "./chunk-WILHZY7K.js";
36
+ import "./chunk-6ZWMH6TJ.js";
37
+ import "./chunk-5MMAK75Q.js";
28
38
  import "./chunk-PSCNXBYA.js";
29
- import "./chunk-GQBOR3G6.js";
39
+ import "./chunk-ESRMFY7G.js";
30
40
  import "./chunk-BYXBJQAS.js";
31
- import "./chunk-OIVSQH2O.js";
32
41
  import "./chunk-DWLEOOGR.js";
33
- import "./chunk-HVURBGF3.js";
34
- import "./chunk-ONXOABJR.js";
35
- import "./chunk-W7XHHYWM.js";
42
+ import "./chunk-7KVZ5LDQ.js";
36
43
  import "./chunk-HNMXYYJR.js";
37
- import "./chunk-7S4YWN7P.js";
38
- import "./chunk-ACTMNVHM.js";
39
- import "./chunk-Q67DOFOO.js";
40
- import "./chunk-AFUORTY4.js";
44
+ import "./chunk-3BXNTXYI.js";
45
+ import "./chunk-W7XHHYWM.js";
46
+ import "./chunk-RSEEDUMS.js";
47
+ import "./chunk-UAD2WT54.js";
48
+ import "./chunk-HNGRBWYF.js";
49
+ import "./chunk-CYSYR67N.js";
50
+ import {
51
+ PLATFORM_LLM_BUSY_USER_MESSAGE
52
+ } from "./chunk-Y3PMXGLH.js";
53
+ import "./chunk-SONWNI3L.js";
41
54
  import "./chunk-Y5GCAMGP.js";
42
55
  import "./chunk-QDSINZM3.js";
43
56
  import "./chunk-KX6YBIHG.js";
44
- import "./chunk-V4MJDUSR.js";
45
- import "./chunk-UAD2WT54.js";
46
57
  import {
47
58
  readAndWait,
48
59
  selectById
49
- } from "./chunk-H62HCIUP.js";
60
+ } from "./chunk-HYZIYH2H.js";
61
+ import "./chunk-7CHC4W22.js";
50
62
  import {
51
63
  createDialogMessageKeyAndId
52
- } from "./chunk-VMFTFOWF.js";
64
+ } from "./chunk-3AH7LNUB.js";
53
65
  import "./chunk-WWC7I6TA.js";
54
- import "./chunk-ABQYVJBJ.js";
55
66
  import "./chunk-QSJ3HFEF.js";
56
- import "./chunk-WV42OMV7.js";
57
- import "./chunk-BNGW5ASC.js";
58
- import {
59
- extractCustomId
60
- } from "./chunk-M2EJHDJP.js";
61
- import "./chunk-UKWGR5SS.js";
67
+ import "./chunk-IAESIMK7.js";
68
+ import "./chunk-WIWM4FE3.js";
62
69
  import "./chunk-QOKAKDPE.js";
63
- import "./chunk-OW765XBU.js";
64
70
  import "./chunk-SEJ5OS6F.js";
71
+ import "./chunk-OW765XBU.js";
65
72
  import "./chunk-GBRG75BQ.js";
66
73
  import "./chunk-KUG52IAP.js";
74
+ import "./chunk-BNGW5ASC.js";
75
+ import {
76
+ extractCustomId
77
+ } from "./chunk-M2EJHDJP.js";
67
78
  import "./chunk-3EUW3WEO.js";
68
79
  import "./chunk-U6VC4MU4.js";
69
80
  import "./chunk-LCBAMY2M.js";
@@ -90,21 +101,6 @@ function asRecord(value) {
90
101
  function asString(value) {
91
102
  return typeof value === "string" && value.length > 0 ? value : void 0;
92
103
  }
93
- function sanitizeSafeUrl(rawUrl) {
94
- if (typeof rawUrl !== "string") return void 0;
95
- const trimmed = rawUrl.trim();
96
- if (/^https?:\/\//i.test(trimmed)) {
97
- try {
98
- const parsed = new URL(trimmed);
99
- if (parsed.protocol === "http:" || parsed.protocol === "https:") {
100
- return trimmed;
101
- }
102
- } catch {
103
- return void 0;
104
- }
105
- }
106
- return void 0;
107
- }
108
104
  function extractFullErrorText(error) {
109
105
  if (!error) return "Unknown error";
110
106
  if (typeof error === "string") return error;
@@ -126,37 +122,7 @@ function extractFullErrorText(error) {
126
122
  return error?.message || error?.error || String(error);
127
123
  }
128
124
  function collectValidationFromDetails(details) {
129
- if (!Array.isArray(details)) return {};
130
- let url;
131
- let text;
132
- let learnMoreUrl;
133
- for (const detail of details) {
134
- const rec = asRecord(detail);
135
- if (!rec) continue;
136
- const metadata = asRecord(rec.metadata);
137
- if (metadata) {
138
- url = url ?? sanitizeSafeUrl(metadata.validation_url);
139
- text = text ?? asString(metadata.validation_url_link_text);
140
- learnMoreUrl = learnMoreUrl ?? sanitizeSafeUrl(metadata.validation_learn_more_url);
141
- }
142
- const help = asRecord(rec);
143
- if (Array.isArray(help.links)) {
144
- for (const link of help.links) {
145
- const linkRec = asRecord(link);
146
- if (!linkRec) continue;
147
- const linkUrl = sanitizeSafeUrl(linkRec.url);
148
- if (!linkUrl) continue;
149
- const desc = asString(linkRec.description);
150
- if (!url && desc && /verify|continue/i.test(desc)) {
151
- url = linkUrl;
152
- text = desc;
153
- } else if (!learnMoreUrl && /learn more/i.test(desc ?? "")) {
154
- learnMoreUrl = linkUrl;
155
- }
156
- }
157
- }
158
- }
159
- return { url, text, learnMoreUrl };
125
+ return scanValidationDetails(details);
160
126
  }
161
127
  function resolveErrorStage(errorText) {
162
128
  if (/127\.0\.0\.1:3233|localhost:3233|desktop daemon|desktop agent runtime|runDesktopAgentRuntime|Local turn stream/i.test(
@@ -218,15 +184,32 @@ function parseSendError(errorInput) {
218
184
  domain = first ? asString(first.domain) : void 0;
219
185
  }
220
186
  const stage = resolveErrorStage(fullErrorText);
187
+ const isPlatformBusy = fullErrorText.includes(PLATFORM_LLM_BUSY_USER_MESSAGE) || /PLATFORM_LLM_BUSY/i.test(fullErrorText);
188
+ const busyUpstreamDetail = fullErrorText.match(
189
+ /nolo\s+(?:HTTP\s*\d{3}|[A-Za-z]+Error)/
190
+ )?.[0];
221
191
  let kind = "unknown";
222
192
  let retryable = true;
223
193
  const isLocalConnRefused = /ECONNREFUSED/i.test(fullErrorText) && (/127\.0\.0\.1/i.test(fullErrorText) || /localhost/i.test(fullErrorText));
224
194
  const hasExplicitAuthKeywords = /unauthorized|unauthenticated|permission_denied|validation_required|invalid_api_key|api key not found|authentication error|forbidden/i.test(
225
195
  fullErrorText
226
196
  );
227
- if (statusCode === 429) {
197
+ const isContextOverflow = isContextOverflowText(fullErrorText);
198
+ let contextActions;
199
+ if (isContextOverflow) {
200
+ kind = "context_overflow";
201
+ retryable = true;
202
+ contextActions = [...CONTEXT_OVERFLOW_ACTIONS];
203
+ } else if (isPlatformBusy) {
204
+ kind = "server";
205
+ retryable = true;
206
+ } else if (statusCode === 429) {
228
207
  kind = "rate_limit";
229
208
  retryable = true;
209
+ } else if (statusCode === 413) {
210
+ kind = "context_too_large";
211
+ retryable = true;
212
+ contextActions = [...CONTEXT_TOO_LARGE_ACTIONS];
230
213
  } else if (statusCode === 401 || statusCode === 403 || hasExplicitAuthKeywords) {
231
214
  kind = "auth";
232
215
  retryable = false;
@@ -284,7 +267,15 @@ function parseSendError(errorInput) {
284
267
  parts.push(`\u8BA4\u8BC1\u6216\u6743\u9650\u6821\u9A8C\u5931\u8D25${status ? ` (HTTP ${status})` : ""}`);
285
268
  break;
286
269
  case "server":
287
- parts.push(`\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528${status ? ` (HTTP ${status})` : ""}`);
270
+ parts.push(
271
+ isPlatformBusy ? `\u5E73\u53F0\u670D\u52A1\u7E41\u5FD9${busyUpstreamDetail ? `\uFF08\u4E0A\u6E38 ${busyUpstreamDetail}\uFF09` : ""}` : `\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528${status ? ` (HTTP ${status})` : ""}`
272
+ );
273
+ break;
274
+ case "context_overflow":
275
+ parts.push(`\u4E0A\u4E0B\u6587\u8D85\u51FA\u6A21\u578B\u7A97\u53E3${status ? ` (HTTP ${status})` : ""}`);
276
+ break;
277
+ case "context_too_large":
278
+ parts.push(`\u8BF7\u6C42\u5185\u5BB9\u8FC7\u5927${status ? ` (HTTP ${status})` : ""}`);
288
279
  break;
289
280
  default:
290
281
  parts.push(firstLine.length > 0 ? firstLine : "\u53D1\u9001\u9047\u5230\u5F02\u5E38");
@@ -321,11 +312,17 @@ function parseSendError(errorInput) {
321
312
  case "rate_limit":
322
313
  actionHint = "\u5DF2\u8FBE\u5230\u8C03\u7528\u9891\u7387\u6216\u914D\u989D\u9650\u5236\uFF0C\u8BF7\u7A0D\u5019\u7247\u523B\u540E\u91CD\u8BD5";
323
314
  break;
315
+ case "context_overflow":
316
+ actionHint = "\u4E0A\u4E0B\u6587\u8D85\u51FA\u6A21\u578B\u7A97\u53E3\uFF1A\u53EF\u538B\u7F29\u5386\u53F2\u540E\u91CD\u8BD5\u3001\u5F00\u542F\u65B0\u5BF9\u8BDD\uFF0C\u6216\u5207\u6362\u5230\u66F4\u5927\u7A97\u53E3\u7684\u6A21\u578B\u3002";
317
+ break;
318
+ case "context_too_large":
319
+ actionHint = "\u5355\u6B21\u8BF7\u6C42\u5185\u5BB9\u8FC7\u5927\uFF1A\u8BF7\u51CF\u5C11\u53D1\u9001\u7684\u6D88\u606F\u3001\u6587\u4EF6\u6216\u5DE5\u5177\u7ED3\u679C\uFF0C\u6216\u5F00\u542F\u65B0\u5BF9\u8BDD\u3001\u5207\u6362\u6A21\u578B\u3002";
320
+ break;
324
321
  case "auth":
325
322
  actionHint = "\u8BF7\u68C0\u67E5\u8D26\u53F7\u767B\u5F55\u72B6\u6001\u6216 API \u5BC6\u94A5\u914D\u7F6E";
326
323
  break;
327
324
  case "server":
328
- actionHint = "\u670D\u52A1\u7AEF\u53D1\u751F\u77AC\u65F6\u5F02\u5E38\uFF0C\u70B9\u51FB\u91CD\u8BD5\u901A\u5E38\u53EF\u6062\u590D";
325
+ actionHint = isPlatformBusy ? "\u5E73\u53F0\u7B97\u529B\u6682\u65F6\u7D27\u5F20\uFF0C\u7A0D\u5019\u70B9\u51FB\u91CD\u8BD5\u901A\u5E38\u53EF\u6062\u590D" : "\u670D\u52A1\u7AEF\u53D1\u751F\u77AC\u65F6\u5F02\u5E38\uFF0C\u70B9\u51FB\u91CD\u8BD5\u901A\u5E38\u53EF\u6062\u590D";
329
326
  break;
330
327
  case "unknown":
331
328
  default:
@@ -347,7 +344,8 @@ function parseSendError(errorInput) {
347
344
  summary,
348
345
  validationUrl: url,
349
346
  validationLinkText: text ?? "\u9A8C\u8BC1\u6211\u7684\u8D26\u53F7",
350
- extraLinks
347
+ extraLinks,
348
+ ...contextActions ? { actions: contextActions } : {}
351
349
  };
352
350
  }
353
351
  const MAX_FALLBACK = 800;
@@ -359,7 +357,8 @@ function parseSendError(errorInput) {
359
357
  actionHint,
360
358
  summary,
361
359
  extraLinks,
362
- fallbackText
360
+ fallbackText,
361
+ ...contextActions ? { actions: contextActions } : {}
363
362
  };
364
363
  }
365
364
  function buildSendErrorMessageMarkdown(parsed) {
@@ -475,6 +474,11 @@ var finalizeSendFailureInDialog = async (dispatch, dialogConfig, agentKey, error
475
474
  stage: parsed.stage,
476
475
  summary: parsed.summary,
477
476
  actionHint: parsed.actionHint,
477
+ // 上下文超窗 / 内容过大时带上结构化动作(review 修复 2):
478
+ // 没有这个字段,SendErrorCard 的 compact-and-retry / new-dialog /
479
+ // switch-model 三枚按钮永远不会出现,用户只剩一行文本提示。
480
+ // 其余 kind 不设 → 卡片只渲染重试。
481
+ ...parsed.actions ? { actions: parsed.actions } : {},
478
482
  validationUrl: parsed.validationUrl,
479
483
  validationLinkText: parsed.validationLinkText,
480
484
  extraLinks: parsed.extraLinks,
@@ -562,10 +566,14 @@ var handleSendMessageAction = async (args, { dispatch, getState, rejectWithValue
562
566
  dialogKey: dialogConfig.dbKey
563
567
  });
564
568
  }
569
+ const selectedRuntimeTarget = dialogConfig.runtimeBinding?.target;
565
570
  const resolvedContext = resolveHandleSendMessageContext({
566
571
  dialogConfig,
567
572
  targetAgentKey: args.targetAgentKey,
568
- runtimeOptions: args.runtimeOptions
573
+ runtimeOptions: {
574
+ ...args.runtimeOptions,
575
+ ...selectedRuntimeTarget && (selectedRuntimeTarget.kind === "server" || selectedRuntimeTarget.kind === "machine") ? { runtimeTarget: selectedRuntimeTarget } : {}
576
+ }
569
577
  });
570
578
  agentKeyToUse = resolvedContext.agentKeyToUse;
571
579
  const agentConfigToUse = resolvedContext.agentConfigToUse;