# Public API of launchdarkly_ai_server.experimental.skills. Generated by `make api-report`; do not edit.
all_skills() -> list[Skill]  [async]
FDv2SkillStore  [class]
  __init__(sdk_key: str, *, base_uri: str | None = None, stream_uri: str | None = None, mode: Mode = 'stream', poll_interval: float = 30.0, read_timeout: float | None = None, initial_backoff: float = 1.0, max_backoff: float = 30.0, _requester: Any = None)
  __enter__() -> FDv2SkillStore
  __exit__(*_exc: Any) -> None
  add_listener(kind: str, fn: Callable[[dict[str, Any]], Any]) -> None
  all_objects(kind: str) -> dict[str, dict[str, Any]]
  close(timeout: float = 5.0) -> None
  diagnostics: StoreDiagnostics  [property]
  failed: str | None  [property]
  get_object(kind: str, key: str, version: int | None = None) -> dict[str, Any] | None
  is_initialized() -> bool
  remove_listener(kind: str, fn: Callable[[dict[str, Any]], Any]) -> None
  start() -> FDv2SkillStore
  wait_for_skills(timeout: float = 10.0) -> bool
get_skill(key: str, *, version: int | None = None) -> Skill | None  [async]
get_skill_result(key: str, *, version: int | None = None) -> SkillOutcome  [async]
get_skills(refs: Sequence[SkillReference | str]) -> list[Skill]  [async]
InMemorySkillStore  [class]
  __init__(objects: dict[str, dict[str, Any]] | None = None)
  add_listener(kind: str, fn: Callable[[dict[str, Any]], Any]) -> None
  all_objects(kind: str) -> dict[str, dict[str, Any]]
  get_object(kind: str, key: str, version: int | None = None) -> dict[str, Any] | None
  put(raw: dict[str, Any]) -> None
  remove_listener(kind: str, fn: Callable[[dict[str, Any]], Any]) -> None
MANIFEST_FILENAME = '.launchdarkly-skills.json'
MANIFEST_VERSION = 1
OnUnavailable = Literal['keep', 'raise']
ReconcileAction  [class, @dataclass(frozen=True)]
  __init__(key: str, action: ReconcileActionKind, version: int | None = None, path: str | None = None, error: str | None = None)
  action: ReconcileActionKind
  error: str | None = None
  key: str
  path: str | None = None
  version: int | None = None
ReconcileActionKind = Literal['written', 'updated', 'skipped_current', 'removed', 'error']
ReconcileReport  [class, @dataclass(frozen=True)]
  __init__(actions: list[ReconcileAction] = list())
  actions: list[ReconcileAction] = field(default_factory=list)
  errors: list[ReconcileAction]  [property]
  ok: bool  [property]
set_skill_store(store: SkillStore | None) -> None
Skill  [class, @dataclass(frozen=True)]
  __init__(key: str, version: int, content: bytes, content_hash: str, name: str | None = None, description: str | None = None)
  content: bytes
  content_hash: str
  description: str | None = None
  key: str
  name: str | None = None
  version: int
SKILL_FILENAME = 'SKILL.md'
skill_refs(config: AiConfigRep | None) -> list[SkillReference]
SkillOutcome  [class, @dataclass(frozen=True)]
  __init__(skill: Skill | None, reason: SkillOutcomeReason, detail: str | None)
  detail: str | None
  reason: SkillOutcomeReason
  skill: Skill | None
SkillOutcomeReason = Literal['absent', 'integrity_failure', 'ok', 'store_unavailable', 'wrong_version']
SkillReference  [class, @dataclass(frozen=True)]
  __init__(key: str, version: int)
  key: str
  version: int
SkillStore(Protocol)  [class]
  all_objects(kind: str) -> dict[str, dict[str, Any]]
  get_object(kind: str, key: str, version: int | None = None) -> dict[str, Any] | None
SkillWatcher  [class]
  __init__(request: Sequence[Skill | SkillReference | str] | str, root: str | os.PathLike[str], store: Any, *, prune: bool, timeout: float, on_unavailable: OnUnavailable, debounce: float, on_reconcile: Callable[[ReconcileReport], Any] | None)
  __enter__() -> SkillWatcher
  __exit__(*_exc: Any) -> None
  close(timeout: float = 15.0) -> None
  notify(_raw: Any = None) -> None
  reconciles: int  [property]
StoreDiagnostics  [class, @dataclass]
  __init__(payloads_transferred: int = 0, skill_objects_received: int = 0, objects_ignored: int = 0, objects_revoked: int = 0, payloads_ignored: int = 0, hashless_objects: int = 0, connection_failures: int = 0, last_error: str | None = None)
  connection_failures: int = 0
  hashless_objects: int = 0
  last_error: str | None = None
  objects_ignored: int = 0
  objects_revoked: int = 0
  payloads_ignored: int = 0
  payloads_transferred: int = 0
  skill_objects_received: int = 0
watch_skills(skills: Sequence[Skill | SkillReference | str] | str, root: str | os.PathLike[str], *, prune: bool = True, timeout: float = 10.0, on_unavailable: OnUnavailable = 'keep', debounce: float = DEFAULT_DEBOUNCE_SECONDS, on_reconcile: Callable[[ReconcileReport], Any] | None = None) -> tuple[ReconcileReport, SkillWatcher]  [async]
write_skills(skills: Sequence[Skill | SkillReference | str] | str, root: str | os.PathLike[str], *, prune: bool = True, timeout: float = 10.0, on_unavailable: OnUnavailable = 'keep') -> ReconcileReport  [async]
