@pidgeon-ai/sdk 1.30.0 → 1.31.1

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/CHANGELOG.md CHANGED
@@ -7,6 +7,21 @@ the two would publish a release for every unrelated product deploy.
7
7
  Semver applies to **this package's own surface** — the exported names, the
8
8
  call shapes, the result shape — not to the API behind it.
9
9
 
10
+ ## 1.31.1 — inbox, address, folder
11
+
12
+ Descriptions only. Where the docs said "mailbox" they now say inbox (what an
13
+ agent or a person has), address (`name@domain`, which the API calls an
14
+ identity) or folder. Every name stays: `mailboxes.list`, `/v1/mailboxes`,
15
+ `identity_id`. No shape moves.
16
+
17
+ ## 1.31.0 — `receive_policy`
18
+
19
+ Every address carries `receive_policy`: `open` (anyone, the default) or
20
+ `list`, which accepts only senders with an `inbox` receive rule on mail that
21
+ passes DMARC and refuses everybody else before anything is stored.
22
+ `identitiesUpdate` sets it; `identitiesReceiveRulesList` and
23
+ `identitiesReceiveRulesCreate` return it beside the rules. Additive.
24
+
10
25
  ## 1.30.0 — `authentication.signature`
11
26
 
12
27
  A message carries `authentication.signature`: `pass` when it came from
package/dist/index.d.cts CHANGED
@@ -331,7 +331,7 @@ type ClientOptions = {
331
331
  baseUrl: 'https://pidgeon.ai/api/v1' | (string & {});
332
332
  };
333
333
  /**
334
- * A mailbox, with the display name when one was given.
334
+ * An address, with the display name when one was given.
335
335
  */
