@pidgeon-ai/sdk 1.27.0 → 1.29.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,26 @@ 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.29.0 — The signed-sender records
11
+
12
+ Every domain's DNS records (`domainsGet`, `domainsCreate`, `domainsVerify`)
13
+ gain two optional ones: `signing`, a TXT at `_post`, and `signing_host`, a
14
+ CNAME at `post`. With both connected, mail from the domain carries a
15
+ signature receivers can check against the domain's published keys. Every
16
+ record gains `optional`, true for these two; they have their own `status`
17
+ and never count towards whether the domain is configured. Additive.
18
+
19
+ ## 1.28.0 — DNS hosts for subdomains, and why a record is waiting
20
+
21
+ Every DNS record (`domainsGet`, `domainsCreate`, `domainsVerify`) gains
22
+ `zone`, `fqdn` and `host_relative`: for `agents.example.com` the DMARC record
23
+ is `_dmarc.agents` in `example.com`, which is what Squarespace, GoDaddy and
24
+ Namecheap ask for. `name` is unchanged. `state` says why `status` is what it
25
+ is — `published` (correct in DNS, waiting on Amazon), `missing`,
26
+ `wrong_value` or `wrong_name` — and `found_at` is where a misplaced record was
27
+ found. For DKIM, `found` is now the CNAME read from DNS rather than Amazon's
28
+ status word. Additive.
29
+
10
30
  ## 1.27.0 — a key that drafts and never sends
11
31
 
12
32
  `keysCreate` takes `access: 'draft'`, between `read` and `send`: the key
