feat: publish authoritative fabric cutover export
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a053ff-1d6f-7fe2-ac1c-a6eb40a42a0c
This commit is contained in:
parent
7745a965f6
commit
113445def9
5 changed files with 112 additions and 6 deletions
|
|
@ -348,14 +348,15 @@ def main(argv: list[str] | None = None) -> int:
|
|||
|
||||
if args.command == "export":
|
||||
graph = _load_graph_or_exit(args.paths)
|
||||
export_payload = _export_with_provenance(graph.to_export(), args.paths)
|
||||
if args.format == "mermaid":
|
||||
print(graph.to_mermaid())
|
||||
elif args.format == "graph-explorer":
|
||||
print(json.dumps(fabric_graph_explorer_payload(graph.to_export()), indent=2, sort_keys=True))
|
||||
print(json.dumps(fabric_graph_explorer_payload(export_payload), indent=2, sort_keys=True))
|
||||
elif args.format == "financial":
|
||||
print(json.dumps(financial_export_from_legacy(graph.to_export()), indent=2, sort_keys=True))
|
||||
print(json.dumps(financial_export_from_legacy(export_payload), indent=2, sort_keys=True))
|
||||
else:
|
||||
print(graph.to_json())
|
||||
print(json.dumps(export_payload, indent=2, sort_keys=True))
|
||||
return 0
|
||||
|
||||
if args.command == "scan":
|
||||
|
|
@ -1648,6 +1649,20 @@ def _primary_repo_path(paths: list[Path]) -> Path:
|
|||
return path.parent if path.is_file() else path
|
||||
|
||||
|
||||
def _export_with_provenance(graph: dict[str, Any], paths: list[Path]) -> dict[str, Any]:
|
||||
"""Attach stable producer provenance to an operator export."""
|
||||
repo_path = _primary_repo_path(paths)
|
||||
payload = json.loads(json.dumps(graph))
|
||||
payload["generated_at"] = _utc_now()
|
||||
payload["source"] = {
|
||||
"producer": "railiance-fabric",
|
||||
"repo": "railiance-fabric",
|
||||
"commit": _git_value(repo_path, "rev-parse", "HEAD") or "working-tree",
|
||||
"path": ",".join(path.as_posix() for path in paths) or ".",
|
||||
}
|
||||
return payload
|
||||
|
||||
|
||||
def _slugify(value: str) -> str:
|
||||
return re.sub(r"-+", "-", re.sub(r"[^a-z0-9]", "-", value.lower())).strip("-") or "repo"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue