@principles/core 1.278.7 → 1.278.9

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 (170) hide show
  1. package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts +2 -0
  2. package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts.map +1 -0
  3. package/dist/runtime-v2/__tests__/system-prompt-merge.test.js +24 -0
  4. package/dist/runtime-v2/__tests__/system-prompt-merge.test.js.map +1 -0
  5. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js +26 -0
  6. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js.map +1 -1
  7. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js +33 -0
  8. package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js.map +1 -1
  9. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts +13 -0
  10. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts.map +1 -0
  11. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js +86 -0
  12. package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js.map +1 -0
  13. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js +30 -0
  14. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js.map +1 -1
  15. package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts +6 -0
  16. package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -1
  17. package/dist/runtime-v2/adapter/artificer-l2-adapter.js +11 -3
  18. package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -1
  19. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts +6 -0
  20. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts.map +1 -1
  21. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js +22 -7
  22. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js.map +1 -1
  23. package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.d.ts.map +1 -1
  24. package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js +11 -2
  25. package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js.map +1 -1
  26. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts +8 -5
  27. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
  28. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +14 -3
  29. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
  30. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +41 -1
  31. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
  32. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.d.ts +6 -2
  33. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.d.ts.map +1 -1
  34. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.js +1 -2
  35. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.js.map +1 -1
  36. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +3 -1
  37. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
  38. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +35 -16
  39. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
  40. package/dist/runtime-v2/diagnostician/router-prompt-builder.d.ts +6 -2
  41. package/dist/runtime-v2/diagnostician/router-prompt-builder.d.ts.map +1 -1
  42. package/dist/runtime-v2/diagnostician/router-prompt-builder.js +1 -2
  43. package/dist/runtime-v2/diagnostician/router-prompt-builder.js.map +1 -1
  44. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts +7 -9
  45. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
  46. package/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
  47. package/dist/runtime-v2/index.d.ts +1 -1
  48. package/dist/runtime-v2/index.d.ts.map +1 -1
  49. package/dist/runtime-v2/index.js +1 -1
  50. package/dist/runtime-v2/index.js.map +1 -1
  51. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js +11 -11
  52. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js.map +1 -1
  53. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +28 -26
  54. package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
  55. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +6 -3
  56. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +1 -1
  57. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js +21 -18
  58. package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js.map +1 -1
  59. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts +2 -0
  60. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts.map +1 -0
  61. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js +300 -0
  62. package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js.map +1 -0
  63. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js +7 -5
  64. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js.map +1 -1
  65. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js +9 -9
  66. package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js.map +1 -1
  67. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts +21 -0
  68. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts.map +1 -0
  69. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js +291 -0
  70. package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js.map +1 -0
  71. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js +13 -12
  72. package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js.map +1 -1
  73. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js +2 -2
  74. package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js.map +1 -1
  75. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js +3 -3
  76. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js.map +1 -1
  77. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js +24 -23
  78. package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js.map +1 -1
  79. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +15 -1
  80. package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
  81. package/dist/runtime-v2/internalization/artificer-prompt-builder.js +6 -3
  82. package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
  83. package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  84. package/dist/runtime-v2/internalization/artificer-runner.js +6 -1
  85. package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  86. package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts.map +1 -1
  87. package/dist/runtime-v2/internalization/diag-distiller-runner.js +2 -1
  88. package/dist/runtime-v2/internalization/diag-distiller-runner.js.map +1 -1
  89. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
  90. package/dist/runtime-v2/internalization/diag-rootcause-runner.js +2 -1
  91. package/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
  92. package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
  93. package/dist/runtime-v2/internalization/diag-router-runner.js +2 -1
  94. package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
  95. package/dist/runtime-v2/internalization/dreamer-prompt-builder.d.ts +21 -5
  96. package/dist/runtime-v2/internalization/dreamer-prompt-builder.d.ts.map +1 -1
  97. package/dist/runtime-v2/internalization/dreamer-prompt-builder.js +21 -7
  98. package/dist/runtime-v2/internalization/dreamer-prompt-builder.js.map +1 -1
  99. package/dist/runtime-v2/internalization/dreamer-runner.d.ts +7 -0
  100. package/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
  101. package/dist/runtime-v2/internalization/dreamer-runner.js +6 -3
  102. package/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
  103. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +15 -1
  104. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
  105. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +7 -2
  106. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
  107. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +14 -0
  108. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  109. package/dist/runtime-v2/internalization/evaluator-runner.js +18 -7
  110. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  111. package/dist/runtime-v2/internalization/philosopher-prompt-builder.d.ts +20 -5
  112. package/dist/runtime-v2/internalization/philosopher-prompt-builder.d.ts.map +1 -1
  113. package/dist/runtime-v2/internalization/philosopher-prompt-builder.js +20 -7
  114. package/dist/runtime-v2/internalization/philosopher-prompt-builder.js.map +1 -1
  115. package/dist/runtime-v2/internalization/philosopher-runner.d.ts +7 -0
  116. package/dist/runtime-v2/internalization/philosopher-runner.d.ts.map +1 -1
  117. package/dist/runtime-v2/internalization/philosopher-runner.js +6 -3
  118. package/dist/runtime-v2/internalization/philosopher-runner.js.map +1 -1
  119. package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.d.ts +14 -1
  120. package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.d.ts.map +1 -1
  121. package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.js +9 -2
  122. package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.js.map +1 -1
  123. package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts +10 -0
  124. package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts.map +1 -1
  125. package/dist/runtime-v2/internalization/rollout-reviewer-runner.js +5 -1
  126. package/dist/runtime-v2/internalization/rollout-reviewer-runner.js.map +1 -1
  127. package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts +6 -1
  128. package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts.map +1 -1
  129. package/dist/runtime-v2/internalization/scribe-prompt-builder.js +1 -2
  130. package/dist/runtime-v2/internalization/scribe-prompt-builder.js.map +1 -1
  131. package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
  132. package/dist/runtime-v2/internalization/scribe-runner.js +2 -1
  133. package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
  134. package/dist/runtime-v2/language-directive.d.ts +20 -2
  135. package/dist/runtime-v2/language-directive.d.ts.map +1 -1
  136. package/dist/runtime-v2/language-directive.js +25 -13
  137. package/dist/runtime-v2/language-directive.js.map +1 -1
  138. package/dist/runtime-v2/observer/__tests__/correction-observer.test.js +3 -2
  139. package/dist/runtime-v2/observer/__tests__/correction-observer.test.js.map +1 -1
  140. package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js +3 -2
  141. package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js.map +1 -1
  142. package/dist/runtime-v2/observer/correction-observer.d.ts +7 -0
  143. package/dist/runtime-v2/observer/correction-observer.d.ts.map +1 -1
  144. package/dist/runtime-v2/observer/correction-observer.js +8 -2
  145. package/dist/runtime-v2/observer/correction-observer.js.map +1 -1
  146. package/dist/runtime-v2/observer/empathy-observer.d.ts +6 -0
  147. package/dist/runtime-v2/observer/empathy-observer.d.ts.map +1 -1
  148. package/dist/runtime-v2/observer/empathy-observer.js +7 -1
  149. package/dist/runtime-v2/observer/empathy-observer.js.map +1 -1
  150. package/dist/runtime-v2/runner/base-peer-runner.d.ts +1 -1
  151. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  152. package/dist/runtime-v2/runner/base-peer-runner.js +3 -1
  153. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  154. package/dist/runtime-v2/runtime-protocol.d.ts +9 -0
  155. package/dist/runtime-v2/runtime-protocol.d.ts.map +1 -1
  156. package/dist/runtime-v2/runtime-protocol.js +9 -0
  157. package/dist/runtime-v2/runtime-protocol.js.map +1 -1
  158. package/dist/runtime-v2/signal-collector/index.d.ts +1 -1
  159. package/dist/runtime-v2/signal-collector/index.d.ts.map +1 -1
  160. package/dist/runtime-v2/signal-collector/index.js +1 -1
  161. package/dist/runtime-v2/signal-collector/index.js.map +1 -1
  162. package/dist/runtime-v2/signal-collector/llm-stage.d.ts +6 -0
  163. package/dist/runtime-v2/signal-collector/llm-stage.d.ts.map +1 -1
  164. package/dist/runtime-v2/signal-collector/llm-stage.js +7 -1
  165. package/dist/runtime-v2/signal-collector/llm-stage.js.map +1 -1
  166. package/dist/runtime-v2/system-prompt-merge.d.ts +19 -0
  167. package/dist/runtime-v2/system-prompt-merge.d.ts.map +1 -0
  168. package/dist/runtime-v2/system-prompt-merge.js +24 -0
  169. package/dist/runtime-v2/system-prompt-merge.js.map +1 -0
  170. package/package.json +1 -1