package/dist/index.d.cts CHANGED
@@ -1282,11 +1282,38 @@ type DomainDetail = {
1282
1282
  dns_records: Array<{
1283
1283
  type: string;
1284
1284
  record_type: string;
1285
+ /**
1286
+ * Relative to the domain: `@` is the domain itself. Kept as it was; see `host_relative`.
1287
+ */
1285
1288
  name: string;
1289
+ /**
1290
+ * The registrable domain the record is published in, from the Public Suffix List: `example.com` for `agents.example.com`.
1291
+ */
1292
+ zone: string;
1293
+ /**
1294
+ * The full name, no trailing dot: `_dmarc.agents.example.com`.
1295
+ */
1296
+ fqdn: string;
1297
+ /**
1298
+ * The name relative to `zone`, which is what most DNS panels ask for: `_dmarc.agents`, or `@` for the zone itself.
1299
+ */
1300
+ host_relative: string;
1286
1301
  value: string;
1287
1302
  priority: number | null;
1288
1303
  status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
1304
+ /**
1305
+ * Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
1306
+ */
1307
+ state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
1289
1308
  found: string | null;
1309
+ /**
1310
+ * Where `found` was read, when that was not `fqdn`.
1311
+ */
1312
+ found_at: string | null;
1313
+ /**
1314
+ * Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
1315
+ */
1316
+ optional: boolean;
1290
1317
  description: string;
1291
1318
  checked_at: string | null;
1292
1319
  }>;
@@ -1295,11 +1322,38 @@ type DomainDetail = {
1295
1322
  type DnsRecord = {
1296
1323
  type: string;
1297
1324
  record_type: string;
1325
+ /**
1326
+ * Relative to the domain: `@` is the domain itself. Kept as it was; see `host_relative`.
1327
+ */
1298
1328
  name: string;
1329
+ /**
1330
+ * The registrable domain the record is published in, from the Public Suffix List: `example.com` for `agents.example.com`.
1331
+ */
1332
+ zone: string;
1333
+ /**
1334
+ * The full name, no trailing dot: `_dmarc.agents.example.com`.
1335
+ */
1336
+ fqdn: string;
1337
+ /**
1338
+ * The name relative to `zone`, which is what most DNS panels ask for: `_dmarc.agents`, or `@` for the zone itself.
1339
+ */
1340
+ host_relative: string;
1299
1341
  value: string;
1300
1342
  priority: number | null;
1301
1343
  status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
1344
+ /**
1345
+ * Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
1346
+ */
1347
+ state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
1302
1348
  found: string | null;
1349
+ /**
1350
+ * Where `found` was read, when that was not `fqdn`.
1351
+ */
1352
+ found_at: string | null;
1353
+ /**
1354
+ * Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
1355
+ */
1356
+ optional: boolean;
1303
1357
  description: string;
1304
1358
  checked_at: string | null;
1305
1359
  };
@@ -1310,11 +1364,38 @@ type Verification = {
1310
1364
  dns_records: Array<{
1311
1365
  type: string;
1312
1366
  record_type: string;
1367
+ /**
1368
+ * Relative to the domain: `@` is the domain itself. Kept as it was; see `host_relative`.
1369
+ */
1313
1370
  name: string;
1371
+ /**
1372
+ * The registrable domain the record is published in, from the Public Suffix List: `example.com` for `agents.example.com`.
1373
+ */
1374
+ zone: string;
1375
+ /**
1376
+ * The full name, no trailing dot: `_dmarc.agents.example.com`.
1377
+ */
1378
+ fqdn: string;
1379
+ /**
1380
+ * The name relative to `zone`, which is what most DNS panels ask for: `_dmarc.agents`, or `@` for the zone itself.
1381
+ */
1382
+ host_relative: string;
1314
1383
  value: string;
1315
1384
  priority: number | null;
1316
1385
  status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
1386
+ /**
1387
+ * Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
1388
+ */
1389
+ state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
1317
1390
  found: string | null;
1391
+ /**
1392
+ * Where `found` was read, when that was not `fqdn`.
1393
+ */
1394
+ found_at: string | null;
1395
+ /**
1396
+ * Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
1397
+ */
1398
+ optional: boolean;
1318
1399
  description: string;
1319
1400
  checked_at: string | null;
1320
1401
  }>;
package/dist/index.d.ts CHANGED
@@ -1282,11 +1282,38 @@ type DomainDetail = {
1282
1282
  dns_records: Array<{
1283
1283
  type: string;
1284
1284
  record_type: string;
1285
+ /**
1286
+ * Relative to the domain: `@` is the domain itself. Kept as it was; see `host_relative`.
1287
+ */
1285
1288
  name: string;
1289
+ /**
1290
+ * The registrable domain the record is published in, from the Public Suffix List: `example.com` for `agents.example.com`.
1291
+ */
1292
+ zone: string;
1293
+ /**
1294
+ * The full name, no trailing dot: `_dmarc.agents.example.com`.
1295
+ */
1296
+ fqdn: string;
1297
+ /**
1298
+ * The name relative to `zone`, which is what most DNS panels ask for: `_dmarc.agents`, or `@` for the zone itself.
1299
+ */
1300
+ host_relative: string;
1286
1301
  value: string;
1287
1302
  priority: number | null;
1288
1303
  status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
1304
+ /**
1305
+ * Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
1306
+ */
1307
+ state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
1289
1308
  found: string | null;
1309
+ /**
1310
+ * Where `found` was read, when that was not `fqdn`.
1311
+ */
1312
+ found_at: string | null;
1313
+ /**
1314
+ * Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
1315
+ */
1316
+ optional: boolean;
1290
1317
  description: string;
1291
1318
  checked_at: string | null;
1292
1319
  }>;
@@ -1295,11 +1322,38 @@ type DomainDetail = {
1295
1322
  type DnsRecord = {
1296
1323
  type: string;
1297
1324
  record_type: string;
1325
+ /**
1326
+ * Relative to the domain: `@` is the domain itself. Kept as it was; see `host_relative`.
1327
+ */
1298
1328
  name: string;
1329
+ /**
1330
+ * The registrable domain the record is published in, from the Public Suffix List: `example.com` for `agents.example.com`.
1331
+ */
1332
+ zone: string;
1333
+ /**
1334
+ * The full name, no trailing dot: `_dmarc.agents.example.com`.
1335
+ */
1336
+ fqdn: string;
1337
+ /**
1338
+ * The name relative to `zone`, which is what most DNS panels ask for: `_dmarc.agents`, or `@` for the zone itself.
1339
+ */
1340
+ host_relative: string;
1299
1341
  value: string;
1300
1342
  priority: number | null;
1301
1343
  status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
1344
+ /**
1345
+ * Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
1346
+ */
1347
+ state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
1302
1348
  found: string | null;
1349
+ /**
1350
+ * Where `found` was read, when that was not `fqdn`.
1351
+ */
1352
+ found_at: string | null;
1353
+ /**
1354
+ * Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
1355
+ */
1356
+ optional: boolean;
1303
1357
  description: string;
1304
1358
  checked_at: string | null;
1305
1359
  };
@@ -1310,11 +1364,38 @@ type Verification = {
1310
1364
  dns_records: Array<{
1311
1365
  type: string;
1312
1366
  record_type: string;
1367
+ /**
1368
+ * Relative to the domain: `@` is the domain itself. Kept as it was; see `host_relative`.
1369
+ */
1313
1370
  name: string;
1371
+ /**
1372
+ * The registrable domain the record is published in, from the Public Suffix List: `example.com` for `agents.example.com`.
1373
+ */
1374
+ zone: string;
1375
+ /**
1376
+ * The full name, no trailing dot: `_dmarc.agents.example.com`.
1377
+ */
1378
+ fqdn: string;
1379
+ /**
1380
+ * The name relative to `zone`, which is what most DNS panels ask for: `_dmarc.agents`, or `@` for the zone itself.
1381
+ */
1382
+ host_relative: string;
1314
1383
  value: string;
1315
1384
  priority: number | null;
1316
1385
  status: 'connected' | 'waiting' | 'incorrect' | 'not_required';
1386
+ /**
1387
+ * Why `status` is what it is. `published`: correct in public DNS, waiting on the mail provider to confirm (DKIM; usually under an hour), or on its certificate (`signing_host`; usually ten minutes). `wrong_name`: our value is at `found_at` instead, often the zone typed twice. Null before the first check.
1388
+ */
1389
+ state: 'connected' | 'published' | 'missing' | 'wrong_value' | 'wrong_name' | 'not_required' | null;
1317
1390
  found: string | null;
1391
+ /**
1392
+ * Where `found` was read, when that was not `fqdn`.
1393
+ */
1394
+ found_at: string | null;
1395
+ /**
1396
+ * Not needed for mail: `signing` and `signing_host`, which let receivers check a signed sender from this domain. Its own `status`; never counted towards whether the domain is configured.
1397
+ */
1398
+ optional: boolean;
1318
1399
  description: string;
1319
1400
  checked_at: string | null;
1320
1401
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pidgeon-ai/sdk",
3
- "version": "1.27.0",
3
+ "version": "1.29.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",