chatlab-cli 0.29.0 → 0.30.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.
- package/dist/{chat-command-JKG3FY5B.mjs → chat-command-UZ23GKO7.mjs} +8 -8
- package/dist/{chunk-KL2NGIMQ.mjs → chunk-4IZ3WKYU.mjs} +429 -272
- package/dist/chunk-4IZ3WKYU.mjs.map +1 -0
- package/dist/{chunk-CIB23U32.mjs → chunk-5UBHNQFZ.mjs} +101 -41
- package/dist/chunk-5UBHNQFZ.mjs.map +1 -0
- package/dist/{chunk-WPI6YSAR.mjs → chunk-7BZLS2KW.mjs} +4114 -3962
- package/dist/chunk-7BZLS2KW.mjs.map +1 -0
- package/dist/{chunk-QQK7MLCR.mjs → chunk-A2SANKG4.mjs} +121 -32
- package/dist/chunk-A2SANKG4.mjs.map +1 -0
- package/dist/{chunk-D4WTE7LV.mjs → chunk-CNSYXRJP.mjs} +2 -2
- package/dist/{chunk-I35WHWA6.mjs → chunk-FCCL5Z4W.mjs} +3 -3
- package/dist/chunk-M55KW2HA.mjs +2323 -0
- package/dist/chunk-M55KW2HA.mjs.map +1 -0
- package/dist/{chunk-2MZ6G4AC.mjs → chunk-MUPILWAZ.mjs} +2 -2
- package/dist/{chunk-7RW4CQAO.mjs → chunk-P3ZOLTGS.mjs} +3 -3
- package/dist/{chunk-6FPEP2ZX.mjs → chunk-RDR6PS2R.mjs} +2 -2
- package/dist/{chunk-SKUG5XVD.mjs → chunk-ZFU2CHW3.mjs} +5 -4
- package/dist/cli.mjs +7 -7
- package/dist/contacts-worker.mjs +2 -2
- package/dist/{http-5E7ARYFW.mjs → http-UWRA5FLB.mjs} +11 -11
- package/dist/{import-3KG6VK6O.mjs → import-745KQL7N.mjs} +7 -7
- package/dist/index.mjs +11 -11
- package/dist/{mcp-JBI4CUQT.mjs → mcp-UHN5JOHC.mjs} +8 -8
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{src-UTBQAOJ3.mjs → src-Y7MDRXLJ.mjs} +12 -6
- package/dist/{stream-import-7HZ4IRYJ.mjs → stream-import-3JMXQD7P.mjs} +7 -7
- package/dist/{worker-runtime-ALS4MR2A.mjs → worker-runtime-63RYMGZI.mjs} +5 -5
- package/dist-web/assets/{BufferResource-MsqP5sq3.js → BufferResource-BVdJ_I5X.js} +1 -1
- package/dist-web/assets/CanvasRenderer-BaRuT54R.js +1 -0
- package/dist-web/assets/DebugToolsPanel.vue_vue_type_script_setup_true_lang-N5CoiJzN.js +110 -0
- package/dist-web/assets/{Filter-wRJtdXx9.js → Filter-B7cNFtuE.js} +1 -1
- package/dist-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-D_dJuLWJ.js +1 -0
- package/dist-web/assets/{MessageExportModal-BCrMf5Kw.js → MessageExportModal-B2Qm6VVj.js} +1 -1
- package/dist-web/assets/{PageHeader-C_yw54le.js → PageHeader-PjlWy9fC.js} +1 -1
- package/dist-web/assets/{RelationshipGalaxyCanvas-DTzJq7q7.js → RelationshipGalaxyCanvas-11MafciW.js} +3 -3
- package/dist-web/assets/{RelationshipGalaxyThreeCanvas-DIE-0_iM.js → RelationshipGalaxyThreeCanvas-C1I4B8NX.js} +1 -1
- package/dist-web/assets/{RenderTargetSystem-BSAQFamI.js → RenderTargetSystem-Chkz1WlI.js} +1 -1
- package/dist-web/assets/{WebGLRenderer-lfzmCZNT.js → WebGLRenderer-xK19ru58.js} +1 -1
- package/dist-web/assets/{WebGPURenderer-BnEdfdr_.js → WebGPURenderer-CL5ZaKsn.js} +1 -1
- package/dist-web/assets/{browserAll-gRNfDyPu.js → browserAll-CyyNzRD_.js} +1 -1
- package/dist-web/assets/electron-MXaTKaMu.js +1 -0
- package/dist-web/assets/{fetch-BW3aO7PS.js → fetch-D1dDiFO4.js} +1 -1
- package/dist-web/assets/{fetch-DPCJ-1l-.js → fetch-DDnVXGte.js} +1 -1
- package/dist-web/assets/{fetch-C1fI_KOX.js → fetch-DTwdRTXM.js} +1 -1
- package/dist-web/assets/{fetch-CQt-gb-f.js → fetch-DaaJwT-5.js} +1 -1
- package/dist-web/assets/{fetch-gMB4wuBd.js → fetch-DeA0ztwT.js} +1 -1
- package/dist-web/assets/fetch-DpnIGZSN.js +17 -0
- package/dist-web/assets/{fetch-CFRoSIAn.js → fetch-DsE-xcP2.js} +1 -1
- package/dist-web/assets/{fetch-mFlEBZyB.js → fetch-DsTgYu_X.js} +1 -1
- package/dist-web/assets/{fetch-CN91TIwV.js → fetch-hKE53UO4.js} +1 -1
- package/dist-web/assets/{fetch-BwF5hNuF.js → fetch-u9GTMhMF.js} +1 -1
- package/dist-web/assets/index-BVkE4qis.js +22 -0
- package/dist-web/assets/index-BcXLcFnV.css +1 -0
- package/dist-web/assets/{index-Bg4GGPXv.js → index-BnHKyESZ.js} +1 -1
- package/dist-web/assets/index-Btr5H7d-.js +2 -0
- package/dist-web/assets/{index-MBRD3wPd.css → index-C1p9CbmN.css} +1 -1
- package/dist-web/assets/index-COpza1A4.css +1 -0
- package/dist-web/assets/index-D04LWJop.js +173 -0
- package/dist-web/assets/index-DFCYmzGE.js +2 -0
- package/dist-web/assets/{index-DveHdPfK.js → index-DqXHRIhI.js} +1 -1
- package/dist-web/assets/{index-ZdCB7xcf.js → index-DqtXt3wl.js} +4 -4
- package/dist-web/assets/index-Dszv-QFp.js +64 -0
- package/dist-web/assets/index-DzLrWGXu.js +1 -0
- package/dist-web/assets/{vendor-nuxt-ui-Dr2T8_OZ.js → vendor-nuxt-ui-DaLxYaC4.js} +1 -1
- package/dist-web/assets/{web-BakeV58u.js → web-DPVWfPS-.js} +1 -1
- package/dist-web/assets/{webworkerAll-D_6PgURS.js → webworkerAll-DF5QV_vN.js} +1 -1
- package/dist-web/index.html +3 -3
- package/package.json +1 -1
- package/dist/chunk-ARZM6HBX.mjs +0 -542
- package/dist/chunk-ARZM6HBX.mjs.map +0 -1
- package/dist/chunk-CIB23U32.mjs.map +0 -1
- package/dist/chunk-KL2NGIMQ.mjs.map +0 -1
- package/dist/chunk-QQK7MLCR.mjs.map +0 -1
- package/dist/chunk-WPI6YSAR.mjs.map +0 -1
- package/dist-web/assets/CanvasRenderer-BKCvcc2p.js +0 -1
- package/dist-web/assets/DebugToolsPanel.vue_vue_type_script_setup_true_lang-HGJb0Et1.js +0 -110
- package/dist-web/assets/electron-BHaEaaZP.js +0 -1
- package/dist-web/assets/fetch-CBZbgZqk.js +0 -17
- package/dist-web/assets/index--6C0sK6a.css +0 -1
- package/dist-web/assets/index-B6wEGata.js +0 -173
- package/dist-web/assets/index-BgVbj5qX.js +0 -12
- package/dist-web/assets/index-BkoXaBV_.js +0 -64
- package/dist-web/assets/index-C56IuV5U.css +0 -1
- package/dist-web/assets/index-CLRaKwpT.js +0 -2
- package/dist-web/assets/index-Dj1BSD7O.js +0 -1
- package/dist-web/assets/index-RoDgJcHU.js +0 -2
- package/dist-web/assets/index-aljYO5ms.js +0 -1
- /package/dist/{chat-command-JKG3FY5B.mjs.map → chat-command-UZ23GKO7.mjs.map} +0 -0
- /package/dist/{chunk-D4WTE7LV.mjs.map → chunk-CNSYXRJP.mjs.map} +0 -0
- /package/dist/{chunk-I35WHWA6.mjs.map → chunk-FCCL5Z4W.mjs.map} +0 -0
- /package/dist/{chunk-2MZ6G4AC.mjs.map → chunk-MUPILWAZ.mjs.map} +0 -0
- /package/dist/{chunk-7RW4CQAO.mjs.map → chunk-P3ZOLTGS.mjs.map} +0 -0
- /package/dist/{chunk-6FPEP2ZX.mjs.map → chunk-RDR6PS2R.mjs.map} +0 -0
- /package/dist/{chunk-SKUG5XVD.mjs.map → chunk-ZFU2CHW3.mjs.map} +0 -0
- /package/dist/{http-5E7ARYFW.mjs.map → http-UWRA5FLB.mjs.map} +0 -0
- /package/dist/{import-3KG6VK6O.mjs.map → import-745KQL7N.mjs.map} +0 -0
- /package/dist/{mcp-JBI4CUQT.mjs.map → mcp-UHN5JOHC.mjs.map} +0 -0
- /package/dist/{src-UTBQAOJ3.mjs.map → src-Y7MDRXLJ.mjs.map} +0 -0
- /package/dist/{stream-import-7HZ4IRYJ.mjs.map → stream-import-3JMXQD7P.mjs.map} +0 -0
- /package/dist/{worker-runtime-ALS4MR2A.mjs.map → worker-runtime-63RYMGZI.mjs.map} +0 -0
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
createEmptyContactsDiagnostics,
|
|
10
10
|
normalizeContactsTimeRangePreset,
|
|
11
11
|
resolveContactsTimeRange
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-CNSYXRJP.mjs";
|
|
13
13
|
import {
|
|
14
14
|
PEOPLE_RELATIONSHIPS_ALGORITHM_VERSION,
|
|
15
15
|
buildPeopleRelationshipsNeighborhoodGraph,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
computePeopleRelationshipsSnapshot,
|
|
19
19
|
normalizePeopleRelationshipsTimeRangePreset,
|
|
20
20
|
resolvePeopleRelationshipsTimeRange
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-MUPILWAZ.mjs";
|
|
22
22
|
import {
|
|
23
23
|
BUILTIN_MODELS,
|
|
24
24
|
BUILTIN_PROVIDERS,
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
appLogger,
|
|
33
33
|
batchSegmentChineseWithStats,
|
|
34
34
|
batchSegmentWithFrequency,
|
|
35
|
+
buildExcludeKeywordsConditions,
|
|
35
36
|
buildSessionInfo,
|
|
36
37
|
clearJiebaInstance,
|
|
37
38
|
clearSessionIndex,
|
|
@@ -79,7 +80,7 @@ import {
|
|
|
79
80
|
updateMemberAliases,
|
|
80
81
|
updateSessionOwnerId,
|
|
81
82
|
writeAuthProfile
|
|
82
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-7BZLS2KW.mjs";
|
|
83
84
|
import {
|
|
84
85
|
__commonJS,
|
|
85
86
|
__export,
|
|
@@ -6874,7 +6875,7 @@ async function streamParseFile(filePath, callbacks, formatId) {
|
|
|
6874
6875
|
}
|
|
6875
6876
|
|
|
6876
6877
|
// ../../packages/node-runtime/src/nlp/word-frequency.ts
|
|
6877
|
-
function buildMessageQuery(timeFilter, memberId) {
|
|
6878
|
+
function buildMessageQuery(timeFilter, memberId, excludeKeywords) {
|
|
6878
6879
|
const conditions = [];
|
|
6879
6880
|
const params = [];
|
|
6880
6881
|
if (timeFilter?.startTs !== void 0) {
|
|
@@ -6889,6 +6890,11 @@ function buildMessageQuery(timeFilter, memberId) {
|
|
|
6889
6890
|
conditions.push("msg.sender_id = ?");
|
|
6890
6891
|
params.push(memberId);
|
|
6891
6892
|
}
|
|
6893
|
+
if (excludeKeywords && excludeKeywords.length > 0) {
|
|
6894
|
+
const exclude = buildExcludeKeywordsConditions(excludeKeywords);
|
|
6895
|
+
conditions.push(...exclude.conditions);
|
|
6896
|
+
params.push(...exclude.params);
|
|
6897
|
+
}
|
|
6892
6898
|
conditions.push("COALESCE(m.account_name, '') != '\u7CFB\u7EDF\u6D88\u606F'");
|
|
6893
6899
|
conditions.push("msg.type = 0");
|
|
6894
6900
|
conditions.push("msg.content IS NOT NULL");
|
|
@@ -6910,9 +6916,10 @@ function computeWordFrequency(db, params) {
|
|
|
6910
6916
|
customPosTags,
|
|
6911
6917
|
enableStopwords = true,
|
|
6912
6918
|
dictType = "default",
|
|
6913
|
-
excludeWords
|
|
6919
|
+
excludeWords,
|
|
6920
|
+
excludeKeywords
|
|
6914
6921
|
} = params;
|
|
6915
|
-
const { clause, params: filterParams } = buildMessageQuery(timeFilter, memberId);
|
|
6922
|
+
const { clause, params: filterParams } = buildMessageQuery(timeFilter, memberId, excludeKeywords);
|
|
6916
6923
|
const messages = db.prepare(`SELECT msg.content FROM message msg JOIN member m ON msg.sender_id = m.id${clause}`).all(...filterParams);
|
|
6917
6924
|
if (messages.length === 0) {
|
|
6918
6925
|
return { words: [], totalWords: 0, totalMessages: 0, uniqueWords: 0 };
|
|
@@ -7254,7 +7261,13 @@ async function streamImportSingle(filePath, deps, formatFeature, formatOptions,
|
|
|
7254
7261
|
`INSERT INTO meta (name, platform, type, imported_at, group_id, group_avatar, owner_id) VALUES (?, ?, ?, ?, ?, ?, ?)`
|
|
7255
7262
|
);
|
|
7256
7263
|
const insertMember = db.prepare(
|
|
7257
|
-
`INSERT
|
|
7264
|
+
`INSERT INTO member (platform_id, account_name, group_nickname, avatar, roles)
|
|
7265
|
+
VALUES (?, ?, ?, ?, ?)
|
|
7266
|
+
ON CONFLICT(platform_id) DO UPDATE SET
|
|
7267
|
+
account_name = COALESCE(NULLIF(excluded.account_name, ''), account_name),
|
|
7268
|
+
group_nickname = COALESCE(NULLIF(excluded.group_nickname, ''), group_nickname),
|
|
7269
|
+
avatar = COALESCE(NULLIF(excluded.avatar, ''), avatar),
|
|
7270
|
+
roles = CASE WHEN excluded.roles != '[]' THEN excluded.roles ELSE roles END`
|
|
7258
7271
|
);
|
|
7259
7272
|
const getMemberId = db.prepare(`SELECT id FROM member WHERE platform_id = ?`);
|
|
7260
7273
|
const insertMessage = db.prepare(
|
|
@@ -10550,45 +10563,65 @@ var defaultLogger4 = {
|
|
|
10550
10563
|
warn: () => {
|
|
10551
10564
|
}
|
|
10552
10565
|
};
|
|
10566
|
+
function emptyStats(count) {
|
|
10567
|
+
return {
|
|
10568
|
+
input: count,
|
|
10569
|
+
output: count,
|
|
10570
|
+
cleaned: 0,
|
|
10571
|
+
blacklistRemoved: 0,
|
|
10572
|
+
denoiseRemoved: 0,
|
|
10573
|
+
mergeCombined: 0,
|
|
10574
|
+
desensitizeRulesApplied: 0
|
|
10575
|
+
};
|
|
10576
|
+
}
|
|
10553
10577
|
function preprocessMessages(messages, config, logger = defaultLogger4) {
|
|
10554
|
-
|
|
10555
|
-
|
|
10556
|
-
|
|
10578
|
+
return preprocessMessagesWithStats(messages, config, logger).messages;
|
|
10579
|
+
}
|
|
10580
|
+
function preprocessMessagesWithStats(messages, config, logger = defaultLogger4) {
|
|
10581
|
+
if (!config || !hasAnyEnabled(config)) return { messages, stats: emptyStats(messages.length) };
|
|
10582
|
+
if (messages.length === 0) return { messages, stats: emptyStats(0) };
|
|
10583
|
+
const stats = emptyStats(messages.length);
|
|
10557
10584
|
let result = [...messages];
|
|
10558
10585
|
const applied = [];
|
|
10559
10586
|
if (config.dataCleaning !== false) {
|
|
10560
10587
|
const cleaned = applyDataCleaning(result);
|
|
10561
10588
|
if (cleaned.changed > 0) {
|
|
10562
10589
|
result = cleaned.messages;
|
|
10590
|
+
stats.cleaned = cleaned.changed;
|
|
10563
10591
|
applied.push(`dataCleaning: ${cleaned.changed} messages cleaned`);
|
|
10564
10592
|
}
|
|
10565
10593
|
}
|
|
10566
10594
|
if (config.blacklistKeywords.length > 0) {
|
|
10567
10595
|
const before = result.length;
|
|
10568
10596
|
result = applyBlacklistFilter(result, config.blacklistKeywords);
|
|
10597
|
+
stats.blacklistRemoved = before - result.length;
|
|
10569
10598
|
applied.push(`blacklist: ${before} \u2192 ${result.length} (-${before - result.length})`);
|
|
10570
10599
|
}
|
|
10571
10600
|
if (config.denoise) {
|
|
10572
10601
|
const before = result.length;
|
|
10573
10602
|
result = applyDenoise(result);
|
|
10603
|
+
stats.denoiseRemoved = before - result.length;
|
|
10574
10604
|
applied.push(`denoise: ${before} \u2192 ${result.length} (-${before - result.length})`);
|
|
10575
10605
|
}
|
|
10576
10606
|
if (config.mergeConsecutive) {
|
|
10577
10607
|
const before = result.length;
|
|
10578
10608
|
result = applyMergeConsecutive(result, config.mergeWindowSeconds ?? MERGE_WINDOW_DEFAULT);
|
|
10609
|
+
stats.mergeCombined = before - result.length;
|
|
10579
10610
|
applied.push(`merge: ${before} \u2192 ${result.length} (-${before - result.length})`);
|
|
10580
10611
|
}
|
|
10581
10612
|
if (config.desensitize) {
|
|
10582
10613
|
const enabledRules = (config.desensitizeRules || []).filter((r) => r.enabled);
|
|
10583
10614
|
if (enabledRules.length > 0) {
|
|
10584
10615
|
result = applyDesensitize(result, enabledRules, logger);
|
|
10616
|
+
stats.desensitizeRulesApplied = enabledRules.length;
|
|
10585
10617
|
applied.push(`desensitize: ${enabledRules.length} rules applied`);
|
|
10586
10618
|
}
|
|
10587
10619
|
}
|
|
10588
|
-
|
|
10620
|
+
stats.output = result.length;
|
|
10621
|
+
logger.info("Preprocess", `Pipeline: ${stats.input} \u2192 ${result.length} messages`, {
|
|
10589
10622
|
strategies: applied
|
|
10590
10623
|
});
|
|
10591
|
-
return result;
|
|
10624
|
+
return { messages: result, stats };
|
|
10592
10625
|
}
|
|
10593
10626
|
function hasAnyEnabled(config) {
|
|
10594
10627
|
return config.dataCleaning !== false || config.mergeConsecutive || config.blacklistKeywords.length > 0 || config.denoise || config.desensitize;
|
|
@@ -10683,9 +10716,16 @@ function applyMergeConsecutive(messages, windowSeconds) {
|
|
|
10683
10716
|
const sameSender = isSameSender(current, msg);
|
|
10684
10717
|
const withinWindow = Math.abs(msg.timestamp - current.timestamp) <= windowSeconds;
|
|
10685
10718
|
if (sameSender && withinWindow) {
|
|
10719
|
+
const mergedIds = [
|
|
10720
|
+
...current.mergedIds ?? (current.id != null ? [current.id] : []),
|
|
10721
|
+
...msg.mergedIds ?? (msg.id != null ? [msg.id] : [])
|
|
10722
|
+
];
|
|
10686
10723
|
current = {
|
|
10687
10724
|
...current,
|
|
10688
|
-
content: [current.content, msg.content].filter(Boolean).join("\n")
|
|
10725
|
+
content: [current.content, msg.content].filter(Boolean).join("\n"),
|
|
10726
|
+
// keep first message's id, track last id for [#start-end] range citations
|
|
10727
|
+
mergedEndId: msg.id ?? current.mergedEndId,
|
|
10728
|
+
...mergedIds.length > 0 ? { mergedIds } : {}
|
|
10689
10729
|
};
|
|
10690
10730
|
} else {
|
|
10691
10731
|
merged.push(current);
|
|
@@ -10706,15 +10746,29 @@ function applyDesensitize(messages, rules, logger) {
|
|
|
10706
10746
|
if (compiledRules.length === 0) return messages;
|
|
10707
10747
|
return messages.map((msg) => {
|
|
10708
10748
|
if (!msg.content) return msg;
|
|
10709
|
-
|
|
10710
|
-
for (const { regex, replacement } of compiledRules) {
|
|
10711
|
-
regex.lastIndex = 0;
|
|
10712
|
-
content = content.replace(regex, replacement);
|
|
10713
|
-
}
|
|
10749
|
+
const content = applyCompiledRules(msg.content, compiledRules);
|
|
10714
10750
|
if (content === msg.content) return msg;
|
|
10715
10751
|
return { ...msg, content };
|
|
10716
10752
|
});
|
|
10717
10753
|
}
|
|
10754
|
+
function applyCompiledRules(text, compiledRules) {
|
|
10755
|
+
let result = text;
|
|
10756
|
+
for (const { regex, replacement } of compiledRules) {
|
|
10757
|
+
regex.lastIndex = 0;
|
|
10758
|
+
result = result.replace(regex, replacement);
|
|
10759
|
+
}
|
|
10760
|
+
return result;
|
|
10761
|
+
}
|
|
10762
|
+
function desensitizeText(text, rules, logger = defaultLogger4) {
|
|
10763
|
+
const enabledRules = rules.filter((r) => r.enabled);
|
|
10764
|
+
if (enabledRules.length === 0 || !text) return text;
|
|
10765
|
+
return applyCompiledRules(text, compileRules(enabledRules, logger));
|
|
10766
|
+
}
|
|
10767
|
+
function matchesBlacklist(text, keywords) {
|
|
10768
|
+
if (keywords.length === 0 || !text) return false;
|
|
10769
|
+
const lower = text.toLowerCase();
|
|
10770
|
+
return keywords.some((kw) => lower.includes(kw.toLowerCase()));
|
|
10771
|
+
}
|
|
10718
10772
|
var regexCache = /* @__PURE__ */ new Map();
|
|
10719
10773
|
function compileRules(rules, logger) {
|
|
10720
10774
|
const result = [];
|
|
@@ -11040,14 +11094,26 @@ function t(key, locale) {
|
|
|
11040
11094
|
return "";
|
|
11041
11095
|
}
|
|
11042
11096
|
var MAX_MESSAGE_CONTENT_LENGTH = 200;
|
|
11043
|
-
function formatMessageCompact(msg, locale) {
|
|
11097
|
+
function formatMessageCompact(msg, locale, options2) {
|
|
11044
11098
|
const localeStr = isChineseLocale(locale) ? "zh-CN" : "en-US";
|
|
11045
11099
|
const time = new Date(msg.timestamp * 1e3).toLocaleString(localeStr);
|
|
11046
11100
|
let content = msg.content || t("noContent", locale);
|
|
11047
|
-
|
|
11048
|
-
|
|
11101
|
+
const maxLength = options2?.maxContentLength ?? MAX_MESSAGE_CONTENT_LENGTH;
|
|
11102
|
+
if (maxLength > 0 && content.length > maxLength) {
|
|
11103
|
+
content = content.slice(0, maxLength) + "...";
|
|
11104
|
+
}
|
|
11105
|
+
let idPrefix = "";
|
|
11106
|
+
if (options2?.includeMessageId && msg.id != null) {
|
|
11107
|
+
const range = msg.mergedEndId != null && msg.mergedEndId !== msg.id ? `${msg.id}-${msg.mergedEndId}` : `${msg.id}`;
|
|
11108
|
+
const hitMark = isHitMessage(msg, options2.hitIds) ? "*" : "";
|
|
11109
|
+
idPrefix = `[#${range}${hitMark}] `;
|
|
11049
11110
|
}
|
|
11050
|
-
return `${time} ${msg.senderName}: ${content}`;
|
|
11111
|
+
return `${idPrefix}${time} ${msg.senderName}: ${content}`;
|
|
11112
|
+
}
|
|
11113
|
+
function isHitMessage(msg, hitIds) {
|
|
11114
|
+
if (!hitIds) return false;
|
|
11115
|
+
if (msg.id != null && hitIds.has(msg.id)) return true;
|
|
11116
|
+
return msg.mergedIds?.some((id) => hitIds.has(id)) ?? false;
|
|
11051
11117
|
}
|
|
11052
11118
|
function formatTimeRange(timeFilter, locale) {
|
|
11053
11119
|
if (!timeFilter) return t("allTime", locale);
|
|
@@ -11081,16 +11147,19 @@ function formatToolResultAsText(details) {
|
|
|
11081
11147
|
lines.push("");
|
|
11082
11148
|
let lastDate = "";
|
|
11083
11149
|
for (const msg of messages) {
|
|
11084
|
-
const
|
|
11085
|
-
const
|
|
11150
|
+
const prefixMatch = /^(\[#[^\]]+\] )/.exec(msg);
|
|
11151
|
+
const prefix = prefixMatch ? prefixMatch[1] : "";
|
|
11152
|
+
const body = prefix ? msg.slice(prefix.length) : msg;
|
|
11153
|
+
const spaceIdx = body.indexOf(" ");
|
|
11154
|
+
const secondSpaceIdx = body.indexOf(" ", spaceIdx + 1);
|
|
11086
11155
|
if (spaceIdx > 0 && secondSpaceIdx > 0) {
|
|
11087
|
-
const date =
|
|
11088
|
-
const rest =
|
|
11156
|
+
const date = body.slice(0, spaceIdx);
|
|
11157
|
+
const rest = body.slice(spaceIdx + 1);
|
|
11089
11158
|
if (date !== lastDate) {
|
|
11090
11159
|
lines.push(`--- ${date} ---`);
|
|
11091
11160
|
lastDate = date;
|
|
11092
11161
|
}
|
|
11093
|
-
lines.push(rest);
|
|
11162
|
+
lines.push(prefix + rest);
|
|
11094
11163
|
} else {
|
|
11095
11164
|
lines.push(msg);
|
|
11096
11165
|
}
|
|
@@ -11163,14 +11232,26 @@ function applyPreprocessingPipeline(options2) {
|
|
|
11163
11232
|
maxToolResultTokens,
|
|
11164
11233
|
truncationStrategy = "keep_last",
|
|
11165
11234
|
extraDetails = {},
|
|
11166
|
-
logger
|
|
11235
|
+
logger,
|
|
11236
|
+
includeMessageIds = false,
|
|
11237
|
+
hitIds,
|
|
11238
|
+
maxContentChars
|
|
11167
11239
|
} = options2;
|
|
11168
|
-
const processed =
|
|
11240
|
+
const { messages: processed, stats: preprocessStats } = preprocessMessagesWithStats(
|
|
11241
|
+
rawMessages,
|
|
11242
|
+
preprocessConfig,
|
|
11243
|
+
logger
|
|
11244
|
+
);
|
|
11169
11245
|
let nameMapLine = "";
|
|
11170
11246
|
if (anonymizeNames) {
|
|
11171
11247
|
nameMapLine = anonymizeMessageNames(processed, ownerPlatformId);
|
|
11172
11248
|
}
|
|
11173
|
-
|
|
11249
|
+
const formatOptions = includeMessageIds || maxContentChars != null ? {
|
|
11250
|
+
includeMessageId: includeMessageIds,
|
|
11251
|
+
hitIds: hitIds ? new Set(hitIds) : void 0,
|
|
11252
|
+
maxContentLength: maxContentChars
|
|
11253
|
+
} : void 0;
|
|
11254
|
+
let formatted = processed.map((m) => formatMessageCompact(m, locale, formatOptions));
|
|
11174
11255
|
let wasTruncated = false;
|
|
11175
11256
|
const originalCount = formatted.length;
|
|
11176
11257
|
if (maxToolResultTokens && maxToolResultTokens > 0) {
|
|
@@ -11190,7 +11271,12 @@ function applyPreprocessingPipeline(options2) {
|
|
|
11190
11271
|
if (nameMapLine) {
|
|
11191
11272
|
textContent = nameMapLine + "\n" + textContent;
|
|
11192
11273
|
}
|
|
11193
|
-
|
|
11274
|
+
const stats = {
|
|
11275
|
+
...preprocessStats,
|
|
11276
|
+
renderedBlocks: formatted.length,
|
|
11277
|
+
truncated: wasTruncated
|
|
11278
|
+
};
|
|
11279
|
+
return { text: textContent, details: finalDetails, stats };
|
|
11194
11280
|
}
|
|
11195
11281
|
|
|
11196
11282
|
// ../../packages/node-runtime/src/ai/agent/constants.ts
|
|
@@ -19316,6 +19402,9 @@ export {
|
|
|
19316
19402
|
manualCompress,
|
|
19317
19403
|
createCompressionLlmAdapter,
|
|
19318
19404
|
preprocessMessages,
|
|
19405
|
+
preprocessMessagesWithStats,
|
|
19406
|
+
desensitizeText,
|
|
19407
|
+
matchesBlacklist,
|
|
19319
19408
|
DESENSITIZE_RULES_SCHEMA_VERSION,
|
|
19320
19409
|
BUILTIN_DESENSITIZE_RULES,
|
|
19321
19410
|
getDefaultRulesForLocale,
|
|
@@ -19440,4 +19529,4 @@ export {
|
|
|
19440
19529
|
MergeSessionCache,
|
|
19441
19530
|
pushImport
|
|
19442
19531
|
};
|
|
19443
|
-
//# sourceMappingURL=chunk-
|
|
19532
|
+
//# sourceMappingURL=chunk-A2SANKG4.mjs.map
|