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 CHANGED
@@ -2,13 +2,17 @@
2
2
 
3
3
  [English](README.md) · [简体中文](README.zh-CN.md)
4
4
 
5
- This adapter adds a human review step before DeepSeek Harness's native context compaction:
5
+ This adapter audits a native Preview before DeepSeek Harness commits context compaction:
6
6
 
7
7
  ```text
8
- Harness history → Context Guardian inspectionKeep / Drop review native Harness summary
8
+ Harness native Preview → Context Guardian Auditauto 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, model extraction, or human review is unavailable, the adapter logs a warning and continues with native compaction.
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 the number of inspection candidates and review candidates.
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 candidates appear through Harness's user-question UI. In headless compositions without an answerer, uncertain candidates are conservatively kept. For deterministic local testing, `CONTEXT_GUARDIAN_REVIEW_MODE=keep` or `drop` bypasses the question UI.
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
- opens the Harness UI, and pauses on a reviewable SQLite candidate. Select Keep or Drop,
97
- then confirm the native `/compact` result. It uses a replay model, so no DeepSeek API
98
- key is required. Exit the temporary Web process with Ctrl-C when finished.
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 历史 → Context Guardian 检查Keep / Drop 审查 → 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
- 模型抽取或人工审查不可用,适配器会记录 warning 并继续原生 compaction。
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,预置足够长的会话,打开 Harness UI,并在
97
- SQLite 候选上暂停,让你选择 Keep Drop,随后确认原生 `/compact` 成功。它
98
- 使用 replay model,不需要 DeepSeek API Key。结束临时 Web 进程时按 Ctrl-C。
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 的无头模式中,未决候选会保守地 Keep;也可以用
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
@@ -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;AAQ9G,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,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;YASN,OAAO;CAwGtB"}
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's native backend with Context Guardian review.
9
- * The inherited engine still owns selection, shrink checks, durable markers,
10
- * session replacement, and the final structured checkpoint summary.
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;
@@ -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;AAMpD,eAAO,MAAM,IAAI,sCAAsC,CAAC;AAMxD,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;AAkGlE;;;;GAIG;AACH,qBAAa,+BAAgC,SAAQ,qBAAqB;cAC/C,SAAS,CAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC;CAgClC;AAED,eAAe,+BAA+B,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 KEEP = "Keep";
10
- const DROP = "Drop";
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 candidateDetail(candidate) {
19
- const reason = candidate.reason ? `\n\nReason: ${candidate.reason}` : "";
20
- return `Category: ${candidate.category}\nImportance: ${candidate.importance.toFixed(2)} · Confidence: ${candidate.confidence.toFixed(2)}\n\n${candidate.content}${reason}`;
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 reviewQuestions(candidates) {
23
- return candidates.map((candidate) => ({
24
- id: candidate.id,
25
- header: `Context Guardian · ${candidate.category}`,
26
- question: "Keep this memory in the compaction guidance?",
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 keepAll(candidates) {
35
- return candidates.map((candidate) => ({ candidate_id: candidate.id, action: "keep" }));
45
+ export function needsRevision(plan, answers) {
46
+ return plan.auto_corrections.length > 0 || answers.some((answer) => answer.action === "keep");
36
47
  }
37
- function errorCode(error) {
38
- return typeof error === "object" && error !== null && "code" in error
39
- ? String(error.code)
40
- : undefined;
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 review(ctx, agent, candidates, signal) {
43
- if (candidates.length === 0)
60
+ async function answerReviewQuestions(ctx, agent, plan, signal) {
61
+ if (plan.review_questions.length === 0)
44
62
  return [];
45
- const mode = process.env.CONTEXT_GUARDIAN_REVIEW_MODE;
46
- if (mode === "keep")
47
- return keepAll(candidates);
48
- if (mode === "drop")
49
- return candidates.map((candidate) => ({ candidate_id: candidate.id, action: "drop" }));
50
- const interaction = ctx.get("userQuestions");
51
- debug(ctx, `reviewing ${String(candidates.length)} candidate(s); userQuestions=${interaction === undefined ? "unavailable" : "available"}`);
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 keepAll(candidates);
76
+ return answersForNoUi(plan);
54
77
  try {
55
78
  const answer = await interaction.ask({
56
- questions: reviewQuestions(candidates),
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 candidates.map((candidate) => {
62
- const item = byId.get(candidate.id);
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 ${candidate.id}`);
87
+ throw new Error(`Context Guardian received an invalid answer for ${question.id}`);
65
88
  }
