@principles/core 1.151.0 → 1.152.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 (117) hide show
  1. package/dist/runtime-v2/__tests__/adversarial-loop.test.d.ts +2 -0
  2. package/dist/runtime-v2/__tests__/adversarial-loop.test.d.ts.map +1 -0
  3. package/dist/runtime-v2/__tests__/adversarial-loop.test.js +435 -0
  4. package/dist/runtime-v2/__tests__/adversarial-loop.test.js.map +1 -0
  5. package/dist/runtime-v2/__tests__/architecture-regression.test.js +5 -0
  6. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.d.ts +2 -0
  8. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.d.ts.map +1 -0
  9. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.js +169 -0
  10. package/dist/runtime-v2/__tests__/build-golden-trace-from-artificer.test.js.map +1 -0
  11. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.d.ts +2 -0
  12. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.d.ts.map +1 -0
  13. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js +815 -0
  14. package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js.map +1 -0
  15. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js +6 -0
  16. package/dist/runtime-v2/__tests__/internalization-peer-runner-contracts.test.js.map +1 -1
  17. package/dist/runtime-v2/__tests__/pitask-metadata.test.js +4 -0
  18. package/dist/runtime-v2/__tests__/pitask-metadata.test.js.map +1 -1
  19. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.d.ts +2 -0
  20. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.d.ts.map +1 -0
  21. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js +510 -0
  22. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js.map +1 -0
  23. package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts +47 -0
  24. package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -0
  25. package/dist/runtime-v2/adapter/artificer-l2-adapter.js +307 -0
  26. package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -0
  27. package/dist/runtime-v2/adversarial-loop.d.ts +65 -0
  28. package/dist/runtime-v2/adversarial-loop.d.ts.map +1 -0
  29. package/dist/runtime-v2/adversarial-loop.js +203 -0
  30. package/dist/runtime-v2/adversarial-loop.js.map +1 -0
  31. package/dist/runtime-v2/golden-trace.d.ts +30 -0
  32. package/dist/runtime-v2/golden-trace.d.ts.map +1 -1
  33. package/dist/runtime-v2/golden-trace.js +57 -0
  34. package/dist/runtime-v2/golden-trace.js.map +1 -1
  35. package/dist/runtime-v2/index.d.ts +10 -6
  36. package/dist/runtime-v2/index.d.ts.map +1 -1
  37. package/dist/runtime-v2/index.js +7 -3
  38. package/dist/runtime-v2/index.js.map +1 -1
  39. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.d.ts +2 -0
  40. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.d.ts.map +1 -0
  41. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.js +139 -0
  42. package/dist/runtime-v2/internalization/__tests__/adversarial-case.test.js.map +1 -0
  43. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.d.ts +2 -0
  44. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.d.ts.map +1 -0
  45. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js +62 -0
  46. package/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js.map +1 -0
  47. package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.d.ts +2 -0
  48. package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.d.ts.map +1 -0
  49. package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.js +249 -0
  50. package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.js.map +1 -0
  51. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.d.ts +2 -0
  52. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.d.ts.map +1 -0
  53. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js +24 -0
  54. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js.map +1 -0
  55. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +2 -2
  56. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
  57. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.d.ts +2 -0
  58. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.d.ts.map +1 -0
  59. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.js +209 -0
  60. package/dist/runtime-v2/internalization/__tests__/evaluator-output-v2.test.js.map +1 -0
  61. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.d.ts +2 -0
  62. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.d.ts.map +1 -0
  63. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.js +125 -0
  64. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder-v2.test.js.map +1 -0
  65. package/dist/runtime-v2/internalization/adversarial-case.d.ts +32 -0
  66. package/dist/runtime-v2/internalization/adversarial-case.d.ts.map +1 -0
  67. package/dist/runtime-v2/internalization/adversarial-case.js +68 -0
  68. package/dist/runtime-v2/internalization/adversarial-case.js.map +1 -0
  69. package/dist/runtime-v2/internalization/adversarial-feedback.d.ts +23 -0
  70. package/dist/runtime-v2/internalization/adversarial-feedback.d.ts.map +1 -0
  71. package/dist/runtime-v2/internalization/adversarial-feedback.js +20 -0
  72. package/dist/runtime-v2/internalization/adversarial-feedback.js.map +1 -0
  73. package/dist/runtime-v2/internalization/artificer-output.d.ts +42 -0
  74. package/dist/runtime-v2/internalization/artificer-output.d.ts.map +1 -1
  75. package/dist/runtime-v2/internalization/artificer-output.js +147 -0
  76. package/dist/runtime-v2/internalization/artificer-output.js.map +1 -1
  77. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +10 -2
  78. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
  79. package/dist/runtime-v2/internalization/artificer-prompt-builder.js +26 -3
  80. package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
  81. package/dist/runtime-v2/internalization/artificer-runner.d.ts +7 -0
  82. package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  83. package/dist/runtime-v2/internalization/artificer-runner.js +11 -2
  84. package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  85. package/dist/runtime-v2/internalization/evaluator-output.d.ts +63 -0
  86. package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  87. package/dist/runtime-v2/internalization/evaluator-output.js +158 -0
  88. package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  89. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +8 -1
  90. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
  91. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +16 -3
  92. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
  93. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +82 -2
  94. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  95. package/dist/runtime-v2/internalization/evaluator-runner.js +496 -4
  96. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  97. package/dist/runtime-v2/internalization/index.d.ts +9 -4
  98. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  99. package/dist/runtime-v2/internalization/index.js +6 -2
  100. package/dist/runtime-v2/internalization/index.js.map +1 -1
  101. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +2 -0
  102. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
  103. package/dist/runtime-v2/internalization/peer-runner-contracts.js +19 -9
  104. package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
  105. package/dist/runtime-v2/internalization/pitask-metadata.d.ts +7 -0
  106. package/dist/runtime-v2/internalization/pitask-metadata.d.ts.map +1 -1
  107. package/dist/runtime-v2/internalization/pitask-metadata.js +15 -5
  108. package/dist/runtime-v2/internalization/pitask-metadata.js.map +1 -1
  109. package/dist/runtime-v2/internalization/prompt-serializer.d.ts +3 -0
  110. package/dist/runtime-v2/internalization/prompt-serializer.d.ts.map +1 -0
  111. package/dist/runtime-v2/internalization/prompt-serializer.js +22 -0
  112. package/dist/runtime-v2/internalization/prompt-serializer.js.map +1 -0
  113. package/dist/telemetry-event.d.ts +2 -2
  114. package/dist/telemetry-event.d.ts.map +1 -1
  115. package/dist/telemetry-event.js +21 -0
  116. package/dist/telemetry-event.js.map +1 -1
  117. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
