@principles/core 1.286.0 → 1.287.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 (75) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +15 -4
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.d.ts +2 -0
  4. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.d.ts.map +1 -0
  5. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.js +208 -0
  6. package/dist/runtime-v2/__tests__/dreamer-source-pain-provenance.test.js.map +1 -0
  7. package/dist/runtime-v2/__tests__/pitask-metadata.test.js +28 -1
  8. package/dist/runtime-v2/__tests__/pitask-metadata.test.js.map +1 -1
  9. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js +8 -0
  10. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js.map +1 -1
  11. package/dist/runtime-v2/internalization/__tests__/evaluator-formation-context.test.js +2 -2
  12. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.d.ts +2 -0
  13. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.d.ts.map +1 -0
  14. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.js +328 -0
  15. package/dist/runtime-v2/internalization/__tests__/evaluator-pain-reason-echo.test.js.map +1 -0
  16. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js +2 -2
  17. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.d.ts +2 -0
  18. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.d.ts.map +1 -0
  19. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.js +433 -0
  20. package/dist/runtime-v2/internalization/__tests__/evaluator-validator-refeed.test.js.map +1 -0
  21. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js +204 -3
  22. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js.map +1 -1
  23. package/dist/runtime-v2/internalization/dreamer-prompt-builder.js +2 -2
  24. package/dist/runtime-v2/internalization/dreamer-runner.d.ts +19 -3
  25. package/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
  26. package/dist/runtime-v2/internalization/dreamer-runner.js +39 -10
  27. package/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
  28. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +33 -1
  29. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
  30. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +42 -2
  31. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
  32. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +10 -1
  33. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  34. package/dist/runtime-v2/internalization/evaluator-runner.js +65 -1
  35. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  36. package/dist/runtime-v2/internalization/formation-context.d.ts +24 -4
  37. package/dist/runtime-v2/internalization/formation-context.d.ts.map +1 -1
  38. package/dist/runtime-v2/internalization/formation-context.js +5 -2
  39. package/dist/runtime-v2/internalization/formation-context.js.map +1 -1
  40. package/dist/runtime-v2/internalization/owner-decision-review.d.ts +33 -1
  41. package/dist/runtime-v2/internalization/owner-decision-review.d.ts.map +1 -1
  42. package/dist/runtime-v2/internalization/owner-decision-review.js +93 -1
  43. package/dist/runtime-v2/internalization/owner-decision-review.js.map +1 -1
  44. package/dist/runtime-v2/internalization/pitask-metadata.d.ts +15 -0
  45. package/dist/runtime-v2/internalization/pitask-metadata.d.ts.map +1 -1
  46. package/dist/runtime-v2/internalization/pitask-metadata.js +34 -0
  47. package/dist/runtime-v2/internalization/pitask-metadata.js.map +1 -1
  48. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js +56 -0
  49. package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js.map +1 -1
  50. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.d.ts +169 -0
  51. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.d.ts.map +1 -1
  52. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.js +4 -0
  53. package/dist/runtime-v2/owner-decision/owner-decision-view-contract.js.map +1 -1
  54. package/dist/runtime-v2/owner-decision/owner-decision-view.d.ts.map +1 -1
  55. package/dist/runtime-v2/owner-decision/owner-decision-view.js +26 -8
  56. package/dist/runtime-v2/owner-decision/owner-decision-view.js.map +1 -1
  57. package/dist/runtime-v2/pain-to-principle-service.d.ts +7 -0
  58. package/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
  59. package/dist/runtime-v2/pain-to-principle-service.js +1 -0
  60. package/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
  61. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js +34 -0
  62. package/dist/runtime-v2/runner/__tests__/base-peer-runner-agent-draft.test.js.map +1 -1
  63. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  64. package/dist/runtime-v2/runner/base-peer-runner.js +4 -47
  65. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  66. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js +29 -2
  67. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js.map +1 -1
  68. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts.map +1 -1
  69. package/dist/runtime-v2/store/task/sqlite-task-store.js +6 -37
  70. package/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
  71. package/dist/telemetry-event.d.ts +2 -2
  72. package/dist/telemetry-event.d.ts.map +1 -1
  73. package/dist/telemetry-event.js +8 -0
  74. package/dist/telemetry-event.js.map +1 -1
  75. package/package.json +1 -1
