@crossworks/client-types 0.232.81 → 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 +20 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossworks/client-types",
3
- "version": "0.232.81",
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,11 +935,21 @@ 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>;
945
+ /** Content-addressed storage key of THIS login's uploaded profile PHOTO —
946
+ * when set, clients show the photo instead of the generated avatar
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). */
950
+ avatarPhotoKey?: string;
951
+ /** Content-Type of the photo bytes (png/jpeg/webp — never SVG). */
952
+ avatarPhotoType?: string;
938
953
  /** Slug of the responder agent whose Telegram bot delivers event reminders.
939
954
  * Unset → the reminder worker falls back to the most-recently-active allowed
940
955
  * DM (whichever bot you last messaged). Set it to pin reminders to one