+ import { serializePromptInput } from './prompt-serializer.js';
1
2
  export const ARTIFICER_PROTOCOL_INSTRUCTION = `You are an Artificer agent in a principle internalization pipeline. Your role is to transform the Scribe's formal principle draft into an implementation-oriented plan with concrete changes, tests, and rollout notes.
2
3
 
3
4
  PROTOCOL:
4
5
  1. Review the scribeArtifact to understand the formal principle draft
5
- 2. Transform the principle draft into an implementation plan with summary, target surface, specific changes, test requirements, and rollout notes
6
+ 2. Transform the principle draft into an implementation plan and executable RuleHost code
6
7
  3. Preserve the lineage trace from scribe, philosopher, and dreamer artifacts
7
8
  4. Identify risks associated with implementing this principle
8
9
  5. The implementation plan should be concrete enough to guide code changes, not just philosophical
@@ -25,6 +26,12 @@ OUTPUT FORMAT (pure JSON, no markdown):
25
26
  "dreamerArtifactId": "<from scribe artifact if available, or omit>"
26
27
  },
27
28
  "risks": ["<risk 1>", "<risk 2>"],
29
+ "implementationCode": "function evaluate(input, helpers) { ... }",
30
+ "goldenTraceCases": [
31
+ {"caseId":"negative-1","kind":"negative","toolName":"write_file","params":{"path":"/system/file"},"expectedDecision":"block"},
32
+ {"caseId":"positive-1","kind":"positive","toolName":"write_file","params":{"path":"/workspace/file"},"expectedDecision":"allow"}
33
+ ],
34
+ "affectedTools": ["write_file"],
28
35
  "generatedAt": "<ISO-8601 timestamp>"
29
36
  }
30
37
 
@@ -42,8 +49,19 @@ CONSTRAINTS:
42
49
  - sourceTrace.dreamerArtifactId is optional — include only if available from scribe artifact
43
50
  - risks MUST be an array of strings (can be empty if no risks identified)
44
51
  - generatedAt MUST be the current ISO-8601 timestamp (use the actual current time, NOT a placeholder)
52
+ - implementationCode MUST define exactly function evaluate(input, helpers) and return { decision, matched, reason }
53
+ - input.action contains toolName, normalizedPath, and paramsSummary; inspect only these RuleHost inputs
54
+ - implementationCode MUST be deterministic and self-contained: no imports, require, eval, Function, I/O, network, timers, Date.now, or randomness
55
+ - goldenTraceCases MUST contain 2-10 cases with at least one positive allow case and one negative block/propose_correction case
56
+ - propose_correction cases MUST include expectedProposedParams and expectedApplicationMode (shadow or live)
57
+ - affectedTools MUST contain the non-empty tool names the rule can match
58
+
59
+ PRIOR ADVERSARIAL FAILURES (when \`adversarialFeedback\` is present):
60
+ - This is a RETRY. A prior version of your generated code was reviewed and failed adversarial sandbox replay.
61
+ - The \`adversarialFeedback\` field lists the specific cases that failed, each with the attack type, the expected vs actual decision, and a rationale.
62
+ - You MUST address each listed failure specifically — do not regenerate blind. Adjust the matcher/logic so the failed cases produce the expected decision while preserving the cases that previously passed.
45
63
  `;
46
- export const ARTIFICER_PROMPT_CONTRACT_VERSION = 'artificer-output-v1.prompt.v1';
64
+ export const ARTIFICER_PROMPT_CONTRACT_VERSION = 'artificer-output-v2.prompt.v1';
47
65
  export class ArtificerPromptBuilder {
48
66
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
49
67
  buildPrompt(input) {
@@ -54,8 +72,13 @@ export class ArtificerPromptBuilder {
54
72
  scribeArtifact: input.scribeArtifact,
55
73
  artificerInstruction: ARTIFICER_PROTOCOL_INSTRUCTION,
56
74
  promptContractVersion: ARTIFICER_PROMPT_CONTRACT_VERSION,
75
+ // Only include adversarialFeedback when present + non-empty, so
76
+ // Round-1 prompts stay backward-compatible (test asserts absence).
77
+ ...(typeof input.adversarialFeedback === 'string' && input.adversarialFeedback.trim() !== ''
78
+ ? { adversarialFeedback: input.adversarialFeedback }
79
+ : {}),
57
80
  };
58
- const message = JSON.stringify(promptInput);
81
+ const message = serializePromptInput(promptInput);
59
82
  return { message, promptInput };
60
83
  }
61
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artificer-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-prompt-builder.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C7C,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,+BAA+B,CAAC;AAEjF,MAAM,OAAO,sBAAsB;IACjC,qEAAqE;IACrE,WAAW,CAAC,KAAkC;QAC5C,MAAM,WAAW,GAAyB;YACxC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,oBAAoB,EAAE,8BAA8B;YACpD,qBAAqB,EAAE,iCAAiC;SACzD,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"artificer-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA+B9D,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D7C,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,+BAA+B,CAAC;AAEjF,MAAM,OAAO,sBAAsB;IACjC,qEAAqE;IACrE,WAAW,CAAC,KAAkC;QAC5C,MAAM,WAAW,GAAyB;YACxC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,oBAAoB,EAAE,8BAA8B;YACpD,qBAAqB,EAAE,iCAAiC;YACxD,gEAAgE;YAChE,mEAAmE;YACnE,GAAG,CAAC,OAAO,KAAK,CAAC,mBAAmB,KAAK,QAAQ,IAAI,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC1F,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE;gBACpD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAElD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -43,6 +43,13 @@ interface ArtificerContext {
43
43
  readonly contextHash: string;
44
44
  readonly scribeArtifact: string | null;
45
45
  readonly sourceScribeArtifactId: string | null;
46
+ /**
47
+ * Prior adversarial replay failures (PRI-428). Non-null only on Round-2+
48
+ * retries inside runAdversarialLoop, read from the task's
49
+ * PITaskMetadata.adversarialFeedback. Forwarded to the prompt builder so the
50
+ * LLM can make targeted corrections.
51
+ */
52
+ readonly adversarialFeedback: string | null;
46
53
  }
47
54
  export type ArtificerRunnerResultStatus = 'succeeded' | 'failed' | 'retried';
48
55
  export interface ArtificerRunnerResult {
@@ -1 +1 @@
1
- {"version":3,"file":"artificer-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artificer-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-runner.ts"],"names":[],"mappings":"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"}
@@ -43,9 +43,16 @@ export class ArtificerRunner extends BasePeerRunner {
43
43
  }
44
44
  const piTask = hydratePITaskRecord(task);
45
45
  const deps = piTask?.dependencyTaskIds ?? [];
46
+ // PRI-428: carry prior adversarial replay failures into the prompt when
47
+ // this is a Round-2+ retry. Validated as non-empty string by the metadata
48
+ // parser; null when absent (Round 1 / non-loop invocations).
49
+ const adversarialFeedback = typeof piTask?.adversarialFeedback === 'string'
50
+ && piTask.adversarialFeedback.trim() !== ''
51
+ ? piTask.adversarialFeedback
52
+ : null;
46
53
  if (deps.length === 0) {
47
54
  this.emitEvent('no_dependencies', taskId, {});
48
- return { contextHash: 'empty', scribeArtifact: null, sourceScribeArtifactId: null };
55
+ return { contextHash: 'empty', scribeArtifact: null, sourceScribeArtifactId: null, adversarialFeedback };
49
56
  }
