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.
- package/README.md +67 -64
- package/dist/client/OmWarningCard.d.ts +2 -2
- package/dist/client/definition.d.ts +8 -6
- package/dist/client/definition.d.ts.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client.js +47 -7
- package/dist/client.js.map +1 -1
- package/dist/compaction-log.d.ts +21 -21
- package/dist/compaction-log.d.ts.map +1 -1
- package/dist/compress.d.ts +7 -7
- package/dist/compress.d.ts.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/degrade.d.ts +3 -3
- package/dist/degrade.d.ts.map +1 -1
- package/dist/index.mjs +202 -116
- package/dist/om-event.d.ts +65 -0
- package/dist/om-event.d.ts.map +1 -0
- package/dist/summarize.d.ts +24 -13
- package/dist/summarize.d.ts.map +1 -1
- package/dist/types.d.ts +10 -32
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/compaction-log.d.ts
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* subagent/descriptor),使其以 subagent
|
|
5
|
-
*
|
|
6
|
-
* compactionLogLabel / COMPACTION_LOG_PROVIDER。
|
|
2
|
+
* 压缩调用日志落盘:摘要 run 的每次 LLM 调用(每次尝试,无论成功失败)完成后,
|
|
3
|
+
* 把该次尝试的完整提示词与模型原始输出原样落盘为一个 one-shot 诊断子会话
|
|
4
|
+
* (header origin 'subagent' + 首事件 subagent/descriptor),使其以 subagent 形式
|
|
5
|
+
* 出现在宿主子代理列表中,便于查验每次调用的完整会话。导出 recordCompactionAttempt /
|
|
6
|
+
* SummaryAttemptRecord / compactionLogLabel / COMPACTION_LOG_PROVIDER。
|
|
7
7
|
*
|
|
8
|
-
* -
|
|
8
|
+
* - 子会话内容零加工:一对 user/message(实际提示词全文,含 <history> 块)
|
|
9
9
|
* + assistant/message(模型原始输出全文,异常/中止时为已收集的部分输出),
|
|
10
|
-
*
|
|
11
|
-
* -
|
|
12
|
-
* - 落盘自身绝不抛错:任何失败仅 logger.warn 并返回 undefined,不影响压缩失败流程
|
|
10
|
+
* 不插入任何额外消息;成败与原因不进子会话,由调用方写入主会话日志并关联子会话 id
|
|
11
|
+
* - 落盘自身绝不抛错:任何失败仅 logger.warn 并返回 undefined,不影响压缩流程
|
|
13
12
|
*/
|
|
14
13
|
import type { Context, Session } from './types.ts';
|
|
15
14
|
import { type RoutedTarget } from './utils.ts';
|
|
16
15
|
/** 诊断子会话的 descriptor provider(宿主子代理列表识别用)。 */
|
|
17
16
|
export declare const COMPACTION_LOG_PROVIDER = "om-compaction-log";
|
|
18
|
-
/**
|
|
17
|
+
/** 一次摘要尝试的完整记录:prompt=实际提示词全文(含 <history> 块),rawOutput=模型原始输出全文。 */
|
|
19
18
|
export type SummaryAttemptRecord = {
|
|
20
19
|
prompt: string;
|
|
21
20
|
rawOutput: string;
|
|
22
21
|
};
|
|
23
|
-
/** 诊断子会话 label
|
|
24
|
-
export declare function compactionLogLabel(phase: 'observe' | 'reflect' | undefined,
|
|
22
|
+
/** 诊断子会话 label:含压缩阶段与尝试序号。 */
|
|
23
|
+
export declare function compactionLogLabel(phase: 'observe' | 'reflect' | undefined, attemptNo: number): string;
|
|
25
24
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* undefined(不影响压缩失败流程)。
|
|
25
|
+
* 把一次摘要尝试落盘为诊断子会话:ctx.sessions.create 创建子会话(header origin
|
|
26
|
+
* 'subagent'、parentSession 指向主会话、delegationDepth = 父 + 1、cwd 继承主会话),
|
|
27
|
+
* 追加 one-shot descriptor(provider om-compaction-log,label 含压缩阶段与尝试序号),
|
|
28
|
+
* 原样追加「提示词 + 原始输出」消息组,flush 持久化检查点,返回子会话 id。落盘自身
|
|
29
|
+
* 绝不抛错:任何失败仅 logger.warn 并返回 undefined(不影响压缩流程)。
|
|
32
30
|
*/
|
|
33
|
-
export declare function
|
|
31
|
+
export declare function recordCompactionAttempt(ctx: Context, parentSession: Session, options: {
|
|
34
32
|
/** 压缩 pass(诊断子会话 label 用)。 */
|
|
35
33
|
phase: 'observe' | 'reflect' | undefined;
|
|
36
34
|
/** 摘要调用的路由目标(assistant/message 的 model 来源标记)。 */
|
|
37
35
|
target: RoutedTarget;
|
|
38
|
-
/**
|
|
39
|
-
|
|
36
|
+
/** 本次尝试的完整记录(提示词 + 原始输出)。 */
|
|
37
|
+
attempt: SummaryAttemptRecord;
|
|
38
|
+
/** 尝试序号(1 起,label 与消息 step 标注用)。 */
|
|
39
|
+
attemptNo: number;
|
|
40
40
|
/** 插件 debug 开关(落盘失败的 warn 是否带步骤细节)。 */
|
|
41
41
|
debug: boolean;
|
|
42
42
|
}): Promise<string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-log.d.ts","sourceRoot":"","sources":["../src/compaction-log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compaction-log.d.ts","sourceRoot":"","sources":["../src/compaction-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,YAAY,CAAC;AAErD,8CAA8C;AAC9C,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AASzE,8BAA8B;AAC9B,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AA8BD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE;IACP,8BAA8B;IAC9B,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACzC,iDAAiD;IACjD,MAAM,EAAE,YAAY,CAAC;IACrB,6BAA6B;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,KAAK,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA+B7B"}
|
package/dist/compress.d.ts
CHANGED
|
@@ -45,19 +45,19 @@ export declare function historySection(session: Session): {
|
|
|
45
45
|
boundarySeq: number | undefined;
|
|
46
46
|
};
|
|
47
47
|
/**
|
|
48
|
-
* 查找当前活跃的观察压缩待定标记:按日志顺序取最后一条 om/observe-pending
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
48
|
+
* 查找当前活跃的观察压缩待定标记:按日志顺序取最后一条 om/observe-pending 信封事件,
|
|
49
|
+
* 其后须无引用它的 om/observe-invalidate(已失效),且其后的压缩边界 seq 不大于标记
|
|
50
|
+
* seq(边界后移说明标记期间已发生过压缩,标记过期——兜底「执行成功但失效标记未写出」
|
|
51
|
+
* 的崩溃窗口)。无活跃标记返回 undefined。
|
|
52
52
|
*/
|
|
53
53
|
export declare function findObservePending(session: Session): {
|
|
54
54
|
seq: number;
|
|
55
55
|
triggerMessageIndex: number;
|
|
56
56
|
} | undefined;
|
|
57
57
|
/**
|
|
58
|
-
* 反思:全部 <history> 块 token 合计 ≥ reflectThresholdTokens
|
|
59
|
-
*
|
|
60
|
-
*
|
|
58
|
+
* 反思:全部 <history> 块 token 合计 ≥ reflectThresholdTokens 时,全部块内文拼合为
|
|
59
|
+
* 单个 <history> 块送入摘要调用,整个块区段合并替换为一条更紧凑的摘要。失败不产生
|
|
60
|
+
* 部分替换;摘要尝试全部耗尽返回失败结果(error = 最后一次尝试的实际报错/具体问题)。
|
|
61
61
|
*/
|
|
62
62
|
export declare function reflectPass(ctx: Context, agent: Agent, config: Readonly<PluginConfig>, target: RoutedTarget, signal?: AbortSignal): Promise<CompressPassResult>;
|
|
63
63
|
/**
|
package/dist/compress.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EACV,KAAK,EAKL,OAAO,EACP,YAAY,EACZ,OAAO,EAIR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAgB,KAAK,YAAY,EAAqC,MAAM,YAAY,CAAC;AAEhG;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,KAAK,CAAA;CAAE,GACjB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAuDD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAY1E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CA8BpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG;IAChD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAUA;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAoB1D;AA0HD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAgI7B;AAwED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAwO7B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAwB7B"}
|
package/dist/config.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export type PluginConfig = {
|
|
|
12
12
|
tailMessageCount: number;
|
|
13
13
|
/** 摘要失败后的最大重试次数(不含首次)。 */
|
|
14
14
|
compressRetryCount: number;
|
|
15
|
+
/** 压缩输入是否携带被压缩消息的 reasoning 思考文本(true 时压缩请求不含 <reasoning> 参考条目,压缩提示词也省略其说明)。 */
|
|
16
|
+
compressSkipReasoning: boolean;
|
|
15
17
|
/** 是否启用自动压缩(观察/反思)。 */
|
|
16
18
|
omEnabled: boolean;
|
|
17
19
|
/** 步骤级日志开关(缺省按 NODE_ENV !== 'production' 判定)。 */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,kCAAkC;AAClC,MAAM,MAAM,YAAY,GAAG;IACzB,oCAAoC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,0BAA0B;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,kCAAkC;AAClC,MAAM,MAAM,YAAY,GAAG;IACzB,oCAAoC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,0BAA0B;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uBAAuB;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,YAAY,CAahD,CAAC;AAqCH,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAqBnE"}
|
package/dist/degrade.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { PluginLogger } from './logger.ts';
|
|
2
2
|
import type { Session } from './types.ts';
|
|
3
|
-
/** 降级问题标识(om/warning
|
|
3
|
+
/** 降级问题标识(om/warning 信封载荷 problem;同会话按此去重)。 */
|
|
4
4
|
export type DegradedProblem =
|
|
5
5
|
/** systemPrompt 服务未挂载(ctx.get 返回 undefined):上下文压力不扣系统提示词,观察偏早触发 */
|
|
6
6
|
'systemPrompt-missing'
|
|
7
7
|
/** tokenMeter 服务调用异常(measure/estimateMessage 抛错):压力估算降级,可能跳过观察压缩 */
|
|
8
8
|
| 'tokenMeter-unavailable';
|
|
9
|
-
/** 各降级问题面向用户的简短说明(om/warning
|
|
9
|
+
/** 各降级问题面向用户的简短说明(om/warning 信封载荷 message;客户端警告行直接展示)。 */
|
|
10
10
|
export declare const DEGRADE_PROBLEMS: Record<DegradedProblem, string>;
|
|
11
11
|
/**
|
|
12
12
|
* 报告一次挂载失败类降级:console.warn 始终输出到宿主进程外部;同会话同问题首次
|
|
13
|
-
* 出现时,向会话日志追加 log-only
|
|
13
|
+
* 出现时,向会话日志追加 log-only om 警告事件(客户端渲染警告行,每会话最多
|
|
14
14
|
* 一次)并输出 logger.warn(避免每个 pre-step 重复刷日志)。
|
|
15
15
|
* 日志扫描/事件追加失败只记日志,绝不抛错、不阻塞压缩。
|
|
16
16
|
*/
|
package/dist/degrade.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"degrade.d.ts","sourceRoot":"","sources":["../src/degrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"degrade.d.ts","sourceRoot":"","sources":["../src/degrade.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,+CAA+C;AAC/C,MAAM,MAAM,eAAe;AACzB,mEAAmE;AACjE,sBAAsB;AACxB,oEAAoE;GAClE,wBAAwB,CAAC;AAE7B,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAI5D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,eAAe,GACvB,IAAI,CAiBN"}
|