activity (Soon)
Subscribable resource: family-wide Activity event stream.
The resource
URI: sprout://family/activity
Required scope: task:read
The family-wide Activity stream. Every meaningful event: tasks completed, skills run, gems earned, screen-time requests filed. Planned The resource that makes event-driven heartbeats real.
When it pushes
- Any event that would normally land in the Activity feed.
- Scopable later to a subset of event types (planned filter syntax in the URI).
Push payload
The notification frame on the SSE stream:
JSON-RPC
{
"jsonrpc": "2.0",
"method": "notifications/resources/updated",
"params": { "uri": "sprout://family/activity" }
}The frame only names the URI that changed. To get the new state, your agent calls resources/read <uri>.
Read shape
Calling resources/read sprout://family/activity returns:
JSON
{
"events": [
{
"eventId": "uuid",
"type": "task.completed" | "skill.invoked" | "gems.adjusted" | "screentime.requested" | ...,
"actor": { "kind": "kid" | "system", "id": "uuid" },
"refs": { "taskId": "uuid", "skillId": "uuid" },
"payload": { ... type-specific ... },
"timestamp": "2026-05-23T14:02:00Z"
}
],
"nextCursor": "opaque" | null
}Subscribe / unsubscribe
Shell
resources/subscribe sprout://family/activity
# ... server holds the SSE stream open, pushes on every change ...
resources/unsubscribe sprout://family/activityNotes
Coming soon. The full Activity model lives at Model: Activity.
See also
- Subscriptions overview: the shared semantics and the full catalog.
- Model: Pull, push, realtime.