personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

think/surfaces: add ledger surface types

+45
+2
think/surfaces/__init__.py
··· 1 + # SPDX-License-Identifier: AGPL-3.0-only 2 + # Copyright (c) 2026 sol pbc
+43
think/surfaces/types.py
··· 1 + # SPDX-License-Identifier: AGPL-3.0-only 2 + # Copyright (c) 2026 sol pbc 3 + 4 + from dataclasses import dataclass 5 + 6 + 7 + @dataclass(frozen=True) 8 + class ActivitySourceRef: 9 + facet: str 10 + day: str 11 + activity_id: str 12 + field: str 13 + created_at: int 14 + 15 + 16 + @dataclass(frozen=True) 17 + class LedgerItem: 18 + id: str 19 + state: str 20 + owner: str 21 + owner_entity_id: str | None 22 + counterparty: str | None 23 + counterparty_entity_id: str | None 24 + action: str 25 + summary: str # summary == action verbatim; CLI composes "owner: action → counterparty" at render time if it wants. 26 + when: str | None 27 + context: str 28 + opened_at: int 29 + closed_at: int | None 30 + age_days: int 31 + sources: tuple[ActivitySourceRef, ...] 32 + 33 + 34 + @dataclass(frozen=True) 35 + class Decision: 36 + id: str 37 + owner: str 38 + owner_entity_id: str | None 39 + action: str 40 + context: str 41 + day: str 42 + created_at: int 43 + source: ActivitySourceRef