@pingroom/sdk 0.3.1 → 0.4.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/README.md CHANGED
@@ -2,12 +2,17 @@
2
2
 
3
3
  Official TypeScript/JavaScript SDK for the [PingRoom](https://pingroom.io) agent API — the push-native notification fabric for agents.
4
4
 
5
- One typed client for everything an agent does: authenticate, create and join rooms, send pings, message other agents by handle, ask a human to approve something — or answer a multi-option question — and block until they tap, listen for inbound pings in real time, drive the MCP endpoint, and verify outgoing-webhook signatures.
5
+ One typed client for everything an agent does: authenticate, create and join rooms, send pings, ask a human to approve something — or answer a multi-option question — and block until they tap, listen for inbound pings in real time, drive the MCP endpoint, and verify outgoing-webhook signatures.
6
6
 
7
7
  - **Zero runtime dependencies** — built on the platform `fetch`. Works in Node ≥ 20, browsers, Cloudflare Workers, Deno, and Bun.
8
8
  - **Fully typed** — ships `.d.ts`; request fields mirror the HTTP API verbatim.
9
9
  - **Secure by default** — refuses to send credentials over plain http, never logs or serializes the token, and verifies webhook signatures in constant time.
10
10
 
11
+ > **Release status:** npm currently serves 0.3.1. App pairing and
12
+ > `pr.inbox.activate()` are in the tested 0.4.0 release candidate on `main` and
13
+ > must not be presented as installed behavior until 0.4.0 is published and
14
+ > clean-install verified.
15
+
11
16
  ```bash
12
17
  npm install @pingroom/sdk
13
18
  ```
@@ -27,10 +32,15 @@ await pr.broadcast('ab12cd', {
27
32
  ack_timeout_seconds: 300,
28
33
  });
29
34
 
30
- // Ping another agent by handle
31
- await pr.agents.ping('agt_reviewer', { message: 'PR #42 ready', correlation_id: 'pr-42' });
35
+ // Listen for what comes back
36
+ const { notifications, cursor } = await pr.notifications.wait({ timeout: 20 });
32
37
  ```
33
38
 
39
+ > **`pr.agents.ping()` is retired.** Handle-addressed pings across accounts
40
+ > always fail with `410 cross_account_ping_retired`. An agent reaches only the
41
+ > account that connected it — to reach another agent or person, share a room
42
+ > (invite them, or join one they post in) and `pr.broadcast()` into it.
43
+
34
44
  ### Link pings
35
45
 
36
46
  A ping becomes a tappable link button when its `data` carries the reserved
@@ -50,7 +60,31 @@ await pr.broadcast('ab12cd', {
50
60
 
51
61
  ## Authentication
52
62
 
53
- Bring an existing agent token, or run the auth.md flow:
63
+ For local tools, pair through the PingRoom app. No copied token or room code:
64
+
65
+ ```ts
66
+ const pr = new PingRoom();
67
+
68
+ const pairing = await pr.auth.startPairing({
69
+ agent_label: 'Deploy bot',
70
+ scopes: ['pingroom:rooms:read', 'pingroom:broadcast:send', 'pingroom:handoffs:create'],
71
+ });
72
+
73
+ console.log(`Open in PingRoom: ${pairing.pair_url}`);
74
+ const active = await pr.auth.waitForPairing(pairing);
75
+
76
+ // The approver chose this room, and the client now uses the active credential.
77
+ await pr.broadcast(active.room.invite_code, { message: 'SDK connected ✅' });
78
+ ```
79
+
80
+ `waitForPairing()` tolerates short network outages and stops when the app link
81
+ expires. Pass an `AbortSignal` when your process needs its own cancellation.
82
+ If `scopes` is omitted, pairing requests room lookup, broadcast access, and
83
+ `pingroom:handoffs:create` for private Handoffs and Agent Inbox activation. The
84
+ approval screen shows every grant before the user connects.
85
+
86
+ If you already manage credentials, bring an existing agent token or run the
87
+ lower-level auth.md email flow:
54
88
 
55
89
  ```ts
56
90
  const pr = new PingRoom();
@@ -84,6 +118,40 @@ await pr.actions.update('ab12cd', 1, { label: 'Approve', icon: 'check' });
84
118
  await pr.actions.trigger('ab12cd', 1);
85
119
  ```
86
120
 
121
+ ## Attachments
122
+
123
+ Send the file itself, not a link to it. Upload first, then pass the ids to any
124
+ send. Bytes never travel over MCP or a JSON ping body, and the returned metadata
125
+ never carries a permanent URL — recipients read the content back through an
126
+ authenticated endpoint.
127
+
128
+ ```ts
129
+ const report = await pr.attachments.upload({
130
+ content: await readFile('report.pdf'),
131
+ filename: 'report.pdf',
132
+ });
133
+
134
+ await pr.broadcast('ab12cd', {
135
+ message: 'Nightly report',
136
+ attachment_ids: [report.id],
137
+ });
138
+
139
+ // Read one back (raw Response — stream it, or .arrayBuffer() / .text() it)
140
+ const res = await pr.attachments.content(report.id);
141
+ ```
142
+
143
+ `content` accepts a `Blob`/`File`, a `Uint8Array`, or a UTF-8 string. Accepted
144
+ types are `md`, `pdf`, `html`, `txt`, `jpg`, `jpeg`, `png`, up to 20 MiB each
145
+ and 10 per ping; `questions.ask()` takes `attachment_ids` too.
146
+
147
+ Ids are single-use: the send claims them, and a claimed or expired id fails the
148
+ whole ping. An upload you never attach expires by itself after 24 hours, or you
149
+ can `pr.attachments.delete(id)` it.
150
+
151
+ Uploading needs the `pingroom:attachments:write` scope **and** a Pro account —
152
+ otherwise the API answers `402 pro_required`. Reading and deleting are not gated,
153
+ so a lapsed subscription never locks you out of files you already sent.
154
+
87
155
  ## Listening for pings (real time)
88
156
 
89
157
  `listen()` is an async iterator that long-polls and advances the cursor for you — no poll-spam, no missed or duplicated pings. Stop it with an `AbortSignal`.
@@ -190,14 +258,54 @@ A **handoff** is the direct, private version of the human-in-the-loop: it always
190
258
 
191
259
  Requires the `pingroom:handoffs:create` scope.
192
260
 
193
- On first connect, activate the human's private Agent Inbox. This is idempotent:
194
- it creates at most one inbox and one onboarding test Question.
261
+ On first connect, explicitly activate the human's Agent Inbox. `activate()`
262
+ replays the viable test Question or creates its next numbered retry in the
263
+ designated delivery room, then waits for its terminal answer. It is deliberately
264
+ separate from `auth.waitForPairing()`: pairing adopts the approved credential
265
+ immediately and never silently blocks on the onboarding Question.
195
266
 
196
267
  ```ts
197
- const onboarding = await pr.inbox.ensure();
198
- console.log(onboarding.room.invite_code, onboarding.question.state);
268
+ import { PingRoomActivationIncompleteError } from '@pingroom/sdk';
269
+
270
+ const controller = new AbortController();
271
+ try {
272
+ const activation = await pr.inbox.activate({
273
+ timeout: 20, // seconds per bounded server hold
274
+ overallTimeoutMs: 120_000, // ensure + all holds; this is the default
275
+ signal: controller.signal, // caller cancellation
276
+ });
277
+ // On supporting builds this proves native phone receipt before the answer,
278
+ // plus this agent observation—not just `question.state === 'answered'`.
279
+ console.log(activation.activation_completed); // true
280
+ console.log(`Agent Inbox ready: ${activation.question.answer.value}`);
281
+ } catch (error) {
282
+ if (error instanceof PingRoomActivationIncompleteError) {
283
+ console.log(`Activation incomplete: ${error.reason}`);
284
+ }
285
+ throw error;
286
+ }
199
287
  ```
200
288
 
289
+ Pending long-poll responses are observed internally and polled again. The
290
+ `timeout` option controls each bounded `GET /handoffs/{id}/wait` hold;
291
+ `overallTimeoutMs` limits the whole ensure-and-wait composition and defaults to
292
+ two minutes. Immediate observations are spaced by at least 2.1 seconds, keeping
293
+ the loop below the wait route's 30-request-per-minute limit.
294
+
295
+ A plain answer does not prove activation: `activate()` returns only when the
296
+ wait response carries `activation_completed: true`. An answered response with a
297
+ false or missing completion stamp is terminal and incomplete because a later
298
+ callback cannot rewrite the required receipt-before-answer sequence. It throws
299
+ `PingRoomActivationIncompleteError` immediately with reason
300
+ `answered_without_completion`. Expiry and cancellation throw the same domain
301
+ error with their corresponding reasons. Caller aborts reject with the signal's
302
+ reason. None of these paths revoke or change the client's active credential.
303
+ Network/API errors remain `PingRoomError`. Use
304
+ `pr.inbox.ensure()` directly when you only want to create or inspect the
305
+ onboarding Question without waiting. Call `activate()` again after an expired,
306
+ cancelled, or `answered_without_completion` result; the server replays a viable
307
+ attempt and creates one numbered retry for a terminal incomplete attempt.
308
+
201
309
  ```ts
202
310
  // Ask for an acknowledgement. Pass idempotencyKey so a retried create is a no-op.
203
311
  const task = await pr.handoffs.requestAck({
@@ -389,13 +497,19 @@ app.post('/pingroom', async (req, res) => {
389
497
 
390
498
  ## MCP
391
499
 
392
- Drive the MCP endpoint directly (tools are scope-filtered server-side):
500
+ Drive the MCP endpoint directly with a credential you already hold. The helper
501
+ performs the initialize handshake automatically, and tools are scope-filtered
502
+ server-side:
393
503
 
394
504
  ```ts
395
505
  const { tools } = await pr.mcp.listTools();
396
- const result = await pr.mcp.callTool('broadcast', { room: 'ab12cd', message: 'hi' });
506
+ const result = await pr.mcp.callTool('broadcast', { invite_code: 'ab12cd', message: 'hi' });
397
507
  ```
398
508
 
509
+ `pr.mcp` is a PingRoom-specific JSON-RPC convenience client, not a general MCP
510
+ host. Cursor, Claude, and other MCP hosts should connect to the hosted endpoint
511
+ directly and use OAuth instead: <https://pingroom.io/connect-mcp.md>.
512
+
399
513
  ## Agent directory (public)
400
514
 
401
515
  No token required:
@@ -414,9 +528,9 @@ Every failure rejects with a `PingRoomError` carrying the HTTP `status` and the
414
528
  import { PingRoomError } from '@pingroom/sdk';
415
529
 
416
530
  try {
417
- await pr.agents.ping('agt_x', { message: 'hi' });
531
+ await pr.broadcast('ab12cd', { message: 'hi' });
418
532
  } catch (err) {
419
- if (err instanceof PingRoomError && err.code === 'cooldown') {
533
+ if (err instanceof PingRoomError && err.code === 'rate_limited') {
420
534
  await new Promise((r) => setTimeout(r, (err.retryAfter ?? 1) * 1000));
421
535
  }
422
536
  }
package/dist/client.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { HttpClient } from './http.js';
2
2
  import type { LiveStatusPing, LiveStatusResult, LiveStatusSnapshot } from './liveStatus.js';
3
3
  import { McpClient } from './mcp.js';
4
- import type { AcknowledgementWaitResult, AgentInboxEnsureResult, AgentNotification, Approval, ApprovalInput, CreatePublicRoomInput, CreateRoomInput, Credential, ClaimCompleteParams, ClaimStartParams, AskInput, DirectoryEntry, DirectoryListInput, DirectoryProfile, DirectPingResult, Handoff, ListHandoffsInput, JoinRoomInput, ListNotificationsInput, ListenInput, ListQuestionsInput, NotificationDetail, Paginated, PingInput, PingResult, PingRoomOptions, Question, QuestionInput, QuickAction, RegisterParams, Room, RequestAckInput, RotateHandleResult, TriggerInput, UpdateQuickActionInput, WaitApprovalInput, WaitHandoffInput, WaitForAcknowledgementInput, WaitInput, WaitQuestionInput, WaitResult } from './types.js';
4
+ import type { AcknowledgementWaitResult, Attachment, AgentInboxEnsureResult, AgentInboxActivateInput, AgentInboxActivationResult, AgentInboxEnsureInput, AgentNotification, Approval, ApprovalInput, CreatePublicRoomInput, CreateRoomInput, Credential, ClaimCompleteParams, ClaimStartParams, AskInput, DirectoryEntry, DirectoryListInput, DirectoryProfile, DirectPingResult, Handoff, ListHandoffsInput, JoinRoomInput, ListNotificationsInput, ListenInput, ListQuestionsInput, NotificationDetail, Paginated, PingInput, PingResult, PingRoomOptions, Question, QuestionInput, QuickAction, RegisterParams, PairingStart, PairingStatus, PairedCredential, Room, RequestAckInput, RotateHandleResult, StartPairingParams, TriggerInput, UpdateQuickActionInput, UploadAttachmentInput, WaitApprovalInput, WaitHandoffInput, WaitForAcknowledgementInput, WaitInput, WaitQuestionInput, WaitResult, WaitForPairingOptions } from './types.js';
5
5
  /** Agent credential lifecycle (auth.md flow). */
6
6
  declare class AuthApi {
7
7
  private readonly http;
@@ -15,6 +15,23 @@ declare class AuthApi {
15
15
  }>;
16
16
  /** Complete the claim with the emailed OTP; returns an active credential + handle. */
17
17
  claimComplete(params: ClaimCompleteParams): Promise<Credential>;
18
+ /**
19
+ * Register a pending agent and create a short-lived link that opens the
20
+ * PingRoom app. The person approving it chooses the delivery room and sees
21
+ * the exact requested scopes. The pending credential stays private inside
22
+ * this client and is replaced automatically once waitForPairing() succeeds.
23
+ */
24
+ startPairing(params?: StartPairingParams): Promise<PairingStart>;
25
+ /** Read the current state of an app pairing using the pending credential. */
26
+ pairingStatus(options?: Pick<WaitForPairingOptions, 'signal'>): Promise<PairingStatus>;
27
+ /**
28
+ * Wait until the person approves in PingRoom, or the short-lived link
29
+ * expires. Transient network, 429, and 5xx failures are retried inside the
30
+ * server-provided lifetime. On success the client immediately starts using
31
+ * the active credential returned by the server.
32
+ */
33
+ waitForPairing(pairing: PairingStart, options?: WaitForPairingOptions): Promise<PairedCredential>;
34
+ private throwIfPairingAborted;
18
35
  /** Rotate to a fresh credential (same scopes/handle). */
19
36
  refresh(): Promise<Credential>;
20
37
  /** Revoke the current credential. */
@@ -145,12 +162,19 @@ declare class HandoffsApi {
145
162
  private wait;
146
163
  private create;
147
164
  }
148
- /** One-call activation of the bound human's private Agent Inbox. */
165
+ /** Setup and activation of the bound human's Agent Inbox delivery room. */
149
166
  declare class InboxApi {
150
167
  private readonly http;
151
168
  constructor(http: HttpClient);
152
- /** Idempotently create/resolve the inbox and deliver its one-time test Question. */
153
- ensure(): Promise<AgentInboxEnsureResult>;
169
+ /** Replay the viable activation attempt or create its next numbered retry. */
170
+ ensure(input?: AgentInboxEnsureInput): Promise<AgentInboxEnsureResult>;
171
+ /**
172
+ * Ensure the bound human's Agent Inbox, then block on its onboarding
173
+ * Question until the server confirms activation, it expires/cancels, or the
174
+ * overall deadline elapses. Pairing remains a separate operation so adopting
175
+ * a credential never silently waits for a phone response.
176
+ */
177
+ activate(input?: AgentInboxActivateInput): Promise<AgentInboxActivationResult>;
154
178
  }
155
179
  declare class ProfileApi {
156
180
  private readonly http;
@@ -182,6 +206,29 @@ declare class LiveApi {
182
206
  */
183
207
  get(inviteCode: string, correlationId: string): Promise<LiveStatusSnapshot | null>;
184
208
  }
209
+ /**
210
+ * Private files that a ping can carry.
211
+ *
212
+ * Upload first, then pass the returned ids to `broadcast()` / `questions.ask()`
213
+ * as `attachment_ids`. Bytes never travel over MCP or a JSON ping body. An
214
+ * upload that is never attached expires on its own after 24 hours.
215
+ *
216
+ * Uploading requires the bound account to hold Pro (the API answers 402
217
+ * `pro_required` otherwise). Reading and deleting are not gated.
218
+ */
219
+ declare class AttachmentsApi {
220
+ private readonly http;
221
+ constructor(http: HttpClient);
222
+ /** Upload one file and get back the id a send can claim. */
223
+ upload(input: UploadAttachmentInput): Promise<Attachment>;
224
+ /**
225
+ * Raw bytes for an attachment this credential is allowed to see. Returns the
226
+ * undecoded Response so a caller can stream it, or read text/arrayBuffer.
227
+ */
228
+ content(attachmentId: string, signal?: AbortSignal): Promise<Response>;
229
+ /** Discard an upload that has not been attached to a ping yet. */
230
+ delete(attachmentId: string): Promise<void>;
231
+ }
185
232
  /** Public, unauthenticated agent directory. */
186
233
  declare class DirectoryApi {
187
234
  private readonly http;
@@ -194,6 +241,7 @@ export declare class PingRoom {
194
241
  readonly rooms: RoomsApi;
195
242
  readonly actions: ActionsApi;
196
243
  readonly notifications: NotificationsApi;
244
+ readonly attachments: AttachmentsApi;
197
245
  readonly agents: AgentsApi;
198
246
  readonly approvals: ApprovalsApi;
199
247
  readonly questions: QuestionsApi;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}