dsh-plugin-om 0.0.26 → 0.0.28

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.
@@ -0,0 +1,65 @@
1
+ /**
2
+ * om 事件借用通道:插件私有事件以宿主已知类型 feedback/record 持久化。
3
+ * 导出 OM_EVENT_PREFIX / OmEventKind / OmEventPayloadMap / OmEvent /
4
+ * appendOmEvent / readOmEvent / findOmEvents。
5
+ *
6
+ * 背景:持久化读取路径拒绝 KNOWN_SESSION_EVENT_TYPES 目录之外的未知类型
7
+ * (dsh-session-persistence 的 assertEventsSupported),而 Session.append 不提供
8
+ * ignorable 标记的写入途径,插件自定义事件类型会使含该事件的会话无法加载。
9
+ * feedback/record(dsh-command-feedback 声明)是目录内 log-only 审计事件,所有者
10
+ * invariant 声明其无跨事件关系、无运行时不变量、永不进入模型上下文,故选为承载
11
+ * 类型:插件数据以 `om:1:` 前缀 + JSON 信封写入其 text 字段,解码失败按非 om
12
+ * 记录处理(含用户自写的真实反馈记录)。
13
+ */
14
+ import type { Session, SessionEvent } from './types.ts';
15
+ /** om 信封 text 前缀:标识该 feedback/record 记录由本插件写入。 */
16
+ export declare const OM_EVENT_PREFIX = "om:1:";
17
+ /** om 私有事件类别(信封 kind 字段)。 */
18
+ export type OmEventKind =
19
+ /** 功能降级警告(degrade.ts 报告,客户端渲染「功能降级」警告行)。 */
20
+ 'om/warning'
21
+ /** 观察压缩待定标记(compress.ts 观察触发时追加)。 */
22
+ | 'om/observe-pending'
23
+ /** 观察压缩待定失效标记(压缩执行完成后追加,声明待定可重新触发)。 */
24
+ | 'om/observe-invalidate';
25
+ /** 各类别信封载荷(kind 之外的 JSON 字段)。 */
26
+ export type OmEventPayloadMap = {
27
+ 'om/warning': {
28
+ /** 降级问题标识(会话内去重键,取值见 degrade.ts)。 */
29
+ problem: string;
30
+ /** 面向用户的简短说明。 */
31
+ message: string;
32
+ };
33
+ 'om/observe-pending': {
34
+ /** 触发点:追加时的最后一条完整消息 index。 */
35
+ triggerMessageIndex: number;
36
+ };
37
+ 'om/observe-invalidate': {
38
+ /** 被失效的 om/observe-pending 事件 seq。 */
39
+ pendingSeq: number;
40
+ };
41
+ };
42
+ /** 一条解码后的 om 私有事件:类别、载荷与承载事件在日志中的 seq。 */
43
+ export type OmEvent = {
44
+ [K in OmEventKind]: {
45
+ kind: K;
46
+ data: OmEventPayloadMap[K];
47
+ seq: number;
48
+ };
49
+ }[OmEventKind];
50
+ /**
51
+ * 解码一条会话事件为 om 私有事件:仅识别 feedback/record 中带 om 信封前缀的
52
+ * text;前缀缺失、JSON 非法、kind 未知或载荷字段缺失时返回 undefined。
53
+ */
54
+ export declare function readOmEvent(event: SessionEvent | undefined | null): OmEvent | undefined;
55
+ /** 追加一条 om 私有事件(借用 feedback/record,log-only,不进 surface),返回事件 seq。 */
56
+ export declare function appendOmEvent<K extends OmEventKind>(session: Session, kind: K, data: OmEventPayloadMap[K]): number;
57
+ /** 读取日志中全部 om 私有事件(按日志顺序)。 */
58
+ export declare function findOmEvents(session: Session): OmEvent[];
59
+ /** 读取日志中指定类别的 om 私有事件(按日志顺序,载荷类型按类别收窄)。 */
60
+ export declare function findOmEvents<K extends OmEventKind>(session: Session, kind: K): Array<{
61
+ kind: K;
62
+ data: OmEventPayloadMap[K];
63
+ seq: number;
64
+ }>;
65
+ //# sourceMappingURL=om-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"om-event.d.ts","sourceRoot":"","sources":["../src/om-event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,kDAAkD;AAClD,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,6BAA6B;AAC7B,MAAM,MAAM,WAAW;AACrB,4CAA4C;AAC1C,YAAY;AACd,qCAAqC;GACnC,oBAAoB;AACtB,uCAAuC;GACrC,uBAAuB,CAAC;AAE5B,iCAAiC;AACjC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE;QACZ,qCAAqC;QACrC,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,oBAAoB,EAAE;QACpB,8BAA8B;QAC9B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,uBAAuB,EAAE;QACvB,sCAAsC;QACtC,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,OAAO,GAAG;KACnB,CAAC,IAAI,WAAW,GAAG;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CACzE,CAAC,WAAW,CAAC,CAAC;AAiBf;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAmBvF;AAOD,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EACjD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACzB,MAAM,CAER;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;AAC1D,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EAChD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,CAAC,GACN,KAAK,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
@@ -17,22 +17,27 @@ import { type RoutedTarget } from './utils.ts';
17
17
  /**
18
18
  * 共享压缩提示词(观察/反思同一套):定义 history 块(模型消息 + index 的表达形式)、
19
19
  * 完整消息定义、压缩要求、输出格式与数据源说明。
20
+ * skipReasoning=true(默认,与 compressSkipReasoning 默认一致)时压缩输入不含
21
+ * <reasoning> 参考条目,提示词相应省略 <reasoning> 的说明两行。
20
22
  */
