@lexwdex-org/opencode-dcp 3.4.14 → 3.5.0
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 +23 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +492 -236
- package/dist/index.js.map +1 -1
- package/dist/lib/auto-prune.d.ts.map +1 -1
- package/dist/lib/config.d.ts +14 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/hooks.d.ts +21 -2
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/prune-service.d.ts +34 -29
- package/dist/lib/prune-service.d.ts.map +1 -1
- package/dist/lib/session-boundary.d.ts +90 -0
- package/dist/lib/session-boundary.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/lib/activity.d.ts +0 -22
- package/dist/lib/activity.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -23,11 +23,11 @@ DCP 在 `experimental.session.compacting` 阶段提供专用提示词,把检
|
|
|
23
23
|
## 触发压缩
|
|
24
24
|
|
|
25
25
|
- **OpenCode 自动 compaction**:达到宿主阈值时自动运行。
|
|
26
|
-
- **模型调用 `dcp_prune` 工具**:插件注册的 LLM
|
|
27
|
-
- **插件启发式自动触发**(`autoPrune
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
26
|
+
- **模型调用 `dcp_prune` 工具**:插件注册的 LLM 工具,描述内置启发式规则——仅在话题明显变更或用户明确要求时调用;压缩排队到下一个确认的静息边界执行。
|
|
27
|
+
- **插件启发式自动触发**(`autoPrune`):监听用户消息流,在**确认的静息边界**(idle 观察后 2 秒静默窗口 + 宿主实时状态探针双重确认,宿主自动化接力会在窗口内取消边界)触发原生压缩。默认只启用话题变更信号:
|
|
28
|
+
- 话题变更(默认启用):新消息与近期消息的词面相似度骤降(CJK 二元组 + Jaccard);
|
|
29
|
+
- 消息量达到阈值(默认关闭,`autoPrune.signals.volume` 开启);
|
|
30
|
+
- 长时间中断后恢复(默认关闭,`autoPrune.signals.idleGap` 开启)。
|
|
31
31
|
自动触发带冷却期;OpenCode 原生 `/compact` 或宿主压缩也会重置计数。
|
|
32
32
|
- **OpenCode 原生 `/compact`**:手动触发同一条 compaction 路径。
|
|
33
33
|
- **`/dcp summarize`**:手动调用原生 `session.summarize()`。
|
|
@@ -71,6 +71,11 @@ DCP 依次读取以下配置,后面的层覆盖前面的层:
|
|
|
71
71
|
},
|
|
72
72
|
"autoPrune": {
|
|
73
73
|
"enabled": true,
|
|
74
|
+
"signals": {
|
|
75
|
+
"topicDrift": true,
|
|
76
|
+
"volume": false,
|
|
77
|
+
"idleGap": false,
|
|
78
|
+
},
|
|
74
79
|
"minMessages": 8,
|
|
75
80
|
"volumeThreshold": 30,
|
|
76
81
|
"driftThreshold": 0.18,
|
|
@@ -80,16 +85,19 @@ DCP 依次读取以下配置,后面的层覆盖前面的层:
|
|
|
80
85
|
}
|
|
81
86
|
```
|
|
82
87
|
|
|
83
|
-
| 键
|
|
84
|
-
|
|
|
85
|
-
| `language`
|
|
86
|
-
| `tool.enabled`
|
|
87
|
-
| `autoPrune.enabled`
|
|
88
|
-
| `autoPrune.
|
|
89
|
-
| `autoPrune.
|
|
90
|
-
| `autoPrune.
|
|
91
|
-
| `autoPrune.
|
|
92
|
-
| `autoPrune.
|
|
88
|
+
| 键 | 说明 |
|
|
89
|
+
| ------------------------------ | --------------------------------------------------------------------------- |
|
|
90
|
+
| `language` | 内置压缩提示词语言:`zh`(默认)/ `en`;自定义覆盖文件优先于该配置 |
|
|
91
|
+
| `tool.enabled` | 注册模型可调用的 `dcp_prune` 工具(描述仅授权话题变更或用户明确要求时调用) |
|
|
92
|
+
| `autoPrune.enabled` | 启用插件侧启发式自动压缩 |
|
|
93
|
+
| `autoPrune.signals.topicDrift` | 话题变更信号开关(默认 `true`,唯一默认启用的信号) |
|
|
94
|
+
| `autoPrune.signals.volume` | 消息量信号开关(默认 `false`;旧版本默认开启,升级后需显式重新开启) |
|
|
95
|
+
| `autoPrune.signals.idleGap` | 长时间中断信号开关(默认 `false`;旧版本默认开启,升级后需显式重新开启) |
|
|
96
|
+
| `autoPrune.minMessages` | 会话用户消息数达到该值前不做任何自动判定 |
|
|
97
|
+
| `autoPrune.volumeThreshold` | 距上次压缩的用户消息量阈值 |
|
|
98
|
+
| `autoPrune.driftThreshold` | Jaccard 相似度低于该值视为话题变更(0–1) |
|
|
99
|
+
| `autoPrune.idleGapMs` | 用户消息间隔超过该值视为长时间中断后恢复 |
|
|
100
|
+
| `autoPrune.cooldownMs` | 同一会话两次自动压缩的最小间隔 |
|
|
93
101
|
|
|
94
102
|
启用 `experimental.customPrompts` 后,可将生成的
|
|
95
103
|
`~/.config/opencode/dcp-prompts/defaults/compaction.md` 复制到以下任一覆盖位置:
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAiBjD,QAAA,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAiBjD,QAAA,MAAM,MAAM,EAAE,MAmEK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
|