@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.
- package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts +2 -0
- package/dist/runtime-v2/__tests__/system-prompt-merge.test.d.ts.map +1 -0
- package/dist/runtime-v2/__tests__/system-prompt-merge.test.js +24 -0
- package/dist/runtime-v2/__tests__/system-prompt-merge.test.js.map +1 -0
- package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js +26 -0
- package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js.map +1 -1
- package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js +33 -0
- package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js.map +1 -1
- package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts +13 -0
- package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.d.ts.map +1 -0
- package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js +86 -0
- package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-systemprompt-fold.test.js.map +1 -0
- package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js +30 -0
- package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts +6 -0
- package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js +11 -3
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -1
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts +6 -0
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js +22 -7
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js.map +1 -1
- package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js +11 -2
- package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js.map +1 -1
- package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts +8 -5
- package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +14 -3
- package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
- package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +41 -1
- package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/diagnostician/distiller-prompt-builder.d.ts +6 -2
- package/dist/runtime-v2/diagnostician/distiller-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/diagnostician/distiller-prompt-builder.js +1 -2
- package/dist/runtime-v2/diagnostician/distiller-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +3 -1
- package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +35 -16
- package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/diagnostician/router-prompt-builder.d.ts +6 -2
- package/dist/runtime-v2/diagnostician/router-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/diagnostician/router-prompt-builder.js +1 -2
- package/dist/runtime-v2/diagnostician/router-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/diagnostician-prompt-builder.d.ts +7 -9
- package/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +1 -1
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +1 -1
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js +11 -11
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder-v2.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +28 -26
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +6 -3
- package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js +21 -18
- package/dist/runtime-v2/internalization/__tests__/dreamer-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts +2 -0
- package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js +300 -0
- package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js +7 -5
- package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js +9 -9
- package/dist/runtime-v2/internalization/__tests__/evolution-alignment-contract.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts +21 -0
- package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js +291 -0
- package/dist/runtime-v2/internalization/__tests__/peer-prompt-language.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js +13 -12
- package/dist/runtime-v2/internalization/__tests__/philosopher-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js +2 -2
- package/dist/runtime-v2/internalization/__tests__/rollout-reviewer-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js +3 -3
- package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js +24 -23
- package/dist/runtime-v2/internalization/__tests__/scribe-prompt-language.test.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +15 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js +6 -3
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.js +6 -1
- package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/diag-distiller-runner.js +2 -1
- package/dist/runtime-v2/internalization/diag-distiller-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/diag-rootcause-runner.js +2 -1
- package/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/diag-router-runner.js +2 -1
- package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/dreamer-prompt-builder.d.ts +21 -5
- package/dist/runtime-v2/internalization/dreamer-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/dreamer-prompt-builder.js +21 -7
- package/dist/runtime-v2/internalization/dreamer-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/dreamer-runner.d.ts +7 -0
- package/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/dreamer-runner.js +6 -3
- package/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +15 -1
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +7 -2
- package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts +14 -0
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +18 -7
- package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/philosopher-prompt-builder.d.ts +20 -5
- package/dist/runtime-v2/internalization/philosopher-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/philosopher-prompt-builder.js +20 -7
- package/dist/runtime-v2/internalization/philosopher-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/philosopher-runner.d.ts +7 -0
- package/dist/runtime-v2/internalization/philosopher-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/philosopher-runner.js +6 -3
- package/dist/runtime-v2/internalization/philosopher-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.d.ts +14 -1
- package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.js +9 -2
- package/dist/runtime-v2/internalization/rollout-reviewer-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts +10 -0
- package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/rollout-reviewer-runner.js +5 -1
- package/dist/runtime-v2/internalization/rollout-reviewer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts +6 -1
- package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-prompt-builder.js +1 -2
- package/dist/runtime-v2/internalization/scribe-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.js +2 -1
- package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
- package/dist/runtime-v2/language-directive.d.ts +20 -2
- package/dist/runtime-v2/language-directive.d.ts.map +1 -1
- package/dist/runtime-v2/language-directive.js +25 -13
- package/dist/runtime-v2/language-directive.js.map +1 -1
- package/dist/runtime-v2/observer/__tests__/correction-observer.test.js +3 -2
- package/dist/runtime-v2/observer/__tests__/correction-observer.test.js.map +1 -1
- package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js +3 -2
- package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js.map +1 -1
- package/dist/runtime-v2/observer/correction-observer.d.ts +7 -0
- package/dist/runtime-v2/observer/correction-observer.d.ts.map +1 -1
- package/dist/runtime-v2/observer/correction-observer.js +8 -2
- package/dist/runtime-v2/observer/correction-observer.js.map +1 -1
- package/dist/runtime-v2/observer/empathy-observer.d.ts +6 -0
- package/dist/runtime-v2/observer/empathy-observer.d.ts.map +1 -1
- package/dist/runtime-v2/observer/empathy-observer.js +7 -1
- package/dist/runtime-v2/observer/empathy-observer.js.map +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.d.ts +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.js +3 -1
- package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
- package/dist/runtime-v2/runtime-protocol.d.ts +9 -0
- package/dist/runtime-v2/runtime-protocol.d.ts.map +1 -1
- package/dist/runtime-v2/runtime-protocol.js +9 -0
- package/dist/runtime-v2/runtime-protocol.js.map +1 -1
- package/dist/runtime-v2/signal-collector/index.d.ts +1 -1
- package/dist/runtime-v2/signal-collector/index.d.ts.map +1 -1
- package/dist/runtime-v2/signal-collector/index.js +1 -1
- package/dist/runtime-v2/signal-collector/index.js.map +1 -1
- package/dist/runtime-v2/signal-collector/llm-stage.d.ts +6 -0
- package/dist/runtime-v2/signal-collector/llm-stage.d.ts.map +1 -1
- package/dist/runtime-v2/signal-collector/llm-stage.js +7 -1
- package/dist/runtime-v2/signal-collector/llm-stage.js.map +1 -1
- package/dist/runtime-v2/system-prompt-merge.d.ts +19 -0
- package/dist/runtime-v2/system-prompt-merge.d.ts.map +1 -0
- package/dist/runtime-v2/system-prompt-merge.js +24 -0
- package/dist/runtime-v2/system-prompt-merge.js.map +1 -0
- package/package.json +1 -1
|
@@ -8,24 +8,39 @@
|
|
|
8
8
|
*
|
|
9
9
|
* ## Contract
|
|
10
10
|
*
|
|
11
|
-
* buildPrompt() takes DreamerPromptBuilderInput and returns a
|
|
12
|
-
* to be passed as `inputPayload` in
|
|
11
|
+
* buildPrompt() takes DreamerPromptBuilderInput and returns a build result
|
|
12
|
+
* whose `message` is the JSON string to be passed as `inputPayload` in
|
|
13
|
+
* StartRunInput, and whose `systemPrompt` is the base-layer system prompt
|
|
14
|
+
* (role + protocol) to pass via `StartRunInput.systemPrompt` (PRI-633).
|
|
13
15
|
*
|
|
14
16
|
* ## Constraints
|
|
15
17
|
*
|
|
16
|
-
* -
|
|
17
|
-
* -
|
|
18
|
+
* - Message payload is ONLY task data (JSON) — no markdown, no file ops, no tool calls
|
|
19
|
+
* - Role/protocol instructions travel as the base systemPrompt layer, NOT in
|
|
20
|
+
* the user payload (PRI-633); the profile's configured systemPrompt remains
|
|
21
|
+
* the append layer owned by the agent profile (DPB-07, as revised by PRI-633)
|
|
18
22
|
* - buildPrompt() is a pure function — no DB calls, no side effects
|
|
19
23
|
*/
|
|
20
24
|
import { buildCoreAxiomBlock } from '../core-principles/core-axiom-block.js';
|
|
25
|
+
import { buildLanguageDirective } from '../language-directive.js';
|
|
21
26
|
/**
|
|
22
27
|
* Build the Dreamer protocol instruction with optional core axiom grounding.
|
|
23
28
|
*
|
|
24
29
|
* When `coreGrounding` is true, a CORE AXIOMS section is injected so the
|
|
25
30
|
* Dreamer can correctly reference existing principles via sourcePrincipleId.
|
|
31
|
+
*
|
|
32
|
+
* PRI-714 (review fix): when `outputLanguage` is provided, a language
|
|
33
|
+
* directive is appended so the CANDIDATE OUTPUT (not just the axiom block)
|
|
34
|
+
* follows the owner's language — badDecision/betterDecision/rationale/
|
|
35
|
+
* strategicPerspective are the human-readable fields (riskLevel stays an
|
|
36
|
+
* English enum; lineage/IDs stay untranslated). Undefined = no directive
|
|
37
|
+
* (byte-identical to the pre-PRI-714 instruction).
|
|
26
38
|
*/
|
|
27
39
|
export function buildDreamerProtocolInstruction(opts = {}) {
|
|
28
40
|
const coreAxiomsBlock = buildCoreAxiomBlock(opts);
|
|
41
|
+
// PRI-714: output-language directive for the candidate fields (empty string
|
|
42
|
+
// when outputLanguage is undefined — instruction stays byte-identical).
|
|
43
|
+
const languageDirective = buildLanguageDirective(opts.outputLanguage, 'dreamer');
|
|
29
44
|
return `You are a Dreamer agent in a principle internalization pipeline. Your role is to generate alternative decision candidates based on the predecessor's diagnosis analysis.
|
|
30
45
|
|
|
31
46
|
PROTOCOL:
|
|
@@ -53,7 +68,7 @@ CONSTRAINTS:
|
|
|
53
68
|
- valid MUST be true on success
|
|
54
69
|
- sourcePrincipleId is OPTIONAL — only include it if you can identify a specific existing principle that this candidate relates to (use the axiom IDs from the CORE AXIOMS section above, e.g. T-01). Do NOT invent placeholder values like "pri-unknown", "pri-000", or any fabricated ID. If unsure, simply omit this field entirely
|
|
55
70
|
- sourcePainId is an optional string
|
|
56
|
-
`;
|
|
71
|
+
${languageDirective}`;
|
|
57
72
|
}
|
|
58
73
|
export class DreamerPromptBuilder {
|
|
59
74
|
coreGrounding;
|
|
@@ -74,10 +89,9 @@ export class DreamerPromptBuilder {
|
|
|
74
89
|
contextHash: input.contextHash,
|
|
75
90
|
contextRefs: input.contextRefs,
|
|
76
91
|
predecessorOutput: input.predecessorOutput,
|
|
77
|
-
dreamerInstruction,
|
|
78
92
|
};
|
|
79
93
|
const message = JSON.stringify(promptInput);
|
|
80
|
-
return { message, promptInput };
|
|
94
|
+
return { message, promptInput, systemPrompt: dreamerInstruction };
|
|
81
95
|
}
|
|
82
96
|
}
|
|
83
97
|
//# sourceMappingURL=dreamer-prompt-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dreamer-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/dreamer-prompt-builder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dreamer-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/dreamer-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAG7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA+BlE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAI,GAA0B,EAAE;IAEhC,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAClD,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAEjF,OAAO;;;;;;;;EAQP,eAAe;;;;;;;;;;;;;;;;;;;EAmBf,iBAAiB,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,OAAO,oBAAoB;IACd,aAAa,CAAU;IACvB,cAAc,CAAkB;IAEjD,YAAY,IAAI,GAAiE,EAAE;QACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,KAAgC;QAC1C,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;QAEnE,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;YACzD,aAAa;YACb,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,WAAW,GAAuB;YACtC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;SAC3C,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import type { RunHandle } from '../runtime-protocol.js';
|
|
18
18
|
import type { DreamerOutput, DreamerValidator } from './dreamer-output.js';
|
|
19
19
|
import type { TaskRecord } from '../task-status.js';
|
|
20
|
+
import type { OutputLanguage } from '../language-directive.js';
|
|
20
21
|
import { type PDErrorCategory } from '../error-categories.js';
|
|
21
22
|
import { BasePeerRunner } from '../runner/base-peer-runner.js';
|
|
22
23
|
import type { LoadedPredecessorArtifact } from './attach-summary-envelope.js';
|
|
@@ -55,6 +56,12 @@ export interface ResolvedDreamerRunnerOptions {
|
|
|
55
56
|
readonly owner: string;
|
|
56
57
|
readonly runtimeKind: string;
|
|
57
58
|
readonly agentId: string;
|
|
59
|
+
/**
|
|
60
|
+
* Owner's preferred language for candidate fields (PRI-336/PRI-714).
|
|
61
|
+
* Forwarded to DreamerPromptBuilder so badDecision/betterDecision/rationale
|
|
62
|
+
* follow the owner's language. Undefined = no directive (backward compatible).
|
|
63
|
+
*/
|
|
64
|
+
readonly outputLanguage?: OutputLanguage;
|
|
58
65
|
/** Whether to inject CORE_PRINCIPLES into the dreamer prompt (default: true). */
|
|
59
66
|
readonly coreGrounding: boolean;
|
|
60
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dreamer-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/dreamer-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AAIxC,qFAAqF;AACrF,UAAU,cAAc;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC5D;AAID,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAErD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,OAAO,GAAG,aAAa,CAAC,CAMvG,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB,GAAG,4BAA4B,
|
|
1
|
+
{"version":3,"file":"dreamer-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/dreamer-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AAIxC,qFAAqF;AACrF,UAAU,cAAc;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC5D;AAID,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAErD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,OAAO,GAAG,aAAa,CAAC,CAMvG,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB,GAAG,4BAA4B,CAWvG;AAID,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACtC;AAID,qBAAa,aAAc,SAAQ,cAAc,CAAC,cAAc,EAAE,aAAa,CAAC;IAC9E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,YAAY,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAQ9D;IAKD,IAAI,wBAAwB,IAAI,WAAW,CAAC,eAAe,CAAC,CAE3D;IAEK,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAyE1D;IAEK,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAgC/E;IAEK,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAOzF;IAGK,WAAW,CACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAgG1C;IAID;;;;;;;;OAQG;IACH,UAAmB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAY9G;IAED,UAAmB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAQnF;CACF"}
|
|
@@ -19,6 +19,7 @@ export function resolveDreamerRunnerOptions(options) {
|
|
|
19
19
|
defaultMaxAttempts: options.defaultMaxAttempts ?? DEFAULT_DREAMER_RUNNER_OPTIONS.defaultMaxAttempts,
|
|
20
20
|
owner: options.owner,
|
|
21
21
|
runtimeKind: options.runtimeKind,
|
|
22
|
+
outputLanguage: options.outputLanguage,
|
|
22
23
|
agentId: options.agentId ?? DEFAULT_DREAMER_RUNNER_OPTIONS.agentId,
|
|
23
24
|
coreGrounding: options.coreGrounding ?? DEFAULT_DREAMER_RUNNER_OPTIONS.coreGrounding,
|
|
24
25
|
};
|
|
@@ -111,8 +112,8 @@ export class DreamerRunner extends BasePeerRunner {
|
|
|
111
112
|
return { contextHash, contextRefs, predecessorOutput, edgePredecessor };
|
|
112
113
|
}
|
|
113
114
|
async invokeRuntime(taskId, context) {
|
|
114
|
-
const { coreGrounding } = this.resolvedOptions;
|
|
115
|
-
const builder = new DreamerPromptBuilder({ coreGrounding });
|
|
115
|
+
const { coreGrounding, outputLanguage } = this.resolvedOptions;
|
|
116
|
+
const builder = new DreamerPromptBuilder({ coreGrounding, outputLanguage });
|
|
116
117
|
// Layer 1 (design §6.2/§6.3, task 5.9): when context_manifest_budget is on,
|
|
117
118
|
// resolve the dreamer manifest against the loaded diag_router predecessor.
|
|
118
119
|
// Focused → inject only the manifest-allocated summary fields; fallback →
|
|
@@ -124,12 +125,13 @@ export class DreamerRunner extends BasePeerRunner {
|
|
|
124
125
|
predecessorOutput = resolved.fields;
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
|
-
const { message } = builder.buildPrompt({
|
|
128
|
+
const { message, systemPrompt } = builder.buildPrompt({
|
|
128
129
|
taskId,
|
|
129
130
|
contextHash: context.contextHash,
|
|
130
131
|
contextRefs: context.contextRefs,
|
|
131
132
|
predecessorOutput,
|
|
132
133
|
coreGrounding,
|
|
134
|
+
outputLanguage,
|
|
133
135
|
});
|
|
134
136
|
return this.runtimeAdapter.startRun({
|
|
135
137
|
agentSpec: { agentId: this.resolvedOptions.agentId, schemaVersion: 'v1' },
|
|
@@ -138,6 +140,7 @@ export class DreamerRunner extends BasePeerRunner {
|
|
|
138
140
|
contextItems: [],
|
|
139
141
|
outputSchemaRef: 'dreamer-output-v1',
|
|
140
142
|
timeoutMs: this.resolvedOptions.timeoutMs,
|
|
143
|
+
systemPrompt,
|
|
141
144
|
});
|
|
142
145
|
}
|
|
143
146
|
async validateOutput(output, taskId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dreamer-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/dreamer-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dreamer-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/dreamer-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import type { IntentContractV1 } from './intent-contract.js';
|
|
2
|
+
import type { OutputLanguage } from '../language-directive.js';
|
|
2
3
|
export interface EvaluatorPromptBuilderInput {
|
|
3
4
|
taskId: string;
|
|
4
5
|
contextHash: string;
|
|
5
6
|
sourceArtificerArtifactId: string;
|
|
6
7
|
artificerArtifact: unknown;
|
|
8
|
+
/**
|
|
9
|
+
* Owner's preferred language for review fields (PRI-714). When provided,
|
|
10
|
+
* the evaluator instruction carries a language directive so summary /
|
|
11
|
+
* strengths / concerns / requiredChanges / codeReview explanations are
|
|
12
|
+
* written in the owner's language. Undefined = no directive (backward
|
|
13
|
+
* compatible).
|
|
14
|
+
*/
|
|
15
|
+
outputLanguage?: OutputLanguage;
|
|
7
16
|
/**
|
|
8
17
|
* Scribe principle artifact (RuleHost MVP Activation, PRD Decision 12).
|
|
9
18
|
* Present when code review applies (artificer output is V2). Carries the
|
|
@@ -81,12 +90,17 @@ export interface EvaluatorPromptInput {
|
|
|
81
90
|
hostToolCatalog?: HostToolCatalogFacts;
|
|
82
91
|
/** Present only when the scribe artifact carries a validated intent contract (PRI-703 Phase 1). */
|
|
83
92
|
intentContract?: IntentContractV1;
|
|
84
|
-
evaluatorInstruction: string;
|
|
85
93
|
promptContractVersion: string;
|
|
86
94
|
}
|
|
87
95
|
export interface EvaluatorPromptBuildResult {
|
|
88
96
|
readonly message: string;
|
|
89
97
|
readonly promptInput: EvaluatorPromptInput;
|
|
98
|
+
/**
|
|
99
|
+
* PRI-633: base-layer system prompt (role + protocol). Previously embedded
|
|
100
|
+
* in the payload as `evaluatorInstruction`; now delivered via the system
|
|
101
|
+
* channel by the runtime adapter.
|
|
102
|
+
*/
|
|
103
|
+
readonly systemPrompt: string;
|
|
90
104
|
}
|
|
91
105
|
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\nCOMPRESSION FIDELITY COVERAGE CRITERIA (design \u00A76.5.2 \u2014 Stage 1 and Stage 2 use the SAME criteria):\nWhen evaluating whether the dreamer's decision dimensions are covered in the scribe's principle text, apply these rules:\n1. Coverage = a semantically equivalent expression exists. Rewording (using different phrasing to express the same verifiable content) is allowed; the text does NOT need to contain the exact field name or verbatim string. HOWEVER, abstraction is NOT rewording \u2014 rules 1 and 2 MUST be read together.\n2. betterDecision coverage MUST satisfy BOTH existence AND specificity: verifiable, concrete actions must be retained. Replacing concrete, verifiable actions (e.g. \"audit file tree\", \"grep all imports\", \"check export dependency graph\") with unverifiable abstractions (e.g. \"understand architecture\", \"grasp the overall structure\", \"thoroughly assess\") does NOT count as covered \u2014 even if the abstraction points to the same intent. The sole criterion: can an Owner or a piece of rule code determine whether the described action has been performed? If not, specificity is lost.\n3. riskLevel: expressed as a risk-level word (high/medium/low or Chinese equivalents) OR an equivalent risk description (e.g. \"cross-package changes will cause compilation failure if a caller is missed\") \u2014 both count as covered.\n4. badDecision: appearing in antiPatterns counts as covered. NOT appearing is NOT a defect.\n5. strategicPerspective: does NOT participate in fidelity judgement. Do NOT draw conclusions about it, and never include it in missingDimensions.\n6. When a dimension is NOT covered, you MUST name the required dimension (betterDecision / rationale / riskLevel only). Do NOT give only a qualitative description.\n7. If a dimension's value was not injected (not in the available fields), do NOT judge it \u2014 it is outside scope.\n\nThese criteria apply identically to Stage 1 and Stage 2.\n\nCONVERGENCE CONTRACT (PRI-630 \u2014 applies whenever input.previousEvaluation is present):\n1. input.previousEvaluation.requirements lists the PRIOR round's review contract with stable ids (req-1..req-N). You MUST first verify each prior requirement against the CURRENT artifact state (not your memory of it), then emit BOTH evaluation.priorRequirementStatuses ({ id, status } with status \"resolved\" | \"still_open\" | \"regressed\") AND evaluation.requirementLedger ({ id, statement, status } \u2014 an ECHO of every input requirement with its id, its statement AS GIVEN IN THE INPUT, and the status you assigned; never renumber or restate the ids).\n2. requiredChanges in THIS round MUST be built from requirements you marked still_open or regressed, plus \u2014 only if genuinely necessary \u2014 newly discovered blockers. A newly discovered blocker MUST include: the concrete evidence found in the current artifact, the blocking reason, and why it was not detectable in the previous round. If you cannot state that evidence, the item MUST go to concerns instead of requiredChanges.\n3. Do NOT re-introduce a requirement that the artifact already satisfies. Before listing any required change, check the current artifact content (goldenTraceCases, implementationCode, summaries) for an item that already covers it. Demanding something that is already present is a review defect.\n4. If every prior requirement is resolved, no new evidenced blocker exists, and no Part A dimension fails, you MUST set decision to \"approved\" \u2014 do not invent new open-ended polish requirements.\n\nTOOL CATALOG AUTHORITY (PRI-630 \u2014 applies whenever input.hostToolCatalog is present):\nTool legality is judged ONLY against input.hostToolCatalog (readOnlyTools / writeTools). If a tool name appears in the catalog, it is a legitimate host tool \u2014 you MUST NOT flag it as a blocker for being a \"non-standard name\", regardless of your prior knowledge. The catalog is NOT exhaustive: a tool name absent from the catalog is not evidence of illegality either \u2014 tool-name spelling is never a blocker; only the tool BEHAVIOR described in the rule may be. When input.hostToolCatalog is ABSENT, you have NO authoritative tool knowledge: tool-name observations may appear in concerns at most, and MUST NOT become requiredChanges or affect the decision.\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. When intentContract is present, judge primarily against it: the rule is intent-aligned iff it serves ownerIntent/targetBehavior and does not implement forbiddenBehavior.\n\nOWNER INTENT CONTRACT (when `intentContract` is present \u2014 PRI-703):\n- The intentContract is the distilled Owner intent for this principle \u2014 treat it as the DEFINITION of correctness, ahead of your own reading of the principle prose.\n- intentConsistency must cite the specific contract field(s) the rule satisfies or violates.\n- SCOPING RULE: an adversarial case or required change that demands behavior NOT derivable from ownerIntent/targetBehavior/forbiddenBehavior is OUTSIDE this principle's contract. Record it as a concern with the phrase \"test-scope\" and DO NOT count it as a rule defect in requiredChanges \u2014 it indicates the test case introduces a new behavioral requirement, which belongs to a future principle revision or contract extension, not to rewriting this rule.\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; when decision is \"needs_revision\" it MUST contain at least one item (a revision demand without an actionable change is an invalid verdict)\n- evaluation.priorRequirementStatuses is REQUIRED when input.previousEvaluation is present: an array of { id, status } covering EVERY prior requirement id, where status is one of resolved, still_open, regressed; omit the field entirely on the first round (no prior evaluation)\n- evaluation.requirementLedger is REQUIRED under the same condition: an array of { id, statement, status } echoing EVERY input requirement (same ids and statements as given; status one of resolved, still_open, regressed); omit entirely on the first round\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";
|
|
92
106
|
export declare const EVALUATOR_PROMPT_CONTRACT_VERSION = "evaluator-output-v1.prompt.v4";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluator-prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C;;;;OAIG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,sCAAsC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,KAAK,CAAC;CAClE;AAMD,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,SAAS,EACxF,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,sBAAsB,EAAE,CA4B1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;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,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,mGAAmG;IACnG,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,8BAA8B,mlXAsE1C,CAAC;AAEF,eAAO,MAAM,iCAAiC,kCAAkC,CAAC;AAEjF,qBAAa,sBAAsB;IAEjC,WAAW,CAAC,KAAK,EAAE,2BAA2B,GAAG,0BAA0B,CAuB1E;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { serializePromptInput } from './prompt-serializer.js';
|
|
2
|
+
import { buildLanguageDirective } from '../language-directive.js';
|
|
2
3
|
function normalizeStatement(s) {
|
|
3
4
|
return s.replace(/\s+/gu, ' ').trim().toLowerCase();
|
|
4
5
|
}
|
|
@@ -108,6 +109,9 @@ export const EVALUATOR_PROMPT_CONTRACT_VERSION = 'evaluator-output-v1.prompt.v4'
|
|
|
108
109
|
export class EvaluatorPromptBuilder {
|
|
109
110
|
// eslint-disable-next-line @typescript-eslint/class-methods-use-this
|
|
110
111
|
buildPrompt(input) {
|
|
112
|
+
// PRI-714: language directive for review fields (empty string when
|
|
113
|
+
// outputLanguage is undefined — instruction stays byte-identical).
|
|
114
|
+
const languageDirective = buildLanguageDirective(input.outputLanguage, 'review');
|
|
111
115
|
const promptInput = {
|
|
112
116
|
taskId: input.taskId,
|
|
113
117
|
contextHash: input.contextHash,
|
|
@@ -119,11 +123,12 @@ export class EvaluatorPromptBuilder {
|
|
|
119
123
|
// PRI-703 Phase 1: only include intentContract when present (pre-contract
|
|
120
124
|
// scribe artifacts), so prompts stay backward-compatible.
|
|
121
125
|
...(input.intentContract !== undefined ? { intentContract: input.intentContract } : {}),
|
|
122
|
-
evaluatorInstruction: EVALUATOR_PROTOCOL_INSTRUCTION,
|
|
123
126
|
promptContractVersion: EVALUATOR_PROMPT_CONTRACT_VERSION,
|
|
124
127
|
};
|
|
125
128
|
const message = serializePromptInput(promptInput);
|
|
126
|
-
|
|
129
|
+
// PRI-633: the instruction (with PRI-714's language directive) is the
|
|
130
|
+
// base-layer systemPrompt — it left the payload.
|
|
131
|
+
return { message, promptInput, systemPrompt: EVALUATOR_PROTOCOL_INSTRUCTION + languageDirective };
|
|
127
132
|
}
|
|
128
133
|
}
|
|
129
134
|
//# sourceMappingURL=evaluator-prompt-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluator-prompt-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ import { type InternalizationChannel, type ArtifactRef } from './peer-runner-con
|
|
|
34
34
|
import { BasePeerRunner } from '../runner/base-peer-runner.js';
|
|
35
35
|
import type { PeerRunnerOptions, PeerRunnerDeps, PeerRunnerResult, PeerRunnerValidationResult } from '../runner/peer-runner-types.js';
|
|
36
36
|
import type { EffectivePdConfig } from '../config/pd-config-types.js';
|
|
37
|
+
import type { OutputLanguage } from '../language-directive.js';
|
|
37
38
|
import { type RefinerRuleHostGateDeps } from './refiner-rulehost-gate.js';
|
|
38
39
|
/** Context built by EvaluatorRunner.buildContext() and consumed by invokeRuntime(). */
|
|
39
40
|
interface EvaluatorContext {
|
|
@@ -104,6 +105,13 @@ export interface ResolvedEvaluatorRunnerOptions {
|
|
|
104
105
|
readonly owner: string;
|
|
105
106
|
readonly runtimeKind: string;
|
|
106
107
|
readonly agentId: string;
|
|
108
|
+
/**
|
|
109
|
+
* Owner's preferred language for review fields (PRI-714). Forwarded to
|
|
110
|
+
* EvaluatorPromptBuilder so summary/concerns/requiredChanges/codeReview
|
|
111
|
+
* explanations follow the owner's language. Undefined = no directive
|
|
112
|
+
* (backward compatible).
|
|
113
|
+
*/
|
|
114
|
+
readonly outputLanguage?: OutputLanguage;
|
|
107
115
|
}
|
|
108
116
|
export declare const DEFAULT_EVALUATOR_RUNNER_OPTIONS: Readonly<Omit<ResolvedEvaluatorRunnerOptions, 'owner' | 'runtimeKind'>>;
|
|
109
117
|
export declare function resolveEvaluatorRunnerOptions(options: EvaluatorRunnerOptions): ResolvedEvaluatorRunnerOptions;
|
|
@@ -185,6 +193,12 @@ export declare class EvaluatorRunner extends BasePeerRunner<EvaluatorContext, Ev
|
|
|
185
193
|
private readonly repairTaskSeeder;
|
|
186
194
|
/** PRI-630: runtime-authoritative tool facts; null = catalog unavailable (degraded rule in prompt) */
|
|
187
195
|
private readonly hostToolCatalog;
|
|
196
|
+
/**
|
|
197
|
+
* PRI-714: owner's preferred language for review fields, forwarded into
|
|
198
|
+
* the evaluator prompt (language directive on summary/concerns/…).
|
|
199
|
+
* Undefined = no directive (backward compatible).
|
|
200
|
+
*/
|
|
201
|
+
private readonly outputLanguage;
|
|
188
202
|
constructor(deps: EvaluatorRunnerDeps, options: EvaluatorRunnerOptions);
|
|
189
203
|
/**
|
|
190
204
|
* Returns true iff the evaluator→artificer repair loop feature flag is on.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EACV,iBAAiB,EAEjB,kBAAkB,EAInB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAkB,KAAK,eAAe,EAAqB,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAwE,KAAK,aAAa,EAAqE,MAAM,sBAAsB,CAAC;AAQnM,OAAO,EAAmD,KAAK,yBAAyB,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC3J,OAAO,EAAwB,KAAK,sBAAsB,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluator-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -173,6 +173,7 @@ export function resolveEvaluatorRunnerOptions(options) {
|
|
|
173
173
|
owner: options.owner,
|
|
174
174
|
runtimeKind: options.runtimeKind,
|
|
175
175
|
agentId: options.agentId ?? DEFAULT_EVALUATOR_RUNNER_OPTIONS.agentId,
|
|
176
|
+
outputLanguage: options.outputLanguage,
|
|
176
177
|
};
|
|
177
178
|
}
|
|
178
179
|
// ── EvaluatorRunner ───────────────────────────────────────────────────────────
|
|
@@ -196,6 +197,12 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
196
197
|
repairTaskSeeder;
|
|
197
198
|
/** PRI-630: runtime-authoritative tool facts; null = catalog unavailable (degraded rule in prompt) */
|
|
198
199
|
hostToolCatalog;
|
|
200
|
+
/**
|
|
201
|
+
* PRI-714: owner's preferred language for review fields, forwarded into
|
|
202
|
+
* the evaluator prompt (language directive on summary/concerns/…).
|
|
203
|
+
* Undefined = no directive (backward compatible).
|
|
204
|
+
*/
|
|
205
|
+
outputLanguage;
|
|
199
206
|
constructor(deps, options) {
|
|
200
207
|
super(deps, options, {
|
|
201
208
|
runnerName: 'evaluator',
|
|
@@ -211,6 +218,7 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
211
218
|
this.repairLoopEnabledResolver = deps.isRepairLoopEnabled ?? null;
|
|
212
219
|
this.repairTaskSeeder = deps.seedArtificerRepairTask ?? null;
|
|
213
220
|
this.hostToolCatalog = options.hostToolCatalog ?? null;
|
|
221
|
+
this.outputLanguage = options.outputLanguage;
|
|
214
222
|
}
|
|
215
223
|
/**
|
|
216
224
|
* Returns true iff the evaluator→artificer repair loop feature flag is on.
|
|
@@ -314,8 +322,8 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
314
322
|
// ── Two-stage progressive evaluation ──
|
|
315
323
|
// Stage 1: summary-level evaluation (same prompt as single-stage, but
|
|
316
324
|
// uses EVALUATOR_STAGE1_MANIFEST for focused context).
|
|
317
|
-
const { message: stage1Message } = await this.buildEvaluatorPrompt(taskId, context, EVALUATOR_STAGE1_MANIFEST);
|
|
318
|
-
const stage1Output = await this.runSingleEvaluation(taskId, stage1Message);
|
|
325
|
+
const { message: stage1Message, systemPrompt: stage1SystemPrompt } = await this.buildEvaluatorPrompt(taskId, context, EVALUATOR_STAGE1_MANIFEST);
|
|
326
|
+
const stage1Output = await this.runSingleEvaluation(taskId, stage1Message, stage1SystemPrompt);
|
|
319
327
|
// 9.4c (design §6.5.4): Stage 1 output contract violation check.
|
|
320
328
|
// Detect malformed Stage 1 output shapes that Phase 0 testing identified:
|
|
321
329
|
// non-object, missing required evaluator fields, or the output being a
|
|
@@ -350,7 +358,7 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
350
358
|
// Stage 2 triggered: independent re-evaluation with tier2 context.
|
|
351
359
|
// rc-7 / ERR-015 / ERR-018 / ERR-019: Stage 2 does NOT receive Stage 1
|
|
352
360
|
// output, concerns, or the FlaggedDecision. It is a fully independent call.
|
|
353
|
-
const { message: stage2Message, stage2Evidence } = await this.buildEvaluatorPrompt(taskId, context, EVALUATOR_STAGE2_MANIFEST);
|
|
361
|
+
const { message: stage2Message, systemPrompt: stage2SystemPrompt, stage2Evidence } = await this.buildEvaluatorPrompt(taskId, context, EVALUATOR_STAGE2_MANIFEST);
|
|
354
362
|
if (stage2Evidence.state === 'required_unavailable') {
|
|
355
363
|
// Review round (information floor): Stage 2 is the deep-evidence stage;
|
|
356
364
|
// its REQUIRED evidence is unavailable, so there is NO safe fallback
|
|
@@ -368,7 +376,7 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
368
376
|
});
|
|
369
377
|
throw new PDRuntimeError('input_invalid', `evaluator stage2: required tier2 evidence unavailable (${stage2Evidence.unresolvedRequired.join(', ')}) — refusing to issue a deep-evidence verdict without it.`);
|
|
370
378
|
}
|
|
371
|
-
const stage2Output = await this.runSingleEvaluation(taskId, stage2Message);
|
|
379
|
+
const stage2Output = await this.runSingleEvaluation(taskId, stage2Message, stage2SystemPrompt);
|
|
372
380
|
this.progressiveFinalOutput = stage2Output;
|
|
373
381
|
this.progressiveRunActive = true;
|
|
374
382
|
return { runId: `${EvaluatorRunner.PROGRESSIVE_RUN_ID_PREFIX}stage2`, runtimeKind: this.getRuntimeKind(), startedAt: new Date().toISOString() };
|
|
@@ -589,7 +597,7 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
589
597
|
}
|
|
590
598
|
}
|
|
591
599
|
const builder = new EvaluatorPromptBuilder();
|
|
592
|
-
const { message } = builder.buildPrompt({
|
|
600
|
+
const { message, systemPrompt } = builder.buildPrompt({
|
|
593
601
|
taskId,
|
|
594
602
|
contextHash: context.contextHash,
|
|
595
603
|
artificerArtifact: parsedArtificerArtifact,
|
|
@@ -597,6 +605,8 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
597
605
|
sourceArtificerArtifactId: context.sourceArtificerArtifactId ?? '',
|
|
598
606
|
previousEvaluation: context.previousEvaluation,
|
|
599
607
|
hostToolCatalog: this.hostToolCatalog ?? undefined,
|
|
608
|
+
// PRI-714: language directive for review fields (undefined = none).
|
|
609
|
+
outputLanguage: this.outputLanguage,
|
|
600
610
|
// PRI-703 Phase 1: the scribe artifact's Owner-intent contract is the
|
|
601
611
|
// primary intentConsistency anchor. Extracted from the FULL parsed
|
|
602
612
|
// scribe artifact (before any manifest narrowing — the contract is
|
|
@@ -604,11 +614,11 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
604
614
|
// undefined → prompt unchanged (backward compatible).
|
|
605
615
|
intentContract: extractIntentContract(parsedScribeArtifact) ?? undefined,
|
|
606
616
|
});
|
|
607
|
-
return { message, stage2Evidence: resolutionOutcome };
|
|
617
|
+
return { message, systemPrompt, stage2Evidence: resolutionOutcome };
|
|
608
618
|
}
|
|
609
619
|
/** Original single-stage invokeRuntime (flag-off path). */
|
|
610
620
|
async invokeRuntimeSingleStage(taskId, context) {
|
|
611
|
-
const { message } = await this.buildEvaluatorPrompt(taskId, context, EVALUATOR_STAGE1_MANIFEST);
|
|
621
|
+
const { message, systemPrompt } = await this.buildEvaluatorPrompt(taskId, context, EVALUATOR_STAGE1_MANIFEST);
|
|
612
622
|
return this.runtimeAdapter.startRun({
|
|
613
623
|
agentSpec: { agentId: this.resolvedOptions.agentId, schemaVersion: 'v1' },
|
|
614
624
|
taskRef: { taskId },
|
|
@@ -616,6 +626,7 @@ export class EvaluatorRunner extends BasePeerRunner {
|
|
|
616
626
|
contextItems: [],
|
|
617
627
|
outputSchemaRef: 'evaluator-output-v1',
|
|
618
628
|
timeoutMs: this.resolvedOptions.timeoutMs,
|
|
629
|
+
systemPrompt,
|
|
619
630
|
});
|
|
620
631
|
}
|
|
621
632
|
async validateOutput(output, taskId, context) {
|