@ai-matrx/associations 0.13.20 → 0.13.21

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog — @ai-matrx/associations
2
2
 
3
+ ## 0.13.21
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/associations/v0.13.20..npm/associations/v0.13.21 -- apps/shared/associations`).
7
+ No source changes intended and no consumer action required.
8
+
3
9
  ## 0.13.20
4
10
 
5
11
  Automatic changed-only republish (docs/metadata drift since the last tag — see
@@ -506,9 +506,15 @@ interface CaptureUploadOpts {
506
506
  files: File[];
507
507
  /** Logical cloud-files folder new uploads land in (auto-created). */
508
508
  folderPath: string;
509
- /** Visibility stamped on uploads (host vocabulary, e.g. "personal"). */
509
+ /** Publish the uploads to the web (the only anonymous lane; access ladder T-13). */
510
+ publishedToWeb?: boolean;
511
+ /** The "Shown to" list filter stamped on uploads (`only_me` · `my_team` · `everyone` · `everyone_on_ai_matrx`). */
512
+ shownTo?: CaptureShownTo;
513
+ /** The retiring level word, derived from the two words above for hosts not yet on them. */
510
514
  visibility?: string;
511
515
  }
516
+ /** `platform.shown_to`: a list filter, never row security. */
517
+ type CaptureShownTo = "only_me" | "my_team" | "everyone" | "everyone_on_ai_matrx";
512
518
  /** Honest outcome of a host upload — created-but-unlinked must be reportable. */
513
519
  interface CaptureUploadResult {
514
520
  cancelled?: boolean;
@@ -546,10 +552,7 @@ interface CapturePort {
546
552
  * an honest error). Everything else — batching, drag-and-drop, progress
547
553
  * state, failure copy — is the package's job.
548
554
  */
549
- uploadFile?(file: File, opts: {
550
- folderPath: string;
551
- visibility?: string;
552
- }): Promise<{
555
+ uploadFile?(file: File, opts: Omit<CaptureUploadOpts, "files">): Promise<{
553
556
  ok: true;
554
557
  id: string;
555
558
  } | {
@@ -1814,8 +1817,10 @@ interface AssociationCaptureToolbarProps {
1814
1817
  attach: CaptureAttach;
1815
1818
  /** Logical cloud-files folder new uploads land in (auto-created). */
1816
1819
  uploadFolderPath: string;
1817
- /** Visibility stamped on uploads. Default "personal". */
1818
- uploadVisibility?: string;
1820
+ /** Publish uploads to the web. Default false — every upload writes it explicitly. */
1821
+ uploadPublishedToWeb?: boolean;
1822
+ /** "Shown to" stamped on uploads. Default "only_me". */
1823
+ uploadShownTo?: CaptureShownTo;
1819
1824
  /**
1820
1825
  * Where a created-but-unlinked upload is reported to live, e.g.
1821
1826
  * "your Files (War Room folder)". Keeps the loud-outcome copy honest.
@@ -1849,7 +1854,7 @@ interface AssociationCaptureToolbarProps {
1849
1854
  /** The body the drop target wraps (the list of attached things). */
1850
1855
  children?: ReactNode;
1851
1856
  }
1852
- declare function AssociationCaptureToolbar({ attach, uploadFolderPath, uploadVisibility, uploadLocationLabel, attachRetryLabel, filePicker, showActions, showToolbar, extraActions, organizationId, openCreatedDocument, className, children, }: AssociationCaptureToolbarProps): react.JSX.Element;
1857
+ declare function AssociationCaptureToolbar({ attach, uploadFolderPath, uploadPublishedToWeb, uploadShownTo, uploadLocationLabel, attachRetryLabel, filePicker, showActions, showToolbar, extraActions, organizationId, openCreatedDocument, className, children, }: AssociationCaptureToolbarProps): react.JSX.Element;
1853
1858
  /** The dense toolbar button (exported so hosts' extraActions match). */
1854
1859
  declare function CaptureToolbarAction({ icon: Icon, label, onClick, disabled, spinning, }: {
1855
1860
  icon: (props: IconProps) => ReactNode;
@@ -506,9 +506,15 @@ interface CaptureUploadOpts {
506
506
  files: File[];
507
507
  /** Logical cloud-files folder new uploads land in (auto-created). */
508
508
  folderPath: string;
509
- /** Visibility stamped on uploads (host vocabulary, e.g. "personal"). */
509
+ /** Publish the uploads to the web (the only anonymous lane; access ladder T-13). */
510
+ publishedToWeb?: boolean;
511
+ /** The "Shown to" list filter stamped on uploads (`only_me` · `my_team` · `everyone` · `everyone_on_ai_matrx`). */
512
+ shownTo?: CaptureShownTo;
513
+ /** The retiring level word, derived from the two words above for hosts not yet on them. */
510
514
  visibility?: string;
511
515
  }
516
+ /** `platform.shown_to`: a list filter, never row security. */
517
+ type CaptureShownTo = "only_me" | "my_team" | "everyone" | "everyone_on_ai_matrx";
512
518
  /** Honest outcome of a host upload — created-but-unlinked must be reportable. */
513
519
  interface CaptureUploadResult {
514
520
  cancelled?: boolean;
@@ -546,10 +552,7 @@ interface CapturePort {
546
552
  * an honest error). Everything else — batching, drag-and-drop, progress
547
553
  * state, failure copy — is the package's job.
548
554
  */
549
- uploadFile?(file: File, opts: {
550
- folderPath: string;
551
- visibility?: string;
552
- }): Promise<{
555
+ uploadFile?(file: File, opts: Omit<CaptureUploadOpts, "files">): Promise<{
553
556
  ok: true;
554
557
  id: string;
555
558
  } | {
@@ -1814,8 +1817,10 @@ interface AssociationCaptureToolbarProps {
1814
1817
  attach: CaptureAttach;
1815
1818
  /** Logical cloud-files folder new uploads land in (auto-created). */
1816
1819
  uploadFolderPath: string;
1817
- /** Visibility stamped on uploads. Default "personal". */
1818
- uploadVisibility?: string;
1820
+ /** Publish uploads to the web. Default false — every upload writes it explicitly. */
1821
+ uploadPublishedToWeb?: boolean;
1822
+ /** "Shown to" stamped on uploads. Default "only_me". */
1823
+ uploadShownTo?: CaptureShownTo;
1819
1824
  /**
1820
1825
  * Where a created-but-unlinked upload is reported to live, e.g.
1821
1826
  * "your Files (War Room folder)". Keeps the loud-outcome copy honest.
@@ -1849,7 +1854,7 @@ interface AssociationCaptureToolbarProps {
1849
1854
  /** The body the drop target wraps (the list of attached things). */
1850
1855
  children?: ReactNode;
1851
1856
  }
1852
- declare function AssociationCaptureToolbar({ attach, uploadFolderPath, uploadVisibility, uploadLocationLabel, attachRetryLabel, filePicker, showActions, showToolbar, extraActions, organizationId, openCreatedDocument, className, children, }: AssociationCaptureToolbarProps): react.JSX.Element;
1857
+ declare function AssociationCaptureToolbar({ attach, uploadFolderPath, uploadPublishedToWeb, uploadShownTo, uploadLocationLabel, attachRetryLabel, filePicker, showActions, showToolbar, extraActions, organizationId, openCreatedDocument, className, children, }: AssociationCaptureToolbarProps): react.JSX.Element;
1853
1858
  /** The dense toolbar button (exported so hosts' extraActions match). */
1854
1859
  declare function CaptureToolbarAction({ icon: Icon, label, onClick, disabled, spinning, }: {
1855
1860
  icon: (props: IconProps) => ReactNode;
@@ -2647,7 +2647,7 @@ function createAssociationsService(deps) {
2647
2647
  * Like `listForTargets`, but VISIBILITY-AWARE: an edge is returned when
2648
2648
  * the caller EITHER shares org access to it OR can VIEW its target via
2649
2649
  * the canonical row-level authorization truth `iam.has_access(target,
2650
- * 'viewer')` — honoring `visibility='public'`/`'link'`, share grants,
2650
+ * 'viewer')` — honoring published-to-the-web rows, Anyone links, share grants,
2651
2651
  * container memberships, and reachability. A strict SUPERSET of
2652
2652
  * `listForTargets` access; a stranger with no grant on a private target
2653
2653
  * still gets nothing. Use for reading the members of a SHAREABLE