@principles/core 1.297.0 → 1.297.1

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 (66) hide show
  1. package/dist/runtime-v2/golden-trace.d.ts.map +1 -1
  2. package/dist/runtime-v2/golden-trace.js +8 -1
  3. package/dist/runtime-v2/golden-trace.js.map +1 -1
  4. package/dist/runtime-v2/index.d.ts +3 -1
  5. package/dist/runtime-v2/index.d.ts.map +1 -1
  6. package/dist/runtime-v2/index.js +2 -1
  7. package/dist/runtime-v2/index.js.map +1 -1
  8. package/dist/runtime-v2/internalization/artificer-intent-preflight.d.ts.map +1 -1
  9. package/dist/runtime-v2/internalization/artificer-intent-preflight.js +26 -95
  10. package/dist/runtime-v2/internalization/artificer-intent-preflight.js.map +1 -1
  11. package/dist/runtime-v2/internalization/bash-risk.d.ts +32 -0
  12. package/dist/runtime-v2/internalization/bash-risk.d.ts.map +1 -0
  13. package/dist/runtime-v2/internalization/bash-risk.js +785 -0
  14. package/dist/runtime-v2/internalization/bash-risk.js.map +1 -0
  15. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +25 -2
  16. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
  17. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +177 -14
  18. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
  19. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  20. package/dist/runtime-v2/internalization/evaluator-runner.js +14 -2
  21. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  22. package/dist/runtime-v2/internalization/internalization-orchestrator.d.ts +47 -0
  23. package/dist/runtime-v2/internalization/internalization-orchestrator.d.ts.map +1 -1
  24. package/dist/runtime-v2/internalization/internalization-orchestrator.js +164 -3
  25. package/dist/runtime-v2/internalization/internalization-orchestrator.js.map +1 -1
  26. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +9 -1
  27. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
  28. package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
  29. package/dist/runtime-v2/internalization/pitask-metadata.d.ts +39 -0
  30. package/dist/runtime-v2/internalization/pitask-metadata.d.ts.map +1 -1
  31. package/dist/runtime-v2/internalization/pitask-metadata.js +59 -0
  32. package/dist/runtime-v2/internalization/pitask-metadata.js.map +1 -1
  33. package/dist/runtime-v2/internalization/rule-source-correction.d.ts +60 -0
  34. package/dist/runtime-v2/internalization/rule-source-correction.d.ts.map +1 -0
  35. package/dist/runtime-v2/internalization/rule-source-correction.js +214 -0
  36. package/dist/runtime-v2/internalization/rule-source-correction.js.map +1 -0
  37. package/dist/runtime-v2/internalization/rulecode-verification-obligations.d.ts.map +1 -1
  38. package/dist/runtime-v2/internalization/rulecode-verification-obligations.js +65 -0
  39. package/dist/runtime-v2/internalization/rulecode-verification-obligations.js.map +1 -1
  40. package/dist/runtime-v2/internalization/scribe-output.d.ts +14 -2
  41. package/dist/runtime-v2/internalization/scribe-output.d.ts.map +1 -1
  42. package/dist/runtime-v2/internalization/scribe-output.js +57 -2
  43. package/dist/runtime-v2/internalization/scribe-output.js.map +1 -1
  44. package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts +13 -1
  45. package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts.map +1 -1
  46. package/dist/runtime-v2/internalization/scribe-prompt-builder.js +15 -3
  47. package/dist/runtime-v2/internalization/scribe-prompt-builder.js.map +1 -1
  48. package/dist/runtime-v2/internalization/scribe-runner.d.ts +34 -0
  49. package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
  50. package/dist/runtime-v2/internalization/scribe-runner.js +128 -4
  51. package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
  52. package/dist/runtime-v2/internalization/textual-basis-anchor.d.ts +72 -0
  53. package/dist/runtime-v2/internalization/textual-basis-anchor.d.ts.map +1 -0
  54. package/dist/runtime-v2/internalization/textual-basis-anchor.js +100 -0
  55. package/dist/runtime-v2/internalization/textual-basis-anchor.js.map +1 -0
  56. package/dist/runtime-v2/store/lifecycle/lease-manager.d.ts.map +1 -1
  57. package/dist/runtime-v2/store/lifecycle/lease-manager.js +11 -2
  58. package/dist/runtime-v2/store/lifecycle/lease-manager.js.map +1 -1
  59. package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
  60. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js +26 -0
  61. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
  62. package/dist/telemetry-event.d.ts +2 -2
  63. package/dist/telemetry-event.d.ts.map +1 -1
  64. package/dist/telemetry-event.js +5 -0
  65. package/dist/telemetry-event.js.map +1 -1
  66. package/package.json +5 -1
@@ -113,6 +113,18 @@ export interface ScribeValidationResult {
113
113
  readonly errors: readonly string[];
114
114
  readonly errorCategory?: string;
115
115
  }
