@voce-engine/core 0.1.0-rc.1 → 0.1.0-rc.3

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/LICENSE CHANGED
@@ -1 +1 @@
1
- Apache License 2.0
1
+ Apache License 2.0
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # @voce-engine/core
2
-
3
- Deterministic ScenarioPack resolution, constraint compilation, reference planning, Prompt IR, offline execution, and evaluation primitives.
4
-
5
- > `0.1.0-rc.1` is a release candidate, not production-ready. APIs may change before `0.1.0`.
6
-
7
- ```bash
8
- npm install @voce-engine/core@0.1.0-rc.1
9
- ```
1
+ # @voce-engine/core
2
+
3
+ Deterministic ScenarioPack resolution, constraint compilation, reference planning, Prompt IR, offline execution, and evaluation primitives.
4
+
5
+ > `0.1.0-rc.3` is a release candidate, not production-ready. APIs may change before `0.1.0`.
6
+
7
+ ```bash
8
+ npm install @voce-engine/core@0.1.0-rc.3
9
+ ```
package/dist/m6.js CHANGED
@@ -1053,11 +1053,14 @@ export function compileEvaluationReport(input) {
1053
1053
  const human = input.humanAcceptance ? normalizeHumanAcceptance(input.humanAcceptance, input.run.id) : undefined;
1054
1054
  if (human && (human.annotations.some((annotation) => humanAnnotationHash(annotation) !== annotation.annotationHash) || computeHumanAcceptanceDecisionHash(human) !== human.decisionHash))
1055
1055
  throw new ProviderTransportError('HUMAN_DECISION_HASH_MISMATCH', 'Human acceptance decision hash is invalid.');
1056
+ if (human && human.runId !== input.run.id)
1057
+ throw new ProviderTransportError('HUMAN_DECISION_RUN_MISMATCH', 'Human acceptance decision belongs to a different execution run.');
1056
1058
  const cleanup = cleanupStatus(input.cleanup ?? []);
1057
1059
  const replay = input.replay ?? { mode: 'none', status: 'not_requested', artifactIds: [] };
1058
1060
  const technicalStatus = input.run.technicalOutcome === 'succeeded' ? 'passed' : input.run.technicalOutcome === 'failed' ? 'failed' : input.run.technicalOutcome === 'pending' ? 'pending' : 'needs_review';
1059
- const status = input.run.technicalOutcome === 'failed' || input.structural?.status === 'failed' ? 'failed' : input.semanticProposal?.status === 'submission_unknown' || human?.status === 'pending' || human?.status === 'declined' || cleanup.status === 'failed' ? 'needs_review' : input.structural?.status === 'needs_review' ? 'partial' : 'complete';
1060
- const base = { schemaVersion: EVALUATION_REPORT_SCHEMA_VERSION, id: hashId('evaluation-report', { runId: input.run.id, structural: input.structural?.reportHash, semantic: input.semanticProposal?.reportHash, human: human?.decisionHash }), runId: input.run.id, technicalOutcome: input.run.technicalOutcome, technicalStatus, ...(input.structural === undefined ? {} : { structural: clone(input.structural) }), ...(input.semanticProposal === undefined ? {} : { semanticProposal: clone(input.semanticProposal) }), ...(human === undefined ? {} : { humanAcceptance: human }), cleanup, replay: clone(replay), artifactIds: sortedStrings((input.artifacts ?? []).map((item) => item.id)), sourceHashes: Object.fromEntries(Object.entries(input.sourceHashes ?? {}).sort((left, right) => compareCodeUnits(left[0], right[0]))), status, warnings: sortedStrings([...(input.run.state === 'needs_review' ? ['HUMAN_ACCEPTANCE_REQUIRED'] : []), ...(cleanup.failureCodes)]) };
1061
+ const semanticNeedsReview = Boolean(input.semanticProposal?.findings.some((finding) => finding.status === 'fail' || finding.status === 'uncertain')) && human?.status !== 'accepted' && human?.status !== 'waived';
1062
+ const status = input.run.technicalOutcome === 'failed' || input.structural?.status === 'failed' ? 'failed' : input.semanticProposal?.status === 'submission_unknown' || semanticNeedsReview || human?.status === 'pending' || human?.status === 'declined' || cleanup.status === 'failed' ? 'needs_review' : input.structural?.status === 'needs_review' ? 'partial' : 'complete';
1063
+ const base = { schemaVersion: EVALUATION_REPORT_SCHEMA_VERSION, id: hashId('evaluation-report', { runId: input.run.id, structural: input.structural?.reportHash, semantic: input.semanticProposal?.reportHash, human: human?.decisionHash }), runId: input.run.id, technicalOutcome: input.run.technicalOutcome, technicalStatus, ...(input.structural === undefined ? {} : { structural: clone(input.structural) }), ...(input.semanticProposal === undefined ? {} : { semanticProposal: clone(input.semanticProposal) }), ...(human === undefined ? {} : { humanAcceptance: human }), cleanup, replay: clone(replay), artifactIds: sortedStrings((input.artifacts ?? []).map((item) => item.id)), sourceHashes: Object.fromEntries(Object.entries(input.sourceHashes ?? {}).sort((left, right) => compareCodeUnits(left[0], right[0]))), status, warnings: sortedStrings([...(input.run.state === 'needs_review' ? ['HUMAN_ACCEPTANCE_REQUIRED'] : []), ...(semanticNeedsReview ? ['SEMANTIC_FINDING_REQUIRES_REVIEW'] : []), ...(cleanup.failureCodes)]) };
1061
1064
  return clone({ ...base, reportHash: computeEvaluationReportHash(base) });
1062
1065
  }
1063
1066
  export const compileEvaluation = compileEvaluationReport;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voce-engine/core",
3
- "version": "0.1.0-rc.1",
3
+ "version": "0.1.0-rc.3",
4
4
  "description": "Deterministic visual ontology, constraint, reference, prompt, execution-planning, and evaluation runtime.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -41,7 +41,7 @@
41
41
  "tag": "next"
42
42
  },
43
43
  "dependencies": {
44
- "@voce-engine/contracts": "0.1.0-rc.1",
44
+ "@voce-engine/contracts": "0.1.0-rc.3",
45
45
  "semver": "7.7.2"
46
46
  },
47
47
  "devDependencies": {