@crossworks/client-types 0.232.82 → 0.232.83

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.ts +16 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossworks/client-types",
3
- "version": "0.232.82",
3
+ "version": "0.232.83",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
package/src/index.ts CHANGED
@@ -260,7 +260,12 @@ export interface AgentAvatarDTO {
260
260
  seed: string;
261
261
  /** Avatar-builder component choices layered over the seed: component name →
262
262
  * pinned variant, or null to hide an optional component. Stale entries
263
- * (from another style) are ignored at render time. Absent = seed only. */
263
+ * (from another style) are ignored at render time.
264
+ *
265
+ * READ: absent = seed only. WRITE protocol (agents create/patch): an
266
+ * ABSENT parts key means "keep what's stored" — so a parts-unaware client
267
+ * can never wipe pins — `{}` is the explicit clear, and a non-empty map
268
+ * replaces. Every client that writes avatars must send `{}` to clear. */
264
269
  parts?: Record<string, string | null>;
265
270
  }
266
271
 
@@ -930,16 +935,18 @@ export type ProfilePreferences = {
930
935
  * so an avatar still renders. Personal — two admins share the brain's style
931
936
  * but never the same avatar. */
932
937
  avatarSeed?: string;
933
- /** Avatar-builder component choices for THIS user's avatar, layered over the
934
- * seed: component name → pinned variant, or null to hide an optional
935
- * component. Personal, like avatarSeed. Stale entries (saved under another
936
- * brain style) are ignored at render time. Absent/empty = seed only. */
938
+ /** Avatar-builder component choices for THIS login's avatar, layered over
939
+ * the seed: component name → pinned variant, or null to hide an optional
940
+ * component. Per-login (the profile routes address the ACTOR's row). Stale
941
+ * entries (saved under another brain style) are ignored at render time.
942
+ * READ: absent/empty = seed only. WRITE (profile PUT): applied only when
943
+ * SENT; `{}` clears. */
937
944
  avatarParts?: Record<string, string | null>;
938
- /** Content-addressed storage key of THIS user's uploaded profile PHOTO —
945
+ /** Content-addressed storage key of THIS login's uploaded profile PHOTO —
939
946
  * when set, clients show the photo instead of the generated avatar
940
- * (photo → generated seed → initials). Personal, like avatarSeed; set only
941
- * from Settings → Profile, never for agents. Served privately by
942
- * GET /api/profile/photo (cookie or asset token). */
947
+ * (photo → generated seed → initials). Per-login (the photo routes address
948
+ * the ACTOR's row); set only from Settings → Profile, never for agents.
949
+ * Served privately by GET /api/profile/photo (cookie or asset token). */
943
950
  avatarPhotoKey?: string;
944
951
  /** Content-Type of the photo bytes (png/jpeg/webp — never SVG). */
945
952
  avatarPhotoType?: string;