116
+ /**
117
+ * SPEC-PRI-1047 修复 A: Scribe 成功边界的锚定材料入参。可选——缺省时
118
+ * DefaultScribeValidator 跳过锚定检查(与上游材料不可解析时的降级语义
119
+ * 一致:该缺口由 artificer intent preflight 的既有停点兜底)。提供时必须
120
+ * 是与 preflight 同口径(collectUpstreamNormalisedText)计算出的上游材料
121
+ * 归一化文本,ScribeRunner 负责传入,validator 自身不做 I/O。
122
+ */
123
+ export interface ScribeAnchoringOptions {
124
+ readonly upstreamAnchorMaterial?: {
125
+ readonly normalisedText: string;
126
+ } | null;
127
+ }
116
128
  export interface ScribeValidator {
117
129
  /**
118
130
  * Validate untrusted LLM/runtime output.
@@ -120,14 +132,14 @@ export interface ScribeValidator {
120
132
  * Receives `unknown` — must perform runtime validation before
121
133
  * treating as ScribeOutputV1 (ERR-001, ERR-005).
122
134
  */
123
- validate(output: unknown, taskId: string, expectedSourcePhilosopherArtifactId?: string): Promise<ScribeValidationResult>;
135
+ validate(output: unknown, taskId: string, expectedSourcePhilosopherArtifactId?: string, anchoring?: ScribeAnchoringOptions): Promise<ScribeValidationResult>;
124
136
  }
125
137
  export declare class DefaultScribeValidator implements ScribeValidator {
126
138
  private readonly requireRuleCodeContracts;
127
139
  constructor(options?: {
128
140
  readonly requireRuleCodeContracts?: boolean;
129
141
  });
130
- validate(output: unknown, taskId: string, expectedSourcePhilosopherArtifactId?: string): Promise<ScribeValidationResult>;
142
+ validate(output: unknown, taskId: string, expectedSourcePhilosopherArtifactId?: string, anchoring?: ScribeAnchoringOptions): Promise<ScribeValidationResult>;
131
143
  }
