@pidgeon-ai/sdk 1.26.0 → 1.27.0

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,14 @@ 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.27.0 — a key that drafts and never sends
11
+
12
+ `keysCreate` takes `access: 'draft'`, between `read` and `send`: the key
13
+ reads, searches, labels, archives, trashes, updates and hands off threads,
14
+ and creates, updates and deletes drafts. Every send, reply, forward, draft
15
+ send, schedule, calendar write and app password answers `403`. `access` on a
16
+ key, `me` and mailbox access can now be `'draft'`. Additive.
17
+
10
18
  ## 1.26.0 — provisioning and teardown by pod
11
19
 
12
20
  `podsCreate` takes `address` (the same fields as `identitiesCreate`) and `key`
package/dist/index.d.cts CHANGED
@@ -1369,7 +1369,7 @@ type ApiKey = {
1369
1369
  /**
1370
1370
  * The highest rung on any address. Composed with the grant; lower wins.
1371
1371
  */
1372
- access: 'read' | 'send' | 'admin';
1372
+ access: 'read' | 'draft' | 'send' | 'admin';
1373
1373
  created_by_key_id: string | null;
1374
1374
  last_used_at: string | null;
1375
1375
  revoked_at: string | null;
@@ -1402,7 +1402,7 @@ type ApiKeyCreated = {
1402
1402
  /**
1403
1403
  * The highest rung on any address. Composed with the grant; lower wins.
1404
1404
  */
1405
- access: 'read' | 'send' | 'admin';
1405
+ access: 'read' | 'draft' | 'send' | 'admin';
1406
1406
  created_by_key_id: string | null;
1407
1407
  last_used_at: string | null;
1408
1408
  revoked_at: string | null;
@@ -1465,7 +1465,7 @@ type Me = {
1465
1465
  /**
1466
1466
  * The highest rung this key reaches on any address. Composed with the grant on the address itself — the lower of the two wins — so this is a ceiling, not a promise.
1467
1467
  */
1468
- access: 'read' | 'send' | 'admin';
1468
+ access: 'read' | 'draft' | 'send' | 'admin';
1469
1469
  /**
1470
1470
  * True when it reaches every address the workspace owns, including ones created after it. False when it reaches a fixed list.
1471
1471
  */
@@ -1610,7 +1610,10 @@ type MailboxAccess = {
1610
1610
  * For showing a person. A renamed key changes it; never match on it.
1611
1611
  */
1612
1612
  label: string;
1613
- access: 'read' | 'send' | 'admin';
1613
+ /**
1614
+ * What this principal can do here. A key shows the lower of its ceiling and the grant.
1615
+ */
1616
+ access: 'read' | 'draft' | 'send' | 'admin';
1614
1617
  }>;
1615
1618
  /**
1616
1619
  * Whether this credential may change any of the above.
@@ -1825,7 +1828,7 @@ type PodCreated = {
1825
1828
  /**
1826
1829
  * The highest rung on any address. Composed with the grant; lower wins.
1827
1830
  */
1828
- access: 'read' | 'send' | 'admin';
1831
+ access: 'read' | 'draft' | 'send' | 'admin';
1829
1832
  created_by_key_id: string | null;
1830
1833
  last_used_at: string | null;
1831
1834
  revoked_at: string | null;
@@ -3105,7 +3108,7 @@ type PodsCreateData = {
3105
3108
  */
3106
3109
  key?: {
3107
3110
  name?: string;
3108
- access?: 'read' | 'send' | 'admin';
3111
+ access?: 'read' | 'draft' | 'send' | 'admin';
3109
3112
  expires_at?: string | null;
3110
3113
  /**
3111
3114
  * Mint a test-mode key (`pgn_test_`) for the pod instead of a live one.
@@ -5840,7 +5843,7 @@ type KeysCreateData = {
5840
5843
  /**
5841
5844
  * What a key may do. Give an agent the narrowest one that works.
5842
5845
  */
5843
- access?: 'read' | 'send' | 'admin';
5846
+ access?: 'read' | 'draft' | 'send' | 'admin';
5844
5847
  /**
5845
5848
  * When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.
5846
5849
  */
package/dist/index.d.ts CHANGED
@@ -1369,7 +1369,7 @@ type ApiKey = {
1369
1369
  /**
1370
1370
  * The highest rung on any address. Composed with the grant; lower wins.
1371
1371
  */
1372
- access: 'read' | 'send' | 'admin';
1372
+ access: 'read' | 'draft' | 'send' | 'admin';
1373
1373
  created_by_key_id: string | null;
1374
1374
  last_used_at: string | null;
1375
1375
  revoked_at: string | null;
@@ -1402,7 +1402,7 @@ type ApiKeyCreated = {
1402
1402
  /**
1403
1403
  * The highest rung on any address. Composed with the grant; lower wins.
1404
1404
  */
1405
- access: 'read' | 'send' | 'admin';
1405
+ access: 'read' | 'draft' | 'send' | 'admin';
1406
1406
  created_by_key_id: string | null;
1407
1407
  last_used_at: string | null;
1408
1408
  revoked_at: string | null;
@@ -1465,7 +1465,7 @@ type Me = {
1465
1465
  /**
1466
1466
  * The highest rung this key reaches on any address. Composed with the grant on the address itself — the lower of the two wins — so this is a ceiling, not a promise.
1467
1467
  */
1468
- access: 'read' | 'send' | 'admin';
1468
+ access: 'read' | 'draft' | 'send' | 'admin';
1469
1469
  /**
1470
1470
  * True when it reaches every address the workspace owns, including ones created after it. False when it reaches a fixed list.
1471
1471
  */
@@ -1610,7 +1610,10 @@ type MailboxAccess = {
1610
1610
  * For showing a person. A renamed key changes it; never match on it.
1611
1611
  */
1612
1612
  label: string;
1613
- access: 'read' | 'send' | 'admin';
1613
+ /**
1614
+ * What this principal can do here. A key shows the lower of its ceiling and the grant.
1615
+ */
1616
+ access: 'read' | 'draft' | 'send' | 'admin';
1614
1617
  }>;
1615
1618
  /**
1616
1619
  * Whether this credential may change any of the above.
@@ -1825,7 +1828,7 @@ type PodCreated = {
1825
1828
  /**
1826
1829
  * The highest rung on any address. Composed with the grant; lower wins.
1827
1830
  */
1828
- access: 'read' | 'send' | 'admin';
1831
+ access: 'read' | 'draft' | 'send' | 'admin';
1829
1832
  created_by_key_id: string | null;
1830
1833
  last_used_at: string | null;
1831
1834
  revoked_at: string | null;
@@ -3105,7 +3108,7 @@ type PodsCreateData = {
3105
3108
  */
3106
3109
  key?: {
3107
3110
  name?: string;
3108
- access?: 'read' | 'send' | 'admin';
3111
+ access?: 'read' | 'draft' | 'send' | 'admin';
3109
3112
  expires_at?: string | null;
3110
3113
  /**
3111
3114
  * Mint a test-mode key (`pgn_test_`) for the pod instead of a live one.
@@ -5840,7 +5843,7 @@ type KeysCreateData = {
5840
5843
  /**
5841
5844
  * What a key may do. Give an agent the narrowest one that works.
5842
5845
  */
5843
- access?: 'read' | 'send' | 'admin';
5846
+ access?: 'read' | 'draft' | 'send' | 'admin';
5844
5847
  /**
5845
5848
  * When it stops accepting mail. Expiry suspends; it never deletes, so the correspondence survives.
5846
5849
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pidgeon-ai/sdk",
3
- "version": "1.26.0",
3
+ "version": "1.27.0",
4
4
  "description": "Email inboxes for AI agents — TypeScript SDK for Pidgeon: create addresses, send, receive and reply.",
5
5
  "keywords": [
6
6
  "email",