Milestone 6 API completeness

This commit is contained in:
2026-04-25 23:56:19 +02:00
parent 19d34efa37
commit cc0eef21be
7 changed files with 315 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ from pathlib import Path
from repo_registry.core.models import (
Ability,
AbilitySummary,
AnalysisRun,
CandidateAbility,
CandidateCapability,
@@ -13,6 +14,7 @@ from repo_registry.core.models import (
CandidateFeature,
CandidateGraph,
Capability,
CapabilitySummary,
Evidence,
Feature,
ObservedFact,
@@ -975,6 +977,56 @@ class RegistryStore:
).fetchall()
return [self._analysis_run_from_row(row) for row in rows]
def list_abilities(self) -> list[AbilitySummary]:
with self.connect() as connection:
rows = connection.execute(
"""
SELECT a.id, a.repository_id, r.name AS repository_name,
a.name, a.description, a.confidence
FROM approved_abilities a
JOIN repositories r ON r.id = a.repository_id
ORDER BY r.name ASC, a.name ASC, a.id ASC
"""
).fetchall()
return [
AbilitySummary(
id=row["id"],
repository_id=row["repository_id"],
repository_name=row["repository_name"],
name=row["name"],
description=row["description"],
confidence=row["confidence"],
)
for row in rows
]
def list_capabilities(self) -> list[CapabilitySummary]:
with self.connect() as connection:
rows = connection.execute(
"""
SELECT c.id, c.repository_id, r.name AS repository_name,
c.ability_id, a.name AS ability_name,
c.name, c.description, c.confidence
FROM approved_capabilities c
JOIN approved_abilities a ON a.id = c.ability_id
JOIN repositories r ON r.id = c.repository_id
ORDER BY r.name ASC, a.name ASC, c.name ASC, c.id ASC
"""
).fetchall()
return [
CapabilitySummary(
id=row["id"],
repository_id=row["repository_id"],
repository_name=row["repository_name"],
ability_id=row["ability_id"],
ability_name=row["ability_name"],
name=row["name"],
description=row["description"],
confidence=row["confidence"],
)
for row in rows
]
def get_snapshot(self, snapshot_id: int) -> RepositorySnapshot:
with self.connect() as connection:
row = connection.execute(