@@ -0,0 +1,291 @@
1
+ /**
2
+ * PRI-714: outputLanguage coverage across ALL internalization peer agents.
3
+ *
4
+ * Owner-facing review/implementation artifacts (evaluator summary, rollout
5
+ * reviewer summary, artificer implementationSummary, dreamer candidates,
6
+ * philosopher thesis) must follow `principles.outputLanguage` exactly like
7
+ * scribe principle fields have since PRI-336.
8
+ *
9
+ * Validates per builder:
10
+ * - zh-CN: instruction carries the language directive
11
+ * - en: instruction carries the English directive
12
+ * - undefined: instruction is byte-identical to the base protocol (backward
13
+ * compatible — the pre-PRI-714 tests assert this identity too)
14
+ * - technical identifiers / JSON keys stay untranslated (directive content)
15
+ *
16
+ * PRI-633: the instruction (role + protocol + directive) travels on the
17
+ * builder result's `systemPrompt` channel — assertions target it, and the
18
+ * serialized payload must NOT contain the instruction.
19
+ */
20
+ import { describe, it, expect } from 'vitest';
21
+ import { EvaluatorPromptBuilder, EVALUATOR_PROTOCOL_INSTRUCTION } from '../evaluator-prompt-builder.js';
22
+ import { RolloutReviewerPromptBuilder, ROLLOUT_REVIEWER_PROTOCOL_INSTRUCTION } from '../rollout-reviewer-prompt-builder.js';
23
+ import { ArtificerPromptBuilder, ARTIFICER_PROTOCOL_INSTRUCTION } from '../artificer-prompt-builder.js';
24
+ import { DreamerPromptBuilder, buildDreamerProtocolInstruction } from '../dreamer-prompt-builder.js';
25
+ import { PhilosopherPromptBuilder, buildPhilosopherProtocolInstruction } from '../philosopher-prompt-builder.js';
26
+ import { buildLanguageDirective } from '../../language-directive.js';
27
+ /** Trust-boundary helper: validate parsed prompt JSON before property access. */
28
+ function parsePromptJson(raw) {
29
+ const parsed = JSON.parse(raw);
30
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
31
+ throw new Error(`parsePromptJson: expected object, got ${typeof parsed}`);
32
+ }
33
+ return parsed;
34
+ }
35
+ // ── Evaluator ────────────────────────────────────────────────────────────────
36
+ describe('EvaluatorPromptBuilder — outputLanguage (PRI-714)', () => {
37
+ const builder = new EvaluatorPromptBuilder();
38
+ const input = {
39
+ taskId: 'evaluator-task-001',
40
+ contextHash: 'ctx-abc123',
41
+ sourceArtificerArtifactId: 'pi-art-artificer-001',
42
+ artificerArtifact: { taskId: 'artificer-task-001' },
43
+ };
44
+ it('includes Chinese language directive naming review fields when zh-CN', () => {
45
+ const { message, systemPrompt } = builder.buildPrompt({ ...input, outputLanguage: 'zh-CN' });
46
+ expect(systemPrompt).toContain('LANGUAGE DIRECTIVE');
47
+ expect(systemPrompt).toContain('Simplified Chinese');
48
+ // review-subject field list present as EXPLICIT NESTED PATHS (PRI-714
49
+ // review fix: the previously shared flat list missed two free-text fields
50
+ // and left `explanation` ambiguous across three codeReview sub-objects).
51
+ expect(systemPrompt).toContain('(evaluation.summary, evaluation.strengths, evaluation.concerns, evaluation.requiredChanges, '
52
+ + 'codeReview.intentConsistency.explanation, codeReview.scopePrecision.explanation, '
53
+ + 'codeReview.traceCoverage.explanation, codeReview.traceCoverage.gaps, '
54
+ + 'adversarialCases[].rationale, painCoverage.explanation, compressionFidelity.explanation, risks)');
55
+ // …not the principle-subject list (the base instruction mentions
56
+ // antiPatterns for code review, so assert the directive's own field list
57
+ // string rather than global absence).
58
+ expect(systemPrompt).not.toContain('(title, statement, rationale, applicability, antiPatterns, description)');
59
+ // PRI-630 guard: the requirementLedger statement echo rule is part of the
60
+ // directive so the language instruction cannot override the convergence
61
+ // contract (statement must be a verbatim echo, never translated).
62
+ expect(systemPrompt).toContain('requirementLedger[].statement MUST be copied verbatim');
63
+ // PRI-633: the instruction left the payload for the system channel.
64
+ expect(message).not.toContain('LANGUAGE DIRECTIVE');
65
+ });
66
+ it('includes English language directive when en', () => {
67
+ const { systemPrompt } = builder.buildPrompt({ ...input, outputLanguage: 'en' });
68
+ expect(systemPrompt).toContain('English');
69
+ expect(systemPrompt).toContain('MUST NOT be translated');
70
+ });
71
+ it('instruction is byte-identical to base protocol when outputLanguage is undefined', () => {
72
+ const { systemPrompt } = builder.buildPrompt(input);
73
+ expect(systemPrompt).toBe(EVALUATOR_PROTOCOL_INSTRUCTION);
74
+ });
75
+ it('directive keeps technical identifiers and JSON keys untranslated', () => {
76
+ const { systemPrompt } = builder.buildPrompt({ ...input, outputLanguage: 'zh-CN' });
77
+ expect(systemPrompt).toContain('JSON field names (keys) MUST remain in English');
78
+ expect(systemPrompt).toContain('Lineage and evidence fields MUST NOT be translated');
79
+ });
80
+ });
81
+ // ── Dreamer ──────────────────────────────────────────────────────────────────
82
+ describe('DreamerPromptBuilder — outputLanguage (PRI-714 review fix)', () => {
83
+ const input = {
84
+ taskId: 'dreamer-task-001',
85
+ contextHash: 'ctx-abc123',
86
+ contextRefs: ['pi-art-diag-001'],
87
+ predecessorOutput: { diagnosis: 'null crash' },
88
+ };
89
+ it('appends the dreamer-subject directive to the REAL generated prompt message when zh-CN', () => {
90
+ // The real message the runner hands to adapter.startRun — not a helper.
91
+ const { message, systemPrompt } = new DreamerPromptBuilder().buildPrompt({ ...input, outputLanguage: 'zh-CN' });
92
+ expect(systemPrompt).toContain('LANGUAGE DIRECTIVE');
93
+ expect(systemPrompt).toContain('Simplified Chinese');
94
+ // Field list matches the actual DreamerCandidate schema (riskLevel is an
95
+ // enum — absent from the translatable list).
96
+ expect(systemPrompt).toContain('(candidates[].badDecision, candidates[].betterDecision, candidates[].rationale, candidates[].strategicPerspective)');
97
+ // PRI-633: the directive does NOT survive into the serialized payload —
98
+ // it lives on the system channel now.
99
+ const parsed = parsePromptJson(message);
100
+ expect(parsed).not.toHaveProperty('dreamerInstruction');
101
+ expect(message).not.toContain('LANGUAGE DIRECTIVE');
102
+ });
103
+ it('directive works with coreGrounding ON (axiom block + directive coexist)', () => {
104
+ const { systemPrompt } = new DreamerPromptBuilder({ coreGrounding: true }).buildPrompt({ ...input, outputLanguage: 'zh-CN' });
105
+ expect(systemPrompt).toContain('CORE AXIOMS:');
106
+ expect(systemPrompt).toContain('LANGUAGE DIRECTIVE');
107
+ });
108
+ it('directive also works with coreGrounding OFF (review bug: only the axiom block used the language)', () => {
109
+ const { systemPrompt } = new DreamerPromptBuilder({ coreGrounding: false }).buildPrompt({ ...input, outputLanguage: 'en' });
110
+ expect(systemPrompt).not.toContain('CORE AXIOMS:');
111
+ expect(systemPrompt).toContain('LANGUAGE DIRECTIVE');
112
+ expect(systemPrompt).toContain('English');
113
+ });
114
+ it('instruction is byte-identical to the base protocol when outputLanguage is undefined', () => {
115
+ const withLang = new DreamerPromptBuilder().buildPrompt({ ...input, outputLanguage: undefined });
116
+ const base = buildDreamerProtocolInstruction({ coreGrounding: false });
117
+ expect(withLang.systemPrompt).toBe(base);
118
+ // And the class-level constructor default behaves identically.
119
+ const implicit = new DreamerPromptBuilder().buildPrompt(input);
120
+ expect(implicit.systemPrompt).toBe(base);
121
+ });
122
+ });
123
+ // ── Philosopher ──────────────────────────────────────────────────────────────
124
+ describe('PhilosopherPromptBuilder — outputLanguage (PRI-714 review fix)', () => {
125
+ const input = {
126
+ taskId: 'philosopher-task-001',
127
+ contextHash: 'ctx-abc123',
128
+ dreamerArtifact: { taskId: 'dreamer-task-001' },
129
+ sourceDreamerArtifactId: 'pi-art-dreamer-001',
130
+ };
131
+ it('appends the philosopher-subject directive to the REAL generated prompt message when zh-CN', () => {
132
+ const { message, systemPrompt } = new PhilosopherPromptBuilder().buildPrompt({ ...input, outputLanguage: 'zh-CN' });
133
+ expect(systemPrompt).toContain('LANGUAGE DIRECTIVE');
134
+ expect(systemPrompt).toContain('Simplified Chinese');
135
+ // Field list matches the actual PhilosopherOutputV1 schema (confidence is
136
+ // numeric — absent from the translatable list).
137
+ expect(systemPrompt).toContain('(thesis, principleCandidate.title, principleCandidate.rationale, principleCandidate.scope, risks[])');
138
+ // PRI-633: the instruction left the payload for the system channel.
139
+ const parsed = parsePromptJson(message);
140
+ expect(parsed).not.toHaveProperty('philosopherInstruction');
141
+ expect(message).not.toContain('LANGUAGE DIRECTIVE');
142
+ });
143
+ it('directive works with coreGrounding ON and OFF', () => {
144
+ const on = new PhilosopherPromptBuilder({ coreGrounding: true }).buildPrompt({ ...input, outputLanguage: 'zh-CN' });
145
+ expect(on.systemPrompt).toContain('CORE AXIOMS:');
146
+ expect(on.systemPrompt).toContain('LANGUAGE DIRECTIVE');
147
+ const off = new PhilosopherPromptBuilder({ coreGrounding: false }).buildPrompt({ ...input, outputLanguage: 'en' });
148
+ expect(off.systemPrompt).not.toContain('CORE AXIOMS:');
149
+ expect(off.systemPrompt).toContain('LANGUAGE DIRECTIVE');
150
+ expect(off.systemPrompt).toContain('English');
151
+ });
152
+ it('instruction is byte-identical to the base protocol when outputLanguage is undefined', () => {
153
+ const withLang = new PhilosopherPromptBuilder().buildPrompt({ ...input, outputLanguage: undefined });
154
+ const base = buildPhilosopherProtocolInstruction({ coreGrounding: false });
155
+ expect(withLang.systemPrompt).toBe(base);
156
+ });
157
+ });
158
+ // ── Rollout Reviewer ─────────────────────────────────────────────────────────
159
+ describe('RolloutReviewerPromptBuilder — outputLanguage (PRI-714)', () => {
160
+ const builder = new RolloutReviewerPromptBuilder();
161
+ const input = {
162
+ taskId: 'task-rr-001',
163
+ contextHash: 'ctx-abc123',
164
+ sourceEvaluatorArtifactId: 'pi-art-evaluator-001',
165
+ evaluatorArtifact: { taskId: 'eval-001' },
166
+ };
167
+ it('includes Chinese language directive naming review fields when zh-CN', () => {
168
+ const result = builder.buildPrompt({ ...input, outputLanguage: 'zh-CN' });
169
+ expect(result.systemPrompt).toContain('LANGUAGE DIRECTIVE');
170
+ expect(result.systemPrompt).toContain('Simplified Chinese');
171
+ // PRI-714 review fix: the rollout reviewer names its OWN schema fields
172
+ // (review.*) — not the evaluator's evaluation.*/codeReview.* paths.
173
+ expect(result.systemPrompt).toContain('(review.summary, review.requiredChanges, review.rolloutRisks, review.safetyChecks, risks)');
174
+ expect(result.systemPrompt).not.toContain('codeReview.traceCoverage');
175
+ expect(result.systemPrompt).not.toContain('requirementLedger');
176
+ });
177
+ it('includes English language directive when en', () => {
178
+ const result = builder.buildPrompt({ ...input, outputLanguage: 'en' });
179
+ expect(result.systemPrompt).toContain('English');
180
+ expect(result.systemPrompt).toContain('MUST NOT be translated');
181
+ });
182
+ it('instruction is byte-identical to base protocol when outputLanguage is undefined', () => {
183
+ const result = builder.buildPrompt(input);
184
+ expect(result.systemPrompt).toBe(ROLLOUT_REVIEWER_PROTOCOL_INSTRUCTION);
185
+ expect(result.message).toBeDefined();
186
+ // PRI-633: the instruction left the payload for the system channel.
187
+ const parsed = parsePromptJson(result.message);
188
+ expect(parsed).not.toHaveProperty('rolloutReviewerInstruction');
189
+ });
190
+ });
191
+ // ── Artificer ────────────────────────────────────────────────────────────────
192
+ describe('ArtificerPromptBuilder — outputLanguage (PRI-714)', () => {
193
+ const builder = new ArtificerPromptBuilder();
194
+ const input = {
195
+ contextMode: 'v1',
196
+ taskId: 'artificer-task-001',
197
+ contextHash: 'ctx-abc123',
198
+ sourceScribeArtifactId: 'pi-art-scribe-001',
199
+ scribeArtifact: { taskId: 'scribe-001' },
200
+ };
201
+ it('includes Chinese language directive naming implementation fields when zh-CN', () => {
202
+ const result = builder.buildPrompt({ ...input, outputLanguage: 'zh-CN' });
203
+ expect(result.systemPrompt).toContain('LANGUAGE DIRECTIVE');
204
+ expect(result.systemPrompt).toContain('Simplified Chinese');
205
+ // implementation-subject field list
206
+ expect(result.systemPrompt).toContain('implementationSummary');
207
+ expect(result.systemPrompt).not.toContain('requiredChanges');
208
+ });
209
+ it('directive appears after the context-mode block in v2 mode too', () => {
210
+ const ruleContext = {
211
+ version: 2,
212
+ history: { status: 'available', truncated: false, calls: [] },
213
+ facts: { priorReadOfTarget: 'unknown', readCount: 0, writeCount: 0, uniqueWritePathCount: 0, sameActionBlockCount: null },
214
+ };
215
+ const result = builder.buildPrompt({
216
+ ...input,
217
+ contextMode: 'v2',
218
+ behaviorExamplePack: {
219
+ sourceNegativeCase: { caseId: 'negative-1', kind: 'negative', toolName: 'write_file', params: { path: 'unread' }, expectedDecision: 'block', ruleContext },
220
+ ownerDesiredOutcome: 'Block unread writes.',
221
+ positiveCounterexamples: [{ caseId: 'positive-1', kind: 'positive', toolName: 'write_file', params: { path: 'read' }, expectedDecision: 'allow', ruleContext }],
222
+ evidenceRefs: ['pain:1'],
223
+ redactionNotes: [],
224
+ },
225
+ outputLanguage: 'zh-CN',
226
+ });
227
+ expect(result.systemPrompt).toContain('CONTEXT MODE: v2');
228
+ expect(result.systemPrompt).toContain('LANGUAGE DIRECTIVE');
229
+ });
230
+ it('instruction is byte-identical to base protocol + v1 context block when outputLanguage is undefined', () => {
231
+ const result = builder.buildPrompt(input);
232
+ const base = ARTIFICER_PROTOCOL_INSTRUCTION
233
+ + '\nCONTEXT MODE: v1\n- You MUST NOT read input.context.\n'
234
+ + '- You MUST NOT output requiresContextVersion or case-level ruleContext.\n'
235
+ + '- Generate an action-only rule from the Scribe principle.\n';
236
+ expect(result.systemPrompt).toBe(base);
237
+ });
238
+ });
239
+ // ── buildLanguageDirective subject variants ─────────────────────────────────
240
+ describe('buildLanguageDirective — subject field lists (PRI-714)', () => {
241
+ it('principle subject keeps the PRI-336 field list (backward compatible default)', () => {
242
+ const directive = buildLanguageDirective('zh-CN');
243
+ expect(directive).toContain('(title, statement, rationale, applicability, antiPatterns, description)');
244
+ });
245
+ it('review subject enumerates the evaluator schema with explicit nested paths', () => {
246
+ const directive = buildLanguageDirective('zh-CN', 'review');
247
+ expect(directive).toContain('(evaluation.summary, evaluation.strengths, evaluation.concerns, evaluation.requiredChanges, codeReview.intentConsistency.explanation, codeReview.scopePrecision.explanation, codeReview.traceCoverage.explanation, codeReview.traceCoverage.gaps, adversarialCases[].rationale, painCoverage.explanation, compressionFidelity.explanation, risks)');
248
+ // The review subject carries the PRI-630 requirementLedger verbatim-echo
249
+ // rule; no other subject does.
250
+ expect(directive).toContain('requirementLedger[].statement MUST be copied verbatim');
251
+ for (const other of ['principle', 'dreamer', 'philosopher', 'rollout-review', 'implementation']) {
252
+ expect(buildLanguageDirective('zh-CN', other)).not.toContain('requirementLedger');
253
+ }
254
+ });
255
+ it('dreamer subject enumerates the dreamer candidate fields', () => {
256
+ const directive = buildLanguageDirective('en', 'dreamer');
257
+ expect(directive).toContain('(candidates[].badDecision, candidates[].betterDecision, candidates[].rationale, candidates[].strategicPerspective)');
258
+ });
259
+ it('philosopher subject enumerates the philosopher output fields', () => {
260
+ const directive = buildLanguageDirective('en', 'philosopher');
261
+ expect(directive).toContain('(thesis, principleCandidate.title, principleCandidate.rationale, principleCandidate.scope, risks[])');
262
+ });
263
+ it('rollout-review subject enumerates the rollout reviewer schema (not the evaluator schema)', () => {
264
+ const directive = buildLanguageDirective('en', 'rollout-review');
265
+ expect(directive).toContain('(review.summary, review.requiredChanges, review.rolloutRisks, review.safetyChecks, risks)');
266
+ expect(directive).not.toContain('codeReview');
267
+ });
268
+ it('implementation subject enumerates implementation fields', () => {
269
+ const directive = buildLanguageDirective('zh-CN', 'implementation');
270
+ expect(directive).toContain('(implementationSummary, risks)');
271
+ });
272
+ it('all subjects share the no-translate rules', () => {
273
+ for (const directive of [
274
+ buildLanguageDirective('zh-CN'),
275
+ buildLanguageDirective('zh-CN', 'dreamer'),
276
+ buildLanguageDirective('zh-CN', 'philosopher'),
277
+ buildLanguageDirective('zh-CN', 'review'),
278
+ buildLanguageDirective('zh-CN', 'rollout-review'),
279
+ buildLanguageDirective('zh-CN', 'implementation'),
280
+ ]) {
281
+ expect(directive).toContain('MUST NOT be translated');
282
+ expect(directive).toContain('JSON field names (keys) MUST remain in English');
283
+ }
284
+ });
285
+ it('undefined outputLanguage yields empty directive for every subject', () => {
286
+ for (const subject of ['principle', 'dreamer', 'philosopher', 'review', 'rollout-review', 'implementation']) {
287
+ expect(buildLanguageDirective(undefined, subject)).toBe('');
288
+ }
289
+ });
290
+ });
291
+ //# sourceMappingURL=peer-prompt-language.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-prompt-language.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/peer-prompt-language.test.ts"],"names":[],"mappings":"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"}
@@ -69,19 +69,19 @@ describe('PhilosopherPromptBuilder', () => {
69
69
  const parsed = JSON.parse(result.message);
70
70
  expect(parsed.taskId).toBe('task-philosopher-001');
71
71
  });
