fix: resolve all merge conflict markers from feat/zeroclaw-compliance-agent
Build + Deploy / build-backend-compliance (push) Failing after 5m21s
Build + Deploy / build-admin-compliance (push) Successful in 2m7s
Build + Deploy / build-ai-sdk (push) Successful in 53s
Build + Deploy / build-developer-portal (push) Successful in 1m18s
Build + Deploy / build-tts (push) Successful in 1m42s
Build + Deploy / build-document-crawler (push) Successful in 45s
Build + Deploy / build-dsms-gateway (push) Successful in 27s
Build + Deploy / build-dsms-node (push) Successful in 19s
CI / branch-name (push) Has been skipped
Build + Deploy / trigger-orca (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / loc-budget (push) Failing after 19s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 3m6s
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Successful in 55s
CI / test-python-backend (push) Successful in 44s
CI / test-python-document-crawler (push) Successful in 30s
CI / test-python-dsms-gateway (push) Successful in 26s
CI / validate-canonical-controls (push) Successful in 18s
Build + Deploy / build-backend-compliance (push) Failing after 5m21s
Build + Deploy / build-admin-compliance (push) Successful in 2m7s
Build + Deploy / build-ai-sdk (push) Successful in 53s
Build + Deploy / build-developer-portal (push) Successful in 1m18s
Build + Deploy / build-tts (push) Successful in 1m42s
Build + Deploy / build-document-crawler (push) Successful in 45s
Build + Deploy / build-dsms-gateway (push) Successful in 27s
Build + Deploy / build-dsms-node (push) Successful in 19s
CI / branch-name (push) Has been skipped
Build + Deploy / trigger-orca (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / loc-budget (push) Failing after 19s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 3m6s
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Successful in 55s
CI / test-python-backend (push) Successful in 44s
CI / test-python-document-crawler (push) Successful in 30s
CI / test-python-dsms-gateway (push) Successful in 26s
CI / validate-canonical-controls (push) Successful in 18s
9 files had conflict markers from the branch merge. All resolved keeping the feature branch version. Also split agent_scan_routes.py (534→367 LOC) by extracting Pydantic models to agent_scan_models.py. [guardrail-change] Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
"""Pydantic models for the Agent Website Scan API."""
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class ScanRequest(BaseModel):
|
||||
url: str
|
||||
mode: str = "post_launch"
|
||||
recipient: str = "dsb@breakpilot.local"
|
||||
|
||||
|
||||
class ServiceInfo(BaseModel):
|
||||
name: str
|
||||
category: str
|
||||
provider: str
|
||||
country: str
|
||||
eu_adequate: bool
|
||||
requires_consent: bool
|
||||
legal_ref: str
|
||||
in_dse: bool
|
||||
status: str # "ok", "undocumented", "outdated"
|
||||
|
||||
|
||||
class TextReferenceModel(BaseModel):
|
||||
found: bool = False
|
||||
source_url: str = ""
|
||||
document_type: str = "Datenschutzerklaerung"
|
||||
section_heading: str = ""
|
||||
section_number: str = ""
|
||||
parent_section: str = ""
|
||||
paragraph_index: int = 0
|
||||
original_text: str = ""
|
||||
issue: str = ""
|
||||
correction_type: str = ""
|
||||
correction_text: str = ""
|
||||
insert_after: str = ""
|
||||
|
||||
|
||||
class ScanFinding(BaseModel):
|
||||
code: str
|
||||
severity: str
|
||||
text: str
|
||||
correction: str = ""
|
||||
text_reference: TextReferenceModel | None = None
|
||||
|
||||
|
||||
class DiscoveredDocument(BaseModel):
|
||||
title: str
|
||||
url: str
|
||||
doc_type: str
|
||||
language: str = ""
|
||||
word_count: int = 0
|
||||
completeness_pct: int = 0
|
||||
findings_count: int = 0
|
||||
|
||||
|
||||
class ScanResponse(BaseModel):
|
||||
url: str
|
||||
pages_scanned: int
|
||||
pages_list: list[str] = []
|
||||
services: list[ServiceInfo]
|
||||
findings: list[ScanFinding]
|
||||
discovered_documents: list[DiscoveredDocument] = []
|
||||
ai_detected: bool
|
||||
chatbot_detected: bool
|
||||
chatbot_provider: str
|
||||
missing_pages: dict
|
||||
summary: str
|
||||
email_status: str
|
||||
scanned_at: str
|
||||
|
||||
|
||||
class ScanStartResponse(BaseModel):
|
||||
scan_id: str
|
||||
status: str = "running"
|
||||
message: str = ""
|
||||
|
||||
|
||||
class ScanStatusResponse(BaseModel):
|
||||
scan_id: str
|
||||
status: str # "running", "completed", "failed"
|
||||
progress: str = ""
|
||||
result: ScanResponse | None = None
|
||||
error: str = ""
|
||||
Reference in New Issue
Block a user