Agent Observability
UI componentsHooks

useSessions

Paginated session list fetcher. Holds its own cursor — pass a stable initialOffset and drive pagination with setOffset. Refetches automatically whenever filters or offset change.

Signature

useSessions(limit?: number, initialOffset?: number, filters?: SessionsFilters): { sessions, meta, loading, error, offset, setOffset }

Installation

pnpm dlx agent-observability-ui@latest add observability-hooks
npx agent-observability-ui@latest add observability-hooks
yarn dlx agent-observability-ui@latest add observability-hooks
bunx --bun agent-observability-ui@latest add observability-hooks

Usage

import { useSessions } from '@/lib/observability-hooks'

export function MyList() {
  const { sessions, meta, loading, offset, setOffset } = useSessions(20, 0, {
    accountId: 'acc_demo',
  })
  if (loading) return <Spinner />
  return (
    <>
      {sessions.map((s) => (
        <Row key={s.id} session={s} />
      ))}
      <Pagination
        offset={offset}
        limit={meta.limit}
        total={meta.total_count}
        onChange={setOffset}
      />
    </>
  )
}

Parameters

ParameterTypeDefaultDescription
limitnumber20Page size. The server clamps to [1, 20].
initialOffsetnumber0Starting offset. Syncs when the prop changes (so you can drive it from URL state) AND exposes setOffset for local pagination.
filtersSessionsFiltersOptional filters: { accountId?, startedFrom?, startedTo? }. Offset auto-resets to 0 when any filter changes.

Returns

{ sessions: AgentSessionRow[], meta: PlivoMeta, loading: boolean, error: string | null, offset: number, setOffset: (n: number) => void }

On this page