context-guardian-deepseek-harness 0.2.1 → 0.3.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 +18 -4
- package/README.zh-CN.md +17 -5
- package/lib/bridge.d.ts +6 -1
- package/lib/bridge.d.ts.map +1 -1
- package/lib/bridge.js +7 -0
- package/lib/bridge.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +23 -36
- package/lib/index.js.map +1 -1
- package/lib/reviewed-facts.d.ts +6 -0
- package/lib/reviewed-facts.d.ts.map +1 -0
- package/lib/reviewed-facts.js +104 -0
- package/lib/reviewed-facts.js.map +1 -0
- package/lib/types.d.ts +13 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,10 +6,10 @@ This adapter audits a native Preview before DeepSeek Harness commits context com
|
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
8
|
Harness native Preview → Context Guardian Audit → auto correction / max 3 topic questions
|
|
9
|
-
→
|
|
9
|
+
→ deterministic Reviewed Facts block → native Harness compaction commit
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
It is a decorator over `dsh-compaction-basic`. DeepSeek Harness continues to own compaction range selection, token accounting, durable session events, summary framing, persistence, and the `/compact` command.
|
|
12
|
+
It is a decorator over `dsh-compaction-basic`. DeepSeek Harness continues to own compaction range selection, token accounting, durable session events, summary framing, persistence, and the `/compact` command. The adapter makes one native `summarize()` call, then appends one deterministic Reviewed Facts content block to its result. If Python, the bridge, audit, review UI, or fact generation is unavailable, the adapter logs a warning and accepts the successful Preview. This is experimental and does not guarantee better summaries or agent performance.
|
|
13
13
|
|
|
14
14
|
The hard review budget is controlled by `CONTEXT_GUARDIAN_MAX_REVIEW_QUESTIONS=0..3`;
|
|
15
15
|
zero disables questions and resolves uncertain topics conservatively.
|
|
@@ -25,6 +25,19 @@ python3 -m pip install context-guardian-core
|
|
|
25
25
|
dsh plugin --profile web add context-guardian-deepseek-harness
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
The adapter and Python core share a versioned bridge contract and must stay on
|
|
29
|
+
the same `0.3.x` release line. Pin both sides when reproducing a published setup;
|
|
30
|
+
for example, the `0.3.0` pair is:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
python3 -m pip install "context-guardian-core==0.3.0"
|
|
34
|
+
dsh plugin --profile web add context-guardian-deepseek-harness@0.3.0
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If an older core does not recognize an operation used by the adapter, the
|
|
38
|
+
adapter's fail-open warning includes the underlying bridge error instead of
|
|
39
|
+
silently hiding the compatibility problem.
|
|
40
|
+
|
|
28
41
|
For a source checkout, replace the package name with
|
|
29
42
|
`/absolute/path/to/ContextGuardian/adapters/deepseek-harness`.
|
|
30
43
|
|
|
@@ -101,8 +114,9 @@ The fixture creates an isolated Web profile, seeds a sufficiently large conversa
|
|
|
101
114
|
deliberately omits selected facts from the replayed native Preview, and opens the
|
|
102
115
|
Harness UI. Select the session named `Context Guardian 预置长对话(请先选择)`
|
|
103
116
|
(or the `context-guardian-fixture-long` workspace), then enter `/compact`. The UI
|
|
104
|
-
should show at most three topic questions; select Keep or Drop and confirm the
|
|
105
|
-
|
|
117
|
+
should show at most three topic questions; select Keep or Drop and confirm the native
|
|
118
|
+
Preview with its deterministic Reviewed Facts block. It uses a replay model, so no
|
|
119
|
+
DeepSeek API key is required.
|
|
106
120
|
Exit the temporary Web process with Ctrl-C when finished.
|
|
107
121
|
|
|
108
122
|
## Disable or uninstall
|
package/README.zh-CN.md
CHANGED
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
8
|
Harness 原生 Preview → Context Guardian 审计 → 自动修正 / 最多 3 个主题问题
|
|
9
|
-
→
|
|
9
|
+
→ 确定性 Reviewed Facts 区块 → Harness 原生 compaction 提交
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
它是 `dsh-compaction-basic` 的装饰器。DeepSeek Harness 继续负责压缩范围、
|
|
13
|
-
token 统计、会话事件、摘要格式、持久化和 `/compact`
|
|
14
|
-
|
|
13
|
+
token 统计、会话事件、摘要格式、持久化和 `/compact` 命令。适配器只调用一次原生
|
|
14
|
+
`summarize()`,然后把一个确定性的 Reviewed Facts 内容区块追加到结果。如果 Python、桥接、
|
|
15
|
+
模型审计、UI 或事实生成不可用,适配器会记录 warning 并接受已经成功的 Preview;如果
|
|
15
16
|
Preview 本身失败才回到 Harness 原生 fallback。这是实验性能力,不保证一定改善
|
|
16
17
|
摘要或 Agent 表现。
|
|
17
18
|
|
|
@@ -28,6 +29,17 @@ python3 -m pip install context-guardian-core
|
|
|
28
29
|
dsh plugin --profile web add context-guardian-deepseek-harness
|
|
29
30
|
```
|
|
30
31
|
|
|
32
|
+
适配器与 Python 核心共用带版本的 bridge 合同,必须保持在同一条 `0.3.x` 发布线上。
|
|
33
|
+
复现已发布配置时请固定两边的版本;例如 `0.3.0` 配对安装如下:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
python3 -m pip install "context-guardian-core==0.3.0"
|
|
37
|
+
dsh plugin --profile web add context-guardian-deepseek-harness@0.3.0
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
如果旧核心不认识适配器使用的操作,适配器的 fail-open warning 会包含底层 bridge
|
|
41
|
+
错误,不再静默隐藏兼容性问题。
|
|
42
|
+
|
|
31
43
|
从源码试用时,可以把包名替换为:
|
|
32
44
|
|
|
33
45
|
```bash
|
|
@@ -104,8 +116,8 @@ fixture 会创建隔离的 Web profile,预置足够长的会话,并故意让
|
|
|
104
116
|
Preview 缺少部分事实。打开 Harness UI 后,先选择名为
|
|
105
117
|
`Context Guardian 预置长对话(请先选择)` 的会话(或选择
|
|
106
118
|
`context-guardian-fixture-long` 工作区中的该会话),再输入 `/compact`。界面应
|
|
107
|
-
最多显示 3 个主题问题;请手动选择 Keep 或 Drop
|
|
108
|
-
|
|
119
|
+
最多显示 3 个主题问题;请手动选择 Keep 或 Drop,然后确认原生 Preview 及其
|
|
120
|
+
确定性 Reviewed Facts 区块。它使用 replay model,不需要 DeepSeek API Key。结束临时 Web 进程时
|
|
109
121
|
按 Ctrl-C。
|
|
110
122
|
|
|
111
123
|
在没有 answerer 的无头模式中,高风险主题会保守地 Keep,低风险主题接受 Preview。
|
package/lib/bridge.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Context } from "@deepseek-ai/cordis";
|
|
2
2
|
import type { Agent } from "@deepseek-ai/dsh-agent";
|
|
3
|
-
import type { Guidance, GuardianMessage, InspectionResult, MemoryCandidate, ReviewPlan } from "./types.js";
|
|
3
|
+
import type { Guidance, GuardianMessage, InspectionResult, MemoryCandidate, ReviewPlan, ReviewedFactsAppendix } from "./types.js";
|
|
4
4
|
export type GuardianBridgeErrorCode = "spawn" | "timeout" | "protocol" | "process_exit";
|
|
5
5
|
export declare class GuardianBridgeError extends Error {
|
|
6
6
|
readonly code: GuardianBridgeErrorCode;
|
|
@@ -22,6 +22,11 @@ export declare class GuardianBridge {
|
|
|
22
22
|
topic_id: string;
|
|
23
23
|
action: "keep" | "drop";
|
|
24
24
|
}>, signal: AbortSignal): Promise<Guidance>;
|
|
25
|
+
buildReviewedFacts(ctx: Context, agent: Agent, reviewPlan: ReviewPlan, answers: Array<{
|
|
26
|
+
question_id: string;
|
|
27
|
+
topic_id: string;
|
|
28
|
+
action: "keep" | "drop";
|
|
29
|
+
}>, signal: AbortSignal): Promise<ReviewedFactsAppendix>;
|
|
25
30
|
private request;
|
|
26
31
|
}
|
|
27
32
|
//# sourceMappingURL=bridge.d.ts.map
|
package/lib/bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,eAAe,EAEf,UAAU,EACV,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAQpB,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;AAExF,qBAAa,mBAAoB,SAAQ,KAAK;IACf,QAAQ,CAAC,IAAI,EAAE,uBAAuB;gBAAvD,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,uBAAuB;CAIpE;AAED,wBAAgB,aAAa,CAC3B,MAAM,GAAE,MAAM,CAAC,UAAwB,EACvC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAER;AAOD,wBAAgB,iBAAiB,CAC/B,MAAM,GAAE,MAAM,CAAC,UAAwB,EACvC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAAC,UAAU,CAYnB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,SAAS,GAAG,EAAE,GACvB,eAAe,EAAE,CA8BnB;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,GAAG,IAAI,CAUtF;AAED,qBAAa,cAAc;IACnB,OAAO,CACX,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAKtB,QAAQ,CACZ,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,eAAe,EAAE,EAC7B,SAAS,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,EACnE,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC;IASd,YAAY,CAChB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,WAAW,EACnB,kBAAkB,SAAI,GACrB,OAAO,CAAC,UAAU,CAAC;IAahB,gBAAgB,CACpB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,EAClF,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC;IAQd,kBAAkB,CACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,EAClF,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,qBAAqB,CAAC;YAQnB,OAAO;CAwGtB"}
|
package/lib/bridge.js
CHANGED
|
@@ -114,6 +114,13 @@ export class GuardianBridge {
|
|
|
114
114
|
}, signal);
|
|
115
115
|
return result;
|
|
116
116
|
}
|
|
117
|
+
async buildReviewedFacts(ctx, agent, reviewPlan, answers, signal) {
|
|
118
|
+
const result = await this.request(ctx, agent, "build_reviewed_facts", {
|
|
119
|
+
review_plan: reviewPlan,
|
|
120
|
+
answers,
|
|
121
|
+
}, signal);
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
117
124
|
async request(ctx, agent, operation, body, signal) {
|
|
118
125
|
const command = pythonCommand();
|
|
119
126
|
const child = spawn(command, ["-m", "context_guardian", "bridge", "--stdio"], {
|
package/lib/bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,18 +5,18 @@ export declare const name = "context-guardian-deepseek-harness";
|
|
|
5
5
|
type NativeSummarize = BasicCompactionEngine["summarize"];
|
|
6
6
|
type NativeSummarizeInput = Parameters<NativeSummarize>[0];
|
|
7
7
|
type NativeSummarizeResult = Awaited<ReturnType<NativeSummarize>>;
|
|
8
|
+
type UiLanguage = "zh-CN" | "en";
|
|
9
|
+
type UiMessageKey = "auditUnavailable" | "reviewCancelled" | "factsUnavailable";
|
|
10
|
+
export declare function uiMessageWithError(language: UiLanguage, key: UiMessageKey, error: unknown): string;
|
|
8
11
|
export declare function answersForNoUi(plan: ReviewPlan): Array<{
|
|
9
12
|
question_id: string;
|
|
10
13
|
topic_id: string;
|
|
11
14
|
action: "keep" | "drop";
|
|
12
15
|
}>;
|
|
13
|
-
export declare function needsRevision(plan: ReviewPlan, answers: readonly {
|
|
14
|
-
action: "keep" | "drop";
|
|
15
|
-
}[]): boolean;
|
|
16
16
|
/**
|
|
17
17
|
* Decorates the native DeepSeek Harness compactor. The native engine owns the
|
|
18
18
|
* single transaction; this override only performs an uncommitted preview,
|
|
19
|
-
* an external audit, and
|
|
19
|
+
* an external audit, and a deterministic append to the returned summary.
|
|
20
20
|
*/
|
|
21
21
|
export declare class ContextGuardianCompactionEngine extends BasicCompactionEngine {
|
|
22
22
|
static inject: string[];
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAI7D,eAAO,MAAM,IAAI,sCAAsC,CAAC;AAOxD,KAAK,eAAe,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAC1D,KAAK,oBAAoB,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,KAAK,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;AAGlE,KAAK,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC;AACjC,KAAK,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAmBhF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAIlG;AAeD,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC,CAMD;AAsFD;;;;GAIG;AACH,qBAAa,+BAAgC,SAAQ,qBAAqB;IAIxE,OAAgB,MAAM,WAAsD;cAEnD,SAAS,CAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC;CA4DlC;AAED,eAAe,+BAA+B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BasicCompactionEngine } from "@deepseek-ai/dsh-compaction-basic";
|
|
2
|
-
import { createUserMessage } from "@deepseek-ai/dsh-llm";
|
|
3
2
|
import { GuardianBridge, normalizeDeepSeekMessages, preferredLanguage } from "./bridge.js";
|
|
4
3
|
export const name = "context-guardian-deepseek-harness";
|
|
5
4
|
const MAX_REVIEW_QUESTIONS = 3;
|
|
@@ -11,19 +10,22 @@ const UI_MESSAGES = {
|
|
|
11
10
|
en: {
|
|
12
11
|
auditUnavailable: "Context Guardian audit unavailable; accepting the successful native preview.",
|
|
13
12
|
reviewCancelled: "Context Guardian review unavailable; accepting the successful native preview.",
|
|
14
|
-
|
|
15
|
-
finalFailed: "Context Guardian final compaction failed; accepting the successful native preview.",
|
|
13
|
+
factsUnavailable: "Context Guardian reviewed facts unavailable; accepting the successful native preview.",
|
|
16
14
|
},
|
|
17
15
|
"zh-CN": {
|
|
18
16
|
auditUnavailable: "Context Guardian 审计不可用;接受已经成功生成的原生预览。",
|
|
19
17
|
reviewCancelled: "Context Guardian 人工审查不可用;接受已经成功生成的原生预览。",
|
|
20
|
-
|
|
21
|
-
finalFailed: "Context Guardian 最终压缩失败;接受已经成功生成的原生预览。",
|
|
18
|
+
factsUnavailable: "Context Guardian Reviewed Facts 不可用;接受已经成功生成的原生预览。",
|
|
22
19
|
},
|
|
23
20
|
};
|
|
24
21
|
function uiMessage(language, key) {
|
|
25
22
|
return UI_MESSAGES[language][key];
|
|
26
23
|
}
|
|
24
|
+
export function uiMessageWithError(language, key, error) {
|
|
25
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
26
|
+
const normalized = detail.replace(/\s+/g, " ").trim().slice(0, 300);
|
|
27
|
+
return normalized ? `${uiMessage(language, key)} Details: ${normalized}` : uiMessage(language, key);
|
|
28
|
+
}
|
|
27
29
|
function debug(ctx, message) {
|
|
28
30
|
if (process.env.CONTEXT_GUARDIAN_DEBUG === "1") {
|
|
29
31
|
const line = `context guardian: ${message}`;
|
|
@@ -42,9 +44,6 @@ export function answersForNoUi(plan) {
|
|
|
42
44
|
action: question.recommendation,
|
|
43
45
|
}));
|
|
44
46
|
}
|
|
45
|
-
export function needsRevision(plan, answers) {
|
|
46
|
-
return plan.auto_corrections.length > 0 || answers.some((answer) => answer.action === "keep");
|
|
47
|
-
}
|
|
48
47
|
function reviewQuestionsForUi(plan) {
|
|
49
48
|
return plan.review_questions.slice(0, MAX_REVIEW_QUESTIONS).map((question) => ({
|
|
50
49
|
id: question.id,
|
|
@@ -110,16 +109,6 @@ function errorCode(error) {
|
|
|
110
109
|
? String(error.code)
|
|
111
110
|
: undefined;
|
|
112
111
|
}
|
|
113
|
-
function nativeInputWithGuidance(input, text) {
|
|
114
|
-
const guidanceMessage = createUserMessage({
|
|
115
|
-
content: [{ type: "text", text }],
|
|
116
|
-
source: { kind: "plugin", plugin: name },
|
|
117
|
-
});
|
|
118
|
-
return {
|
|
119
|
-
...input,
|
|
120
|
-
messages: [...input.messages, guidanceMessage],
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
112
|
function normalizeInput(input) {
|
|
124
113
|
const candidate = input;
|
|
125
114
|
return normalizeDeepSeekMessages(candidate.system, input.messages);
|
|
@@ -135,7 +124,7 @@ function textFromSummary(result) {
|
|
|
135
124
|
/**
|
|
136
125
|
* Decorates the native DeepSeek Harness compactor. The native engine owns the
|
|
137
126
|
* single transaction; this override only performs an uncommitted preview,
|
|
138
|
-
* an external audit, and
|
|
127
|
+
* an external audit, and a deterministic append to the returned summary.
|
|
139
128
|
*/
|
|
140
129
|
export class ContextGuardianCompactionEngine extends BasicCompactionEngine {
|
|
141
130
|
// Compaction runs in its own isolated Cordis scope. Declare the human
|
|
@@ -155,7 +144,7 @@ export class ContextGuardianCompactionEngine extends BasicCompactionEngine {
|
|
|
155
144
|
+ `questions=${String(plan.review_questions.length)}`);
|
|
156
145
|
}
|
|
157
146
|
catch (error) {
|
|
158
|
-
this.ctx.logger.warn(
|
|
147
|
+
this.ctx.logger.warn(uiMessageWithError(uiLanguage, "auditUnavailable", error));
|
|
159
148
|
return preview;
|
|
160
149
|
}
|
|
161
150
|
uiLanguage = plan.language;
|
|
@@ -164,31 +153,29 @@ export class ContextGuardianCompactionEngine extends BasicCompactionEngine {
|
|
|
164
153
|
answers = await answerReviewQuestions(this.ctx, agent, plan, operationSignal);
|
|
165
154
|
}
|
|
166
155
|
catch (error) {
|
|
167
|
-
this.ctx.logger.warn(
|
|
168
|
-
return preview;
|
|
169
|
-
}
|
|
170
|
-
if (!needsRevision(plan, answers)) {
|
|
171
|
-
debug(this.ctx, "native preview reused; final compaction not needed");
|
|
156
|
+
this.ctx.logger.warn(uiMessageWithError(uiLanguage, "reviewCancelled", error));
|
|
172
157
|
return preview;
|
|
173
158
|
}
|
|
174
|
-
let
|
|
159
|
+
let appendix;
|
|
175
160
|
try {
|
|
176
|
-
|
|
161
|
+
appendix = await bridge.buildReviewedFacts(this.ctx, agent, plan, answers, operationSignal);
|
|
177
162
|
}
|
|
178
163
|
catch (error) {
|
|
179
|
-
this.ctx.logger.warn(
|
|
164
|
+
this.ctx.logger.warn(uiMessageWithError(uiLanguage, "factsUnavailable", error));
|
|
180
165
|
return preview;
|
|
181
166
|
}
|
|
182
|
-
if (!
|
|
183
|
-
|
|
184
|
-
try {
|
|
185
|
-
debug(this.ctx, "running one guided native final compaction");
|
|
186
|
-
return await super.summarize(nativeInputWithGuidance(input, guidance.text), agent, signal);
|
|
187
|
-
}
|
|
188
|
-
catch (error) {
|
|
189
|
-
this.ctx.logger.warn(uiMessage(uiLanguage, "finalFailed"));
|
|
167
|
+
if (!appendix.text) {
|
|
168
|
+
debug(this.ctx, "native_compaction_calls=1 reviewed_facts_auto=0 reviewed_facts_human=0 reviewed_facts_total=0 preview_changed=false");
|
|
190
169
|
return preview;
|
|
191
170
|
}
|
|
171
|
+
const summary = [
|
|
172
|
+
...preview.summary,
|
|
173
|
+
{ type: "text", text: appendix.text },
|
|
174
|
+
];
|
|
175
|
+
debug(this.ctx, `native_compaction_calls=1 reviewed_facts_auto=${String(appendix.facts.filter((fact) => fact.origin === "auto_correction").length)} `
|
|
176
|
+
+ `reviewed_facts_human=${String(appendix.facts.filter((fact) => fact.origin === "human_keep").length)} `
|
|
177
|
+
+ `reviewed_facts_total=${String(appendix.facts.length)} preview_changed=true`);
|
|
178
|
+
return { ...preview, summary };
|
|
192
179
|
}
|
|
193
180
|
}
|
|
194
181
|
export default ContextGuardianCompactionEngine;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReviewedFactsAppendix } from "./types.js";
|
|
2
|
+
export declare const REVIEWED_FACTS_START = "<!-- context-guardian:reviewed-facts:v1 -->";
|
|
3
|
+
export declare const REVIEWED_FACTS_END = "<!-- /context-guardian:reviewed-facts -->";
|
|
4
|
+
/** Append facts while preserving native result fields and all text outside legal blocks. */
|
|
5
|
+
export declare function appendReviewedFacts(preview: string, appendix: ReviewedFactsAppendix): string;
|
|
6
|
+
//# sourceMappingURL=reviewed-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewed-facts.d.ts","sourceRoot":"","sources":["../src/reviewed-facts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEtE,eAAO,MAAM,oBAAoB,gDAAgD,CAAC;AAClF,eAAO,MAAM,kBAAkB,8CAA8C,CAAC;AAiF9E,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAwB5F"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export const REVIEWED_FACTS_START = "<!-- context-guardian:reviewed-facts:v1 -->";
|
|
3
|
+
export const REVIEWED_FACTS_END = "<!-- /context-guardian:reviewed-facts -->";
|
|
4
|
+
const BLOCK = new RegExp(`${escapeRegExp(REVIEWED_FACTS_START)}([\\s\\S]*?)${escapeRegExp(REVIEWED_FACTS_END)}`, "g");
|
|
5
|
+
const SUBJECTS = ["postgresql", "sqlite", "mysql", "redis", "mongodb", "oauth", "auth.py", "callback"];
|
|
6
|
+
const POSITIVE = /\b(?:selected|chosen|final|adopted?|use|using|complete|completed)\b/i;
|
|
7
|
+
const NEGATIVE = /\b(?:abandoned|rejected|stop using|not use|incomplete|unfinished|failed)\b/i;
|
|
8
|
+
function escapeRegExp(value) {
|
|
9
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
10
|
+
}
|
|
11
|
+
function normalize(value) {
|
|
12
|
+
return value
|
|
13
|
+
.replace(/[\u0000-\u001f\u007f]/g, " ")
|
|
14
|
+
.replace(/\s+/g, " ")
|
|
15
|
+
.trim()
|
|
16
|
+
.replace(REVIEWED_FACTS_START, "[reviewed-facts marker removed]")
|
|
17
|
+
.replace(REVIEWED_FACTS_END, "[reviewed-facts end marker removed]")
|
|
18
|
+
.slice(0, 500);
|
|
19
|
+
}
|
|
20
|
+
function idFor(text) {
|
|
21
|
+
return `reviewed_fact_${createHash("sha256").update(text.toLocaleLowerCase()).digest("hex").slice(0, 16)}`;
|
|
22
|
+
}
|
|
23
|
+
function addFact(facts, seen, text) {
|
|
24
|
+
const normalized = normalize(text);
|
|
25
|
+
if (!normalized || seen.has(normalized.toLocaleLowerCase()))
|
|
26
|
+
return;
|
|
27
|
+
seen.add(normalized.toLocaleLowerCase());
|
|
28
|
+
facts.push({ id: idFor(normalized), text: normalized, origin: "carried_forward" });
|
|
29
|
+
}
|
|
30
|
+
function conflicts(left, right) {
|
|
31
|
+
const leftSubject = SUBJECTS.find((subject) => left.text.toLocaleLowerCase().includes(subject));
|
|
32
|
+
const rightSubject = SUBJECTS.find((subject) => right.text.toLocaleLowerCase().includes(subject));
|
|
33
|
+
if (!leftSubject || leftSubject !== rightSubject)
|
|
34
|
+
return false;
|
|
35
|
+
const leftPositive = POSITIVE.test(left.text);
|
|
36
|
+
const rightPositive = POSITIVE.test(right.text);
|
|
37
|
+
const leftNegative = NEGATIVE.test(left.text);
|
|
38
|
+
const rightNegative = NEGATIVE.test(right.text);
|
|
39
|
+
return (leftPositive && rightNegative) || (leftNegative && rightPositive);
|
|
40
|
+
}
|
|
41
|
+
function priority(origin) {
|
|
42
|
+
return origin === "human_keep" ? 3 : origin === "auto_correction" ? 2 : 1;
|
|
43
|
+
}
|
|
44
|
+
function mergeFacts(base, incoming) {
|
|
45
|
+
const merged = [...base];
|
|
46
|
+
for (const candidate of incoming) {
|
|
47
|
+
if (merged.some((fact) => fact.text.toLocaleLowerCase() === candidate.text.toLocaleLowerCase()))
|
|
48
|
+
continue;
|
|
49
|
+
const conflictIndexes = merged
|
|
50
|
+
.map((fact, index) => conflicts(fact, candidate) ? index : -1)
|
|
51
|
+
.filter((index) => index >= 0);
|
|
52
|
+
if (conflictIndexes.length === 0) {
|
|
53
|
+
merged.push(candidate);
|
|
54
|
+
}
|
|
55
|
+
else if (conflictIndexes.every((index) => priority(candidate.origin) >= priority(merged[index].origin))) {
|
|
56
|
+
for (const index of conflictIndexes.sort((left, right) => right - left))
|
|
57
|
+
merged.splice(index, 1);
|
|
58
|
+
merged.push(candidate);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return merged;
|
|
62
|
+
}
|
|
63
|
+
function render(language, facts) {
|
|
64
|
+
if (facts.length === 0)
|
|
65
|
+
return "";
|
|
66
|
+
const title = language === "zh-CN" ? "## Context Guardian 已确认事实" : "## Context Guardian Reviewed Facts";
|
|
67
|
+
const intro = language === "zh-CN"
|
|
68
|
+
? "以下是经过自动校正或人工确认、供后续任务优先参考的关键事实;不代表保留完整原始对话。"
|
|
69
|
+
: "The following reviewed facts should take priority for future work; this does not preserve the full original conversation.";
|
|
70
|
+
return [
|
|
71
|
+
REVIEWED_FACTS_START,
|
|
72
|
+
title,
|
|
73
|
+
intro,
|
|
74
|
+
...facts.map((fact) => `- ${fact.text}`),
|
|
75
|
+
REVIEWED_FACTS_END,
|
|
76
|
+
].join("\n");
|
|
77
|
+
}
|
|
78
|
+
/** Append facts while preserving native result fields and all text outside legal blocks. */
|
|
79
|
+
export function appendReviewedFacts(preview, appendix) {
|
|
80
|
+
const matches = [...preview.matchAll(BLOCK)];
|
|
81
|
+
if (matches.length === 0 && appendix.facts.length === 0)
|
|
82
|
+
return preview;
|
|
83
|
+
const carried = [];
|
|
84
|
+
const seen = new Set();
|
|
85
|
+
for (const match of matches) {
|
|
86
|
+
for (const line of (match[1] ?? "").split("\n")) {
|
|
87
|
+
if (line.trim().startsWith("- "))
|
|
88
|
+
addFact(carried, seen, line.trim().slice(2));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const merged = mergeFacts(carried, appendix.facts.map((fact) => ({ ...fact, text: normalize(fact.text) })));
|
|
92
|
+
if (matches.length > 0
|
|
93
|
+
&& merged.length === carried.length
|
|
94
|
+
&& merged.every((fact, index) => fact.text === carried[index]?.text))
|
|
95
|
+
return preview;
|
|
96
|
+
const block = render(appendix.language, merged);
|
|
97
|
+
if (matches.length > 0) {
|
|
98
|
+
const first = matches[0];
|
|
99
|
+
const last = matches[matches.length - 1];
|
|
100
|
+
return preview.slice(0, first.index) + block + preview.slice((last.index ?? 0) + last[0].length);
|
|
101
|
+
}
|
|
102
|
+
return preview + (preview ? "\n\n" : "") + block;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=reviewed-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewed-facts.js","sourceRoot":"","sources":["../src/reviewed-facts.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -74,6 +74,19 @@ export interface ReviewPlan {
|
|
|
74
74
|
accepted_omissions: string[];
|
|
75
75
|
review_questions: ReviewQuestion[];
|
|
76
76
|
}
|
|
77
|
+
export interface ReviewedFact {
|
|
78
|
+
id: string;
|
|
79
|
+
text: string;
|
|
80
|
+
origin: "auto_correction" | "human_keep" | "carried_forward";
|
|
81
|
+
topic_id?: string | null;
|
|
82
|
+
category?: string | null;
|
|
83
|
+
}
|
|
84
|
+
export interface ReviewedFactsAppendix {
|
|
85
|
+
version: "1";
|
|
86
|
+
language: "zh-CN" | "en";
|
|
87
|
+
facts: ReviewedFact[];
|
|
88
|
+
text: string;
|
|
89
|
+
}
|
|
77
90
|
export interface Guidance {
|
|
78
91
|
must_preserve: string[];
|
|
79
92
|
can_discard: string[];
|
package/lib/types.d.ts.map
CHANGED
|
@@ -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":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,cAAc,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAC5D,kBAAkB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC;IACnE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,EAAE,cAAc,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC"}
|