# garden.engram.agents.presence

> Published by [hailey.at](https://lexicon.garden/identity/did:plc:oisofpd7lj26yvgiivf3lxsi)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:oisofpd7lj26yvgiivf3lxsi/garden.engram.agents.presence)
- [Documentation](https://lexicon.garden/lexicon/did:plc:oisofpd7lj26yvgiivf3lxsi/garden.engram.agents.presence/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:oisofpd7lj26yvgiivf3lxsi/garden.engram.agents.presence/examples)

## Definitions

### `garden.engram.agents.presence`

**Type**: `record`

Which run of the agent is active, on which device, until when. A runtime acts as the agent only while its run holds an unexpired lease. The one record in a workspace that is updated in place; nothing cites it.

**Key**: `literal:self`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `device` | `string` | Yes |  |
| `handoffFrom` | `ref` → `#runRef` | No | The run this one is taking over from. The new run acts once that run writes a garden.engram.agents.handoff record for it, or that run's lease ends. |
| `leaseUntil` | `string` (datetime) | Yes |  |
| `run` | `string` (tid) | Yes |  |
| `updatedAt` | `string` (datetime) | Yes |  |

### `garden.engram.agents.presence#runRef`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `device` | `string` | Yes |  |
| `leaseUntil` | `string` (datetime) | Yes |  |
| `run` | `string` (tid) | Yes |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Which run of the agent is active, on which device, until when. A runtime acts as the agent only while its run holds an unexpired lease. The one record in a workspace that is updated in place; nothing cites it.",
      "key": "literal:self",
      "record": {
        "properties": {
          "device": {
            "maxLength": 256,
            "type": "string"
          },
          "handoffFrom": {
            "description": "The run this one is taking over from. The new run acts once that run writes a garden.engram.agents.handoff record for it, or that run's lease ends.",
            "ref": "#runRef",
            "type": "ref"
          },
          "leaseUntil": {
            "format": "datetime",
            "type": "string"
          },
          "run": {
            "format": "tid",
            "type": "string"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "run",
          "device",
          "leaseUntil",
          "updatedAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "runRef": {
      "properties": {
        "device": {
          "maxLength": 256,
          "type": "string"
        },
        "leaseUntil": {
          "format": "datetime",
          "type": "string"
        },
        "run": {
          "format": "tid",
          "type": "string"
        }
      },
      "required": [
        "run",
        "device",
        "leaseUntil"
      ],
      "type": "object"
    }
  },
  "id": "garden.engram.agents.presence",
  "lexicon": 1
}
```
