Extrovert TypeScript SDK
Check current guidance
On first Extrovert use in this session, after one hour (or a shorter returned freshness interval),
and after an unknown-tool or schema error, inspect the current tool catalog. Call agent_context
only if present; otherwise fetch
https://mcp.extrovert.dev/.well-known/agent-contract.json, then https://docs.extrovert.dev/llms.txt.
An installed or pinned CLI can run agent status --json if supported. Only when normal installation
policy permits an unpinned CLI, use
npx --yes --prefer-online @extrovert.dev/mcp@next agent status --json.
Read the live guide for current product behavior and use the host's current tool schemas. If a
schema remains stale, refresh the catalog or reconnect before continuing; inspect state before
retrying an uncertain mutation.
Compare this skill's metadata.version with its version in live context. A difference signals a
refresh to consider, not incompatibility, permission to downgrade, or authorization to install.
Preserve explicit pins, local edits, the installation manager, and scope; refresh only the installed
Extrovert skills when permitted. Updating files requires two separate reloads: reload and re-read each changed SKILL.md, then
restart changed local MCP processes or refresh hosted discovery. If a new session is needed, report
that pending step; use live guidance for this task. If freshness is unavailable, report
that condition without treating it as disabled signup or permission to guess new behavior. See
updates for targeted refresh instructions.
The prerelease package is published under the explicit next dist-tag. Use
npm install @extrovert.dev/sdk@next, or pin @extrovert.dev/sdk@0.1.0-pre.13 for reproducible dogfood
tests. The public REST API and served OpenAPI remain the underlying contract. Do not imply that a
hosted MCP route substitutes for the SDK; use the SDK for direct TypeScript application integration.
Choose the smallest mode
Single-inbox reads expose human_email_review: the default-off account-wide option
to skip review for exactly one To recipient at the verified human email, no Cc/Bcc
or aliases. All writing rules, intent and sending limits still apply; other recipients
keep their policy. The signup practice always requires review. Ordinary credentials
can read this but cannot change it. Explicit Full account control can use the
administrative review-policy PATCH with skip_review_for_human; omitted fields are
unchanged and null is invalid. Use the returned settings_url for relevant discovery,
not repeated prompts. See the live agent contract for details.
- Basic client, authentication, inbox handles, thread reads/search, project addressing, pagination, metadata, commerce requests, or errors: read references/core-client.md.
- Customer administration, credential handoff, and revocation: read references/administration.md.
- Sending, replying,- Sending, replying, forwarding, durable review events, revisions, or rules: read references/review-loop.md.
- Webhooks, signature verification, SSE, or offline fixtures: read references/events-and-testing.md.
Use whoami() as the authority source. Prefer the canonical projects.inboxes.* chain when project breadth matters; inbox ids and cursors are opaque. A body project_id asserts the active project. Legacy keys keep their fixed project; a connection can select a project only within its consented reach. Use whoami.connection when present instead of applying legacy ownership assumptions.
Keep the SDK, current OpenAPI, and backend behavior in lockstep. Parse typed problem responses rather than branching on message strings. Pass stable idempotency_key values for retryable mutations, and never report a queued review as delivered.
Internal email review exceptions
Read internal_email_review in inbox detail alongside the existing human-recipient exception. Project and organization exceptions start off. Every final To/Cc/Bcc recipient must resolve to an inbox in the sender's enabled project or exact organization. Shared domains, aliases, shared humans, child organizations, and mixed external recipients do not qualify. Organization enablement includes current and future projects; project-off does not override it. These settings grant no inbox access.
Ordinary agents and project managers cannot enable these settings. A current owner/admin or explicitly delegated Full account control can change them using the existing administrative review-policy operation. Explain a returned settings URL when relevant, but do not repeatedly solicit enablement, widen your authority, or split recipients to evade review. Apply writing rules and intent, then submit normally and follow the returned sent/queued result. Sending limits and protected onboarding review remain in force. See https://docs.extrovert.dev/review-loop/agent-contract/#email-between-agents-without-review.
1---2name: extrovert-sdk3description: Build or troubleshoot a TypeScript integration against the Extrovert REST API using the current SDK source and OpenAPI contract. Use for delegated administrative workflows, client construction, org/project/inbox addressing, thread workflows, pagination, error handling, commerce requests, reviewed sends, OTP waits, webhooks, streams, signature verification, or offline fixture tests.4---56# Extrovert TypeScript SDK78## Check current guidance910On first Extrovert use in this session, after one hour (or a shorter returned freshness interval),11and after an unknown-tool or schema error, inspect the current tool catalog. Call `agent_context`12only if present; otherwise fetch13https://mcp.extrovert.dev/.well-known/agent-contract.json, then https://docs.extrovert.dev/llms.txt.14An installed or pinned CLI can run `agent status --json` if supported. Only when normal installation15policy permits an unpinned CLI, use16`npx --yes --prefer-online @extrovert.dev/mcp@next agent status --json`.17Read the live guide for current product behavior and use the host's current tool schemas. If a18schema remains stale, refresh the catalog or reconnect before continuing; inspect state before19retrying an uncertain mutation.2021Compare this skill's `metadata.version` with its version in live context. A difference signals a22refresh to consider, not incompatibility, permission to downgrade, or authorization to install.23Preserve explicit pins, local edits, the installation manager, and scope; refresh only the installed24Extrovert skills when permitted. Updating files requires two separate reloads: reload and re-read each changed `SKILL.md`, then25restart changed local MCP processes or refresh hosted discovery. If a new session is needed, report26that pending step; use live guidance for this task. If freshness is unavailable, report27that condition without treating it as disabled signup or permission to guess new behavior. See28[updates](https://docs.extrovert.dev/operating/agent-updates/) for targeted refresh instructions.2930The prerelease package is published under the explicit `next` dist-tag. Use31`npm install @extrovert.dev/sdk@next`, or pin `@extrovert.dev/sdk@0.1.0-pre.13` for reproducible dogfood32tests. The public REST API and served OpenAPI remain the underlying contract. Do not imply that a33hosted MCP route substitutes for the SDK; use the SDK for direct TypeScript application integration.3435## Choose the smallest mode3637Single-inbox reads expose `human_email_review`: the default-off account-wide option38to skip review for exactly one To recipient at the verified human email, no Cc/Bcc39or aliases. All writing rules, intent and sending limits still apply; other recipients40keep their policy. The signup practice always requires review. Ordinary credentials41can read this but cannot change it. Explicit Full account control can use the42administrative review-policy PATCH with `skip_review_for_human`; omitted fields are43unchanged and null is invalid. Use the returned settings_url for relevant discovery,44not repeated prompts. See the live agent contract for details.4546- Basic client, authentication, inbox handles, thread reads/search, project addressing, pagination, metadata, commerce requests, or errors: read [references/core-client.md](references/core-client.md).47- Customer administration, credential handoff, and revocation: read [references/administration.md](references/administration.md).48- Sending, replying,- Sending, replying, forwarding, durable review events, revisions, or rules: read [references/review-loop.md](references/review-loop.md).49- Webhooks, signature verification, SSE, or offline fixtures: read [references/events-and-testing.md](references/events-and-testing.md).5051Use `whoami()` as the authority source. Prefer the canonical `projects.inboxes.*` chain when project breadth matters; inbox ids and cursors are opaque. A body `project_id` asserts the active project. Legacy keys keep their fixed project; a connection can select a project only within its consented reach. Use `whoami.connection` when present instead of applying legacy ownership assumptions.5253Keep the SDK, current OpenAPI, and backend behavior in lockstep. Parse typed problem responses rather than branching on message strings. Pass stable `idempotency_key` values for retryable mutations, and never report a queued review as delivered.545556## Internal email review exceptions5758Read `internal_email_review` in inbox detail alongside the existing human-recipient exception. Project and organization exceptions start off. Every final To/Cc/Bcc recipient must resolve to an inbox in the sender's enabled project or exact organization. Shared domains, aliases, shared humans, child organizations, and mixed external recipients do not qualify. Organization enablement includes current and future projects; project-off does not override it. These settings grant no inbox access.5960Ordinary agents and project managers cannot enable these settings. A current owner/admin or explicitly delegated Full account control can change them using the existing administrative review-policy operation. Explain a returned settings URL when relevant, but do not repeatedly solicit enablement, widen your authority, or split recipients to evade review. Apply writing rules and intent, then submit normally and follow the returned sent/queued result. Sending limits and protected onboarding review remain in force. See https://docs.extrovert.dev/review-loop/agent-contract/#email-between-agents-without-review.