@accelerator-mzq/forge 1.4.0 → 3.0.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.
Files changed (85) hide show
  1. package/dist/cli/commands/archive.d.ts +73 -10
  2. package/dist/cli/commands/archive.d.ts.map +1 -1
  3. package/dist/cli/commands/archive.js +362 -89
  4. package/dist/cli/commands/archive.js.map +1 -1
  5. package/dist/cli/commands/legacy-bridge.d.ts +110 -0
  6. package/dist/cli/commands/legacy-bridge.d.ts.map +1 -1
  7. package/dist/cli/commands/legacy-bridge.js +1058 -438
  8. package/dist/cli/commands/legacy-bridge.js.map +1 -1
  9. package/dist/cli/commands/pause-capture.d.ts +24 -0
  10. package/dist/cli/commands/pause-capture.d.ts.map +1 -0
  11. package/dist/cli/commands/pause-capture.js +87 -0
  12. package/dist/cli/commands/pause-capture.js.map +1 -0
  13. package/dist/cli/index.js +3 -0
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/core/ack-log.d.ts +17 -1
  16. package/dist/core/ack-log.d.ts.map +1 -1
  17. package/dist/core/ack-log.js.map +1 -1
  18. package/dist/core/archive/ack-log-consistency.d.ts.map +1 -1
  19. package/dist/core/archive/ack-log-consistency.js +2 -1
  20. package/dist/core/archive/ack-log-consistency.js.map +1 -1
  21. package/dist/core/archive/pause-decisions-fence.d.ts +24 -1
  22. package/dist/core/archive/pause-decisions-fence.d.ts.map +1 -1
  23. package/dist/core/archive/pause-decisions-fence.js +260 -46
  24. package/dist/core/archive/pause-decisions-fence.js.map +1 -1
  25. package/dist/core/backlog/assets/backlog-readme.md +4 -2
  26. package/dist/core/backlog/index.d.ts +1 -1
  27. package/dist/core/backlog/index.d.ts.map +1 -1
  28. package/dist/core/backlog/index.js +27 -8
  29. package/dist/core/backlog/index.js.map +1 -1
  30. package/dist/core/backlog/render.d.ts +48 -3
  31. package/dist/core/backlog/render.d.ts.map +1 -1
  32. package/dist/core/backlog/render.js +151 -15
  33. package/dist/core/backlog/render.js.map +1 -1
  34. package/dist/core/legacy-bridge/extractor.d.ts +79 -0
  35. package/dist/core/legacy-bridge/extractor.d.ts.map +1 -0
  36. package/dist/core/legacy-bridge/extractor.js +374 -0
  37. package/dist/core/legacy-bridge/extractor.js.map +1 -0
  38. package/dist/core/legacy-bridge/indexer.d.ts +8 -2
  39. package/dist/core/legacy-bridge/indexer.d.ts.map +1 -1
  40. package/dist/core/legacy-bridge/indexer.js +61 -9
  41. package/dist/core/legacy-bridge/indexer.js.map +1 -1
  42. package/dist/core/legacy-bridge/legacy-requirements.d.ts +53 -0
  43. package/dist/core/legacy-bridge/legacy-requirements.d.ts.map +1 -0
  44. package/dist/core/legacy-bridge/legacy-requirements.js +114 -0
  45. package/dist/core/legacy-bridge/legacy-requirements.js.map +1 -0
  46. package/dist/core/legacy-bridge/llm-task.d.ts +54 -0
  47. package/dist/core/legacy-bridge/llm-task.d.ts.map +1 -0
  48. package/dist/core/legacy-bridge/llm-task.js +87 -0
  49. package/dist/core/legacy-bridge/llm-task.js.map +1 -0
  50. package/dist/core/legacy-bridge/mapper.d.ts +8 -9
  51. package/dist/core/legacy-bridge/mapper.d.ts.map +1 -1
  52. package/dist/core/legacy-bridge/mapper.js +24 -39
  53. package/dist/core/legacy-bridge/mapper.js.map +1 -1
  54. package/dist/core/legacy-bridge/quality-judge.d.ts +5 -0
  55. package/dist/core/legacy-bridge/quality-judge.d.ts.map +1 -1
  56. package/dist/core/legacy-bridge/quality-judge.js +25 -21
  57. package/dist/core/legacy-bridge/quality-judge.js.map +1 -1
  58. package/dist/core/legacy-bridge/regenerator.d.ts +21 -1
  59. package/dist/core/legacy-bridge/regenerator.d.ts.map +1 -1
  60. package/dist/core/legacy-bridge/regenerator.js +132 -2
  61. package/dist/core/legacy-bridge/regenerator.js.map +1 -1
  62. package/dist/core/legacy-bridge/runners.d.ts +33 -0
  63. package/dist/core/legacy-bridge/runners.d.ts.map +1 -0
  64. package/dist/core/legacy-bridge/runners.js +77 -0
  65. package/dist/core/legacy-bridge/runners.js.map +1 -0
  66. package/dist/core/legacy-bridge/sync-check.d.ts +8 -0
  67. package/dist/core/legacy-bridge/sync-check.d.ts.map +1 -1
  68. package/dist/core/legacy-bridge/sync-check.js +83 -0
  69. package/dist/core/legacy-bridge/sync-check.js.map +1 -1
  70. package/dist/core/legacy-bridge/types.d.ts +2 -0
  71. package/dist/core/legacy-bridge/types.d.ts.map +1 -1
  72. package/dist/core/markers/types.d.ts +5 -0
  73. package/dist/core/markers/types.d.ts.map +1 -1
  74. package/dist/core/parse/unified-diff.d.ts +26 -0
  75. package/dist/core/parse/unified-diff.d.ts.map +1 -0
  76. package/dist/core/parse/unified-diff.js +61 -0
  77. package/dist/core/parse/unified-diff.js.map +1 -0
  78. package/dist/core/templates/commands/apply.md +12 -3
  79. package/dist/core/templates/commands/archive.md +15 -0
  80. package/dist/core/templates/commands/verify.md +2 -0
  81. package/dist/core/templates/skills/legacy-bridge-fulfillment.md +22 -0
  82. package/dist/core/validate/marker-schema.d.ts.map +1 -1
  83. package/dist/core/validate/marker-schema.js +15 -0
  84. package/dist/core/validate/marker-schema.js.map +1 -1
  85. package/package.json +21 -20
