> ## Documentation Index
> Fetch the complete documentation index at: https://docs.niadra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# View de agora de um cliente

> Os objetos do cliente nos tipos declarados, os objetos compartilhados em que ele mostrou interesse e o que mudou desde que ele os viu, e o mesmo como linhas para o bloco do turno.



## OpenAPI

````yaml openapi/pt/cell.json POST /v1/state/view
openapi: 3.1.0
info:
  title: API de dados da Niadra
  version: '1'
  description: >-
    Escrita, contexto, histórico, objetos, identidade, privacidade e governança
    de um espaço. Cada espaço tem um endereço estável, com o espaço e a região
    no nome.
servers:
  - url: https://{space}.{region}.api.niadra.com
    variables:
      space:
        default: acme-prod
        description: O espaço, que vem na chave de fonte.
      region:
        default: us-east-2
        description: A região do espaço, que também vem na chave.
security: []
paths:
  /v1/state/view:
    post:
      tags:
        - state
      summary: View de agora de um cliente
      description: >-
        A view de agora do cliente, para a finalidade da leitura: os objetos
        dele, os objetos compartilhados em que mostrou interesse e o que mudou
        desde que os viu, e o mesmo como linhas para o bloco do turno.


        **Autenticação.** Chave de fonte: `Authorization: Bearer nia_sk_...`.
        Escopo exigido: `context`. Só responde num espaço com a funcionalidade
        `state` ligada (o documento `features`); num espaço sem ela, 404.
      operationId: state_view_v1_state_view_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StateViewRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateView'
          description: Resposta de sucesso.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: O pedido não bate com o contrato.
      security:
        - sourceKey: []
