chatlab-cli 0.22.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-6GLMVWGA.mjs → chunk-LZ3W6NS5.mjs} +9 -9
- package/dist/{chunk-3UBWLWXB.mjs → chunk-OC2W5Q5T.mjs} +2 -2
- package/dist/{chunk-4U45E7TO.mjs → chunk-QRC3RSER.mjs} +2 -2
- package/dist/{chunk-QJQJIUUS.mjs → chunk-SQKT45MM.mjs} +73 -25
- package/dist/chunk-SQKT45MM.mjs.map +1 -0
- package/dist/{chunk-AMMSVJG4.mjs → chunk-XPBPKH6B.mjs} +32 -13
- package/dist/chunk-XPBPKH6B.mjs.map +1 -0
- package/dist/{chunk-D2XJ4Z7G.mjs → chunk-Z2LYMKCC.mjs} +2 -2
- package/dist/cli.mjs +2 -2
- package/dist/{http-R5UECMPJ.mjs → http-O5P4BYXU.mjs} +6 -6
- package/dist/{import-3LOWRXWA.mjs → import-BDLL3DG7.mjs} +4 -4
- package/dist/index.mjs +6 -6
- package/dist/{mcp-WBHNLED2.mjs → mcp-L2TPZFE7.mjs} +3 -3
- package/dist/{src-UHM2UDRD.mjs → src-FVJL5ENA.mjs} +2 -2
- package/dist/{stream-import-V6Z7DXSW.mjs → stream-import-ZTEW3YVL.mjs} +3 -3
- package/dist-web/assets/{DebugToolsPanel.vue_vue_type_script_setup_true_lang-CxYyne-Q.js → DebugToolsPanel.vue_vue_type_script_setup_true_lang-CqacsKDU.js} +1 -1
- package/dist-web/assets/{MessageExportModal-De5_tX6a.js → MessageExportModal-D1GY6WSV.js} +1 -1
- package/dist-web/assets/{electron-H65bUnhW.js → electron-CsUM2O_Y.js} +1 -1
- package/dist-web/assets/{fetch-cFjLAPG2.js → fetch-BOogCPfg.js} +1 -1
- package/dist-web/assets/{fetch-Q-PqsiMb.js → fetch-CxwnEEqk.js} +1 -1
- package/dist-web/assets/index-CM29Kc4p.js +173 -0
- package/dist-web/assets/index-D183wYuz.js +7 -0
- package/dist-web/assets/{index-BJUGnYn5.js → index-DOwQB7In.js} +1 -1
- package/dist-web/assets/index-DSpvXged.css +1 -0
- package/dist-web/assets/{index-D_ksezTw.js → index-DTxRy2FH.js} +3 -3
- package/dist-web/assets/{index-B_31fXeB.js → index-grds3iG-.js} +2 -2
- package/dist-web/assets/{web-CZe0Ismu.js → web-Cx5APyCN.js} +1 -1
- package/dist-web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunk-AMMSVJG4.mjs.map +0 -1
- package/dist/chunk-QJQJIUUS.mjs.map +0 -1
- package/dist-web/assets/index-CbOwHYzO.css +0 -1
- package/dist-web/assets/index-DKMUn8F5.js +0 -173
- package/dist-web/assets/index-Dhg3SDb6.js +0 -7
- /package/dist/{chunk-6GLMVWGA.mjs.map → chunk-LZ3W6NS5.mjs.map} +0 -0
- /package/dist/{chunk-3UBWLWXB.mjs.map → chunk-OC2W5Q5T.mjs.map} +0 -0
- /package/dist/{chunk-4U45E7TO.mjs.map → chunk-QRC3RSER.mjs.map} +0 -0
- /package/dist/{chunk-D2XJ4Z7G.mjs.map → chunk-Z2LYMKCC.mjs.map} +0 -0
- /package/dist/{http-R5UECMPJ.mjs.map → http-O5P4BYXU.mjs.map} +0 -0
- /package/dist/{import-3LOWRXWA.mjs.map → import-BDLL3DG7.mjs.map} +0 -0
- /package/dist/{mcp-WBHNLED2.mjs.map → mcp-L2TPZFE7.mjs.map} +0 -0
- /package/dist/{src-UHM2UDRD.mjs.map → src-FVJL5ENA.mjs.map} +0 -0
- /package/dist/{stream-import-V6Z7DXSW.mjs.map → stream-import-ZTEW3YVL.mjs.map} +0 -0
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
loadConfig,
|
|
23
23
|
searchMessagesLike,
|
|
24
24
|
verifyCliDataPath
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-SQKT45MM.mjs";
|
|
26
26
|
|
|
27
27
|
// src/cli.ts
|
|
28
28
|
import * as fs from "fs";
|
|
@@ -173,7 +173,7 @@ program.command("import <file>").description("Import a chat history file (14+ fo
|
|
|
173
173
|
console.error(`File not found: ${file}`);
|
|
174
174
|
process.exit(1);
|
|
175
175
|
}
|
|
176
|
-
const { streamImport, detectFormat } = await import("./import-
|
|
176
|
+
const { streamImport, detectFormat } = await import("./import-BDLL3DG7.mjs");
|
|
177
177
|
const { dbManager } = initRuntime();
|
|
178
178
|
const nativeBinding = resolveNativeBinding();
|
|
179
179
|
const format = detectFormat(file);
|
|
@@ -215,7 +215,7 @@ Import error: ${err instanceof Error ? err.message : err}`);
|
|
|
215
215
|
}
|
|
216
216
|
});
|
|
217
217
|
program.command("formats").description("List all supported chat history formats").action(async () => {
|
|
218
|
-
const { getSupportedFormats } = await import("./import-
|
|
218
|
+
const { getSupportedFormats } = await import("./import-BDLL3DG7.mjs");
|
|
219
219
|
const formats = getSupportedFormats();
|
|
220
220
|
console.log(`${formats.length} supported format(s):
|
|
221
221
|
`);
|
|
@@ -224,11 +224,11 @@ program.command("formats").description("List all supported chat history formats"
|
|
|
224
224
|
}
|
|
225
225
|
});
|
|
226
226
|
program.command("mcp").description("Start MCP Server (stdio transport, for ClaudeCode / Cursor / AI agents)").action(async () => {
|
|
227
|
-
const { startCliMcpServer } = await import("./mcp-
|
|
227
|
+
const { startCliMcpServer } = await import("./mcp-L2TPZFE7.mjs");
|
|
228
228
|
await startCliMcpServer();
|
|
229
229
|
});
|
|
230
230
|
program.command("serve").description("Start the HTTP API server").option("--port <port>", "Server port", String(DEFAULT_API_PORT)).option("--host <host>", "Listen address", "127.0.0.1").option("--token <token>", "Custom Bearer Token (reads from config or auto-generates if omitted)").option("--web [dir]", "Serve Web frontend static assets (defaults to dist-web/)").action(async (options) => {
|
|
231
|
-
const { startHttpServer } = await import("./http-
|
|
231
|
+
const { startHttpServer } = await import("./http-O5P4BYXU.mjs");
|
|
232
232
|
const port = parseInt(options.port, 10);
|
|
233
233
|
let webRoot;
|
|
234
234
|
if (options.web !== void 0) {
|
|
@@ -263,7 +263,7 @@ Press Ctrl+C to stop.
|
|
|
263
263
|
`);
|
|
264
264
|
const shutdown = async () => {
|
|
265
265
|
console.log("\nShutting down...");
|
|
266
|
-
const { stopHttpServer } = await import("./http-
|
|
266
|
+
const { stopHttpServer } = await import("./http-O5P4BYXU.mjs");
|
|
267
267
|
await stopHttpServer();
|
|
268
268
|
process.exit(0);
|
|
269
269
|
};
|
|
@@ -280,7 +280,7 @@ Press Ctrl+C to stop.
|
|
|
280
280
|
}
|
|
281
281
|
});
|
|
282
282
|
program.command("web").description("Launch Web UI with one click (HTTP API + browser auto-open)").option("--port <port>", "Server port", String(DEFAULT_API_PORT)).option("--host <host>", "Listen address", "127.0.0.1").option("--no-open", "Do not auto-open browser").action(async (options) => {
|
|
283
|
-
const { startHttpServer } = await import("./http-
|
|
283
|
+
const { startHttpServer } = await import("./http-O5P4BYXU.mjs");
|
|
284
284
|
const port = parseInt(options.port, 10);
|
|
285
285
|
const webDir = resolveCliPath("dist-web");
|
|
286
286
|
let webRoot;
|
|
@@ -308,7 +308,7 @@ Press Ctrl+C to stop.`);
|
|
|
308
308
|
}
|
|
309
309
|
const shutdown = async () => {
|
|
310
310
|
console.log("\nShutting down...");
|
|
311
|
-
const { stopHttpServer } = await import("./http-
|
|
311
|
+
const { stopHttpServer } = await import("./http-O5P4BYXU.mjs");
|
|
312
312
|
await stopHttpServer();
|
|
313
313
|
process.exit(0);
|
|
314
314
|
};
|
|
@@ -417,4 +417,4 @@ if (isDirectRun) {
|
|
|
417
417
|
export {
|
|
418
418
|
run
|
|
419
419
|
};
|
|
420
|
-
//# sourceMappingURL=chunk-
|
|
420
|
+
//# sourceMappingURL=chunk-LZ3W6NS5.mjs.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
generateMessageKey,
|
|
12
12
|
openBetterSqliteDatabase,
|
|
13
13
|
writeParseResultToDb
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SQKT45MM.mjs";
|
|
15
15
|
|
|
16
16
|
// src/import/chatlab-reader.ts
|
|
17
17
|
import * as fs from "fs";
|
|
@@ -392,4 +392,4 @@ export {
|
|
|
392
392
|
parseFile,
|
|
393
393
|
importData
|
|
394
394
|
};
|
|
395
|
-
//# sourceMappingURL=chunk-
|
|
395
|
+
//# sourceMappingURL=chunk-OC2W5Q5T.mjs.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
incrementalImport,
|
|
14
14
|
openBetterSqliteDatabase,
|
|
15
15
|
streamingImport
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SQKT45MM.mjs";
|
|
17
17
|
|
|
18
18
|
// src/import/stream-import.ts
|
|
19
19
|
import * as fs from "fs";
|
|
@@ -141,4 +141,4 @@ export {
|
|
|
141
141
|
analyzeIncrementalImport2 as analyzeIncrementalImport,
|
|
142
142
|
analyzeNewImport2 as analyzeNewImport
|
|
143
143
|
};
|
|
144
|
-
//# sourceMappingURL=chunk-
|
|
144
|
+
//# sourceMappingURL=chunk-QRC3RSER.mjs.map
|
|
@@ -14909,11 +14909,17 @@ var aiLocales = { "zh-CN": zh_CN_default, "en-US": en_US_default, "ja-JP": ja_JP
|
|
|
14909
14909
|
var MIN_MESSAGE_COUNT = 3;
|
|
14910
14910
|
var MAX_CONTENT_PER_CALL = 8e3;
|
|
14911
14911
|
var SEGMENT_THRESHOLD = 8e3;
|
|
14912
|
-
function getSummaryLengthLimit(messageCount) {
|
|
14913
|
-
if (
|
|
14914
|
-
|
|
14915
|
-
|
|
14916
|
-
|
|
14912
|
+
function getSummaryLengthLimit(messageCount, strategy = "standard") {
|
|
14913
|
+
if (strategy === "brief") {
|
|
14914
|
+
if (messageCount <= 10) return 50;
|
|
14915
|
+
if (messageCount <= 30) return 80;
|
|
14916
|
+
if (messageCount <= 100) return 120;
|
|
14917
|
+
return 200;
|
|
14918
|
+
}
|
|
14919
|
+
if (messageCount <= 10) return 100;
|
|
14920
|
+
if (messageCount <= 30) return 200;
|
|
14921
|
+
if (messageCount <= 100) return 350;
|
|
14922
|
+
return 500;
|
|
14917
14923
|
}
|
|
14918
14924
|
var MEANINGFUL_SHORT_ZH = ["\u597D\u7684", "\u4E0D\u662F", "\u662F\u7684", "\u53EF\u4EE5", "\u4E0D\u884C", "\u597D\u5427", "\u660E\u767D", "\u77E5\u9053", "\u540C\u610F"];
|
|
14919
14925
|
var MEANINGLESS_SHORT_EN = [
|
|
@@ -15009,34 +15015,55 @@ function splitIntoSegments(messages, maxCharsPerSegment) {
|
|
|
15009
15015
|
if (currentSegment.length > 0) segments.push(currentSegment);
|
|
15010
15016
|
return segments;
|
|
15011
15017
|
}
|
|
15012
|
-
function buildSummaryPrompt(content, lengthLimit, locale) {
|
|
15018
|
+
function buildSummaryPrompt(content, lengthLimit, locale, strategy) {
|
|
15019
|
+
if (strategy === "brief") {
|
|
15020
|
+
if (locale.startsWith("zh")) {
|
|
15021
|
+
return `\u8BF7\u7528\u7B80\u6D01\u7684\u8BED\u8A00\uFF08${lengthLimit}\u5B57\u4EE5\u5185\uFF09\u603B\u7ED3\u4EE5\u4E0B\u5BF9\u8BDD\u7684\u4E3B\u8981\u5185\u5BB9\u6216\u8BDD\u9898\u3002\u53EA\u8F93\u51FA\u6458\u8981\u5185\u5BB9\uFF0C\u4E0D\u8981\u6DFB\u52A0\u4EFB\u4F55\u524D\u7F00\u3001\u89E3\u91CA\u6216\u5F15\u53F7\u3002
|
|
15022
|
+
|
|
15023
|
+
${content}`;
|
|
15024
|
+
}
|
|
15025
|
+
return `Summarize the following conversation concisely (max ${lengthLimit} characters). Output only the summary, no prefix, explanation, or quotes.
|
|
15026
|
+
|
|
15027
|
+
${content}`;
|
|
15028
|
+
}
|
|
15013
15029
|
if (locale.startsWith("zh")) {
|
|
15014
|
-
return `\u8BF7\
|
|
15030
|
+
return `\u8BF7\u603B\u7ED3\u4EE5\u4E0B\u804A\u5929\u8BB0\u5F55\uFF08${lengthLimit}\u5B57\u4EE5\u5185\uFF09\uFF0C\u9700\u5305\u542B\uFF1A\u8C01\u53C2\u4E0E\u4E86\u8BA8\u8BBA\u3001\u8BA8\u8BBA\u4E86\u4EC0\u4E48\u4E8B\u60C5\u3001\u5173\u952E\u7EC6\u8282\u548C\u7ED3\u8BBA\u3002\u75282-4\u53E5\u8BDD\u63CF\u8FF0\uFF0C\u4E0D\u8981\u7F57\u5217\u6BCF\u6761\u6D88\u606F\u3002\u53EA\u8F93\u51FA\u6458\u8981\u5185\u5BB9\uFF0C\u4E0D\u8981\u6DFB\u52A0\u4EFB\u4F55\u524D\u7F00\u3001\u89E3\u91CA\u6216\u5F15\u53F7\u3002
|
|
15015
15031
|
|
|
15016
15032
|
${content}`;
|
|
15017
15033
|
}
|
|
15018
|
-
return `Summarize the following
|
|
15034
|
+
return `Summarize the following chat log (max ${lengthLimit} characters). Include: who participated, what was discussed, key details and conclusions. Use 2-4 sentences, don't list individual messages. Output only the summary, no prefix, explanation, or quotes.
|
|
15019
15035
|
|
|
15020
15036
|
${content}`;
|
|
15021
15037
|
}
|
|
15022
|
-
function buildSubSummaryPrompt(content, locale) {
|
|
15038
|
+
function buildSubSummaryPrompt(content, locale, strategy) {
|
|
15039
|
+
const limit = strategy === "brief" ? 50 : 100;
|
|
15023
15040
|
if (locale.startsWith("zh")) {
|
|
15024
|
-
return `\u8BF7\u7528\u4E00\u53E5\u8BDD\uFF08\u4E0D\u8D85\
|
|
15041
|
+
return `\u8BF7\u7528\u4E00\u5230\u4E24\u53E5\u8BDD\uFF08\u4E0D\u8D85\u8FC7${limit}\u5B57\uFF09\u6982\u62EC\u4EE5\u4E0B\u5BF9\u8BDD\u7247\u6BB5\u7684\u4E3B\u8981\u5185\u5BB9\uFF0C\u5305\u62EC\u8C01\u8BF4\u4E86\u4EC0\u4E48\u3002\u53EA\u8F93\u51FA\u6458\u8981\u5185\u5BB9\uFF0C\u4E0D\u8981\u6DFB\u52A0\u4EFB\u4F55\u524D\u7F00\u3001\u89E3\u91CA\u6216\u5F15\u53F7\u3002
|
|
15025
15042
|
|
|
15026
15043
|
${content}`;
|
|
15027
15044
|
}
|
|
15028
|
-
return `Summarize this conversation segment in
|
|
15045
|
+
return `Summarize this conversation segment in 1-2 sentences (max ${limit} characters), including who said what. Output only the summary, no prefix or quotes.
|
|
15029
15046
|
|
|
15030
15047
|
${content}`;
|
|
15031
15048
|
}
|
|
15032
|
-
function buildMergePrompt(subSummaries, lengthLimit, locale) {
|
|
15049
|
+
function buildMergePrompt(subSummaries, lengthLimit, locale, strategy) {
|
|
15033
15050
|
const list = subSummaries.map((s, i) => `${i + 1}. ${s}`).join("\n");
|
|
15051
|
+
if (strategy === "brief") {
|
|
15052
|
+
if (locale.startsWith("zh")) {
|
|
15053
|
+
return `\u4EE5\u4E0B\u662F\u4E00\u6BB5\u5BF9\u8BDD\u7684\u591A\u4E2A\u7247\u6BB5\u6458\u8981\uFF0C\u8BF7\u5C06\u5B83\u4EEC\u5408\u5E76\u6210\u4E00\u4E2A\u5B8C\u6574\u7684\u603B\u7ED3\uFF08${lengthLimit}\u5B57\u4EE5\u5185\uFF09\u3002\u53EA\u8F93\u51FA\u6458\u8981\u5185\u5BB9\uFF0C\u4E0D\u8981\u6DFB\u52A0\u4EFB\u4F55\u524D\u7F00\u3001\u89E3\u91CA\u6216\u5F15\u53F7\u3002
|
|
15054
|
+
|
|
15055
|
+
${list}`;
|
|
15056
|
+
}
|
|
15057
|
+
return `Below are summaries of different parts of a conversation. Merge them into one cohesive summary (max ${lengthLimit} characters). Output only the summary, no prefix or quotes.
|
|
15058
|
+
|
|
15059
|
+
${list}`;
|
|
15060
|
+
}
|
|
15034
15061
|
if (locale.startsWith("zh")) {
|
|
15035
|
-
return `\u4EE5\u4E0B\u662F\u4E00\u6BB5\u5BF9\u8BDD\u7684\u591A\u4E2A\u7247\u6BB5\u6458\u8981\uFF0C\u8BF7\u5C06\u5B83\u4EEC\u5408\u5E76\u6210\u4E00\u4E2A\u5B8C\u6574\u7684\u603B\u7ED3\uFF08${lengthLimit}\u5B57\u4EE5\u5185\uFF09\u3002\u53EA\u8F93\u51FA\u6458\u8981\u5185\u5BB9\uFF0C\u4E0D\u8981\u6DFB\u52A0\u4EFB\u4F55\u524D\u7F00\u3001\u89E3\u91CA\u6216\u5F15\u53F7\u3002
|
|
15062
|
+
return `\u4EE5\u4E0B\u662F\u4E00\u6BB5\u5BF9\u8BDD\u7684\u591A\u4E2A\u7247\u6BB5\u6458\u8981\uFF0C\u8BF7\u5C06\u5B83\u4EEC\u5408\u5E76\u6210\u4E00\u4E2A\u5B8C\u6574\u7684\u603B\u7ED3\uFF08${lengthLimit}\u5B57\u4EE5\u5185\uFF09\u3002\u4FDD\u7559\u53C2\u4E0E\u8005\u3001\u4E8B\u4EF6\u548C\u5173\u952E\u7EC6\u8282\u3002\u53EA\u8F93\u51FA\u6458\u8981\u5185\u5BB9\uFF0C\u4E0D\u8981\u6DFB\u52A0\u4EFB\u4F55\u524D\u7F00\u3001\u89E3\u91CA\u6216\u5F15\u53F7\u3002
|
|
15036
15063
|
|
|
15037
15064
|
${list}`;
|
|
15038
15065
|
}
|
|
15039
|
-
return `Below are summaries of different parts of a conversation. Merge them into one cohesive summary (max ${lengthLimit} characters). Output only the summary, no prefix or quotes.
|
|
15066
|
+
return `Below are summaries of different parts of a conversation. Merge them into one cohesive summary (max ${lengthLimit} characters). Preserve participants, events, and key details. Output only the summary, no prefix or quotes.
|
|
15040
15067
|
|
|
15041
15068
|
${list}`;
|
|
15042
15069
|
}
|
|
@@ -15052,7 +15079,7 @@ function postProcessSummary(summary, lengthLimit) {
|
|
|
15052
15079
|
return result;
|
|
15053
15080
|
}
|
|
15054
15081
|
async function generateSessionSummary(deps, chatSessionId, options = {}) {
|
|
15055
|
-
const { locale = "zh-CN", forceRegenerate = false } = options;
|
|
15082
|
+
const { locale = "zh-CN", forceRegenerate = false, strategy = "standard" } = options;
|
|
15056
15083
|
const log = deps.logger;
|
|
15057
15084
|
try {
|
|
15058
15085
|
if (!forceRegenerate) {
|
|
@@ -15070,18 +15097,20 @@ async function generateSessionSummary(deps, chatSessionId, options = {}) {
|
|
|
15070
15097
|
if (validMessages.length < MIN_MESSAGE_COUNT) {
|
|
15071
15098
|
return { success: false, error: deps.t("summary.tooFewValidMessages", { count: MIN_MESSAGE_COUNT }) };
|
|
15072
15099
|
}
|
|
15073
|
-
const lengthLimit = getSummaryLengthLimit(validMessages.length);
|
|
15100
|
+
const lengthLimit = getSummaryLengthLimit(validMessages.length, strategy);
|
|
15101
|
+
const maxTokens = strategy === "brief" ? 300 : 600;
|
|
15102
|
+
const subMaxTokens = strategy === "brief" ? 100 : 200;
|
|
15074
15103
|
const content = formatMessages(validMessages);
|
|
15075
15104
|
log?.info(
|
|
15076
15105
|
"Summary",
|
|
15077
|
-
`Generating summary: sessionId=${chatSessionId}, raw=${rawMessages.length}, valid=${validMessages.length}, chars=${content.length}`
|
|
15106
|
+
`Generating summary: sessionId=${chatSessionId}, strategy=${strategy}, raw=${rawMessages.length}, valid=${validMessages.length}, chars=${content.length}`
|
|
15078
15107
|
);
|
|
15079
15108
|
let summary;
|
|
15080
15109
|
if (content.length <= SEGMENT_THRESHOLD) {
|
|
15081
15110
|
summary = await deps.llmComplete(
|
|
15082
15111
|
deps.t("summary.systemPromptDirect"),
|
|
15083
|
-
buildSummaryPrompt(content, lengthLimit, locale),
|
|
15084
|
-
{ temperature: 0.3, maxTokens
|
|
15112
|
+
buildSummaryPrompt(content, lengthLimit, locale, strategy),
|
|
15113
|
+
{ temperature: 0.3, maxTokens }
|
|
15085
15114
|
);
|
|
15086
15115
|
summary = summary.trim();
|
|
15087
15116
|
} else {
|
|
@@ -15092,8 +15121,8 @@ async function generateSessionSummary(deps, chatSessionId, options = {}) {
|
|
|
15092
15121
|
const segContent = formatMessages(segment2);
|
|
15093
15122
|
const sub = await deps.llmComplete(
|
|
15094
15123
|
deps.t("summary.systemPromptDirect"),
|
|
15095
|
-
buildSubSummaryPrompt(segContent, locale),
|
|
15096
|
-
{ temperature: 0.3, maxTokens:
|
|
15124
|
+
buildSubSummaryPrompt(segContent, locale, strategy),
|
|
15125
|
+
{ temperature: 0.3, maxTokens: subMaxTokens }
|
|
15097
15126
|
);
|
|
15098
15127
|
subSummaries.push(sub.trim());
|
|
15099
15128
|
}
|
|
@@ -15102,8 +15131,8 @@ async function generateSessionSummary(deps, chatSessionId, options = {}) {
|
|
|
15102
15131
|
} else {
|
|
15103
15132
|
summary = await deps.llmComplete(
|
|
15104
15133
|
deps.t("summary.systemPromptMerge"),
|
|
15105
|
-
buildMergePrompt(subSummaries, lengthLimit, locale),
|
|
15106
|
-
{ temperature: 0.3, maxTokens
|
|
15134
|
+
buildMergePrompt(subSummaries, lengthLimit, locale, strategy),
|
|
15135
|
+
{ temperature: 0.3, maxTokens }
|
|
15107
15136
|
);
|
|
15108
15137
|
summary = summary.trim();
|
|
15109
15138
|
}
|
|
@@ -16842,7 +16871,8 @@ var localeConfigSchema = z.object({
|
|
|
16842
16871
|
});
|
|
16843
16872
|
var uiConfigSchema = z.object({
|
|
16844
16873
|
default_session_tab: z.enum(["overview", "ai-chat"]).default("overview"),
|
|
16845
|
-
session_gap_threshold: z.number().int().min(60).max(86400).default(1800)
|
|
16874
|
+
session_gap_threshold: z.number().int().min(60).max(86400).default(1800),
|
|
16875
|
+
summary_strategy: z.enum(["brief", "standard"]).default("standard")
|
|
16846
16876
|
});
|
|
16847
16877
|
var configSchema = z.object({
|
|
16848
16878
|
llm: llmConfigSchema.default({}),
|
|
@@ -18806,6 +18836,7 @@ function rebuildFts(adapter, sessionId) {
|
|
|
18806
18836
|
// ../../packages/node-runtime/src/services/summary-service.ts
|
|
18807
18837
|
var summary_service_exports = {};
|
|
18808
18838
|
__export(summary_service_exports, {
|
|
18839
|
+
checkCanGenerate: () => checkCanGenerate,
|
|
18809
18840
|
generateAllSummaries: () => generateAllSummaries,
|
|
18810
18841
|
generateSummary: () => generateSummary
|
|
18811
18842
|
});
|
|
@@ -18863,6 +18894,23 @@ async function generateAllSummaries(adapter, sessionId, serviceDeps, options) {
|
|
|
18863
18894
|
}
|
|
18864
18895
|
return { success, failed, total: chatSessions.length };
|
|
18865
18896
|
}
|
|
18897
|
+
function checkCanGenerate(adapter, sessionId, chatSessionIds) {
|
|
18898
|
+
const db = adapter.ensureReadonly(sessionId);
|
|
18899
|
+
const deps = {
|
|
18900
|
+
loadMessages(chatSessionId, limit = 500) {
|
|
18901
|
+
const data = getSessionMessages(db, chatSessionId, limit);
|
|
18902
|
+
if (!data) return null;
|
|
18903
|
+
return data.messages.map((m) => ({ senderName: m.senderName, content: m.content }));
|
|
18904
|
+
},
|
|
18905
|
+
t: (key) => key
|
|
18906
|
+
};
|
|
18907
|
+
const resultMap = checkSessionsCanGenerateSummary(deps, chatSessionIds);
|
|
18908
|
+
const result = {};
|
|
18909
|
+
for (const [id, info] of resultMap) {
|
|
18910
|
+
result[id] = info;
|
|
18911
|
+
}
|
|
18912
|
+
return result;
|
|
18913
|
+
}
|
|
18866
18914
|
|
|
18867
18915
|
// ../../packages/node-runtime/src/services/export-service.ts
|
|
18868
18916
|
var export_service_exports = {};
|
|
@@ -19153,4 +19201,4 @@ export {
|
|
|
19153
19201
|
export_service_exports,
|
|
19154
19202
|
createDatabaseManagerAdapter
|
|
19155
19203
|
};
|
|
19156
|
-
//# sourceMappingURL=chunk-
|
|
19204
|
+
//# sourceMappingURL=chunk-SQKT45MM.mjs.map
|