132
144
  /**
133
145
  * EP002-R3 (live evidence, glm-5.3-flash structured-output path): the model
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAG1F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAC3C;;;;;;;;;OASG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,2BAA2B,CAAC;IAC3D;;;;;;;;;OASG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnD;AAED,eAAO,MAAM,0BAA0B;;;;;;;EAOrC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;EAGlC,CAAC;AAmBH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB/B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,QAAQ,CACN,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,EACd,mCAAmC,CAAC,EAAE,MAAM,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACpC;AAOD,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IAEnD,YAAY,OAAO,GAAE;QAAE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;KAAO,EAExE;IAEK,QAAQ,CACZ,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,EACd,mCAAmC,CAAC,EAAE,MAAM,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CA0GjC;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oCAAoC,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,CActF"}
1
+ {"version":3,"file":"scribe-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAI1F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAC3C;;;;;;;;;OASG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,2BAA2B,CAAC;IAC3D;;;;;;;;;OASG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnD;AAED,eAAO,MAAM,0BAA0B;;;;;;;EAOrC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;EAGlC,CAAC;AAmBH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB/B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;QAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,QAAQ,CACN,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,EACd,mCAAmC,CAAC,EAAE,MAAM,EAC5C,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACpC;AAOD,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IAEnD,YAAY,OAAO,GAAE;QAAE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;KAAO,EAExE;IAGK,QAAQ,CACZ,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,EACd,mCAAmC,CAAC,EAAE,MAAM,EAC5C,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAiKjC;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oCAAoC,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,CActF"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { Type } from '@sinclair/typebox';
12
12
  import { isValidIntentContractV1, isValidScribeExecutionConditionsV1 } from './intent-contract.js';
13
+ import { collectScribeIntentMaterial, isTextualBasisAnchored, findUndeclaredApprovalDependency } from './textual-basis-anchor.js';
13
14
  export const ScribePrincipleDraftSchema = Type.Object({
14
15
  title: Type.String({ minLength: 1 }),
15
16
  statement: Type.String({ minLength: 1 }),
@@ -67,7 +68,8 @@ export class DefaultScribeValidator {
67
68
  constructor(options = {}) {
68
69
  this.requireRuleCodeContracts = options.requireRuleCodeContracts ?? false;
69
70
  }
70
- async validate(output, taskId, expectedSourcePhilosopherArtifactId) {
71
+ // eslint-disable-next-line @typescript-eslint/max-params -- the 4th param is the optional anchoring material (SPEC-PRI-1047); folding it into an options object would break the established 3-param ScribeValidator call sites
72
+ async validate(output, taskId, expectedSourcePhilosopherArtifactId, anchoring) {
71
73
  const errors = [];
72
74
  if (!isRecord(output)) {
73
75
  return { valid: false, errors: ['Output is not an object'], errorCategory: 'output_invalid' };
@@ -165,11 +167,64 @@ export class DefaultScribeValidator {
165
167
  if (this.requireRuleCodeContracts && !hasExecutionConditions) {
166
168
  errors.push('executionConditions is required for new RuleCode generation');
167
169
  }
170
+ let executionConditionsValid = false;
168
171
  if (hasExecutionConditions) {
169
- if (!isValidScribeExecutionConditionsV1(output.executionConditions)) {
172
+ executionConditionsValid = isValidScribeExecutionConditionsV1(output.executionConditions);
173
+ if (!executionConditionsValid) {
170
174
  errors.push('executionConditions must be { version: 1, requiredFacts: [{ factKind: non-empty string, required: boolean, textualBasis: non-empty string }] }');
171
175
  }
172
176
  }
177
+ // SPEC-PRI-1047 修复 A: Scribe 成功边界锚定检查——与 artificer intent
178
+ // preflight 完全同一判定(textual-basis-anchor.ts)。仅在结构校验通过
179
+ // 且调用方提供了上游锚定材料时执行:整条归一化 textualBasis 必须作为
180
+ // 连续片段出现在「Scribe 意图材料 ∪ 上游材料」内。标签前缀、省略号
181
+ // 跨接、转述与后段编造在此失败(output_invalid → lastValidatorErrors
182
+ // 回喂下一次 attempt),错误引用不再可能先被标记成功。材料未提供 =
183
+ // 上游不可解析/降级,该缺口由 preflight 的既有停点兜底,不是输出缺陷。
184
+ if (this.requireRuleCodeContracts && executionConditionsValid
185
+ && anchoring?.upstreamAnchorMaterial != null
186
+ && anchoring.upstreamAnchorMaterial.normalisedText.length > 0
187
+ && isRecord(output.executionConditions)
188
+ && Array.isArray(output.executionConditions.requiredFacts)) {
189
+ const combinedPool = collectScribeIntentMaterial(output).normalisedText
190
+ + ' ' + anchoring.upstreamAnchorMaterial.normalisedText;
191
+ for (const [index, fact] of output.executionConditions.requiredFacts.entries()) {
192
+ if (!isRecord(fact))
193
+ continue;
194
+ if (fact.required !== true)
195
+ continue;
196
+ if (typeof fact.textualBasis !== 'string' || typeof fact.factKind !== 'string')
197
+ continue;
198
+ if (!isTextualBasisAnchored(fact.textualBasis, combinedPool)) {
199
+ errors.push(`executionConditions.requiredFacts[${index}] (factKind '${fact.factKind}') textualBasis ("${fact.textualBasis.replace(/\s+/g, ' ').slice(0, 120)}") is not a continuous verbatim span of the Owner-attributed material — rewrite it as one continuous original sentence copied from the source (no citation labels, no ellipsis-omitted reconstruction)`);
200
+ }
201
+ }
202
+ }
203
+ // PRI-1047 Owner review R6 #2: 批准依赖声明审计——与 preflight 同一谓词
204
+ // (findUndeclaredApprovalDependency)。修复前 requiredFacts 空数组/
205
+ // required:false 的草案在本边界通过、持久化后在 preflight 死于
206
+ // approval_dependency_undeclared(「Scribe 成功、下一站拒绝」断路复发)。
207
+ // 在此失败可经 lastValidatorErrors 回喂修复。上游材料为空/不可解析时
208
+ // 仍审计 scribe 意图材料池(本边界始终可得);两池均不可得 = 降级,
209
+ // 由 preflight 停点兜底。
210
+ if (this.requireRuleCodeContracts && executionConditionsValid
211
+ && anchoring != null
212
+ && isRecord(output.executionConditions)
213
+ && Array.isArray(output.executionConditions.requiredFacts)) {
214
+ const declaredFacts = output.executionConditions.requiredFacts.flatMap((fact) => {
215
+ if (!isRecord(fact) || typeof fact.factKind !== 'string' || typeof fact.required !== 'boolean')
216
+ return [];
217
+ return [{ factKind: fact.factKind, required: fact.required }];
218
+ });
219
+ const undeclared = findUndeclaredApprovalDependency({
220
+ scribeMaterial: collectScribeIntentMaterial(output),
221
+ upstreamNormalisedText: anchoring.upstreamAnchorMaterial?.normalisedText ?? '',
222
+ requiredFacts: declaredFacts,
223
+ });
224
+ if (undeclared !== null) {
225
+ errors.push(`executionConditions: ${undeclared.pool} material carries approval semantics (${undeclared.fields.join(', ')}) but no REQUIRED approval-kind fact is declared — declare the approval dependency (factKind e.g. 'design_approval', required: true) with its textual basis, or correct the draft text if it overstates the requirement`);
226
+ }
227
+ }
173
228
  // generatedAt — required, non-empty string (ERR-013)
174
229
  if (!Object.hasOwn(output, 'generatedAt') || typeof output.generatedAt !== 'string' || output.generatedAt.trim() === '') {
175
230
  errors.push('generatedAt must be non-empty string');
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scribe-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-output.ts"],"names":[],"mappings":"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"}
@@ -161,7 +161,19 @@ export declare function buildScribeProtocolInstruction(opts?: CoreAxiomBlockOpti
161
161
  * additive; element validation is hand-rolled in DefaultScribeValidator
162
162
  * (present-but-malformed is a hard rejection).
163
163
  */
