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
@@ -1,406 +0,0 @@
1
- import {
2
- messageStreamEnd,
3
- prepareAndPersistUserMessage,
4
- resolveHandleSendMessageContext
5
- } from "./chunk-BJLYCOZK.js";
6
- import "./chunk-EVBFYPDC.js";
7
- import "./chunk-H2G6JXTR.js";
8
- import "./chunk-YYLHWIW6.js";
9
- import {
10
- streamAgentChatTurn
11
- } from "./chunk-U2A47SVI.js";
12
- import "./chunk-AGGIDPCZ.js";
13
- import "./chunk-32I5RVMY.js";
14
- import "./chunk-5RGU3J7P.js";
15
- import "./chunk-M76ECQRD.js";
16
- import {
17
- getActiveDialogKey
18
- } from "./chunk-MRWGHF56.js";
19
- import "./chunk-KUUTWU4I.js";
20
- import "./chunk-H4RYESI6.js";
21
- import "./chunk-VRJUIUIY.js";
22
- import "./chunk-NQ4N4IGO.js";
23
- import "./chunk-FD36SCCD.js";
24
- import "./chunk-QDHZCAH3.js";
25
- import "./chunk-DWLEOOGR.js";
26
- import "./chunk-ZHXJ6M7T.js";
27
- import "./chunk-HNMXYYJR.js";
28
- import "./chunk-FA4SY4F5.js";
29
- import "./chunk-56W233KG.js";
30
- import "./chunk-WL3UOGYO.js";
31
- import "./chunk-3QJTD6DO.js";
32
- import "./chunk-Y5GCAMGP.js";
33
- import "./chunk-UZ6XXCVR.js";
34
- import "./chunk-KX6YBIHG.js";
35
- import "./chunk-FGEYVPPR.js";
36
- import {
37
- readAndWait,
38
- selectById
39
- } from "./chunk-AV6KQCM5.js";
40
- import {
41
- createDialogMessageKeyAndId
42
- } from "./chunk-SVEUG45B.js";
43
- import "./chunk-WWC7I6TA.js";
44
- import "./chunk-I42VC5KR.js";
45
- import "./chunk-MFI4FGHX.js";
46
- import "./chunk-QSJ3HFEF.js";
47
- import "./chunk-VULELK4T.js";
48
- import {
49
- extractCustomId
50
- } from "./chunk-BJIRLHJR.js";
51
- import "./chunk-PYKV6FSC.js";
52
- import "./chunk-QOKAKDPE.js";
53
- import "./chunk-OW765XBU.js";
54
- import "./chunk-GBRG75BQ.js";
55
- import "./chunk-KUG52IAP.js";
56
- import "./chunk-3EUW3WEO.js";
57
- import "./chunk-U6VC4MU4.js";
58
- import "./chunk-LCBAMY2M.js";
59
- import "./chunk-4SN6J65J.js";
60
- import "./chunk-CF7PE763.js";
61
- import "./chunk-G3SUCT4W.js";
62
- import "./chunk-4VNS5WPM.js";
63
-
64
- // packages/chat/dialog/actions/parseOAuthError.ts
65
- var PROVIDER_NAMES = {
66
- antigravity: "Antigravity (Google)",
67
- claude: "Claude",
68
- chatgpt: "ChatGPT",
69
- xai: "xAI Grok",
70
- cursor: "Cursor",
71
- cloudflare: "Cloudflare"
72
- };
73
- function asRecord(value) {
74
- if (value && typeof value === "object" && !Array.isArray(value)) {
75
- return value;
76
- }
77
- return null;
78
- }
79
- function asString(value) {
80
- return typeof value === "string" && value.length > 0 ? value : void 0;
81
- }
82
- function collectValidationFromDetails(details) {
83
- if (!Array.isArray(details)) return {};
84
- let url;
85
- let text;
86
- let learnMoreUrl;
87
- for (const detail of details) {
88
- const rec = asRecord(detail);
89
- if (!rec) continue;
90
- const metadata = asRecord(rec.metadata);
91
- if (metadata) {
92
- url = url ?? asString(metadata.validation_url);
93
- text = text ?? asString(metadata.validation_url_link_text);
94
- learnMoreUrl = learnMoreUrl ?? asString(metadata.validation_learn_more_url);
95
- }
96
- const help = asRecord(rec);
97
- if (Array.isArray(help.links)) {
98
- for (const link of help.links) {
99
- const linkRec = asRecord(link);
100
- if (!linkRec) continue;
101
- const linkUrl = asString(linkRec.url);
102
- if (!linkUrl) continue;
103
- const desc = asString(linkRec.description);
104
- if (!url && desc && /verify|continue/i.test(desc)) {
105
- url = linkUrl;
106
- text = desc;
107
- } else if (!learnMoreUrl && /learn more/i.test(desc ?? "")) {
108
- learnMoreUrl = linkUrl;
109
- }
110
- }
111
- }
112
- }
113
- return { url, text, learnMoreUrl };
114
- }
115
- function parseSendError(errorMessage) {
116
- const summary = errorMessage.replace(/^local\s+/, "").split("\n")[0].trim();
117
- const providerMatch = errorMessage.match(/local\s+(\w+)\s+OAuth provider failed/i);
118
- const providerName = providerMatch ? PROVIDER_NAMES[providerMatch[1].toLowerCase()] ?? providerMatch[1] : void 0;
119
- const statusMatch = errorMessage.match(/HTTP\s+(\d{3})/);
120
- const status = statusMatch?.[1];
121
- const jsonStart = errorMessage.indexOf("{");
122
- let payload = null;
123
- if (jsonStart >= 0) {
124
- let candidate = errorMessage.slice(jsonStart);
125
- for (let depth = 0; depth < 3; depth += 1) {
126
- try {
127
- const parsed = JSON.parse(candidate);
128
- payload = parsed;
129
- const message = asString(parsed?.error?.message);
130
- if (message && message.trim().startsWith("{")) {
131
- candidate = message;
132
- continue;
133
- }
134
- break;
135
- } catch {
136
- break;
137
- }
138
- }
139
- }
140
- const errorRec = payload ? asRecord(payload.error) : null;
141
- const innerMessage = errorRec ? asString(errorRec.message) : void 0;
142
- const statusFromBody = errorRec ? asString(errorRec.status) : void 0;
143
- const details = errorRec?.details;
144
- const { url, text, learnMoreUrl } = collectValidationFromDetails(details);
145
- let reason = errorRec ? asString(errorRec.reason) : void 0;
146
- let domain = errorRec ? asString(errorRec.domain) : void 0;
147
- if (!reason && Array.isArray(details)) {
148
- const first = asRecord(details[0]);
149
- reason = first ? asString(first.reason) : void 0;
150
- domain = first ? asString(first.domain) : void 0;
151
- }
152
- const parts = [];
153
- const head = providerName ? `${providerName} \u8FDE\u63A5\u5931\u8D25` : "\u53D1\u9001\u5931\u8D25";
154
- parts.push(
155
- `${head}${status ? ` (HTTP ${status})` : ""}${statusFromBody ? ` ${statusFromBody}` : ""}`
156
- );
157
- if (reason) {
158
- parts.push(`\u539F\u56E0\uFF1A${reason}`);
159
- }
160
- if (domain) {
161
- parts.push(`\u670D\u52A1\uFF1A${domain}`);
162
- }
163
- const humanMessage = innerMessage && innerMessage.trim() !== "Verify your account to continue." ? innerMessage : void 0;
164
- if (humanMessage) {
165
- parts.push(`\u63D0\u793A\uFF1A${humanMessage}`);
166
- }
167
- const extraLinks = [];
168
- if (learnMoreUrl) {
169
- extraLinks.push({ text: "\u4E86\u89E3\u66F4\u591A", url: learnMoreUrl });
170
- }
171
- if (url) {
172
- return {
173
- summary: parts.join("\n"),
174
- validationUrl: url,
175
- validationLinkText: text ?? "\u9A8C\u8BC1\u6211\u7684\u8D26\u53F7",
176
- extraLinks
177
- };
178
- }
179
- const MAX_FALLBACK = 500;
180
- const fallbackText = errorMessage.length > MAX_FALLBACK ? `${errorMessage.slice(0, MAX_FALLBACK)}\u2026` : errorMessage;
181
- return { summary: parts.join("\n"), extraLinks, fallbackText };
182
- }
183
- function buildSendErrorMessageMarkdown(parsed) {
184
- const lines = ["[\u53D1\u9001\u5931\u8D25]", "", parsed.summary];
185
- if (parsed.validationUrl) {
186
- lines.push(
187
- "",
188
- `\u8BF7\u70B9\u51FB\u94FE\u63A5\u5B8C\u6210\u9A8C\u8BC1\uFF1A`,
189
- `- [${parsed.validationLinkText ?? "\u9A8C\u8BC1\u6211\u7684\u8D26\u53F7"}](${parsed.validationUrl})`
190
- );
191
- }
192
- for (const link of parsed.extraLinks) {
193
- lines.push(`- [${link.text}](${link.url})`);
194
- }
195
- if (parsed.fallbackText && !parsed.validationUrl) {
196
- lines.push("", "```", parsed.fallbackText, "```");
197
- }
198
- return lines.join("\n");
199
- }
200
-
201
- // packages/chat/dialog/actions/handleSendMessageAction.ts
202
- var getDialogConfig = (state, dialogKey) => {
203
- const resolvedDialogKey = dialogKey ?? getActiveDialogKey();
204
- if (!resolvedDialogKey) return null;
205
- const dialog = selectById(state, resolvedDialogKey);
206
- return dialog ?? null;
207
- };
208
- var ensureDialogConfig = async (dispatch, getState, dialogKey) => {
209
- const state = getState();
210
- const resolvedDialogKey = dialogKey ?? getActiveDialogKey();
211
- if (!resolvedDialogKey) return null;
212
- try {
213
- const existingDialog = getDialogConfig(state, resolvedDialogKey);
214
- if (existingDialog && Array.isArray(existingDialog.cybots) && existingDialog.cybots.length > 0) {
215
- return existingDialog;
216
- }
217
- const persistedDialog = await dispatch(readAndWait(resolvedDialogKey)).unwrap();
218
- if (persistedDialog) return persistedDialog;
219
- return existingDialog;
220
- } catch {
221
- return getDialogConfig(getState(), resolvedDialogKey);
222
- }
223
- };
224
- var logQuickChatPerfStage = (startedAt, stage, details = {}) => {
225
- if (!startedAt) return;
226
- const now = typeof performance !== "undefined" ? performance.now() : Date.now();
227
- console.info("[QuickChatPerf]", {
228
- stage,
229
- elapsedMs: now - startedAt,
230
- ...typeof performance !== "undefined" ? { atMs: now } : {},
231
- ...details
232
- });
233
- };
234
- var resolveBrowseContextPrefix = async (message) => {
235
- try {
236
- if (typeof window === "undefined" || typeof location === "undefined") return "";
237
- if (typeof process !== "undefined" && (process.env?.NODE_ENV === "test" || process.env?.BUN_TEST)) return "";
238
- const host = location.hostname;
239
- if (host !== "127.0.0.1" && host !== "localhost") return "";
240
- if (typeof fetch !== "function" || typeof AbortSignal?.timeout !== "function") return "";
241
- const response = await fetch("/api/desktop/browse-context", {
242
- method: "POST",
243
- headers: { "Content-Type": "application/json" },
244
- body: JSON.stringify({ message }),
245
- signal: AbortSignal.timeout(2e3)
246
- });
247
- if (!response.ok) return "";
248
- const payload = await response.json();
249
- if (!payload.context || !payload.context.url) return "";
250
- const ctx = payload.context;
251
- const parts = [`[\u5F53\u524D\u6D4F\u89C8\u4E0A\u4E0B\u6587]`, `URL: ${ctx.url}`, `\u6807\u9898: ${ctx.title}`];
252
- if (ctx.textSnippet) parts.push(`\u6458\u8981: ${ctx.textSnippet.slice(0, 2e3)}`);
253
- return parts.join("\n");
254
- } catch {
255
- return "";
256
- }
257
- };
258
- var finalizeQuickChatStreamStartupFailure = async (dispatch, dialogConfig, agentKey) => {
259
- const dialogKey = dialogConfig.dbKey;
260
- const dialogId = dialogConfig.id ?? (dialogKey ? extractCustomId(dialogKey) : "");
261
- const { key: msgKey, messageId } = createDialogMessageKeyAndId(dialogId);
262
- await dispatch(
263
- messageStreamEnd({
264
- finalContentBuffer: [
265
- {
266
- type: "text",
267
- text: "[\u9519\u8BEF: \u672A\u80FD\u542F\u52A8\u6A21\u578B\u56DE\u590D\uFF0C\u8BF7\u91CD\u8BD5\u3002]"
268
- }
269
- ],
270
- totalUsage: null,
271
- msgKey,
272
- agentConfig: {
273
- dbKey: agentKey
274
- },
275
- dialogId,
276
- dialogKey: dialogKey ?? "",
277
- messageId,
278
- reasoningBuffer: ""
279
- })
280
- ).unwrap?.();
281
- };
282
- var buildActionableErrorText = (errorMessage) => {
283
- return buildSendErrorMessageMarkdown(parseSendError(errorMessage));
284
- };
285
- var finalizeSendFailureInDialog = async (dispatch, dialogConfig, agentKey, errorMessage) => {
286
- const dialogKey = dialogConfig.dbKey;
287
- const dialogId = dialogConfig.id ?? (dialogKey ? extractCustomId(dialogKey) : "");
288
- const { key: msgKey, messageId } = createDialogMessageKeyAndId(dialogId);
289
- await dispatch(
290
- messageStreamEnd({
291
- finalContentBuffer: [
292
- {
293
- type: "text",
294
- text: `[\u53D1\u9001\u5931\u8D25]
295
-
296
- ${buildActionableErrorText(errorMessage)}`
297
- }
298
- ],
299
- totalUsage: null,
300
- msgKey,
301
- agentConfig: {
302
- dbKey: agentKey
303
- },
304
- dialogId,
305
- dialogKey: dialogKey ?? "",
306
- messageId,
307
- reasoningBuffer: ""
308
- })
309
- ).unwrap?.();
310
- };
311
- var handleSendMessageAction = async (args, { dispatch, getState, rejectWithValue }) => {
312
- let dialogConfig = null;
313
- let agentKeyToUse;
314
- try {
315
- logQuickChatPerfStage(args.quickChatPerfStartedAt, "handle-send-message-entered", {
316
- dialogKey: args.dialogKey ?? null
317
- });
318
- dialogConfig = await ensureDialogConfig(dispatch, getState, args.dialogKey);
319
- if (!dialogConfig) {
320
- throw new Error(
321
- "handleSendMessage: Dialog configuration is missing."
322
- );
323
- }
324
- logQuickChatPerfStage(args.quickChatPerfStartedAt, "handle-send-message-dialog-ready", {
325
- dialogKey: dialogConfig.dbKey,
326
- cybotCount: dialogConfig.cybots?.length ?? 0
327
- });
328
- await dispatch(
329
- prepareAndPersistUserMessage({
330
- userInput: args.userInput,
331
- dialogConfig
332
- })
333
- ).unwrap();
334
- logQuickChatPerfStage(args.quickChatPerfStartedAt, "handle-send-message-user-persisted", {
335
- dialogKey: dialogConfig.dbKey
336
- });
337
- const resolvedContext = resolveHandleSendMessageContext({
338
- dialogConfig,
339
- targetAgentKey: args.targetAgentKey,
340
- runtimeOptions: args.runtimeOptions
341
- });
342
- agentKeyToUse = resolvedContext.agentKeyToUse;
343
- const agentConfigToUse = resolvedContext.agentConfigToUse;
344
- const effectiveRuntimeOptions = resolvedContext.effectiveRuntimeOptions;
345
- if (!agentKeyToUse) {
346
- return;
347
- }
348
- const userInputText = typeof args.userInput === "string" ? args.userInput : "";
349
- const isDesktopContext = typeof window !== "undefined" && typeof location !== "undefined" && (location.hostname === "127.0.0.1" || location.hostname === "localhost");
350
- const browseContextPrefix = isDesktopContext ? await resolveBrowseContextPrefix(userInputText) : "";
351
- const effectiveUserInput = browseContextPrefix ? `${browseContextPrefix}
352
-
353
- ${userInputText}` : args.userInput;
354
- const streamResult = await dispatch(
355
- streamAgentChatTurn({
356
- agentKey: agentKeyToUse,
357
- ...agentConfigToUse ? { agentConfig: agentConfigToUse } : {},
358
- userInput: effectiveUserInput,
359
- dialogKey: dialogConfig.dbKey,
360
- parentMessageId: void 0,
361
- runtimeOptions: effectiveRuntimeOptions,
362
- quickChatPerfStartedAt: args.quickChatPerfStartedAt
363
- })
364
- ).unwrap();
365
- if (args.quickChatPerfStartedAt && streamResult === void 0) {
366
- logQuickChatPerfStage(args.quickChatPerfStartedAt, "handle-send-message-stream-empty", {
367
- dialogKey: dialogConfig.dbKey,
368
- agentKey: agentKeyToUse
369
- });
370
- await finalizeQuickChatStreamStartupFailure(
371
- dispatch,
372
- dialogConfig,
373
- agentKeyToUse
374
- );
375
- return;
376
- }
377
- logQuickChatPerfStage(args.quickChatPerfStartedAt, "handle-send-message-stream-finished", {
378
- dialogKey: dialogConfig.dbKey,
379
- agentKey: agentKeyToUse
380
- });
381
- return;
382
- } catch (error) {
383
- console.error("handleSendMessage failed:", error);
384
- const errorMessage = error instanceof Error ? error.message : typeof error === "string" ? error : error?.message || error?.error || String(error);
385
- try {
386
- if (dialogConfig && agentKeyToUse) {
387
- await finalizeSendFailureInDialog(
388
- dispatch,
389
- dialogConfig,
390
- agentKeyToUse,
391
- errorMessage
392
- );
393
- return rejectWithValue({
394
- __errorInDialog: true,
395
- message: errorMessage
396
- });
397
- }
398
- } catch (writeError) {
399
- console.error("handleSendMessage: failed to write error into dialog:", writeError);
400
- }
401
- return rejectWithValue(errorMessage);
402
- }
403
- };
404
- export {
405
- handleSendMessageAction
406
- };
@@ -1,127 +0,0 @@
1
- import {
2
- addCategory,
3
- addContentToSpace,
4
- addMember,
5
- addSpace,
6
- appendRecoveredMemberships,
7
- applySpaceEvent,
8
- changeSpace,
9
- dedupeMemberSpacesById,
10
- deleteCategory,
11
- deleteContentFromSpace,
12
- deleteMultipleContent,
13
- deleteSpace,
14
- fetchSpace,
15
- fetchSpaceSidebarState,
16
- fetchUserSpaceMemberships,
17
- hydrateMemberSpacesFromLocal,
18
- markDialogRead,
19
- moveContentToSpace,
20
- removeMember,
21
- reorderCategories,
22
- resetSpace,
23
- selectCurrentSpace,
24
- selectCurrentSpaceId,
25
- selectDialogStatusFromEntity,
26
- selectIsDialogUnreadFromEntity,
27
- selectSpaceById,
28
- selectViewMode,
29
- setAllCategoriesCollapsed,
30
- setViewMode,
31
- spaceSlice_default,
32
- toggleCategoryCollapse,
33
- toggleFavoritesCollapse,
34
- updateCategoryName,
35
- updateContentCategory,
36
- updateContentPinned,
37
- updateContentTitle,
38
- updateSpace,
39
- uploadAndAddFileToSpace
40
- } from "./chunk-LA4IDAK7.js";
41
- import "./chunk-BJLYCOZK.js";
42
- import "./chunk-EVBFYPDC.js";
43
- import "./chunk-H2G6JXTR.js";
44
- import "./chunk-YYLHWIW6.js";
45
- import "./chunk-U2A47SVI.js";
46
- import "./chunk-AGGIDPCZ.js";
47
- import "./chunk-32I5RVMY.js";
48
- import "./chunk-5RGU3J7P.js";
49
- import "./chunk-M76ECQRD.js";
50
- import "./chunk-MRWGHF56.js";
51
- import "./chunk-KUUTWU4I.js";
52
- import "./chunk-H4RYESI6.js";
53
- import "./chunk-VRJUIUIY.js";
54
- import "./chunk-NQ4N4IGO.js";
55
- import "./chunk-FD36SCCD.js";
56
- import "./chunk-QDHZCAH3.js";
57
- import "./chunk-DWLEOOGR.js";
58
- import "./chunk-ZHXJ6M7T.js";
59
- import "./chunk-HNMXYYJR.js";
60
- import "./chunk-FA4SY4F5.js";
61
- import "./chunk-56W233KG.js";
62
- import "./chunk-WL3UOGYO.js";
63
- import "./chunk-3QJTD6DO.js";
64
- import "./chunk-Y5GCAMGP.js";
65
- import "./chunk-UZ6XXCVR.js";
66
- import "./chunk-KX6YBIHG.js";
67
- import "./chunk-FGEYVPPR.js";
68
- import "./chunk-AV6KQCM5.js";
69
- import "./chunk-SVEUG45B.js";
70
- import "./chunk-WWC7I6TA.js";
71
- import "./chunk-I42VC5KR.js";
72
- import "./chunk-MFI4FGHX.js";
73
- import "./chunk-QSJ3HFEF.js";
74
- import "./chunk-VULELK4T.js";
75
- import "./chunk-BJIRLHJR.js";
76
- import "./chunk-PYKV6FSC.js";
77
- import "./chunk-QOKAKDPE.js";
78
- import "./chunk-OW765XBU.js";
79
- import "./chunk-GBRG75BQ.js";
80
- import "./chunk-KUG52IAP.js";
81
- import "./chunk-3EUW3WEO.js";
82
- import "./chunk-U6VC4MU4.js";
83
- import "./chunk-LCBAMY2M.js";
84
- import "./chunk-4SN6J65J.js";
85
- import "./chunk-CF7PE763.js";
86
- import "./chunk-G3SUCT4W.js";
87
- import "./chunk-4VNS5WPM.js";
88
- export {
89
- addCategory,
90
- addContentToSpace,
91
- addMember,
92
- addSpace,
93
- appendRecoveredMemberships,
94
- applySpaceEvent,
95
- changeSpace,
96
- dedupeMemberSpacesById,
97
- spaceSlice_default as default,
98
- deleteCategory,
99
- deleteContentFromSpace,
100
- deleteMultipleContent,
101
- deleteSpace,
102
- fetchSpace,
103
- fetchSpaceSidebarState,
104
- fetchUserSpaceMemberships,
105
- hydrateMemberSpacesFromLocal,
106
- markDialogRead,
107
- moveContentToSpace,
108
- removeMember,
109
- reorderCategories,
110
- resetSpace,
111
- selectCurrentSpace,
112
- selectCurrentSpaceId,
113
- selectDialogStatusFromEntity,
114
- selectIsDialogUnreadFromEntity,
115
- selectSpaceById,
116
- selectViewMode,
117
- setAllCategoriesCollapsed,
118
- setViewMode,
119
- toggleCategoryCollapse,
120
- toggleFavoritesCollapse,
121
- updateCategoryName,
122
- updateContentCategory,
123
- updateContentPinned,
124
- updateContentTitle,
125
- updateSpace,
126
- uploadAndAddFileToSpace
127
- };