@ai-matrx/records 0.47.0 → 0.48.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.
@@ -5142,6 +5142,19 @@ interface PortalPrincipal {
5142
5142
  is_active: boolean;
5143
5143
  invited_at: Timestamp;
5144
5144
  revoked_at: Timestamp | null;
5145
+ /**
5146
+ * THE LINK THE OFFICE COPIES FOR THIS PERSON — `/invitations/portal/accept/<token>`, the
5147
+ * path `custom.portal_invite` handed back when they were asked, read off the same
5148
+ * `iam.invitations` row and never re-templated.
5149
+ *
5150
+ * 🚨 `null` IS AN ANSWER, NOT AN ABSENCE, and a screen must say which. It is null when they
5151
+ * have already followed the link, when the office took it back (a revoke withdraws the
5152
+ * invitation in the same statement), when it has expired, or when they were let in through
5153
+ * the server's own magic-link route, which binds without an invitation at all. In every one
5154
+ * of those cases there is genuinely no link to copy — so draw a sentence, never a dead
5155
+ * control. (TAILS-5, 2026-09-21; the gap PORTAL-BIND left named.)
5156
+ */
5157
+ accept_path: string | null;
5145
5158
  }
5146
5159
  /** Everything about ONE portal: what it shows, and who it was opened to. */
5147
5160
  interface PortalCard {
@@ -5142,6 +5142,19 @@ interface PortalPrincipal {
5142
5142
  is_active: boolean;
5143
5143
  invited_at: Timestamp;
5144
5144
  revoked_at: Timestamp | null;
5145
+ /**
5146
+ * THE LINK THE OFFICE COPIES FOR THIS PERSON — `/invitations/portal/accept/<token>`, the
5147
+ * path `custom.portal_invite` handed back when they were asked, read off the same
5148
+ * `iam.invitations` row and never re-templated.
5149
+ *
5150
+ * 🚨 `null` IS AN ANSWER, NOT AN ABSENCE, and a screen must say which. It is null when they
5151
+ * have already followed the link, when the office took it back (a revoke withdraws the
5152
+ * invitation in the same statement), when it has expired, or when they were let in through
5153
+ * the server's own magic-link route, which binds without an invitation at all. In every one
5154
+ * of those cases there is genuinely no link to copy — so draw a sentence, never a dead
5155
+ * control. (TAILS-5, 2026-09-21; the gap PORTAL-BIND left named.)
5156
+ */
5157
+ accept_path: string | null;
5145
5158
  }
5146
5159
  /** Everything about ONE portal: what it shows, and who it was opened to. */
5147
5160
  interface PortalCard {