@oxy.so/bloom 7.1.2 → 7.1.3

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 (236) hide show
  1. package/assets/character-runtime/README.md +114 -19
  2. package/assets/character-runtime/authored-parts.mjs +754 -0
  3. package/assets/character-runtime/catalog-parts.mjs +362 -0
  4. package/assets/character-runtime/character-recipe.mjs +247 -0
  5. package/assets/character-runtime/clippo-geometry.mjs +679 -0
  6. package/assets/character-runtime/controller-mode.mjs +208 -0
  7. package/assets/character-runtime/cyclops-geometry.mjs +180 -0
  8. package/assets/character-runtime/legacy-engine.mjs +406 -54
  9. package/assets/character-runtime/legacy-geometry.mjs +242 -85
  10. package/assets/character-runtime/legacy-worker.mjs +82 -23
  11. package/assets/character-runtime/managed-avatar.mjs +12 -17
  12. package/assets/character-runtime/migrated-contours.mjs +2067 -0
  13. package/assets/character-runtime/migrated-faces.mjs +59 -0
  14. package/assets/character-runtime/pose-transition.mjs +523 -0
  15. package/assets/character-runtime/preparation-cache.mjs +60 -0
  16. package/assets/character-runtime/render-budget.mjs +5 -3
  17. package/assets/character-runtime/render-errors.mjs +180 -0
  18. package/assets/character-runtime/resolution.mjs +10 -0
  19. package/assets/character-runtime/runtime.mjs +744 -295
  20. package/assets/character-runtime/sha256.mjs +44 -0
  21. package/assets/character-runtime/shared-programs.mjs +534 -0
  22. package/assets/character-runtime/shared-surface.mjs +490 -0
  23. package/assets/character-runtime/shared-textures.mjs +420 -0
  24. package/assets/character-runtime/thumbnails/eyes/todd.png +0 -0
  25. package/docs/agent-avatar.mdx +45 -8
  26. package/docs/agent-creator.mdx +13 -3
  27. package/lib/commonjs/agent-avatar/AgentAvatar.js +1 -1
  28. package/lib/commonjs/agent-avatar/AgentAvatar.js.map +1 -1
  29. package/lib/commonjs/agent-avatar/CharacterAvatar.js +2 -1
  30. package/lib/commonjs/agent-avatar/CharacterAvatar.js.map +1 -1
  31. package/lib/commonjs/agent-avatar/character-colors.js +19 -0
  32. package/lib/commonjs/agent-avatar/character-colors.js.map +1 -0
  33. package/lib/commonjs/agent-avatar/character-shapes.js +106 -0
  34. package/lib/commonjs/agent-avatar/character-shapes.js.map +1 -0
  35. package/lib/commonjs/agent-avatar/config-character.js +4 -0
  36. package/lib/commonjs/agent-avatar/config-character.js.map +1 -1
  37. package/lib/commonjs/agent-avatar/legacy-recipe.js +19 -6
  38. package/lib/commonjs/agent-avatar/legacy-recipe.js.map +1 -1
  39. package/lib/commonjs/agent-creator/AgentCreatorBase.js +67 -107
  40. package/lib/commonjs/agent-creator/AgentCreatorBase.js.map +1 -1
  41. package/lib/commonjs/agent-creator/CharacterControls.js +23 -5
  42. package/lib/commonjs/agent-creator/CharacterControls.js.map +1 -1
  43. package/lib/commonjs/agent-creator/ClippoArtwork.js +63 -0
  44. package/lib/commonjs/agent-creator/ClippoArtwork.js.map +1 -0
  45. package/lib/commonjs/agent-creator/CyclopsArtwork.js +45 -0
  46. package/lib/commonjs/agent-creator/CyclopsArtwork.js.map +1 -0
  47. package/lib/commonjs/agent-creator/EmotionPicker.js +8 -1
  48. package/lib/commonjs/agent-creator/EmotionPicker.js.map +1 -1
  49. package/lib/commonjs/agent-creator/ShapeSilhouette.js +8 -1
  50. package/lib/commonjs/agent-creator/ShapeSilhouette.js.map +1 -1
  51. package/lib/commonjs/agent-creator/ToddArtwork.js +29 -0
  52. package/lib/commonjs/agent-creator/ToddArtwork.js.map +1 -0
  53. package/lib/commonjs/agent-creator/constants.js +16 -17
  54. package/lib/commonjs/agent-creator/constants.js.map +1 -1
  55. package/lib/commonjs/agent-creator/messages.js +1 -1
  56. package/lib/commonjs/agent-creator/messages.js.map +1 -1
  57. package/lib/commonjs/locale/translations/ar.js +1 -1
  58. package/lib/commonjs/locale/translations/ar.js.map +1 -1
  59. package/lib/commonjs/locale/translations/bn.js +1 -1
  60. package/lib/commonjs/locale/translations/bn.js.map +1 -1
  61. package/lib/commonjs/locale/translations/ca.js +1 -1
  62. package/lib/commonjs/locale/translations/ca.js.map +1 -1
  63. package/lib/commonjs/locale/translations/de.js +1 -1
  64. package/lib/commonjs/locale/translations/de.js.map +1 -1
  65. package/lib/commonjs/locale/translations/es.js +1 -1
  66. package/lib/commonjs/locale/translations/es.js.map +1 -1
  67. package/lib/commonjs/locale/translations/fr.js +1 -1
  68. package/lib/commonjs/locale/translations/fr.js.map +1 -1
  69. package/lib/commonjs/locale/translations/hi.js +1 -1
  70. package/lib/commonjs/locale/translations/hi.js.map +1 -1
  71. package/lib/commonjs/locale/translations/id.js +1 -1
  72. package/lib/commonjs/locale/translations/id.js.map +1 -1
  73. package/lib/commonjs/locale/translations/it.js +1 -1
  74. package/lib/commonjs/locale/translations/it.js.map +1 -1
  75. package/lib/commonjs/locale/translations/ja.js +1 -1
  76. package/lib/commonjs/locale/translations/ja.js.map +1 -1
  77. package/lib/commonjs/locale/translations/pt.js +1 -1
  78. package/lib/commonjs/locale/translations/pt.js.map +1 -1
  79. package/lib/commonjs/locale/translations/ru.js +1 -1
  80. package/lib/commonjs/locale/translations/ru.js.map +1 -1
  81. package/lib/commonjs/locale/translations/tr.js +1 -1
  82. package/lib/commonjs/locale/translations/tr.js.map +1 -1
  83. package/lib/commonjs/locale/translations/zh.js +1 -1
  84. package/lib/commonjs/locale/translations/zh.js.map +1 -1
  85. package/lib/module/agent-avatar/AgentAvatar.js +1 -1
  86. package/lib/module/agent-avatar/AgentAvatar.js.map +1 -1
  87. package/lib/module/agent-avatar/CharacterAvatar.js +2 -1
  88. package/lib/module/agent-avatar/CharacterAvatar.js.map +1 -1
  89. package/lib/module/agent-avatar/character-colors.js +15 -0
  90. package/lib/module/agent-avatar/character-colors.js.map +1 -0
  91. package/lib/module/agent-avatar/character-shapes.js +97 -0
  92. package/lib/module/agent-avatar/character-shapes.js.map +1 -0
  93. package/lib/module/agent-avatar/config-character.js +4 -0
  94. package/lib/module/agent-avatar/config-character.js.map +1 -1
  95. package/lib/module/agent-avatar/legacy-recipe.js +19 -6
  96. package/lib/module/agent-avatar/legacy-recipe.js.map +1 -1
  97. package/lib/module/agent-creator/AgentCreatorBase.js +69 -109
  98. package/lib/module/agent-creator/AgentCreatorBase.js.map +1 -1
  99. package/lib/module/agent-creator/CharacterControls.js +24 -6
  100. package/lib/module/agent-creator/CharacterControls.js.map +1 -1
  101. package/lib/module/agent-creator/ClippoArtwork.js +59 -0
  102. package/lib/module/agent-creator/ClippoArtwork.js.map +1 -0
  103. package/lib/module/agent-creator/CyclopsArtwork.js +41 -0
  104. package/lib/module/agent-creator/CyclopsArtwork.js.map +1 -0
  105. package/lib/module/agent-creator/EmotionPicker.js +8 -1
  106. package/lib/module/agent-creator/EmotionPicker.js.map +1 -1
  107. package/lib/module/agent-creator/ShapeSilhouette.js +8 -1
  108. package/lib/module/agent-creator/ShapeSilhouette.js.map +1 -1
  109. package/lib/module/agent-creator/ToddArtwork.js +25 -0
  110. package/lib/module/agent-creator/ToddArtwork.js.map +1 -0
  111. package/lib/module/agent-creator/constants.js +8 -16
  112. package/lib/module/agent-creator/constants.js.map +1 -1
  113. package/lib/module/agent-creator/messages.js +1 -1
  114. package/lib/module/agent-creator/messages.js.map +1 -1
  115. package/lib/module/locale/translations/ar.js +1 -1
  116. package/lib/module/locale/translations/ar.js.map +1 -1
  117. package/lib/module/locale/translations/bn.js +1 -1
  118. package/lib/module/locale/translations/bn.js.map +1 -1
  119. package/lib/module/locale/translations/ca.js +1 -1
  120. package/lib/module/locale/translations/ca.js.map +1 -1
  121. package/lib/module/locale/translations/de.js +1 -1
  122. package/lib/module/locale/translations/de.js.map +1 -1
  123. package/lib/module/locale/translations/es.js +1 -1
  124. package/lib/module/locale/translations/es.js.map +1 -1
  125. package/lib/module/locale/translations/fr.js +1 -1
  126. package/lib/module/locale/translations/fr.js.map +1 -1
  127. package/lib/module/locale/translations/hi.js +1 -1
  128. package/lib/module/locale/translations/hi.js.map +1 -1
  129. package/lib/module/locale/translations/id.js +1 -1
  130. package/lib/module/locale/translations/id.js.map +1 -1
  131. package/lib/module/locale/translations/it.js +1 -1
  132. package/lib/module/locale/translations/it.js.map +1 -1
  133. package/lib/module/locale/translations/ja.js +1 -1
  134. package/lib/module/locale/translations/ja.js.map +1 -1
  135. package/lib/module/locale/translations/pt.js +1 -1
  136. package/lib/module/locale/translations/pt.js.map +1 -1
  137. package/lib/module/locale/translations/ru.js +1 -1
  138. package/lib/module/locale/translations/ru.js.map +1 -1
  139. package/lib/module/locale/translations/tr.js +1 -1
  140. package/lib/module/locale/translations/tr.js.map +1 -1
  141. package/lib/module/locale/translations/zh.js +1 -1
  142. package/lib/module/locale/translations/zh.js.map +1 -1
  143. package/lib/typescript/commonjs/agent-avatar/CharacterAvatar.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/agent-avatar/character-colors.d.ts +13 -0
  145. package/lib/typescript/commonjs/agent-avatar/character-colors.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/agent-avatar/character-shapes.d.ts +19 -0
  147. package/lib/typescript/commonjs/agent-avatar/character-shapes.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/agent-avatar/config-character.d.ts +4 -0
  149. package/lib/typescript/commonjs/agent-avatar/config-character.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts +2 -10
  151. package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/agent-creator/AgentCreatorBase.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts +2 -1
  154. package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/agent-creator/ClippoArtwork.d.ts +6 -0
  156. package/lib/typescript/commonjs/agent-creator/ClippoArtwork.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/agent-creator/CyclopsArtwork.d.ts +5 -0
  158. package/lib/typescript/commonjs/agent-creator/CyclopsArtwork.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts +1 -0
  160. package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/agent-creator/ShapeSilhouette.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/agent-creator/ToddArtwork.d.ts +6 -0
  163. package/lib/typescript/commonjs/agent-creator/ToddArtwork.d.ts.map +1 -0
  164. package/lib/typescript/commonjs/agent-creator/constants.d.ts +7 -15
  165. package/lib/typescript/commonjs/agent-creator/constants.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/agent-creator/messages.d.ts.map +1 -1
  167. package/lib/typescript/module/agent-avatar/CharacterAvatar.d.ts.map +1 -1
  168. package/lib/typescript/module/agent-avatar/character-colors.d.ts +13 -0
  169. package/lib/typescript/module/agent-avatar/character-colors.d.ts.map +1 -0
  170. package/lib/typescript/module/agent-avatar/character-shapes.d.ts +19 -0
  171. package/lib/typescript/module/agent-avatar/character-shapes.d.ts.map +1 -0
  172. package/lib/typescript/module/agent-avatar/config-character.d.ts +4 -0
  173. package/lib/typescript/module/agent-avatar/config-character.d.ts.map +1 -1
  174. package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts +2 -10
  175. package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts.map +1 -1
  176. package/lib/typescript/module/agent-creator/AgentCreatorBase.d.ts.map +1 -1
  177. package/lib/typescript/module/agent-creator/CharacterControls.d.ts +2 -1
  178. package/lib/typescript/module/agent-creator/CharacterControls.d.ts.map +1 -1
  179. package/lib/typescript/module/agent-creator/ClippoArtwork.d.ts +6 -0
  180. package/lib/typescript/module/agent-creator/ClippoArtwork.d.ts.map +1 -0
  181. package/lib/typescript/module/agent-creator/CyclopsArtwork.d.ts +5 -0
  182. package/lib/typescript/module/agent-creator/CyclopsArtwork.d.ts.map +1 -0
  183. package/lib/typescript/module/agent-creator/EmotionPicker.d.ts +1 -0
  184. package/lib/typescript/module/agent-creator/EmotionPicker.d.ts.map +1 -1
  185. package/lib/typescript/module/agent-creator/ShapeSilhouette.d.ts.map +1 -1
  186. package/lib/typescript/module/agent-creator/ToddArtwork.d.ts +6 -0
  187. package/lib/typescript/module/agent-creator/ToddArtwork.d.ts.map +1 -0
  188. package/lib/typescript/module/agent-creator/constants.d.ts +7 -15
  189. package/lib/typescript/module/agent-creator/constants.d.ts.map +1 -1
  190. package/lib/typescript/module/agent-creator/messages.d.ts.map +1 -1
  191. package/package.json +1 -1
  192. package/src/agent-avatar/AgentAvatar.tsx +1 -1
  193. package/src/agent-avatar/CharacterAvatar.tsx +4 -1
  194. package/src/agent-avatar/character-colors.ts +12 -0
  195. package/src/agent-avatar/character-shapes.ts +122 -0
  196. package/src/agent-avatar/config-character.ts +39 -6
  197. package/src/agent-avatar/legacy-recipe.ts +34 -6
  198. package/src/agent-creator/AgentCreatorBase.tsx +121 -152
  199. package/src/agent-creator/CharacterControls.tsx +39 -14
  200. package/src/agent-creator/ClippoArtwork.tsx +49 -0
  201. package/src/agent-creator/CyclopsArtwork.tsx +27 -0
  202. package/src/agent-creator/EmotionPicker.tsx +55 -16
  203. package/src/agent-creator/ShapeSilhouette.tsx +16 -1
  204. package/src/agent-creator/ToddArtwork.tsx +24 -0
  205. package/src/agent-creator/constants.ts +47 -14
  206. package/src/agent-creator/messages.ts +2 -1
  207. package/src/locale/translations/ar.ts +1 -1
  208. package/src/locale/translations/bn.ts +1 -1
  209. package/src/locale/translations/ca.ts +1 -1
  210. package/src/locale/translations/de.ts +1 -1
  211. package/src/locale/translations/es.ts +1 -1
  212. package/src/locale/translations/fr.ts +1 -1
  213. package/src/locale/translations/hi.ts +1 -1
  214. package/src/locale/translations/id.ts +1 -1
  215. package/src/locale/translations/it.ts +1 -1
  216. package/src/locale/translations/ja.ts +1 -1
  217. package/src/locale/translations/pt.ts +1 -1
  218. package/src/locale/translations/ru.ts +1 -1
  219. package/src/locale/translations/tr.ts +1 -1
  220. package/src/locale/translations/zh.ts +1 -1
  221. package/src/__tests__/support/adoption-matrix.ts +0 -683
  222. package/src/__tests__/support/card-surface.ts +0 -25
  223. package/src/__tests__/support/collision-fixture-barrel.ts +0 -20
  224. package/src/__tests__/support/commerce-harness.tsx +0 -97
  225. package/src/__tests__/support/composite.ts +0 -68
  226. package/src/__tests__/support/constructed-style-sheets.ts +0 -68
  227. package/src/__tests__/support/messages-in.ts +0 -10
  228. package/src/__tests__/support/press-host.ts +0 -30
  229. package/src/__tests__/support/rendered-style.ts +0 -99
  230. package/src/__tests__/support/unread-hook-fixture.ts +0 -33
  231. package/src/__tests__/support/worklet-capture-fixture.tsx +0 -28
  232. package/src/agent-avatar/__tests__/artwork-golden.json +0 -774
  233. package/src/agent-creator/__tests__/support/character-runtime-fixture.tsx +0 -26
  234. package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +0 -9346
  235. package/src/theme/__tests__/__fixtures__/tonal-glass-primary-failures.json +0 -69
  236. package/src/theme/__tests__/fixtures/color-engine-golden.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","useEffect","useMemo","useRef","useState","AccessibilityInfo","AppState","Platform","useReducedMotion","useMessages","StyledView","Text","CharacterRuntimeContext","characterHtml","scriptJson","loadCharacterRuntime","characterWebView","legacyRecipe","AGENT_AVATAR_MESSAGES","jsx","_jsx","WebCharacter","runtimeUrl","value","onError","reportCapabilities","report","current","host","controller","latest","fail","element","document","stopped","started","canvas","createElement","setAttribute","Object","assign","style","width","height","display","touchAction","appendChild","start","module","instance","createAvatar","onCapabilities","info","dispose","update","observer","IntersectionObserver","entries","some","entry","isIntersecting","observe","disconnect","remove","ref","flex","NativeCharacter","WebView","initial","source","html","baseUrl","send","injectJavaScript","backgroundColor","scrollEnabled","javaScriptEnabled","originWhitelist","onMessage","event","nativeEvent","data","startsWith","JSON","parse","slice","CharacterAvatar","props","messages","locale","initialReduced","reduced","setReduced","active","setActive","currentState","failed","setFailed","config","paused","portrait","workingKey","reactionKey","entranceKey","workingCycles","interactive","size","motion","addEventListener","state","next","media","OS","window","matchMedia","undefined","change","matches","removeEventListener","character","legacy","preset","Renderer","className","accessible","accessibilityRole","accessibilityLabel","label","testID","children","numberOfLines","fontSize","unavailable"],"sourceRoot":"../../../src","sources":["agent-avatar/CharacterAvatar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useContext","useEffect","useMemo","useRef","useState","AccessibilityInfo","AppState","Platform","useReducedMotion","useMessages","StyledView","Text","CharacterRuntimeContext","characterHtml","scriptJson","loadCharacterRuntime","characterWebView","legacyRecipe","isMigratedCharacterShape","AGENT_AVATAR_MESSAGES","jsx","_jsx","WebCharacter","runtimeUrl","value","onError","reportCapabilities","report","current","host","controller","latest","fail","element","document","stopped","started","canvas","createElement","setAttribute","Object","assign","style","width","height","display","touchAction","appendChild","start","module","instance","createAvatar","onCapabilities","info","dispose","update","observer","IntersectionObserver","entries","some","entry","isIntersecting","observe","disconnect","remove","ref","flex","NativeCharacter","WebView","initial","source","html","baseUrl","send","injectJavaScript","backgroundColor","scrollEnabled","javaScriptEnabled","originWhitelist","onMessage","event","nativeEvent","data","startsWith","JSON","parse","slice","CharacterAvatar","props","messages","locale","initialReduced","reduced","setReduced","active","setActive","currentState","failed","setFailed","config","paused","portrait","workingKey","reactionKey","entranceKey","workingCycles","interactive","size","motion","addEventListener","state","next","media","OS","window","matchMedia","undefined","change","matches","removeEventListener","character","legacy","preset","selections","shape","Renderer","className","accessible","accessibilityRole","accessibilityLabel","label","testID","children","numberOfLines","fontSize","unavailable"],"sourceRoot":"../../../src","sources":["agent-avatar/CharacterAvatar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ /** RGB swatches returned by the recovered engine's Color catalog. */
