@pidgeon-ai/sdk 1.5.0 → 1.8.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,46 @@ call shapes, the result shape — not to the API behind it.
9
9
 
10
10
  ## Unreleased
11
11
 
12
+ ## 1.8.0 — wait for a message, and read the code out of it
13
+
14
+ **`messagesAwait`** (`GET /v1/messages/await`) holds the request open until a
15
+ message matching your filters arrives at an address — `from`, `subject_contains`,
16
+ `has_code` — or `timeout` seconds pass, up to 280. It answers
17
+ `{ message, timed_out, cursor }`; pass `cursor` back as `after` so a message
18
+ arriving between two calls is never missed. One call where an agent waiting
19
+ for a sign-up code used to write a polling loop.
20
+
21
+ **Every `Message` carries `extracted`**: `codes` and `links`, most likely
22
+ first, each with its kind. Candidates rather than one answer, because
23
+ extraction is a heuristic — take the first, and when it fails the second is
24
+ right there. Read from the new text, never the quoted history.
25
+
26
+ ## 1.7.0 — a pod's reputation you can see
27
+
28
+ `GET /metrics` takes `pod_id`, and its window carries `pod` and `reputation`.
29
+ 1.6.0 claimed each pod had its own sending reputation and gave no way to
30
+ check it; this is the check. `/metrics` also rejects an unknown query
31
+ parameter instead of ignoring it, so a caller passing a misspelt filter is
32
+ told rather than answered for the whole account.
33
+
34
+ ## 1.6.0 — a pod is a boundary now
35
+
36
+ **No field changed.** What changed is what a pod means, and that is worth a
37
+ release because 1.5.0's own description told you the opposite.
38
+
39
+ **Each pod has its own sending reputation.** Bounces and complaints from one
40
+ customer's mail are counted against that customer's pod and nothing else, so
41
+ one bad tenant cannot degrade delivery for the rest. Mail from an address in
42
+ a pod sends under that pod whichever domain it is on, so two pods sharing one
43
+ domain are still separate.
44
+
45
+ 1.5.0 said _"a pod carries no sending reputation of its own"_, which was true
46
+ and is not. Leaving it would be the worse kind of stale documentation — a
47
+ caller reading it would decline to use something they already have.
48
+
49
+ A pod is still **not** a key scope. A key is a list of address ids, which is
50
+ what makes its reach checkable.
51
+
12
52
  ## 1.5.0 — a container your customers live in
13
53
 
14
54
  **Additive.** Every account has exactly one pod already, every address is in
package/dist/index.cjs CHANGED
@@ -93,6 +93,7 @@ __export(index_exports, {
93
93
  mailboxesListFolder: () => mailboxesListFolder,
94
94
  meGet: () => meGet,
95
95
  messagesAct: () => messagesAct,
96
+ messagesAwait: () => messagesAwait,
96
97
  messagesForward: () => messagesForward,
97
98
  messagesGet: () => messagesGet,
98
99
  messagesListInThread: () => messagesListInThread,
@@ -1175,6 +1176,11 @@ var messagesUndo = (options) => (options.client ?? client).post({
1175
1176
  ...options.headers
1176
1177
  }
1177
1178
  });
1179
+ var messagesAwait = (options) => (options.client ?? client).get({
1180
+ security: [{ scheme: "bearer", type: "http" }],
1181
+ url: "/messages/await",
1182
+ ...options
1183
+ });
1178
1184
  var messagesGet = (options) => (options.client ?? client).get({
1179
1185
  security: [{ scheme: "bearer", type: "http" }],
1180
1186
  url: "/messages/{id}",
@@ -1854,6 +1860,7 @@ function sleep(ms, signal) {
1854
1860
  mailboxesListFolder,
1855
1861
  meGet,
1856
1862
  messagesAct,
1863
+ messagesAwait,
1857
1864
  messagesForward,
1858
1865
  messagesGet,
1859
1866
  messagesListInThread,