context-guardian-deepseek-harness 0.1.2 → 0.2.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 +16 -8
- package/README.zh-CN.md +19 -9
- package/lib/bridge.d.ts +8 -1
- package/lib/bridge.d.ts.map +1 -1
- package/lib/bridge.js +28 -0
- package/lib/bridge.js.map +1 -1
- package/lib/index.d.ts +13 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +134 -66
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +50 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) · [简体中文](README.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
This adapter
|
|
5
|
+
This adapter audits a native Preview before DeepSeek Harness commits context compaction:
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
|
-
Harness
|
|
8
|
+
Harness native Preview → Context Guardian Audit → auto correction / max 3 topic questions
|
|
9
|
+
→ incremental guidance → native Harness compaction commit
|
|
9
10
|
```
|
|
10
11
|
|
|
11
|
-
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. If Python, the bridge,
|
|
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. An accurate Preview is returned without a retry. If Python, the bridge, audit, review UI, or guided retry 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
|
+
|
|
14
|
+
The hard review budget is controlled by `CONTEXT_GUARDIAN_MAX_REVIEW_QUESTIONS=0..3`;
|
|
15
|
+
zero disables questions and resolves uncertain topics conservatively.
|
|
12
16
|
|
|
13
17
|
## Install
|
|
14
18
|
|
|
@@ -76,7 +80,7 @@ dsh --profile web
|
|
|
76
80
|
|
|
77
81
|
The bridge timeout defaults to 120 seconds and can be lowered with
|
|
78
82
|
`CONTEXT_GUARDIAN_TIMEOUT_MS` (up to 120 seconds). With debug enabled, the adapter logs
|
|
79
|
-
when it loads and reports
|
|
83
|
+
when it loads and reports only audit finding and topic-question counts (never raw prompt contents).
|
|
80
84
|
|
|
81
85
|
Start the web profile and use a sufficiently long session or `/compact`:
|
|
82
86
|
|
|
@@ -84,7 +88,8 @@ Start the web profile and use a sufficiently long session or `/compact`:
|
|
|
84
88
|
dsh --profile web
|
|
85
89
|
```
|
|
86
90
|
|
|
87
|
-
Review
|
|
91
|
+
Review topics appear through Harness's user-question UI. In headless compositions
|
|
92
|
+
without an answerer, high-risk topics are kept and low-risk topics accept the Preview.
|
|
88
93
|
|
|
89
94
|
For a repeatable end-to-end UI test that does not require a long real conversation:
|
|
90
95
|
|
|
@@ -93,9 +98,12 @@ env PATH="/path/to/node-22.19/bin:$PATH" npm run dsh-fixture-smoke
|
|
|
93
98
|
```
|
|
94
99
|
|
|
95
100
|
The fixture creates an isolated Web profile, seeds a sufficiently large conversation,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
101
|
+
deliberately omits selected facts from the replayed native Preview, and opens the
|
|
102
|
+
Harness UI. Select the session named `Context Guardian 预置长对话(请先选择)`
|
|
103
|
+
(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 guided
|
|
105
|
+
native compaction result. It uses a replay model, so no DeepSeek API key is required.
|
|
106
|
+
Exit the temporary Web process with Ctrl-C when finished.
|
|
99
107
|
|
|
100
108
|
## Disable or uninstall
|
|
101
109
|
|
package/README.zh-CN.md
CHANGED
|
@@ -2,15 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) · 简体中文
|
|
4
4
|
|
|
5
|
-
这个适配器在 DeepSeek Harness
|
|
5
|
+
这个适配器在 DeepSeek Harness 提交原生上下文压缩前审计 Preview:
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
|
-
Harness
|
|
8
|
+
Harness 原生 Preview → Context Guardian 审计 → 自动修正 / 最多 3 个主题问题
|
|
9
|
+
→ 增量指导 → Harness 原生 compaction 提交
|
|
9
10
|
```
|
|
10
11
|
|
|
11
12
|
它是 `dsh-compaction-basic` 的装饰器。DeepSeek Harness 继续负责压缩范围、
|
|
12
13
|
token 统计、会话事件、摘要格式、持久化和 `/compact` 命令。如果 Python、桥接、
|
|
13
|
-
|
|
14
|
+
模型审计或 UI 不可用,适配器会记录 warning 并接受已经成功的 Preview;如果
|
|
15
|
+
Preview 本身失败才回到 Harness 原生 fallback。这是实验性能力,不保证一定改善
|
|
16
|
+
摘要或 Agent 表现。
|
|
17
|
+
|
|
18
|
+
可用 `CONTEXT_GUARDIAN_MAX_REVIEW_QUESTIONS=0..3` 设置问题硬上限;设为 0 表示
|
|
19
|
+
不弹窗,对未决主题采用保守处理。
|
|
14
20
|
|
|
15
21
|
## 安装
|
|
16
22
|
|
|
@@ -77,7 +83,8 @@ dsh --profile web
|
|
|
77
83
|
```
|
|
78
84
|
|
|
79
85
|
bridge 默认超时为 120 秒,也可以用 `CONTEXT_GUARDIAN_TIMEOUT_MS` 调低(上限为 120 秒)。
|
|
80
|
-
启用 debug
|
|
86
|
+
启用 debug 后,适配器会记录已加载,并只报告审计 finding 和主题问题数量,不输出
|
|
87
|
+
原始 prompt 内容。
|
|
81
88
|
|
|
82
89
|
## 交互式验证
|
|
83
90
|
|
|
@@ -93,12 +100,15 @@ dsh --profile web
|
|
|
93
100
|
env PATH="/path/to/node-22.19/bin:$PATH" npm run dsh-fixture-smoke
|
|
94
101
|
```
|
|
95
102
|
|
|
96
|
-
fixture 会创建隔离的 Web profile
|
|
97
|
-
|
|
98
|
-
|
|
103
|
+
fixture 会创建隔离的 Web profile,预置足够长的会话,并故意让 replay 的原生
|
|
104
|
+
Preview 缺少部分事实。打开 Harness UI 后,先选择名为
|
|
105
|
+
`Context Guardian 预置长对话(请先选择)` 的会话(或选择
|
|
106
|
+
`context-guardian-fixture-long` 工作区中的该会话),再输入 `/compact`。界面应
|
|
107
|
+
最多显示 3 个主题问题;请手动选择 Keep 或 Drop,然后确认带增量指导的原生
|
|
108
|
+
压缩成功。它使用 replay model,不需要 DeepSeek API Key。结束临时 Web 进程时
|
|
109
|
+
按 Ctrl-C。
|
|
99
110
|
|
|
100
|
-
在没有 answerer
|
|
101
|
-
`CONTEXT_GUARDIAN_REVIEW_MODE=keep` 或 `drop` 绕过询问 UI。
|
|
111
|
+
在没有 answerer 的无头模式中,高风险主题会保守地 Keep,低风险主题接受 Preview。
|
|
102
112
|
|
|
103
113
|
## 禁用或卸载
|
|
104
114
|
|
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 } from "./types.js";
|
|
3
|
+
import type { Guidance, GuardianMessage, InspectionResult, MemoryCandidate, ReviewPlan } 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;
|
|
@@ -9,12 +9,19 @@ export declare class GuardianBridgeError extends Error {
|
|
|
9
9
|
export declare function pythonCommand(source?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string;
|
|
10
10
|
export declare function pythonEnvironment(source?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): NodeJS.ProcessEnv;
|
|
11
11
|
export declare function normalizeDeepSeekMessages(_system: string | undefined, messages: readonly any[]): GuardianMessage[];
|
|
12
|
+
export declare function preferredLanguage(messages: readonly GuardianMessage[]): "zh-CN" | "en";
|
|
12
13
|
export declare class GuardianBridge {
|
|
13
14
|
inspect(ctx: Context, agent: Agent, messages: GuardianMessage[], signal: AbortSignal): Promise<InspectionResult>;
|
|
14
15
|
guidance(ctx: Context, agent: Agent, candidates: MemoryCandidate[], decisions: Array<{
|
|
15
16
|
candidate_id: string;
|
|
16
17
|
action: "keep" | "drop";
|
|
17
18
|
}>, signal: AbortSignal): Promise<Guidance>;
|
|
19
|
+
auditPreview(ctx: Context, agent: Agent, messages: GuardianMessage[], preview: string, previousSummary: string, retainedContext: string, signal: AbortSignal, maxReviewQuestions?: number): Promise<ReviewPlan>;
|
|
20
|
+
revisionGuidance(ctx: Context, agent: Agent, reviewPlan: ReviewPlan, answers: Array<{
|
|
21
|
+
question_id: string;
|
|
22
|
+
topic_id: string;
|
|
23
|
+
action: "keep" | "drop";
|
|
24
|
+
}>, signal: AbortSignal): Promise<Guidance>;
|
|
18
25
|
private request;
|
|
19
26
|
}
|
|
20
27
|
//# 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,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;
|
|
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,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAiB,UAAU,EAAE,MAAM,YAAY,CAAC;AAQ1H,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,CAQtF;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;YAQN,OAAO;CAwGtB"}
|
package/lib/bridge.js
CHANGED
|
@@ -71,6 +71,15 @@ export function normalizeDeepSeekMessages(_system, messages) {
|
|
|
71
71
|
}
|
|
72
72
|
return result;
|
|
73
73
|
}
|
|
74
|
+
export function preferredLanguage(messages) {
|
|
75
|
+
const userText = messages
|
|
76
|
+
.filter((message) => message.role === "user")
|
|
77
|
+
.map((message) => message.content)
|
|
78
|
+
.join(" ");
|
|
79
|
+
const chinese = (userText.match(/[\u4e00-\u9fff]/g) ?? []).length;
|
|
80
|
+
const latin = (userText.match(/[A-Za-z]/g) ?? []).length;
|
|
81
|
+
return chinese > latin ? "zh-CN" : "en";
|
|
82
|
+
}
|
|
74
83
|
export class GuardianBridge {
|
|
75
84
|
async inspect(ctx, agent, messages, signal) {
|
|
76
85
|
const result = await this.request(ctx, agent, "inspect", { messages, provider: "host" }, signal);
|
|
@@ -84,6 +93,25 @@ export class GuardianBridge {
|
|
|
84
93
|
}, signal);
|
|
85
94
|
return result;
|
|
86
95
|
}
|
|
96
|
+
async auditPreview(ctx, agent, messages, preview, previousSummary, retainedContext, signal, maxReviewQuestions = 3) {
|
|
97
|
+
const result = await this.request(ctx, agent, "audit_preview", {
|
|
98
|
+
messages,
|
|
99
|
+
preview,
|
|
100
|
+
previous_summary: previousSummary,
|
|
101
|
+
retained_context: retainedContext,
|
|
102
|
+
max_review_questions: maxReviewQuestions,
|
|
103
|
+
language: preferredLanguage(messages),
|
|
104
|
+
provider: "host",
|
|
105
|
+
}, signal);
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
async revisionGuidance(ctx, agent, reviewPlan, answers, signal) {
|
|
109
|
+
const result = await this.request(ctx, agent, "revision_guidance", {
|
|
110
|
+
review_plan: reviewPlan,
|
|
111
|
+
answers,
|
|
112
|
+
}, signal);
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
87
115
|
async request(ctx, agent, operation, body, signal) {
|
|
88
116
|
const command = pythonCommand();
|
|
89
117
|
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":"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
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
import { BasicCompactionEngine } from "@deepseek-ai/dsh-compaction-basic";
|
|
2
2
|
import type { Agent } from "@deepseek-ai/dsh-agent";
|
|
3
|
+
import type { ReviewPlan } from "./types.js";
|
|
3
4
|
export declare const name = "context-guardian-deepseek-harness";
|
|
4
5
|
type NativeSummarize = BasicCompactionEngine["summarize"];
|
|
5
6
|
type NativeSummarizeInput = Parameters<NativeSummarize>[0];
|
|
6
7
|
type NativeSummarizeResult = Awaited<ReturnType<NativeSummarize>>;
|
|
8
|
+
export declare function answersForNoUi(plan: ReviewPlan): Array<{
|
|
9
|
+
question_id: string;
|
|
10
|
+
topic_id: string;
|
|
11
|
+
action: "keep" | "drop";
|
|
12
|
+
}>;
|
|
13
|
+
export declare function needsRevision(plan: ReviewPlan, answers: readonly {
|
|
14
|
+
action: "keep" | "drop";
|
|
15
|
+
}[]): boolean;
|
|
7
16
|
/**
|
|
8
|
-
* Decorates DeepSeek Harness
|
|
9
|
-
*
|
|
10
|
-
*
|
|
17
|
+
* Decorates the native DeepSeek Harness compactor. The native engine owns the
|
|
18
|
+
* single transaction; this override only performs an uncommitted preview,
|
|
19
|
+
* an external audit, and (when needed) one guided native retry.
|
|
11
20
|
*/
|
|
12
21
|
export declare class ContextGuardianCompactionEngine extends BasicCompactionEngine {
|
|
22
|
+
static inject: string[];
|
|
13
23
|
protected summarize(input: NativeSummarizeInput, agent: Agent, signal?: AbortSignal): Promise<NativeSummarizeResult>;
|
|
14
24
|
}
|
|
15
25
|
export default ContextGuardianCompactionEngine;
|
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;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAG7D,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;AAsClE,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;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,CAExG;AAiGD;;;;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;CA2DlC;AAED,eAAe,+BAA+B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
import { BasicCompactionEngine } from "@deepseek-ai/dsh-compaction-basic";
|
|
2
2
|
import { createUserMessage } from "@deepseek-ai/dsh-llm";
|
|
3
|
-
import { GuardianBridge, normalizeDeepSeekMessages } from "./bridge.js";
|
|
3
|
+
import { GuardianBridge, normalizeDeepSeekMessages, preferredLanguage } from "./bridge.js";
|
|
4
4
|
export const name = "context-guardian-deepseek-harness";
|
|
5
|
+
const MAX_REVIEW_QUESTIONS = 3;
|
|
5
6
|
if (process.env.CONTEXT_GUARDIAN_DEBUG === "1") {
|
|
6
7
|
console.error("context guardian: adapter module loaded");
|
|
7
8
|
}
|
|
8
9
|
const bridge = new GuardianBridge();
|
|
9
|
-
const
|
|
10
|
-
|
|
10
|
+
const UI_MESSAGES = {
|
|
11
|
+
en: {
|
|
12
|
+
auditUnavailable: "Context Guardian audit unavailable; accepting the successful native preview.",
|
|
13
|
+
reviewCancelled: "Context Guardian review unavailable; accepting the successful native preview.",
|
|
14
|
+
revisionUnavailable: "Context Guardian revision unavailable; accepting the successful native preview.",
|
|
15
|
+
finalFailed: "Context Guardian final compaction failed; accepting the successful native preview.",
|
|
16
|
+
},
|
|
17
|
+
"zh-CN": {
|
|
18
|
+
auditUnavailable: "Context Guardian 审计不可用;接受已经成功生成的原生预览。",
|
|
19
|
+
reviewCancelled: "Context Guardian 人工审查不可用;接受已经成功生成的原生预览。",
|
|
20
|
+
revisionUnavailable: "Context Guardian 修正指导不可用;接受已经成功生成的原生预览。",
|
|
21
|
+
finalFailed: "Context Guardian 最终压缩失败;接受已经成功生成的原生预览。",
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
function uiMessage(language, key) {
|
|
25
|
+
return UI_MESSAGES[language][key];
|
|
26
|
+
}
|
|
11
27
|
function debug(ctx, message) {
|
|
12
28
|
if (process.env.CONTEXT_GUARDIAN_DEBUG === "1") {
|
|
13
29
|
const line = `context guardian: ${message}`;
|
|
@@ -15,71 +31,85 @@ function debug(ctx, message) {
|
|
|
15
31
|
ctx.logger.info(line);
|
|
16
32
|
}
|
|
17
33
|
}
|
|
18
|
-
function
|
|
19
|
-
const
|
|
20
|
-
return
|
|
34
|
+
function configuredReviewBudget() {
|
|
35
|
+
const value = Number(process.env.CONTEXT_GUARDIAN_MAX_REVIEW_QUESTIONS ?? MAX_REVIEW_QUESTIONS);
|
|
36
|
+
return Number.isInteger(value) && value >= 0 && value <= MAX_REVIEW_QUESTIONS ? value : MAX_REVIEW_QUESTIONS;
|
|
21
37
|
}
|
|
22
|
-
function
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
detail: candidateDetail(candidate),
|
|
28
|
-
options: [
|
|
29
|
-
{ label: KEEP, description: "Tell the native compactor to preserve this item." },
|
|
30
|
-
{ label: DROP, description: "Tell the native compactor this item may be discarded." },
|
|
31
|
-
],
|
|
38
|
+
export function answersForNoUi(plan) {
|
|
39
|
+
return plan.review_questions.map((question) => ({
|
|
40
|
+
question_id: question.id,
|
|
41
|
+
topic_id: question.topic_id,
|
|
42
|
+
action: question.recommendation,
|
|
32
43
|
}));
|
|
33
44
|
}
|
|
34
|
-
function
|
|
35
|
-
return
|
|
45
|
+
export function needsRevision(plan, answers) {
|
|
46
|
+
return plan.auto_corrections.length > 0 || answers.some((answer) => answer.action === "keep");
|
|
36
47
|
}
|
|
37
|
-
function
|
|
38
|
-
return
|
|
39
|
-
|
|
40
|
-
:
|
|
48
|
+
function reviewQuestionsForUi(plan) {
|
|
49
|
+
return plan.review_questions.slice(0, MAX_REVIEW_QUESTIONS).map((question) => ({
|
|
50
|
+
id: question.id,
|
|
51
|
+
header: question.title,
|
|
52
|
+
question: question.question,
|
|
53
|
+
detail: `${plan.overview}\n\n${question.context}\n\n${question.why_it_matters}\n\n${question.options.map((option) => `${option.label}: ${option.description}`).join("\n")}`,
|
|
54
|
+
options: question.options.map((option) => ({
|
|
55
|
+
label: option.label,
|
|
56
|
+
description: option.description,
|
|
57
|
+
})),
|
|
58
|
+
}));
|
|
41
59
|
}
|
|
42
|
-
async function
|
|
43
|
-
if (
|
|
60
|
+
async function answerReviewQuestions(ctx, agent, plan, signal) {
|
|
61
|
+
if (plan.review_questions.length === 0)
|
|
44
62
|
return [];
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
// `Context.get()` deliberately bypasses a plugin's injected dependency map.
|
|
64
|
+
// Compaction is an isolated Cordis plugin, so read the injected property
|
|
65
|
+
// instead; otherwise the Web answerer is present in the host but invisible
|
|
66
|
+
// to this adapter and every review silently takes the no-UI fallback.
|
|
67
|
+
let interaction;
|
|
68
|
+
try {
|
|
69
|
+
interaction = ctx.userQuestions;
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
debug(ctx, `userQuestions unavailable; policy fallback ${errorCode(error) ?? "missing"}`);
|
|
73
|
+
return answersForNoUi(plan);
|
|
74
|
+
}
|
|
52
75
|
if (interaction === undefined)
|
|
53
|
-
return
|
|
76
|
+
return answersForNoUi(plan);
|
|
54
77
|
try {
|
|
55
78
|
const answer = await interaction.ask({
|
|
56
|
-
questions:
|
|
79
|
+
questions: reviewQuestionsForUi(plan),
|
|
57
80
|
agent,
|
|
58
81
|
signal,
|
|
59
82
|
});
|
|
60
83
|
const byId = new Map(answer.answers.map((item) => [item.id, item]));
|
|
61
|
-
return
|
|
62
|
-
const item = byId.get(
|
|
84
|
+
return plan.review_questions.slice(0, MAX_REVIEW_QUESTIONS).map((question) => {
|
|
85
|
+
const item = byId.get(question.id);
|
|
63
86
|
if (item?.custom !== undefined || item?.selected.length !== 1) {
|
|
64
|
-
throw new Error(`Context Guardian received an invalid answer for ${
|
|
87
|
+
throw new Error(`Context Guardian received an invalid answer for ${question.id}`);
|
|
65
88
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
89
|
+
const selected = item.selected[0];
|
|
90
|
+
const option = question.options.find((candidate) => candidate.label === selected);
|
|
91
|
+
if (!option)
|
|
92
|
+
throw new Error(`Context Guardian received an unknown answer for ${question.id}`);
|
|
93
|
+
return {
|
|
94
|
+
question_id: question.id,
|
|
95
|
+
topic_id: question.topic_id,
|
|
96
|
+
action: option.id,
|
|
97
|
+
};
|
|
71
98
|
});
|
|
72
99
|
}
|
|
73
100
|
catch (error) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (errorCode(error) === "NO_PROVIDER")
|
|
79
|
-
return keepAll(candidates);
|
|
101
|
+
const code = errorCode(error);
|
|
102
|
+
debug(ctx, `userQuestions unavailable; policy fallback ${code ?? "unknown"}`);
|
|
103
|
+
if (code === "NO_PROVIDER")
|
|
104
|
+
return answersForNoUi(plan);
|
|
80
105
|
throw error;
|
|
81
106
|
}
|
|
82
107
|
}
|
|
108
|
+
function errorCode(error) {
|
|
109
|
+
return typeof error === "object" && error !== null && "code" in error
|
|
110
|
+
? String(error.code)
|
|
111
|
+
: undefined;
|
|
112
|
+
}
|
|
83
113
|
function nativeInputWithGuidance(input, text) {
|
|
84
114
|
const guidanceMessage = createUserMessage({
|
|
85
115
|
content: [{ type: "text", text }],
|
|
@@ -94,33 +124,71 @@ function normalizeInput(input) {
|
|
|
94
124
|
const candidate = input;
|
|
95
125
|
return normalizeDeepSeekMessages(candidate.system, input.messages);
|
|
96
126
|
}
|
|
127
|
+
function textFromSummary(result) {
|
|
128
|
+
const blocks = result.summary;
|
|
129
|
+
return blocks
|
|
130
|
+
.filter((block) => block?.type === "text" || block?.type === "reasoning")
|
|
131
|
+
.map((block) => block.text ?? "")
|
|
132
|
+
.join("\n")
|
|
133
|
+
.trim();
|
|
134
|
+
}
|
|
97
135
|
/**
|
|
98
|
-
* Decorates DeepSeek Harness
|
|
99
|
-
*
|
|
100
|
-
*
|
|
136
|
+
* Decorates the native DeepSeek Harness compactor. The native engine owns the
|
|
137
|
+
* single transaction; this override only performs an uncommitted preview,
|
|
138
|
+
* an external audit, and (when needed) one guided native retry.
|
|
101
139
|
*/
|
|
102
140
|
export class ContextGuardianCompactionEngine extends BasicCompactionEngine {
|
|
141
|
+
// Compaction runs in its own isolated Cordis scope. Declare the human
|
|
142
|
+
// question capability explicitly so the Web answerer is visible there;
|
|
143
|
+
// without this dependency the adapter silently took its no-UI fallback.
|
|
144
|
+
static inject = [...BasicCompactionEngine.inject, "userQuestions"];
|
|
103
145
|
async summarize(input, agent, signal) {
|
|
104
|
-
|
|
146
|
+
const operationSignal = signal ?? new AbortController().signal;
|
|
147
|
+
const preview = await super.summarize(input, agent, signal);
|
|
148
|
+
const messages = normalizeInput(input);
|
|
149
|
+
let uiLanguage = preferredLanguage(messages);
|
|
150
|
+
let plan;
|
|
151
|
+
try {
|
|
152
|
+
plan = await bridge.auditPreview(this.ctx, agent, messages, textFromSummary(preview), "", "", operationSignal, configuredReviewBudget());
|
|
153
|
+
debug(this.ctx, `preview ready: findings=${String(plan.findings.length)}, topics=${String(plan.audit_topics.length)}, `
|
|
154
|
+
+ `auto_corrections=${String(plan.auto_corrections.length)}, accepted=${String(plan.accepted_omissions.length)}, `
|
|
155
|
+
+ `questions=${String(plan.review_questions.length)}`);
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
this.ctx.logger.warn(uiMessage(uiLanguage, "auditUnavailable"));
|
|
159
|
+
return preview;
|
|
160
|
+
}
|
|
161
|
+
uiLanguage = plan.language;
|
|
162
|
+
let answers;
|
|
163
|
+
try {
|
|
164
|
+
answers = await answerReviewQuestions(this.ctx, agent, plan, operationSignal);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
this.ctx.logger.warn(uiMessage(uiLanguage, "reviewCancelled"));
|
|
168
|
+
return preview;
|
|
169
|
+
}
|
|
170
|
+
if (!needsRevision(plan, answers)) {
|
|
171
|
+
debug(this.ctx, "native preview reused; final compaction not needed");
|
|
172
|
+
return preview;
|
|
173
|
+
}
|
|
174
|
+
let guidance;
|
|
175
|
+
try {
|
|
176
|
+
guidance = await bridge.revisionGuidance(this.ctx, agent, plan, answers, operationSignal);
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
this.ctx.logger.warn(uiMessage(uiLanguage, "revisionUnavailable"));
|
|
180
|
+
return preview;
|
|
181
|
+
}
|
|
182
|
+
if (!guidance.text)
|
|
183
|
+
return preview;
|
|
105
184
|
try {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
debug(this.ctx, `inspection returned ${String(inspection.candidates.length)} candidate(s), ${String(inspection.review.length)} for review`);
|
|
109
|
-
const decisions = [
|
|
110
|
-
...keepAll(inspection.auto_keep),
|
|
111
|
-
...inspection.auto_drop.map((candidate) => ({ candidate_id: candidate.id, action: "drop" })),
|
|
112
|
-
...await review(this.ctx, agent, inspection.review, operationSignal),
|
|
113
|
-
];
|
|
114
|
-
const guidance = await bridge.guidance(this.ctx, agent, inspection.candidates, decisions, operationSignal);
|
|
115
|
-
guidedInput = nativeInputWithGuidance(input, guidance.text);
|
|
185
|
+
debug(this.ctx, "running one guided native final compaction");
|
|
186
|
+
return await super.summarize(nativeInputWithGuidance(input, guidance.text), agent, signal);
|
|
116
187
|
}
|
|
117
188
|
catch (error) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
this.ctx.logger.warn(`context guardian unavailable${code ? ` [${code}]` : ""}; continuing native compaction: ${message}`);
|
|
121
|
-
return super.summarize(input, agent, signal);
|
|
189
|
+
this.ctx.logger.warn(uiMessage(uiLanguage, "finalFailed"));
|
|
190
|
+
return preview;
|
|
122
191
|
}
|
|
123
|
-
return super.summarize(guidedInput, agent, signal);
|
|
124
192
|
}
|
|
125
193
|
}
|
|
126
194
|
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;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -24,6 +24,56 @@ export interface InspectionResult {
|
|
|
24
24
|
mode: "rules" | "provider";
|
|
25
25
|
policy_version: string;
|
|
26
26
|
}
|
|
27
|
+
export interface AuditFinding {
|
|
28
|
+
id: string;
|
|
29
|
+
issue_type: "missing" | "incorrect" | "stale" | "ambiguous";
|
|
30
|
+
category: string;
|
|
31
|
+
summary: string;
|
|
32
|
+
why_it_matters: string;
|
|
33
|
+
suggested_correction: string;
|
|
34
|
+
importance: number;
|
|
35
|
+
confidence: number;
|
|
36
|
+
source_message_ids: string[];
|
|
37
|
+
evidence_snippets: string[];
|
|
38
|
+
}
|
|
39
|
+
export interface AuditTopic {
|
|
40
|
+
id: string;
|
|
41
|
+
title: string;
|
|
42
|
+
summary: string;
|
|
43
|
+
finding_ids: string[];
|
|
44
|
+
impact: number;
|
|
45
|
+
confidence: number;
|
|
46
|
+
relevance_to_main_goal: number;
|
|
47
|
+
requires_user_preference: boolean;
|
|
48
|
+
disposition: "auto_correct" | "accept_preview" | "ask_user";
|
|
49
|
+
recommended_action: "keep" | "drop" | "correct" | "accept_preview";
|
|
50
|
+
suggested_correction?: string | null;
|
|
51
|
+
}
|
|
52
|
+
export interface ReviewOption {
|
|
53
|
+
id: "keep" | "drop";
|
|
54
|
+
label: string;
|
|
55
|
+
description: string;
|
|
56
|
+
}
|
|
57
|
+
export interface ReviewQuestion {
|
|
58
|
+
id: string;
|
|
59
|
+
topic_id: string;
|
|
60
|
+
title: string;
|
|
61
|
+
question: string;
|
|
62
|
+
context: string;
|
|
63
|
+
why_it_matters: string;
|
|
64
|
+
recommendation: "keep" | "drop";
|
|
65
|
+
options: ReviewOption[];
|
|
66
|
+
}
|
|
67
|
+
export interface ReviewPlan {
|
|
68
|
+
language: "zh-CN" | "en";
|
|
69
|
+
overview: string;
|
|
70
|
+
auto_preserve_summary: string;
|
|
71
|
+
findings: AuditFinding[];
|
|
72
|
+
audit_topics: AuditTopic[];
|
|
73
|
+
auto_corrections: string[];
|
|
74
|
+
accepted_omissions: string[];
|
|
75
|
+
review_questions: ReviewQuestion[];
|
|
76
|
+
}
|
|
27
77
|
export interface Guidance {
|
|
28
78
|
must_preserve: string[];
|
|
29
79
|
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":"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,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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|