@@ -1,6 +1,8 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
- import type { LegacyAnchor, LegacyAnchorRole, LegacyAnchorsFile } from './types.js';
2
+ import type { LegacyAnchor, LegacyAnchorRole, LegacyAnchorsFile, QualityResult } from './types.js';
3
3
  import { type RedactReport } from './redact.js';
4
+ import type { LlmTask } from './llm-task.js';
5
+ import { type SamplingOutput } from './quality-judge.js';
4
6
  /** 复写参数 */
5
7
  export interface RegenerateInput {
6
8
  role: LegacyAnchorRole;
@@ -47,4 +49,22 @@ export declare class RegenOutputError extends Error {
47
49
  readonly role: LegacyAnchorRole;
48
50
  constructor(message: string, role: LegacyAnchorRole);
49
51
  }
52
+ /**
53
+ * 加 frontmatter + 顶部 disclaimer(决策 #21 / §9)。
54
+ * Task 6.2 round-2:export 供双路径 CLI(--api / --apply 成功路径)复用,
55
+ * 与 regenerateRole 单进程路径产物保持一致(同一 frontmatter/disclaimer)。
56
+ */
57
+ export declare function wrapWithFrontmatterAndDisclaimer(body: string, input: RegenerateInput): string;
58
+ /** 轮1 校验后处理:解析 facts(KeyFact)→ 确定性分层抽样 → 产轮2 quality-judge LlmTask + SamplingOutput */
59
+ export declare function applyRound1AndBuildRound2(regenBody: string, extractFactsText: string, role: LegacyAnchorRole): {
60
+ task: LlmTask;
61
+ sampling: SamplingOutput;
62
+ };
63
+ /** 轮1:产 regenerate + extract-facts 两个 LlmTask */
64
+ export declare function buildRegenerateRound1Tasks(input: RegenerateInput, readText?: (anchor: LegacyAnchor) => Promise<string>): Promise<LlmTask[]>;
65
+ /** 轮2 后处理:agent 三态 judge 结果(JSON 字符串) + 轮1 抽样 → QualityResult。
66
+ * critical 必须 100% 的 gate 在 computeQualityResult 内,不因走 agent 路径软化。
67
+ * agent 漏判的 fact(数组越界)保守视为 lost。
68
+ */
69
+ export declare function applyRound2(judgeText: string, sampling: SamplingOutput, threshold: number): QualityResult;
50
70
  //# sourceMappingURL=regenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"regenerator.d.ts","sourceRoot":"","sources":["../../../src/core/legacy-bridge/regenerator.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGxD,WAAW;AACX,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,gBAAgB,CAAC;IACvB,qCAAqC;IACrC,aAAa,EAAE,YAAY,CAAC;IAC5B,sDAAsD;IACtD,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,WAAW;AACX,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC/F,CAAC;CACH;AAiBD,wCAAwC;AACxC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAU5D,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,gBAAgB,CAAyB,CAAC;AAkC1F,6BAA6B;AAC7B,wBAAsB,cAAc,CAClC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA4E3B;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CA4B9E;AAED,gDAAgD;AAChD,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,IAAI,EAAE,gBAAgB;gBADtC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,gBAAgB;CAKzC"}
1
+ {"version":3,"file":"regenerator.d.ts","sourceRoot":"","sources":["../../../src/core/legacy-bridge/regenerator.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAEV,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,WAAW;AACX,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,gBAAgB,CAAC;IACvB,qCAAqC;IACrC,aAAa,EAAE,YAAY,CAAC;IAC5B,sDAAsD;IACtD,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,WAAW;AACX,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC/F,CAAC;CACH;AAiBD,wCAAwC;AACxC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAU5D,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,gBAAgB,CAAyB,CAAC;AAkC1F,6BAA6B;AAC7B,wBAAsB,cAAc,CAClC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA4E3B;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CA4B9E;AAED,gDAAgD;AAChD,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,IAAI,EAAE,gBAAgB;gBADtC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,gBAAgB;CAKzC;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CA4B7F;AAiBD,uFAAuF;AACvF,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,gBAAgB,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAyD7C;AAED,iDAAiD;AACjD,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,eAAe,EAEtB,QAAQ,GAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAoB,GACrE,OAAO,CAAC,OAAO,EAAE,CAAC,CAyCpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAChB,aAAa,CA+Bf"}
@@ -3,6 +3,7 @@
3
3
  import matter from 'gray-matter';
4
4
  import { redact } from './redact.js';
5
5
  import { readAnchorAsText } from './encoding.js';
6
+ import { stratifiedSample, computeQualityResult, } from './quality-judge.js';
6
7
  const DEFAULT_MODEL = 'claude-sonnet-4-6';
7
8
  const PRICE_PER_M_INPUT = 3.0;
8
9
  const PRICE_PER_M_OUTPUT = 15.0;
@@ -149,8 +150,12 @@ export class RegenOutputError extends Error {
149
150
  this.name = 'RegenOutputError';
150
151
  }
151
152
  }
152
- /** 加 frontmatter + 顶部 disclaimer(决策 #21 / §9) */
153
- function wrapWithFrontmatterAndDisclaimer(body, input) {
153
+ /**
154
+ * 加 frontmatter + 顶部 disclaimer(决策 #21 / §9)
155
+ * Task 6.2 round-2:export 供双路径 CLI(--api / --apply 成功路径)复用,
156
+ * 与 regenerateRole 单进程路径产物保持一致(同一 frontmatter/disclaimer)。
157
+ */
158
+ export function wrapWithFrontmatterAndDisclaimer(body, input) {
154
159
  const generatedAt = new Date().toISOString();
155
160
  // 用 JSON.stringify 包裹路径,确保含特殊 yaml 字符(`: ` / `#` / `\n` 等)的路径不破 yaml 结构
156
161
  // (JSON 字符串字面量是 yaml 双引号字符串的合法子集)
@@ -190,4 +195,129 @@ function mergeHits(a, b) {
190
195
  }
191
196
  return merged;
192
197
  }
198
+ /** 轮1 校验后处理:解析 facts(KeyFact)→ 确定性分层抽样 → 产轮2 quality-judge LlmTask + SamplingOutput */
199
+ export function applyRound1AndBuildRound2(regenBody, extractFactsText, role) {
200
+ // 复用既有 markdown 合法性校验
201
+ validateRegenOutput(regenBody, role);
202
+ let facts = [];
203
+ try {
204
+ // LLM 偶尔违反 prompt 输出 ```json ... ``` fence;先剥再 parse(对齐 quality-judge.ts I-3 修)
205
+ const cleanText = extractFactsText
206
+ .trim()
207
+ .replace(/^```(?:json|JSON)?\r?\n/, '')
208
+ .replace(/\r?\n```\s*$/, '')
209
+ .trim();
210
+ const parsed = JSON.parse(cleanText);
211
+ if (Array.isArray(parsed)) {
212
+ facts = parsed
213
+ .map((o) => ({
214
+ text: typeof o.text === 'string' ? o.text : '',
215
+ section: typeof o.section === 'string' ? o.section : '(unstructured)',
216
+ critical: typeof o.critical === 'boolean' ? o.critical : false,
217
+ }))
218
+ .filter((f) => f.text.trim().length > 0);
219
+ }
220
+ }
221
+ catch {
222
+ // JSON.parse 失败 → facts 保持空数组,后续统一走 facts.length === 0 错误路径
223
+ facts = [];
224
+ }
225
+ // extract-facts 失败 / 空 → 无法验证保真率;不静默走「空抽样=passed」,显式抛错(下游写 .partial)
226
+ if (facts.length === 0) {
227
+ throw new RegenOutputError('extract-facts 未抽出任何 fact(LLM 输出非法或为空);无法验证保真率', role);
228
+ }
229
+ // 确定性分层抽样,留 CLI 侧
230
+ const sampling = stratifiedSample({ allFacts: facts });
231
+ // 将抽样 fact 编号排列,供 LLM 三态判定
232
+ const numbered = sampling.sampled
233
+ .map((f, i) => `${i + 1}. [${f.section}${f.critical ? ',critical' : ''}] ${f.text}`)
234
+ .join('\n');
235
+ const prompt = `下面是一份「复写产物」和一组「原文 fact」。对每个 fact 三态判定它是否在复写产物里被保留:\n` +
236
+ `- preserved:字面/数值完全一致\n` +
237
+ `- paraphrased:同义改写但语义+数值+约束完全等价\n` +
238
+ `- lost:漏掉 / 数值错 / 约束丢\n\n` +
239
+ `严格输出 JSON 数组,**顺序与 fact 编号一一对应**,每项 { "state": "preserved"|"paraphrased"|"lost" }。不加 preamble。\n\n` +
240
+ `# 复写产物\n${regenBody}\n\n# 待判 fact\n${numbered}`;
241
+ const inputs = [{ source: 'regen-body', content: regenBody }];
242
+ return {
243
+ task: {
244
+ op: 'quality-judge',
245
+ inputs,
246
+ prompt,
247
+ model: DEFAULT_MODEL,
248
+ outputSchema: '[{ "state": "preserved"|"paraphrased"|"lost" }](顺序对应 fact 编号)',
249
+ outputPath: '.cache/legacy-bridge-result-quality-judge.json',
250
+ },
251
+ sampling,
252
+ };
253
+ }
254
+ /** 轮1:产 regenerate + extract-facts 两个 LlmTask */
255
+ export async function buildRegenerateRound1Tasks(input,
256
+ // 默认用 readAnchorAsText;测试可注入 mock
257
+ readText = readAnchorAsText) {
258
+ // metadata-only role 不发 LLM(spec §7 line 909 / P7-03 修复)
259
+ if (METADATA_ONLY_ROLES.includes(input.role)) {
260
+ throw new RegenOutputError(`role=${input.role} 是 metadata-only(spec §7 line 909);不复写。`, input.role);
261
+ }
262
+ // 合并全局 redact 规则和 anchor 级别规则,然后对权威源文本 mask
263
+ const redactRules = [...(input.globalRedactRules ?? []), ...(input.authoritative.redact ?? [])];
264
+ const maskedAuth = redact(await readText(input.authoritative), redactRules).redactedText;
265
+ // 复写 prompt(复用既有 buildRegeneratePrompt)
266
+ const regeneratePrompt = buildRegeneratePrompt(input, maskedAuth);
267
+ // 关键事实抽取 prompt:从老文档提取结构化 JSON 事实列表
268
+ const extractFactsPrompt = `从下列老文档抽取关键事实(数字 / 字段约束 / 业务规则 / 合规条款 / 设计决策)。\n严格输出 JSON 数组,每项含 { "text": string(<=80 字单句), "section": string(章节锚如 "§4.5",无则 "(unstructured)"), "critical": boolean(合规/安全/业务硬约束=true) }。不加 preamble、不带 code fence。\n\n# 老文档\n${maskedAuth}`;
269
+ // 两个 task 共用的公共字段
270
+ const common = {
271
+ model: DEFAULT_MODEL,
272
+ inputs: [{ source: input.authoritative.path, content: maskedAuth }],
273
+ };
274
+ return [
275
+ {
276
+ ...common,
277
+ op: 'regenerate',
278
+ prompt: regeneratePrompt,
279
+ outputSchema: 'markdown 正文',
280
+ outputPath: `.cache/legacy-bridge-result-regenerate.json`,
281
+ },
282
+ {
283
+ ...common,
284
+ op: 'extract-facts',
285
+ prompt: extractFactsPrompt,
286
+ outputSchema: '[{ "text": string, "section": string, "critical": boolean }]',
287
+ outputPath: `.cache/legacy-bridge-result-extract-facts.json`,
288
+ },
289
+ ];
290
+ }
291
+ /** 轮2 后处理:agent 三态 judge 结果(JSON 字符串) + 轮1 抽样 → QualityResult。
292
+ * critical 必须 100% 的 gate 在 computeQualityResult 内,不因走 agent 路径软化。
293
+ * agent 漏判的 fact(数组越界)保守视为 lost。
294
+ */
295
+ export function applyRound2(judgeText, sampling, threshold) {
296
+ // 解析 agent 输出的三态 JSON 数组;解析失败 → 所有 fact 保守视为 lost
297
+ let states = [];
298
+ try {
299
+ const parsed = JSON.parse(judgeText.trim());
300
+ if (Array.isArray(parsed)) {
301
+ states = parsed.map((o) => o.state === 'preserved' || o.state === 'paraphrased' || o.state === 'lost'
302
+ ? o.state
303
+ : 'lost');
304
+ }
305
+ else {
306
+ // 合法 JSON 但非数组 → 无法逐 fact 对应,所有 fact 保守视为 lost(fail-closed)
307
+ console.warn(`[applyRound2] agent judge 输出非 JSON 数组(type=${typeof parsed});所有 fact 保守视为 lost`);
308
+ }
309
+ }
310
+ catch {
311
+ // JSON 解析失败 → states 保持空数组,下面逐条 fallback 为 lost(fail-closed)
312
+ console.warn(`[applyRound2] agent judge 输出非合法 JSON;所有 fact 保守视为 lost。原文(head 200):\n${judgeText.slice(0, 200)}`);
313
+ states = [];
314
+ }
315
+ // 按编号与轮1 抽样 fact 一一对应;agent 漏判的 fact 保守视为 lost
316
+ const judged = sampling.sampled.map((fact, i) => ({
317
+ fact,
318
+ state: states[i] ?? 'lost',
319
+ }));
320
+ // 复用纯函数算分 gate,行为与 LLM 路径完全一致
321
+ return computeQualityResult(judged, sampling, threshold);
322
+ }
193
323
  //# sourceMappingURL=regenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"regenerator.js","sourceRoot":"","sources":["../../../src/core/legacy-bridge/regenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"regenerator.js","sourceRoot":"","sources":["../../../src/core/legacy-bridge/regenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ import type { LlmTask, LlmOp, TaskManifest } from './llm-task.js';
3
+ /** 一个 task 的 LLM 原始文本结果 */
4
+ export interface LlmTaskResult {
5
+ op: LlmOp;
6
+ text: string;
7
+ }
8
+ /** ApiRunner 所需的最小 client 接口(便于 mock) */
9
+ export interface RunnerClient {
10
+ messages: {
11
+ create: (args: Anthropic.Messages.MessageCreateParams) => Promise<Anthropic.Messages.Message>;
12
+ };
13
+ }
14
+ /** --api 模式:进程内逐个 task 调 Anthropic SDK */
15
+ export declare class ApiRunner {
16
+ private readonly client;
17
+ constructor(client: RunnerClient);
18
+ run(tasks: LlmTask[]): Promise<LlmTaskResult[]>;
19
+ }
20
+ /** 默认模式:把当前轮 LlmTask[] 包进 manifest 信封写盘(命令随后退出,等 agent fulfill) */
21
+ export declare class AgentHandoffRunner {
22
+ private readonly forgeRoot;
23
+ private readonly forgeVersion;
24
+ constructor(forgeRoot: string, forgeVersion: string);
25
+ /** emit 当前轮 manifest;返回 manifest(调用方可读 manifest_hash,如 archive 暂停态) */
26
+ emit(op: LlmOp, round: number, tasks: LlmTask[], meta?: Record<string, unknown>): Promise<TaskManifest>;
27
+ }
28
+ /** agent 路径:读 agent 写在各 task.outputPath 的结果文件 */
29
+ export declare function readTaskResults(forgeRoot: string, tasks: LlmTask[]): Promise<LlmTaskResult[]>;
30
+ /** 构造 --api 模式的 Anthropic client。
31
+ * 动态加载 forge-eval/load-env(避免 src/ rootDir 静态分析边界限制)。 */
32
+ export declare function makeForgeApiClient(): Promise<Anthropic>;
33
+ //# sourceMappingURL=runners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../../../src/core/legacy-bridge/runners.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAK1C,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElE,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC/F,CAAC;CACH;AAED,0CAA0C;AAC1C,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAE3C,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAyBtD;AAED,mEAAmE;AACnE,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM;IAGvC,uEAAuE;IACjE,IAAI,CACR,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC;CAKzB;AAED,iDAAiD;AACjD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EAAE,GACf,OAAO,CAAC,aAAa,EAAE,CAAC,CAmB1B;AAED;0DAC0D;AAC1D,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC,CAO7D"}
@@ -0,0 +1,77 @@
1
+ // src/core/legacy-bridge/runners.ts
2
+ // 双路径的两种执行:ApiRunner(--api 进程内调 SDK)/ AgentHandoffRunner(默认 emit manifest)+ readTaskResults
3
+ import Anthropic from '@anthropic-ai/sdk';
4
+ import { readFile } from 'node:fs/promises';
5
+ import { existsSync } from 'node:fs';
6
+ import { isAbsolute, join } from 'node:path';
7
+ import { buildManifest, writeManifest } from './llm-task.js';
8
+ /** --api 模式:进程内逐个 task 调 Anthropic SDK */
9
+ export class ApiRunner {
10
+ client;
11
+ constructor(client) {
12
+ this.client = client;
13
+ }
14
+ async run(tasks) {
15
+ const out = [];
16
+ for (const t of tasks) {
17
+ const bytes = Buffer.byteLength(t.prompt, 'utf8');
18
+ console.log(`→ sending ${bytes} bytes to Anthropic API (provider=anthropic, region: auto, model=${t.model}, op=${t.op})`);
19
+ const result = await this.client.messages.create({
20
+ model: t.model,
21
+ max_tokens: 8192,
22
+ messages: [{ role: 'user', content: t.prompt }],
23
+ });
24
+ const block = result.content.find((b) => b.type === 'text');
25
+ if (!block) {
26
+ // API 因 refusal 等 stop_reason 未返回 TextBlock —— 显式 warn,避免静默变空串
27
+ console.warn(`⚠ op=${t.op} API 未返回文本块(stop_reason=${result.stop_reason ?? 'unknown'}),以空字符串代替`);
28
+ }
29
+ out.push({ op: t.op, text: block?.text ?? '' });
30
+ }
31
+ return out;
32
+ }
33
+ }
34
+ /** 默认模式:把当前轮 LlmTask[] 包进 manifest 信封写盘(命令随后退出,等 agent fulfill) */
35
+ export class AgentHandoffRunner {
36
+ forgeRoot;
37
+ forgeVersion;
38
+ constructor(forgeRoot, forgeVersion) {
39
+ this.forgeRoot = forgeRoot;
40
+ this.forgeVersion = forgeVersion;
41
+ }
42
+ /** emit 当前轮 manifest;返回 manifest(调用方可读 manifest_hash,如 archive 暂停态) */
43
+ async emit(op, round, tasks, meta) {
44
+ const manifest = buildManifest({ op, round, tasks, forgeVersion: this.forgeVersion, meta });
45
+ await writeManifest(this.forgeRoot, manifest);
46
+ return manifest;
47
+ }
48
+ }
49
+ /** agent 路径:读 agent 写在各 task.outputPath 的结果文件 */
50
+ export async function readTaskResults(forgeRoot, tasks) {
51
+ const out = [];
52
+ for (const t of tasks) {
53
+ const p = isAbsolute(t.outputPath) ? t.outputPath : join(forgeRoot, t.outputPath);
54
+ if (!existsSync(p)) {
55
+ throw new Error(`agent 结果文件缺失:${p};请先 fulfill manifest 再跑 --apply`);
56
+ }
57
+ // 包装裸 SyntaxError —— 结果文件被截断写入时,错误信息要含路径(同 Task 1.2 readManifest 先例)
58
+ let parsed;
59
+ try {
60
+ parsed = JSON.parse(await readFile(p, 'utf8'));
61
+ }
62
+ catch (err) {
63
+ throw new Error(`agent 结果文件 ${p} JSON 解析失败(文件可能被截断写入):${err.message}`);
64
+ }
65
+ out.push({ op: t.op, text: parsed.text ?? '' });
66
+ }
67
+ return out;
68
+ }
69
+ /** 构造 --api 模式的 Anthropic client。
70
+ * 动态加载 forge-eval/load-env(避免 src/ rootDir 静态分析边界限制)。 */
71
+ export async function makeForgeApiClient() {
72
+ const evalLoadEnvPath = new URL('../../../forge-eval/load-env.js', import.meta.url).href;
73
+ const { loadEnv } = (await import(/* @vite-ignore */ evalLoadEnvPath));
74
+ const { anthropicApiKey } = loadEnv();
75
+ return new Anthropic({ apiKey: anthropicApiKey });
76
+ }
77
+ //# sourceMappingURL=runners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runners.js","sourceRoot":"","sources":["../../../src/core/legacy-bridge/runners.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,4FAA4F;AAC5F,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgB7D,0CAA0C;AAC1C,MAAM,OAAO,SAAS;IACS;IAA7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD,KAAK,CAAC,GAAG,CAAC,KAAgB;QACxB,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CACT,aAAa,KAAK,oEAAoE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,GAAG,CAC7G,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/C,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAqC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAC5D,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,+DAA+D;gBAC/D,OAAO,CAAC,IAAI,CACV,QAAQ,CAAC,CAAC,EAAE,2BAA2B,MAAM,CAAC,WAAW,IAAI,SAAS,WAAW,CAClF,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,mEAAmE;AACnE,MAAM,OAAO,kBAAkB;IAEV;IACA;IAFnB,YACmB,SAAiB,EACjB,YAAoB;QADpB,cAAS,GAAT,SAAS,CAAQ;QACjB,iBAAY,GAAZ,YAAY,CAAQ;IACpC,CAAC;IAEJ,uEAAuE;IACvE,KAAK,CAAC,IAAI,CACR,EAAS,EACT,KAAa,EACb,KAAgB,EAChB,IAA8B;QAE9B,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,KAAgB;IAEhB,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QAClF,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;QACtE,CAAC;QACD,qEAAqE;QACrE,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAsB,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,cAAc,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;0DAC0D;AAC1D,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzF,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAEpE,CAAC;IACF,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AACpD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
+ import type { LlmTask } from './llm-task.js';
2
3
  import type { LegacyAnchor, LegacyAnchorsFile, SyncStateFile, SyncStateDiff, RedactRule } from './types.js';
3
4
  /** 单 change 的输入 */
4
5
  export interface SyncCheckInput {
@@ -44,4 +45,11 @@ indexEntries?: Array<{
44
45
  path: string;
45
46
  summary: string;
46
47
  }>): Promise<SyncCheckOutput>;
48
+ /** 确定性后处理:LLM diff 数组文本 → SyncStateFile(带 produced_from) */
49
+ export declare function applySyncCheckResult(llmText: string, changeId: string, producedFromHash: string): SyncStateFile;
50
+ /** 确定性 prep:findAffectedAnchors + redact(含 changeContext,补盲区)→ 一个 LlmTask */
51
+ export declare function buildSyncCheckTask(input: SyncCheckInput, readAnchorText: (path: string) => Promise<string>, indexEntries?: Array<{
52
+ path: string;
53
+ summary: string;
54
+ }>): Promise<LlmTask | null>;
47
55
  //# sourceMappingURL=sync-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-check.d.ts","sourceRoot":"","sources":["../../../src/core/legacy-bridge/sync-check.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAK1C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4CAA4C;IAC5C,sBAAsB,EAAE,OAAO,CAAC;IAChC,oCAAoC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAED,mBAAmB;AACnB,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,iDAAiD;IACjD,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC;IACpF,0DAA0D;IAC1D,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC/F,CAAC;CACH;AAID,kCAAkC;AAClC,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,eAAe,EAAE,MAAM,EAAE,GACxB,YAAY,EAAE,CAMhB;AAoCD,0CAA0C;AAC1C,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,GACrC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAcxC;AAED,8BAA8B;AAC9B,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,GACnB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAiC/B;AAED,6BAA6B;AAC7B,wBAAsB,YAAY,CAChC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;AACjD,sDAAsD;AACtD,YAAY,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,eAAe,CAAC,CA2F1B"}
1
+ {"version":3,"file":"sync-check.d.ts","sourceRoot":"","sources":["../../../src/core/legacy-bridge/sync-check.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4CAA4C;IAC5C,sBAAsB,EAAE,OAAO,CAAC;IAChC,oCAAoC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAED,mBAAmB;AACnB,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,iDAAiD;IACjD,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC;IACpF,0DAA0D;IAC1D,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC/F,CAAC;CACH;AAID,kCAAkC;AAClC,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,eAAe,EAAE,MAAM,EAAE,GACxB,YAAY,EAAE,CAMhB;AAoCD,0CAA0C;AAC1C,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,GACrC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAcxC;AAED,8BAA8B;AAC9B,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,GACnB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAiC/B;AAED,6BAA6B;AAC7B,wBAAsB,YAAY,CAChC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;AACjD,sDAAsD;AACtD,YAAY,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,eAAe,CAAC,CA2F1B;AAgBD,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GACvB,aAAa,CA0Bf;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EACjD,YAAY,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAsDzB"}
@@ -195,4 +195,87 @@ function extractText(result) {
195
195
  const block = result.content.find((b) => b.type === 'text');
196
196
  return block?.text ?? '';
197
197
  }
198
+ /** 确定性后处理:LLM diff 数组文本 → SyncStateFile(带 produced_from) */
199
+ export function applySyncCheckResult(llmText, changeId, producedFromHash) {
200
+ let raw = [];
201
+ try {
202
+ const parsed = JSON.parse(llmText.trim());
203
+ if (Array.isArray(parsed)) {
204
+ raw = parsed;
205
+ }
206
+ else {
207
+ // valid JSON 但形态非数组 —— 同等视为输出异常,写告警 diff,不静默漏报
208
+ raw = [
209
+ {
210
+ severity: 'info',
211
+ description: `LLM 输出格式非数组:${JSON.stringify(parsed).slice(0, 200)}`,
212
+ },
213
+ ];
214
+ }
215
+ }
216
+ catch {
217
+ raw = [{ severity: 'info', description: `LLM 输出非合法 JSON:${llmText.slice(0, 200)}` }];
218
+ }
219
+ const diffs = normalizeDiffsFromLlm(raw).map((d, i) => ({ ...d, id: i + 1 }));
220
+ return {
221
+ schema: 'forge-legacy-sync/v1',
222
+ change_id: changeId,
223
+ generated_at: new Date().toISOString(),
224
+ diffs,
225
+ produced_from: producedFromHash,
226
+ };
227
+ }
228
+ /** 确定性 prep:findAffectedAnchors + redact(含 changeContext,补盲区)→ 一个 LlmTask */
229
+ export async function buildSyncCheckTask(input, readAnchorText, indexEntries) {
230
+ // 找到受本次 change 影响的 anchor
231
+ let affected = findAffectedAnchors(input.anchors, input.affectedModules);
232
+ // 取全局 redact 规则
233
+ const redactRules = input.anchors.redact ?? [];
234
+ // 可选索引摘要过滤:仅"高分"摘要的 anchor 才打开原文
235
+ if (indexEntries && indexEntries.length > 0) {
236
+ const keywords = extractKeywords(input.changeContext);
237
+ const filtered = affected.filter((a) => {
238
+ const entry = indexEntries.find((e) => e.path === a.path);
239
+ if (!entry)
240
+ return true; // 无摘要 → 默认打开(保守)
241
+ return keywords.some((k) => entry.summary.includes(k));
242
+ });
243
+ if (filtered.length > 0)
244
+ affected = filtered;
245
+ }
246
+ // 无受影响 anchor → 不 emit 任务
247
+ if (affected.length === 0)
248
+ return null;
249
+ // 修盲区:changeContext 也 redact 后再进 prompt
250
+ const maskedContext = redact(input.changeContext, redactRules).redactedText;
251
+ const blocks = [];
252
+ const inputs = [{ source: 'change-context', content: maskedContext }];
253
+ for (const anchor of affected) {
254
+ let masked;
255
+ try {
256
+ // 锚点正文也走 redact,与 runSyncCheck 行为对齐
257
+ masked = redact(await readAnchorText(anchor.path), redactRules).redactedText;
258
+ }
259
+ catch (err) {
260
+ // 缺失锚点不阻塞(对齐现 runSyncCheck P7-10)
261
+ console.warn(`⚠ anchor ${anchor.path} 读取失败:${err.message};跳过该项继续`);
262
+ continue;
263
+ }
264
+ blocks.push(`# 锚点 role=${anchor.role} path=${anchor.path}\n${masked}`);
265
+ inputs.push({ source: anchor.path, content: masked });
266
+ }
267
+ // affected 存在但全部读取失败 → 无锚点内容,不 emit 空 sync-check task
268
+ if (blocks.length === 0)
269
+ return null;
270
+ // 拼整合 prompt(多 anchor 聚合,对齐 spec §5 buildSyncCheckTask 设计)
271
+ const prompt = `你是 brownfield sync 审计员。判断"本次 change"是否要求更新各"老文档锚点"。\n\n# 本次 change 上下文\n${maskedContext}\n\n${blocks.join('\n\n')}\n\n# 输出\n严格 JSON 数组,每项 { "anchor_path": string, "severity": "critical|major|minor|style|info", "section": string, "description": string }。无更新输出 []。`;
272
+ return {
273
+ op: 'sync-check',
274
+ inputs,
275
+ prompt,
276
+ model: DEFAULT_MODEL,
277
+ outputSchema: '[{ "anchor_path": string, "severity": string, "section": string, "description": string }]',
278
+ outputPath: '.cache/legacy-bridge-result-sync-check.json',
279
+ };
280
+ }
198
281
  //# sourceMappingURL=sync-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-check.js","sourceRoot":"","sources":["../../../src/core/legacy-bridge/sync-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-check.js","sourceRoot":"","sources":["../../../src/core/legacy-bridge/sync-check.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,8 @@ export interface SyncStateFile {
67
67
  diffs: SyncStateDiff[];
68
68
  /** 跨 anchor 冲突默认入 diff(决策 #18 修订);auto_resolve_cross_anchor=true 时此字段为空 */
69
69
  cross_anchor_conflicts?: SyncStateDiff[];
70
+ /** 产生此 sync-state 的 sync-check manifest 的 manifest_hash(双路径 resume gate 复核用,Spec A §4.5) */
71
+ produced_from?: string;
70
72
  }
71
73
  /** llm-ack.yaml 顶层结构(决策 #22) */
72
74
  export interface LlmAckFile {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/legacy-bridge/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/legacy-bridge/types.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,11 @@ export interface PauseDecision {
77
77
  other_rationale: string | null;
78
78
  /** option=4 必填(用户在 marker 之外某处确认 — fence 仅校验非空,不校验来源) */
79
79
  other_acked_by: string | null;
80
+ /** option=2 新增的 task(末段 tasks.md#task-N);厘清 task_ref 语义 —— task_ref = 触发 pause 的 task。
81
+ * schema 层 optional(superset additive,老 marker 无);必填性由 fence 层按 chosen_option 判。 */
82
+ added_task_ref?: string | null;
83
+ /** option=2 关联的 pause-capture entry 的 capture_id;schema 层 optional,同上。 */
84
+ capture_id?: string | null;
80
85
  }
81
86
  export interface EvidenceItem {
82
87
  scenario_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/markers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/markers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /** unified-diff 一个 hunk 内的一行变更 */
2
+ export interface DiffLine {
3
+ /** '+' 新增 / '-' 删除 */
4
+ kind: '+' | '-';
5
+ /** 行内容(去掉前缀 +/-) */
6
+ content: string;
7
+ /** 该行在「新文件」中的行号(仅 kind='+' 有意义;kind='-' 为 null) */
8
+ newLineNumber: number | null;
9
+ }
10
+ /** 一个 unified-diff hunk */
11
+ export interface DiffHunk {
12
+ /** hunk 头 `@@ -a,b +c,d @@` 中的 c(新文件起始行号,1-indexed) */
13
+ newStart: number;
14
+ /** 本 hunk 内所有新增行(kind='+') */
15
+ added: DiffLine[];
16
+ /** 本 hunk 内所有删除行(kind='-') */
17
+ removed: DiffLine[];
18
+ }
19
+ /**
20
+ * 解析 `git diff` 文本输出为 hunk 列表。
21
+ * @param diffText `git diff HEAD -- <file>` 的 stdout(可为空 → 返回 [])
22
+ */
23
+ export declare function parseUnifiedDiff(diffText: string): DiffHunk[];
24
+ /** 收集所有 hunk 的新增行在「新文件」中的行号(升序去重) */
25
+ export declare function addedLineNumbers(hunks: DiffHunk[]): number[];
26
+ //# sourceMappingURL=unified-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-diff.d.ts","sourceRoot":"","sources":["../../../src/core/parse/unified-diff.ts"],"names":[],"mappings":"AAGA,kCAAkC;AAClC,MAAM,WAAW,QAAQ;IACvB,sBAAsB;IACtB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAChB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,2BAA2B;AAC3B,MAAM,WAAW,QAAQ;IACvB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuC7D;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAQ5D"}