21
- export declare function buildHistoryPrompt(): string;
23
+ export declare function buildHistoryPrompt(skipReasoning?: boolean): string;
22
24
  /**
23
25
  * 渲染完整消息记录(观察输入):输出一个合法的 <history> 块——
24
- * user → <user_message>(文本原样、图片注释)、sys → <sys> 空块、assistant 的
25
- * reasoning → <reasoning>(参考条目)、assistant/toolcall → <assistant>(原样文本)。
26
+ * user → <user_message>(文本原样、图片注释)、sys → <sys> 空块、
27
+ * assistant/toolcall → <assistant>(原样文本);skipReasoning=false 时另把
28
+ * assistant 的 reasoning → <reasoning>(参考条目)。
26
29
  * 文本经 XML 序列化自动转义;仅渲染 seqs 全部落在给定集合内的完整消息。
27
30
  */
28
- export declare function renderMessages(session: Session, seqs: readonly number[]): string;
29
- /** 摘要调用成功结果:文本 + 可选 token usage + 尝试次数。 */
31
+ export declare function renderMessages(session: Session, seqs: readonly number[], skipReasoning?: boolean): string;
32
+ /** 摘要调用成功结果:文本 + 可选 token usage + 尝试次数 + 诊断子会话 id。 */
30
33
  export type SummarySuccess = {
31
34
  ok: true;
32
35
  text: string;
33
36
  usage?: TokenUsage;
34
37
  /** 成功时的尝试次数(1 起;载荷层换算为重试次数 = 该值 - 1)。 */
35
38
  attemptCount: number;
39
+ /** 本次成功尝试落盘的诊断子会话 id(落盘失败时缺失)。 */
40
+ diagnosticSessionId?: string;
36
41
  };
37
42
  /** 摘要调用失败结果:最后一次尝试的实际报错/具体问题 + 是否因 signal 中止 + 诊断子会话 id。 */
