@tapflowio/relay 0.26.0 → 0.27.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.
Files changed (155) hide show
  1. package/dist/RelayServer.d.ts +81 -3
  2. package/dist/RelayServer.d.ts.map +1 -1
  3. package/dist/RelayServer.js +278 -17
  4. package/dist/RelayServer.js.map +1 -1
  5. package/dist/SessionManager.d.ts +5 -3
  6. package/dist/SessionManager.d.ts.map +1 -1
  7. package/dist/SessionManager.js +3 -1
  8. package/dist/SessionManager.js.map +1 -1
  9. package/dist/api/auth.d.ts +2 -1
  10. package/dist/api/auth.d.ts.map +1 -1
  11. package/dist/api/auth.js +1 -1
  12. package/dist/api/auth.js.map +1 -1
  13. package/dist/api/passwordReset.d.ts +2 -1
  14. package/dist/api/passwordReset.d.ts.map +1 -1
  15. package/dist/api/passwordReset.js +1 -1
  16. package/dist/api/passwordReset.js.map +1 -1
  17. package/dist/api/team.d.ts +3 -2
  18. package/dist/api/team.d.ts.map +1 -1
  19. package/dist/api/team.js +2 -2
  20. package/dist/api/team.js.map +1 -1
  21. package/dist/api/tokens.d.ts +2 -1
  22. package/dist/api/tokens.d.ts.map +1 -1
  23. package/dist/api/tokens.js +1 -1
  24. package/dist/api/tokens.js.map +1 -1
  25. package/dist/lib/connectionAuth.d.ts +29 -0
  26. package/dist/lib/connectionAuth.d.ts.map +1 -1
  27. package/dist/lib/connectionAuth.js +15 -0
  28. package/dist/lib/connectionAuth.js.map +1 -1
  29. package/dist/lib/webhookTransport.d.ts +29 -0
  30. package/dist/lib/webhookTransport.d.ts.map +1 -0
  31. package/dist/lib/webhookTransport.js +86 -0
  32. package/dist/lib/webhookTransport.js.map +1 -0
  33. package/dist/lib/webhookUrl.d.ts +6 -0
  34. package/dist/lib/webhookUrl.d.ts.map +1 -1
  35. package/dist/lib/webhookUrl.js +50 -14
  36. package/dist/lib/webhookUrl.js.map +1 -1
  37. package/dist/lib/webhooks.d.ts +2 -10
  38. package/dist/lib/webhooks.d.ts.map +1 -1
  39. package/dist/lib/webhooks.js +8 -3
  40. package/dist/lib/webhooks.js.map +1 -1
  41. package/package.json +6 -6
  42. package/public/assets/{AppCenter-DZCsC2wa.js → AppCenter-BMdYtQbV.js} +7 -7
  43. package/public/assets/AppCenter-BMdYtQbV.js.br +0 -0
  44. package/public/assets/AppCenter-BMdYtQbV.js.gz +0 -0
  45. package/public/assets/Default-0DHHVGaN.js +1 -0
  46. package/public/assets/Default-0DHHVGaN.js.br +0 -0
  47. package/public/assets/Default-0DHHVGaN.js.gz +0 -0
  48. package/public/assets/Invite-C0ZB_HiU.js +1 -0
  49. package/public/assets/Invite-C0ZB_HiU.js.br +0 -0
  50. package/public/assets/Invite-C0ZB_HiU.js.gz +0 -0
  51. package/public/assets/{MacResources-B0DQ9ISE.js → MacResources-DmY5pRV2.js} +1 -1
  52. package/public/assets/MacResources-DmY5pRV2.js.br +0 -0
  53. package/public/assets/MacResources-DmY5pRV2.js.gz +0 -0
  54. package/public/assets/QASession-2QogWEX7.js +150 -0
  55. package/public/assets/QASession-2QogWEX7.js.br +0 -0
  56. package/public/assets/QASession-2QogWEX7.js.gz +0 -0
  57. package/public/assets/ResetPassword-jNRuertx.js +1 -0
  58. package/public/assets/ResetPassword-jNRuertx.js.br +0 -0
  59. package/public/assets/ResetPassword-jNRuertx.js.gz +0 -0
  60. package/public/assets/Setup-CF_FN9Dt.js +1 -0
  61. package/public/assets/Setup-CF_FN9Dt.js.br +0 -0
  62. package/public/assets/Setup-CF_FN9Dt.js.gz +0 -0
  63. package/public/assets/Team-BbiyOGau.js +6 -0
  64. package/public/assets/Team-BbiyOGau.js.br +0 -0
  65. package/public/assets/Team-BbiyOGau.js.gz +0 -0
  66. package/public/assets/Tokens-CZo4sPTx.js +1 -0
  67. package/public/assets/Tokens-CZo4sPTx.js.br +0 -0
  68. package/public/assets/Tokens-CZo4sPTx.js.gz +0 -0
  69. package/public/assets/alert-dialog-DFz8G_zu.js +1 -0
  70. package/public/assets/alert-dialog-DFz8G_zu.js.br +0 -0
  71. package/public/assets/alert-dialog-DFz8G_zu.js.gz +0 -0
  72. package/public/assets/badge-B3vaBVIQ.js +1 -0
  73. package/public/assets/badge-B3vaBVIQ.js.br +0 -0
  74. package/public/assets/badge-B3vaBVIQ.js.gz +0 -0
  75. package/public/assets/{build-format-fzt-JrUX.js → build-format-dbQPU3A4.js} +3 -3
  76. package/public/assets/build-format-dbQPU3A4.js.br +0 -0
  77. package/public/assets/build-format-dbQPU3A4.js.gz +0 -0
  78. package/public/assets/{dialog-DQkbaw8h.js → dialog-DeBPk-I3.js} +5 -5
  79. package/public/assets/dialog-DeBPk-I3.js.br +0 -0
  80. package/public/assets/dialog-DeBPk-I3.js.gz +0 -0
  81. package/public/assets/field-hint-CMKmbVpy.js +1 -0
  82. package/public/assets/field-hint-CMKmbVpy.js.br +0 -0
  83. package/public/assets/field-hint-CMKmbVpy.js.gz +0 -0
  84. package/public/assets/index-B4w4Lh3e.js +218 -0
  85. package/public/assets/index-B4w4Lh3e.js.br +0 -0
  86. package/public/assets/index-B4w4Lh3e.js.gz +0 -0
  87. package/public/assets/index-CDWu0GQL.css +1 -0
  88. package/public/assets/index-CDWu0GQL.css.br +0 -0
  89. package/public/assets/index-CDWu0GQL.css.gz +0 -0
  90. package/public/assets/list-view-BvINA5t4.js +1 -0
  91. package/public/assets/list-view-BvINA5t4.js.br +0 -0
  92. package/public/assets/list-view-BvINA5t4.js.gz +0 -0
  93. package/public/assets/{pencil-BJcOp3oN.js → pencil-CycAOoC_.js} +2 -2
  94. package/public/assets/pencil-CycAOoC_.js.br +0 -0
  95. package/public/assets/pencil-CycAOoC_.js.gz +0 -0
  96. package/public/assets/resource-health-C1qSG3MK.js +1 -0
  97. package/public/assets/resource-health-C1qSG3MK.js.br +0 -0
  98. package/public/assets/resource-health-C1qSG3MK.js.gz +0 -0
  99. package/public/assets/{trash-DhBxh6H7.js → trash-BXQnOI5U.js} +3 -3
  100. package/public/assets/trash-BXQnOI5U.js.br +0 -0
  101. package/public/assets/trash-BXQnOI5U.js.gz +0 -0
  102. package/public/index.html +2 -2
  103. package/public/index.html.br +0 -0
  104. package/public/index.html.gz +0 -0
  105. package/public/assets/AppCenter-DZCsC2wa.js.br +0 -0
  106. package/public/assets/AppCenter-DZCsC2wa.js.gz +0 -0
  107. package/public/assets/Default-xD9Fmd5X.js +0 -1
  108. package/public/assets/Default-xD9Fmd5X.js.br +0 -0
  109. package/public/assets/Default-xD9Fmd5X.js.gz +0 -0
  110. package/public/assets/Invite-29Erwv8j.js +0 -1
  111. package/public/assets/Invite-29Erwv8j.js.br +0 -0
  112. package/public/assets/Invite-29Erwv8j.js.gz +0 -0
  113. package/public/assets/MacResources-B0DQ9ISE.js.br +0 -0
  114. package/public/assets/MacResources-B0DQ9ISE.js.gz +0 -0
  115. package/public/assets/QASession-D-n6PXuD.js +0 -150
  116. package/public/assets/QASession-D-n6PXuD.js.br +0 -0
  117. package/public/assets/QASession-D-n6PXuD.js.gz +0 -0
  118. package/public/assets/ResetPassword-BnPIwTYH.js +0 -1
  119. package/public/assets/ResetPassword-BnPIwTYH.js.br +0 -0
  120. package/public/assets/ResetPassword-BnPIwTYH.js.gz +0 -0
  121. package/public/assets/Setup-DmUGFblg.js +0 -1
  122. package/public/assets/Setup-DmUGFblg.js.br +0 -0
  123. package/public/assets/Setup-DmUGFblg.js.gz +0 -0
  124. package/public/assets/Team-BpvRgFfZ.js +0 -6
  125. package/public/assets/Team-BpvRgFfZ.js.br +0 -0
  126. package/public/assets/Team-BpvRgFfZ.js.gz +0 -0
  127. package/public/assets/Tokens-x6BtCcL7.js +0 -1
  128. package/public/assets/Tokens-x6BtCcL7.js.br +0 -0
  129. package/public/assets/Tokens-x6BtCcL7.js.gz +0 -0
  130. package/public/assets/alert-dialog-C8wDimW-.js +0 -1
  131. package/public/assets/alert-dialog-C8wDimW-.js.br +0 -0
  132. package/public/assets/alert-dialog-C8wDimW-.js.gz +0 -0
  133. package/public/assets/badge-CWVbeuH3.js +0 -1
  134. package/public/assets/badge-CWVbeuH3.js.br +0 -0
  135. package/public/assets/badge-CWVbeuH3.js.gz +0 -0
  136. package/public/assets/build-format-fzt-JrUX.js.br +0 -0
  137. package/public/assets/build-format-fzt-JrUX.js.gz +0 -0
  138. package/public/assets/dialog-DQkbaw8h.js.br +0 -0
  139. package/public/assets/dialog-DQkbaw8h.js.gz +0 -0
  140. package/public/assets/index-C1Fo8g_c.js +0 -218
  141. package/public/assets/index-C1Fo8g_c.js.br +0 -0
  142. package/public/assets/index-C1Fo8g_c.js.gz +0 -0
  143. package/public/assets/index-C2F1AgwB.css +0 -1
  144. package/public/assets/index-C2F1AgwB.css.br +0 -0
  145. package/public/assets/index-C2F1AgwB.css.gz +0 -0
  146. package/public/assets/list-view-DxI397-H.js +0 -1
  147. package/public/assets/list-view-DxI397-H.js.br +0 -0
  148. package/public/assets/list-view-DxI397-H.js.gz +0 -0
  149. package/public/assets/pencil-BJcOp3oN.js.br +0 -0
  150. package/public/assets/pencil-BJcOp3oN.js.gz +0 -0
  151. package/public/assets/resource-health-Cq3gqqVd.js +0 -1
  152. package/public/assets/resource-health-Cq3gqqVd.js.br +0 -0
  153. package/public/assets/resource-health-Cq3gqqVd.js.gz +0 -0
  154. package/public/assets/trash-DhBxh6H7.js.br +0 -0
  155. package/public/assets/trash-DhBxh6H7.js.gz +0 -0
