@extrovert.dev/sdk 0.1.0-pre.4 → 0.1.0-pre.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -6,7 +6,7 @@
6
6
  * on 429/5xx, honors `Retry-After`, and surfaces every failure as a typed {@link ApiError}.
7
7
  */
8
8
  /** The library version, surfaced in the User-Agent. Kept in sync with package.json by build. */
9
- declare const SDK_VERSION = "0.1.0-pre.4";
9
+ declare const SDK_VERSION = "0.1.0-pre.5";
10
10
  interface RetryOptions {
11
11
  /** Max retry attempts for idempotent requests on 429/5xx/network errors. Default 2. */
12
12
  maxRetries: number;
@@ -1619,13 +1619,13 @@ interface SignUpRequest {
1619
1619
  }
1620
1620
  /**
1621
1621
  * Response from `POST /v1/agent/sign-up`. The `agent_key` is a LIMITED-scope key
1622
- * (read-only) until the emailed code is confirmed via `POST /v1/agent/verify`.
1623
- * The OTP itself is never returned — it is emailed to `human_email`.
1622
+ * (read-only) that expires with the emailed code. Successful verification revokes
1623
+ * it and returns a replacement full-scope key. The OTP itself is never returned.
1624
1624
  */
1625
1625
  interface SignUpResponse {
1626
1626
  customer_id: string;
1627
1627
  agent_id: string;
1628
- /** Limited-scope agent key, shown once. Re-calling signup rotates it. */
1628
+ /** Limited-scope bootstrap key, shown once and bounded by `otp_expires_at`. */
1629
1629
  agent_key: string;
1630
1630
  key_prefix: string;
1631
1631
  scopes: Scope[];
@@ -1642,17 +1642,40 @@ interface VerifyRequest {
1642
1642
  /** The one-time code delivered to the signup human email. */
1643
1643
  otp: string;
1644
1644
  }
1645
+ /** One copy-ready MCP operation in the post-verification mailbox handoff. */
1646
+ interface MailboxQuickstartCall {
1647
+ tool: "read_messages" | "get_message" | "wait_for_email";
1648
+ arguments: Record<string, unknown>;
1649
+ }
1650
+ /**
1651
+ * Safe, MCP-first next calls for the inbox returned by signup verification.
1652
+ * SDK callers can use `address` with the typed inbox/message resources instead;
1653
+ * these calls keep agent runtimes from inventing raw HTTP routes or parsers.
1654
+ */
1655
+ interface MailboxQuickstart {
1656
+ inbox: string;
1657
+ list_mail: MailboxQuickstartCall;
1658
+ read_message: MailboxQuickstartCall;
1659
+ wait_for_mail: MailboxQuickstartCall;
1660
+ }
1645
1661
  /**
1646
- * Response from `POST /v1/agent/verify`. On success a NEW full-scope `agent_key`
1647
- * is returned (shown once); switch to it for subsequent calls.
1662
+ * Response from `POST /v1/agent/verify`. On success the bootstrap key is revoked
1663
+ * and a NEW full-scope `agent_key` is returned; switch to it for subsequent calls.
1664
+ * `address` repeats the ready inbox so the handoff remains self-contained after
1665
+ * a process restart or context compaction.
1648
1666
  */
1649
1667
  interface VerifyResponse {
1650
1668
  agent_id: string;
1651
1669
  agent_key: string;
1652
1670
  key_prefix: string;
1653
1671
  scopes: Scope[];
1672
+ /** The signup inbox, ready for immediate list/read/wait/send operations. */
1673
+ address: string;
1654
1674
  verified: boolean;
1655
1675
  message: string;
1676
+ mailbox_quickstart: MailboxQuickstart;
1677
+ /** One-time email-bound owner claim for the human console, when freshly seeded. */
1678
+ org_claim_token?: string;
1656
1679
  }
1657
1680
  /**
1658
1681
  * Response from `GET /v1/auth/me` — the verified principal behind the key.
@@ -3108,6 +3131,8 @@ declare class ExtrovertClient {
3108
3131
  /**
3109
3132
  * Confirm the emailed signup code and receive a NEW full-scope agent key (shown
3110
3133
  * once). Must be called with the limited key from {@link signUp} as the bearer.
3134
+ * The result repeats the ready inbox address and includes MCP-first list/read/wait
3135
+ * calls; SDK callers can pass `address` directly to `inboxes` and `messages`.
3111
3136
  */
3112
3137
  verify(req: VerifyRequest, signal?: AbortSignal): Promise<VerifyResponse>;
3113
3138
  /** Introspect the principal behind the current key (`GET /v1/auth/me`). */
@@ -3674,7 +3699,7 @@ declare function signWebhook(secret: string, body: string, timestampSeconds: num
3674
3699
  *
3675
3700
  * ## Provisional, pre-1.0 (0.x)
3676
3701
  *
3677
- * {@link CONTRACT_VERSION} is **`0.1.0-pre.4`** — a deliberately **provisional**, pre-1.0
3702
+ * {@link CONTRACT_VERSION} is **`0.1.0-pre.5`** — a deliberately **provisional**, pre-1.0
3678
3703
  * contract. It is open and documented, but it MAY still evolve before 1.0: there
3679
3704
  * are no external users yet, and the **D20 shared-pool auto-send governor** is a
3680
3705
  * hard prerequisite before onboarding external users. Pin the version; expect
@@ -3731,12 +3756,12 @@ interface DiffJson {
3731
3756
  /**
3732
3757
  * The published version of the Extrovert Review-Loop open contract (D14).
3733
3758
  *
3734
- * **`0.1.0-pre.4` — PROVISIONAL, pre-1.0.** Versioned *with the SDK* (this package's
3759
+ * **`0.1.0-pre.5` — PROVISIONAL, pre-1.0.** Versioned *with the SDK* (this package's
3735
3760
  * `package.json` version) and aligned to the openapi `info.version`. Open and
3736
3761
  * documented, but MAY still evolve before 1.0 (no external users yet; the D20
3737
3762
  * shared-pool governor is required before external users). Pin it.
3738
3763
  */
3739
- declare const CONTRACT_VERSION: "0.1.0-pre.4";
3764
+ declare const CONTRACT_VERSION: "0.1.0-pre.5";
3740
3765
  /** The stability posture of a published contract version. */
3741
3766
  type ContractStability = "provisional" | "stable";
3742
3767
  /**
@@ -3779,4 +3804,4 @@ interface ContractManifest {
3779
3804
  */
3780
3805
  declare const CONTRACT_MANIFEST: ContractManifest;
3781
3806
 
3782
- export { API_VERSION_HEADER, type AccountRiskDial, type AckReviewEventEntry, type AckReviewEventRequest, type AckReviewEventResult, type AddContactListRequest, type Agent, type AgentStatus, ApiError, type ApiErrorBody, type Attachment, type AttachmentDownload, type AttachmentInput, AuthenticationError, type BatchUpdateMessagesRequest, type BatchUpdateResult, BornStaleError, BreadthRequiredError, CONTRACT_MANIFEST, CONTRACT_VERSION, CURRENT_API_VERSION, Categories, type Category, type CategoryPacingState, type CategoryRiskDial, ConflictError, ConnectionError, type ContactListDirection, type ContactListEntry, type ContactListKind, ContactLists, type ContractManifest, type ContractStability, type CreateInboxRequest, type Cursor, DEFAULT_BASE_URL, type DeleteResult, type DiffHunk, type DiffJson, type Domain, type DomainOffboard, type DomainRecord, type DomainScope, Domains, type EffectiveRiskDial, type EmailAddress, type EnrollRequest, type EnrollResponse, type ExtractedCredentials, ExtrovertClient as Extrovert, ExtrovertClient, type ExtrovertClientOptions, ForbiddenScopeError, type ForwardRequest, type GetInboxParams, type GetRuleAuditParams, type GetRulesParams, type GraduationStatus, IdempotencyConflictError, type Inbox, type InboxCredentials, InboxHandle, type InboxInclude, type InboxMetadata, type InboxMetadataPatch, type InboxMetadataValue, type InboxStatus, Inboxes, IntentRequiredError, type IsoTimestamp, type Job, type KeyTier, type List, type ListCategoriesParams, type ListInboxesParams, type ListMessagesParams, ListPage, type ListParams, type ListReviewEventsParams, type ListReviewsParams, type ListSuppressionsParams, type ListThreadsParams, MOCK_BASE_URL, type MailFolder, type MarkReadRequest, type Message, type MessageDirection, Messages, MockBackend, NotFoundError, type OnboardDomainRequest, type OnboardingMode, PROBLEM_CODES, type PacingItem, type Page, type PageFetcher, PaymentRequiredError, PermissionError, type PostReviewChatRequest, type Problem, type ProblemCode, type ProblemField, type ProjectInboxListParams, ProjectInboxes, Projects, type ProposeCategoryRequest, type ProposeGraduationRequest, type QueuedForReviewResult, REVIEW_PROBLEM_RETRYABLE, RateLimitError, RecipientSuppressedError, type RegisterWebhookRequest, type ReplyRequest, type RestampReviewRequest, type Review, ReviewConflictError, type ReviewDecisionContext, type ReviewEvent, type ReviewEventCursor, type ReviewEventReason, ReviewEvents, type ReviewEventsResult, type ReviewFeedback, type ReviewFeedbackComment, type ReviewInclude, type ReviewIntent, type ReviewMode, type ReviewPolicy, type ReviewState, type ReviewTurn, type ReviewerAction, type ReviewerDecisionRequest, type ReviewerDecisionResult, Reviews, type RiskDial, type Rule, type RuleAuditEntry, type RuleLayer, Rules, SDK_VERSION, type SaveRuleRequest, type ScanBacklogStatus, type Scope, type SearchMessagesParams, SendNeedsReconciliationError, type SendOutcome, type SendRequest, type SendResult, type SentResult, type SignUpRequest, type SignUpResponse, StaleError, type StreamEvent, type StreamOptions, type SubmitForReviewResult, type SubmitRevisionRequest, type SuppressionEntry, type SuppressionPrecheck, type SuppressionScope, type SuppressionSource, Suppressions, TerminalError, type Thread, type ThreadDetail, Threads, TimeoutError, UnavailableError, type UpdateCategoryRequest, type UpdateInboxRequest, type UpdateWebhookRequest, ValidationError, type VerifyRequest, type VerifyResponse, type VerifyWebhookOptions, type WaitForEmailRequest, type WaitForEmailResult, type WaitForReviewEventParams, type Webhook, type WebhookEvent, type WebhookPayload, Webhooks, type WhoAmI, WrongStateError, extractCredentials, extractLink, extractOtp, isProblemCode, isQueuedForReview, isSentImmediately, listPage, parseKeyTier, parseProblem, parseWebhook, reviewIdOf, sentMessageIdOf, serializeInclude, signWebhook, threadIdOf, tierAllowsOrgWildcard, tierNeedsExplicitBreadth, verifyWebhookSignature };
3807
+ export { API_VERSION_HEADER, type AccountRiskDial, type AckReviewEventEntry, type AckReviewEventRequest, type AckReviewEventResult, type AddContactListRequest, type Agent, type AgentStatus, ApiError, type ApiErrorBody, type Attachment, type AttachmentDownload, type AttachmentInput, AuthenticationError, type BatchUpdateMessagesRequest, type BatchUpdateResult, BornStaleError, BreadthRequiredError, CONTRACT_MANIFEST, CONTRACT_VERSION, CURRENT_API_VERSION, Categories, type Category, type CategoryPacingState, type CategoryRiskDial, ConflictError, ConnectionError, type ContactListDirection, type ContactListEntry, type ContactListKind, ContactLists, type ContractManifest, type ContractStability, type CreateInboxRequest, type Cursor, DEFAULT_BASE_URL, type DeleteResult, type DiffHunk, type DiffJson, type Domain, type DomainOffboard, type DomainRecord, type DomainScope, Domains, type EffectiveRiskDial, type EmailAddress, type EnrollRequest, type EnrollResponse, type ExtractedCredentials, ExtrovertClient as Extrovert, ExtrovertClient, type ExtrovertClientOptions, ForbiddenScopeError, type ForwardRequest, type GetInboxParams, type GetRuleAuditParams, type GetRulesParams, type GraduationStatus, IdempotencyConflictError, type Inbox, type InboxCredentials, InboxHandle, type InboxInclude, type InboxMetadata, type InboxMetadataPatch, type InboxMetadataValue, type InboxStatus, Inboxes, IntentRequiredError, type IsoTimestamp, type Job, type KeyTier, type List, type ListCategoriesParams, type ListInboxesParams, type ListMessagesParams, ListPage, type ListParams, type ListReviewEventsParams, type ListReviewsParams, type ListSuppressionsParams, type ListThreadsParams, MOCK_BASE_URL, type MailFolder, type MailboxQuickstart, type MailboxQuickstartCall, type MarkReadRequest, type Message, type MessageDirection, Messages, MockBackend, NotFoundError, type OnboardDomainRequest, type OnboardingMode, PROBLEM_CODES, type PacingItem, type Page, type PageFetcher, PaymentRequiredError, PermissionError, type PostReviewChatRequest, type Problem, type ProblemCode, type ProblemField, type ProjectInboxListParams, ProjectInboxes, Projects, type ProposeCategoryRequest, type ProposeGraduationRequest, type QueuedForReviewResult, REVIEW_PROBLEM_RETRYABLE, RateLimitError, RecipientSuppressedError, type RegisterWebhookRequest, type ReplyRequest, type RestampReviewRequest, type Review, ReviewConflictError, type ReviewDecisionContext, type ReviewEvent, type ReviewEventCursor, type ReviewEventReason, ReviewEvents, type ReviewEventsResult, type ReviewFeedback, type ReviewFeedbackComment, type ReviewInclude, type ReviewIntent, type ReviewMode, type ReviewPolicy, type ReviewState, type ReviewTurn, type ReviewerAction, type ReviewerDecisionRequest, type ReviewerDecisionResult, Reviews, type RiskDial, type Rule, type RuleAuditEntry, type RuleLayer, Rules, SDK_VERSION, type SaveRuleRequest, type ScanBacklogStatus, type Scope, type SearchMessagesParams, SendNeedsReconciliationError, type SendOutcome, type SendRequest, type SendResult, type SentResult, type SignUpRequest, type SignUpResponse, StaleError, type StreamEvent, type StreamOptions, type SubmitForReviewResult, type SubmitRevisionRequest, type SuppressionEntry, type SuppressionPrecheck, type SuppressionScope, type SuppressionSource, Suppressions, TerminalError, type Thread, type ThreadDetail, Threads, TimeoutError, UnavailableError, type UpdateCategoryRequest, type UpdateInboxRequest, type UpdateWebhookRequest, ValidationError, type VerifyRequest, type VerifyResponse, type VerifyWebhookOptions, type WaitForEmailRequest, type WaitForEmailResult, type WaitForReviewEventParams, type Webhook, type WebhookEvent, type WebhookPayload, Webhooks, type WhoAmI, WrongStateError, extractCredentials, extractLink, extractOtp, isProblemCode, isQueuedForReview, isSentImmediately, listPage, parseKeyTier, parseProblem, parseWebhook, reviewIdOf, sentMessageIdOf, serializeInclude, signWebhook, threadIdOf, tierAllowsOrgWildcard, tierNeedsExplicitBreadth, verifyWebhookSignature };
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * on 429/5xx, honors `Retry-After`, and surfaces every failure as a typed {@link ApiError}.
7
7
  */
8
8
  /** The library version, surfaced in the User-Agent. Kept in sync with package.json by build. */
9
- declare const SDK_VERSION = "0.1.0-pre.4";
9
+ declare const SDK_VERSION = "0.1.0-pre.5";
10
10
  interface RetryOptions {
11
11
  /** Max retry attempts for idempotent requests on 429/5xx/network errors. Default 2. */
12
12
  maxRetries: number;
@@ -1619,13 +1619,13 @@ interface SignUpRequest {
1619
1619
  }
1620
1620
  /**
1621
1621
  * Response from `POST /v1/agent/sign-up`. The `agent_key` is a LIMITED-scope key
1622
- * (read-only) until the emailed code is confirmed via `POST /v1/agent/verify`.
1623
- * The OTP itself is never returned — it is emailed to `human_email`.
1622
+ * (read-only) that expires with the emailed code. Successful verification revokes
1623
+ * it and returns a replacement full-scope key. The OTP itself is never returned.
1624
1624
  */
1625
1625
  interface SignUpResponse {
1626
1626
  customer_id: string;
1627
1627
  agent_id: string;
1628
- /** Limited-scope agent key, shown once. Re-calling signup rotates it. */
1628
+ /** Limited-scope bootstrap key, shown once and bounded by `otp_expires_at`. */
1629
1629
  agent_key: string;
1630
1630
  key_prefix: string;
1631
1631
  scopes: Scope[];
@@ -1642,17 +1642,40 @@ interface VerifyRequest {
1642
1642
  /** The one-time code delivered to the signup human email. */
1643
1643
  otp: string;
1644
1644
  }
1645
+ /** One copy-ready MCP operation in the post-verification mailbox handoff. */
1646
+ interface MailboxQuickstartCall {
1647
+ tool: "read_messages" | "get_message" | "wait_for_email";
1648
+ arguments: Record<string, unknown>;
1649
+ }
1650
+ /**
1651
+ * Safe, MCP-first next calls for the inbox returned by signup verification.
1652
+ * SDK callers can use `address` with the typed inbox/message resources instead;
1653
+ * these calls keep agent runtimes from inventing raw HTTP routes or parsers.
1654
+ */
1655
+ interface MailboxQuickstart {
1656
+ inbox: string;
1657
+ list_mail: MailboxQuickstartCall;
1658
+ read_message: MailboxQuickstartCall;
1659
+ wait_for_mail: MailboxQuickstartCall;
1660
+ }
1645
1661
  /**
1646
- * Response from `POST /v1/agent/verify`. On success a NEW full-scope `agent_key`
1647
- * is returned (shown once); switch to it for subsequent calls.
1662
+ * Response from `POST /v1/agent/verify`. On success the bootstrap key is revoked
1663
+ * and a NEW full-scope `agent_key` is returned; switch to it for subsequent calls.
1664
+ * `address` repeats the ready inbox so the handoff remains self-contained after
1665
+ * a process restart or context compaction.
1648
1666
  */
1649
1667
  interface VerifyResponse {
1650
1668
  agent_id: string;
1651
1669
  agent_key: string;
1652
1670
  key_prefix: string;
1653
1671
  scopes: Scope[];
1672
+ /** The signup inbox, ready for immediate list/read/wait/send operations. */
1673
+ address: string;
1654
1674
  verified: boolean;
1655
1675
  message: string;
1676
+ mailbox_quickstart: MailboxQuickstart;
1677
+ /** One-time email-bound owner claim for the human console, when freshly seeded. */
1678
+ org_claim_token?: string;
1656
1679
  }
1657
1680
  /**
1658
1681
  * Response from `GET /v1/auth/me` — the verified principal behind the key.
@@ -3108,6 +3131,8 @@ declare class ExtrovertClient {
3108
3131
  /**
3109
3132
  * Confirm the emailed signup code and receive a NEW full-scope agent key (shown
3110
3133
  * once). Must be called with the limited key from {@link signUp} as the bearer.
3134
+ * The result repeats the ready inbox address and includes MCP-first list/read/wait
3135
+ * calls; SDK callers can pass `address` directly to `inboxes` and `messages`.
3111
3136
  */
3112
3137
  verify(req: VerifyRequest, signal?: AbortSignal): Promise<VerifyResponse>;
3113
3138
  /** Introspect the principal behind the current key (`GET /v1/auth/me`). */
@@ -3674,7 +3699,7 @@ declare function signWebhook(secret: string, body: string, timestampSeconds: num
3674
3699
  *
3675
3700
  * ## Provisional, pre-1.0 (0.x)
3676
3701
  *
3677
- * {@link CONTRACT_VERSION} is **`0.1.0-pre.4`** — a deliberately **provisional**, pre-1.0
3702
+ * {@link CONTRACT_VERSION} is **`0.1.0-pre.5`** — a deliberately **provisional**, pre-1.0
3678
3703
  * contract. It is open and documented, but it MAY still evolve before 1.0: there
3679
3704
  * are no external users yet, and the **D20 shared-pool auto-send governor** is a
3680
3705
  * hard prerequisite before onboarding external users. Pin the version; expect
@@ -3731,12 +3756,12 @@ interface DiffJson {
3731
3756
  /**
3732
3757
  * The published version of the Extrovert Review-Loop open contract (D14).
3733
3758
  *
3734
- * **`0.1.0-pre.4` — PROVISIONAL, pre-1.0.** Versioned *with the SDK* (this package's
3759
+ * **`0.1.0-pre.5` — PROVISIONAL, pre-1.0.** Versioned *with the SDK* (this package's
3735
3760
  * `package.json` version) and aligned to the openapi `info.version`. Open and
3736
3761
  * documented, but MAY still evolve before 1.0 (no external users yet; the D20
3737
3762
  * shared-pool governor is required before external users). Pin it.
3738
3763
  */
3739
- declare const CONTRACT_VERSION: "0.1.0-pre.4";
3764
+ declare const CONTRACT_VERSION: "0.1.0-pre.5";
3740
3765
  /** The stability posture of a published contract version. */
3741
3766
  type ContractStability = "provisional" | "stable";
3742
3767
  /**
@@ -3779,4 +3804,4 @@ interface ContractManifest {
3779
3804
  */
3780
3805
  declare const CONTRACT_MANIFEST: ContractManifest;
3781
3806
 
3782
- export { API_VERSION_HEADER, type AccountRiskDial, type AckReviewEventEntry, type AckReviewEventRequest, type AckReviewEventResult, type AddContactListRequest, type Agent, type AgentStatus, ApiError, type ApiErrorBody, type Attachment, type AttachmentDownload, type AttachmentInput, AuthenticationError, type BatchUpdateMessagesRequest, type BatchUpdateResult, BornStaleError, BreadthRequiredError, CONTRACT_MANIFEST, CONTRACT_VERSION, CURRENT_API_VERSION, Categories, type Category, type CategoryPacingState, type CategoryRiskDial, ConflictError, ConnectionError, type ContactListDirection, type ContactListEntry, type ContactListKind, ContactLists, type ContractManifest, type ContractStability, type CreateInboxRequest, type Cursor, DEFAULT_BASE_URL, type DeleteResult, type DiffHunk, type DiffJson, type Domain, type DomainOffboard, type DomainRecord, type DomainScope, Domains, type EffectiveRiskDial, type EmailAddress, type EnrollRequest, type EnrollResponse, type ExtractedCredentials, ExtrovertClient as Extrovert, ExtrovertClient, type ExtrovertClientOptions, ForbiddenScopeError, type ForwardRequest, type GetInboxParams, type GetRuleAuditParams, type GetRulesParams, type GraduationStatus, IdempotencyConflictError, type Inbox, type InboxCredentials, InboxHandle, type InboxInclude, type InboxMetadata, type InboxMetadataPatch, type InboxMetadataValue, type InboxStatus, Inboxes, IntentRequiredError, type IsoTimestamp, type Job, type KeyTier, type List, type ListCategoriesParams, type ListInboxesParams, type ListMessagesParams, ListPage, type ListParams, type ListReviewEventsParams, type ListReviewsParams, type ListSuppressionsParams, type ListThreadsParams, MOCK_BASE_URL, type MailFolder, type MarkReadRequest, type Message, type MessageDirection, Messages, MockBackend, NotFoundError, type OnboardDomainRequest, type OnboardingMode, PROBLEM_CODES, type PacingItem, type Page, type PageFetcher, PaymentRequiredError, PermissionError, type PostReviewChatRequest, type Problem, type ProblemCode, type ProblemField, type ProjectInboxListParams, ProjectInboxes, Projects, type ProposeCategoryRequest, type ProposeGraduationRequest, type QueuedForReviewResult, REVIEW_PROBLEM_RETRYABLE, RateLimitError, RecipientSuppressedError, type RegisterWebhookRequest, type ReplyRequest, type RestampReviewRequest, type Review, ReviewConflictError, type ReviewDecisionContext, type ReviewEvent, type ReviewEventCursor, type ReviewEventReason, ReviewEvents, type ReviewEventsResult, type ReviewFeedback, type ReviewFeedbackComment, type ReviewInclude, type ReviewIntent, type ReviewMode, type ReviewPolicy, type ReviewState, type ReviewTurn, type ReviewerAction, type ReviewerDecisionRequest, type ReviewerDecisionResult, Reviews, type RiskDial, type Rule, type RuleAuditEntry, type RuleLayer, Rules, SDK_VERSION, type SaveRuleRequest, type ScanBacklogStatus, type Scope, type SearchMessagesParams, SendNeedsReconciliationError, type SendOutcome, type SendRequest, type SendResult, type SentResult, type SignUpRequest, type SignUpResponse, StaleError, type StreamEvent, type StreamOptions, type SubmitForReviewResult, type SubmitRevisionRequest, type SuppressionEntry, type SuppressionPrecheck, type SuppressionScope, type SuppressionSource, Suppressions, TerminalError, type Thread, type ThreadDetail, Threads, TimeoutError, UnavailableError, type UpdateCategoryRequest, type UpdateInboxRequest, type UpdateWebhookRequest, ValidationError, type VerifyRequest, type VerifyResponse, type VerifyWebhookOptions, type WaitForEmailRequest, type WaitForEmailResult, type WaitForReviewEventParams, type Webhook, type WebhookEvent, type WebhookPayload, Webhooks, type WhoAmI, WrongStateError, extractCredentials, extractLink, extractOtp, isProblemCode, isQueuedForReview, isSentImmediately, listPage, parseKeyTier, parseProblem, parseWebhook, reviewIdOf, sentMessageIdOf, serializeInclude, signWebhook, threadIdOf, tierAllowsOrgWildcard, tierNeedsExplicitBreadth, verifyWebhookSignature };
3807
+ export { API_VERSION_HEADER, type AccountRiskDial, type AckReviewEventEntry, type AckReviewEventRequest, type AckReviewEventResult, type AddContactListRequest, type Agent, type AgentStatus, ApiError, type ApiErrorBody, type Attachment, type AttachmentDownload, type AttachmentInput, AuthenticationError, type BatchUpdateMessagesRequest, type BatchUpdateResult, BornStaleError, BreadthRequiredError, CONTRACT_MANIFEST, CONTRACT_VERSION, CURRENT_API_VERSION, Categories, type Category, type CategoryPacingState, type CategoryRiskDial, ConflictError, ConnectionError, type ContactListDirection, type ContactListEntry, type ContactListKind, ContactLists, type ContractManifest, type ContractStability, type CreateInboxRequest, type Cursor, DEFAULT_BASE_URL, type DeleteResult, type DiffHunk, type DiffJson, type Domain, type DomainOffboard, type DomainRecord, type DomainScope, Domains, type EffectiveRiskDial, type EmailAddress, type EnrollRequest, type EnrollResponse, type ExtractedCredentials, ExtrovertClient as Extrovert, ExtrovertClient, type ExtrovertClientOptions, ForbiddenScopeError, type ForwardRequest, type GetInboxParams, type GetRuleAuditParams, type GetRulesParams, type GraduationStatus, IdempotencyConflictError, type Inbox, type InboxCredentials, InboxHandle, type InboxInclude, type InboxMetadata, type InboxMetadataPatch, type InboxMetadataValue, type InboxStatus, Inboxes, IntentRequiredError, type IsoTimestamp, type Job, type KeyTier, type List, type ListCategoriesParams, type ListInboxesParams, type ListMessagesParams, ListPage, type ListParams, type ListReviewEventsParams, type ListReviewsParams, type ListSuppressionsParams, type ListThreadsParams, MOCK_BASE_URL, type MailFolder, type MailboxQuickstart, type MailboxQuickstartCall, type MarkReadRequest, type Message, type MessageDirection, Messages, MockBackend, NotFoundError, type OnboardDomainRequest, type OnboardingMode, PROBLEM_CODES, type PacingItem, type Page, type PageFetcher, PaymentRequiredError, PermissionError, type PostReviewChatRequest, type Problem, type ProblemCode, type ProblemField, type ProjectInboxListParams, ProjectInboxes, Projects, type ProposeCategoryRequest, type ProposeGraduationRequest, type QueuedForReviewResult, REVIEW_PROBLEM_RETRYABLE, RateLimitError, RecipientSuppressedError, type RegisterWebhookRequest, type ReplyRequest, type RestampReviewRequest, type Review, ReviewConflictError, type ReviewDecisionContext, type ReviewEvent, type ReviewEventCursor, type ReviewEventReason, ReviewEvents, type ReviewEventsResult, type ReviewFeedback, type ReviewFeedbackComment, type ReviewInclude, type ReviewIntent, type ReviewMode, type ReviewPolicy, type ReviewState, type ReviewTurn, type ReviewerAction, type ReviewerDecisionRequest, type ReviewerDecisionResult, Reviews, type RiskDial, type Rule, type RuleAuditEntry, type RuleLayer, Rules, SDK_VERSION, type SaveRuleRequest, type ScanBacklogStatus, type Scope, type SearchMessagesParams, SendNeedsReconciliationError, type SendOutcome, type SendRequest, type SendResult, type SentResult, type SignUpRequest, type SignUpResponse, StaleError, type StreamEvent, type StreamOptions, type SubmitForReviewResult, type SubmitRevisionRequest, type SuppressionEntry, type SuppressionPrecheck, type SuppressionScope, type SuppressionSource, Suppressions, TerminalError, type Thread, type ThreadDetail, Threads, TimeoutError, UnavailableError, type UpdateCategoryRequest, type UpdateInboxRequest, type UpdateWebhookRequest, ValidationError, type VerifyRequest, type VerifyResponse, type VerifyWebhookOptions, type WaitForEmailRequest, type WaitForEmailResult, type WaitForReviewEventParams, type Webhook, type WebhookEvent, type WebhookPayload, Webhooks, type WhoAmI, WrongStateError, extractCredentials, extractLink, extractOtp, isProblemCode, isQueuedForReview, isSentImmediately, listPage, parseKeyTier, parseProblem, parseWebhook, reviewIdOf, sentMessageIdOf, serializeInclude, signWebhook, threadIdOf, tierAllowsOrgWildcard, tierNeedsExplicitBreadth, verifyWebhookSignature };
package/dist/index.js CHANGED
@@ -266,7 +266,7 @@ var CURRENT_API_VERSION = "2026-06-23";
266
266
  var API_VERSION_HEADER = "Extrovert-Version";
267
267
 
268
268
  // src/http.ts
269
- var SDK_VERSION = "0.1.0-pre.4";
269
+ var SDK_VERSION = "0.1.0-pre.5";
270
270
  function buildUrl(baseUrl, path, query) {
271
271
  const base = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
272
272
  const rel = path.startsWith("/") ? path : `/${path}`;
@@ -623,6 +623,23 @@ function decodeMockCursor(cursor) {
623
623
  return 0;
624
624
  }
625
625
  }
626
+ function mailboxQuickstart(address) {
627
+ return {
628
+ inbox: address,
629
+ list_mail: {
630
+ tool: "read_messages",
631
+ arguments: { inbox: address, limit: 20, unread_only: false }
632
+ },
633
+ read_message: {
634
+ tool: "get_message",
635
+ arguments: { id: "<message_id from read_messages>", format: "text", variant: "extracted" }
636
+ },
637
+ wait_for_mail: {
638
+ tool: "wait_for_email",
639
+ arguments: { inbox: address, since_now: true }
640
+ }
641
+ };
642
+ }
626
643
  var SHARED_SUBDOMAIN = "smtp.extrovert.dev";
627
644
  var MOCK_ORG_ID = "org_mock";
628
645
  var MOCK_PROJECT_ID = "prj_mock";
@@ -933,7 +950,7 @@ var MockBackend = class {
933
950
  const customerId = existing?.customerId ?? `cus_pn_signup_${rid("c").slice(2)}`;
934
951
  const agentId = existing?.agentId ?? rid("agt");
935
952
  const address = existing?.address ?? `${req.username ?? randomHandle()}@smtp.extrovert.dev`;
936
- const otp = String(Math.floor(1e5 + Math.random() * 9e5));
953
+ const otp = "492013";
937
954
  this.state.signupByEmail.set(email, { customerId, agentId, address, otp, verified: false });
938
955
  return {
939
956
  customer_id: customerId,
@@ -958,8 +975,10 @@ var MockBackend = class {
958
975
  agent_key: `pk_agent_${s.agentId.slice(4)}_${rid("sk").slice(3)}`,
959
976
  key_prefix: `pk_agent_${s.agentId.slice(4, 8)}`,
960
977
  scopes: ["mailbox:create", "mailbox:read", "mailbox:send"],
978
+ address: s.address,
961
979
  verified: true,
962
- message: "Verified. Use the new agent_key (full scopes)."
980
+ message: "Verified. The inbox is ready; use read_messages, then get_message with a returned message id.",
981
+ mailbox_quickstart: mailboxQuickstart(s.address)
963
982
  };
964
983
  }
965
984
  }
@@ -4981,6 +5000,8 @@ var ExtrovertClient = class _ExtrovertClient {
4981
5000
  /**
4982
5001
  * Confirm the emailed signup code and receive a NEW full-scope agent key (shown
4983
5002
  * once). Must be called with the limited key from {@link signUp} as the bearer.
5003
+ * The result repeats the ready inbox address and includes MCP-first list/read/wait
5004
+ * calls; SDK callers can pass `address` directly to `inboxes` and `messages`.
4984
5005
  */
4985
5006
  verify(req, signal) {
4986
5007
  return this.transport.verify(req, signal);
@@ -5148,7 +5169,7 @@ async function signWebhook(secret, body, timestampSeconds) {
5148
5169
  }
5149
5170
 
5150
5171
  // src/contract.ts
5151
- var CONTRACT_VERSION = "0.1.0-pre.4";
5172
+ var CONTRACT_VERSION = "0.1.0-pre.5";
5152
5173
  var CONTRACT_MANIFEST = {
5153
5174
  name: "extrovert.review-loop",
5154
5175
  version: CONTRACT_VERSION,