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
57 lines
1.3 KiB
JSON
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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|