38
43
  export type SummaryFailure = {
@@ -41,7 +46,7 @@ export type SummaryFailure = {
41
46
  error: string;
42
47
  /** 因 signal 中止(含限流等待被中止)而放弃;此时 error 为 COMPACTION_ABORTED_ERROR。 */
43
48
  aborted: boolean;
44
- /** 诊断子会话 id(最终失败时每次尝试的完整提示词与模型原始输出落盘处;落盘失败时缺失)。 */
49
+ /** 最后一次尝试落盘的诊断子会话 id(每次尝试各自落盘;该次未发出请求或落盘失败时缺失)。 */
45
50
  diagnosticSessionId?: string;
46
51
  };
47
52
  /** 摘要调用结果(成功/失败二选一)。 */
@@ -50,6 +55,11 @@ export type SummaryOutcome = SummarySuccess | SummaryFailure;
50
55
  export declare const MIN_HISTORY_LENGTH = 10;
51
56
  /** 产出日志后插入首个 <history> 后的格式说明(XML 注释,完整消息定义 + 条目标签语义)。 */
52
57
  export declare const HISTORY_FORMAT_NOTE = "<!-- \u5B8C\u6574\u6D88\u606F\uFF1A`\u5B8C\u6574\u6D88\u606F`\u6307\u4E00\u6761`\u7528\u6237\u6D88\u606F`\u3001`\u7CFB\u7EDF\u6D88\u606F`\u3001`\u6A21\u578B\u8F93\u51FA\u6587\u672C`\u6216`\u5177\u6709result\u7684toolcall`\uFF1B\u9996\u6761 index \u4E3A 0\uFF0C\u6309\u4F1A\u8BDD\u987A\u5E8F\u9012\u589E\u3002 <TAG index=\"N\">\u8868\u793A\u5355\u6761\u5B8C\u6574\u6D88\u606F\uFF0C<TAG start=\"A\" end=\"B\"> \u8868\u793A\u8FDE\u7EED\u6A21\u5757\uFF0Cstart/end \u662F\u9996\u5C3E\u5B8C\u6574\u6D88\u606F\u7684 index\uFF1B<sys type=\"KIND\" index=\"N\"> \u8868\u793A\u88AB\u538B\u7F29\u7684\u7CFB\u7EDF\u6D88\u606F\uFF0C\u5757\u4E2D\u4E3A\u7A7A -->";
58
+ /**
59
+ * 剥离 <history> 块内文块首的格式说明注释(HISTORY_FORMAT_NOTE 整体精确匹配,仅块首
60
+ * 一处);正文条目内出现的同名注释串不动。非块首或不匹配时原样返回。
61
+ */
62
+ export declare function stripLeadingFormatNote(inner: string): string;
53
63
  /** history 块内条目(单条 index 或模块 start/end)。 */
54
64
  export type HistoryEntryRange = {
55
65
  kind: 'user' | 'assistant' | 'sys';
@@ -58,7 +68,7 @@ export type HistoryEntryRange = {
58
68
  end?: number;
59
69
  };
60
70
  /**
61
- * 解析文本中全部 <history> 块内的条目(反思输入为多个块拼接:逐块解析提取)。
71
+ * 解析文本中全部 <history> 块内的条目(逐块解析提取,兼容多块拼接文本)。
62
72
  * 非法块跳过;仅提取不校验顺序(连续性由 historyContinuity 校验)。
63
73
  */
64
74
  export declare function parseHistoryEntries(text: string): HistoryEntryRange[];
@@ -97,12 +107,13 @@ export declare function extractSummaryLog(raw: string, expected?: SummaryValidat
97
107
  export declare const SUMMARY_DEFAULT_MAX_ATTEMPTS = 11;
98
108
  /**
99
109
  * 直连 LLM 执行一次摘要(观察或反思),返回文本与可选 token usage。
100
- * 失败(抛异常 / 空输出 / 非 stop 结束 / 校验不通过)均记录日志并重试,每次尝试的
101
- * 结果或报错始终写入日志(成功 info / 失败 warn,不受 debug 影响);全部尝试耗尽
102
- * 返回失败结果(携带最后一次尝试的实际报错/具体问题)。最终失败(耗尽或 signal
103
- * 中止)时把每次尝试的完整提示词与模型原始输出原样落盘为诊断子会话(phase 标注
104
- * 观察或反思),诊断子会话 id 随失败结果返回。signal 中止(含限流等待被中止)
105
- * 立即放弃并标记 aborted。每次请求发出前先过全局限流等待门。
110
+ * 每次实际发出的 LLM 调用(无论成功、校验不通过、非 stop 结束还是异常)完成后,
111
+ * 立即把该次尝试的完整提示词与模型原始输出原样落盘为诊断子会话(phase 标注观察
112
+ * 或反思),子会话 id 写入该次尝试的主会话日志;请求发出前被中止的尝试(无实际
113
+ * 调用)不落盘。失败(抛异常 / 空输出 / 非 stop 结束 / 校验不通过)记录日志并重试;
114
+ * 全部尝试耗尽返回失败结果(携带最后一次尝试的实际报错/具体问题与其诊断子会话 id)。
115
+ * signal 中止(含限流等待被中止)立即放弃并标记 aborted。每次请求发出前先过全局
116
+ * 限流等待门。
106
117
  */
107
118
  export declare function runSummarySubagent(ctx: Context, agent: Agent, instruction: string, contextText: string | undefined, maxTokens: number | undefined, target: RoutedTarget, debug: boolean, signal?: AbortSignal, options?: {
108
119
  maxAttempts?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../src/summarize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../src/summarize.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -19,36 +19,14 @@ export type { PluginConfig } from './config.ts';
19
19
  declare module '@deepseek-ai/dsh-session/types' {
20
20
  interface SessionEventMap {
21
21
  /**
22
- * 插件功能降级警告(log-only,不进 surface):压缩流程的挂载失败/辅助失败
23
- * 按会话去重后追加,客户端渲染为「功能降级」警告行。
24
- * 同一会话同一 problem 至多一条;problem 取值与 message 文案见 degrade.ts。
22
+ * 借用通道(log-only,不进 surface):dsh-command-feedback 声明的用户反馈
23
+ * 审计事件({ text: string }),位于宿主 KNOWN_SESSION_EVENT_TYPES 目录内,
24
+ * 历史会话加载不受读取路径的未知类型拒绝影响。本插件以 `om:1:` 前缀 JSON
25
+ * 信封在其 text 字段承载私有事件(编解码见 om-event.ts)。声明与所有者一致,
26
+ * 所有者类型包加入编译依赖后此处移除。
25
27
  */
26
- 'om/warning': {
27
- /** 降级问题标识(会话内去重键)。 */
28
- problem: string;
29
- /** 面向用户的简短说明。 */
30
- message: string;
31
- };
32
- /**
33
- * 观察压缩待定标记(log-only,不进 surface):净压力首次达到观察阈值时追加,
34
- * 记录触发点完整消息 index,本次不压缩;延迟等待 tailMessageCount 条新完整消息后
35
- * 执行压缩(区间截至触发点)。同一会话同时至多一条活跃待定标记(key 固定 'observe')。
36
- */
37
- 'om/observe-pending': {
38
- /** 标记键(固定 'observe',与 om/observe-invalidate 配对)。 */
39
- key: 'observe';
40
- /** 触发点:追加时的最后一条完整消息 index。 */
41
- triggerMessageIndex: number;
42
- };
43
- /**
44
- * 观察压缩待定失效标记(log-only,不进 surface):待定标记对应的压缩执行完成
45
- * (成功提交或无可行区间)后追加,声明指定 pending 已失效、可重新触发观察。
46
- */
47
- 'om/observe-invalidate': {
48
- /** 标记键(固定 'observe')。 */
49
- key: 'observe';
50
- /** 被失效的 om/observe-pending 事件 seq。 */
51
- pendingSeq: number;
28
+ 'feedback/record': {
29
+ text: string;
52
30
  };
53
31
  }
54
32
  }
@@ -101,12 +79,12 @@ export type CompactionSummaryPayload = SessionEventMap['compaction/summary'] & {
101
79
  attemptCount?: number;
102
80
  };
103
81
  /**
104
- * 插件扩展的 compaction/end 载荷:宿主类型 + diagnosticSessionId(压缩最终失败时
105
- * 落盘的诊断子会话 id)。宿主 append 不做 schema 剥离,扩展字段原样持久化;
82
+ * 插件扩展的 compaction/end 载荷:宿主类型 + diagnosticSessionId(最后一次摘要尝试
83
+ * 无论成功或失败时落盘的诊断子会话 id)。宿主 append 不做 schema 剥离,扩展字段原样持久化;
106
84
  * 客户端读取时按可选处理(UI 渲染行为不变)。
107
85
  */
108
86
  export type CompactionEndPayload = SessionEventMap['compaction/end'] & {
109
- /** 压缩最终失败时的诊断子会话 id(落盘失败时缺失)。 */
87
+ /** 最后一次摘要尝试(成功或失败)落盘的诊断子会话 id(未发出请求或落盘失败时缺失)。 */
110
88
  diagnosticSessionId?: string;
111
89
  };
112
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-om",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "type": "module",
5
5
  "main": "./dist/index.mjs",
6
6
  "module": "./dist/index.mjs",