164
- export declare const SCRIBE_PROMPT_CONTRACT_VERSION = "scribe-output-v1.prompt.v8";
164
+ /**
165
+ * SPEC-PRI-1047 (2026-10-26): bumped v8 → v9. The EXECUTION CONDITIONS
166
+ * textualBasis contract is tightened to the SAME verbatim-contiguous rule the
167
+ * Scribe success boundary now enforces (textual-basis-anchor.ts) and the
168
+ * artificer intent preflight re-checks: one continuous original sentence,
169
+ * no citation labels, no quote wrapping, no ellipsis-bridged reconstruction.
170
+ * Production evidence (run4, 2026-10-26): the "quotes (or precisely cites)"
171
+ * wording let a labeled, ellipsis-omitted paraphrase pass the structural
172
+ * validator and die at the artificer preflight with no repair feedback path.
173
+ * Wire shape unchanged; a run on v9 emits exactly the v8 shape plus the new
174
+ * version string.
175
+ */
176
+ export declare const SCRIBE_PROMPT_CONTRACT_VERSION = "scribe-output-v1.prompt.v9";
165
177
  export declare class ScribePromptBuilder {
166
178
  private readonly coreGrounding;
167
179
  private readonly outputLanguage?;
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-prompt-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,MAAM,CAAC;IACpC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qEAAqE;IACrE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,MAAM,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mCAAmC,yBAAyB,CAAC;AAE1E,eAAO,MAAM,2BAA2B,w1DAgBoC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,GAAE,qBAAqB,GAAG;IAAE,cAAc,CAAC,EAAE,cAAc,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAClG,MAAM,CAwFR;AAED;;;;;;GAMG;AACH;;;;;;GAMG;AACH;;;;;;;;GAQG;AACH;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,8BAA8B,+BAA+B,CAAC;AAE3E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IAEjD,YAAY,IAAI,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,cAAc,CAAA;KAAO,EAGlF;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,wBAAwB,GAAG,uBAAuB,CA2BpE;CACF"}
1
+ {"version":3,"file":"scribe-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-prompt-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,MAAM,CAAC;IACpC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qEAAqE;IACrE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,MAAM,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mCAAmC,yBAAyB,CAAC;AAE1E,eAAO,MAAM,2BAA2B,w1DAgBoC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,GAAE,qBAAqB,GAAG;IAAE,cAAc,CAAC,EAAE,cAAc,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAClG,MAAM,CAwFR;AAED;;;;;;GAMG;AACH;;;;;;GAMG;AACH;;;;;;;;GAQG;AACH;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B,+BAA+B,CAAC;AAE3E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IAEjD,YAAY,IAAI,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,cAAc,CAAA;KAAO,EAGlF;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,wBAAwB,GAAG,uBAAuB,CA2BpE;CACF"}
@@ -89,7 +89,7 @@ ${coreAxiomsBlock}OUTPUT FORMAT (pure JSON, no markdown):
89
89
  "executionConditions": {
90
90
  "version": 1,
91
91
  "requiredFacts": [
92
- {"factKind": "<trusted external fact kind the principle's enforcement depends on, e.g. design_approval>", "required": true, "textualBasis": "<the Owner-attributed text this requirement was read from>"}
92
+ {"factKind": "<trusted external fact kind the principle's enforcement depends on, e.g. design_approval>", "required": true, "textualBasis": "<ONE CONTINUOUS original sentence copied verbatim from the Owner-attributed material — no label prefix, no added quotes, no ellipsis>"}
93
93
  ]
94
94
  },
95
95
  "generatedAt": "<ISO-8601 timestamp>"
@@ -110,7 +110,7 @@ OWNER-SOURCE GROUNDING (applies when formation evidence is present):
110
110
 
111
111
  EXECUTION CONDITIONS (required — SPEC-RULECODE-QUALITY-001 A1):
112
112
  - "executionConditions" declares WHICH trusted external facts the principle's enforcement depends on — facts a per-tool-call rule input can never establish by itself (an Owner approval, an external confirmation, a host-side decision). Rule generation is gated on these being resolvable through a trusted-facts source; the generator can never self-declare them satisfied.
113
- - Ground each entry in the SAME Owner-attributed statements as the contract: textualBasis quotes (or precisely cites) the text that states the requirement. NEVER invent a fact requirement that no Owner-attributed text states, and NEVER omit one that it does state.
113
+ - Ground each entry in the SAME Owner-attributed statements as the contract (the diagnosis evidence notes, philosopher material, or intent-contract anchors carried in your input). VERBATIM CITATION CONTRACT: each "textualBasis" MUST be ONE CONTINUOUS original sentence copied from that material — a deterministic checker requires the whole basis (after normalizing case/whitespace/punctuation) to appear contiguously in the material. Do NOT prefix it with citation labels (e.g. "Owner原文:" / "Owner says:"), do NOT wrap your own quotes around it, do NOT bridge omissions with "…" or "..." or "……", and do NOT paraphrase or extend beyond the original wording — any of these fails validation and the draft is rejected. If the original sentence is long, quote a shorter CONTINUOUS span of it instead of abbreviating the middle. NEVER invent a fact requirement that no Owner-attributed text states, and NEVER omit one that it does state.
114
114
  - factKind vocabulary: use "design_approval" for requirements that an Owner/authority confirm a design BEFORE implementation. Use an empty requiredFacts array ("requiredFacts": []) when the principle is enforceable purely from the observable tool-call input and history window — that is a valid, common answer.
115
115
  - required: true = the fact MUST be resolvable for a faithful rule to exist. Entries with required:false may be omitted entirely.
116
116
  - executionConditions MUST be a nested JSON OBJECT with version exactly 1 — never a JSON-encoded string.
@@ -216,7 +216,19 @@ ${formationEvidenceBlock}${languageDirective}`;
216
216
  * additive; element validation is hand-rolled in DefaultScribeValidator
217
217
  * (present-but-malformed is a hard rejection).
218
218
  */
219
- export const SCRIBE_PROMPT_CONTRACT_VERSION = 'scribe-output-v1.prompt.v8';
219
+ /**
220
+ * SPEC-PRI-1047 (2026-10-26): bumped v8 → v9. The EXECUTION CONDITIONS
221
+ * textualBasis contract is tightened to the SAME verbatim-contiguous rule the
222
+ * Scribe success boundary now enforces (textual-basis-anchor.ts) and the
223
+ * artificer intent preflight re-checks: one continuous original sentence,
224
+ * no citation labels, no quote wrapping, no ellipsis-bridged reconstruction.
225
+ * Production evidence (run4, 2026-10-26): the "quotes (or precisely cites)"
226
+ * wording let a labeled, ellipsis-omitted paraphrase pass the structural
227
+ * validator and die at the artificer preflight with no repair feedback path.
228
+ * Wire shape unchanged; a run on v9 emits exactly the v8 shape plus the new
229
+ * version string.
230
+ */
231
+ export const SCRIBE_PROMPT_CONTRACT_VERSION = 'scribe-output-v1.prompt.v9';
220
232
  export class ScribePromptBuilder {
221
233
  coreGrounding;
222
234
  outputLanguage;
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAG7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAkDlE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,sBAAsB,CAAC;AAE1E,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;4EAgBiC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,IAAI,GAA6F,EAAE;IAEnG,MAAM,EAAE,cAAc,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;IACzE,MAAM,eAAe,GAAG,mBAAmB,CAAC,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACjE,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpF,OAAO;;;;;;;;EAQP,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEf,sBAAsB,GAAG,iBAAiB,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH;;;;;;GAMG;AACH;;;;;;;;GAQG;AACH;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAA4B,CAAC;AAE3E,MAAM,OAAO,mBAAmB;IACb,aAAa,CAAU;IACvB,cAAc,CAAkB;IAEjD,YAAY,IAAI,GAAiE,EAAE;QACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAA+B;QACzC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;QAEnE,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;YACvD,aAAa;YACb,cAAc;YACd,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,KAAK,SAAS;SACxD,CAAC,CAAC;QAEH,MAAM,WAAW,GAAsB;YACrC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,2BAA2B,EAAE,KAAK,CAAC,2BAA2B;YAC9D,GAAG,CAAC,KAAK,CAAC,uBAAuB,KAAK,SAAS;gBAC7C,CAAC,CAAC,EAAE,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;YACP,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,yEAAyE;YACzE,kEAAkE;YAClE,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,qBAAqB,EAAE,8BAA8B;SACtD,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IACnE,CAAC;CACF"}
1
+ {"version":3,"file":"scribe-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAG7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAkDlE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,sBAAsB,CAAC;AAE1E,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;4EAgBiC,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,IAAI,GAA6F,EAAE;IAEnG,MAAM,EAAE,cAAc,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;IACzE,MAAM,eAAe,GAAG,mBAAmB,CAAC,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACjE,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpF,OAAO;;;;;;;;EAQP,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEf,sBAAsB,GAAG,iBAAiB,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH;;;;;;GAMG;AACH;;;;;;;;GAQG;AACH;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAA4B,CAAC;AAE3E,MAAM,OAAO,mBAAmB;IACb,aAAa,CAAU;IACvB,cAAc,CAAkB;IAEjD,YAAY,IAAI,GAAiE,EAAE;QACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAA+B;QACzC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;QAEnE,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;YACvD,aAAa;YACb,cAAc;YACd,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,KAAK,SAAS;SACxD,CAAC,CAAC;QAEH,MAAM,WAAW,GAAsB;YACrC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,2BAA2B,EAAE,KAAK,CAAC,2BAA2B;YAC9D,GAAG,CAAC,KAAK,CAAC,uBAAuB,KAAK,SAAS;gBAC7C,CAAC,CAAC,EAAE,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;YACP,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,yEAAyE;YACzE,kEAAkE;YAClE,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,qBAAqB,EAAE,8BAA8B;SACtD,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IACnE,CAAC;CACF"}
@@ -31,6 +31,7 @@ import type { RunHandle } from '../runtime-protocol.js';
31
31
  import type { ScribeOutputV1, ScribeValidator } from './scribe-output.js';
32
32
  import type { TaskRecord } from '../task-status.js';
33
33
  import { type PDErrorCategory } from '../error-categories.js';
34
+ import { type LastValidatorErrors } from './pitask-metadata.js';
34
35
  import type { FormationContext } from './formation-context.js';
35
36
  import { BasePeerRunner } from '../runner/base-peer-runner.js';
36
37
  import type { PeerRunnerOptions, PeerRunnerDeps, PeerRunnerResult, PeerRunnerValidationResult } from '../runner/peer-runner-types.js';
@@ -56,6 +57,17 @@ interface ScribeContext {
56
57
  * shape exactly (legacy / degraded compatibility).
57
58
  */
58
59
  readonly formationContext?: FormationContext;
60
+ /**
61
+ * PRI-1047 修复 A: 上一次 attempt 的 validator 拒绝全文(读取侧已做信任
62
+ * 边界验证 + 限界)。仅在新鲜度判定通过(sourceAttemptCount === 当前
63
+ * attempt-1,isFreshForNextAttempt)时由 buildContext 携带——修复 attempt
64
+ * 的 prompt 不再与首轮零差异重试。Ephemeral,不回写。
65
+ */
66
+ readonly priorValidatorErrors?: LastValidatorErrors;
67
+ /** SPEC-PRI-1047: 已解析的 philosopher 依赖任务 id(validateOutput 复用 preflight 同口径上游材料走查)。 */
68
+ readonly philosopherTaskId?: string;
69
+ /** SPEC-PRI-1047: 任务的权威通道(intake bridge 写入;validateOutput 只对 code_tool_hook 施加锚定)。 */
70
+ readonly channel?: string | null;
59
71
  }
60
72
  export type ScribeRunnerResultStatus = 'succeeded' | 'failed' | 'retried';
61
73
  export interface ScribeRunnerResult {
@@ -127,10 +139,32 @@ export declare class ScribeRunner extends BasePeerRunner<ScribeContext, ScribeOu
127
139
  * identified from artifact records alone (see formation-context.ts).
128
140
  */
129
141
  private lookupFormationTask;
142
+ /**
143
+ * PRI-1047 修复 A: 读取上一 attempt 的 lastValidatorErrors 并做新鲜度
144
+ * 判定(isFreshForNextAttempt,sourceAttemptCount === 当前 leased attempt-1)。
145
+ * 陈旧/缺 lease 时不回喂,仅发一个 suppression 事件(rc-9)——跨 epoch
146
+ * (reopen 后 attemptCount 归零)旧错误永不混入新轮(rc-7)。
147
+ */
148
+ private readFreshPriorValidatorErrors;
149
+ /**
150
+ * SPEC-PRI-1047 修复 A: 与 artificer intent preflight 完全同口径的上游
151
+ * 材料解析(collectUpstreamNormalisedText:philosopher 意图字段 + PRI-1018
152
+ * formation 诊断 evidence notes,含 philosopher↔scribe dreamer 血缘与
153
+ * pain lineage 校验)。读取失败/不可解析 → 返回 undefined 并发事件
154
+ * (rc-9),锚定检查降级由 preflight 既有停点兜底。
155
+ */
156
+ private resolveUpstreamAnchorMaterial;
130
157
  invokeRuntime(taskId: string, context: ScribeContext): Promise<RunHandle>;
131
158
  /** 修订轮反馈 (P0-E): 读取任务元数据 revisionFeedback, 缺失返回 null */
132
159
  private resolveRevisionFeedback;
133
160
  validateOutput(output: unknown, taskId: string, context: ScribeContext): Promise<PeerRunnerValidationResult>;
161
+ /**
162
+ * PRI-1047 修复 A: 成功后的清理——任务成功时定点删除 diagnosticJson 顶层
163
+ * lastValidatorErrors 键(不再把上一轮拒绝留在已成功任务上;新鲜度判定
164
+ * 本已屏蔽,这是显式清理要求)。CAS 失败仅发事件、不阻断成功(rc-9;
165
+ * 读取侧 sourceAttemptCount 新鲜度仍是正确性兜底)。
166
+ */
167
+ private clearLastValidatorErrorsOnSuccess;
134
168
  succeedTask(taskId: string, runId: string, output: ScribeOutputV1, task: TaskRecord, contextHash: string, context: ScribeContext): Promise<PeerRunnerResult<ScribeOutputV1>>;
135
169
  /**
136
170
  * I2 — resolve the ledger principle id for chain stamping.
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { normalizeStringEncodedIntentContract } from './scribe-output.js';
2
2
  import { PDRuntimeError, isPDErrorCategory } from '../error-categories.js';
3
- import { hydratePITaskRecord } from './pitask-metadata.js';
3
+ import { hydratePITaskRecord, isFreshForNextAttempt, parseLastValidatorErrors, parseSeedSourcePainId } from './pitask-metadata.js';
4
4
  import { ScribePromptBuilder } from './scribe-prompt-builder.js';
5
5
  import { resolveFormationContext } from './formation-context.js';
6
+ import { collectUpstreamNormalisedText } from './artificer-intent-preflight.js';
6
7
  import { reconcileLineageEcho } from './peer-runner-contracts.js';
7
8
  import { BasePeerRunner } from '../runner/base-peer-runner.js';
8
9
  import { candidateIdFromDreamerSeed, candidateIdFromDreamerTaskId, } from '../activation/ledger-identity.js';
@@ -170,12 +171,18 @@ export class ScribeRunner extends BasePeerRunner {
170
171
  ]
171
172
  : []),
172
173
  ];
174
+ // PRI-1047 修复 A: 携带新鲜的上一轮 validator 拒绝(镜像
175
+ // ArtificerRunner 的 priorValidatorErrors 消费模式)。
176
+ const priorValidatorErrors = this.readFreshPriorValidatorErrors(taskId, task);
173
177
  const context = {
174
178
  contextHash: BasePeerRunner.hashContextRefs(contextRefs),
175
179
  philosopherArtifact: firstArtifact.contentJson,
176
180
  sourcePhilosopherArtifactId: firstArtifact.artifactId,
177
181
  sourceDreamerArtifactId,
178
182
  ...(formationContext !== undefined ? { formationContext } : {}),
183
+ philosopherTaskId: depId,
184
+ channel: piTask?.channel ?? null,
185
+ ...(priorValidatorErrors !== undefined ? { priorValidatorErrors } : {}),
179
186
  };
180
187
  return this.ledgerIdentity?.resolveForCandidate
181
188
  ? { ...context, identityAtStart: await this.resolveCurrentIdentity(context) } : context;
@@ -200,6 +207,80 @@ export class ScribeRunner extends BasePeerRunner {
200
207
  dependencyTaskIds: hydratePITaskRecord(task)?.dependencyTaskIds ?? [],
201
208
  };
202
209
  }
210
+ /**
211
+ * PRI-1047 修复 A: 读取上一 attempt 的 lastValidatorErrors 并做新鲜度
212
+ * 判定(isFreshForNextAttempt,sourceAttemptCount === 当前 leased attempt-1)。
213
+ * 陈旧/缺 lease 时不回喂,仅发一个 suppression 事件(rc-9)——跨 epoch
214
+ * (reopen 后 attemptCount 归零)旧错误永不混入新轮(rc-7)。
215
+ */
216
+ readFreshPriorValidatorErrors(taskId, task) {
217
+ const record = parseLastValidatorErrors(task.diagnosticJson);
218
+ if (record === null)
219
+ return undefined;
220
+ if (!isFreshForNextAttempt(record, this.currentLeasedAttempt)) {
221
+ this.emitEvent('prior_validator_errors_suppressed', taskId, {
222
+ recordedAt: record.recordedAt,
223
+ errorCount: record.errors.length,
224
+ sourceAttemptCount: record.sourceAttemptCount,
225
+ currentAttempt: this.currentLeasedAttempt,
226
+ reason: this.currentLeasedAttempt === undefined
227
+ ? 'no_lease_context'
228
+ : 'stale_for_current_attempt',
229
+ });
230
+ return undefined;
231
+ }
232
+ return record;
233
+ }
234
+ /**
235
+ * SPEC-PRI-1047 修复 A: 与 artificer intent preflight 完全同口径的上游
236
+ * 材料解析(collectUpstreamNormalisedText:philosopher 意图字段 + PRI-1018
237
+ * formation 诊断 evidence notes,含 philosopher↔scribe dreamer 血缘与
238
+ * pain lineage 校验)。读取失败/不可解析 → 返回 undefined 并发事件
239
+ * (rc-9),锚定检查降级由 preflight 既有停点兜底。
240
+ */
241
+ async resolveUpstreamAnchorMaterial(taskId, context, candidateOutput) {
242
+ if (context.philosopherTaskId === undefined)
243
+ return undefined;
244
+ let material;
245
+ try {
246
+ material = await collectUpstreamNormalisedText(async (depId) => this.stateManager.getTask(depId), (sourceTaskId) => this.artifactStore.listBySourceTaskId(sourceTaskId), {
247
+ scribeDependencyTaskIds: [context.philosopherTaskId],
248
+ formationSource: {
249
+ scribeContentJson: JSON.stringify(candidateOutput),
250
+ artifactStore: this.artifactStore,
251
+ lookupTask: async (formationTaskId) => {
252
+ const task = await this.stateManager.getTask(formationTaskId);
253
+ if (!task)
254
+ return null;
255
+ const hydrated = hydratePITaskRecord(task);
256
+ return {
257
+ taskKind: task.taskKind,
258
+ status: task.status,
259
+ dependencyTaskIds: hydrated?.dependencyTaskIds ?? [],
260
+ canonicalSourcePainId: parseSeedSourcePainId(task.diagnosticJson),
261
+ };
262
+ },
263
+ taskId,
264
+ },
265
+ });
266
+ }
267
+ catch (error) {
268
+ this.emitEvent('anchor_material_unavailable', taskId, {
269
+ reason: 'upstream_material_read_failed',
270
+ errorMessage: error instanceof Error ? error.message : String(error),
271
+ });
272
+ return undefined;
273
+ }
274
+ // rc-9(SPEC §3.2):collectUpstreamNormalisedText 返回 null 的每一种
275
+ // 不可解析形态(philosopher 工件损坏 / dreamer 血缘错配 / pain 血缘
276
+ // 错配 / 空材料池)同样发事件——锚定降级必须可观测,不能只在抛错时可见。
277
+ if (material === null) {
278
+ this.emitEvent('anchor_material_unavailable', taskId, {
279
+ reason: 'upstream_material_unresolvable',
280
+ });
281
+ }
282
+ return material;
283
+ }
203
284
  async invokeRuntime(taskId, context) {
204
285
  const { coreGrounding } = this.resolvedOptions;
205
286
  let parsedPhilosopherArtifact;
@@ -228,9 +309,14 @@ export class ScribeRunner extends BasePeerRunner {
228
309
  // Rollout needs_revision 修订轮反馈 (P0-E): 任务元数据带 revisionFeedback 时
229
310
  // 注入 prompt,让 scribe 针对性修订而非盲目重写。缺失 = 首轮,行为不变。
230
311
  const revisionFeedback = await this.resolveRevisionFeedback(taskId);
312
+ // PRI-1047 修复 A: 新鲜的上一轮 validator 拒绝全文回喂(字段级锚定/
313
+ // 结构错误),修复 attempt 不再与首轮零差异重试(EP-05)。
314
+ const priorErrorsBlock = context.priorValidatorErrors !== undefined
315
+ ? `\n\n<previous_validation_errors>\nYour previous attempt was REJECTED by the deterministic validator with these exact errors (fix every one of them; the same material is re-checked):\n${context.priorValidatorErrors.errors.map((error) => `- ${error}`).join('\n')}\n</previous_validation_errors>`
316
+ : '';
231
317
  const finalMessage = revisionFeedback
232
- ? `${message}\n\n<revision_feedback>\n${revisionFeedback}\n</revision_feedback>`
233
- : message;
318
+ ? `${message}\n\n<revision_feedback>\n${revisionFeedback}\n</revision_feedback>${priorErrorsBlock}`
319
+ : `${message}${priorErrorsBlock}`;
234
320
  return this.runtimeAdapter.startRun({
235
321
  agentSpec: { agentId: this.resolvedOptions.agentId, schemaVersion: 'v1' },
236
322
  taskRef: { taskId },
@@ -256,7 +342,15 @@ export class ScribeRunner extends BasePeerRunner {
256
342
  }
257
343
  }
258
344
  async validateOutput(output, taskId, context) {
259
- const result = await this.validator.validate(output, taskId, context.sourcePhilosopherArtifactId);
345
+ // SPEC-PRI-1047 修复 A: code_tool_hook 渠道在成功边界前用与 preflight
346
+ // 同口径的上游材料执行锚定检查——错误引用不能先被标成功。上游材料
347
+ // 不可解析时降级跳过(事件可观测),preflight 既有停点兜底。
348
+ let anchoring;
349
+ if (context.channel === 'code_tool_hook') {
350
+ const upstream = await this.resolveUpstreamAnchorMaterial(taskId, context, output);
351
+ anchoring = { upstreamAnchorMaterial: upstream ?? null };
352
+ }
353
+ const result = await this.validator.validate(output, taskId, context.sourcePhilosopherArtifactId, anchoring);
260
354
  // Trust-boundary: validator is an injected dependency returning `string | undefined`
261
355
  // for errorCategory. We must not `as`-cast; validate at runtime (ERR-001, ERR-005).
262
356
  const rawCategory = result.errorCategory;
@@ -281,12 +375,42 @@ export class ScribeRunner extends BasePeerRunner {
281
375
  errorCategory,
282
376
  };
283
377
  }
378
+ /**
379
+ * PRI-1047 修复 A: 成功后的清理——任务成功时定点删除 diagnosticJson 顶层
380
+ * lastValidatorErrors 键(不再把上一轮拒绝留在已成功任务上;新鲜度判定
381
+ * 本已屏蔽,这是显式清理要求)。CAS 失败仅发事件、不阻断成功(rc-9;
382
+ * 读取侧 sourceAttemptCount 新鲜度仍是正确性兜底)。
383
+ */
384
+ async clearLastValidatorErrorsOnSuccess(taskId, task) {
385
+ if (task.diagnosticJson === null || task.diagnosticJson === undefined)
386
+ return;
387
+ let parsed;
388
+ try {
389
+ parsed = JSON.parse(task.diagnosticJson);
390
+ }
391
+ catch {
392
+ return;
393
+ }
394
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
395
+ return;
396
+ if (!Object.hasOwn(parsed, 'lastValidatorErrors'))
397
+ return;
398
+ Reflect.deleteProperty(parsed, 'lastValidatorErrors');
399
+ const updated = await this.stateManager.updateTaskIfDiagnosticJsonUnchanged(taskId, task.diagnosticJson, { diagnosticJson: JSON.stringify(parsed) });
400
+ if (!updated) {
401
+ this.emitEvent('last_validator_errors_cleanup_conflict', taskId, {
402
+ reason: 'cas_lost_to_concurrent_writer',
403
+ });
404
+ }
405
+ }
284
406
  // eslint-disable-next-line @typescript-eslint/max-params
285
407
  async succeedTask(taskId, runId, output, task, contextHash, context) {
286
408
  // Lineage consistency: sourcePhilosopherArtifactId must match buildContext result (ERR-004).
287
409
  if (output.sourcePhilosopherArtifactId !== context.sourcePhilosopherArtifactId) {
288
410
  throw new PDRuntimeError('output_invalid', `sourcePhilosopherArtifactId mismatch: expected ${context.sourcePhilosopherArtifactId}, got ${output.sourcePhilosopherArtifactId}`);
289
411
  }
412
+ // PRI-1047 修复 A: 成功后清理上一轮 validator 拒绝记录。
413
+ await this.clearLastValidatorErrorsOnSuccess(taskId, task);
290
414
  // Store output before marking succeeded
291
415
  try {
292
416
  await this.stateManager.updateRunOutput(runId, JSON.stringify(output));