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