4
+ export const CHARACTER_COLORS = {
5
+ pink: '#fa70ab',
6
+ orchid: '#dd6adc',
7
+ violet: '#a25bff',
8
+ blue: '#4778ff',
9
+ cyan: '#00b1ff',
10
+ teal: '#04bb9f',
11
+ lime: '#b6d80b',
12
+ yellow: '#ffcc38',
13
+ coral: '#ff8066'
14
+ };
15
+ //# sourceMappingURL=character-colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CHARACTER_COLORS","pink","orchid","violet","blue","cyan","teal","lime","yellow","coral"],"sourceRoot":"../../../src","sources":["agent-avatar/character-colors.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,gBAAgB,GAAG;EAC9BC,IAAI,EAAE,SAAS;EACfC,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE;AACT,CAAU","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ import { avatarHex } from "./avatar-color.js";
4
+ export const NATIVE_CHARACTER_SHAPES = [['clippo', 'Clippo'], ['todd', 'Todd'], ['circle', 'Circle'], ['rounded_triangle', 'Rounded triangle'], ['capsule', 'Capsule'], ['rounded_head_two_ears', 'Rounded head with two ears'], ['six_lobed_flower', 'Six lobed flower'], ['heart', 'Heart'], ['four_lobed_butterfly', 'Four lobed butterfly'], ['circle_two_ears', 'Circle with two ears'], ['twelve_scalloped_rosette', 'Twelve scalloped rosette'], ['rounded_cube', 'Hexagon'], ['rounded_diamond', 'Rounded diamond']];
5
+ export const MIGRATED_CHARACTER_SHAPES = [['slender', 'Slender'], ['pocket', 'Pocket'], ['petal', 'Petal'], ['star', 'Star'], ['cloud', 'Cloud'], ['shield', 'Shield'], ['pebble', 'Pebble'], ['squircle', 'Squircle']];
6
+ export const CHARACTER_SHAPES = [...NATIVE_CHARACTER_SHAPES, ...MIGRATED_CHARACTER_SHAPES];
7
+ export function isMigratedCharacterShape(id) {
8
+ return MIGRATED_CHARACTER_SHAPES.some(([shape]) => shape === id);
9
+ }
10
+
11
+ /** The saved paper/blob fields remain readable; canonical shape IDs own new edits. */
12
+ export function currentCharacterShape(config) {
13
+ if (config.character?.selections?.shape) return config.character.selections.shape;
14
+ const shape = config.family === 'fold' ? config.foldShape : config.shape;
15
+ const equivalent = {
16
+ triangle: 'rounded_triangle',
17
+ flower: 'six_lobed_flower',
18
+ diamond: 'rounded_diamond'
19
+ };
20
+ return equivalent[shape] ?? shape;
21
+ }
22
+
23
+ /** Geometry-only view of one of the eight migrated contours. */
24
+ export function characterShapeGeometry(config) {
25
+ const shape = config.character?.selections?.shape;
26
+ if (!isMigratedCharacterShape(shape)) return config;
27
+ return shape === 'pebble' || shape === 'squircle' ? {
28
+ ...config,
29
+ family: 'blob',
30
+ shape
31
+ } : {
32
+ ...config,
33
+ family: 'fold',
34
+ foldShape: shape
35
+ };
36
+ }
37
+
38
+ /** Retain effective authored parts while preparing the next body. An old recipe
39
+ * is promoted once, with its actual paint and contour rather than Felipe defaults.
40
+ */
41
+ export function materializeCharacter(config, selected = {}) {
42
+ const saved = config.character;
43
+ if (!saved || saved.preset === 'bloom') return {
44
+ ...saved,
45
+ preset: 'legacy',
46
+ ...(saved?.bodyColor ? {
47
+ bodyColor: saved.bodyColor
48
+ } : !saved?.selections?.color ? {
49
+ bodyColor: avatarHex(config)
50
+ } : {}),
51
+ selections: {
52
+ shape: currentCharacterShape(config),
53
+ eyes: 'oval',
54
+ eyewear: 'none',
55
+ accessory: 'none',
56
+ ...saved?.selections
57
+ }
58
+ };
59
+ const defaults = {};
60
+ for (const part of ['eyes', 'eyewear', 'accessory']) if (selected[part]) defaults[part] = selected[part];
61
+ // These virtual parts are absent from the backing native catalog.
62
+ if (!defaults.eyes && saved.preset === 'clippo') defaults.eyes = 'clippo';
63
+ if (!defaults.eyes && saved.preset === 'lime_frog') defaults.eyes = 'todd';
64
+ if (!defaults.accessory && saved.preset === 'blue_beret') defaults.accessory = 'felipe_beret';
65
+ return {
66
+ ...saved,
67
+ selections: {
68
+ ...defaults,
69
+ ...saved.selections
70
+ }
71
+ };
72
+ }
73
+
74
+ /** All 21 bodies change the same character recipe. Named paint and explicit RGB
75
+ * keep their precedence; a body never supplies a replacement color or face.
76
+ */
77
+ export function createConfigForShape(config, shape, selected = {}) {
78
+ if (!CHARACTER_SHAPES.some(([id]) => id === shape)) throw new Error('Unknown character shape.');
79
+ const character = materializeCharacter(config, selected);
80
+ if (!character.bodyColor && !character.selections?.color) {
81
+ if (character.preset === 'clippo') character.bodyColor = '#999b9d';else if (selected.color) character.selections = {
82
+ ...character.selections,
83
+ color: selected.color
84
+ };else if (selected.bodyColor) character.bodyColor = selected.bodyColor;
85
+ }
86
+ return characterShapeGeometry({
87
+ ...config,
88
+ character: {
89
+ ...character,
90
+ selections: {
91
+ ...character.selections,
92
+ shape
93
+ }
94
+ }
95
+ });
96
+ }
97
+ //# sourceMappingURL=character-shapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["avatarHex","NATIVE_CHARACTER_SHAPES","MIGRATED_CHARACTER_SHAPES","CHARACTER_SHAPES","isMigratedCharacterShape","id","some","shape","currentCharacterShape","config","character","selections","family","foldShape","equivalent","triangle","flower","diamond","characterShapeGeometry","materializeCharacter","selected","saved","preset","bodyColor","color","eyes","eyewear","accessory","defaults","part","createConfigForShape","Error"],"sourceRoot":"../../../src","sources":["agent-avatar/character-shapes.ts"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,10 @@ export function parseCharacterConfig(value) {
13
13
  const result = {
14
14
  preset: candidate.preset
15
15
  };
