feat(cli): wire up Fern CLI generator#170
Conversation
There was a problem hiding this comment.
1 issue found across 40 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/release-cli.yml">
<violation number="1" location=".github/workflows/release-cli.yml:13">
P0: Trigger path `fern/api/cli/generators.yml` is a typo — the actual file is at `fern/apis/cli/generators.yml` (missing 's' in `apis`). The directory `fern/api/` does not exist. This means the workflow will never fire when generator version changes are pushed to `fern/apis/cli/generators.yml`, silently breaking the third trigger condition.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
| # b) Fern CLI version changes | ||
| - "fern/fern.config.json" | ||
| # c) Generator version changes | ||
| - "fern/api/cli/generators.yml" |
There was a problem hiding this comment.
P0: Trigger path fern/api/cli/generators.yml is a typo — the actual file is at fern/apis/cli/generators.yml (missing 's' in apis). The directory fern/api/ does not exist. This means the workflow will never fire when generator version changes are pushed to fern/apis/cli/generators.yml, silently breaking the third trigger condition.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/release-cli.yml, line 13:
<comment>Trigger path `fern/api/cli/generators.yml` is a typo — the actual file is at `fern/apis/cli/generators.yml` (missing 's' in `apis`). The directory `fern/api/` does not exist. This means the workflow will never fire when generator version changes are pushed to `fern/apis/cli/generators.yml`, silently breaking the third trigger condition.</comment>
<file context>
@@ -0,0 +1,29 @@
+ # b) Fern CLI version changes
+ - "fern/fern.config.json"
+ # c) Generator version changes
+ - "fern/api/cli/generators.yml"
+ workflow_dispatch:
+
</file context>
| - "fern/api/cli/generators.yml" | |
| - "fern/apis/cli/generators.yml" |
… collision The generated Rust code glob-imports the model prelude into error.rs, so a model named Send shadows std::marker::Send and breaks the `+ Send + Sync` trait-object bounds. x-fern-type-name renames the generated type to SendEvent without changing the wire format. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
openapi/openapi.yml is generated output, so the inline annotation would be lost on the next spec regen. The overrides file is merged onto the spec only for CLI generation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…api" Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The unscoped agentmail-cli name on npm is AgentMail's production (Stainless-generated Go) CLI, so the generated README's install instructions pointed at the wrong binary. Revert to agentmail-cli when this pipeline becomes the official one. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The OpenAPI export drops the group nesting that exists in the Fern definition, so the CLI generator flattened nested resources into hyphenated groups (inboxes-messages send). Annotate all 63 operations in the inboxes-*/pods-* groups so commands nest properly (inboxes messages send). Names are camelCase per Fern convention; smart-casing renders them kebab-case in the CLI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ync alive Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
📋 View the side-by-side API change reviewThe link expires in 7 days. 🔒 Your API specs are encrypted in CI before they're uploaded. The decryption key stays in this link's URL fragment (after the #), which browsers never send to a server, so oasdiff cannot read your specs. How it works → Posted automatically by the oasdiff GitHub Action. To turn this off (no spec upload, no comment), set |
✨ API Changes# API Changelog n/a vs. n/a
## API Changes
### POST /v0/agent/sign-up
- :warning: api path removed without deprecation
### POST /v0/agent/verify
- :warning: api path removed without deprecation
### GET /v0/api-keys
- :warning: deleted the `query` request parameter `ascending`
- :warning: removed the optional property `api_keys/items/inbox_id` from the response with the `200` status
- :warning: removed the optional property `api_keys/items/permissions` from the response with the `200` status
- :warning: removed the optional property `api_keys/items/pod_id` from the response with the `200` status
- api tag `ApiKeys` added
- api tag `APIKeys` removed
### POST /v0/api-keys
- :warning: the request property `name` became required
- :warning: removed the request property `permissions`
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `inbox_id` from the response with the `200` status
- :warning: removed the optional property `message` from the response with the `400` status
- :warning: removed the optional property `permissions` from the response with the `200` status
- :warning: removed the optional property `pod_id` from the response with the `200` status
- api tag `ApiKeys` added
- api tag `APIKeys` removed
### DELETE /v0/api-keys/{api_key_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- api tag `ApiKeys` added
- api tag `APIKeys` removed
### GET /v0/auth/me
- :warning: api path removed without deprecation
### GET /v0/domains
- :warning: removed the required property `domains/items/domain` from the response with the `200` status
- :warning: removed the required property `domains/items/subdomains_enabled` from the response with the `200` status
- :warning: deleted the `query` request parameter `ascending`
### POST /v0/domains
- :warning: the request property `feedback_enabled` became required
- :warning: removed the required property `domain` from the response with the `200` status
- :warning: removed the required property `subdomains_enabled` from the response with the `200` status
- :warning: removed the request property `subdomains_enabled`
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `message` from the response with the `400` status
### DELETE /v0/domains/{domain_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/domains/{domain_id}
- :warning: removed the required property `domain` from the response with the `200` status
- :warning: removed the required property `subdomains_enabled` from the response with the `200` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### PATCH /v0/domains/{domain_id}
- :warning: api removed without deprecation
### POST /v0/domains/{domain_id}/verify
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/domains/{domain_id}/zone-file
- :warning: removed the success response with the status `200`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- added the success response with the status `204`
### GET /v0/drafts
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `drafts/items/forward_of` from the response with the `200` status
- :warning: removed the optional property `drafts/items/in_reply_to` from the response with the `200` status
- :warning: removed the optional property `fix` from the response with the `404` status
- added the required property `drafts/items/thread_id` to the response with the `200` status
### GET /v0/drafts/{draft_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `forward_of` from the response with the `200` status
- added the required property `thread_id` to the response with the `200` status
### GET /v0/drafts/{draft_id}/attachments/{attachment_id}
- :warning: api path removed without deprecation
### GET /v0/inboxes
- :warning: removed the required property `inboxes/items/email` from the response with the `200` status
- :warning: deleted the `query` request parameter `ascending`
- :warning: removed the optional property `inboxes/items/metadata` from the response with the `200` status
### POST /v0/inboxes
- :warning: removed the required property `email` from the response with the `200` status
- :warning: removed the request property `metadata`
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `message` from the response with the `400` status
- :warning: removed the optional property `metadata` from the response with the `200` status
- removed the non-success response with the status `422`
### DELETE /v0/inboxes/{inbox_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/inboxes/{inbox_id}
- :warning: removed the required property `email` from the response with the `200` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `metadata` from the response with the `200` status
### PATCH /v0/inboxes/{inbox_id}
- :warning: the request property `display_name` became required
- :warning: removed the required property `email` from the response with the `200` status
- :warning: removed the request property `metadata`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `metadata` from the response with the `200` status
- removed the non-success response with the status `400`
### GET /v0/inboxes/{inbox_id}/api-keys
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/api-keys
- :warning: api path removed without deprecation
### DELETE /v0/inboxes/{inbox_id}/api-keys/{api_key_id}
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/drafts
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `drafts/items/forward_of` from the response with the `200` status
- :warning: removed the optional property `drafts/items/in_reply_to` from the response with the `200` status
- :warning: removed the optional property `fix` from the response with the `404` status
- added the required property `drafts/items/thread_id` to the response with the `200` status
### POST /v0/inboxes/{inbox_id}/drafts
- :warning: removed the request property `attachments`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `forward_of` from the response with the `200` status
- added the required property `thread_id` to the response with the `200` status
### DELETE /v0/inboxes/{inbox_id}/drafts/{draft_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/inboxes/{inbox_id}/drafts/{draft_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `forward_of` from the response with the `200` status
- added the required property `thread_id` to the response with the `200` status
### PATCH /v0/inboxes/{inbox_id}/drafts/{draft_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `forward_of` from the response with the `200` status
- added the required property `thread_id` to the response with the `200` status
### GET /v0/inboxes/{inbox_id}/drafts/{draft_id}/attachments/{attachment_id}
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/drafts/{draft_id}/send
- :warning: request property `add_labels` list-of-types was narrowed by removing types `string` from media type `application/json`
- :warning: request property `remove_labels` list-of-types was narrowed by removing types `string` from media type `application/json`
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `code` from the response with the `403` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `403` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `403` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `message` from the response with the `400` status
- the request property `add_labels` became nullable
- the request property `remove_labels` became nullable
- removed the non-success response with the status `409`
### GET /v0/inboxes/{inbox_id}/events
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/lists/{direction}/{type}
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/lists/{direction}/{type}
- :warning: api path removed without deprecation
### DELETE /v0/inboxes/{inbox_id}/lists/{direction}/{type}/{entry}
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/lists/{direction}/{type}/{entry}
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/messages
- :warning: deleted the `query` request parameter `from`
- :warning: deleted the `query` request parameter `include_blocked`
- :warning: deleted the `query` request parameter `include_trash`
- :warning: deleted the `query` request parameter `include_unauthenticated`
- :warning: deleted the `query` request parameter `subject`
- :warning: deleted the `query` request parameter `to`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### POST /v0/inboxes/{inbox_id}/messages/batch-get
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/messages/batch-update
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/messages/search
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/messages/send
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `code` from the response with the `403` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `403` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `403` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `message` from the response with the `400` status
- removed the non-success response with the status `409`
### DELETE /v0/inboxes/{inbox_id}/messages/{message_id}
- :warning: api removed without deprecation
### GET /v0/inboxes/{inbox_id}/messages/{message_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### PATCH /v0/inboxes/{inbox_id}/messages/{message_id}
- :warning: request property `add_labels` list-of-types was narrowed by removing types `string` from media type `application/json`
- :warning: request property `remove_labels` list-of-types was narrowed by removing types `string` from media type `application/json`
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `message` from the response with the `400` status
- the request property `add_labels` became nullable
- the request property `remove_labels` became nullable
- added the optional property `attachments` to the response with the `200` status
- added the optional property `bcc` to the response with the `200` status
- added the optional property `cc` to the response with the `200` status
- added the optional property `extracted_html` to the response with the `200` status
- added the optional property `extracted_text` to the response with the `200` status
- added the optional property `headers` to the response with the `200` status
- added the optional property `html` to the response with the `200` status
- added the optional property `in_reply_to` to the response with the `200` status
- added the optional property `preview` to the response with the `200` status
- added the optional property `references` to the response with the `200` status
- added the optional property `reply_to` to the response with the `200` status
- added the optional property `subject` to the response with the `200` status
- added the optional property `text` to the response with the `200` status
- added the required property `created_at` to the response with the `200` status
- added the required property `from` to the response with the `200` status
- added the required property `inbox_id` to the response with the `200` status
- added the required property `size` to the response with the `200` status
- added the required property `thread_id` to the response with the `200` status
- added the required property `timestamp` to the response with the `200` status
- added the required property `to` to the response with the `200` status
- added the required property `updated_at` to the response with the `200` status
### GET /v0/inboxes/{inbox_id}/messages/{message_id}/attachments/{attachment_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### POST /v0/inboxes/{inbox_id}/messages/{message_id}/draft-forward
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/messages/{message_id}/draft-reply
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/messages/{message_id}/draft-reply-all
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/messages/{message_id}/forward
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `code` from the response with the `403` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `403` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `403` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `message` from the response with the `400` status
- removed the non-success response with the status `409`
### GET /v0/inboxes/{inbox_id}/messages/{message_id}/raw
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### POST /v0/inboxes/{inbox_id}/messages/{message_id}/reply
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `code` from the response with the `403` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `403` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `403` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `message` from the response with the `400` status
- removed the non-success response with the status `409`
### POST /v0/inboxes/{inbox_id}/messages/{message_id}/reply-all
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `code` from the response with the `403` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `403` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `403` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `message` from the response with the `400` status
- removed the non-success response with the status `409`
### GET /v0/inboxes/{inbox_id}/metrics
- endpoint added
### GET /v0/inboxes/{inbox_id}/metrics/events
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/metrics/usage
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/threads
- :warning: deleted the `query` request parameter `include_blocked`
- :warning: deleted the `query` request parameter `include_trash`
- :warning: deleted the `query` request parameter `include_unauthenticated`
- :warning: deleted the `query` request parameter `recipients`
- :warning: deleted the `query` request parameter `senders`
- :warning: deleted the `query` request parameter `subject`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/inboxes/{inbox_id}/threads/search
- :warning: api path removed without deprecation
### DELETE /v0/inboxes/{inbox_id}/threads/{thread_id}
- :warning: deleted the `query` request parameter `permanent`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/inboxes/{inbox_id}/threads/{thread_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### PATCH /v0/inboxes/{inbox_id}/threads/{thread_id}
- :warning: api removed without deprecation
### GET /v0/inboxes/{inbox_id}/threads/{thread_id}/attachments/{attachment_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/inboxes/{inbox_id}/webhooks
- :warning: api path removed without deprecation
### POST /v0/inboxes/{inbox_id}/webhooks
- :warning: api path removed without deprecation
### DELETE /v0/inboxes/{inbox_id}/webhooks/{webhook_id}
- :warning: api path removed without deprecation
### GET /v0/inboxes/{inbox_id}/webhooks/{webhook_id}
- :warning: api path removed without deprecation
### PATCH /v0/inboxes/{inbox_id}/webhooks/{webhook_id}
- :warning: api path removed without deprecation
### GET /v0/lists/{direction}/{type}
- :warning: api path removed without deprecation
### POST /v0/lists/{direction}/{type}
- :warning: api path removed without deprecation
### DELETE /v0/lists/{direction}/{type}/{entry}
- :warning: api path removed without deprecation
### GET /v0/lists/{direction}/{type}/{entry}
- :warning: api path removed without deprecation
### GET /v0/metrics
- endpoint added
### GET /v0/metrics/events
- :warning: api path removed without deprecation
### GET /v0/metrics/usage
- :warning: api path removed without deprecation
### GET /v0/organizations
- :warning: removed the optional property `authentication_id` from the response with the `200` status
- :warning: removed the optional property `authentication_type` from the response with the `200` status
- :warning: removed the optional property `billing_id` from the response with the `200` status
- :warning: removed the optional property `billing_subscription_id` from the response with the `200` status
- :warning: removed the optional property `billing_type` from the response with the `200` status
### GET /v0/pods
- :warning: deleted the `query` request parameter `ascending`
### POST /v0/pods
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `message` from the response with the `400` status
### DELETE /v0/pods/{pod_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/pods/{pod_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/pods/{pod_id}/api-keys
- :warning: api path removed without deprecation
### POST /v0/pods/{pod_id}/api-keys
- :warning: api path removed without deprecation
### DELETE /v0/pods/{pod_id}/api-keys/{api_key_id}
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/domains
- :warning: removed the required property `domains/items/domain` from the response with the `200` status
- :warning: removed the required property `domains/items/subdomains_enabled` from the response with the `200` status
- :warning: deleted the `query` request parameter `ascending`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### POST /v0/pods/{pod_id}/domains
- :warning: the request property `feedback_enabled` became required
- :warning: removed the required property `domain` from the response with the `200` status
- :warning: removed the required property `subdomains_enabled` from the response with the `200` status
- :warning: removed the request property `subdomains_enabled`
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `message` from the response with the `400` status
### DELETE /v0/pods/{pod_id}/domains/{domain_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/pods/{pod_id}/domains/{domain_id}
- :warning: api removed without deprecation
### PATCH /v0/pods/{pod_id}/domains/{domain_id}
- :warning: api removed without deprecation
### POST /v0/pods/{pod_id}/domains/{domain_id}/verify
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/domains/{domain_id}/zone-file
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/drafts
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `drafts/items/forward_of` from the response with the `200` status
- :warning: removed the optional property `drafts/items/in_reply_to` from the response with the `200` status
- :warning: removed the optional property `fix` from the response with the `404` status
- added the required property `drafts/items/thread_id` to the response with the `200` status
### GET /v0/pods/{pod_id}/drafts/{draft_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `forward_of` from the response with the `200` status
- added the required property `thread_id` to the response with the `200` status
### GET /v0/pods/{pod_id}/drafts/{draft_id}/attachments/{attachment_id}
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/inboxes
- :warning: removed the required property `inboxes/items/email` from the response with the `200` status
- :warning: deleted the `query` request parameter `ascending`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `inboxes/items/metadata` from the response with the `200` status
### POST /v0/pods/{pod_id}/inboxes
- :warning: removed the required property `email` from the response with the `200` status
- :warning: removed the request property `metadata`
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `message` from the response with the `400` status
- :warning: removed the optional property `metadata` from the response with the `200` status
- removed the non-success response with the status `422`
### DELETE /v0/pods/{pod_id}/inboxes/{inbox_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/pods/{pod_id}/inboxes/{inbox_id}
- :warning: removed the required property `email` from the response with the `200` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `metadata` from the response with the `200` status
### PATCH /v0/pods/{pod_id}/inboxes/{inbox_id}
- :warning: api removed without deprecation
### GET /v0/pods/{pod_id}/lists/{direction}/{type}
- :warning: api path removed without deprecation
### POST /v0/pods/{pod_id}/lists/{direction}/{type}
- :warning: api path removed without deprecation
### DELETE /v0/pods/{pod_id}/lists/{direction}/{type}/{entry}
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/lists/{direction}/{type}/{entry}
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/metrics/events
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/metrics/usage
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/threads
- :warning: deleted the `query` request parameter `include_blocked`
- :warning: deleted the `query` request parameter `include_trash`
- :warning: deleted the `query` request parameter `include_unauthenticated`
- :warning: deleted the `query` request parameter `recipients`
- :warning: deleted the `query` request parameter `senders`
- :warning: deleted the `query` request parameter `subject`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/pods/{pod_id}/threads/search
- :warning: api path removed without deprecation
### DELETE /v0/pods/{pod_id}/threads/{thread_id}
- :warning: api removed without deprecation
### GET /v0/pods/{pod_id}/threads/{thread_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### PATCH /v0/pods/{pod_id}/threads/{thread_id}
- :warning: api removed without deprecation
### GET /v0/pods/{pod_id}/threads/{thread_id}/attachments/{attachment_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/pods/{pod_id}/webhooks
- :warning: api path removed without deprecation
### POST /v0/pods/{pod_id}/webhooks
- :warning: api path removed without deprecation
### DELETE /v0/pods/{pod_id}/webhooks/{webhook_id}
- :warning: api path removed without deprecation
### GET /v0/pods/{pod_id}/webhooks/{webhook_id}
- :warning: api path removed without deprecation
### PATCH /v0/pods/{pod_id}/webhooks/{webhook_id}
- :warning: api path removed without deprecation
### GET /v0/threads
- :warning: deleted the `query` request parameter `include_blocked`
- :warning: deleted the `query` request parameter `include_trash`
- :warning: deleted the `query` request parameter `include_unauthenticated`
- :warning: deleted the `query` request parameter `recipients`
- :warning: deleted the `query` request parameter `senders`
- :warning: deleted the `query` request parameter `subject`
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/threads/search
- :warning: api path removed without deprecation
### DELETE /v0/threads/{thread_id}
- :warning: api removed without deprecation
### GET /v0/threads/{thread_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### PATCH /v0/threads/{thread_id}
- :warning: api removed without deprecation
### GET /v0/threads/{thread_id}/attachments/{attachment_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/webhooks
- :warning: deleted the `query` request parameter `ascending`
- removed the `message.received.blocked` enum value from the `webhooks/items/event_types/items/` response property for the response status `200`
- removed the `message.received.spam` enum value from the `webhooks/items/event_types/items/` response property for the response status `200`
- removed the `message.received.unauthenticated` enum value from the `webhooks/items/event_types/items/` response property for the response status `200`
### POST /v0/webhooks
- :warning: added the new required request property `event_types`
- :warning: added the new required request property `url`
- :warning: removed `#/components/schemas/webhooksCreatePodWebhookRequest` from the request body `allOf` list
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `message` from the response with the `400` status
- added the new optional request property `client_id`
- added the new optional request property `inbox_ids`
- removed the `message.received.blocked` enum value from the `event_types/items/` response property for the response status `200`
- removed the `message.received.spam` enum value from the `event_types/items/` response property for the response status `200`
- removed the `message.received.unauthenticated` enum value from the `event_types/items/` response property for the response status `200`
### DELETE /v0/webhooks/{webhook_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
### GET /v0/webhooks/{webhook_id}
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `404` status
- removed the `message.received.blocked` enum value from the `event_types/items/` response property for the response status `200`
- removed the `message.received.spam` enum value from the `event_types/items/` response property for the response status `200`
- removed the `message.received.unauthenticated` enum value from the `event_types/items/` response property for the response status `200`
### PATCH /v0/webhooks/{webhook_id}
- :warning: removed `#/components/schemas/webhooksUpdatePodWebhookRequest` from the request body `allOf` list
- :warning: removed the optional property `code` from the response with the `400` status
- :warning: removed the optional property `code` from the response with the `404` status
- :warning: removed the optional property `docs` from the response with the `400` status
- :warning: removed the optional property `docs` from the response with the `404` status
- :warning: removed the optional property `fix` from the response with the `400` status
- :warning: removed the optional property `fix` from the response with the `404` status
- :warning: removed the optional property `message` from the response with the `400` status
- added the new optional request property `add_inbox_ids`
- added the new optional request property `remove_inbox_ids`
- removed the `message.received.blocked` enum value from the `event_types/items/` response property for the response status `200`
- removed the `message.received.spam` enum value from the `event_types/items/` response property for the response status `200`
- removed the `message.received.unauthenticated` enum value from the `event_types/items/` response property for the response status `200`
## Components
- removed the schema `AgentSignupRequest`
- removed the schema `AgentSignupResponse`
- removed the schema `AgentVerifyRequest`
- removed the schema `AgentVerifyResponse`
- removed the schema `ApiKeyPermissions`
- removed the schema `BatchGetMessagesMessageIds`
- removed the schema `BatchGetMessagesRequest`
- removed the schema `BatchGetMessagesResponse`
- removed the schema `BatchUpdateMessagesMessageIds`
- removed the schema `BatchUpdateMessagesRequest`
- removed the schema `BatchUpdateMessagesResponse`
- removed the schema `CreateDraftForwardRequest`
- removed the schema `CreateDraftReplyAllRequest`
- removed the schema `CreateDraftReplyRequest`
- removed the schema `CreateListEntryRequest`
- removed the schema `Descending`
- removed the schema `Direction`
- removed the schema `DraftForwardOf`
- removed the schema `DraftReplyAll`
- removed the schema `End`
- removed the schema `EntryType`
- removed the schema `Error`
- removed the schema `ErrorCode`
- removed the schema `ErrorDocs`
- removed the schema `ErrorFix`
- removed the schema `ErrorMessage`
- removed the schema `Identity`
- removed the schema `InboxEvent`
- removed the schema `InboxEventId`
- removed the schema `InboxEventType`
- removed the schema `IncludeBlocked`
- removed the schema `IncludeTrash`
- removed the schema `IncludeUnauthenticated`
- removed the schema `ListEntry`
- removed the schema `ListEntryBase`
- removed the schema `ListInboxEventsResponse`
- removed the schema `ListListEntriesResponse`
- removed the schema `ListType`
- removed the schema `MessageReceivedEventType`
- removed the schema `MetricBucket`
- removed the schema `MetricLimit`
- removed the schema `Period`
- removed the schema `PodListEntry`
- removed the schema `PodListListEntriesResponse`
- removed the schema `Query`
- removed the schema `QueryMetricsResponse`
- removed the schema `QueryUsageResponse`
- removed the schema `ScopeType`
- removed the schema `SearchMessageHighlights`
- removed the schema `SearchMessageItem`
- removed the schema `SearchMessagesResponse`
- removed the schema `SearchThreadHighlights`
- removed the schema `SearchThreadItem`
- removed the schema `SearchThreadsResponse`
- removed the schema `Start`
- removed the schema `Status`
- removed the schema `SubdomainsEnabled`
- removed the schema `UpdateDomainRequest`
- removed the schema `UpdateMessageLabels`
- removed the schema `UpdateMessageResponse`
- removed the schema `UpdateThreadRequest`
- removed the schema `UpdateThreadResponse`
- removed the schema `UsagePoint`
- removed the schema `UsageType`
- removed the schema `UsageTypes`
- removed the schema `inboxesEmail`
- removed the schema `inboxesMetadata`
- removed the schema `inboxesMetadataValue`
- removed the schema `inboxesUpdateMetadata`
- removed the schema `webhooksCreateInboxWebhookRequest`
- removed the schema `webhooksCreatePodWebhookRequest`
- removed the schema `webhooksCreateWebhookEventTypes`
- removed the schema `webhooksUpdateInboxWebhookRequest`
- removed the schema `webhooksUpdatePodWebhookRequest`
- removed the schema `webhooksUpdateWebhookEventTypes`💡 Download |
Description
Wires up the Fern CLI generator so a CLI SDK (
agentmail-cli) is published alongside the existing SDKs. The repo becomes a multi-API workspace and the generated OpenAPI spec is committed to serve as the CLI generator's input.Changes Made
fern/apis/api/; newfern/apis/cli/group added (fern-cli-generator@0.8.0, publishingagentmail-cli).openapi/openapi.ymlis now committed and used as the CLI generator's input.release-cli.ymlregenerates the CLI on spec/version/config changes.sync-stainless.ymltargets the API explicitly; Fern CLI bumped4.63.0->5.44.8.Prerequisites (before merge)
agentmail-to/agentmail-clicreatedTesting