generated from coulomb/repo-seed
Complete adapter conformance coverage
This commit is contained in:
@@ -260,6 +260,43 @@ class JsonlAuditSink:
|
||||
return {"recorded": True, "index": index, "event": stored}
|
||||
|
||||
|
||||
class InMemorySemanticIndex:
|
||||
def __init__(self) -> None:
|
||||
self._nodes_by_graph: dict[str, list[MemoryNode]] = {}
|
||||
|
||||
def upsert_nodes(self, nodes: list[MemoryNode]) -> dict[str, Any]:
|
||||
for node in nodes:
|
||||
graph_id = str(node.metadata.get("graph_id") or "local")
|
||||
existing = [item for item in self._nodes_by_graph.get(graph_id, []) if item.node_id != node.node_id]
|
||||
existing.append(node)
|
||||
self._nodes_by_graph[graph_id] = sorted(existing, key=lambda item: item.node_id)
|
||||
return {"upserted": len(nodes)}
|
||||
|
||||
def query(self, *, graph_id: str, query: str, limit: int = 10) -> list[dict[str, Any]]:
|
||||
terms = {term.lower() for term in query.split() if term.strip()}
|
||||
results: list[dict[str, Any]] = []
|
||||
for node in self._nodes_by_graph.get(graph_id, []):
|
||||
text = f"{node.kind} {node.text}".lower()
|
||||
score = sum(1 for term in terms if term in text)
|
||||
if score:
|
||||
results.append({"id": node.node_id, "score": score, "kind": node.kind})
|
||||
return sorted(results, key=lambda item: (-item["score"], item["id"]))[:limit]
|
||||
|
||||
|
||||
class InMemoryRuntimeRegistry:
|
||||
def __init__(self) -> None:
|
||||
self._envelopes: dict[str, dict[str, Any]] = {}
|
||||
|
||||
def publish_runtime_envelope(self, envelope: dict[str, Any]) -> dict[str, Any]:
|
||||
reference = str(envelope.get("operation_id") or envelope.get("id") or f"envelope:{len(self._envelopes)}")
|
||||
stored = dict(envelope)
|
||||
self._envelopes[reference] = stored
|
||||
return {"published": True, "reference": reference, "envelope": stored}
|
||||
|
||||
def fetch_runtime_envelope(self, reference: str) -> dict[str, Any]:
|
||||
return dict(self._envelopes[reference])
|
||||
|
||||
|
||||
def _safe_name(identifier: str) -> str:
|
||||
safe = "".join(char if char.isalnum() or char in ("-", "_", ".") else "_" for char in identifier)
|
||||
return safe or "anonymous"
|
||||
|
||||
Reference in New Issue
Block a user