components:
  schemas:
    StateViewRequest:
      additionalProperties: false
      properties:
        purpose:
          default: display
          enum:
            - display
            - claim
            - decide
          title: Purpose
          type: string
        subject:
          $ref: '#/components/schemas/Handle'
      required:
        - subject
      title: StateViewRequest
      type: object
    StateView:
      additionalProperties: false
      description: >-
        O estado de um cliente (a view de agora): os objetos dele nos tipos
        declarados, cada um como uma leitura `display` o serve; os objetos
        compartilhados em que ele mostrou interesse, e o que mudou desde que ele
        os viu; e o mesmo como linhas curtas para o bloco do turno.
      properties:
        changes_since_seen:
          items:
            $ref: '#/components/schemas/ChangeSinceSeen'
          title: Changes Since Seen
          type: array
        degraded:
          default: false
          title: Degraded
          type: boolean
        interests:
          items:
            $ref: '#/components/schemas/InterestState'
          title: Interests
          type: array
        objects:
          items:
            $ref: '#/components/schemas/ObjectRead'
          title: Objects
          type: array
        text:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            A view como linhas para o bloco do turno, depois de `slots`: nunca
            parte do `text` do contexto, então o prefixo em cache mantém os
            bytes. Ausente quando não há o que dizer.
          title: Text
      title: StateView
      type: object
    Problem:
      additionalProperties: false
      description: >-
        Detalhes do problema no formato da RFC 9457; `code` vem do catálogo de
        erros versionado.
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Detail
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Request Id
        status:
          title: Status
          type: integer
        title:
          title: Title
          type: string
        type:
          default: about:blank
          title: Type
          type: string
      required:
        - title
        - status
        - code
      title: Problem
      type: object
    Handle:
      additionalProperties: false
      description: >-
        Um identificador de um sujeito num canal ou sistema: um telefone, um
        e-mail, um id do CRM.
      properties:
        scope:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          description: >-
            Espaço de nomes dos identificadores com escopo: a conta do WhatsApp
            Business para `wa_bsuid`, o sistema para `system_id`, o país para
            `gov_id_hmac`.
          title: Scope
        subject_kind:
          anyOf:
            - $ref: '#/components/schemas/SubjectKind'
            - type: 'null'
          description: >-
            O padrão é `person`, exceto nos tipos de handle que só identificam
            organizações.
        type:
          $ref: '#/components/schemas/HandleType'
        value:
          maxLength: 320
          minLength: 1
          title: Value
          type: string
          description: >-
            O identificador. Normalizado no servidor: E.164 para telefone,
            minúsculas para e-mail.
      required:
        - type
        - value
      title: Handle
      type: object
    ChangeSinceSeen:
      additionalProperties: false
      description: Um campo de um interesse cujo valor não é o que o cliente viu.
      properties:
        field:
          maxLength: 256
          minLength: 1
          title: Field
          type: string
        now:
          title: Now
        observed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: Quando a fonte observou o valor guardado agora.
          title: Observed At
        ref:
          $ref: '#/components/schemas/StateRef'
        seen:
          title: Seen
      required:
        - ref
        - field
      title: ChangeSinceSeen
      type: object
    InterestState:
      additionalProperties: false
      description: >-
        Um objeto compartilhado em que o cliente mostrou interesse, como está
        agora.
      properties:
        at:
          format: date-time
          title: At
          type: string
        object:
          anyOf:
            - $ref: '#/components/schemas/ObjectRead'
            - type: 'null'
          description: >-
            O objeto como uma leitura `display` o serve; ausente quando ele saiu
            do conjunto de trabalho.
        reason:
          description: '`presented`, `engaged`, `feedback` ou `watch`.'
          maxLength: 256
          minLength: 1
          title: Reason
          type: string
        ref:
          $ref: '#/components/schemas/StateRef'
      required:
        - ref
        - reason
        - at
      title: InterestState
      type: object
    ObjectRead:
      additionalProperties: false
      description: >-
        Um objeto como uma leitura de estado o serve: campos com os quatro
        valores lógicos e os carimbos, valores computados, ciclo de vida,
        temporizadores e leituras nomeadas, e o que não pode ser afirmado com
        dado dessa idade. Uma leitura nunca recusa; uma leitura `decide` de um
        tipo que pede isso leva `refusal` ao lado dos valores, para a ferramenta
        da empresa.
      properties:
        as_of:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: As Of
        axes:
          additionalProperties:
            type: string
          description: >-
            Cada eixo de tempo do tipo cujo valor é conhecido: uma data como
            `YYYY-MM-DD`, um instante em UTC. A plataforma guarda `known_at`
            (quando o produtor soube do objeto) e quando o conteúdo dele mudou
            pela última vez.
          title: Axes
          type: object
        blocked:
          additionalProperties:
            items:
              type: string
            type: array
          description: >-
            O que os campos cujo valor não é conhecido bloqueiam, como o tipo
            declara (`unobserved_blocks`): cada atividade (`model_read`,
            `derive`, `claim`, ou uma tarefa da empresa como `decide:close`) com
            os campos que a bloqueiam. Nada mais é bloqueado.
          propertyNames:
            maxLength: 256
            minLength: 1
          title: Blocked
          type: object
        declared_gaps:
          items:
            type: string
          title: Declared Gaps
          type: array
        derived_status:
          anyOf:
            - enum:
                - current
                - expired_by_input
              type: string
            - type: 'null'
          title: Derived Status
        expired_by:
          description: Os insumos cuja mudança o venceu.
          items:
            type: string
          title: Expired By
          type: array
        fields:
          additionalProperties:
            $ref: '#/components/schemas/FieldState'
          title: Fields
          type: object
        latches:
          additionalProperties:
            format: date-time
            type: string
          title: Latches
          type: object
        outcome:
          anyOf:
            - $ref: '#/components/schemas/OutcomeState'
            - type: 'null'
        prohibitions:
          items:
            type: string
          title: Prohibitions
          type: array
        readings:
          additionalProperties:
            $ref: '#/components/schemas/ReadingResult'
          title: Readings
          type: object
        ref:
          $ref: '#/components/schemas/StateRef'
        refetch:
          anyOf:
            - $ref: '#/components/schemas/Refetch'
            - type: 'null'
        refusal:
          anyOf:
            - $ref: '#/components/schemas/Refusal'
            - type: 'null'
        state:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: State
        timers:
          items:
            $ref: '#/components/schemas/TimerState'
          title: Timers
          type: array
        type_version:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Type Version
        values:
          additionalProperties:
            $ref: '#/components/schemas/ValueState'
          title: Values
          type: object
        withheld:
          additionalProperties:
            enum:
              - access
              - licence
              - scan
            type: string
          description: Campos deixados de fora para quem lê, e por quê.
          title: Withheld
          type: object
      required:
        - ref
      title: ObjectRead
      type: object
    SubjectKind:
      enum:
        - person
        - account
        - partner
      title: SubjectKind
      type: string
      description: >-
        Uma pessoa, uma organização cliente (`account`) ou uma organização que
        participa sem ser cliente (`partner`).
    HandleType:
      enum:
        - phone_e164
        - wa_id
        - wa_jid
        - wa_lid
        - wa_bsuid
        - email
        - gov_id_hmac
        - app_user_id
        - system_id
        - org_registry_hmac
        - email_domain
        - anon_id
      title: HandleType
      type: string
      description: >-
        O tipo de identificador. O valor é classificado pelo formato, nunca pelo
        campo de onde veio.
    StateRef:
      additionalProperties: false
      description: >-
        Um objeto do registro de tipos: de um cliente ou compartilhado, cuja
        chave pode nomear uma variante.
      properties:
        id:
          maxLength: 512
          minLength: 1
          title: Id
          type: string
        namespace:
          maxLength: 256
          minLength: 1
          title: Namespace
          type: string
        type:
          maxLength: 256
          minLength: 1
          title: Type
          type: string
        variant:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Variant
      required:
        - type
        - namespace
        - id
      title: StateRef
      type: object
    FieldState:
      additionalProperties: false
      description: >-
        Um campo como uma leitura o serve: o valor com o valor lógico, os
        carimbos, a fonte e o observador, e o frescor calculado agora contra a
        regra atual do tipo.
      properties:
        age_s:
          anyOf:
            - type: integer
            - type: 'null'
          description: Segundos desde `observed_at`.
          title: Age S
        claim_safe:
          title: Claim Safe
          type: boolean
        completeness:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Completeness
        content:
          anyOf:
            - $ref: '#/components/schemas/ContentMarker'
            - type: 'null'
        known_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: Quando a Niadra o soube pela primeira vez; nunca se move.
          title: Known At
        logic:
          enum:
            - 'yes'
            - 'no'
            - unobserved
            - known_defect
          title: Logic
          type: string
        masked:
          default: false
          description: 'O acesso de quem lê mascara o valor: `v` está ausente.'
          title: Masked
          type: boolean
        observed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: Quando a fonte observou o valor.
          title: Observed At
        observer:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Observer
        role:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Role
        src:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Src
        status:
          enum:
            - fresh
            - stale
            - expired
          title: Status
          type: string
        v:
          title: V
        valid_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Valid At
        was:
          anyOf:
            - $ref: '#/components/schemas/PreviousValue'
            - type: 'null'
      required:
        - logic
        - status
        - claim_safe
      title: FieldState
      type: object
    OutcomeState:
      additionalProperties: false
      properties:
        at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: At
        final:
          title: Final
          type: boolean
        state:
          description: Um estado canônico do tipo, ou `expired_without_outcome`.
          maxLength: 256
          minLength: 1
          title: State
          type: string
      required:
        - state
        - final
      title: OutcomeState
      type: object
    ReadingResult:
      additionalProperties: false
      description: >-
        O valor de uma leitura nomeada, como o niadra-expr o calcula: o valor
        lógico e, quando conhecidos, o tipo e o valor (datas como `YYYY-MM-DD`,
        horários em UTC, durações em milissegundos).
      properties:
        absent:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Absent
        inputs:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          description: >-
            Numa leitura que inclui os insumos: os insumos do objeto derivado,
            pelo nome que o tipo dá a eles, como `tipo:namespace:id`.
          title: Inputs
        logic:
          enum:
            - 'yes'
            - 'no'
            - unobserved
            - known_defect
          title: Logic
          type: string
        type:
          anyOf:
            - enum:
                - bool
                - number
                - string
                - duration
                - date
                - datetime
                - list
              type: string
            - type: 'null'
          title: Type
        v:
          title: V
      required:
        - logic
      title: ReadingResult
      type: object
    Refetch:
      additionalProperties: false
      properties:
        admitted:
          title: Admitted
          type: boolean
        priority:
          enum:
            - high
            - normal
            - low
          title: Priority
          type: string
        reason:
          maxLength: 256
          minLength: 1
          title: Reason
          type: string
      required:
        - reason
        - priority
        - admitted
      title: Refetch
      type: object
    Refusal:
      additionalProperties: false
      properties:
        action:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          title: Action
        reason:
          maxLength: 256
          minLength: 1
          title: Reason
          type: string
      required:
        - reason
      title: Refusal
      type: object
    TimerState:
      additionalProperties: false
      properties:
        due_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: Calculado agora a partir da regra e dos valores.
          title: Due At
        fired_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Fired At
        name:
          maxLength: 256
          minLength: 1
          title: Name
          type: string
        state:
          enum:
            - armed
            - fired
            - cancelled
          title: State
          type: string
        supersedes_firing_id:
          anyOf:
            - maxLength: 512
              minLength: 1
              type: string
            - type: 'null'
          description: >-
            O disparo que este substitui: um temporizador que já disparou
            dispara de novo quando o valor que o armou é revisado.
          title: Supersedes Firing Id
      required:
        - name
        - state
      title: TimerState
      type: object
    ValueState:
      additionalProperties: false
      description: >-
        Um valor que a empresa computou, guardado como fato versionado com a
        regra que o produziu.
      properties:
        absent_as:
          anyOf:
            - maxLength: 256
              minLength: 1
              type: string
            - type: 'null'
          description: O nome da ausência, quando ausente.
          title: Absent As
        claim_safe:
          title: Claim Safe
          type: boolean
        computed_at:
          format: date-time
          title: Computed At
          type: string
        declared_gaps:
          items:
            type: string
          title: Declared Gaps
          type: array
        gap_effect:
          default: unknown
          enum:
            - errs_early
            - errs_late
            - unknown
          title: Gap Effect
          type: string
        logic:
          enum:
            - 'yes'
            - 'no'
            - unobserved
            - known_defect
          title: Logic
          type: string
        rule:
          maxLength: 256
          minLength: 1
          title: Rule
          type: string
        status:
          enum:
            - fresh
            - stale
            - expired
          title: Status
          type: string
        supersedes_version:
          anyOf:
            - type: integer
            - type: 'null'
          title: Supersedes Version
        v:
          title: V
        version:
          minimum: 1
          title: Version
          type: integer
      required:
        - logic
        - version
        - rule
        - computed_at
        - status
        - claim_safe
      title: ValueState
      type: object
    ContentMarker:
      additionalProperties: false
      description: >-
        Um campo de conteúdo cujo texto a Niadra não guarda (`pointer`,
        `hash_only`), ou guarda sob triagem.
      properties:
        mode:
          enum:
            - full
            - pointer
            - hash_only
          title: Mode
          type: string
        pointer:
          anyOf:
            - maxLength: 512
              minLength: 1
              type: string
            - type: 'null'
          description: Onde o SDK lê o texto, dentro da empresa.
          title: Pointer
        scan:
          enum:
            - pending
            - clean
            - flagged
          title: Scan
          type: string
        sha256:
          anyOf:
            - pattern: ^[0-9a-f]{64}$
              type: string
            - type: 'null'
          title: Sha256
      required:
        - mode
        - scan
      title: ContentMarker
      type: object
    PreviousValue:
      additionalProperties: false
      description: >-
        O valor de um campo antes da última mudança, guardado nos campos que
        declaram `track_changes`.
      properties:
        logic:
          enum:
            - 'yes'
            - 'no'
            - unobserved
            - known_defect
          title: Logic
          type: string
        v:
          title: V
      required:
        - logic
      title: PreviousValue
      type: object
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...

````