336
336
  type Address = {
337
337
  email: string;
@@ -425,6 +425,10 @@ type Identity = {
425
425
  * Who it may write to: open, reply_only (somebody who wrote to it first), or list.
426
426
  */
427
427
  send_policy: string;
428
+ /**
429
+ * Who may write to it: open, or list (only senders with an inbox rule, on mail that passes DMARC).
430
+ */
431
+ receive_policy: string;
428
432
  /**
429
433
  * Your own opaque grouping for this address. Never parsed here.
430
434
  */
@@ -438,13 +442,13 @@ type Message = {
438
442
  id: string;
439
443
  thread_id: string;
440
444
  /**
441
- * The mailbox this message is in, as an id. What `POST /attachments` and the other endpoints that take a mailbox expect — `identity` below is the same address as text.
445
+ * The address this message is in, as an id. What `POST /attachments` and the other endpoints that take an `identity_id` expect — `identity` below is the same address as text.
442
446
  */
443
447
  identity_id: string | null;
444
448
  identity: string | null;
445
449
  direction: string;
446
450
  /**
447
- * A mailbox, with the display name when one was given.
451
+ * An address, with the display name when one was given.
448
452
  */
449
453
  from: {
450
454
  email: string;
@@ -658,13 +662,13 @@ type AwaitedMessage = {
658
662
  id: string;
659
663
  thread_id: string;
660
664
  /**
661
- * The mailbox this message is in, as an id. What `POST /attachments` and the other endpoints that take a mailbox expect — `identity` below is the same address as text.
665
+ * The address this message is in, as an id. What `POST /attachments` and the other endpoints that take an `identity_id` expect — `identity` below is the same address as text.
662
666
  */
663
667
  identity_id: string | null;
664
668
  identity: string | null;
665
669
  direction: string;
666
670
  /**
667
- * A mailbox, with the display name when one was given.
671
+ * An address, with the display name when one was given.
668
672
  */
669
673
  from: {
670
674
  email: string;
@@ -1176,7 +1180,7 @@ type EventResponse = {
1176
1180
  updated_at: string;
1177
1181
  };
1178
1182
  /**
1179
- * Which of the mailbox’s addresses answered.
1183
+ * Which of the inbox’s addresses answered.
1180
1184
  */
1181
1185
  attendee: string;
1182
1186
  status: string;
@@ -1188,7 +1192,7 @@ type EventResponse = {
1188
1192
  type InvitationResponse = {
1189
1193
  status: string;
1190
1194
  /**
1191
- * Which of the mailbox’s addresses answered.
1195
+ * Which of the inbox’s addresses answered.
1192
1196
  */
1193
1197
  attendee: string;
1194
1198
  /**
@@ -1718,6 +1722,10 @@ type TenantSuspended = {
1718
1722
  };
1719
1723
  type ReceiveRules = {
1720
1724
  identity_id: string;
1725
+ /**
1726
+ * open, or list: only senders with an inbox rule, on mail that passes DMARC.
1727
+ */
1728
+ receive_policy: string;
1721
1729
  rules: Array<{
1722
1730
  id: string;
1723
1731
  /**
@@ -1808,7 +1816,7 @@ type SearchHit = {
1808
1816
  */
1809
1817
  folder: 'inbox' | 'starred' | 'sent' | 'drafts' | 'scheduled' | 'snoozed' | 'archive' | 'spam' | 'trash' | 'unauthenticated';
1810
1818
  /**
1811
- * The mailbox it was found in, as the address. `identity_id` is the same row.
1819
+ * The inbox it was found in, as the address. `identity_id` is the same row.
1812
1820
  */
1813
1821
  identity: string | null;
1814
1822
  };
@@ -1893,6 +1901,10 @@ type PodCreated = {
1893
1901
  * Who it may write to: open, reply_only (somebody who wrote to it first), or list.
1894
1902
  */
1895
1903
  send_policy: string;
1904
+ /**
1905
+ * Who may write to it: open, or list (only senders with an inbox rule, on mail that passes DMARC).
1906
+ */
1907
+ receive_policy: string;
1896
1908
  /**
1897
1909
  * Your own opaque grouping for this address. Never parsed here.
1898
1910
  */
@@ -2512,6 +2524,10 @@ type IdentitiesUpdateData = {
2512
2524
  * Who it may write to. `reply_only` makes an address structurally unable to start a conversation with a stranger.
2513
2525
  */
2514
2526
  send_policy?: 'open' | 'reply_only' | 'list';
2527
+ /**
2528
+ * Who may write to it. `list` accepts only senders with an `inbox` receive rule whose mail passes DMARC, and refuses everybody else before anything is stored. A key with admin on the address may tighten it; loosening needs its owner.
2529
+ */
2530
+ receive_policy?: 'open' | 'list';
2515
2531
  /**
2516
2532
  * Your own opaque grouping — a customer id, whatever your side calls it. Never parsed here.
2517
2533
  */
package/dist/index.d.ts CHANGED
@@ -331,7 +331,7 @@ type ClientOptions = {
331
331
  baseUrl: 'https://pidgeon.ai/api/v1' | (string & {});
332
332
  };
333
333
  /**
334
- * A mailbox, with the display name when one was given.
334
+ * An address, with the display name when one was given.
335
335
  */
336
336
  type Address = {
337
337
  email: string;
@@ -425,6 +425,10 @@ type Identity = {
425
425
  * Who it may write to: open, reply_only (somebody who wrote to it first), or list.
426
426
  */
427
427
  send_policy: string;
428
+ /**
429
+ * Who may write to it: open, or list (only senders with an inbox rule, on mail that passes DMARC).
430
+ */
431
+ receive_policy: string;
428
432
  /**
429
433
  * Your own opaque grouping for this address. Never parsed here.
430
434
  */
@@ -438,13 +442,13 @@ type Message = {
438
442
  id: string;
439
443
  thread_id: string;
440
444
  /**
441
- * The mailbox this message is in, as an id. What `POST /attachments` and the other endpoints that take a mailbox expect — `identity` below is the same address as text.
445
+ * The address this message is in, as an id. What `POST /attachments` and the other endpoints that take an `identity_id` expect — `identity` below is the same address as text.
442
446
  */
443
447
  identity_id: string | null;
444
448
  identity: string | null;
445
449
  direction: string;
446
450
  /**
447
- * A mailbox, with the display name when one was given.
451
+ * An address, with the display name when one was given.
448
452
  */
449
453
  from: {
450
454
  email: string;
@@ -658,13 +662,13 @@ type AwaitedMessage = {
658
662
  id: string;
659
663
  thread_id: string;
660
664
  /**
661
- * The mailbox this message is in, as an id. What `POST /attachments` and the other endpoints that take a mailbox expect — `identity` below is the same address as text.
665
+ * The address this message is in, as an id. What `POST /attachments` and the other endpoints that take an `identity_id` expect — `identity` below is the same address as text.
662
666
  */
663
667
  identity_id: string | null;
664
668
  identity: string | null;
665
669
  direction: string;
666
670
  /**
667
- * A mailbox, with the display name when one was given.
671
+ * An address, with the display name when one was given.
668
672
  */
669
673
  from: {
670
674
  email: string;
@@ -1176,7 +1180,7 @@ type EventResponse = {
1176
1180
  updated_at: string;
1177
1181
  };
1178
1182
  /**
1179
- * Which of the mailbox’s addresses answered.
1183
+ * Which of the inbox’s addresses answered.
1180
1184
  */
1181
1185
  attendee: string;
1182
1186
  status: string;
@@ -1188,7 +1192,7 @@ type EventResponse = {
1188
1192
  type InvitationResponse = {
1189
1193
  status: string;
1190
1194
  /**
1191
- * Which of the mailbox’s addresses answered.
1195
+ * Which of the inbox’s addresses answered.
1192
1196
  */
1193
1197
  attendee: string;
1194
1198
  /**
@@ -1718,6 +1722,10 @@ type TenantSuspended = {
1718
1722
  };
1719
1723
  type ReceiveRules = {
1720
1724
  identity_id: string;
1725
+ /**
1726
+ * open, or list: only senders with an inbox rule, on mail that passes DMARC.
1727
+ */
1728
+ receive_policy: string;
1721
1729
  rules: Array<{
1722
1730
  id: string;
1723
1731
  /**
@@ -1808,7 +1816,7 @@ type SearchHit = {
1808
1816
  */
1809
1817
  folder: 'inbox' | 'starred' | 'sent' | 'drafts' | 'scheduled' | 'snoozed' | 'archive' | 'spam' | 'trash' | 'unauthenticated';
1810
1818
  /**
1811
- * The mailbox it was found in, as the address. `identity_id` is the same row.
1819
+ * The inbox it was found in, as the address. `identity_id` is the same row.
1812
1820
  */
1813
1821
  identity: string | null;
1814
1822
  };
@@ -1893,6 +1901,10 @@ type PodCreated = {
1893
1901
  * Who it may write to: open, reply_only (somebody who wrote to it first), or list.
1894
1902
  */
1895
1903
  send_policy: string;
1904
+ /**
1905
+ * Who may write to it: open, or list (only senders with an inbox rule, on mail that passes DMARC).
1906
+ */
1907
+ receive_policy: string;
1896
1908
  /**
1897
1909
  * Your own opaque grouping for this address. Never parsed here.
1898
1910
  */
@@ -2512,6 +2524,10 @@ type IdentitiesUpdateData = {
2512
2524
  * Who it may write to. `reply_only` makes an address structurally unable to start a conversation with a stranger.
2513
2525
  */
2514
2526
  send_policy?: 'open' | 'reply_only' | 'list';
2527
+ /**
2528
+ * Who may write to it. `list` accepts only senders with an `inbox` receive rule whose mail passes DMARC, and refuses everybody else before anything is stored. A key with admin on the address may tighten it; loosening needs its owner.
2529
+ */
2530
+ receive_policy?: 'open' | 'list';
2515
2531
  /**
2516
2532
  * Your own opaque grouping — a customer id, whatever your side calls it. Never parsed here.
2517
2533
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pidgeon-ai/sdk",
3
- "version": "1.30.0",
3
+ "version": "1.31.1",
4
4
  "description": "Email inboxes for AI agents — TypeScript SDK for Pidgeon: create addresses, send, receive and reply.",
5
5
  "keywords": [
6
6
  "email",