@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.
package/dist/index.d.cts CHANGED
@@ -1129,6 +1129,19 @@ interface PortalPrincipal {
1129
1129
  is_active: boolean;
1130
1130
  invited_at: Timestamp;
1131
1131
  revoked_at: Timestamp | null;
1132
+ /**
1133
+ * THE LINK THE OFFICE COPIES FOR THIS PERSON — `/invitations/portal/accept/<token>`, the
1134
+ * path `custom.portal_invite` handed back when they were asked, read off the same
1135
+ * `iam.invitations` row and never re-templated.
1136
+ *
1137
+ * 🚨 `null` IS AN ANSWER, NOT AN ABSENCE, and a screen must say which. It is null when they
1138
+ * have already followed the link, when the office took it back (a revoke withdraws the
1139
+ * invitation in the same statement), when it has expired, or when they were let in through
1140
+ * the server's own magic-link route, which binds without an invitation at all. In every one
1141
+ * of those cases there is genuinely no link to copy — so draw a sentence, never a dead
1142
+ * control. (TAILS-5, 2026-09-21; the gap PORTAL-BIND left named.)
1143
+ */
1144
+ accept_path: string | null;
1132
1145
  }
1133
1146
  /** Everything about ONE portal: what it shows, and who it was opened to. */
1134
1147
  interface PortalCard {
package/dist/index.d.ts CHANGED
@@ -1129,6 +1129,19 @@ interface PortalPrincipal {
1129
1129
  is_active: boolean;
1130
1130
  invited_at: Timestamp;
1131
1131
  revoked_at: Timestamp | null;
1132
+ /**
1133
+ * THE LINK THE OFFICE COPIES FOR THIS PERSON — `/invitations/portal/accept/<token>`, the
1134
+ * path `custom.portal_invite` handed back when they were asked, read off the same
1135
+ * `iam.invitations` row and never re-templated.
1136
+ *
1137
+ * 🚨 `null` IS AN ANSWER, NOT AN ABSENCE, and a screen must say which. It is null when they
1138
+ * have already followed the link, when the office took it back (a revoke withdraws the
1139
+ * invitation in the same statement), when it has expired, or when they were let in through
1140
+ * the server's own magic-link route, which binds without an invitation at all. In every one
1141
+ * of those cases there is genuinely no link to copy — so draw a sentence, never a dead
1142
+ * control. (TAILS-5, 2026-09-21; the gap PORTAL-BIND left named.)
1143
+ */
1144
+ accept_path: string | null;
1132
1145
  }
1133
1146
  /** Everything about ONE portal: what it shows, and who it was opened to. */
1134
1147
  interface PortalCard {