@samanhappy/mcphub 1.0.10 → 1.0.12

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 (116) hide show
  1. package/README.fr.md +1 -0
  2. package/README.md +3 -0
  3. package/README.zh.md +1 -0
  4. package/dist/cli/commands/tools.js +4 -0
  5. package/dist/cli/commands/tools.js.map +1 -1
  6. package/dist/controllers/contextCostController.js +24 -0
  7. package/dist/controllers/contextCostController.js.map +1 -0
  8. package/dist/controllers/discoveryController.js +203 -0
  9. package/dist/controllers/discoveryController.js.map +1 -0
  10. package/dist/controllers/oauthCallbackController.js +3 -8
  11. package/dist/controllers/oauthCallbackController.js.map +1 -1
  12. package/dist/controllers/serverController.js +51 -1
  13. package/dist/controllers/serverController.js.map +1 -1
  14. package/dist/dao/SystemConfigDaoDbImpl.js +6 -0
  15. package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -1
  16. package/dist/db/entities/SystemConfig.js +8 -0
  17. package/dist/db/entities/SystemConfig.js.map +1 -1
  18. package/dist/db/repositories/SystemConfigRepository.js +2 -0
  19. package/dist/db/repositories/SystemConfigRepository.js.map +1 -1
  20. package/dist/routes/index.js +16 -0
  21. package/dist/routes/index.js.map +1 -1
  22. package/dist/services/contextCostService.js +101 -0
  23. package/dist/services/contextCostService.js.map +1 -0
  24. package/dist/services/groupService.js +1 -1
  25. package/dist/services/groupService.js.map +1 -1
  26. package/dist/services/hostedRuntimeCatalogService.js +2 -1
  27. package/dist/services/hostedRuntimeCatalogService.js.map +1 -1
  28. package/dist/services/mcpService.js +266 -104
  29. package/dist/services/mcpService.js.map +1 -1
  30. package/dist/services/openApiGeneratorService.js +5 -4
  31. package/dist/services/openApiGeneratorService.js.map +1 -1
  32. package/dist/services/smartRoutingService.js +63 -30
  33. package/dist/services/smartRoutingService.js.map +1 -1
  34. package/dist/services/toolResultCompressionService.js +360 -0
  35. package/dist/services/toolResultCompressionService.js.map +1 -0
  36. package/dist/services/vectorSearchService.js +3 -1
  37. package/dist/services/vectorSearchService.js.map +1 -1
  38. package/dist/utils/mcpApps.js +43 -0
  39. package/dist/utils/mcpApps.js.map +1 -0
  40. package/dist/utils/migration.js +2 -0
  41. package/dist/utils/migration.js.map +1 -1
  42. package/dist/utils/serialization.js +17 -1
  43. package/dist/utils/serialization.js.map +1 -1
  44. package/dist/utils/smartRouting.js +6 -0
  45. package/dist/utils/smartRouting.js.map +1 -1
  46. package/dist/utils/tokenCost.js +71 -0
  47. package/dist/utils/tokenCost.js.map +1 -0
  48. package/frontend/dist/assets/{ActivityPage-RTpGLfzM.js → ActivityPage-BPfkCkM3.js} +2 -2
  49. package/frontend/dist/assets/{ActivityPage-RTpGLfzM.js.map → ActivityPage-BPfkCkM3.js.map} +1 -1
  50. package/frontend/dist/assets/{ConfirmDialog-CxlizGia.js → ConfirmDialog-Cag_haxr.js} +2 -2
  51. package/frontend/dist/assets/{ConfirmDialog-CxlizGia.js.map → ConfirmDialog-Cag_haxr.js.map} +1 -1
  52. package/frontend/dist/assets/Dashboard-BvEkS4H1.js +2 -0
  53. package/frontend/dist/assets/Dashboard-BvEkS4H1.js.map +1 -0
  54. package/frontend/dist/assets/{DeleteDialog-DRbWonMu.js → DeleteDialog-BBfJpiiD.js} +2 -2
  55. package/frontend/dist/assets/{DeleteDialog-DRbWonMu.js.map → DeleteDialog-BBfJpiiD.js.map} +1 -1
  56. package/frontend/dist/assets/{EndpointCopy-BtPORuga.js → EndpointCopy-KhSo4Y6F.js} +2 -2
  57. package/frontend/dist/assets/{EndpointCopy-BtPORuga.js.map → EndpointCopy-KhSo4Y6F.js.map} +1 -1
  58. package/frontend/dist/assets/GroupsPage-CLkFTxqd.js +33 -0
  59. package/frontend/dist/assets/GroupsPage-CLkFTxqd.js.map +1 -0
  60. package/frontend/dist/assets/{LoginPage-Nks21Yj0.js → LoginPage-lM-z_O3X.js} +2 -2
  61. package/frontend/dist/assets/{LoginPage-Nks21Yj0.js.map → LoginPage-lM-z_O3X.js.map} +1 -1
  62. package/frontend/dist/assets/{LogsPage-CoupcpK1.js → LogsPage-CS9OFma4.js} +2 -2
  63. package/frontend/dist/assets/LogsPage-CS9OFma4.js.map +1 -0
  64. package/frontend/dist/assets/{MarketPage-PwkvXlle.js → MarketPage-9LSDiVvR.js} +2 -2
  65. package/frontend/dist/assets/{MarketPage-PwkvXlle.js.map → MarketPage-9LSDiVvR.js.map} +1 -1
  66. package/frontend/dist/assets/{Pagination-BFi-X7qY.js → Pagination-DBAu79mv.js} +2 -2
  67. package/frontend/dist/assets/{Pagination-BFi-X7qY.js.map → Pagination-DBAu79mv.js.map} +1 -1
  68. package/frontend/dist/assets/{PromptsPage-DQiX0bAK.js → PromptsPage-CPFRMMgV.js} +2 -2
  69. package/frontend/dist/assets/{PromptsPage-DQiX0bAK.js.map → PromptsPage-CPFRMMgV.js.map} +1 -1
  70. package/frontend/dist/assets/{ResourcesPage-Dltmu_Ze.js → ResourcesPage-DJ_7k1MF.js} +2 -2
  71. package/frontend/dist/assets/{ResourcesPage-Dltmu_Ze.js.map → ResourcesPage-DJ_7k1MF.js.map} +1 -1
  72. package/frontend/dist/assets/ServersPage-BtPOdp4X.js +37 -0
  73. package/frontend/dist/assets/ServersPage-BtPOdp4X.js.map +1 -0
  74. package/frontend/dist/assets/SettingsPage-CyYl7pb8.js +12 -0
  75. package/frontend/dist/assets/SettingsPage-CyYl7pb8.js.map +1 -0
  76. package/frontend/dist/assets/{StatusDot-BRb7WUcz.js → StatusDot-CZZGigtR.js} +2 -2
  77. package/frontend/dist/assets/{StatusDot-BRb7WUcz.js.map → StatusDot-CZZGigtR.js.map} +1 -1
  78. package/frontend/dist/assets/{ToggleGroup-tIqxkae6.js → ToggleGroup-C24CNPSz.js} +2 -2
  79. package/frontend/dist/assets/{ToggleGroup-tIqxkae6.js.map → ToggleGroup-C24CNPSz.js.map} +1 -1
  80. package/frontend/dist/assets/{UsersPage-DNMaUcUn.js → UsersPage-CLXhNpvg.js} +2 -2
  81. package/frontend/dist/assets/{UsersPage-DNMaUcUn.js.map → UsersPage-CLXhNpvg.js.map} +1 -1
  82. package/frontend/dist/assets/contextCost-mvvSAnFv.js +2 -0
  83. package/frontend/dist/assets/contextCost-mvvSAnFv.js.map +1 -0
  84. package/frontend/dist/assets/{framework-vendor-BUhDPOUZ.js → framework-vendor-DeqnZ0v6.js} +5 -5
  85. package/frontend/dist/assets/{framework-vendor-BUhDPOUZ.js.map → framework-vendor-DeqnZ0v6.js.map} +1 -1
  86. package/frontend/dist/assets/i18n-vendor-DP1IRITP.js +10 -0
  87. package/frontend/dist/assets/i18n-vendor-DP1IRITP.js.map +1 -0
  88. package/frontend/dist/assets/{icons-vendor-CKgJB3SC.js → icons-vendor-IYX_ppgH.js} +2 -2
  89. package/frontend/dist/assets/{icons-vendor-CKgJB3SC.js.map → icons-vendor-IYX_ppgH.js.map} +1 -1
  90. package/frontend/dist/assets/{index-B9E3ygVt.css → index-D8V2fxz_.css} +1 -1
  91. package/frontend/dist/assets/index-DRcTlhkb.js +3 -0
  92. package/frontend/dist/assets/index-DRcTlhkb.js.map +1 -0
  93. package/frontend/dist/assets/{resourceService-BuhqcwTn.js → resourceService-jx5dJGUy.js} +2 -2
  94. package/frontend/dist/assets/{resourceService-BuhqcwTn.js.map → resourceService-jx5dJGUy.js.map} +1 -1
  95. package/frontend/dist/assets/useSettingsData-B4hMPWdK.js +2 -0
  96. package/frontend/dist/assets/{useSettingsData-iQpBXEjX.js.map → useSettingsData-B4hMPWdK.js.map} +1 -1
  97. package/frontend/dist/assets/{variableDetection-GTKqOf1F.js → variableDetection-Dnh8qFpO.js} +2 -2
  98. package/frontend/dist/assets/{variableDetection-GTKqOf1F.js.map → variableDetection-Dnh8qFpO.js.map} +1 -1
  99. package/frontend/dist/index.html +5 -5
  100. package/package.json +8 -8
  101. package/frontend/dist/assets/Dashboard-KV-zezVb.js +0 -2
  102. package/frontend/dist/assets/Dashboard-KV-zezVb.js.map +0 -1
  103. package/frontend/dist/assets/GroupsPage-BhNYw74w.js +0 -33
  104. package/frontend/dist/assets/GroupsPage-BhNYw74w.js.map +0 -1
  105. package/frontend/dist/assets/LogsPage-CoupcpK1.js.map +0 -1
  106. package/frontend/dist/assets/ServersPage-CcbF8dGi.js +0 -37
  107. package/frontend/dist/assets/ServersPage-CcbF8dGi.js.map +0 -1
  108. package/frontend/dist/assets/SettingsPage-BbRB2fCw.js +0 -12
  109. package/frontend/dist/assets/SettingsPage-BbRB2fCw.js.map +0 -1
  110. package/frontend/dist/assets/i18n-vendor-Kbr87Ofu.js +0 -2
  111. package/frontend/dist/assets/i18n-vendor-Kbr87Ofu.js.map +0 -1
  112. package/frontend/dist/assets/index-C6LZBP3G.js +0 -3
  113. package/frontend/dist/assets/index-C6LZBP3G.js.map +0 -1
  114. package/frontend/dist/assets/useServerData-C9R1u5V4.js +0 -2
  115. package/frontend/dist/assets/useServerData-C9R1u5V4.js.map +0 -1
  116. package/frontend/dist/assets/useSettingsData-iQpBXEjX.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"smartRoutingService.js","sourceRoot":"","sources":["../../src/services/smartRoutingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartRoutingService.js","sourceRoot":"","sources":["../../src/services/smartRoutingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,360 @@
1
+ import { countTokens } from '../utils/tokenCost.js';
2
+ import { getCachedSystemConfig } from '../utils/systemConfigCache.js';
3
+ import { getSystemConfigDao } from '../dao/index.js';
4
+ const DEFAULT_CONFIG = {
5
+ enabled: false,
6
+ minTokens: 2000,
7
+ maxOutputTokens: 1200,
8
+ strategy: 'auto',
9
+ };
10
+ const VALID_STRATEGIES = new Set([
11
+ 'auto',
12
+ 'json',
13
+ 'log',
14
+ 'search',
15
+ 'diff',
16
+ 'text',
17
+ ]);
18
+ const normalizePositiveInteger = (value, fallback) => {
19
+ if (typeof value !== 'number' || !Number.isFinite(value))
20
+ return fallback;
21
+ const normalized = Math.floor(value);
22
+ return normalized > 0 ? normalized : fallback;
23
+ };
24
+ export const normalizeToolResultCompressionConfig = (config) => {
25
+ const strategy = config?.strategy;
26
+ return {
27
+ enabled: config?.enabled === true,
28
+ minTokens: normalizePositiveInteger(config?.minTokens, DEFAULT_CONFIG.minTokens),
29
+ maxOutputTokens: normalizePositiveInteger(config?.maxOutputTokens, DEFAULT_CONFIG.maxOutputTokens),
30
+ strategy: strategy && VALID_STRATEGIES.has(strategy) ? strategy : DEFAULT_CONFIG.strategy,
31
+ };
32
+ };
33
+ const getRuntimeConfig = async () => {
34
+ const cached = getCachedSystemConfig();
35
+ if (cached?.toolResultCompression) {
36
+ return normalizeToolResultCompressionConfig(cached.toolResultCompression);
37
+ }
38
+ const systemConfig = await getSystemConfigDao().get();
39
+ return normalizeToolResultCompressionConfig(systemConfig?.toolResultCompression);
40
+ };
41
+ const markerFor = (metadata, originalTokens, compressedTokens) => {
42
+ const attrs = [
43
+ `strategy=${metadata.strategy}`,
44
+ `original_tokens=${originalTokens}`,
45
+ `compressed_tokens=${compressedTokens}`,
46
+ ];
47
+ if (metadata.omittedItems)
48
+ attrs.push(`omitted_items=${metadata.omittedItems}`);
49
+ if (metadata.omittedLines)
50
+ attrs.push(`omitted_lines=${metadata.omittedLines}`);
51
+ if (metadata.omittedMatches)
52
+ attrs.push(`omitted_matches=${metadata.omittedMatches}`);
53
+ if (metadata.omittedHunks)
54
+ attrs.push(`omitted_hunks=${metadata.omittedHunks}`);
55
+ return `[mcphub:compressed-tool-result ${attrs.join(' ')}]`;
56
+ };
57
+ const tryParseJson = (text) => {
58
+ try {
59
+ return JSON.parse(text);
60
+ }
61
+ catch {
62
+ return undefined;
63
+ }
64
+ };
65
+ const detectStrategy = (text, configured) => {
66
+ if (configured !== 'auto')
67
+ return configured;
68
+ const trimmed = text.trim();
69
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
70
+ if (tryParseJson(trimmed) !== undefined)
71
+ return 'json';
72
+ }
73
+ if (/^(diff --git|diff --combined |diff --cc |--- a\/|@@\s+-\d+)/m.test(text)) {
74
+ return 'diff';
75
+ }
76
+ const lines = text.split(/\r?\n/);
77
+ const sample = lines.slice(0, 80);
78
+ const searchMatches = sample.filter((line) => parseSearchLine(line) !== null).length;
79
+ if (searchMatches >= Math.min(5, Math.max(2, Math.floor(sample.length * 0.35)))) {
80
+ return 'search';
81
+ }
82
+ if (sample.some((line) => /\b(ERROR|FAIL|FAILED|FATAL|CRITICAL|WARN|WARNING)\b|Traceback \(most recent call last\)|^\s*at\s+[\w.$]+\(/i.test(line))) {
83
+ return 'log';
84
+ }
85
+ return 'text';
86
+ };
87
+ const safeStringify = (value) => JSON.stringify(value, null, 2);
88
+ const stringifyJsonSample = (value, maxItems) => {
89
+ if (Array.isArray(value)) {
90
+ const kept = value.slice(0, maxItems);
91
+ return {
92
+ text: safeStringify({
93
+ items: kept,
94
+ omittedItems: Math.max(0, value.length - kept.length),
95
+ totalItems: value.length,
96
+ }),
97
+ omitted: Math.max(0, value.length - kept.length),
98
+ };
99
+ }
100
+ if (!value || typeof value !== 'object') {
101
+ return { text: safeStringify(value), omitted: 0 };
102
+ }
103
+ const entries = Object.entries(value);
104
+ const output = {};
105
+ let omitted = 0;
106
+ for (const [key, entryValue] of entries) {
107
+ if (Array.isArray(entryValue)) {
108
+ const kept = entryValue.slice(0, maxItems);
109
+ output[key] = {
110
+ items: kept,
111
+ omittedItems: Math.max(0, entryValue.length - kept.length),
112
+ totalItems: entryValue.length,
113
+ };
114
+ omitted += Math.max(0, entryValue.length - kept.length);
115
+ }
116
+ else if (entryValue && typeof entryValue === 'object') {
117
+ output[key] = summarizeObject(entryValue, maxItems);
118
+ }
119
+ else {
120
+ output[key] = entryValue;
121
+ }
122
+ }
123
+ return { text: safeStringify(output), omitted };
124
+ };
125
+ const summarizeObject = (value, maxItems) => {
126
+ const output = {};
127
+ for (const [key, entryValue] of Object.entries(value)) {
128
+ if (Array.isArray(entryValue)) {
129
+ output[key] = {
130
+ items: entryValue.slice(0, maxItems),
131
+ omittedItems: Math.max(0, entryValue.length - maxItems),
132
+ totalItems: entryValue.length,
133
+ };
134
+ }
135
+ else if (typeof entryValue === 'string' && entryValue.length > 280) {
136
+ output[key] = `${entryValue.slice(0, 180)} ... ${entryValue.slice(-80)}`;
137
+ }
138
+ else {
139
+ output[key] = entryValue;
140
+ }
141
+ }
142
+ return output;
143
+ };
144
+ const compressJson = (text) => {
145
+ const parsed = tryParseJson(text);
146
+ if (parsed === undefined)
147
+ return compressText(text);
148
+ const { text: compressed, omitted } = stringifyJsonSample(parsed, 5);
149
+ return {
150
+ text: compressed,
151
+ metadata: { strategy: 'json', omittedItems: omitted },
152
+ };
153
+ };
154
+ const uniqueByNormalizedMessage = (lines) => {
155
+ const seen = new Set();
156
+ const output = [];
157
+ for (const line of lines) {
158
+ const normalized = line
159
+ .toLowerCase()
160
+ .replace(/\b0x[0-9a-f]+\b/g, '0xHEX')
161
+ .replace(/\b\d+\b/g, 'N')
162
+ .replace(/\/[^\s:]+/g, '/PATH');
163
+ if (seen.has(normalized))
164
+ continue;
165
+ seen.add(normalized);
166
+ output.push(line);
167
+ }
168
+ return output;
169
+ };
170
+ const compressLog = (text) => {
171
+ const lines = text.split(/\r?\n/);
172
+ const selected = new Set();
173
+ const importantPattern = /\b(ERROR|FAIL|FAILED|FATAL|CRITICAL|WARN|WARNING)\b|Traceback \(most recent call last\)|^\s*at\s+[\w.$]+\(|^\s*File ".*", line \d+|^=+\s*(FAILURES|ERRORS|short test summary info)|^[-=]{5,}$/i;
174
+ lines.forEach((line, index) => {
175
+ if (!importantPattern.test(line))
176
+ return;
177
+ for (let i = Math.max(0, index - 2); i <= Math.min(lines.length - 1, index + 3); i += 1) {
178
+ selected.add(i);
179
+ }
180
+ });
181
+ lines.slice(Math.max(0, lines.length - 20)).forEach((_line, offset) => {
182
+ selected.add(Math.max(0, lines.length - 20) + offset);
183
+ });
184
+ const ordered = Array.from(selected).sort((a, b) => a - b);
185
+ const compressedLines = uniqueByNormalizedMessage(ordered.map((index) => lines[index]));
186
+ return {
187
+ text: compressedLines.join('\n'),
188
+ metadata: {
189
+ strategy: 'log',
190
+ omittedLines: Math.max(0, lines.length - compressedLines.length),
191
+ },
192
+ };
193
+ };
194
+ function parseSearchLine(line) {
195
+ if (/^(?:\d{4}-\d{2}-\d{2}|\d{2}:\d{2}:\d{2}|\[\d{4}-\d{2}-\d{2}|\[\d{2}:\d{2}:\d{2})/.test(line)) {
196
+ return null;
197
+ }
198
+ const match = /^(.*?)(?::|-)(\d+)(?::|-)(.*)$/.exec(line);
199
+ if (!match)
200
+ return null;
201
+ const parsedLine = Number(match[2]);
202
+ if (!Number.isFinite(parsedLine))
203
+ return null;
204
+ return { file: match[1], line: parsedLine, body: match[3] };
205
+ }
206
+ const compressSearch = (text) => {
207
+ const lines = text.split(/\r?\n/);
208
+ const byFile = new Map();
209
+ const passthrough = [];
210
+ for (const line of lines) {
211
+ const parsed = parseSearchLine(line);
212
+ if (!parsed) {
213
+ if (line.trim())
214
+ passthrough.push(line);
215
+ continue;
216
+ }
217
+ const matches = byFile.get(parsed.file) ?? [];
218
+ matches.push(parsed);
219
+ byFile.set(parsed.file, matches);
220
+ }
221
+ if (byFile.size === 0)
222
+ return compressText(text);
223
+ const output = passthrough.slice(0, 10);
224
+ let omitted = 0;
225
+ const files = Array.from(byFile.entries()).slice(0, 20);
226
+ omitted += Math.max(0, byFile.size - files.length);
227
+ for (const [file, matches] of files) {
228
+ const kept = matches.length <= 6
229
+ ? matches
230
+ : [...matches.slice(0, 4), ...matches.slice(-2)];
231
+ output.push(...kept.map((match) => `${file}:${match.line}:${match.body}`));
232
+ if (matches.length > kept.length) {
233
+ omitted += matches.length - kept.length;
234
+ output.push(`[... ${matches.length - kept.length} more matches in ${file}]`);
235
+ }
236
+ }
237
+ return {
238
+ text: output.join('\n'),
239
+ metadata: { strategy: 'search', omittedMatches: omitted },
240
+ };
241
+ };
242
+ const compressDiff = (text) => {
243
+ const lines = text.split(/\r?\n/);
244
+ const keep = new Set();
245
+ lines.forEach((line, index) => {
246
+ if (/^(diff --git|diff --combined |diff --cc |index |--- |\+\+\+ |@@|Binary files|new file mode|deleted file mode)/.test(line) ||
247
+ /^[+-](?![+-])/.test(line)) {
248
+ for (let i = Math.max(0, index - 2); i <= Math.min(lines.length - 1, index + 2); i += 1) {
249
+ keep.add(i);
250
+ }
251
+ }
252
+ });
253
+ const ordered = Array.from(keep).sort((a, b) => a - b);
254
+ const output = [];
255
+ let last = -1;
256
+ let omittedHunks = 0;
257
+ for (const index of ordered) {
258
+ if (last !== -1 && index > last + 1) {
259
+ output.push(`[... ${index - last - 1} diff lines omitted]`);
260
+ omittedHunks += 1;
261
+ }
262
+ output.push(lines[index]);
263
+ last = index;
264
+ }
265
+ return {
266
+ text: output.join('\n'),
267
+ metadata: {
268
+ strategy: 'diff',
269
+ omittedLines: Math.max(0, lines.length - ordered.length),
270
+ omittedHunks,
271
+ },
272
+ };
273
+ };
274
+ const compressText = (text) => {
275
+ const lines = text.split(/\r?\n/);
276
+ const keepHead = Math.min(40, Math.ceil(lines.length * 0.35));
277
+ const keepTail = Math.min(30, Math.ceil(lines.length * 0.25));
278
+ const head = lines.slice(0, keepHead);
279
+ const tailStart = Math.max(keepHead, lines.length - keepTail);
280
+ const tail = lines.slice(tailStart);
281
+ const omitted = Math.max(0, tailStart - keepHead);
282
+ const middle = omitted > 0 ? [`[... ${omitted} lines omitted]`] : [];
283
+ return {
284
+ text: [...head, ...middle, ...tail].join('\n'),
285
+ metadata: { strategy: 'text', omittedLines: omitted },
286
+ };
287
+ };
288
+ const compressByStrategy = (text, strategy) => {
289
+ switch (strategy) {
290
+ case 'json':
291
+ return compressJson(text);
292
+ case 'log':
293
+ return compressLog(text);
294
+ case 'search':
295
+ return compressSearch(text);
296
+ case 'diff':
297
+ return compressDiff(text);
298
+ case 'text':
299
+ return compressText(text);
300
+ }
301
+ };
302
+ const fitToTokenBudget = async (text, maxOutputTokens) => {
303
+ if ((await countTokens(text)) <= maxOutputTokens)
304
+ return text;
305
+ const lines = text.split(/\r?\n/);
306
+ let headCount = Math.min(30, Math.ceil(lines.length * 0.45));
307
+ let tailCount = Math.min(20, Math.ceil(lines.length * 0.25));
308
+ while (headCount > 5 || tailCount > 5) {
309
+ const head = lines.slice(0, headCount);
310
+ const tail = lines.slice(Math.max(headCount, lines.length - tailCount));
311
+ const omitted = Math.max(0, lines.length - head.length - tail.length);
312
+ const candidate = [...head, `[... ${omitted} lines omitted to fit output budget]`, ...tail].join('\n');
313
+ if ((await countTokens(candidate)) <= maxOutputTokens)
314
+ return candidate;
315
+ headCount = Math.max(5, Math.floor(headCount * 0.75));
316
+ tailCount = Math.max(5, Math.floor(tailCount * 0.75));
317
+ if (headCount === 5 && tailCount === 5)
318
+ break;
319
+ }
320
+ const maxChars = maxOutputTokens * 4;
321
+ return `${text.slice(0, Math.floor(maxChars * 0.65))}\n[... content omitted to fit output budget]\n${text.slice(-Math.floor(maxChars * 0.25))}`;
322
+ };
323
+ const compressTextBlock = async (text, config) => {
324
+ const originalTokens = await countTokens(text);
325
+ if (originalTokens < config.minTokens)
326
+ return text;
327
+ const strategy = detectStrategy(text, config.strategy);
328
+ const result = compressByStrategy(text, strategy);
329
+ const fitted = await fitToTokenBudget(result.text, config.maxOutputTokens);
330
+ const compressedTokens = await countTokens(fitted);
331
+ if (compressedTokens >= originalTokens)
332
+ return text;
333
+ return `${markerFor(result.metadata, originalTokens, compressedTokens)}\n${fitted}`;
334
+ };
335
+ export const maybeCompressToolResult = async (result, _context = {}) => {
336
+ try {
337
+ const config = await getRuntimeConfig();
338
+ if (!config.enabled || result?.isError === true || !Array.isArray(result?.content)) {
339
+ return result;
340
+ }
341
+ let changed = false;
342
+ const content = await Promise.all(result.content.map(async (block) => {
343
+ if (block?.type !== 'text' || typeof block.text !== 'string')
344
+ return block;
345
+ const text = await compressTextBlock(block.text, config);
346
+ if (text === block.text)
347
+ return block;
348
+ changed = true;
349
+ return { ...block, text };
350
+ }));
351
+ return changed ? { ...result, content } : result;
352
+ }
353
+ catch (error) {
354
+ console.warn('Tool result compression failed, returning original result', {
355
+ error: error instanceof Error ? error.message : String(error),
356
+ });
357
+ return result;
358
+ }
359
+ };
360
+ //# sourceMappingURL=toolResultCompressionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolResultCompressionService.js","sourceRoot":"","sources":["../../src/services/toolResultCompressionService.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { getRepositoryFactory } from '../db/index.js';
2
2
  import { getAppDataSource, isDatabaseConnected, initializeDatabase, reconnectDatabase } from '../db/connection.js';
3
3
  import { getServerDao } from '../dao/index.js';
4
4
  import { getSmartRoutingConfig } from '../utils/smartRouting.js';
5
+ import { filterModelVisibleTools } from '../utils/mcpApps.js';
5
6
  import { toFloat32Array } from '../utils/base64.js';
6
7
  import { truncateToTokenLimit, truncateWithHeuristic, getModelDefaultTokenLimit, } from '../utils/tokenTruncation.js';
7
8
  import { safeStringify, summarizeErrorForLogging } from '../utils/serialization.js';
@@ -837,6 +838,7 @@ const parseEmbeddingMetadata = (metadata) => {
837
838
  * @param tools Array of tools to save
838
839
  */
839
840
  export const saveToolsAsVectorEmbeddings = async (serverName, tools, options = {}) => {
841
+ tools = filterModelVisibleTools(tools);
840
842
  const shouldReport = options.reportProgress === true;
841
843
  let progressErrorEmitted = false;
842
844
  let lastProgressCurrent = 0;
@@ -854,7 +856,7 @@ export const saveToolsAsVectorEmbeddings = async (serverName, tools, options = {
854
856
  };
855
857
  try {
856
858
  if (tools.length === 0) {
857
- console.warn('No tools to save as vector embeddings', { serverName });
859
+ await removeServerToolEmbeddings(serverName);
858
860
  return;
859
861
  }
860
862
  const smartRoutingConfig = await getSmartRoutingConfig();