Files
GEWU/scripts/export_schemas.py
T
vasily 78033bb830
CI / quality (push) Canceled after 0s
feat: online verification, node removals, and knowledge browser
Adds claim-bound online evidence records and citation verification scripts,
node removal transport/adapter, retrieval benchmark and owner-review tooling,
GraphCanvas/SourceDetail knowledge browser UI, and the ingest handoff helper.
Bumps the agents/gewu pack to the online-verification branch.
2026-10-16 20:02:29 +08:00

73 lines
1.5 KiB
Python

"""Export public Pydantic records as versioned JSON Schemas."""
import json
from pathlib import Path
from gewu.domain.contracts import (
AcceptanceManifest,
AutoAcceptPolicy,
DomainError,
ExtractionRecord,
IngestReviewCreate,
IngestReviewDecision,
IngestReviewItem,
KnowledgeNode,
NeighborRequest,
ProjectRecord,
ProposalReceipt,
ProposalRevision,
ProposalStatus,
ReadEnvelope,
RunCheckpointRequest,
RunCreateRequest,
RunRecord,
Scope,
SearchRequest,
ServiceDiagnostics,
SourceRevisionRecord,
TypedEdge,
OnlineEvidence,
)
ROOT = Path(__file__).resolve().parents[1]
DESTINATION = ROOT / "schema" / "v1" / "records"
MODELS = (
AcceptanceManifest,
AutoAcceptPolicy,
DomainError,
ExtractionRecord,
IngestReviewCreate,
IngestReviewDecision,
IngestReviewItem,
KnowledgeNode,
NeighborRequest,
ProjectRecord,
ProposalReceipt,
ProposalRevision,
ProposalStatus,
ReadEnvelope,
ServiceDiagnostics,
RunCheckpointRequest,
RunCreateRequest,
RunRecord,
SearchRequest,
Scope,
SourceRevisionRecord,
TypedEdge,
OnlineEvidence,
)
def main() -> None:
DESTINATION.mkdir(parents=True, exist_ok=True)
for model in MODELS:
output = DESTINATION / f"{model.__name__}.schema.json"
output.write_text(
json.dumps(model.model_json_schema(mode="validation"), indent=2, sort_keys=True) + "\n",
encoding="utf-8",
)
if __name__ == "__main__":
main()