@pidgeon-ai/sdk 1.5.0 → 1.9.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
@@ -9,6 +9,54 @@ call shapes, the result shape — not to the API behind it.
9
9
 
10
10
  ## Unreleased
11
11
 
12
+ ## 1.9.0 — export over the API
13
+
14
+ **`exportMail`** (`GET /v1/export`) streams every message the key can read as
15
+ one `application/mbox` file — the export the dashboard has always offered,
16
+ now for software. Pass `identity_id` for one address. Each message carries
17
+ `X-Pidgeon-Mailbox`, so one file holding several addresses can be split
18
+ again. Four an hour per workspace.
19
+
20
+ ## 1.8.0 — wait for a message, and read the code out of it
21
+
22
+ **`messagesAwait`** (`GET /v1/messages/await`) holds the request open until a
23
+ message matching your filters arrives at an address — `from`, `subject_contains`,
24
+ `has_code` — or `timeout` seconds pass, up to 280. It answers
25
+ `{ message, timed_out, cursor }`; pass `cursor` back as `after` so a message
26
+ arriving between two calls is never missed. One call where an agent waiting
27
+ for a sign-up code used to write a polling loop.
28
+
29
+ **Every `Message` carries `extracted`**: `codes` and `links`, most likely
30
+ first, each with its kind. Candidates rather than one answer, because
31
+ extraction is a heuristic — take the first, and when it fails the second is
32
+ right there. Read from the new text, never the quoted history.
33
+
34
+ ## 1.7.0 — a pod's reputation you can see
35
+
36
+ `GET /metrics` takes `pod_id`, and its window carries `pod` and `reputation`.
37
+ 1.6.0 claimed each pod had its own sending reputation and gave no way to
38
+ check it; this is the check. `/metrics` also rejects an unknown query
39
+ parameter instead of ignoring it, so a caller passing a misspelt filter is
40
+ told rather than answered for the whole account.
41
+
42
+ ## 1.6.0 — a pod is a boundary now
43
+
44
+ **No field changed.** What changed is what a pod means, and that is worth a
45
+ release because 1.5.0's own description told you the opposite.
46
+
47
+ **Each pod has its own sending reputation.** Bounces and complaints from one
48
+ customer's mail are counted against that customer's pod and nothing else, so
49
+ one bad tenant cannot degrade delivery for the rest. Mail from an address in
50
+ a pod sends under that pod whichever domain it is on, so two pods sharing one
51
+ domain are still separate.
52
+
53
+ 1.5.0 said _"a pod carries no sending reputation of its own"_, which was true
54
+ and is not. Leaving it would be the worse kind of stale documentation — a
55
+ caller reading it would decline to use something they already have.
56
+
57
+ A pod is still **not** a key scope. A key is a list of address ids, which is
58
+ what makes its reach checkable.
59
+
12
60
  ## 1.5.0 — a container your customers live in
13
61
 
14
62
  **Additive.** Every account has exactly one pod already, every address is in
package/dist/index.cjs CHANGED
@@ -63,6 +63,7 @@ __export(index_exports, {
63
63
  eventsGet: () => eventsGet,
64
64
  eventsList: () => eventsList,
65
65
  eventsStream: () => eventsStream,
66
+ exportMail: () => exportMail,
66
67
  identitiesAccessCreate: () => identitiesAccessCreate,
67
68
  identitiesAccessDelete: () => identitiesAccessDelete,
68
69
  identitiesAccessGet: () => identitiesAccessGet,
@@ -93,6 +94,7 @@ __export(index_exports, {
93
94
  mailboxesListFolder: () => mailboxesListFolder,
94
95
  meGet: () => meGet,
95
96
  messagesAct: () => messagesAct,
97
+ messagesAwait: () => messagesAwait,
96
98
  messagesForward: () => messagesForward,
97
99
  messagesGet: () => messagesGet,
98
100
  messagesListInThread: () => messagesListInThread,
@@ -1175,6 +1177,11 @@ var messagesUndo = (options) => (options.client ?? client).post({
1175
1177
  ...options.headers
1176
1178
  }
1177
1179
  });
1180
+ var messagesAwait = (options) => (options.client ?? client).get({
1181
+ security: [{ scheme: "bearer", type: "http" }],
1182
+ url: "/messages/await",
1183
+ ...options
1184
+ });
1178
1185
  var messagesGet = (options) => (options.client ?? client).get({
1179
1186
  security: [{ scheme: "bearer", type: "http" }],
1180
1187
  url: "/messages/{id}",
@@ -1221,6 +1228,11 @@ var messagesRaw = (options) => (options.client ?? client).get({
1221
1228
  url: "/messages/{id}/raw",
1222
1229
  ...options
1223
1230
  });
1231
+ var exportMail = (options) => (options?.client ?? client).get({
1232
+ security: [{ scheme: "bearer", type: "http" }],
1233
+ url: "/export",
1234
+ ...options
1235
+ });
1224
1236
  var threadsList = (options) => (options?.client ?? client).get({
1225
1237
  security: [{ scheme: "bearer", type: "http" }],
1226
1238
  url: "/threads",
@@ -1824,6 +1836,7 @@ function sleep(ms, signal) {
1824
1836
  eventsGet,
1825
1837
  eventsList,
1826
1838
  eventsStream,
1839
+ exportMail,
1827
1840
  identitiesAccessCreate,
1828
1841
  identitiesAccessDelete,
1829
1842
  identitiesAccessGet,
@@ -1854,6 +1867,7 @@ function sleep(ms, signal) {
1854
1867
  mailboxesListFolder,
1855
1868
  meGet,
1856
1869
  messagesAct,
1870
+ messagesAwait,
1857
1871
  messagesForward,
1858
1872
  messagesGet,
1859
1873
  messagesListInThread,