openclaw/extensions/nylas/clawdbot.plugin.json
Qasim 4c74b1134d feat(nylas): add Nylas API v3 plugin for email, calendar, and contacts
Add a new plugin extension that integrates with Nylas API v3 to provide
email, calendar, and contacts functionality for Clawdbot agents.

## Features

### Tools (16 total)
- Discovery: nylas_discover_grants (auto-discover authenticated accounts)
- Email: list_emails, get_email, send_email, create_draft, list_threads, list_folders
- Calendar: list_calendars, list_events, get_event, create_event, update_event,
  delete_event, check_availability
- Contacts: list_contacts, get_contact

### CLI Commands
- `clawdbot nylas status` - Check API connection and auto-discover grants
- `clawdbot nylas discover` - List all authenticated accounts
- `clawdbot nylas test` - Test API with sample operations
- `clawdbot nylas grants` - Show configured grants

### Gateway Methods
- 8 RPC methods for programmatic access to Nylas functionality

## Technical Details

- Uses official Nylas Node SDK (nylas@^7.5.2)
- TypeBox schemas for tool parameters
- Zod for configuration validation
- Multi-account support via named grants
- Proper error handling with NylasApiError wrapper

## Configuration

```yaml
plugins:
  entries:
    nylas:
      config:
        apiKey: "nyk_v0_..."
        defaultGrantId: "grant-id"
        grants:
          work: "work-grant-id"
          personal: "personal-grant-id"
```

## Testing

- 104 unit tests (100% coverage on core logic)
- 19 integration tests against live Nylas API
- Run with: `bun test extensions/nylas/`
- Live tests: `LIVE=1 bun test extensions/nylas/index.live.test.ts`

## Documentation

- README with setup instructions, tool reference, and troubleshooting
- Support contacts: limitless@nylas.com, support@nylas.com
2026-01-26 18:49:28 -05:00

57 lines
1.3 KiB
JSON

{
"id": "nylas",
"uiHints": {
"apiKey": {
"label": "API Key",
"help": "Nylas API key from dashboard.nylas.com",
"sensitive": true
},
"apiUri": {
"label": "API URI",
"help": "Use https://api.us.nylas.com (US) or https://api.eu.nylas.com (EU)",
"placeholder": "https://api.us.nylas.com"
},
"defaultGrantId": {
"label": "Default Grant ID",
"help": "Primary email account's grant ID from Nylas dashboard"
},
"defaultTimezone": {
"label": "Default Timezone",
"help": "Timezone for date/time operations (e.g., America/New_York)",
"placeholder": "America/New_York"
},
"grants": {
"label": "Named Grants",
"help": "Map of named grants for multi-account access (e.g., work: grant-id-1)",
"advanced": true
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"apiKey": {
"type": "string"
},
"apiUri": {
"type": "string"
},
"defaultGrantId": {
"type": "string"
},
"defaultTimezone": {
"type": "string"
},
"grants": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}