66
- if (item.selected[0] === KEEP)
67
- return { candidate_id: candidate.id, action: "keep" };
68
- if (item.selected[0] === DROP)
69
- return { candidate_id: candidate.id, action: "drop" };
70
- throw new Error(`Context Guardian received an unknown answer for ${candidate.id}`);
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
- debug(ctx, `userQuestions failed with ${errorCode(error) ?? (error instanceof Error ? error.message : String(error))}`);
75
- // Headless compositions commonly provide the service seam without a UI
76
- // answerer. Treat that case conservatively; an explicit cancellation or
77
- // protocol failure is allowed to fail open to native compaction below.
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's native backend with Context Guardian review.
99
- * The inherited engine still owns selection, shrink checks, durable markers,
100
- * session replacement, and the final structured checkpoint summary.
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
- let guidedInput;
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
- const operationSignal = signal ?? new AbortController().signal;
107
- const inspection = await bridge.inspect(this.ctx, agent, normalizeInput(input), operationSignal);
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
- const message = error instanceof Error ? error.message : String(error);
119
- const code = errorCode(error);
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":"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"}
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;AAEzD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3F,MAAM,CAAC,MAAM,IAAI,GAAG,mCAAmC,CAAC;AACxD,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,EAAE,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC3D,CAAC;AAMD,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;AAIpC,MAAM,WAAW,GAAqD;IACpE,EAAE,EAAE;QACF,gBAAgB,EAAE,8EAA8E;QAChG,eAAe,EAAE,+EAA+E;QAChG,mBAAmB,EAAE,iFAAiF;QACtG,WAAW,EAAE,oFAAoF;KAClG;IACD,OAAO,EAAE;QACP,gBAAgB,EAAE,uCAAuC;QACzD,eAAe,EAAE,yCAAyC;QAC1D,mBAAmB,EAAE,yCAAyC;QAC9D,WAAW,EAAE,wCAAwC;KACtD;CACF,CAAC;AAEF,SAAS,SAAS,CAAC,QAAoB,EAAE,GAAiB;IACxD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,KAAK,CAAC,GAAY,EAAE,OAAe;IAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,qBAAqB,OAAO,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,oBAAoB,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAgB;IAK7C,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9C,WAAW,EAAE,QAAQ,CAAC,EAAE;QACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,cAAc;KAChC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,OAA+C;IAC7F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAgB;IAC5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7E,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,MAAM,EAAE,QAAQ,CAAC,KAAK;QACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,OAAO,QAAQ,CAAC,OAAO,OAAO,QAAQ,CAAC,cAAc,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC3K,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,GAAY,EACZ,KAAY,EACZ,IAAgB,EAChB,MAAmB;IAEnB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClD,4EAA4E;IAC5E,yEAAyE;IACzE,2EAA2E;IAC3E,sEAAsE;IACtE,IAAI,WAAwE,CAAC;IAC7E,IAAI,CAAC;QACH,WAAW,GAAI,GAEb,CAAC,aAAa,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,GAAG,EAAE,8CAA8C,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;QAC1F,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC;YACnC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC;YACrC,KAAK;YACL,MAAM;SACP,CAA4E,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,mDAAmD,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/F,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,MAAM,CAAC,EAAE;aAClB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,CAAC,GAAG,EAAE,8CAA8C,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;QAC9E,IAAI,IAAI,KAAK,aAAa;YAAE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;QACnE,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA2B,EAAE,IAAY;IACxE,MAAM,eAAe,GAAG,iBAAiB,CAAC;QACxC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;KACzC,CAAC,CAAC;IACH,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC;KACvB,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,KAA2B;IACjD,MAAM,SAAS,GAAG,KAAmD,CAAC;IACtE,OAAO,yBAAyB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,MAA6B;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAsD,CAAC;IAC7E,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,MAAM,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,CAAC;SACxE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;SAChC,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,+BAAgC,SAAQ,qBAAqB;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,CAAU,MAAM,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEzD,KAAK,CAAC,SAAS,CAChC,KAA2B,EAC3B,KAAY,EACZ,MAAoB;QAEpB,MAAM,eAAe,GAAG,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,UAAU,GAAe,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,IAAgB,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAC9B,IAAI,CAAC,GAAG,EACR,KAAK,EACL,QAAQ,EACR,eAAe,CAAC,OAAO,CAAC,EACxB,EAAE,EACF,EAAE,EACF,eAAe,EACf,sBAAsB,EAAE,CACzB,CAAC;YACF,KAAK,CACH,IAAI,CAAC,GAAG,EACR,2BAA2B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI;kBACnG,oBAAoB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI;kBAChH,aAAa,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CACxD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAChE,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE3B,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAC/D,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;YACtE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;YACnE,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC;QAEnC,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAC;YAC9D,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;YAC3D,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;;AAGH,eAAe,+BAA+B,CAAC"}
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[];
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-guardian-deepseek-harness",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Human review before DeepSeek Harness context compaction",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",