north-scape/relayboard
Relayboard: accessible team boards with audited actions, dependency maps, and shared web/MCP use cases.
A remix template · 0 remixes · Remix north-scape/relayboard
app/boards/application/ports.py
"""Ports are intentionally small; DataK3 and test doubles implement the same boundary."""
from contextlib import AbstractContextManager
from typing import Protocol
from boards.domain.model import Board, Card
class BoardRepository(Protocol):
def atomic(self) -> AbstractContextManager: ...
def get(self, board_id: str) -> Board | None: ...
def boards_for(self, email: str) -> list[Board]: ...
def save_board(self, board: Board) -> None: ...
def delete_membership(self, board_id: str, email: str) -> None: ...
def get_card(self, card_id: str) -> Card | None: ...
def cards_on(self, board_id: str) -> list[Card]: ...
def save_card(self, card: Card) -> None: ...
def log(self, board_id, card_id, actor, action, changes=None) -> None: ...
def activity(self, board_id: str) -> list[dict]: ...
class Assistant(Protocol):
def checklist(self, card_title: str) -> list[str]: ...
def summary(self, board: dict) -> str: ...
def embeddings(self, texts: list[str]) -> list[list[float]]: ...