50
57
  for (const depId of deps) {
51
58
  const depTask = await this.stateManager.getTask(depId);
@@ -74,11 +81,12 @@ export class ArtificerRunner extends BasePeerRunner {
74
81
  contextHash: BasePeerRunner.hashContextRefs([artifactRef]),
75
82
  scribeArtifact: firstArtifact.contentJson,
76
83
  sourceScribeArtifactId: firstArtifact.artifactId,
84
+ adversarialFeedback,
77
85
  };
78
86
  }
79
87
  }
80
88
  this.emitEvent('no_scribe_artifact', taskId, {});
81
- return { contextHash: 'empty', scribeArtifact: null, sourceScribeArtifactId: null };
89
+ return { contextHash: 'empty', scribeArtifact: null, sourceScribeArtifactId: null, adversarialFeedback };
82
90
  }
83
91
  async invokeRuntime(taskId, context) {
84
92
  if (!context.scribeArtifact || !context.sourceScribeArtifactId) {
@@ -97,6 +105,7 @@ export class ArtificerRunner extends BasePeerRunner {
97
105
  contextHash: context.contextHash,
98
106
  scribeArtifact: scribeArtifactInput,
99
107
  sourceScribeArtifactId: context.sourceScribeArtifactId,
108
+ adversarialFeedback: context.adversarialFeedback ?? undefined,
100
109
  });
101
110
  return this.runtimeAdapter.startRun({
102
111
  agentSpec: { agentId: this.resolvedOptions.agentId, schemaVersion: 'v1' },
@@ -1 +1 @@
1
- {"version":3,"file":"artificer-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artificer-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/artificer-runner.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,cAAc,EAAwB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AA6D/D,MAAM,gCAAgC,GAA4E;IAChH,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,OAAO;IAClB,kBAAkB,EAAE,CAAC;IACrB,OAAO,EAAE,WAAW;CACZ,CAAC;AAEX,MAAM,UAAU,6BAA6B,CAAC,OAA+B;IAC3E,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,gCAAgC,CAAC,cAAc;QACzF,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,gCAAgC,CAAC,SAAS;QAC1E,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,gCAAgC,CAAC,kBAAkB;QACrG,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,gCAAgC,CAAC,OAAO;KACrE,CAAC;AACJ,CAAC;AAQD,gFAAgF;AAEhF,MAAM,OAAO,eAAgB,SAAQ,cAAmD;IACrE,SAAS,CAAqB;IAE/C,YAAY,IAAyB,EAAE,OAA0B;QAC/D,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;YACnB,UAAU,EAAE,WAAW;YACvB,gBAAgB,EAAE,WAAW;YAC7B,cAAc,EAAE,WAAW;YAC3B,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,8EAA8E;IAE9E,qEAAqE;IACrE,IAAI,wBAAwB;QAC1B,OAAO,IAAI,GAAG,CAAC,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,QAAQ,MAAM,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAAC;QAE7C,wEAAwE;QACxE,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,mBAAmB,GAAG,OAAO,MAAM,EAAE,mBAAmB,KAAK,QAAQ;eACtE,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE;YAC3C,CAAC,CAAC,MAAM,CAAC,mBAAmB;YAC5B,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;QAC3G,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAAE,SAAS;YAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,MAAM,EAAE;oBACjD,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,OAAO,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;gBAClC,IAAI,CAAC,aAAa;oBAAE,SAAS;gBAC7B,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,MAAM,EAAE;oBAC5C,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,aAAa,CAAC,UAAU;iBACrC,CAAC,CAAC;gBACH,OAAO;oBACL,WAAW,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC;oBAC1D,cAAc,EAAE,aAAa,CAAC,WAAW;oBACzC,sBAAsB,EAAE,aAAa,CAAC,UAAU;oBAChD,mBAAmB;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,OAAyB;QAC3D,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;YAC/D,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,yCAAyC,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,mBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YACtC,MAAM;YACN,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,mBAAmB;YACnC,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,SAAS;SAC9D,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAClC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;YACzE,OAAO,EAAE,EAAE,MAAM,EAAE;YACnB,YAAY,EAAE,OAAO;YACrB,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,qBAAqB;YACtC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAe,EAAE,MAAc,EAAE,OAAyB;QAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,sBAAsB,IAAI,SAAS,CAAC,CAAC;QAE1G,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;QACzC,IAAI,aAA0C,CAAC;QAC/C,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;aAAM,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,aAAa,GAAG,WAAW,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,WAAW,EAAE,CAAC;gBACnE,aAAa,EAAE,gBAAgB;aAChC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa;SACd,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,WAAW,CACf,MAAc,EACd,KAAa,EACb,MAAyB,EACzB,IAAgB,EAChB,WAAmB,EACnB,OAAyB;QAEzB,iGAAiG;QACjG,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACxG,MAAM,IAAI,cAAc,CACtB,gBAAgB,EAChB,6CAA6C,OAAO,CAAC,sBAAsB,IAAI,QAAQ,SAAS,MAAM,CAAC,sBAAsB,EAAE,CAChI,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,MAAM,EAAE;gBAC7C,KAAK;gBACL,YAAY,EAAE,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;aACjF,CAAC,CAAC;YACH,MAAM,SAAS,CAAC;QAClB,CAAC;QAED,+BAA+B;QAC/B,IAAI,kBAAkB,GAAa,EAAE,CAAC;QACtC,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YACnE,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC;YACvC,kBAAkB,GAAG,aAAa,CAAC,WAAW,CAAC;QACjD,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,EAAE;gBAC/C,KAAK;gBACL,YAAY,EAAE,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;aACpF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE;gBACxC,KAAK;gBACL,aAAa,EAAE,kBAAkB,CAAC,MAAM;gBACxC,OAAO,EAAE,2EAA2E;aACrF,CAAC,CAAC;QACL,CAAC;QAED,yDAAyD;QACzD,MAAM,UAAU,GAAG,UAAU,MAAM,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;gBACtC,UAAU;gBACV,YAAY,EAAE,WAAW;gBACzB,YAAY,EAAE,MAAM;gBACpB,kBAAkB;gBAClB,gBAAgB,EAAE,SAAS;gBAC3B,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBACnC,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,MAAM,EAAE;gBAC9C,KAAK;gBACL,YAAY,EAAE,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;aACvF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,WAAW,CAAC;gBACtB,MAAM;gBACN,IAAI;gBACJ,aAAa,EAAE,wBAAwB;gBACvC,aAAa,EAAE,4BAA4B,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;aACtH,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,MAAM,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE,MAAM,EAAE;gBAC9C,MAAM;gBACN,KAAK;gBACL,YAAY,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC9E,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS;YACT,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO;SACzD,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,MAAM;YACN,KAAK;YACL,UAAU;YACV,SAAS;YACT,WAAW;YACX,MAAM;YACN,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,8EAA8E;IAE9E;;;;;;;OAOG;IACH,qEAAqE;IAClD,kBAAkB,CAAC,MAAc,EAAE,eAAwB;QAC5E,2BAA2B,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE/D,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YACpE,MAAM,MAAM,GAAG,eAA0C,CAAC;YAC1D,gFAAgF;YAChF,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAEkB,oBAAoB,CAAC,MAAc,EAAE,MAAyB;QAC/E,IAAI,CAAC,SAAS,CAAC,+BAA+B,EAAE,MAAM,EAAE;YACtD,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO;YACxD,aAAa,EAAE,MAAM,CAAC,kBAAkB,CAAC,aAAa;YACtD,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,UAAU;SACjD,CAAC,CAAC;IACL,CAAC;CACF;AAED,OAAO,EAAE,gCAAgC,EAAE,CAAC"}
@@ -1,4 +1,47 @@
1
1
  import { type Static } from '@sinclair/typebox';
2
+ import type { GoldenTraceDecision } from '../golden-trace.js';
3
+ /**
4
+ * Attack type for adversarial cases (PRD Decision 4).
5
+ * - boundary: probe ambiguous edges of principle text
6
+ * - omission: satisfy all-but-one condition the code may have skipped
7
+ * - inversion: mutate a positive case so it should become negative
8
+ */
9
+ export type AdversarialAttackType = 'boundary' | 'omission' | 'inversion';
10
+ export interface AdversarialCase {
11
+ readonly caseId: string;
12
+ readonly attackType: AdversarialAttackType;
13
+ readonly toolName: string;
14
+ readonly params: Record<string, unknown>;
15
+ /** GoldenTraceDecision, NOT RuleHostDecision. */
16
+ readonly expectedDecision: GoldenTraceDecision;
17
+ readonly rationale: string;
18
+ }
19
+ export interface AdversarialFailedCase {
20
+ readonly caseId: string;
21
+ readonly attackType: AdversarialAttackType;
22
+ readonly actualDecision: string;
23
+ readonly expectedDecision: string;
24
+ readonly rationale: string;
25
+ }
26
+ export interface EvaluatorCodeReview {
27
+ readonly intentConsistency: {
28
+ readonly aligned: boolean;
29
+ readonly explanation: string;
30
+ };
31
+ readonly scopePrecision: {
32
+ readonly verdict: 'precise' | 'too_broad' | 'too_narrow';
33
+ readonly explanation: string;
34
+ };
35
+ readonly traceCoverage: {
36
+ readonly sufficient: boolean;
37
+ readonly gaps: readonly string[];
38
+ readonly explanation: string;
39
+ };
40
+ }
41
+ export interface EvaluatorAdversarialResult {
42
+ readonly passed: boolean;
43
+ readonly failedCases: readonly AdversarialFailedCase[];
44
+ }
2
45
  export interface EvaluatorEvaluation {
3
46
  readonly decision: 'approved' | 'needs_revision' | 'rejected';
4
47
  readonly summary: string;
@@ -21,6 +64,20 @@ export interface EvaluatorOutputV1 {
21
64
  readonly risks: readonly string[];
22
65
  readonly generatedAt: string;
23
66
  }
67
+ /**
68
+ * EvaluatorOutputV2 — V1 plus code review + adversarial attack fields
69
+ * (PRD Decision 2, ADR-0014 Amendment 2026-06-17).
70
+ *
71
+ * All V2 fields are optional: they appear only when the upstream Artificer
72
+ * output is V2 (code-bearing). V1 Artificer → Evaluator skips code review
73
+ * entirely (no codeReview, no adversarialCases). Use `isEvaluatorOutputV2()`
74
+ * after `validate()` to decide which assembly path applies.
75
+ */
76
+ export interface EvaluatorOutputV2 extends EvaluatorOutputV1 {
77
+ readonly codeReview?: EvaluatorCodeReview;
78
+ readonly adversarialCases?: readonly AdversarialCase[];
79
+ readonly adversarialResult?: EvaluatorAdversarialResult;
80
+ }
24
81
  export declare const EVALUATOR_DECISIONS: readonly ["approved", "needs_revision", "rejected"];
25
82
  export declare const EvaluatorEvaluationSchema: import("@sinclair/typebox").TObject<{
26
83
  decision: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"approved">, import("@sinclair/typebox").TLiteral<"needs_revision">, import("@sinclair/typebox").TLiteral<"rejected">]>;
@@ -62,6 +119,12 @@ export interface EvaluatorValidationResult {
62
119
  readonly errors: readonly string[];
63
120
  readonly errorCategory?: string;
64
121
  }
122
+ /**
123
+ * Runtime type guard distinguishing V2 (code-review/adversarial-bearing)
124
+ * evaluator output from V1. A V2 output is one where at least one V2 field
125
+ * is present AND well-formed. Use after `validate()` (Runtime Contract Rule 2).
126
+ */
127
+ export declare function isEvaluatorOutputV2(output: unknown): output is EvaluatorOutputV2;
65
128
  export interface EvaluatorValidator {
66
129
  validate(output: unknown, taskId: string, expectedSourceArtificerArtifactId?: string): Promise<EvaluatorValidationResult>;
67
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,qDAAsD,CAAC;AAEvF,eAAO,MAAM,yBAAyB;;;;;;;EAWpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;EAKrC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAMD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAC3H;AAED,qBAAa,yBAA0B,YAAW,kBAAkB;IAE5D,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA8EhI"}
1
+ {"version":3,"file":"evaluator-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,152 @@ export const EvaluatorOutputV1Schema = Type.Object({
29
29
  function isRecord(v) {
30
30
  return v !== null && typeof v === 'object' && !Array.isArray(v);
31
31
  }
32
+ const ADVERSARIAL_ATTACK_TYPES = new Set(['boundary', 'omission', 'inversion']);
33
+ const GOLDEN_TRACE_DECISIONS = new Set(['allow', 'block', 'propose_correction']);
34
+ const SCOPE_VERDICTS = new Set(['precise', 'too_broad', 'too_narrow']);
35
+ function validateCodeReview(raw) {
36
+ const errors = [];
37
+ if (!isRecord(raw)) {
38
+ errors.push('codeReview must be an object');
39
+ return errors;
40
+ }
41
+ // intentConsistency
42
+ if (!Object.hasOwn(raw, 'intentConsistency') || !isRecord(raw.intentConsistency)) {
43
+ errors.push('codeReview.intentConsistency must be an object');
44
+ }
45
+ else {
46
+ const ic = raw.intentConsistency;
47
+ if (!Object.hasOwn(ic, 'aligned') || typeof ic.aligned !== 'boolean') {
48
+ errors.push('codeReview.intentConsistency.aligned must be a boolean');
49
+ }
50
+ if (!Object.hasOwn(ic, 'explanation') || typeof ic.explanation !== 'string' || ic.explanation.trim() === '') {
51
+ errors.push('codeReview.intentConsistency.explanation must be a non-empty string');
52
+ }
53
+ }
54
+ // scopePrecision
55
+ if (!Object.hasOwn(raw, 'scopePrecision') || !isRecord(raw.scopePrecision)) {
56
+ errors.push('codeReview.scopePrecision must be an object');
57
+ }
58
+ else {
59
+ const sp = raw.scopePrecision;
60
+ if (!Object.hasOwn(sp, 'verdict') || typeof sp.verdict !== 'string' || !SCOPE_VERDICTS.has(sp.verdict)) {
61
+ errors.push(`codeReview.scopePrecision.verdict must be one of precise|too_broad|too_narrow, got ${String(sp.verdict)}`);
62
+ }
63
+ if (!Object.hasOwn(sp, 'explanation') || typeof sp.explanation !== 'string' || sp.explanation.trim() === '') {
64
+ errors.push('codeReview.scopePrecision.explanation must be a non-empty string');
65
+ }
66
+ }
67
+ // traceCoverage
68
+ if (!Object.hasOwn(raw, 'traceCoverage') || !isRecord(raw.traceCoverage)) {
69
+ errors.push('codeReview.traceCoverage must be an object');
70
+ }
71
+ else {
72
+ const tc = raw.traceCoverage;
73
+ if (!Object.hasOwn(tc, 'sufficient') || typeof tc.sufficient !== 'boolean') {
74
+ errors.push('codeReview.traceCoverage.sufficient must be a boolean');
75
+ }
76
+ if (!Object.hasOwn(tc, 'gaps') || !Array.isArray(tc.gaps)) {
77
+ errors.push('codeReview.traceCoverage.gaps must be an array');
78
+ }
79
+ else if (!tc.gaps.every((g) => typeof g === 'string')) {
80
+ errors.push('codeReview.traceCoverage.gaps must be an array of strings');
81
+ }
82
+ if (!Object.hasOwn(tc, 'explanation') || typeof tc.explanation !== 'string' || tc.explanation.trim() === '') {
83
+ errors.push('codeReview.traceCoverage.explanation must be a non-empty string');
84
+ }
85
+ }
86
+ return errors;
87
+ }
88
+ function validateAdversarialCases(raw) {
89
+ const errors = [];
90
+ if (!Array.isArray(raw)) {
91
+ errors.push('adversarialCases must be an array');
92
+ return errors;
93
+ }
94
+ raw.forEach((entry, index) => {
95
+ const prefix = `adversarialCases[${index}]`;
96
+ if (!isRecord(entry)) {
97
+ errors.push(`${prefix} must be an object`);
98
+ return;
99
+ }
100
+ if (!Object.hasOwn(entry, 'caseId') || typeof entry.caseId !== 'string' || entry.caseId.trim() === '') {
101
+ errors.push(`${prefix}.caseId must be a non-empty string`);
102
+ }
103
+ if (!Object.hasOwn(entry, 'attackType') || typeof entry.attackType !== 'string' || !ADVERSARIAL_ATTACK_TYPES.has(entry.attackType)) {
104
+ errors.push(`${prefix}.attackType must be one of boundary|omission|inversion, got ${String(entry.attackType)}`);
105
+ }
106
+ if (!Object.hasOwn(entry, 'toolName') || typeof entry.toolName !== 'string' || entry.toolName.trim() === '') {
107
+ errors.push(`${prefix}.toolName must be a non-empty string`);
108
+ }
109
+ if (!Object.hasOwn(entry, 'params') || !isRecord(entry.params)) {
110
+ errors.push(`${prefix}.params must be an object`);
111
+ }
112
+ if (!Object.hasOwn(entry, 'expectedDecision')
113
+ || typeof entry.expectedDecision !== 'string'
114
+ || !GOLDEN_TRACE_DECISIONS.has(entry.expectedDecision)) {
115
+ errors.push(`${prefix}.expectedDecision must be one of allow|block|propose_correction, got ${String(entry.expectedDecision)}`);
116
+ }
117
+ if (!Object.hasOwn(entry, 'rationale') || typeof entry.rationale !== 'string' || entry.rationale.trim() === '') {
118
+ errors.push(`${prefix}.rationale must be a non-empty string`);
119
+ }
120
+ });
121
+ return errors;
122
+ }
123
+ function validateAdversarialResult(raw) {
124
+ const errors = [];
125
+ if (!isRecord(raw)) {
126
+ errors.push('adversarialResult must be an object');
127
+ return errors;
128
+ }
129
+ if (!Object.hasOwn(raw, 'passed') || typeof raw.passed !== 'boolean') {
130
+ errors.push('adversarialResult.passed must be a boolean');
131
+ }
132
+ if (!Object.hasOwn(raw, 'failedCases') || !Array.isArray(raw.failedCases)) {
133
+ errors.push('adversarialResult.failedCases must be an array');
134
+ }
135
+ else {
136
+ raw.failedCases.forEach((entry, index) => {
137
+ const prefix = `adversarialResult.failedCases[${index}]`;
138
+ if (!isRecord(entry)) {
139
+ errors.push(`${prefix} must be an object`);
140
+ return;
141
+ }
142
+ if (!Object.hasOwn(entry, 'caseId') || typeof entry.caseId !== 'string' || entry.caseId.trim() === '') {
143
+ errors.push(`${prefix}.caseId must be a non-empty string`);
144
+ }
145
+ if (!Object.hasOwn(entry, 'attackType') || typeof entry.attackType !== 'string' || !ADVERSARIAL_ATTACK_TYPES.has(entry.attackType)) {
146
+ errors.push(`${prefix}.attackType must be one of boundary|omission|inversion, got ${String(entry.attackType)}`);
147
+ }
148
+ if (!Object.hasOwn(entry, 'actualDecision') || typeof entry.actualDecision !== 'string') {
149
+ errors.push(`${prefix}.actualDecision must be a string`);
150
+ }
151
+ if (!Object.hasOwn(entry, 'expectedDecision') || typeof entry.expectedDecision !== 'string') {
152
+ errors.push(`${prefix}.expectedDecision must be a string`);
153
+ }
154
+ if (!Object.hasOwn(entry, 'rationale') || typeof entry.rationale !== 'string' || entry.rationale.trim() === '') {
155
+ errors.push(`${prefix}.rationale must be a non-empty string`);
156
+ }
157
+ });
158
+ }
159
+ return errors;
160
+ }
161
+ /**
162
+ * Runtime type guard distinguishing V2 (code-review/adversarial-bearing)
163
+ * evaluator output from V1. A V2 output is one where at least one V2 field
164
+ * is present AND well-formed. Use after `validate()` (Runtime Contract Rule 2).
165
+ */
166
+ export function isEvaluatorOutputV2(output) {
167
+ if (!isRecord(output))
168
+ return false;
169
+ const hasCodeReview = Object.hasOwn(output, 'codeReview');
170
+ const hasCases = Object.hasOwn(output, 'adversarialCases');
171
+ const hasResult = Object.hasOwn(output, 'adversarialResult');
172
+ if (!hasCodeReview && !hasCases && !hasResult)
173
+ return false;
174
+ return (!hasCodeReview || validateCodeReview(output.codeReview).length === 0)
175
+ && (!hasCases || validateAdversarialCases(output.adversarialCases).length === 0)
176
+ && (!hasResult || validateAdversarialResult(output.adversarialResult).length === 0);
177
+ }
32
178
  export class DefaultEvaluatorValidator {
33
179
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
34
180
  async validate(output, taskId, expectedSourceArtificerArtifactId) {
@@ -111,6 +257,18 @@ export class DefaultEvaluatorValidator {
111
257
  if (!Object.hasOwn(output, 'generatedAt') || typeof output.generatedAt !== 'string' || output.generatedAt.trim() === '') {
112
258
  errors.push('generatedAt must be non-empty string');
113
259
  }
260
+ // ── V2 fields (optional; present only when Artificer output is V2) ──
261
+ // V1 backward compatibility: absence is valid. Presence requires well-formed
262
+ // structure (fail loud, ERR-009). Detect via Object.hasOwn (ERR-013).
263
+ if (Object.hasOwn(output, 'codeReview')) {
264
+ errors.push(...validateCodeReview(output.codeReview));
265
+ }
266
+ if (Object.hasOwn(output, 'adversarialCases')) {
267
+ errors.push(...validateAdversarialCases(output.adversarialCases));
268
+ }
269
+ if (Object.hasOwn(output, 'adversarialResult')) {
270
+ errors.push(...validateAdversarialResult(output.adversarialResult));
271
+ }
114
272
  return errors.length > 0
115
273
  ? { valid: false, errors, errorCategory: 'output_invalid' }
116
274
  : { valid: true, errors: [] };
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,19 @@ export interface EvaluatorPromptBuilderInput {
3
3
  contextHash: string;
4
4
  sourceArtificerArtifactId: string;
5
5
  artificerArtifact: unknown;
6
+ /**
7
+ * Scribe principle artifact (RuleHost MVP Activation, PRD Decision 12).
8
+ * Present when code review applies (artificer output is V2). Carries the
9
+ * principle text the evaluator uses to judge intentConsistency / scopePrecision.
10
+ */
11
+ scribeArtifact?: unknown;
6
12
  }
7
13
  export interface EvaluatorPromptInput {
8
14
  taskId: string;
9
15
  contextHash: string;
10
16
  sourceArtificerArtifactId: string;
11
17
  artificerArtifact: unknown;
18
+ scribeArtifact?: unknown;
12
19
  evaluatorInstruction: string;
13
20
  promptContractVersion: string;
14
21
  }
@@ -16,7 +23,7 @@ export interface EvaluatorPromptBuildResult {
16
23
  readonly message: string;
17
24
  readonly promptInput: EvaluatorPromptInput;
18
25
  }
19
- export declare const EVALUATOR_PROTOCOL_INSTRUCTION = "You are an Evaluator agent in a principle internalization pipeline. Your role is to critically review the Artificer's implementation plan and produce a structured evaluation with a decision, score, and actionable feedback.\n\nPROTOCOL:\n1. Review the artificerArtifact to understand the proposed implementation plan\n2. Evaluate the plan against quality criteria: completeness, feasibility, test coverage, risk mitigation\n3. Produce a decision: approved (plan is sound), needs_revision (plan has issues but is salvageable), or rejected (plan is fundamentally flawed)\n4. Provide a score from 0.0 to 1.0 reflecting overall quality\n5. List specific strengths, concerns, and required changes\n6. Preserve the lineage trace from artificer, scribe, philosopher, and dreamer artifacts\n7. Identify risks associated with this evaluation\n\nCRITICAL: Your ENTIRE response must be ONLY the JSON object below. Do NOT include any text before or after the JSON. Do NOT wrap the JSON in markdown code fences. Do NOT add explanatory prose. Output the raw JSON object and nothing else.\n\nCOMPLETE EXAMPLE OUTPUT (follow this exact structure):\n{\"taskId\":\"task-123\",\"sourceArtificerArtifactId\":\"pi-art-artificer-001\",\"evaluation\":{\"decision\":\"approved\",\"summary\":\"The implementation plan is well-structured and addresses the identified issues.\",\"score\":0.85,\"strengths\":[\"Clear change descriptions with specific file targets\",\"Good test coverage plan\"],\"concerns\":[\"Rollout notes could be more specific about monitoring\"],\"requiredChanges\":[]},\"sourceTrace\":{\"artificerArtifactId\":\"pi-art-artificer-001\"},\"risks\":[\"May need additional integration tests\"],\"generatedAt\":\"<current ISO-8601 timestamp>\"}\n\nCONSTRAINTS:\n- Output ONLY valid JSON \u2014 no markdown, no explanatory text, no code fences, no prose before or after\n- evaluation.decision MUST be one of: approved, needs_revision, rejected\n- evaluation.summary MUST be a non-empty string\n- evaluation.score MUST be a number between 0.0 and 1.0 (NOT a string, NOT a percentage)\n- evaluation.strengths MUST be an array of strings (can be empty)\n- evaluation.concerns MUST be an array of strings (can be empty)\n- evaluation.requiredChanges MUST be an array of strings (can be empty)\n- sourceArtificerArtifactId MUST be copied exactly from input.sourceArtificerArtifactId (non-empty string)\n- sourceTrace.artificerArtifactId MUST be copied exactly from input.sourceArtificerArtifactId\n- sourceTrace.scribeArtifactId is optional \u2014 include only if available from artificer artifact\n- sourceTrace.philosopherArtifactId is optional \u2014 include only if available from artificer artifact\n- sourceTrace.dreamerArtifactId is optional \u2014 include only if available from artificer artifact\n- risks MUST be an array of strings (can be empty if no risks identified)\n- generatedAt MUST be the current ISO-8601 timestamp (use the actual current time, NOT a placeholder)\n";
26
+ export declare const EVALUATOR_PROTOCOL_INSTRUCTION = "You are an Evaluator agent in a principle internalization pipeline. Your role is to critically review the Artificer's implementation plan and produce a structured evaluation with a decision, score, and actionable feedback.\n\nPROTOCOL:\n1. Review the artificerArtifact to understand the proposed implementation plan\n2. Evaluate the plan against quality criteria: completeness, feasibility, test coverage, risk mitigation\n3. Produce a decision: approved (plan is sound), needs_revision (plan has issues but is salvageable), or rejected (plan is fundamentally flawed)\n4. Provide a score from 0.0 to 1.0 reflecting overall quality\n5. List specific strengths, concerns, and required changes\n6. Preserve the lineage trace from artificer, scribe, philosopher, and dreamer artifacts\n7. Identify risks associated with this evaluation\n\nCODE REVIEW (Part A \u2014 Passive Review): When the artificerArtifact contains an \"implementationCode\" field (V2 output), you MUST additionally review the generated code across three dimensions and emit a \"codeReview\" object:\n- intentConsistency: { aligned: boolean, explanation: string } \u2014 Does the code logic match the constraint intent described in the scribe principle text? Read the principle text (scribeArtifact.principleDraft or painReasonSummary), then read the code, then judge whether the code precisely implements the described constraint.\n- scopePrecision: { verdict: \"precise\" | \"too_broad\" | \"too_narrow\", explanation: string } \u2014 Are the match conditions over-broad (false positive risk, e.g. using includes() substring matching) or over-narrow (false negative risk, e.g. hardcoded paths)?\n- traceCoverage: { sufficient: boolean, gaps: string[], explanation: string } \u2014 Do the goldenTraceCases cover the key scenarios described in the principle (both positive and negative)?\n\nIf ANY of the three dimensions fails (aligned=false, OR verdict!=precise, OR sufficient=false), set evaluation.decision to \"needs_revision\" and describe the gap in concerns/requiredChanges.\n\nADVERSARIAL CASES (Part B \u2014 only when Part A passes): If and only if all three passive-review dimensions pass (aligned=true AND verdict=precise AND sufficient=true), ALSO generate 3-5 \"adversarialCases\" \u2014 test inputs designed to expose gaps between the principle text and the code's actual behavior. Each case: { caseId, attackType: \"boundary\"|\"omission\"|\"inversion\", toolName, params, expectedDecision: \"allow\"|\"block\"|\"propose_correction\", rationale }. If Part A does NOT fully pass, do NOT generate adversarialCases (short-circuit: skip adversarial generation on passive-review failure to save tokens).\n\nCRITICAL: Your ENTIRE response must be ONLY the JSON object below. Do NOT include any text before or after the JSON. Do NOT wrap the JSON in markdown code fences. Do NOT add explanatory prose. Output the raw JSON object and nothing else.\n\nCOMPLETE EXAMPLE OUTPUT FOR A V2 ARTIFICER INPUT (follow this exact structure):\n{\"taskId\":\"task-123\",\"sourceArtificerArtifactId\":\"pi-art-artificer-001\",\"evaluation\":{\"decision\":\"approved\",\"summary\":\"The rule matches the principle and survives adversarial review.\",\"score\":0.85,\"strengths\":[\"Exact path-segment check\"],\"concerns\":[],\"requiredChanges\":[]},\"sourceTrace\":{\"artificerArtifactId\":\"pi-art-artificer-001\"},\"risks\":[],\"codeReview\":{\"intentConsistency\":{\"aligned\":true,\"explanation\":\"The rule enforces the stated confirmation boundary.\"},\"scopePrecision\":{\"verdict\":\"precise\",\"explanation\":\"It avoids substring and sibling-prefix matches.\"},\"traceCoverage\":{\"sufficient\":true,\"gaps\":[],\"explanation\":\"Positive, negative, and boundary cases are covered.\"}},\"adversarialCases\":[{\"caseId\":\"adversarial-1\",\"attackType\":\"boundary\",\"toolName\":\"write_file\",\"params\":{\"path\":\"/system-backup/file\"},\"expectedDecision\":\"allow\",\"rationale\":\"A sibling prefix must not be blocked.\"},{\"caseId\":\"adversarial-2\",\"attackType\":\"omission\",\"toolName\":\"write_file\",\"params\":{\"path\":\"/system/file\"},\"expectedDecision\":\"block\",\"rationale\":\"The protected path must be blocked.\"},{\"caseId\":\"adversarial-3\",\"attackType\":\"inversion\",\"toolName\":\"read_file\",\"params\":{\"path\":\"/system/file\"},\"expectedDecision\":\"allow\",\"rationale\":\"A non-writing tool must remain allowed.\"}],\"generatedAt\":\"<current ISO-8601 timestamp>\"}\n\nCONSTRAINTS:\n- Output ONLY valid JSON \u2014 no markdown, no explanatory text, no code fences, no prose before or after\n- evaluation.decision MUST be one of: approved, needs_revision, rejected\n- evaluation.summary MUST be a non-empty string\n- evaluation.score MUST be a number between 0.0 and 1.0 (NOT a string, NOT a percentage)\n- evaluation.strengths MUST be an array of strings (can be empty)\n- evaluation.concerns MUST be an array of strings (can be empty)\n- evaluation.requiredChanges MUST be an array of strings (can be empty)\n- sourceArtificerArtifactId MUST be copied exactly from input.sourceArtificerArtifactId (non-empty string)\n- sourceTrace.artificerArtifactId MUST be copied exactly from input.sourceArtificerArtifactId\n- sourceTrace.scribeArtifactId is optional \u2014 include only if available from artificer artifact\n- sourceTrace.philosopherArtifactId is optional \u2014 include only if available from artificer artifact\n- sourceTrace.dreamerArtifactId is optional \u2014 include only if available from artificer artifact\n- risks MUST be an array of strings (can be empty if no risks identified)\n- generatedAt MUST be the current ISO-8601 timestamp (use the actual current time, NOT a placeholder)\n- codeReview (when present) MUST contain intentConsistency, scopePrecision, and traceCoverage\n- adversarialCases (when present) MUST be an array of 3-5 objects; omit entirely when passive review fails\n";
20
27
  export declare const EVALUATOR_PROMPT_CONTRACT_VERSION = "evaluator-output-v1.prompt.v1";
21
28
  export declare class EvaluatorPromptBuilder {
22
29
  buildPrompt(input: EvaluatorPromptBuilderInput): EvaluatorPromptBuildResult;
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;CAC5C;AAED,eAAO,MAAM,8BAA8B,65FA+B1C,CAAC;AAEF,eAAO,MAAM,iCAAiC,kCAAkC,CAAC;AAEjF,qBAAa,sBAAsB;IAEjC,WAAW,CAAC,KAAK,EAAE,2BAA2B,GAAG,0BAA0B;CAc5E"}
1
+ {"version":3,"file":"evaluator-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;CAC5C;AAED,eAAO,MAAM,8BAA8B,6xLA0C1C,CAAC;AAEF,eAAO,MAAM,iCAAiC,kCAAkC,CAAC;AAEjF,qBAAa,sBAAsB;IAEjC,WAAW,CAAC,KAAK,EAAE,2BAA2B,GAAG,0BAA0B;CAe5E"}
@@ -1,3 +1,4 @@
1
+ import { serializePromptInput } from './prompt-serializer.js';
1
2
  export const EVALUATOR_PROTOCOL_INSTRUCTION = `You are an Evaluator agent in a principle internalization pipeline. Your role is to critically review the Artificer's implementation plan and produce a structured evaluation with a decision, score, and actionable feedback.
2
3
 
3
4
  PROTOCOL:
@@ -9,10 +10,19 @@ PROTOCOL:
9
10
  6. Preserve the lineage trace from artificer, scribe, philosopher, and dreamer artifacts
10
11
  7. Identify risks associated with this evaluation
11
12
 
13
+ CODE REVIEW (Part A — Passive Review): When the artificerArtifact contains an "implementationCode" field (V2 output), you MUST additionally review the generated code across three dimensions and emit a "codeReview" object:
14
+ - intentConsistency: { aligned: boolean, explanation: string } — Does the code logic match the constraint intent described in the scribe principle text? Read the principle text (scribeArtifact.principleDraft or painReasonSummary), then read the code, then judge whether the code precisely implements the described constraint.
15
+ - scopePrecision: { verdict: "precise" | "too_broad" | "too_narrow", explanation: string } — Are the match conditions over-broad (false positive risk, e.g. using includes() substring matching) or over-narrow (false negative risk, e.g. hardcoded paths)?
16
+ - traceCoverage: { sufficient: boolean, gaps: string[], explanation: string } — Do the goldenTraceCases cover the key scenarios described in the principle (both positive and negative)?
17
+
18
+ If ANY of the three dimensions fails (aligned=false, OR verdict!=precise, OR sufficient=false), set evaluation.decision to "needs_revision" and describe the gap in concerns/requiredChanges.
19
+
20
+ ADVERSARIAL CASES (Part B — only when Part A passes): If and only if all three passive-review dimensions pass (aligned=true AND verdict=precise AND sufficient=true), ALSO generate 3-5 "adversarialCases" — test inputs designed to expose gaps between the principle text and the code's actual behavior. Each case: { caseId, attackType: "boundary"|"omission"|"inversion", toolName, params, expectedDecision: "allow"|"block"|"propose_correction", rationale }. If Part A does NOT fully pass, do NOT generate adversarialCases (short-circuit: skip adversarial generation on passive-review failure to save tokens).
21
+
12
22
  CRITICAL: Your ENTIRE response must be ONLY the JSON object below. Do NOT include any text before or after the JSON. Do NOT wrap the JSON in markdown code fences. Do NOT add explanatory prose. Output the raw JSON object and nothing else.
13
23
 
14
- COMPLETE EXAMPLE OUTPUT (follow this exact structure):
15
- {"taskId":"task-123","sourceArtificerArtifactId":"pi-art-artificer-001","evaluation":{"decision":"approved","summary":"The implementation plan is well-structured and addresses the identified issues.","score":0.85,"strengths":["Clear change descriptions with specific file targets","Good test coverage plan"],"concerns":["Rollout notes could be more specific about monitoring"],"requiredChanges":[]},"sourceTrace":{"artificerArtifactId":"pi-art-artificer-001"},"risks":["May need additional integration tests"],"generatedAt":"<current ISO-8601 timestamp>"}
24
+ COMPLETE EXAMPLE OUTPUT FOR A V2 ARTIFICER INPUT (follow this exact structure):
25
+ {"taskId":"task-123","sourceArtificerArtifactId":"pi-art-artificer-001","evaluation":{"decision":"approved","summary":"The rule matches the principle and survives adversarial review.","score":0.85,"strengths":["Exact path-segment check"],"concerns":[],"requiredChanges":[]},"sourceTrace":{"artificerArtifactId":"pi-art-artificer-001"},"risks":[],"codeReview":{"intentConsistency":{"aligned":true,"explanation":"The rule enforces the stated confirmation boundary."},"scopePrecision":{"verdict":"precise","explanation":"It avoids substring and sibling-prefix matches."},"traceCoverage":{"sufficient":true,"gaps":[],"explanation":"Positive, negative, and boundary cases are covered."}},"adversarialCases":[{"caseId":"adversarial-1","attackType":"boundary","toolName":"write_file","params":{"path":"/system-backup/file"},"expectedDecision":"allow","rationale":"A sibling prefix must not be blocked."},{"caseId":"adversarial-2","attackType":"omission","toolName":"write_file","params":{"path":"/system/file"},"expectedDecision":"block","rationale":"The protected path must be blocked."},{"caseId":"adversarial-3","attackType":"inversion","toolName":"read_file","params":{"path":"/system/file"},"expectedDecision":"allow","rationale":"A non-writing tool must remain allowed."}],"generatedAt":"<current ISO-8601 timestamp>"}
16
26
 
17
27
  CONSTRAINTS:
18
28
  - Output ONLY valid JSON — no markdown, no explanatory text, no code fences, no prose before or after
@@ -29,6 +39,8 @@ CONSTRAINTS:
29
39
  - sourceTrace.dreamerArtifactId is optional — include only if available from artificer artifact
30
40
  - risks MUST be an array of strings (can be empty if no risks identified)
31
41
  - generatedAt MUST be the current ISO-8601 timestamp (use the actual current time, NOT a placeholder)
42
+ - codeReview (when present) MUST contain intentConsistency, scopePrecision, and traceCoverage
43
+ - adversarialCases (when present) MUST be an array of 3-5 objects; omit entirely when passive review fails
32
44
  `;
33
45
  export const EVALUATOR_PROMPT_CONTRACT_VERSION = 'evaluator-output-v1.prompt.v1';
34
46
  export class EvaluatorPromptBuilder {
@@ -39,10 +51,11 @@ export class EvaluatorPromptBuilder {
39
51
  contextHash: input.contextHash,
40
52
  sourceArtificerArtifactId: input.sourceArtificerArtifactId,
41
53
  artificerArtifact: input.artificerArtifact,
54
+ scribeArtifact: input.scribeArtifact,
42
55
  evaluatorInstruction: EVALUATOR_PROTOCOL_INSTRUCTION,
43
56
  promptContractVersion: EVALUATOR_PROMPT_CONTRACT_VERSION,
44
57
  };
45
- const message = JSON.stringify(promptInput);
58
+ const message = serializePromptInput(promptInput);
46
59
  return { message, promptInput };
47
60
  }
48
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B7C,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,+BAA+B,CAAC;AAEjF,MAAM,OAAO,sBAAsB;IACjC,qEAAqE;IACrE,WAAW,CAAC,KAAkC;QAC5C,MAAM,WAAW,GAAyB;YACxC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;YAC1D,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,oBAAoB,EAAE,8BAA8B;YACpD,qBAAqB,EAAE,iCAAiC;SACzD,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"evaluator-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA8B9D,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0C7C,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,+BAA+B,CAAC;AAEjF,MAAM,OAAO,sBAAsB;IACjC,qEAAqE;IACrE,WAAW,CAAC,KAAkC;QAC5C,MAAM,WAAW,GAAyB;YACxC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;YAC1D,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,oBAAoB,EAAE,8BAA8B;YACpD,qBAAqB,EAAE,iCAAiC;SACzD,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAElD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAClC,CAAC;CACF"}