@@ -128,6 +128,9 @@ export declare class RelayServer {
128
128
  private readonly backpressureBytes;
129
129
  private readonly screenshotTimeoutMs;
130
130
  private readonly agentGraceMs;
131
+ /** How long a tracked boot lives without an answer. An option so tests can shrink the
132
+ * 180s horizon; production always takes the default. */
133
+ private readonly pendingBootTtlMs;
131
134
  private readonly corsAllowed;
132
135
  private warnedProxyMisconfig;
133
136
  /** Agent identities already warned about a missing `build-download`. See `warnLegacyInstaller`. */
@@ -136,6 +139,39 @@ export declare class RelayServer {
136
139
  private pendingScreenshots;
137
140
  private readonly uiTreeTimeoutMs;
138
141
  private pendingUITrees;
142
+ /**
143
+ * Who asked for each correlated `device:shutdown` still waiting on its agent (#567). The agent's answer
144
+ * goes to the session's `browserSocket`, and a caller that never joined — an MCP client shutting down a
145
+ * session nobody holds, which `mayShutDown` permits — has no socket there, so it waited out its 30s for a
146
+ * shutdown that had happened. Keyed by session **and** id, because the id is chosen by the client and
147
+ * would alone let one session's answer reach another session's caller.
148
+ *
149
+ * **Settled when the session is removed, never when the agent socket drops — the opposite of a boot.**
150
+ * Both agents reconnect without restarting, and a shutdown that finishes after the reconnect is answered
151
+ * on the new socket, so an agent going away or being rebound is not evidence that the answer is lost.
152
+ * For a boot it is (#885): the binding a boot creates is exactly what a rebind loses. Folding the two
153
+ * into one rule would tell a caller its shutdown failed for a device that then powered off.
154
+ */
155
+ private readonly shutdownRequesters;
156
+ /**
157
+ * In-flight `device:boot` requests, keyed by session and correlator (#885).
158
+ *
159
+ * The relay is the only layer that knows which agent socket each boot was actually dispatched
160
+ * to, so it owns settling the ones a rebind strands. The client cannot tell "issued before the
161
+ * rebound" from "delivered to the old agent", which is why the previous client-side settle on
162
+ * `session:rebound` answered boots the new agent was already handling. Entries record the
163
+ * concrete agent socket from the `device:boot` dispatch, so a rebind invalidates only the boots
164
+ * tied to the replaced socket and leaves a boot dispatched to the new socket alone.
165
+ *
166
+ * Cleared when a correlated `device:ready` or `device:boot-error` arrives, when the boot is
167
+ * invalidated at rebind, when its session is forgotten or evicted — and by its own expiry
168
+ * (`PENDING_BOOT_TTL_MS`) when none of those happen first, so a live agent that never answers
169
+ * cannot pin the entry past every caller that could have waited on it. An absent `requestId`
170
+ * answers no request (protocol/AGENTS.md 「Lifecycle correlation」), so id-less replies clear
171
+ * nothing. A leftover entry is harmless: its id names no waiter, so both clients and the
172
+ * dashboard drop the synthetic error it would produce.
173
+ */
174
+ private readonly pendingBoots;
139
175
  constructor(options: {
140
176
  port: number;
141
177
  publicDir?: string;
@@ -151,6 +187,7 @@ export declare class RelayServer {
151
187
  key: string;
152
188
  };
153
189
  agentGraceMs?: number;
190
+ pendingBootTtlMs?: number;
154
191
  tunnel?: TunnelRuntime;
155
192
  tunnelPort?: number;
156
193
  });
@@ -177,9 +214,15 @@ export declare class RelayServer {
177
214
  private runHeartbeat;
178
215
  /**
179
216
  * Injected into the handlers whose write can take access away — member update and removal, token
180
- * revocation, a password reset or change — and called after the write commits. It carries no argument on
181
- * purpose: the sweep re-derives every socket's standing from the database, so no handler has to know
182
- * which sockets its change affects.
217
+ * revocation, a password reset or change — and called after the write commits. The sweep re-derives
218
+ * every socket's standing from the database, so when the database answers, no handler has to know which
219
+ * sockets its change affects.
220
+ *
221
+ * `affected` names the credential the write just reduced (`AuthChange`), and matters only when a lookup
222
+ * fails: the sockets resting on that credential are closed anyway (fail closed), because the one thing
223
+ * known for certain is that it just went down. Scoped to what the write touched, so revoking an unused
224
+ * CI token cannot take down the owner's agents and every session running on them. Every other socket is
225
+ * left alone as before.
183
226
  */
184
227
  private readonly onAuthChanged;
185
228
  private revalidateSockets;
@@ -318,6 +361,15 @@ export declare class RelayServer {
318
361
  * Messages the relay merely *forwards* do not use this: they are re-serialised unchanged, so
319
362
  * they keep their inbound type and there is nothing new to check.
320
363
  */
364
+ private rememberShutdownRequester;
365
+ /** Hands the agent's answer to whoever asked for it, when that is not the holder — who already has it. */
366
+ private answerShutdownRequester;
367
+ /**
368
+ * The session is being removed, so an answer from its agent — if one ever comes — is dropped at
369
+ * `sessions.get`. `message` null settles in silence; otherwise a caller that never joined is told.
370
+ */
371
+ private settleShutdownRequesters;
372
+ private forgetShutdownRequesters;
321
373
  private sendTo;
322
374
  /**
323
375
  * Settle every in-flight screenshot / UI-tree request belonging to these sessions. Both callers
@@ -326,6 +378,32 @@ export declare class RelayServer {
326
378
  * timeout, minutes later, having told the caller nothing in between.
327
379
  */
328
380
  private rejectPending;
381
+ private bootKey;
382
+ /** Record a boot against the agent socket it was dispatched to. The door guarantees both ids. */
383
+ private rememberBoot;
384
+ /** The one way an entry leaves: every removal path funnels through here so no timer survives it. */
385
+ private forgetBoot;
386
+ /**
387
+ * Drop the tracked boot a correlated reply answers. The key needs no live session: an agent
388
+ * answering after its session was removed still answers that request. An absent `requestId`
389
+ * is not the answer to anything, so it drops nothing.
390
+ */
391
+ private settleBoot;
392
+ /**
393
+ * Answer the tracked boots tied to a replaced agent socket (#885). Called after the
394
+ * `session:rebound` frames are sent, so the client records `needsReboot` first and the error
395
+ * below is classified with the cause attached. Boots dispatched to any other socket — in
396
+ * particular to the new agent after the rebind — are left pending.
397
+ */
398
+ private invalidateBootsFor;
399
+ /**
400
+ * Silently drop the tracked boots of sessions that no longer exist. Their callers were already
401
+ * settled with the better diagnosis (`session:terminated`), so answering as well would send a
402
+ * second failure for the same request. Scoped to the evicted sessions rather than the socket:
403
+ * rebound sessions have already moved off it, and their entries are `invalidateBootsFor`'s to
404
+ * answer, not this one's to drop.
405
+ */
406
+ private forgetEvictedBoots;
329
407
  /**
330
408
  * The agent's socket went away. Keep its sessions and wait for that agent to come back, instead
331
409
  * of ending them here — a restarting agent registers about a second later, and until #426 stage 3
@@ -1 +1 @@
1
- {"version":3,"file":"RelayServer.d.ts","sourceRoot":"","sources":["../src/RelayServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RelayServer.d.ts","sourceRoot":"","sources":["../src/RelayServer.ts"],"names":[],"mappings":"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"}