16
+ if (candidate.eyeSpacing !== undefined) {
17
+ if (typeof candidate.eyeSpacing !== 'number' || !Number.isFinite(candidate.eyeSpacing) || candidate.eyeSpacing < 0.5 || candidate.eyeSpacing > 1.5) throw new Error('Invalid character eye spacing.');
18
+ result.eyeSpacing = candidate.eyeSpacing;
19
+ }
16
20
  if (candidate.bodyColor !== undefined) {
17
21
  if (typeof candidate.bodyColor !== 'string' || candidate.bodyColor.length !== 7 || !/^#[0-9a-f]{6}$/i.test(candidate.bodyColor)) throw new Error('Invalid character body color.');
18
22
  result.bodyColor = candidate.bodyColor.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"names":["categories","validId","value","length","parseCharacterConfig","Array","isArray","Error","candidate","preset","result","bodyColor","undefined","test","toLowerCase","selections","category","id","Object","entries","includes"],"sourceRoot":"../../../src","sources":["agent-avatar/config-character.ts"],"mappings":";;AAAA;;AAUA,MAAMA,UAA8C,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;AACzG,MAAMC,OAAO,GAAIC,KAAc,IAC7B,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACC,MAAM,GAAG,CAAC,IAAID,KAAK,CAACC,MAAM,IAAI,EAAE;;AAErE;AACA,OAAO,SAASC,oBAAoBA,CAACF,KAAc,EAAyB;EAC1E,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAC7D,MAAM,IAAIK,KAAK,CAAC,kCAAkC,CAAC;EACrD,MAAMC,SAAS,GAAGN,KAAgC;EAClD,IAAI,CAACD,OAAO,CAACO,SAAS,CAACC,MAAM,CAAC,EAAE,MAAM,IAAIF,KAAK,CAAC,2BAA2B,CAAC;EAC5E,MAAMG,MAA6B,GAAG;IAAED,MAAM,EAAED,SAAS,CAACC;EAAO,CAAC;EAClE,IAAID,SAAS,CAACG,SAAS,KAAKC,SAAS,EAAE;IACrC,IAAI,OAAOJ,SAAS,CAACG,SAAS,KAAK,QAAQ,IAAIH,SAAS,CAACG,SAAS,CAACR,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAACU,IAAI,CAACL,SAAS,CAACG,SAAS,CAAC,EAC7H,MAAM,IAAIJ,KAAK,CAAC,+BAA+B,CAAC;IAClDG,MAAM,CAACC,SAAS,GAAGH,SAAS,CAACG,SAAS,CAACG,WAAW,CAAC,CAAC;EACtD;EACA,IAAIN,SAAS,CAACO,UAAU,KAAKH,SAAS,EAAE;IACtC,IAAI,CAACJ,SAAS,CAACO,UAAU,IAAI,OAAOP,SAAS,CAACO,UAAU,KAAK,QAAQ,IAAIV,KAAK,CAACC,OAAO,CAACE,SAAS,CAACO,UAAU,CAAC,EAC1G,MAAM,IAAIR,KAAK,CAAC,+BAA+B,CAAC;IAClD,MAAMQ,UAA4D,GAAG,CAAC,CAAC;IACvE,KAAK,MAAM,CAACC,QAAQ,EAAEC,EAAE,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACX,SAAS,CAACO,UAAU,CAAC,EAAE;MACjE,IAAI,CAACf,UAAU,CAACoB,QAAQ,CAACJ,QAAmC,CAAC,IAAI,CAACf,OAAO,CAACgB,EAAE,CAAC,EAC3E,MAAM,IAAIV,KAAK,CAAC,8BAA8B,CAAC;MACjDQ,UAAU,CAACC,QAAQ,CAA4B,GAAGC,EAAE;IACtD;IACAP,MAAM,CAACK,UAAU,GAAGA,UAAU;EAChC;EACA,IAAI,OAAO,IAAIP,SAAS,EAAE,MAAM,IAAID,KAAK,CAAC,0CAA0C,CAAC;EACrF,OAAOG,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["categories","validId","value","length","parseCharacterConfig","Array","isArray","Error","candidate","preset","result","eyeSpacing","undefined","Number","isFinite","bodyColor","test","toLowerCase","selections","category","id","Object","entries","includes"],"sourceRoot":"../../../src","sources":["agent-avatar/config-character.ts"],"mappings":";;AAAA;;AAeA,MAAMA,UAA8C,GAAG,CACrD,OAAO,EACP,OAAO,EACP,MAAM,EACN,SAAS,EACT,WAAW,CACZ;AACD,MAAMC,OAAO,GAAIC,KAAc,IAC7B,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACC,MAAM,GAAG,CAAC,IAAID,KAAK,CAACC,MAAM,IAAI,EAAE;;AAErE;AACA,OAAO,SAASC,oBAAoBA,CAACF,KAAc,EAAyB;EAC1E,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAC7D,MAAM,IAAIK,KAAK,CAAC,kCAAkC,CAAC;EACrD,MAAMC,SAAS,GAAGN,KAAgC;EAClD,IAAI,CAACD,OAAO,CAACO,SAAS,CAACC,MAAM,CAAC,EAAE,MAAM,IAAIF,KAAK,CAAC,2BAA2B,CAAC;EAC5E,MAAMG,MAA6B,GAAG;IAAED,MAAM,EAAED,SAAS,CAACC;EAAO,CAAC;EAClE,IAAID,SAAS,CAACG,UAAU,KAAKC,SAAS,EAAE;IACtC,IACE,OAAOJ,SAAS,CAACG,UAAU,KAAK,QAAQ,IACxC,CAACE,MAAM,CAACC,QAAQ,CAACN,SAAS,CAACG,UAAU,CAAC,IACtCH,SAAS,CAACG,UAAU,GAAG,GAAG,IAC1BH,SAAS,CAACG,UAAU,GAAG,GAAG,EAE1B,MAAM,IAAIJ,KAAK,CAAC,gCAAgC,CAAC;IACnDG,MAAM,CAACC,UAAU,GAAGH,SAAS,CAACG,UAAU;EAC1C;EACA,IAAIH,SAAS,CAACO,SAAS,KAAKH,SAAS,EAAE;IACrC,IACE,OAAOJ,SAAS,CAACO,SAAS,KAAK,QAAQ,IACvCP,SAAS,CAACO,SAAS,CAACZ,MAAM,KAAK,CAAC,IAChC,CAAC,iBAAiB,CAACa,IAAI,CAACR,SAAS,CAACO,SAAS,CAAC,EAE5C,MAAM,IAAIR,KAAK,CAAC,+BAA+B,CAAC;IAClDG,MAAM,CAACK,SAAS,GAAGP,SAAS,CAACO,SAAS,CAACE,WAAW,CAAC,CAAC;EACtD;EACA,IAAIT,SAAS,CAACU,UAAU,KAAKN,SAAS,EAAE;IACtC,IACE,CAACJ,SAAS,CAACU,UAAU,IACrB,OAAOV,SAAS,CAACU,UAAU,KAAK,QAAQ,IACxCb,KAAK,CAACC,OAAO,CAACE,SAAS,CAACU,UAAU,CAAC,EAEnC,MAAM,IAAIX,KAAK,CAAC,+BAA+B,CAAC;IAClD,MAAMW,UAA4D,GAAG,CAAC,CAAC;IACvE,KAAK,MAAM,CAACC,QAAQ,EAAEC,EAAE,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACd,SAAS,CAACU,UAAU,CAAC,EAAE;MACjE,IACE,CAAClB,UAAU,CAACuB,QAAQ,CAACJ,QAAmC,CAAC,IACzD,CAAClB,OAAO,CAACmB,EAAE,CAAC,EAEZ,MAAM,IAAIb,KAAK,CAAC,8BAA8B,CAAC;MACjDW,UAAU,CAACC,QAAQ,CAA4B,GAAGC,EAAE;IACtD;IACAV,MAAM,CAACQ,UAAU,GAAGA,UAAU;EAChC;EACA,IAAI,OAAO,IAAIV,SAAS,EACtB,MAAM,IAAID,KAAK,CAAC,0CAA0C,CAAC;EAC7D,OAAOG,MAAM;AACf","ignoreList":[]}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ import { CHARACTER_COLORS } from "./character-colors.js";
4
+ import { characterShapeGeometry, isMigratedCharacterShape } from "./character-shapes.js";
3
5
  import { avatarHex } from "./avatar-color.js";
4
6
  import { legacyContours } from "./legacy-contours.js";
5
7
  /** Saved unsupported artwork stays readable without pretending it was migrated. */
6
8
  export function legacyRecipeUnsupported(config) {
9
+ if (isMigratedCharacterShape(config.character?.selections?.shape)) return false;
7
10
  return config.family === 'alien' || config.family === 'mascot' || !config.face;
8
11
  }
9
12
 
@@ -50,6 +53,7 @@ export function radialContour(polygons, samples = 256) {
50
53
 
51
54
  /** Shared capability identity for the editor and the legacy engine adapter. */
52
55
  export function legacyCharacterRecipe(config) {
56
+ if (config.character && config.character.preset !== 'bloom') return config.character;
53
57
  const customization = config.character?.preset === 'bloom' ? config.character : undefined;
54
58
  return {
55
59
  preset: 'legacy',
@@ -63,7 +67,10 @@ export function legacyCharacterRecipe(config) {
63
67
  accessory: customization.selections.accessory
64
68
  } : {})
65
69
  },
66
- bodyColor: customization?.bodyColor ?? avatarHex(config)
70
+ bodyColor: customization?.bodyColor ?? CHARACTER_COLORS[customization?.selections?.color] ?? avatarHex(config),
71
+ ...(customization?.eyeSpacing !== undefined ? {
72
+ eyeSpacing: customization.eyeSpacing
73
+ } : {})
67
74
  };
68
75
  }
69
76
 
@@ -73,19 +80,25 @@ export function legacyCharacterRecipe(config) {
73
80
  */
74
81
  export function legacyRecipe(config, samples = 256) {
75
82
  if (legacyRecipeUnsupported(config)) throw new Error('Unsupported legacy 3D recipe');
76
- const shape = legacyNativeShape(config);
83
+ const geometry = characterShapeGeometry(config);
84
+ const canonical = config.character && config.character.preset !== 'bloom';
85
+ const selectedShape = canonical ? config.character?.selections?.shape : undefined;
86
+ const shape = isMigratedCharacterShape(selectedShape) ? undefined : selectedShape ?? legacyNativeShape(geometry);
77
87
  const recipe = legacyCharacterRecipe(config);
78
88
  const {
79
89
  eyewear,
80
90
  accessory
81
- } = recipe.selections;
91
+ } = recipe.selections ?? {};
82
92
  return {
83
93
  ...(shape ? {
84
94
  shape
85
95
  } : {
86
- points: radialContour(legacyContours(config), samples)
96
+ points: radialContour(legacyContours(geometry), samples)
87
97
  }),
88
- eyes: recipe.selections.eyes,
98
+ eyes: recipe.selections?.eyes ?? 'oval',
99
+ ...(recipe.eyeSpacing !== undefined ? {
100
+ eyeSpacing: recipe.eyeSpacing
101
+ } : {}),
89
102
  ...(eyewear || accessory ? {
90
103
  selections: {
91
104
  ...(eyewear ? {
@@ -97,7 +110,7 @@ export function legacyRecipe(config, samples = 256) {
97
110
  }
98
111
  } : {}),
99
112
  patch: {
100
- bodyColor: recipe.bodyColor
113
+ bodyColor: recipe.bodyColor ?? avatarHex(config)
101
114
  }
102
115
  };
103
116
  }
@@ -1 +1 @@
1
- {"version":3,"names":["avatarHex","legacyContours","legacyRecipeUnsupported","config","family","face","legacyNativeShape","shared","circle","triangle","flower","diamond","heart","foldShape","shape","undefined","radialContour","polygons","samples","Number","isInteger","Error","Array","from","length","_","i","angle","Math","PI","dx","cos","dy","sin","radius","polygon","j","ax","ay","bx","by","ex","ey","denominator","abs","distance","segment","isFinite","legacyCharacterRecipe","customization","character","preset","selections","eyes","eyewear","accessory","bodyColor","legacyRecipe","recipe","points","patch"],"sourceRoot":"../../../src","sources":["agent-avatar/legacy-recipe.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CHARACTER_COLORS","characterShapeGeometry","isMigratedCharacterShape","avatarHex","legacyContours","legacyRecipeUnsupported","config","character","selections","shape","family","face","legacyNativeShape","shared","circle","triangle","flower","diamond","heart","foldShape","undefined","radialContour","polygons","samples","Number","isInteger","Error","Array","from","length","_","i","angle","Math","PI","dx","cos","dy","sin","radius","polygon","j","ax","ay","bx","by","ex","ey","denominator","abs","distance","segment","isFinite","legacyCharacterRecipe","preset","customization","eyes","eyewear","accessory","bodyColor","color","eyeSpacing","legacyRecipe","geometry","canonical","selectedShape","recipe","points","patch"],"sourceRoot":"../../../src","sources":["agent-avatar/legacy-recipe.ts"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { useContext, useMemo, useState } from 'react';
3
+ import { useContext, useMemo, useRef, useState } from 'react';
4
4
  import { Platform } from 'react-native';
5
5
  import { AgentAvatar } from "../agent-avatar/index.js";
6
+ import { CHARACTER_SHAPES, NATIVE_CHARACTER_SHAPES, createConfigForShape, currentCharacterShape, materializeCharacter } from "../agent-avatar/character-shapes.js";
6
7
  import { CharacterRuntimeContext, CharacterCapabilitiesContext } from "../agent-avatar/context.js";
7
- import { legacyCharacterRecipe, legacyNativeShape } from "../agent-avatar/legacy-recipe.js";
8
+ import { legacyCharacterRecipe } from "../agent-avatar/legacy-recipe.js";
8
9
  import { Button } from '../button/Button';
9
10
  import { CloseButton } from "../button/CloseButton.js";
10
11
  import { useDirectionProps } from "../hooks/use-is-rtl.js";
@@ -56,38 +57,49 @@ export function AgentCreatorBase(props) {
56
57
  runtimeUrl
57
58
  } = runtime;
58
59
  const beta = Boolean(c.character && c.character.preset !== 'bloom');
59
- const nativeShape = legacyNativeShape(c);
60
60
  const key = JSON.stringify(beta ? c.character : legacyCharacterRecipe(c));
61
- const capabilities = catalog.capabilitiesByKey?.get(key) ?? (catalog.capabilities?.key === key ? catalog.capabilities : undefined);
62
- const betaColor = capabilities?.selected.color ?? c.character?.selections?.color;
63
- const customColorValue = beta ? c.character?.bodyColor ?? CHARACTER_COLORS[betaColor] ?? avatarHex(c) : c.character?.bodyColor ?? avatarHex(c);
64
- const selectedEyes = capabilities?.selected.eyes ?? c.character?.selections?.eyes ?? 'oval';
61
+ const currentCapabilities = catalog.capabilitiesByKey?.get(key) ?? (catalog.capabilities?.key === key ? catalog.capabilities : undefined);
62
+ const retained = useRef({
63
+ owner: '',
64
+ selected: {}
65
+ });
66
+ const owner = JSON.stringify([agent.id, c.character?.preset ?? 'bloom']);
67
+ if (retained.current.owner !== owner) retained.current = {
68
+ owner,
69
+ selected: {}
70
+ };
71
+ if (currentCapabilities) retained.current.selected = currentCapabilities.selected;
72
+ const capabilities = currentCapabilities ?? {
73
+ selected: retained.current.selected,
74
+ available: {}
75
+ };
76
+ const betaColor = c.character?.selections?.color ?? capabilities?.selected.color;
77
+ const betaBodyColor = c.character?.bodyColor ?? (c.character?.preset === 'clippo' && !c.character.selections?.color ? '#999b9d' : undefined) ?? (!betaColor ? capabilities?.selected.bodyColor : undefined);
78
+ const customColorValue = beta ? betaBodyColor ?? (c.character?.selections?.color ? CHARACTER_COLORS[c.character.selections.color] : undefined) ?? capabilities?.selected.bodyColor ?? CHARACTER_COLORS[betaColor] ?? avatarHex(c) : c.character?.bodyColor ?? CHARACTER_COLORS[c.character?.selections?.color] ?? avatarHex(c);
79
+ const selectedEyes = c.character?.selections?.eyes ?? capabilities?.selected.eyes ?? (c.character?.preset === 'clippo' ? 'clippo' : c.character?.preset === 'lime_frog' ? 'todd' : 'oval');
80
+ const selectedEyewear = c.character?.selections?.eyewear ?? capabilities?.selected.eyewear;
81
+ const selectedAccessory = c.character?.selections?.accessory ?? capabilities?.selected.accessory;
82
+ const selectedParts = {
83
+ ...(c.character?.selections?.eyes || capabilities.selected.eyes || c.character?.preset === 'clippo' || c.character?.preset === 'lime_frog' ? {
84
+ eyes: selectedEyes
85
+ } : {}),
86
+ ...(selectedEyewear ? {
87
+ eyewear: selectedEyewear
88
+ } : {}),
89
+ ...(selectedAccessory ? {
90
+ accessory: selectedAccessory
91
+ } : {})
92
+ };
65
93
  const characterConfig = (category, id) => {
66
- if (!beta && (category === 'eyes' || category === 'eyewear' || category === 'accessory')) return {
67
- ...c,
68
- character: {
69
- ...c.character,
70
- preset: 'bloom',
71
- selections: {
72
- ...c.character?.selections,
73
- [category]: id
74
- }
75
- }
76
- };
77
- const character = beta ? c.character : {
78
- preset: 'blue_beret',
79
- bodyColor: customColorValue,
80
- selections: {
81
- eyewear: c.character?.selections?.eyewear ?? capabilities?.selected.eyewear ?? 'none',
82
- accessory: c.character?.selections?.accessory ?? capabilities?.selected.accessory ?? 'none',
83
- eyes: selectedEyes
84
- }
85
- };
94
+ if (category === 'shape') return createConfigForShape(c, id, capabilities.selected);
95
+ const character = materializeCharacter(c, capabilities.selected);
96
+ // Choosing a body retains the edited face and the preset's effective parts.
97
+ // Presets supply defaults; their catalog restrictions do not own edits.
86
98
  const selections = {
99
+ ...selectedParts,
87
100
  ...character.selections,
88
101
  [category]: id
89
102
  };
90
- if (category === 'shape') delete selections.eyes;
91
103
  const next = {
92
104
  ...character,
93
105
  selections
@@ -104,77 +116,26 @@ export function AgentCreatorBase(props) {
104
116
  });
105
117
  const thumbnailBase = runtimeUrl ? runtimeUrl.slice(0, runtimeUrl.lastIndexOf('/') + 1) : '';
106
118
  const eyeBackground = customColorValue;
107
- const migratedShapes = [...['slender', 'pocket', 'petal', 'star', 'cloud', 'shield'].map(shape => ({
108
- family: 'fold',
109
- shape,
110
- title: messages.shapes[shape]
111
- })), ...[['pebble', 'Pebble'], ['squircle', 'Squircle']].map(([shape, title]) => ({
112
- family: 'blob',
113
- shape,
114
- title: messages.characterOption('shape', shape, title)
115
- }))];
116
- const migratedConfig = (family, shape) => {
117
- const {
118
- character: _character,
119
- ...existing
120
- } = c;
121
- const color = hexAppearance(customColorValue);
122
- return {
123
- ...existing,
124
- ...color,
125
- lightEyes: beta ? false : c.lightEyes,
126
- family,
127
- ...(family === 'fold' ? {
128
- foldShape: shape
129
- } : {
130
- shape: shape
131
- }),
132
- ...(runtimeUrl ? {
133
- character: {
134
- preset: 'bloom',
135
- selections: {
136
- eyes: selectedEyes,
137
- ...(capabilities?.selected.eyewear ?? c.character?.selections?.eyewear ? {
138
- eyewear: capabilities?.selected.eyewear ?? c.character?.selections?.eyewear
139
- } : {}),
140
- ...(capabilities?.selected.accessory ?? c.character?.selections?.accessory ? {
141
- accessory: capabilities?.selected.accessory ?? c.character?.selections?.accessory
142
- } : {})
143
- }
144
- }
145
- } : {})
146
- };
147
- };
148
- const shapeChoices = runtimeUrl ? [...CHARACTER_OPTIONS.shape.map(([id, title]) => ({
119
+ const shapeChoices = runtimeUrl ? CHARACTER_SHAPES.map(([id, title]) => ({
149
120
  id,
150
- label: messages.characterOption('shape', id, title),
151
- config: characterConfig('shape', id),
152
- thumbnail: `${thumbnailBase}thumbnails/shapes/${id}.png`
153
- })), ...migratedShapes.map(({
154
- family,
155
- shape,
156
- title
157
- }) => ({
158
- id: `legacy:${family}:${shape}`,
159
- label: title,
160
- config: migratedConfig(family, shape)
161
- }))] : undefined;
162
- const shapeValue = beta ? capabilities?.selected.shape ?? c.character?.selections?.shape : nativeShape ?? `legacy:${c.family}:${c.family === 'fold' ? c.foldShape : c.shape}`;
163
- const selectShape = id => {
164
- if (id.startsWith('legacy:')) {
165
- const [, family, shape] = id.split(':');
166
- onChange({
167
- ...agent,
168
- avatar: migratedConfig(family, shape)
169
- });
170
- } else selectCharacter('shape', id);
171
- };
121
+ label: id in messages.shapes ? messages.shapes[id] : messages.characterOption('shape', id, title),
122
+ config: createConfigForShape(c, id, capabilities.selected),
123
+ ...(NATIVE_CHARACTER_SHAPES.some(([shape]) => shape === id) && id !== 'clippo' && id !== 'todd' ? {
124
+ thumbnail: `${thumbnailBase}thumbnails/shapes/${id}.png`
125
+ } : {})
126
+ })) : undefined;
127
+ const shapeValue = c.character?.selections?.shape ?? (beta ? capabilities.selected.shape ?? (c.character?.preset === 'clippo' ? 'clippo' : undefined) : currentCharacterShape(c));
128
+ const selectShape = id => selectCharacter('shape', id);
172
129
  const eyeChoices = runtimeUrl ? CHARACTER_OPTIONS.eyes.map(([id, title]) => ({
173
130
  id,
174
131
  label: messages.characterOption('eyes', id, title),
175
132
  config: characterConfig('eyes', id),
176
- thumbnail: `${thumbnailBase}thumbnails/eyes/${id}.png`,
177
- disabled: !capabilities || capabilities.available[`eyes:${id}`] === false
133
+ ...(id === 'clippo' || id === 'cyclops' ? {
134
+ artwork: id
135
+ } : {
136
+ thumbnail: `${thumbnailBase}thumbnails/eyes/${id}.png`
137
+ }),
138
+ disabled: false
178
139
  })) : undefined;
179
140
  const appearance = patch => {
180
141
  const {
@@ -321,10 +282,9 @@ export function AgentCreatorBase(props) {
321
282
  children: messages.working
322
283
  })]
323
284
  }), /*#__PURE__*/_jsx(CharacterControls, {
324
- character: c.character ?? {
325
- preset: 'bloom'
326
- },
285
+ character: runtimeUrl ? beta ? c.character : materializeCharacter(c, capabilities.selected) : c.character,
327
286
  capabilitiesKey: key,
287
+ selected: capabilities.selected,
328
288
  onChange: character => {
329
289
  if (character) onChange({
330
290
  ...agent,
@@ -345,7 +305,7 @@ export function AgentCreatorBase(props) {
345
305
  borderColor: colors.border,
346
306
  boxShadow: '0 1px 2px rgba(0,0,0,.05)'
347
307
  },
348
- children: [!beta && AVATAR_COLORS.map(([hue, saturation, name, center, edge]) => {
308
+ children: [!runtimeUrl && AVATAR_COLORS.map(([hue, saturation, name, center, edge]) => {
349
309
  const active = c.hue === hue && c.saturation === saturation && c.lightness === undefined;
350
310
  return /*#__PURE__*/_jsx(StyledPressable, {
351
311
  accessibilityRole: "button",
@@ -367,10 +327,10 @@ export function AgentCreatorBase(props) {
367
327
  active: active
368
328
  })
369
329
  }, name);
370
- }), beta && CHARACTER_OPTIONS.color.map(([id, title]) => {
371
- const active = !c.character?.bodyColor && capabilities?.selected.color === id;
330
+ }), runtimeUrl && CHARACTER_OPTIONS.color.map(([id, title]) => {
331
+ const active = !betaBodyColor && betaColor === id;
372
332
  const hex = CHARACTER_COLORS[id];
373
- const disabled = !capabilities || capabilities.available[`color:${id}`] === false;
333
+ const disabled = false;
374
334
  return /*#__PURE__*/_jsx(StyledPressable, {
375
335
  accessibilityRole: "button",
376
336
  accessibilityLabel: messages.avatarColorLabel(messages.characterOption('color', id, title)),
@@ -394,16 +354,16 @@ export function AgentCreatorBase(props) {
394
354
  asChild: true,
395
355
  label: messages.customColor,
396
356
  children: /*#__PURE__*/_jsx(StyledPressable, {
397
- "aria-pressed": beta ? Boolean(c.character?.bodyColor) : undefined,
357
+ "aria-pressed": runtimeUrl ? Boolean(betaBodyColor) : undefined,
398
358
  accessibilityState: {
399
- selected: beta && Boolean(c.character?.bodyColor)
359
+ selected: Boolean(runtimeUrl) && Boolean(betaBodyColor)
400
360
  },
401
361
  className: "relative size-[26px] shrink-0 overflow-hidden rounded-full",
402
362
  children: /*#__PURE__*/_jsx(GlossArt, {
403
- rainbow: !beta || !c.character?.bodyColor,
404
- center: beta ? c.character?.bodyColor : undefined,
405
- edge: beta ? c.character?.bodyColor : undefined,
406
- active: beta && Boolean(c.character?.bodyColor)
363
+ rainbow: !runtimeUrl || !betaBodyColor,
364
+ center: runtimeUrl ? betaBodyColor : undefined,
365
+ edge: runtimeUrl ? betaBodyColor : undefined,
366
+ active: Boolean(runtimeUrl) && Boolean(betaBodyColor)
407
367
  })
408
368
  })
409
369
  }), /*#__PURE__*/_jsx(PopoverContent, {
@@ -417,13 +377,13 @@ export function AgentCreatorBase(props) {
417
377
  onChange: hex => {
418
378
  const next = hexAppearance(hex);
419
379
  if (!next) return;
420
- if (beta) onChange({
380
+ if (runtimeUrl) onChange({
421
381
  ...agent,
422
382
  avatar: {
423
383
  ...c,
424
384
  ...next,
425
385
  character: {
426
- ...c.character,
386
+ ...materializeCharacter(c, capabilities.selected),
427
387
  bodyColor: hex.toLowerCase()
428
388
  }
429
389
  }