dsh-session-conductor 1.3.7 → 1.3.9
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/README.md +7 -1
- package/lib/apply.js +73 -0
- package/lib/client-parts/apply.js +10 -8
- package/lib/client-parts/components/panel.js +321 -120
- package/lib/client-parts/foundation/bootstrap.js +8 -10
- package/lib/client.js +339 -138
- package/lib/core/config.js +7 -0
- package/lib/core/index-store.js +148 -0
- package/lib/features/rename/analysis.js +6 -0
- package/lib/features/rename/title.js +5 -0
- package/lib/features/search.js +5 -3
- package/lib/features/session-messaging/logic.js +20 -6
- package/lib/features/session-messaging/tools.js +14 -1
- package/lib/features/session-ops-routes.js +145 -1
- package/lib/features/session-ops.js +114 -41
- package/lib/features/trash.js +206 -0
- package/lib/features/value-index.js +120 -0
- package/lib/i18n/en.json +29 -14
- package/lib/i18n/zh.json +27 -12
- package/lib/sessions/list-cache.js +41 -29
- package/lib/sessions/list.js +11 -0
- package/lib/value.js +31 -0
- package/package.json +2 -2
package/lib/value.js
CHANGED
|
@@ -346,6 +346,37 @@ export function keywordMatch(title, lastUserText, keywords) {
|
|
|
346
346
|
return { hit: matched.length > 0, matched };
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
+
/**
|
|
350
|
+
* 单会话价值判定(流式用):与 analyzeValuesWithKeywords 里「无关键词 / 无 LLM」那条路径
|
|
351
|
+
* **同一套规则**,只是按会话逐个算 —— 便于边分析边把结果推给前端(分析出一个勾一个),
|
|
352
|
+
* 不必等全量跑完才给第一个结果。
|
|
353
|
+
*
|
|
354
|
+
* 规则顺序:assessValue 特征评分 → 事件不可读时保守判 high(孤儿/未登记会话不误删)。
|
|
355
|
+
* 关键词与 LLM 分支不在流式路径里(面板筛选不用它们)。
|
|
356
|
+
* @param {object} session 会话对象
|
|
357
|
+
* @param {Array} events 该会话事件流(读不到传空数组)
|
|
358
|
+
* @param {Date} now
|
|
359
|
+
* @param {number} staleDays
|
|
360
|
+
* @returns {{id:string, value:"high"|"low", score:number, reason:string, source:string, status:string}}
|
|
361
|
+
*/
|
|
362
|
+
export function classifySessionLevel(session, events, now = new Date(), staleDays = 3) {
|
|
363
|
+
const evs = Array.isArray(events) ? events : [];
|
|
364
|
+
const feats = buildValueFeatures(evs, session, now);
|
|
365
|
+
const { status } = classifySessionValue(session, lastAssistantText(evs), now, staleDays);
|
|
366
|
+
let scored = assessValue(feats);
|
|
367
|
+
if (feats && feats.eventCount === 0 && !(feats.activeHours > LONG_STALE_HOURS)) {
|
|
368
|
+
scored = { value: "high", score: VALUE_SCORE.artifactSafe, reason: "事件不可读(孤儿/未登记),保守保留", source: "artifact-safe" };
|
|
369
|
+
}
|
|
370
|
+
return {
|
|
371
|
+
id: session.id,
|
|
372
|
+
value: scored.value,
|
|
373
|
+
score: scored.score ?? 0,
|
|
374
|
+
reason: scored.reason || "",
|
|
375
|
+
source: scored.source || "rule",
|
|
376
|
+
status,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
|
|
349
380
|
/**
|
|
350
381
|
* 关键词命中 → 高/低价值聚合(关键词命中即无条件 high,其余走 assessValue 特征评分)。
|
|
351
382
|
* @param {Array} sessions 会话对象数组
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-session-conductor",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.9",
|
|
4
4
|
"description": "DSH session management enhancement: archive/restore sessions, batch & conditional delete, AI auto-rename, interrupted-session auto-resume, release idle sessions, workspace grouping, undo last message, repair damaged session logs, value analysis, full-text search, per-member model switching (list_models / set_member_model), and plan/closing template injection (system-prompt + context).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -66,4 +66,4 @@
|
|
|
66
66
|
"./skills/dsh-session-official-doc.md"
|
|
67
67
|
]
|
|
68
68
|
}
|
|
69
|
-
}
|
|
69
|
+
}
|