| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- from __future__ import annotations
- from collections.abc import Mapping
- from dataclasses import dataclass, field
- from typing import Any
- @dataclass(frozen=True)
- class KnowledgePointDraft:
- point_key: str
- semantic_path: str
- content: str
- content_hash: str
- metadata: Mapping[str, Any]
- metadata_hash: str
- permission_scope: Mapping[str, Any]
- permission_hash: str
- @dataclass(frozen=True)
- class KnowledgeDependencyDraft:
- from_point_key: str
- to_point_key: str
- relation_type: str
- source: str
- @dataclass(frozen=True)
- class KnowledgeSnapshot:
- source_type: str
- source_uid: str
- source_revision: int
- source_snapshot_hash: str
- point_set_hash: str
- permission_scope: Mapping[str, Any]
- points: tuple[KnowledgePointDraft, ...]
- dependencies: tuple[KnowledgeDependencyDraft, ...] = ()
- source_updated_at: str | None = None
- @dataclass(frozen=True)
- class PointChange:
- point_key: str
- change_kind: str
- old: KnowledgePointDraft | None = None
- new: KnowledgePointDraft | None = None
- permission_changed: bool = False
- @dataclass(frozen=True)
- class SnapshotDiff:
- added: tuple[PointChange, ...] = ()
- modified: tuple[PointChange, ...] = ()
- deleted: tuple[PointChange, ...] = ()
- unchanged: tuple[PointChange, ...] = ()
- @property
- def changed_point_keys(self) -> frozenset[str]:
- return frozenset(
- change.point_key
- for group in (self.added, self.modified, self.deleted)
- for change in group
- )
- @dataclass(frozen=True)
- class ImpactResult:
- impacted_point_keys: frozenset[str]
- paths: Mapping[str, tuple[str, ...]] = field(default_factory=dict)
- truncated: bool = False
- @dataclass(frozen=True)
- class KnowledgeChunkDraft:
- chunk_key: str
- chunk_kind: str
- section_path: str
- content: str
- content_hash: str
- lexical_text: str
- primary_point_key: str
- point_keys: tuple[str, ...]
- point_set_hash: str
- metadata: Mapping[str, Any]
- @dataclass(frozen=True)
- class PreparedPublication:
- snapshot: KnowledgeSnapshot
- diff: SnapshotDiff
- chunks: tuple[KnowledgeChunkDraft, ...]
- embeddings: Mapping[str, tuple[float, ...]]
- status: str
- @dataclass(frozen=True)
- class SyncResult:
- status: str
- source_type: str
- source_uid: str
- source_revision: int
- diff_counts: Mapping[str, int]
- embedded_chunk_count: int
- reused_embedding_count: int
|