@@ -143,6 +143,27 @@ HOW TO USE IT:
143
143
  4. A ${PRINCIPLE_PAIN_MISMATCH_MARKER} finding is NOT a rule defect: by itself it must not flip codeReview dimensions, must not lower the score below what the rule itself merits, and must not appear in requiredChanges. If the rule is sound, judge the rule as sound and let the marked concern carry the principle-level question.
144
144
  5. The diagnosis is EVIDENCE, not truth: it is itself an upstream product of this chain and may mis-attribute. When sourceDiagnosis is absent or you find it untrustworthy, say so in risks, weaken your pain-faithfulness conclusion accordingly, and NEVER base a rejection or a ${PRINCIPLE_PAIN_MISMATCH_MARKER} finding on the ABSENCE of formation evidence alone.
145
145
  6. Do not re-litigate which dreamer proposal should have been selected (the Philosopher critique already decided that — do not revive a proposal the critique rejected); use the proposals only as evidence of what alternatives existed.`;
146
+ /**
147
+ * PRI-644 (PRI-700 factor B wiring): system-channel addendum appended ONLY
148
+ * when `priorValidatorErrors` is present — the same conditional-placement
149
+ * discipline as the PRI-843 formation addendum, so a first attempt stays
150
+ * byte-identical to the pre-PRI-644 prompt. Its content is the evaluator
151
+ * variant of the artificer's "PRIOR OUTPUT-CONTRACT REJECTIONS" block —
152
+ * deliberately NOT a placement mirror: the artificer bakes that block
153
+ * unconditionally into its protocol string, this one is conditional. Phrased
154
+ * for the evaluator's failure mode (BUSINESS validator rejections such as a
155
+ * repair round missing `requirementLedger` — output captured but rejected,
156
+ * then retried with the identical prompt until max_attempts_exceeded).
157
+ */
158
+ export const EVALUATOR_VALIDATOR_FEEDBACK_ADDENDUM = `
159
+
160
+ PRIOR OUTPUT-CONTRACT REJECTIONS (when \`priorValidatorErrors\` is present):
161
+ - Your previous attempt was REJECTED BY THE OUTPUT VALIDATOR before its evaluation was ever recorded — the pipeline never advanced. The \`priorValidatorErrors.errors\` list contains the exact, verbatim rejection reasons.
162
+ - The highest-priority fix is to make your JSON satisfy EVERY listed rejection reason. Re-read each error, map it to the OUTPUT FORMAT and CONSTRAINTS blocks above, and correct the exact fields it names.
163
+ - These errors describe YOUR output's shape and completeness, NOT the implementation plan you are evaluating. Fix the contract violation and do NOT re-judge or change the substance (decision, score, findings) of your previous evaluation unless a listed rejection reason explicitly forces it.
164
+ - When a rejection names a missing field — e.g. \`evaluation.requirementLedger\` or \`evaluation.priorRequirementStatuses\` in a repair round — that field is REQUIRED by the CONVERGENCE CONTRACT: echo EVERY input requirement with its exact id and statement-as-given, plus the status you assigned. Omitting, renumbering, or restating ids is the most common rejection cause.
165
+ - After addressing every listed error, re-check the full OUTPUT FORMAT and CONSTRAINTS blocks once more before emitting.
166
+ `;
146
167
  /**
147
168
  * PRI-843 (SPEC v1.1): bumped v4 → v5. The prompt input gains the optional
148
169
  * `formationContext` block (dreamer proposals + source diagnosis + provenance)
@@ -153,8 +174,15 @@ HOW TO USE IT:
153
174
  * run without formation evidence emits exactly the v4 wire shape plus the new
154
175
  * version string. Existing v4 evaluations stay immutable — the version bump
155
176
  * changes replay/cache identity for future runs only.
177
+ *
178
+ * PRI-644: bumped v5 → v6. The prompt input gains the optional
179
+ * `priorValidatorErrors` block (verbatim validator rejection reasons from the
180
+ * immediately-preceding attempt, PRI-700 factor B) and the system prompt
181
+ * conditionally carries `EVALUATOR_VALIDATOR_FEEDBACK_ADDENDUM`. Additive:
182
+ * same discipline as v5 — a run without validator feedback emits exactly the
183
+ * v5 wire shape plus the new version string.
156
184
  */
157
- export const EVALUATOR_PROMPT_CONTRACT_VERSION = 'evaluator-output-v1.prompt.v5';
185
+ export const EVALUATOR_PROMPT_CONTRACT_VERSION = 'evaluator-output-v1.prompt.v6';
158
186
  export class EvaluatorPromptBuilder {
159
187
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
160
188
  buildPrompt(input) {
@@ -175,6 +203,9 @@ export class EvaluatorPromptBuilder {
175
203
  // PRI-843: only include formationContext when it actually resolved, so
176
204
  // a run without formation evidence keeps the exact pre-PRI-843 payload.
177
205
  ...(input.formationContext !== undefined ? { formationContext: input.formationContext } : {}),
206
+ // PRI-644: only include priorValidatorErrors when the runner carried a
207
+ // fresh record, so first-attempt prompts stay byte-identical.
208
+ ...(input.priorValidatorErrors !== undefined ? { priorValidatorErrors: input.priorValidatorErrors } : {}),
178
209
  promptContractVersion: EVALUATOR_PROMPT_CONTRACT_VERSION,
179
210
  };
180
211
  const message = serializePromptInput(promptInput);
@@ -183,10 +214,19 @@ export class EvaluatorPromptBuilder {
183
214
  // PRI-843: the formation-evidence addendum rides the same system channel
184
215
  // and is appended ONLY when formationContext is present (the scribe
185
216
  // addendum placement discipline — no-formation runs stay byte-identical).
217
+ // PRI-644: the validator-feedback addendum follows the same discipline —
218
+ // appended ONLY when a fresh priorValidatorErrors record was carried.
186
219
  const formationAddendum = input.formationContext !== undefined
187
220
  ? EVALUATOR_FORMATION_EVIDENCE_ADDENDUM
188
221
  : '';
189
- return { message, promptInput, systemPrompt: EVALUATOR_PROTOCOL_INSTRUCTION + formationAddendum + languageDirective };
222
+ const validatorFeedbackAddendum = input.priorValidatorErrors !== undefined
223
+ ? EVALUATOR_VALIDATOR_FEEDBACK_ADDENDUM
224
+ : '';
225
+ return {
226
+ message,
227
+ promptInput,
228
+ systemPrompt: EVALUATOR_PROTOCOL_INSTRUCTION + formationAddendum + validatorFeedbackAddendum + languageDirective,
229
+ };
190
230
  }
191
231
  }
192
232
  //# sourceMappingURL=evaluator-prompt-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ import type { RunHandle } from '../runtime-protocol.js';
28
28
  import type { EvaluatorOutputV1, EvaluatorValidator } from './evaluator-output.js';
29
29
  import type { TaskRecord } from '../task-status.js';
30
30
  import { type PDErrorCategory } from '../error-categories.js';
31
- import { type RepairPayload } from './pitask-metadata.js';
31
+ import { type RepairPayload, type LastValidatorErrors } from './pitask-metadata.js';
32
32
  import { type PreviousEvaluationContext, type HostToolCatalogFacts } from './evaluator-prompt-builder.js';
33
33
  import type { FormationContext } from './formation-context.js';
34
34
  import type { ArtificerHostSemanticContext } from './artificer-prompt-builder.js';
@@ -67,6 +67,15 @@ interface EvaluatorContext {
67
67
  * pre-PRI-843 shape exactly (legacy / degraded compatibility).
68
68
  */
69
69
  readonly formationContext?: FormationContext;
70
+ /**
71
+ * PRI-644 (PRI-700 factor B wiring): verbatim validator rejection reasons
72
+ * from the immediately-preceding attempt, re-fed only when fresh
73
+ * (sourceAttemptCount === leased attempt - 1). Undefined on first attempt
74
+ * and when suppressed — the prompt then keeps its pre-PRI-644 shape exactly.
75
+ * Ephemeral prompt context: NEVER part of contextHash (same posture as the
76
+ * artificer — cache identity covers evidence, not feedback).
77
+ */
78
+ readonly priorValidatorErrors?: LastValidatorErrors;
70
79
  }
71
80
  export type EvaluatorRunnerResultStatus = 'succeeded' | 'failed' | 'retried';
72
81
  export interface EvaluatorRunnerResult {
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,iBAAiB,EAEjB,kBAAkB,EAInB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAkB,KAAK,eAAe,EAAqB,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAA+F,KAAK,aAAa,EAAqE,MAAM,sBAAsB,CAAC;AAQ1N,OAAO,EAAmF,KAAK,yBAAyB,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE3L,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAwB,KAAK,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC5I,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAA+B,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAsBvG,uFAAuF;AACvF,UAAU,gBAAgB;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,aAAa,CAAC;IACjD,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IACxD;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAwJD,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;IAC5D;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC;CAC9C;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;CAC1C;AAED,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,OAAO,GAAG,aAAa,CAAC,CAK3G,CAAC;AAEX,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,GAAG,8BAA8B,CAU7G;AAID;;;;;;;;;GASG;AACH,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,kEAAkE;IAClE,QAAQ,CAAC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IACvD,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,+FAA+F;IAC/F,QAAQ,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IACtD,0DAA0D;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,sEAAsE;IACtE,QAAQ,CAAC,0BAA0B,EAAE,SAAS,WAAW,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7C;;;;;;;;;OASG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3F;AAID,qBAAa,eAAgB,SAAQ,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACtF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAC1D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAyB;IACnE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkE;IACnG,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAC9D,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsC;IAC1E;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAE5D,YAAY,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,sBAAsB,EAiBrE;IAED;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B,IAAI,wBAAwB,IAAI,WAAW,CAAC,eAAe,CAAC,CAE3D;IAEK,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6G5D;IAEK,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAajF;IAED;;;;OAIG;YACW,mBAAmB;IAUjC;;;;;;OAMG;YACW,yBAAyB;IAkGvC;;OAEG;YACW,oBAAoB;IAoC5B,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA8BpH;IAGK,WAAW,CACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAgY9C;IAED;;;;;;;;;OASG;YACW,6BAA6B;IAkN3C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2BjC;;;;;;;;;;;;OAYG;YACW,6BAA6B;IAkB3C;;;;;;;;;;;;;;;;OAgBG;YACW,2BAA2B;IA8BzC;;;;OAIG;IAGH;;;;;OAKG;YACW,2BAA2B;IAmDzC;;;;OAIG;YACW,uBAAuB;IA6CrC,mEAAmE;YACrD,kCAAkC;IAmBhD;;;;;OAKG;IACH,UAAyB,wBAAwB,CAC/C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CA4IrD;IAED;;;OAGG;YACW,6BAA6B;IA2C3C;;;;;;;OAOG;YACW,oCAAoC;IAgHlD;;;;OAIG;YACW,mBAAmB;IAiCjC;;;;;;;;;;;;OAYG;IACH;;;;;;;;;;;;;;;;OAgBG;IACH;;;;;OAKG;YACW,oCAAoC;YAiBpC,sBAAsB;YAqEtB,wBAAwB;IA2OtC;;;;;;;OAOG;IACH,UAAmB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAoBhH;IAED,UAAmB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAKvF;IAED;;;OAGG;IACH,UAAmB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CASpH;IAID;;;;;;;;;;;;;;;;;;OAkBG;YAEW,oBAAoB;IA+BlC;;;;;;;;OAQG;YAEW,0BAA0B;IAkPxC;;;OAGG;IAEH,OAAO,CAAC,sBAAsB;IAyB9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;IA8B7C;;;;;;OAMG;IAEH,OAAO,CAAC,oBAAoB;IAO5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,qBAAqB;IA0D7B;;;;;;;;;;;;;;;OAeG;IAEH,OAAO,CAAC,4BAA4B;IAmFpC;;;;;;;;;OASG;IAEH,OAAO,CAAC,cAAc;IA0DtB;;;;;;;;;;OAUG;YAEW,oBAAoB;IAkNlC;;;;;;;;;;OAUG;YACW,8BAA8B;IAmE5C;;;OAGG;IAEH,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,MAAM,CAAC,QAAQ;IAIvB;;;;;;;;;;;OAWG;YACW,oCAAoC;CA+BnD"}
1
+ {"version":3,"file":"evaluator-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-runner.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { isEvaluatorOutputV2 } from './evaluator-output.js';
3
3
  // Artificer artifact, not from optional LLM output shape.
4
4
  import { assessArtificerCodeBearing } from './artificer-code-bearing.js';
5
5
  import { PDRuntimeError, isPDErrorCategory } from '../error-categories.js';
6
- import { hydratePITaskRecord, createPITaskDiagnosticJson, mergePITaskMetadata, artificerRepairTaskId } from './pitask-metadata.js';
6
+ import { hydratePITaskRecord, createPITaskDiagnosticJson, mergePITaskMetadata, artificerRepairTaskId, parseLastValidatorErrors, isFreshForNextAttempt } from './pitask-metadata.js';
7
7
  import { HUMAN_REVIEW_REASON, planOwnerVerdictOverrideResume, markOwnerResolutionApplied, computeArtifactContentHash, } from './owner-review.js';
8
8
  import { EvaluatorPromptBuilder, deriveRequirementLedger, PRINCIPLE_PAIN_MISMATCH_MARKER } from './evaluator-prompt-builder.js';
9
9
  import { resolveFormationContext } from './formation-context.js';
@@ -251,6 +251,26 @@ export class EvaluatorRunner extends BasePeerRunner {
251
251
  }
252
252
  const piTask = hydratePITaskRecord(task);
253
253
  const deps = piTask?.dependencyTaskIds ?? [];
254
+ // PRI-644 (PRI-700 factor B wiring, mirrors artificer-runner): the
255
+ // previous attempt's verbatim validator rejections are re-fed so attempt
256
+ // N+1 is not a zero-information retry of the same prompt (the repair-
257
+ // round requirementLedger death loop). Freshness comes from the
258
+ // persisted sourceAttemptCount, not runtime state — restart-safe, and
259
+ // suppression stays observable (rc-9).
260
+ const priorValidatorErrors = parseLastValidatorErrors(task.diagnosticJson);
261
+ const attemptIsFresh = priorValidatorErrors !== null
262
+ && isFreshForNextAttempt(priorValidatorErrors, this.currentLeasedAttempt);
263
+ if (priorValidatorErrors !== null && !attemptIsFresh) {
264
+ this.emitEvent('prior_validator_errors_suppressed', taskId, {
265
+ recordedAt: priorValidatorErrors.recordedAt,
266
+ errorCount: priorValidatorErrors.errors.length,
267
+ sourceAttemptCount: priorValidatorErrors.sourceAttemptCount,
268
+ currentAttempt: this.currentLeasedAttempt,
269
+ reason: this.currentLeasedAttempt === undefined
270
+ ? 'no_lease_context'
271
+ : 'stale_source_attempt',
272
+ });
273
+ }
254
274
  if (deps.length === 0) {
255
275
  this.emitEvent('no_dependencies', taskId, {});
256
276
  throw new PDRuntimeError('input_invalid', 'Artificer dependency artifact ID not resolved');
@@ -342,6 +362,7 @@ export class EvaluatorRunner extends BasePeerRunner {
342
362
  ...(dependencyRepairPayload !== undefined ? { dependencyRepairPayload } : {}),
343
363
  ...(previousEvaluation !== undefined ? { previousEvaluation } : {}),
344
364
  ...(formationContext !== undefined ? { formationContext } : {}),
365
+ ...(priorValidatorErrors !== null && attemptIsFresh ? { priorValidatorErrors } : {}),
345
366
  };
346
367
  }
347
368
  }
@@ -529,6 +550,9 @@ export class EvaluatorRunner extends BasePeerRunner {
529
550
  // PRI-843: bounded formation evidence (undefined keeps the prompt payload
530
551
  // byte-identical to its pre-PRI-843 shape).
531
552
  formationContext: context.formationContext,
553
+ // PRI-644: fresh validator rejections from the previous attempt
554
+ // (undefined = first attempt / suppressed → prompt unchanged).
555
+ priorValidatorErrors: context.priorValidatorErrors,
532
556
  });
533
557
  return { message, systemPrompt };
534
558
  }
@@ -2702,11 +2726,13 @@ export class EvaluatorRunner extends BasePeerRunner {
2702
2726
  // ruleContent build so the contract rides in the same contentJson write.
2703
2727
  let resolvedSourcePrincipleId;
2704
2728
  let forwardedIntentContract;
2729
+ let bearerPrincipleContentJson;
2705
2730
  try {
2706
2731
  const principleBearerId = await this.resolvePrincipleBearerArtifact(output, taskId);
2707
2732
  if (principleBearerId) {
2708
2733
  const principleArtifact = await this.artifactStore.getArtifactById(principleBearerId);
2709
2734
  if (principleArtifact) {
2735
+ bearerPrincipleContentJson = principleArtifact.contentJson;
2710
2736
  resolvedSourcePrincipleId = EvaluatorRunner.extractPrincipleIdFromArtifact(principleArtifact);
2711
2737
  let parsedPrincipleContent;
2712
2738
  try {
@@ -2745,6 +2771,39 @@ export class EvaluatorRunner extends BasePeerRunner {
2745
2771
  });
2746
2772
  return null;
2747
2773
  }
2774
+ // PRI-861 (CIL-003 option B): echo the bounded pain-source summary onto the
2775
+ // rule artifact so the RuleHostWriter approval card can show WHY this rule
2776
+ // exists. Connection, not creation: the value is the SAME
2777
+ // resolveFormationContext().sourceDiagnosis.summary projection the PRI-843
2778
+ // prompt path uses (clamp included) — the diagnosis artifact remains the
2779
+ // single source of truth (P4); this layer never re-summarizes and never
2780
+ // fabricates. Resolution is durable (bearer contentJson captured above,
2781
+ // store-backed walk), so fresh/resume/override assemblies are identical.
2782
+ // The resolver's NEVER-throws contract (PRI-838: store failures become
2783
+ // observable events + undefined) is trusted exactly like the prompt-path
2784
+ // caller — a defensive try here would be unreachable dead code. Absence is
2785
+ // design-legal (PRI-530 receipt contract): readers keep their tested
2786
+ // fallback — but it must be observable (rc-9).
2787
+ let painReasonSummary;
2788
+ const dreamerRef = readDreamerArtifactIdFromScribeArtifact(bearerPrincipleContentJson ?? null);
2789
+ const formationContext = await resolveFormationContext({
2790
+ sourceDreamerArtifactId: dreamerRef,
2791
+ artifactStore: this.artifactStore,
2792
+ lookupTask: (id) => this.lookupFormationTask(id),
2793
+ emitEvent: (eventName, eventTaskId, payload) => this.emitEvent(eventName, eventTaskId, payload),
2794
+ taskId,
2795
+ });
2796
+ const projected = formationContext?.sourceDiagnosis?.summary;
2797
+ if (typeof projected === 'string' && projected.trim() !== '') {
2798
+ painReasonSummary = projected.trim();
2799
+ }
2800
+ else {
2801
+ this.emitEvent('pain_reason_summary_skipped', taskId, {
2802
+ runId,
2803
+ reason: dreamerRef === undefined ? 'no_dreamer_lineage_on_scribe' : 'diagnosis_summary_unavailable',
2804
+ nextAction: 'approval_card_keeps_generic_trigger_reason',
2805
+ });
2806
+ }
2748
2807
  const ruleContent = {
2749
2808
  implementationCode,
2750
2809
  goldenTrace: traceBuild.trace,
@@ -2765,6 +2824,11 @@ export class EvaluatorRunner extends BasePeerRunner {
2765
2824
  // the rule artifact self-carries the intent anchor it was validated
2766
2825
  // against (echo of the scribe single source, never a re-derivation).
2767
2826
  ...(forwardedIntentContract !== undefined ? { intentContract: forwardedIntentContract } : {}),
2827
+ // PRI-861: bounded echo of the formation diagnosis summary (presentation
2828
+ // evidence only — no governance authority reads it). Absent when the
2829
+ // chain carries no resolvable diagnosis; readers then keep their
2830
+ // tested fallback wording.
2831
+ ...(painReasonSummary !== undefined ? { painReasonSummary } : {}),
2768
2832
  };
2769
2833
  const ruleArtifactId = `pi-rule-${taskId}-${runId}`;
2770
2834
  const ruleId = `rule-${taskId}`;