generated from coulomb/repo-seed
Add canon reset and reingest guardrails
This commit is contained in:
@@ -9,6 +9,7 @@ from typing import Any, Iterable
|
||||
|
||||
from jsonschema import ValidationError
|
||||
|
||||
from .canon import edge_canon_mapping, evidence_state_for, node_canon_mapping
|
||||
from .discovery import (
|
||||
attribute_stable_key,
|
||||
discovery_stable_key,
|
||||
@@ -270,12 +271,22 @@ def project_llm_output(
|
||||
rationale = str(raw_node.get("rationale") or "").strip()
|
||||
if rationale:
|
||||
provenance["rationale"] = rationale
|
||||
canon_mapping = node_canon_mapping(kind)
|
||||
candidates["nodes"].append(
|
||||
{
|
||||
"stable_key": stable_key,
|
||||
"kind": kind,
|
||||
"label": label,
|
||||
"repo": repo_slug,
|
||||
"canon_category": canon_mapping.category,
|
||||
"canon_anchor": canon_mapping.canon_anchor,
|
||||
"mapping_fit": canon_mapping.fit,
|
||||
"evidence_state": evidence_state_for(
|
||||
origin="llm",
|
||||
source_kind="llm",
|
||||
review_state="needs_review",
|
||||
confidence=confidence,
|
||||
),
|
||||
"aliases": _strings(raw_node.get("aliases")) + [label],
|
||||
"attributes": _json_object(raw_node.get("attributes")) if isinstance(raw_node.get("attributes"), dict) else {},
|
||||
"origin": "llm",
|
||||
@@ -304,10 +315,21 @@ def project_llm_output(
|
||||
rationale = str(raw_edge.get("rationale") or "").strip()
|
||||
if rationale:
|
||||
provenance["rationale"] = rationale
|
||||
canon_mapping = edge_canon_mapping(edge_type)
|
||||
candidates["edges"].append(
|
||||
{
|
||||
"stable_key": relationship_stable_key(source_key, edge_type, target_key, evidence_scope=scope["id"]),
|
||||
"edge_type": edge_type,
|
||||
"canonical_type": canon_mapping.canonical_type,
|
||||
"canon_anchor": canon_mapping.canon_anchor,
|
||||
"mapping_fit": canon_mapping.fit,
|
||||
"display_only": canon_mapping.display_only,
|
||||
"evidence_state": evidence_state_for(
|
||||
origin="llm",
|
||||
source_kind="llm",
|
||||
review_state="needs_review",
|
||||
confidence=confidence,
|
||||
),
|
||||
"source_key": source_key,
|
||||
"target_key": target_key,
|
||||
"attributes": _json_object(raw_edge.get("attributes")) if isinstance(raw_edge.get("attributes"), dict) else {},
|
||||
|
||||
Reference in New Issue
Block a user