@pingroom/sdk 0.1.0 → 0.3.1

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/dist/client.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { PingRoomError } from './errors.js';
1
2
  import { HttpClient } from './http.js';
2
3
  import { sleep } from './internal/async.js';
3
4
  import { assertActionNumber, assertStructuredData, requireNonEmpty } from './internal/guards.js';
@@ -119,6 +120,23 @@ class NotificationsApi {
119
120
  list(input = {}) {
120
121
  return this.http.request('GET', '/api/agent/notifications', { query: dropUndefined({ ...input }) });
121
122
  }
123
+ /** Fetch one visible notification, including its current acknowledgement state. */
124
+ getNotification(notificationId) {
125
+ requireNonEmpty(notificationId, 'notificationId');
126
+ return this.http.request('GET', `/api/agent/notifications/${enc(notificationId)}`);
127
+ }
128
+ /**
129
+ * One bounded long-poll for an ack-required ping. The returned state may
130
+ * still be `open` when the hold timeout elapses; call again to keep waiting.
131
+ */
132
+ waitForAcknowledgement(notificationId, input = {}) {
133
+ requireNonEmpty(notificationId, 'notificationId');
134
+ return this.http.request('GET', `/api/agent/notifications/${enc(notificationId)}/ack/wait`, {
135
+ query: dropUndefined({ timeout: input.timeout }),
136
+ timeoutMs: waitTimeoutMs(input.timeout),
137
+ ...(input.signal ? { signal: input.signal } : {}),
138
+ });
139
+ }
122
140
  /** One long-poll: resolves as soon as new pings land, or with an empty list at timeout. */
123
141
  wait(input = {}) {
124
142
  return this.http.request('GET', '/api/agent/notifications/wait', {
@@ -176,7 +194,11 @@ class AgentsApi {
176
194
  constructor(http) {
177
195
  this.http = http;
178
196
  }
179
- /** Direct agent-to-agent ping, addressed by the target's handle. */
197
+ /**
198
+ * @deprecated Retired server-side — always fails with 410
199
+ * `cross_account_ping_retired`. An agent can only reach the account that
200
+ * connected it; to reach anyone else, post into a room you both belong to.
201
+ */
180
202
  ping(handle, ping) {
181
203
  requireNonEmpty(handle, 'handle');
182
204
  assertPing(ping);
@@ -220,6 +242,177 @@ class ApprovalsApi {
220
242
  }
221
243
  }
222
244
  }
245
+ /**
246
+ * The general human-in-the-loop primitive: ask a human a question with 2–4
247
+ * options (or a short typed answer) and block until they tap an answer. An
248
+ * {@link ApprovalsApi | approval} is the two-option case; reach for questions
249
+ * when you need more choices, a typed reply, or room-scope answering.
250
+ */
251
+ class QuestionsApi {
252
+ http;
253
+ constructor(http) {
254
+ this.http = http;
255
+ }
256
+ /** Ask a Question in a room; returns the pending Question (id + computed expiry). */
257
+ ask(inviteCode, input) {
258
+ requireNonEmpty(input.prompt, 'prompt');
259
+ assertStructuredData(input.data);
260
+ return this.http.request('POST', `/api/agent/rooms/${enc(inviteCode)}/questions`, {
261
+ body: dropUndefined({ ...input }),
262
+ });
263
+ }
264
+ /** Fetch a Question's current state. */
265
+ get(questionId) {
266
+ return this.http.request('GET', `/api/agent/questions/${enc(questionId)}`);
267
+ }
268
+ /** One long-poll for the answer; returns the (possibly still-pending) Question. */
269
+ wait(questionId, input = {}) {
270
+ return this.http.request('GET', `/api/agent/questions/${enc(questionId)}/wait`, {
271
+ query: dropUndefined({ timeout: input.timeout }),
272
+ timeoutMs: waitTimeoutMs(input.timeout),
273
+ ...(input.signal ? { signal: input.signal } : {}),
274
+ });
275
+ }
276
+ /**
277
+ * Block until the human answers (or the question expires/cancels), looping
278
+ * wait() under the hood. Returns the resolved Question — inspect `state` and
279
+ * `answer.value` to branch.
280
+ */
281
+ async waitForAnswer(questionId, input = {}) {
282
+ for (;;) {
283
+ if (input.signal?.aborted) {
284
+ throw input.signal.reason ?? new Error('aborted');
285
+ }
286
+ const question = await this.wait(questionId, input.signal ? { signal: input.signal } : {});
287
+ if (question.state !== 'pending') {
288
+ return question;
289
+ }
290
+ }
291
+ }
292
+ /** List the asker's Questions, optionally filtered by state. */
293
+ async list(input = {}) {
294
+ const res = await this.http.request('GET', '/api/agent/questions', {
295
+ query: dropUndefined({ state: input.state }),
296
+ });
297
+ return res.questions ?? [];
298
+ }
299
+ /** Withdraw a still-pending Question (409 if it already resolved). */
300
+ cancel(questionId) {
301
+ return this.http.request('POST', `/api/agent/questions/${enc(questionId)}/cancel`, { body: {} });
302
+ }
303
+ }
304
+ /** A bare string option is shorthand for `{ value, label: value }`. */
305
+ function normalizeHandoffOptions(options) {
306
+ return options.map((o) => (typeof o === 'string' ? { value: o, label: o } : o));
307
+ }
308
+ /** Terminal states never change again — the wait loop can stop as soon as one lands. */
309
+ function isHandoffTerminal(handoff) {
310
+ const s = handoff.state;
311
+ return s === 'acked' || s === 'answered' || s === 'expired' || s === 'cancelled';
312
+ }
313
+ /**
314
+ * The Handoff façade: the Agent → one-human loop. Always DIRECT (exactly one
315
+ * human) and PRIVATE (no other room member can read it). Backed by the ack and
316
+ * question primitives, so its {@link Handoff.state | state} space is their union
317
+ * — kept DISTINCT per {@link Handoff.kind | kind}. A negative answer to a
318
+ * question handoff (e.g. `hold`) is a SUCCESSFUL `answered` result, not an error.
319
+ *
320
+ * const task = await pr.handoffs.requestAck({ prompt, idempotencyKey });
321
+ * const result = await pr.handoffs.waitForResult(task.id);
322
+ *
323
+ * const q = await pr.handoffs.ask({ prompt, options: ['deploy', 'hold'], idempotencyKey });
324
+ */
325
+ class HandoffsApi {
326
+ http;
327
+ constructor(http) {
328
+ this.http = http;
329
+ }
330
+ /** Ask a human to acknowledge (an `ack` handoff). Resolves on the first acknowledgement. */
331
+ requestAck(input) {
332
+ requireNonEmpty(input.prompt, 'prompt');
333
+ assertStructuredData(input.data);
334
+ return this.create('ack', input);
335
+ }
336
+ /**
337
+ * Ask a human a multi-option question (a `question` handoff). Resolves on the
338
+ * first tapped answer. Bare-string options normalize to `{ value, label }`.
339
+ */
340
+ ask(input) {
341
+ requireNonEmpty(input.prompt, 'prompt');
342
+ assertStructuredData(input.data);
343
+ if (!Array.isArray(input.options) || input.options.length < 2 || input.options.length > 4) {
344
+ throw new PingRoomError('`options` must contain between 2 and 4 entries for a question handoff.', {
345
+ code: 'invalid_request',
346
+ });
347
+ }
348
+ return this.create('question', input, normalizeHandoffOptions(input.options));
349
+ }
350
+ /** Fetch a handoff's current state. */
351
+ get(id) {
352
+ requireNonEmpty(id, 'id');
353
+ return this.http.request('GET', `/api/agent/handoffs/${enc(id)}`);
354
+ }
355
+ /**
356
+ * Block until the handoff resolves (or expires/cancels), looping the bounded
357
+ * long-poll under the hood. `expired`/`cancelled` and a negative answer (e.g.
358
+ * `hold`) all surface as normal terminal results — nothing is thrown for them.
359
+ */
360
+ async waitForResult(id, input = {}) {
361
+ requireNonEmpty(id, 'id');
362
+ for (;;) {
363
+ if (input.signal?.aborted) {
364
+ throw input.signal.reason ?? new Error('aborted');
365
+ }
366
+ const handoff = await this.wait(id, input);
367
+ if (isHandoffTerminal(handoff)) {
368
+ return handoff;
369
+ }
370
+ }
371
+ }
372
+ /** List the agent's open handoffs or bounded recent history. */
373
+ async list(input = {}) {
374
+ const res = await this.http.request('GET', '/api/agent/handoffs', {
375
+ query: dropUndefined({ state: input.state }),
376
+ });
377
+ return res.handoffs ?? [];
378
+ }
379
+ /** One bounded long-poll; returns the (possibly still-open) handoff. */
380
+ wait(id, input) {
381
+ return this.http.request('GET', `/api/agent/handoffs/${enc(id)}/wait`, {
382
+ query: dropUndefined({ timeout: input.timeout }),
383
+ timeoutMs: waitTimeoutMs(input.timeout),
384
+ ...(input.signal ? { signal: input.signal } : {}),
385
+ });
386
+ }
387
+ create(kind, input, options) {
388
+ const body = dropUndefined({
389
+ kind,
390
+ prompt: input.prompt,
391
+ audience: { type: 'direct', user_id: input.target ?? 'me' },
392
+ expires_in: input.expiresIn,
393
+ urgency: input.urgency,
394
+ options,
395
+ correlation_id: input.correlationId,
396
+ reply_to: input.replyTo,
397
+ data: input.data,
398
+ });
399
+ return this.http.request('POST', '/api/agent/handoffs', {
400
+ body,
401
+ ...(input.idempotencyKey ? { headers: { 'Idempotency-Key': input.idempotencyKey } } : {}),
402
+ });
403
+ }
404
+ }
405
+ /** One-call activation of the bound human's private Agent Inbox. */
406
+ class InboxApi {
407
+ http;
408
+ constructor(http) {
409
+ this.http = http;
410
+ }
411
+ /** Idempotently create/resolve the inbox and deliver its one-time test Question. */
412
+ ensure() {
413
+ return this.http.request('POST', '/api/agent/inbox/ensure', { body: {} });
414
+ }
415
+ }
223
416
  class ProfileApi {
224
417
  http;
225
418
  constructor(http) {
@@ -235,6 +428,46 @@ class ProfileApi {
235
428
  return this.http.request('POST', '/api/agent/profile/handle/rotate', { body: {} });
236
429
  }
237
430
  }
431
+ /**
432
+ * Live-status streams — a self-updating card on the room members' lock screen.
433
+ *
434
+ * Requires the `pingroom:live:write` scope. Free accounts get a small daily
435
+ * budget of NEW streams; updates and the terminal ping are never charged, so a
436
+ * card can never be quota-blocked into hanging open.
437
+ */
438
+ class LiveApi {
439
+ http;
440
+ constructor(http) {
441
+ this.http = http;
442
+ }
443
+ /**
444
+ * Send one stream ping — start, update, or end, chosen by `live_status.state`
445
+ * and whether the correlation already exists.
446
+ */
447
+ push(inviteCode, ping) {
448
+ requireNonEmpty(inviteCode, 'inviteCode');
449
+ requireNonEmpty(ping.correlation_id, 'correlation_id');
450
+ assertStructuredData(ping.data);
451
+ return this.http.request('POST', `/api/agent/rooms/${enc(inviteCode)}/live`, { body: ping });
452
+ }
453
+ /**
454
+ * Read back a stream this credential started, so a restarted producer can
455
+ * reconcile instead of opening a duplicate. Returns null when there is no
456
+ * such stream in the last 24 hours.
457
+ */
458
+ async get(inviteCode, correlationId) {
459
+ requireNonEmpty(inviteCode, 'inviteCode');
460
+ requireNonEmpty(correlationId, 'correlationId');
461
+ try {
462
+ return await this.http.request('GET', `/api/agent/rooms/${enc(inviteCode)}/live/${enc(correlationId)}`);
463
+ }
464
+ catch (error) {
465
+ if (error instanceof PingRoomError && error.status === 404)
466
+ return null;
467
+ throw error;
468
+ }
469
+ }
470
+ }
238
471
  /** Public, unauthenticated agent directory. */
239
472
  class DirectoryApi {
240
473
  http;
@@ -259,6 +492,10 @@ export class PingRoom {
259
492
  notifications;
260
493
  agents;
261
494
  approvals;
495
+ questions;
496
+ handoffs;
497
+ inbox;
498
+ live;
262
499
  profile;
263
500
  directory;
264
501
  mcp;
@@ -279,6 +516,10 @@ export class PingRoom {
279
516
  this.notifications = new NotificationsApi(this.http);
280
517
  this.agents = new AgentsApi(this.http);
281
518
  this.approvals = new ApprovalsApi(this.http);
519
+ this.questions = new QuestionsApi(this.http);
520
+ this.handoffs = new HandoffsApi(this.http);
521
+ this.inbox = new InboxApi(this.http);
522
+ this.live = new LiveApi(this.http);
282
523
  this.profile = new ProfileApi(this.http);
283
524
  this.directory = new DirectoryApi(this.http);
284
525
  this.mcp = new McpClient(this.http);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAgCrC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACnD,oFAAoF;AACpF,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,SAAS,UAAU;IACjB,MAAM,IAAI,GAAI,UAAyE,CAAC,OAAO,CAAC;IAChG,OAAO,IAAI,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,SAAS,CAAC;AAC1F,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IAC1B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAoC,GAAM;IAC9D,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,IAAe;IACjC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,OAA2B;IAChD,OAAO,CAAC,OAAO,IAAI,oBAAoB,CAAC,GAAG,IAAI,GAAG,mBAAmB,CAAC;AACxE,CAAC;AAED,6EAA6E;AAE7E,iDAAiD;AACjD,MAAM,OAAO;IACkB;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,mGAAmG;IACnG,QAAQ,CAAC,MAAsB;QAC7B,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,iFAAiF;IACjF,UAAU,CAAC,MAAwB;QACjC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,sFAAsF;IACtF,aAAa,CAAC,MAA2B;QACvC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gCAAgC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7G,CAAC;IAED,yDAAyD;IACzD,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,qCAAqC;IACrC,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AAED,MAAM,QAAQ;IACiB;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,UAAkB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,KAAsB;QAC3B,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,YAAY,CAAC,KAA4B;QACvC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,CAAC,KAAoB;QACvB,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;CACF;AAED,MAAM,UAAU;IACe;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI,CAAC,UAAkB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,UAAkB,EAAE,YAAoB,EAAE,KAA6B;QAC5E,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACjC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,CAAC,UAAU,CAAC,YAAY,YAAY,EAAE,EAAE;YAC7F,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,UAAkB,EAAE,YAAoB,EAAE,QAAsB,EAAE;QACxE,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,CAAC,UAAU,CAAC,YAAY,YAAY,UAAU,EAAE;YACtG,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,gBAAgB;IACS;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,+EAA+E;IAC/E,IAAI,CAAC,QAAgC,EAAE;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,2FAA2F;IAC3F,IAAI,CAAC,QAAmB,EAAE;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,+BAA+B,EAAE;YAC/D,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACxF,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YACvC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,QAAqB,EAAE;QACnC,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnC,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC9B,IAAI,MAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,MAAM;oBACb,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnB,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACrC,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,SAAS;IACgB;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,oEAAoE;IACpE,IAAI,CAAC,MAAc,EAAE,IAAe;QAClC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAClH,CAAC;CACF;AAED,MAAM,YAAY;IACa;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,yEAAyE;IACzE,OAAO,CAAC,UAAkB,EAAE,KAAoB;QAC9C,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5C,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE;YAChF,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,UAAkB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,qFAAqF;IACrF,IAAI,CAAC,UAAkB,EAAE,QAA2B,EAAE;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE;YAC9E,KAAK,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAChD,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YACvC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,eAAe,CAAC,UAAkB,EAAE,QAAkC,EAAE;QAC5E,SAAS,CAAC;YACR,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC1B,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3F,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClE,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU;IACe;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,wDAAwD;IACxD,SAAS,CAAC,QAAgB;QACxB,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,uEAAuE;IACvE,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;CACF;AAED,+CAA+C;AAC/C,MAAM,YAAY;IACa;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI,CAAC,QAA4B,EAAE;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,uBAAuB,EAAE;YACvD,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;CACF;AAED,6EAA6E;AAE7E,MAAM,OAAO,QAAQ;IACV,IAAI,CAAU;IACd,KAAK,CAAW;IAChB,OAAO,CAAa;IACpB,aAAa,CAAmB;IAChC,MAAM,CAAY;IAClB,SAAS,CAAe;IACxB,OAAO,CAAa;IACpB,SAAS,CAAe;IACxB,GAAG,CAAY;IAEP,IAAI,CAAa;IAElC,YAAY,UAA2B,EAAE;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,EAAE,IAAI,gBAAgB,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;YACzB,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,gFAAgF;IAChF,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,UAAkB,EAAE,IAAe;QAC3C,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE;YACpF,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -11,6 +11,14 @@ export interface ApiErrorBody {
11
11
  retry_after?: number;
12
12
  [key: string]: unknown;
13
13
  }
14
+ /**
15
+ * The machine `code`s a handoff create/read can surface on a {@link PingRoomError}.
16
+ * Branch on `error.code` (and `error.status`) instead of the message:
17
+ *
18
+ * Authentication and schema-validation failures may have no machine code; use
19
+ * `status` for those responses. This union covers every coded Handoff response.
20
+ */
21
+ export type HandoffErrorCode = 'feature_temporarily_unavailable' | 'handoff_room_unsupported' | 'invalid_target' | 'target_not_found' | 'target_unavailable' | 'pings_closed' | 'not_room_member' | 'recipient_not_ready' | 'idempotency_conflict' | 'invalid_idempotency_key' | 'capability_check_unavailable' | 'insufficient_scope' | 'free_limit_reached';
14
22
  export interface PingRoomErrorInit {
15
23
  status?: number;
16
24
  code?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB;IAUzD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa;CAoBrF;AAED,iDAAiD;AACjD,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,OAAO,SAAsB;CAI1C;AAED,2EAA2E;AAC3E,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAO7C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB,iCAAiC,GACjC,0BAA0B,GAC1B,gBAAgB,GAChB,kBAAkB,GAClB,oBAAoB,GACpB,cAAc,GACd,iBAAiB,GACjB,qBAAqB,GACrB,sBAAsB,GACtB,yBAAyB,GACzB,8BAA8B,GAC9B,oBAAoB,GACpB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB;IAUzD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa;CAoBrF;AAED,iDAAiD;AACjD,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,OAAO,SAAsB;CAI1C;AAED,2EAA2E;AAC3E,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAO7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,wDAAwD;IAC/C,MAAM,CAAS;IACxB,qFAAqF;IAC5E,IAAI,CAAgB;IAC7B,yFAAyF;IAChF,UAAU,CAAgB;IACnC,uFAAuF;IAC9E,IAAI,CAAU;IAEvB,YAAY,OAAe,EAAE,OAA0B,EAAE;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,IAAa,EAAE,OAAiB;QAClE,MAAM,CAAC,GAAiB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,GACR,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;YACtC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC;QACP,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC;YAC5C,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;QAEnC,IAAI,UAAU,GAAkB,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;CACF;AAED,iDAAiD;AACjD,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,YAAY,OAAO,GAAG,mBAAmB;QACvC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,2EAA2E;AAC3E,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACvB,IAA4B,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuCH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,wDAAwD;IAC/C,MAAM,CAAS;IACxB,qFAAqF;IAC5E,IAAI,CAAgB;IAC7B,yFAAyF;IAChF,UAAU,CAAgB;IACnC,uFAAuF;IAC9E,IAAI,CAAU;IAEvB,YAAY,OAAe,EAAE,OAA0B,EAAE;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,IAAa,EAAE,OAAiB;QAClE,MAAM,CAAC,GAAiB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,GACR,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;YACtC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC;QACP,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC;YAC5C,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;QAEnC,IAAI,UAAU,GAAkB,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;CACF;AAED,iDAAiD;AACjD,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,YAAY,OAAO,GAAG,mBAAmB;QACvC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,2EAA2E;AAC3E,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACvB,IAA4B,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -12,9 +12,15 @@ export { PingRoom as PingRoomClient } from './client.js';
12
12
  export { McpClient } from './mcp.js';
13
13
  export type { JsonRpcError, McpTool, McpToolResult } from './mcp.js';
14
14
  export { PingRoomError, PingRoomTimeoutError, PingRoomNetworkError } from './errors.js';
15
- export type { ApiErrorBody, PingRoomErrorInit } from './errors.js';
16
- export { verifyWebhookSignature, sendIncomingWebhook, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_TIMESTAMP_HEADER, WEBHOOK_DELIVERY_HEADER, WEBHOOK_EVENT_HEADER, } from './webhooks.js';
15
+ export type { ApiErrorBody, HandoffErrorCode, PingRoomErrorInit } from './errors.js';
16
+ export { verifyWebhookSignature, sendIncomingWebhook, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_SIGNATURE_V2_HEADER, WEBHOOK_TIMESTAMP_HEADER, WEBHOOK_DELIVERY_HEADER, WEBHOOK_EVENT_HEADER, } from './webhooks.js';
17
17
  export type { VerifyWebhookSignatureOptions, IncomingWebhookPayload, SendIncomingWebhookOptions, IncomingWebhookResult, } from './webhooks.js';
18
+ export { linkPing } from './linkPing.js';
19
+ export type { LinkPingInput, LinkPingData } from './linkPing.js';
20
+ export { liveStatus } from './liveStatus.js';
21
+ export type { LiveStatus, LiveStatusState, LiveStatusCategory, LiveStatusMetric, LiveStatusOption, LiveStatusSide, LiveStatusPing, LiveStatusResult, LiveStatusSnapshot, } from './liveStatus.js';
22
+ export { liveActivity } from './liveActivity.js';
23
+ export type { LiveActivityTemplate, LiveActivityStatus, LiveActivityMetric, LiveActivityOption, LiveActivitySide, LiveActivityIdentity, LiveActivityData, } from './liveActivity.js';
18
24
  export { VERSION } from './version.js';
19
25
  export type * from './types.js';
20
26
  export default PingRoom;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,kCAAkC;AAClC,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,mBAAmB,YAAY,CAAC;AAEhC,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,kCAAkC;AAClC,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,mBAAmB,YAAY,CAAC;AAEhC,eAAe,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -11,7 +11,10 @@ export { PingRoom };
11
11
  export { PingRoom as PingRoomClient } from './client.js';
12
12
  export { McpClient } from './mcp.js';
13
13
  export { PingRoomError, PingRoomTimeoutError, PingRoomNetworkError } from './errors.js';
14
- export { verifyWebhookSignature, sendIncomingWebhook, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_TIMESTAMP_HEADER, WEBHOOK_DELIVERY_HEADER, WEBHOOK_EVENT_HEADER, } from './webhooks.js';
14
+ export { verifyWebhookSignature, sendIncomingWebhook, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_SIGNATURE_V2_HEADER, WEBHOOK_TIMESTAMP_HEADER, WEBHOOK_DELIVERY_HEADER, WEBHOOK_EVENT_HEADER, } from './webhooks.js';
15
+ export { linkPing } from './linkPing.js';
16
+ export { liveStatus } from './liveStatus.js';
17
+ export { liveActivity } from './liveActivity.js';
15
18
  export { VERSION } from './version.js';
16
19
  export default PingRoom;
17
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,kCAAkC;AAClC,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxF,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,kCAAkC;AAClC,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxF,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAa7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Link pings — make a ping a tappable button that opens a URL.
3
+ *
4
+ * The server convention is two reserved keys inside the structured `data`
5
+ * object: `url` (absolute http(s), <= 2048 chars) and `button_label`
6
+ * (<= 26 chars). This helper builds that fragment with client-side
7
+ * validation so a bad link fails fast instead of at the API boundary:
8
+ *
9
+ * await pr.broadcast('ab12cd', {
10
+ * message: 'Build 512 ready',
11
+ * data: { commit: 'abc123', ...linkPing({ url: 'https://ci.example.com/b/512', buttonLabel: 'Open build' }) },
12
+ * });
13
+ */
14
+ export interface LinkPingInput {
15
+ /** Absolute http(s) URL opened when the recipient taps the link button. Max 2048 chars. */
16
+ url: string;
17
+ /** Text on the link button. Max 26 chars. Defaults to a generic label on-device. */
18
+ buttonLabel?: string;
19
+ }
20
+ export interface LinkPingData {
21
+ url: string;
22
+ button_label?: string;
23
+ [key: string]: unknown;
24
+ }
25
+ /** Build the `data` fragment for a link ping. Spread it into a ping's `data` object. */
26
+ export declare function linkPing(input: LinkPingInput): LinkPingData;
27
+ //# sourceMappingURL=linkPing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkPing.d.ts","sourceRoot":"","sources":["../src/linkPing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,2FAA2F;IAC3F,GAAG,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAKD,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAmB3D"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Link pings — make a ping a tappable button that opens a URL.
3
+ *
4
+ * The server convention is two reserved keys inside the structured `data`
5
+ * object: `url` (absolute http(s), <= 2048 chars) and `button_label`
6
+ * (<= 26 chars). This helper builds that fragment with client-side
7
+ * validation so a bad link fails fast instead of at the API boundary:
8
+ *
9
+ * await pr.broadcast('ab12cd', {
10
+ * message: 'Build 512 ready',
11
+ * data: { commit: 'abc123', ...linkPing({ url: 'https://ci.example.com/b/512', buttonLabel: 'Open build' }) },
12
+ * });
13
+ */
14
+ const URL_MAX = 2048;
15
+ const LABEL_MAX = 26;
16
+ /** Build the `data` fragment for a link ping. Spread it into a ping's `data` object. */
17
+ export function linkPing(input) {
18
+ let parsed;
19
+ try {
20
+ parsed = new URL(input.url);
21
+ }
22
+ catch {
23
+ throw new TypeError('linkPing: url is not a valid URL');
24
+ }
25
+ if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:') {
26
+ throw new TypeError('linkPing: url must be an absolute http(s) URL');
27
+ }
28
+ if (input.url.length > URL_MAX) {
29
+ throw new TypeError(`linkPing: url must be at most ${URL_MAX} characters`);
30
+ }
31
+ if (input.buttonLabel !== undefined && input.buttonLabel.length > LABEL_MAX) {
32
+ throw new TypeError(`linkPing: buttonLabel must be at most ${LABEL_MAX} characters`);
33
+ }
34
+ const out = { url: input.url };
35
+ if (input.buttonLabel !== undefined)
36
+ out.button_label = input.buttonLabel;
37
+ return out;
38
+ }
39
+ //# sourceMappingURL=linkPing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkPing.js","sourceRoot":"","sources":["../src/linkPing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,iCAAiC,OAAO,aAAa,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC5E,MAAM,IAAI,SAAS,CAAC,yCAAyC,SAAS,aAAa,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,GAAG,GAAiB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7C,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;IAC1E,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Live Activity template builders for the PingRoom agent SDK.
3
+ *
4
+ * IMPORTANT — these builders do NOT start an activity. The server starts,
5
+ * updates, and ends Live Activities only from a **live-status stream**: a
6
+ * `live_status` object sent either to a room's incoming webhook or to the agent
7
+ * route (see https://pingroom.io/liveactivities.md). A `live_activity` block
8
+ * placed in a `broadcast()` / `ping()` `data` object is carried as opaque
9
+ * structured data — clients only honor the server-built, top-level
10
+ * `live_activity` push block.
11
+ *
12
+ * These builders produce that `{ attributes, content_state }` block in the
13
+ * frozen native shape (mobile/modules/live-activity/src/LiveActivity.types.ts,
14
+ * LIVE_ACTIVITY_TEMPLATES.md). Use them when you need the native contract —
15
+ * e.g. constructing expected payloads in tests or tooling that speaks the
16
+ * push-layer shape.
17
+ *
18
+ * To actually drive a Live Activity, use `liveStatus.*` + `pr.live.push()`
19
+ * (agent credential, `pingroom:live:write`) or `sendIncomingWebhook()`.
20
+ */
21
+ export type LiveActivityTemplate = 'status' | 'steps' | 'progress' | 'metrics' | 'countdown' | 'question' | 'matchup';
22
+ export type LiveActivityStatus = 'open' | 'done' | 'failed' | 'acked' | 'answered' | 'expired' | 'cancelled';
23
+ export interface LiveActivityMetric {
24
+ label: string;
25
+ value: string;
26
+ }
27
+ export interface LiveActivityOption {
28
+ value: string;
29
+ label: string;
30
+ }
31
+ export interface LiveActivitySide {
32
+ label: string;
33
+ value: string;
34
+ iconSvg?: string;
35
+ }
36
+ /** Identity fields common to every template (immutable for the activity's life). */
37
+ export interface LiveActivityIdentity {
38
+ roomCode: string;
39
+ roomName: string;
40
+ /** Hex accent — the palette room color, or brand red `#e33122`. */
41
+ roomColor: string;
42
+ roomIconSvg?: string;
43
+ /** Reuse across updates to target the same activity; also links agent replies. */
44
+ correlationId?: string;
45
+ agentId?: string;
46
+ kind?: string;
47
+ }
48
+ /** Content fields shared across templates. */
49
+ interface CommonState {
50
+ title: string;
51
+ message?: string;
52
+ status?: LiveActivityStatus;
53
+ /** Semantic accent hex for this state only (e.g. deadline red). */
54
+ accentOverride?: string;
55
+ }
56
+ /** The `data` fragment carrying a Live Activity. Spread into a ping's `data`. */
57
+ export interface LiveActivityData {
58
+ live_activity: {
59
+ attributes: Record<string, unknown>;
60
+ content_state: Record<string, unknown>;
61
+ };
62
+ }
63
+ export declare const liveActivity: {
64
+ /** Single hero line + status dot; optional live ETA (`etaAt`, epoch seconds). */
65
+ status(input: LiveActivityIdentity & CommonState & {
66
+ progress?: number;
67
+ etaAt?: number;
68
+ }): LiveActivityData;
69
+ /** Checkpoint rail — the understand → plan → doc pattern. */
70
+ steps(input: LiveActivityIdentity & CommonState & {
71
+ steps: string[];
72
+ currentStep: number;
73
+ }): LiveActivityData;
74
+ /** Determinate progress bar (0..1), optional `etaAt` countdown. */
75
+ progress(input: LiveActivityIdentity & CommonState & {
76
+ progress: number;
77
+ etaAt?: number;
78
+ }): LiveActivityData;
79
+ /** Up to 3 live counters. */
80
+ metrics(input: LiveActivityIdentity & CommonState & {
81
+ metrics: LiveActivityMetric[];
82
+ }): LiveActivityData;
83
+ /** Big timer counting down to `deadlineAt` (epoch seconds). */
84
+ countdown(input: LiveActivityIdentity & CommonState & {
85
+ deadlineAt: number;
86
+ }): LiveActivityData;
87
+ /** Lock-screen ask: prompt + up to 4 options; `deadlineAt` shows time-left. */
88
+ question(input: LiveActivityIdentity & CommonState & {
89
+ prompt: string;
90
+ options: LiveActivityOption[];
91
+ deadlineAt?: number;
92
+ }): LiveActivityData;
93
+ /** Head-to-head: left · center · right. */
94
+ matchup(input: LiveActivityIdentity & CommonState & {
95
+ left: LiveActivitySide;
96
+ right: LiveActivitySide;
97
+ center?: string;
98
+ }): LiveActivityData;
99
+ };
100
+ export {};
101
+ //# sourceMappingURL=liveActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveActivity.d.ts","sourceRoot":"","sources":["../src/liveActivity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,OAAO,GACP,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,MAAM,GACN,QAAQ,GACR,OAAO,GACP,UAAU,GACV,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,8CAA8C;AAC9C,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC,CAAC;CACH;AAgCD,eAAO,MAAM,YAAY;IACvB,iFAAiF;kBACnE,oBAAoB,GAAG,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAKxF,6DAA6D;iBAChD,oBAAoB,GAAG,WAAW,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAK1F,mEAAmE;oBACnD,oBAAoB,GAAG,WAAW,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAKzF,6BAA6B;mBACd,oBAAoB,GAAG,WAAW,GAAG;QAAE,OAAO,EAAE,kBAAkB,EAAE,CAAA;KAAE;IAKrF,+DAA+D;qBAC9C,oBAAoB,GAAG,WAAW,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;IAK5E,+EAA+E;oBAEtE,oBAAoB,GACzB,WAAW,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAMxF,2CAA2C;mBAElC,oBAAoB,GACzB,WAAW,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,KAAK,EAAE,gBAAgB,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAKvF,CAAC"}