72
- it('philosopherInstruction is present and contains key protocol keywords', () => {
72
+ it('systemPrompt (PRI-633: ex-philosopherInstruction) is present and contains key protocol keywords', () => {
73
73
  const builder = new PhilosopherPromptBuilder();
74
74
  const result = builder.buildPrompt(MINIMAL_INPUT);
75
- expect(result.promptInput.philosopherInstruction).toBeDefined();
76
- expect(result.promptInput.philosopherInstruction.length).toBeGreaterThan(100);
77
- expect(result.promptInput.philosopherInstruction).toContain('Philosopher');
78
- expect(result.promptInput.philosopherInstruction).toContain('principle');
79
- expect(result.promptInput.philosopherInstruction).toContain('thesis');
75
+ expect(result.systemPrompt).toBeDefined();
76
+ expect(result.systemPrompt.length).toBeGreaterThan(100);
77
+ expect(result.systemPrompt).toContain('Philosopher');
78
+ expect(result.systemPrompt).toContain('principle');
79
+ expect(result.systemPrompt).toContain('thesis');
80
80
  });
81
81
  it('philosopherInstruction contains the output JSON schema format', () => {
82
82
  const builder = new PhilosopherPromptBuilder();
83
83
  const result = builder.buildPrompt(MINIMAL_INPUT);
84
- const instruction = result.promptInput.philosopherInstruction;
84
+ const instruction = result.systemPrompt;
85
85
  expect(instruction).toContain('"taskId"');
86
86
  expect(instruction).toContain('"sourceDreamerArtifactId"');
87
87
  expect(instruction).toContain('"thesis"');
@@ -96,21 +96,21 @@ describe('PhilosopherPromptBuilder', () => {
96
96
  it('philosopherInstruction specifies confidence must be a number between 0 and 1', () => {
97
97
  const builder = new PhilosopherPromptBuilder();
98
98
  const result = builder.buildPrompt(MINIMAL_INPUT);
99
- const instruction = result.promptInput.philosopherInstruction;
99
+ const instruction = result.systemPrompt;
100
100
  expect(instruction).toMatch(/confidence.*number/i);
101
101
  expect(instruction).toMatch(/0.*1/);
102
102
  });
103
103
  it('philosopherInstruction specifies output must be pure JSON only', () => {
104
104
  const builder = new PhilosopherPromptBuilder();
105
105
  const result = builder.buildPrompt(MINIMAL_INPUT);
106
- const instruction = result.promptInput.philosopherInstruction;
106
+ const instruction = result.systemPrompt;
107
107
  expect(instruction).toMatch(/only.*JSON|JSON.*only|pure JSON/i);
108
108
  expect(instruction).toMatch(/no markdown/i);
109
109
  });
110
110
  it('philosopherInstruction tells LLM to copy sourceDreamerArtifactId from input', () => {
111
111
  const builder = new PhilosopherPromptBuilder();
112
112
  const result = builder.buildPrompt(MINIMAL_INPUT);
113
- const instruction = result.promptInput.philosopherInstruction;
113
+ const instruction = result.systemPrompt;
114
114
  expect(instruction).toContain('input.sourceDreamerArtifactId');
115
115
  });
116
116
  it('sourceDreamerArtifactId appears at top level of serialized JSON message', () => {
@@ -134,7 +134,7 @@ describe('PhilosopherPromptBuilder', () => {
134
134
  expect(result.promptInput.sourceDreamerArtifactId).toBe('');
135
135
  expect(() => JSON.parse(result.message)).not.toThrow();
136
136
  });
137
- it('message JSON contains all required PhilosopherPromptInput fields at top level', () => {
137
+ it('message JSON contains all required PhilosopherPromptInput fields at top level (no role instruction, PRI-633)', () => {
138
138
  const builder = new PhilosopherPromptBuilder();
139
139
  const result = builder.buildPrompt(MINIMAL_INPUT);
140
140
  const parsed = JSON.parse(result.message);
@@ -142,7 +142,8 @@ describe('PhilosopherPromptBuilder', () => {
142
142
  expect(parsed).toHaveProperty('contextHash');
143
143
  expect(parsed).toHaveProperty('dreamerArtifact');
144
144
  expect(parsed).toHaveProperty('sourceDreamerArtifactId');
145
- expect(parsed).toHaveProperty('philosopherInstruction');
145
+ expect(parsed).not.toHaveProperty('philosopherInstruction');
146
+ expect(result.systemPrompt).toContain('You are a Philosopher agent');
146
147
  });
147
148
  });
148
149
  });
@@ -1 +1 @@
1
- {"version":3,"file":"philosopher-prompt-builder.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"philosopher-prompt-builder.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.ts"],"names":[],"mappings":"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"}
@@ -23,14 +23,14 @@ describe('RolloutReviewerPromptBuilder', () => {
23
23
  });
24
24
  expect(result.promptInput.sourceEvaluatorArtifactId).toBe('pi-art-evaluator-001');
25
25
  });
26
- it('promptInput contains rolloutReviewerInstruction', () => {
26
+ it('systemPrompt carries the rollout reviewer instruction (PRI-633)', () => {
27
27
  const result = builder.buildPrompt({
28
28
  taskId: 'task-rr-001',
29
29
  contextHash: 'ctx-abc123',
30
30
  sourceEvaluatorArtifactId: 'pi-art-evaluator-001',
31
31
  evaluatorArtifact: null,
32
32
  });
33
- expect(result.promptInput.rolloutReviewerInstruction).toBe(ROLLOUT_REVIEWER_PROTOCOL_INSTRUCTION);
33
+ expect(result.systemPrompt).toBe(ROLLOUT_REVIEWER_PROTOCOL_INSTRUCTION);
34
34
  });
35
35
  it('promptContractVersion is set correctly', () => {
36
36
  const result = builder.buildPrompt({
@@ -1 +1 @@
1
- {"version":3,"file":"rollout-reviewer-prompt-builder.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollout-reviewer-prompt-builder.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.ts"],"names":[],"mappings":"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"}
@@ -35,10 +35,10 @@ describe('ScribePromptBuilder (PRI-109)', () => {
35
35
  expect(instruction).toContain('confidence MUST be a number between 0.0 and 1.0');
36
36
  expect(instruction).toContain('NOT a string');
37
37
  });
38
- it('promptInput includes scribeInstruction', () => {
39
- const { promptInput } = builder.buildPrompt(defaultInput);
38
+ it('systemPrompt carries the scribe instruction (PRI-633)', () => {
39
+ const { systemPrompt } = builder.buildPrompt(defaultInput);
40
40
  const expectedInstruction = buildScribeProtocolInstruction();
41
- expect(promptInput.scribeInstruction).toBe(expectedInstruction);
41
+ expect(systemPrompt).toBe(expectedInstruction);
42
42
  });
43
43
  it('promptInput includes promptContractVersion', () => {
44
44
  const { promptInput } = builder.buildPrompt(defaultInput);
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-prompt-builder.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scribe-prompt-builder.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.ts"],"names":[],"mappings":"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"}
@@ -31,42 +31,43 @@ const BASE_INPUT = {
31
31
  describe('ScribePromptBuilder — outputLanguage (PRI-336)', () => {
32
32
  it('includes Chinese language directive when outputLanguage is zh-CN', () => {
33
33
  const builder = new ScribePromptBuilder();
34
- const { message } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'zh-CN' });
35
- const parsed = parsePromptJson(message);
36
- expect(parsed.scribeInstruction).toContain('Simplified Chinese');
37
- expect(parsed.scribeInstruction).toContain('简体中文');
38
- expect(parsed.scribeInstruction).toContain('LANGUAGE DIRECTIVE');
34
+ const { message, systemPrompt } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'zh-CN' });
35
+ expect(systemPrompt).toContain('Simplified Chinese');
36
+ expect(systemPrompt).toContain('简体中文');
37
+ expect(systemPrompt).toContain('LANGUAGE DIRECTIVE');
38
+ // PRI-633: the instruction (with its language directive) left the payload.
39
+ expect(message).not.toContain('LANGUAGE DIRECTIVE');
39
40
  });
40
41
  it('includes English language directive when outputLanguage is en', () => {
41
42
  const builder = new ScribePromptBuilder();
42
- const { message } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'en' });
43
- const parsed = parsePromptJson(message);
44
- expect(parsed.scribeInstruction).toContain('English');
45
- expect(parsed.scribeInstruction).toContain('PRI-336');
43
+ const { message, systemPrompt } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'en' });
44
+ expect(systemPrompt).toContain('English');
45
+ expect(systemPrompt).toContain('PRI-336');
46
+ expect(message).not.toContain('PRI-336');
46
47
  });
47
48
  it('does NOT include language directive when outputLanguage is undefined', () => {
48
49
  const builder = new ScribePromptBuilder();
49
- const { message } = builder.buildPrompt(BASE_INPUT);
50
- const parsed = parsePromptJson(message);
51
- // scribeInstruction should be the base instruction without language directive
50
+ const { message, systemPrompt } = builder.buildPrompt(BASE_INPUT);
51
+ // PRI-633: the instruction should be the base instruction without language directive
52
52
  const baseInstruction = buildScribeProtocolInstruction();
53
- expect(parsed.scribeInstruction).toBe(baseInstruction);
54
- expect(parsed.scribeInstruction).not.toContain('LANGUAGE DIRECTIVE');
55
- expect(parsed.scribeInstruction).not.toContain('PRI-336');
53
+ expect(systemPrompt).toBe(baseInstruction);
54
+ expect(systemPrompt).not.toContain('LANGUAGE DIRECTIVE');
55
+ expect(systemPrompt).not.toContain('PRI-336');
56
+ expect(message).not.toContain('LANGUAGE DIRECTIVE');
56
57
  });
57
58
  it('includes technical identifiers not translated instruction', () => {
58
59
  const builder = new ScribePromptBuilder();
59
- const { message } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'zh-CN' });
60
- const parsed = parsePromptJson(message);
61
- expect(parsed.scribeInstruction).toContain('taskId');
62
- expect(parsed.scribeInstruction).toContain('sourcePainId');
63
- expect(parsed.scribeInstruction).toContain('MUST NOT be translated');
60
+ const { message, systemPrompt } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'zh-CN' });
61
+ expect(systemPrompt).toContain('taskId');
62
+ expect(systemPrompt).toContain('sourcePainId');
63
+ expect(systemPrompt).toContain('MUST NOT be translated');
64
+ expect(message).not.toContain('MUST NOT be translated');
64
65
  });
65
66
  it('includes lineage fields not translated instruction', () => {
66
67
  const builder = new ScribePromptBuilder();
67
- const { message } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'en' });
68
- const parsed = parsePromptJson(message);
69
- expect(parsed.scribeInstruction).toContain('Lineage and evidence fields MUST NOT be translated');
68
+ const { message, systemPrompt } = builder.buildPrompt({ ...BASE_INPUT, outputLanguage: 'en' });
69
+ expect(systemPrompt).toContain('Lineage and evidence fields MUST NOT be translated');
70
+ expect(message).not.toContain('Lineage and evidence fields MUST NOT be translated');
70
71
  });
71
72
  it('preserves all other prompt fields when outputLanguage is provided', () => {
72
73
  const builder = new ScribePromptBuilder();
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-prompt-language.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/scribe-prompt-language.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scribe-prompt-language.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/scribe-prompt-language.test.ts"],"names":[],"mappings":"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"}