commits
This implements task 9 from AGENT.md by adding:
- Flag color support with RGB bit pattern encoding (Red, Orange, Yellow, Green, Blue, Purple, Gray)
- Standard message keywords as defined in draft-ietf-mailmaint-messageflag-mailboxattribute-02
- Mailbox attribute names (Snoozed, Scheduled, Memos)
- Helper functions to work with these types and convert between typed and string representations
- Utility functions to check, add, and search for messages with specific keywords
Added a test program (flag_color_test) to demonstrate the new functionality.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove nested singleton types (Mail, Submission, VacationResponse)
- Update all references to use direct variant constructors
- Fix interface file to match implementation
- Simplify string conversion functions
- Make API more consistent with Jmap.Capability module
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add proper OCaml Logs-based logging system with configurable levels
- Redact sensitive API tokens for security in logs
- Add -unread flag to filter and only show unread messages
- Add -labels flag to display message keywords/labels
- Add -debug flag to control verbosity level
- Improve CLI help and usage instructions
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create Capability module in Jmap with typed handling of core URIs
- Create Capability module in Jmap_mail with typed handling of mail URIs
- Replace hardcoded URI strings with typed versions in client code
- Improves type safety by ensuring URIs are correctly managed
- Provides parsing/stringifying functions for interoperability
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix typo in URI from "sessio" to "session"
- Modify HTTP client to support both GET and POST methods as required by API
- Improve JSON parsing to handle null values in API responses
- Add detailed debug logging to help troubleshoot API interactions
- Update mailbox and email parsers to be more robust with server responses
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added detailed HTTP debugging to print request/response details
- Improved user guidance for Fastmail API token format
- Updated error messages with instructions for getting valid tokens
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added support for Fastmail API token authentication via Bearer tokens
- Implemented login_with_token function for token-based auth
- Improved authentication header logic to support both Basic and Bearer auth
- Created fastmail_list example binary using token-based authentication
- Updated AGENT.md to mark completed tasks
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add login function to authenticate with JMAP server
- Add functions to retrieve and query mailboxes
- Add functions to retrieve email messages in mailboxes
- Make all functions follow RFC8621 JMAP Mail spec
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit implements the JMAP Mail extension as specified in RFC8621, including:
- Mailbox, Thread, and Email type definitions
- Email submission and Identity types
- Vacation response handling
- Helper functions for type conversion
- Structure and API patterns matching the core JMAP module
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implemented a comprehensive JMAP API client with the following features:
- HTTP request/response handling using cohttp-lwt-unix
- Session object fetching and parsing
- Core request serialization and response parsing
- Binary blob upload and download functionality
- Proper error handling with detailed error types
The module follows RFC8620 specifications for all API interactions,
including authentication, content handling, and URL template processing.
Note: Implementation currently has a compilation issue with ezjsonm package
that needs to be resolved.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements comprehensive OCaml type definitions for the JMAP protocol:
- Basic data types (id, int_t, unsigned_int, date, utc_date)
- Core objects (error, set_error, invocation, result_reference)
- Filter and sorting mechanisms
- Account and session management
- Push notification structures
- Request/response structures
- Standard method argument and response types
All types are documented with corresponding RFC section references.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This implements task 9 from AGENT.md by adding:
- Flag color support with RGB bit pattern encoding (Red, Orange, Yellow, Green, Blue, Purple, Gray)
- Standard message keywords as defined in draft-ietf-mailmaint-messageflag-mailboxattribute-02
- Mailbox attribute names (Snoozed, Scheduled, Memos)
- Helper functions to work with these types and convert between typed and string representations
- Utility functions to check, add, and search for messages with specific keywords
Added a test program (flag_color_test) to demonstrate the new functionality.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove nested singleton types (Mail, Submission, VacationResponse)
- Update all references to use direct variant constructors
- Fix interface file to match implementation
- Simplify string conversion functions
- Make API more consistent with Jmap.Capability module
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add proper OCaml Logs-based logging system with configurable levels
- Redact sensitive API tokens for security in logs
- Add -unread flag to filter and only show unread messages
- Add -labels flag to display message keywords/labels
- Add -debug flag to control verbosity level
- Improve CLI help and usage instructions
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create Capability module in Jmap with typed handling of core URIs
- Create Capability module in Jmap_mail with typed handling of mail URIs
- Replace hardcoded URI strings with typed versions in client code
- Improves type safety by ensuring URIs are correctly managed
- Provides parsing/stringifying functions for interoperability
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix typo in URI from "sessio" to "session"
- Modify HTTP client to support both GET and POST methods as required by API
- Improve JSON parsing to handle null values in API responses
- Add detailed debug logging to help troubleshoot API interactions
- Update mailbox and email parsers to be more robust with server responses
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added support for Fastmail API token authentication via Bearer tokens
- Implemented login_with_token function for token-based auth
- Improved authentication header logic to support both Basic and Bearer auth
- Created fastmail_list example binary using token-based authentication
- Updated AGENT.md to mark completed tasks
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add login function to authenticate with JMAP server
- Add functions to retrieve and query mailboxes
- Add functions to retrieve email messages in mailboxes
- Make all functions follow RFC8621 JMAP Mail spec
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit implements the JMAP Mail extension as specified in RFC8621, including:
- Mailbox, Thread, and Email type definitions
- Email submission and Identity types
- Vacation response handling
- Helper functions for type conversion
- Structure and API patterns matching the core JMAP module
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implemented a comprehensive JMAP API client with the following features:
- HTTP request/response handling using cohttp-lwt-unix
- Session object fetching and parsing
- Core request serialization and response parsing
- Binary blob upload and download functionality
- Proper error handling with detailed error types
The module follows RFC8620 specifications for all API interactions,
including authentication, content handling, and URL template processing.
Note: Implementation currently has a compilation issue with ezjsonm package
that needs to be resolved.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements comprehensive OCaml type definitions for the JMAP protocol:
- Basic data types (id, int_t, unsigned_int, date, utc_date)
- Core objects (error, set_error, invocation, result_reference)
- Filter and sorting mechanisms
- Account and session management
- Push notification structures
- Request/response structures
- Standard method argument and response types
All types are documented with corresponding RFC section references.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>