dsh-plugin-om 0.0.13 → 0.0.15
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 +26 -20
- package/dist/compress.d.ts +17 -12
- package/dist/compress.d.ts.map +1 -1
- package/dist/config.d.ts +6 -17
- package/dist/config.d.ts.map +1 -1
- package/dist/constants.d.ts +9 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +7763 -370
- package/dist/log-index.d.ts +5 -3
- package/dist/log-index.d.ts.map +1 -1
- package/dist/recall.d.ts +2 -2
- package/dist/semantic-recall.d.ts +2 -1
- package/dist/semantic-recall.d.ts.map +1 -1
- package/dist/summarize.d.ts +70 -55
- package/dist/summarize.d.ts.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -15
- package/dist/utils.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/log-index.d.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
*
|
|
5
5
|
* 完整消息是摘要日志与 recall 共用的定位单位,分三类:
|
|
6
6
|
* - user:用户消息(user/message)占一条;
|
|
7
|
-
* - assistant
|
|
7
|
+
* - assistant:模型输出文本(assistant/message 中的文本块)占一条;
|
|
8
8
|
* - toolcall:单个工具调用及其结果占一条(同一条 AI 消息里的文本与工具调用拆开,
|
|
9
|
-
* tool/result 按 source.callId 匹配其 tool-call
|
|
10
|
-
* 插件自产消息(<
|
|
9
|
+
* tool/result 按 source.callId 匹配其 tool-call;未匹配的 result 独立成条,防御)。
|
|
10
|
+
* 插件自产消息(<history>、运行时快照等 source.kind === 'plugin')不占 index。
|
|
11
11
|
* index 从 0 起、按日志顺序递增、只追加不重排 → 会话内全局稳定,
|
|
12
12
|
* 压缩后旧摘要条目引用的 index 仍然有效。
|
|
13
13
|
*/
|
|
@@ -28,6 +28,8 @@ export declare function indexMessages(session: Session): MessageIndex;
|
|
|
28
28
|
/**
|
|
29
29
|
* 完整消息索引:按日志顺序把消息事件折叠为完整消息序列(三类,见文件头)。
|
|
30
30
|
* 工具调用结果按 source.callId 匹配其 tool-call 并入该条;未匹配的 result 独立成条(防御)。
|
|
31
|
+
* 插件在 agent/pre-step 触发压缩(日志 call-result 完备),因此压缩时不存在未闭合的
|
|
32
|
+
* tool-call;索引对未闭合调用不设特殊处理。
|
|
31
33
|
*/
|
|
32
34
|
export declare function indexCompleteMessages(session: Session): CompleteMessage[];
|
|
33
35
|
/**
|
package/dist/log-index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-index.d.ts","sourceRoot":"","sources":["../src/log-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,eAAe,EAEf,YAAY,EAEZ,OAAO,EACP,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,KAAK,OAAO,EAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMpF;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CA0B5D;AAED
|
|
1
|
+
{"version":3,"file":"log-index.d.ts","sourceRoot":"","sources":["../src/log-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,eAAe,EAEf,YAAY,EAEZ,OAAO,EACP,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,KAAK,OAAO,EAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMpF;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CA0B5D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,EAAE,CAkEzE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,eAAe,EACnB,MAAM,CAAC,EAAE,UAAU,GAClB,MAAM,CAgER"}
|
package/dist/recall.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* recall 工具:按「完整消息」序号(index)回看原始会话(start/end 为完整消息 index,
|
|
3
|
-
* offset 为相对 start
|
|
4
|
-
*
|
|
3
|
+
* offset 为相对 start 的完整消息步数)。完整消息即 `用户消息`,`模型输出文本`和`具有result的
|
|
4
|
+
* toolcall`;首条完整消息的 index 为 0,后续递增、会话内全局稳定,与摘要日志条目同一套编号。
|
|
5
5
|
* recall 自身不设输出上限:超大的工具结果由 tool-result-pruner 裁剪(pruneContent),
|
|
6
6
|
* 输出 token 由 pruner 配置控制。
|
|
7
7
|
*
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* recall-semantic 工具:按自然语言 query 对会话全部完整消息(含被压缩/遮蔽的)做语义
|
|
3
|
-
*
|
|
3
|
+
* 检索,返回最匹配的完整消息与匹配说明。完整消息即 `用户消息`,`模型输出文本`和`具有result的
|
|
4
|
+
* toolcall`;首条完整消息的 index 为 0,后续递增、会话内全局稳定。
|
|
4
5
|
*
|
|
5
6
|
* - 参数:query 必填;top_k(默认 3,1-10);start/end/offset 限定检索区间
|
|
6
7
|
* (意义同 recall:start 为基准边界,end 与 offset 二选一;end 优先)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-recall.d.ts","sourceRoot":"","sources":["../src/semantic-recall.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"semantic-recall.d.ts","sourceRoot":"","sources":["../src/semantic-recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/F,OAAO,KAAK,EAAmB,cAAc,EAAkB,MAAM,YAAY,CAAC;AAGlF,qEAAqE;AACrE,eAAO,MAAM,wBAAwB;;;;;;iBAUjC,CAAC;AAEL,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,+CAA+C;AAC/C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAWxE;AAED,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,GACzD,WAAW,CA2Bb;AAED,uCAAuC;AACvC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAOlD;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAcnF;AAED,+CAA+C;AAC/C,eAAO,MAAM,gCAAgC,0iBACoE,CAAC;AAElH,uEAAuE;AACvE,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAChD,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACxD,GAAG,cAAc,CAuHjB"}
|
package/dist/summarize.d.ts
CHANGED
|
@@ -1,81 +1,96 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 摘要调用(OM 观察/反思):直连 ctx.llm.stream()
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - new:新开会话风格——指令作为 system 提示词,被压缩消息(由 compress.ts 渲染传入)
|
|
8
|
-
* 作为 user 消息输入模型压缩;
|
|
9
|
-
* - disable:关闭自动压缩(compress.ts 早退,不发起摘要调用)。
|
|
2
|
+
* 摘要调用(OM 观察/反思):直连 ctx.llm.stream(),始终以 new 方式开启观察——
|
|
3
|
+
* 新开会话:指令(共享提示词)作为 system 提示词,被压缩消息(由 compress.ts 渲染传入)
|
|
4
|
+
* 作为 user 消息输入模型压缩。观察与反思共用同一套系统提示词(buildHistoryPrompt):
|
|
5
|
+
* 输入与输出都是合法的 <history> 块(模型消息 + index 的表达形式),先定义块、要求压缩、
|
|
6
|
+
* 再给出数据源(下方 <history> 消息记录)。
|
|
10
7
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
8
|
+
* 观察输入由 renderMessages 渲染为 <history> 块:用户消息文本原样(其中合法
|
|
9
|
+
* <system-reminder> 块整块原样保留、不转义;图片/文件以注释补充)、
|
|
10
|
+
* <reasoning> 参考条目(产物中没有)、assistant 文本与 toolcall&result 原样。
|
|
11
|
+
* 输出经 extractSummaryLog 校验:合法 <history> 块、不含 <reasoning>、index/start/end 连续
|
|
12
|
+
* (与预期覆盖区间一致),失败按 config.compressRetryCount 重试。
|
|
13
|
+
* token usage 从流式响应的 usage chunk 提取,归入主会话记录。仅主会话生效(index.ts 守卫)。
|
|
15
14
|
*/
|
|
16
|
-
import type { SummaryMode } from './config.ts';
|
|
17
15
|
import type { Agent, Context, Session, TokenUsage } from './types.ts';
|
|
18
16
|
import { type RoutedTarget } from './utils.ts';
|
|
19
|
-
/** 观察者 persona:只针对未压缩消息产出观察日志,不用工具、不展示思考。 */
|
|
20
|
-
export declare const OBSERVER_PERSONA = "\u628A\u4F1A\u8BDD\u4E2D\u5C1A\u672A\u538B\u7F29\u7684\u6D88\u606F\u538B\u7F29\u4E3A\u4E00\u4EFD\u89C2\u5BDF\u65E5\u5FD7\u3002\u4E0D\u7528\u5DE5\u5177\u3001\u4E0D\u5C55\u793A\u601D\u8003\u3001\u4E0D\u8BC4\u4EF7\u4EE3\u7801\u3001\u4E0D\u8F93\u51FA\u591A\u4F59\u6587\u5B57\u3002";
|
|
21
|
-
/** 反思者 persona:只精简合并当前摘要,不用工具、不展示思考。 */
|
|
22
|
-
export declare const REFLECTOR_PERSONA = "\u628A\u5F53\u524D <om-history> \u538B\u7F29\u65E5\u5FD7\u7CBE\u7B80\u5408\u5E76\u4E3A\u4E00\u4EFD\u66F4\u7D27\u51D1\u7684\u65E5\u5FD7\u3002\u4E0D\u7528\u5DE5\u5177\u3001\u4E0D\u5C55\u793A\u601D\u8003\u3001\u4E0D\u8F93\u51FA\u591A\u4F59\u6587\u5B57\u3002";
|
|
23
|
-
/** 观察提示词参数(起始 index 由 compress.ts 从日志计算后传入)。 */
|
|
24
|
-
export type ObservePromptOptions = {
|
|
25
|
-
/** 本次要压缩的新消息起始完整消息 index(AI 从该序号开始编号)。 */
|
|
26
|
-
startIndex: number;
|
|
27
|
-
/** 是否存在旧摘要(决定「追加到上次产物末尾」的表述)。 */
|
|
28
|
-
hasOldHistory: boolean;
|
|
29
|
-
/** 摘要模式:fork=完整历史随请求传入;new=被压缩消息渲染为输入。 */
|
|
30
|
-
mode: SummaryMode;
|
|
31
|
-
};
|
|
32
17
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
18
|
+
* 共享压缩提示词(观察/反思同一套):定义 history 块(模型消息 + index 的表达形式)、
|
|
19
|
+
* 完整消息定义、要求压缩(完整保留用户消息 / reasoning 仅参考 / 关联 assistant 合并 /
|
|
20
|
+
* index/start/end 连续)、输出格式(一个合法 <history> 块,无 reasoning)、数据源说明。
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildHistoryPrompt(): string;
|
|
23
|
+
/**
|
|
24
|
+
* 提取文本中全部合法的 <system-reminder> 块(完整开闭标签对且内容可被 XML 解析);
|
|
25
|
+
* 供渲染(原样插入)与未压缩消息测量(不计入)共用;不合法部分按普通文本处理。
|
|
39
26
|
*/
|
|
40
|
-
export declare function
|
|
41
|
-
/** 构建反思指令主体:任务声明(fork:停止任务/禁止工具;new:说明总结日志)+ 精简合并
|
|
42
|
-
* 当前 <om-history> 的规则 + 输出格式(合法 XML);消息记录全文由请求(fork)或渲染输入(new)提供。 */
|
|
43
|
-
export declare function buildReflectPrompt(mode: SummaryMode): string;
|
|
27
|
+
export declare function legitimateSystemReminderBlocks(text: string): string[];
|
|
44
28
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
29
|
+
* 渲染完整消息记录(观察输入,new 模式):输出一个合法的 <history> 块——
|
|
30
|
+
* - user → <user_message index="N">(文本原样,其中合法 <system-reminder> 块整块原样保留、不转义;图片/文件注释);
|
|
31
|
+
* - 每条 assistant 消息的 reasoning → <reasoning>(参考条目,产物中没有);
|
|
32
|
+
* - assistant / toolcall → <assistant index="N">(模型输出文本 / toolcall&result 原样)。
|
|
33
|
+
* 文本经 XML 序列化自动转义(用户输入 / 文本 / reasoning 中的特殊字符不破坏 XML 合法性)。
|
|
34
|
+
* 仅渲染 seqs 全部落在给定集合内的完整消息(插件自产消息天然不占位)。
|
|
47
35
|
*/
|
|
36
|
+
export declare function renderMessages(session: Session, seqs: readonly number[]): string;
|
|
37
|
+
/** 摘要调用结果:文本 + 可选 token usage(摘要请求自身消耗,随 compaction/summary 归入主会话记录)。 */
|
|
48
38
|
export type SummarySubagentResult = {
|
|
49
39
|
text: string;
|
|
50
40
|
usage?: TokenUsage;
|
|
51
41
|
};
|
|
42
|
+
/** 日志最小有效长度:<history> 中间内容小于该长度视为不合法(C 段校验)。 */
|
|
43
|
+
export declare const MIN_HISTORY_LENGTH = 10;
|
|
44
|
+
/** 产出日志后插入首个 <history> 后的格式说明(XML 注释,完整消息定义 + 条目标签语义)。 */
|
|
45
|
+
export declare const HISTORY_FORMAT_NOTE = "<!-- \u5B8C\u6574\u6D88\u606F\uFF1A`\u7528\u6237\u6D88\u606F`\uFF0C`\u6A21\u578B\u8F93\u51FA\u6587\u672C`\u548C`\u5177\u6709result\u7684toolcall`\u88AB\u89C6\u4F5C`\u5B8C\u6574\u6D88\u606F`\u3002\u9996\u6761`\u5B8C\u6574\u6D88\u606F`\u7684index\u662F0\uFF0C\u540E\u7EED\u7684index\u9012\u589E\u3002 <user_message index=\"N\"> \u4E0E <assistant index=\"N\"> \u8868\u793A\u5355\u6761\u5B8C\u6574\u6D88\u606F\uFF0C<assistant start=\"A\" end=\"B\"> \u8868\u793A\u8FDE\u7EED\u6A21\u5757\uFF0Cstart/end \u662F\u9996\u5C3E\u5B8C\u6574\u6D88\u606F\u7684 index -->";
|
|
46
|
+
/** history 块内条目(单条 index 或模块 start/end)。 */
|
|
47
|
+
export type HistoryEntryRange = {
|
|
48
|
+
kind: 'user' | 'assistant';
|
|
49
|
+
index?: number;
|
|
50
|
+
start?: number;
|
|
51
|
+
end?: number;
|
|
52
|
+
};
|
|
52
53
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* - assistant / toolcall → <assistant index="N">(文本 / 调用参数+结果)</assistant>。
|
|
56
|
-
* 仅渲染 seqs 全部落在给定集合内的完整消息(插件自产消息天然不占位)。
|
|
54
|
+
* 解析文本中全部 <history> 块内的条目(反思输入为多个块拼接:逐块解析提取)。
|
|
55
|
+
* 非法块(结构错误 / 根非 history)跳过;仅提取不校验顺序(连续性由 historyContinuity 校验)。
|
|
57
56
|
*/
|
|
58
|
-
export declare function
|
|
59
|
-
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
export declare function parseHistoryEntries(text: string): HistoryEntryRange[];
|
|
58
|
+
/**
|
|
59
|
+
* 校验条目 index/start/end 连续性:每条给出覆盖区间 [lo, hi](单条 index 为自身),
|
|
60
|
+
* 按块内出现顺序,相邻条目必须首尾相接(后一条 lo = 前一条 hi + 1),返回整体覆盖区间;
|
|
61
|
+
* 空条目 / 非法范围(start > end) / 跳号、重叠或乱序 → 返回 null。
|
|
62
|
+
*/
|
|
63
|
+
export declare function historyContinuity(entries: HistoryEntryRange[]): {
|
|
64
|
+
start: number;
|
|
65
|
+
end: number;
|
|
66
|
+
} | null;
|
|
67
|
+
/** 校验期望覆盖区间(外部传入;仅校验提供的字段,缺省字段跳过)。 */
|
|
68
|
+
export type SummaryValidationRange = {
|
|
69
|
+
start?: number;
|
|
70
|
+
end?: number;
|
|
71
|
+
};
|
|
63
72
|
/**
|
|
64
73
|
* 从 AI 摘要输出中提取合法日志(不信任 AI 的总结结果):
|
|
65
|
-
* - 取首个 <
|
|
74
|
+
* - 取首个 <history> 到最后一个 </history>(含两个首尾)切为日志;
|
|
66
75
|
* - 找不到、顺序颠倒(首个开标签在最后一个闭标签之后)或中间内容长度 < MIN_HISTORY_LENGTH
|
|
67
76
|
* 视为不合法(返回 null,调用方按失败重试);
|
|
77
|
+
* - 用 XML 解析器校验结构合法性(非法 XML / 多块输出 / 根非 <history> → 不合法);
|
|
78
|
+
* - 产物不允许包含 <reasoning> 块(仅作参考);
|
|
79
|
+
* - index/start/end 连续性校验(historyContinuity + 与 expected 覆盖区间一致);
|
|
68
80
|
* - 产出后把首个开标签改写为带 tip 属性的版本(对 AI 的提醒),并在其后插入
|
|
69
81
|
* 格式说明注释(HISTORY_FORMAT_NOTE,块顶)。
|
|
70
82
|
*/
|
|
71
|
-
export declare function extractSummaryLog(raw: string): string | null;
|
|
72
|
-
/**
|
|
73
|
-
export declare const
|
|
83
|
+
export declare function extractSummaryLog(raw: string, expected?: SummaryValidationRange): string | null;
|
|
84
|
+
/** 摘要调用总尝试次数兜底(无 options.maxAttempts 时;实际由 config.compressRetryCount + 1 传入)。 */
|
|
85
|
+
export declare const SUMMARY_DEFAULT_MAX_ATTEMPTS = 11;
|
|
74
86
|
/**
|
|
75
87
|
* 直连 LLM 执行一次摘要(观察或反思),返回文本与可选 token usage。
|
|
76
|
-
* 失败(抛异常 / 空输出 / 非 stop
|
|
77
|
-
*
|
|
78
|
-
*
|
|
88
|
+
* 失败(抛异常 / 空输出 / 非 stop 结束 / 校验不通过)均记录日志并重试,总共最多尝试
|
|
89
|
+
* options.maxAttempts 次(默认 SUMMARY_DEFAULT_MAX_ATTEMPTS);全部尝试失败返回 null
|
|
90
|
+
* (不产生任何日志变更)。输出长度受 maxTokens 限制。
|
|
79
91
|
*/
|
|
80
|
-
export declare function runSummarySubagent(ctx: Context, agent: Agent, instruction: string, contextText: string | undefined, maxTokens: number,
|
|
92
|
+
export declare function runSummarySubagent(ctx: Context, agent: Agent, instruction: string, contextText: string | undefined, maxTokens: number, target: RoutedTarget, debug: boolean, signal?: AbortSignal, options?: {
|
|
93
|
+
maxAttempts?: number;
|
|
94
|
+
expected?: SummaryValidationRange;
|
|
95
|
+
}): Promise<SummarySubagentResult | null>;
|
|
81
96
|
//# sourceMappingURL=summarize.d.ts.map
|
package/dist/summarize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../src/summarize.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../src/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,OAAO,KAAK,EAAE,KAAK,EAAmB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,YAAY,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAoC3C;AA4ED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOrE;AAyCD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CA2DhF;AAED,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AA8EF,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,gjBAAyK,CAAC;AAE1M,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AA8EF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAYrE;AACD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,EAAE,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuBvC;AAED,sCAAsC;AACtC,MAAM,MAAM,sBAAsB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAiC/F;AACD,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAK/C;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAA;CAAE,GACpE,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CA+EvC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -43,14 +43,14 @@ export type MessageIndex = {
|
|
|
43
43
|
};
|
|
44
44
|
/**
|
|
45
45
|
* 一条完整消息:摘要日志与 recall 共用的定位单位,分三类——
|
|
46
|
-
* user(用户消息)、assistant
|
|
46
|
+
* user(用户消息)、assistant(模型输出文本)、toolcall(单个工具调用及其结果)。
|
|
47
47
|
* index 从 0 起、按日志顺序递增、只追加不重排 → 会话内全局稳定
|
|
48
48
|
* (压缩后旧摘要条目引用的 index 仍然有效);插件自产消息不占位。
|
|
49
49
|
*/
|
|
50
50
|
export type CompleteMessage = {
|
|
51
51
|
/** 完整消息序号(0 起,全局稳定)。 */
|
|
52
52
|
index: number;
|
|
53
|
-
/** 类别:user=用户消息;assistant
|
|
53
|
+
/** 类别:user=用户消息;assistant=模型输出文本;toolcall=单个工具调用及其结果。 */
|
|
54
54
|
type: 'user' | 'assistant' | 'toolcall';
|
|
55
55
|
/** 关联的消息事件 seq(user/assistant=1 个;toolcall=assistant 消息 + 结果)。 */
|
|
56
56
|
seqs: number[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7E,gDAAgD;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,YAAY,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,cAAc,GAAG,mBAAmB,GAAG,aAAa,CAAC;CAC5D,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG;IACzB,oBAAoB;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,kCAAkC;IAClC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7E,gDAAgD;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,YAAY,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,cAAc,GAAG,mBAAmB,GAAG,aAAa,CAAC;CAC5D,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG;IACzB,oBAAoB;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,kCAAkC;IAClC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACxC,kEAAkE;IAClE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 零依赖工具函数:不 import 任何运行时包,保证单文件打包与任意位置挂载。
|
|
3
|
-
*
|
|
3
|
+
* 主要服务于文本呈现、主会话判定与路由解析。
|
|
4
4
|
*/
|
|
5
5
|
import type { Message } from '@deepseek-ai/dsh-llm';
|
|
6
6
|
import type { Session } from './types.ts';
|
|
7
7
|
/** 判断值是否为普通对象:typeof object 且非 null 且非数组(类型收窄用)。 */
|
|
8
8
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
9
|
-
/** 抛出带插件前缀的错误(never 返回:调用后控制流终止)。 */
|
|
10
|
-
export declare function fail(message: string): never;
|
|
11
|
-
/** 数值配置项的取值约束(assertNumber 的可选参数)。不做区间限制——用户提供的值按原样接受。 */
|
|
12
|
-
export type NumberConstraints = {
|
|
13
|
-
/** 是否必须为整数,默认 false。 */
|
|
14
|
-
integer?: boolean;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* 校验配置数值:必须是有限数(可选整数约束),不限制取值区间;
|
|
18
|
-
* 不满足时抛出带插件前缀的错误。
|
|
19
|
-
*/
|
|
20
|
-
export declare function assertNumber(name: string, value: unknown, { integer }?: NumberConstraints): void;
|
|
21
|
-
/** 校验配置字符串:必须是非空(含非空白)字符串,否则抛出带插件前缀的错误。 */
|
|
22
|
-
export declare function assertNonEmptyString(name: string, value: unknown): void;
|
|
23
9
|
/** 生成 uuid:优先 crypto.randomUUID,回退为时间戳+随机串拼接(保证唯一性)。 */
|
|
24
10
|
export declare function uuid(): string;
|
|
25
11
|
/** 提取 content 数组中的纯文本块(type === 'text' 的 block.text 拼接)。 */
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,oDAAoD;AACpD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,oDAAoD;AACpD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wDAAwD;AACxD,wBAAgB,IAAI,IAAI,MAAM,CAK7B;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CASpD;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAe7E;AAED,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM/C;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CASvE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin-om",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.mjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
"zod": "4.4.3"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@huggingface/transformers": "4.2.0"
|
|
76
|
+
"@huggingface/transformers": "4.2.0",
|
|
77
|
+
"@xmldom/xmldom": "0.9.11"
|
|
77
78
|
}
|
|
78
79
|
}
|