@oxy.so/bloom 7.0.1 → 7.1.1

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 (519) hide show
  1. package/assets/character-runtime/README.md +55 -0
  2. package/assets/character-runtime/appearance-codec.mjs +149 -0
  3. package/assets/character-runtime/integrity.json +6 -0
  4. package/assets/character-runtime/legacy-engine.mjs +105 -0
  5. package/assets/character-runtime/legacy-geometry.mjs +166 -0
  6. package/assets/character-runtime/legacy-worker.mjs +85 -0
  7. package/assets/character-runtime/managed-avatar.mjs +258 -0
  8. package/assets/character-runtime/orbit-characters.data +0 -0
  9. package/assets/character-runtime/orbit-characters.mjs +30 -0
  10. package/assets/character-runtime/orbit-characters.wasm +0 -0
  11. package/assets/character-runtime/preparation-worker.mjs +19 -0
  12. package/assets/character-runtime/render-budget.mjs +144 -0
  13. package/assets/character-runtime/runtime.mjs +851 -0
  14. package/assets/character-runtime/thumbnails/eyes/crescent_inset.png +0 -0
  15. package/assets/character-runtime/thumbnails/eyes/dots.png +0 -0
  16. package/assets/character-runtime/thumbnails/eyes/double_highlights.png +0 -0
  17. package/assets/character-runtime/thumbnails/eyes/highlight_capsules.png +0 -0
  18. package/assets/character-runtime/thumbnails/eyes/oval.png +0 -0
  19. package/assets/character-runtime/thumbnails/eyes/round_inset.png +0 -0
  20. package/assets/character-runtime/thumbnails/eyes/sleepy_lids.png +0 -0
  21. package/assets/character-runtime/thumbnails/eyes/sparkle_capsules.png +0 -0
  22. package/assets/character-runtime/thumbnails/eyes/swept_lids.png +0 -0
  23. package/assets/character-runtime/thumbnails/shapes/capsule.png +0 -0
  24. package/assets/character-runtime/thumbnails/shapes/circle.png +0 -0
  25. package/assets/character-runtime/thumbnails/shapes/circle_two_ears.png +0 -0
  26. package/assets/character-runtime/thumbnails/shapes/four_lobed_butterfly.png +0 -0
  27. package/assets/character-runtime/thumbnails/shapes/heart.png +0 -0
  28. package/assets/character-runtime/thumbnails/shapes/rounded_cube.png +0 -0
  29. package/assets/character-runtime/thumbnails/shapes/rounded_diamond.png +0 -0
  30. package/assets/character-runtime/thumbnails/shapes/rounded_head_two_ears.png +0 -0
  31. package/assets/character-runtime/thumbnails/shapes/rounded_triangle.png +0 -0
  32. package/assets/character-runtime/thumbnails/shapes/six_lobed_flower.png +0 -0
  33. package/assets/character-runtime/thumbnails/shapes/twelve_scalloped_rosette.png +0 -0
  34. package/docs/adoption-matrix.mdx +9 -9
  35. package/docs/agent-avatar.mdx +44 -10
  36. package/docs/agent-creator.mdx +12 -4
  37. package/docs/multi-agent-chat.mdx +12 -0
  38. package/docs/project-board.mdx +3 -3
  39. package/lib/commonjs/agent-avatar/AgentAvatar.js +15 -203
  40. package/lib/commonjs/agent-avatar/AgentAvatar.js.map +1 -1
  41. package/lib/commonjs/agent-avatar/AgentAvatarProvider.js +69 -0
  42. package/lib/commonjs/agent-avatar/AgentAvatarProvider.js.map +1 -0
  43. package/lib/commonjs/agent-avatar/CharacterAvatar.js +212 -0
  44. package/lib/commonjs/agent-avatar/CharacterAvatar.js.map +1 -0
  45. package/lib/commonjs/agent-avatar/ProceduralAvatar.js +216 -0
  46. package/lib/commonjs/agent-avatar/ProceduralAvatar.js.map +1 -0
  47. package/lib/commonjs/agent-avatar/artwork.js +4 -3
  48. package/lib/commonjs/agent-avatar/artwork.js.map +1 -1
  49. package/lib/commonjs/agent-avatar/avatar-color.js +16 -0
  50. package/lib/commonjs/agent-avatar/avatar-color.js.map +1 -0
  51. package/lib/commonjs/agent-avatar/character-html.js +25 -0
  52. package/lib/commonjs/agent-avatar/character-html.js.map +1 -0
  53. package/lib/commonjs/agent-avatar/character-runtime-module.js +39 -0
  54. package/lib/commonjs/agent-avatar/character-runtime-module.js.map +1 -0
  55. package/lib/commonjs/agent-avatar/character-webview.js +18 -0
  56. package/lib/commonjs/agent-avatar/character-webview.js.map +1 -0
  57. package/lib/commonjs/agent-avatar/config-character.js +36 -0
  58. package/lib/commonjs/agent-avatar/config-character.js.map +1 -0
  59. package/lib/commonjs/agent-avatar/context.js +6 -1
  60. package/lib/commonjs/agent-avatar/context.js.map +1 -1
  61. package/lib/commonjs/agent-avatar/index.js +7 -0
  62. package/lib/commonjs/agent-avatar/index.js.map +1 -1
  63. package/lib/commonjs/agent-avatar/legacy-contours.js +57 -0
  64. package/lib/commonjs/agent-avatar/legacy-contours.js.map +1 -0
  65. package/lib/commonjs/agent-avatar/legacy-recipe.js +112 -0
  66. package/lib/commonjs/agent-avatar/legacy-recipe.js.map +1 -0
  67. package/lib/commonjs/agent-avatar/messages.js +2 -1
  68. package/lib/commonjs/agent-avatar/messages.js.map +1 -1
  69. package/lib/commonjs/agent-avatar/model.js +2 -0
  70. package/lib/commonjs/agent-avatar/model.js.map +1 -1
  71. package/lib/commonjs/agent-creator/AgentCreatorBase.js +251 -25
  72. package/lib/commonjs/agent-creator/AgentCreatorBase.js.map +1 -1
  73. package/lib/commonjs/agent-creator/CharacterControls.js +115 -0
  74. package/lib/commonjs/agent-creator/CharacterControls.js.map +1 -0
  75. package/lib/commonjs/agent-creator/EmotionPicker.js +51 -18
  76. package/lib/commonjs/agent-creator/EmotionPicker.js.map +1 -1
  77. package/lib/commonjs/agent-creator/ShapeArc.js +56 -26
  78. package/lib/commonjs/agent-creator/ShapeArc.js.map +1 -1
  79. package/lib/commonjs/agent-creator/ShapeSilhouette.js +62 -0
  80. package/lib/commonjs/agent-creator/ShapeSilhouette.js.map +1 -0
  81. package/lib/commonjs/agent-creator/constants.js +48 -1
  82. package/lib/commonjs/agent-creator/constants.js.map +1 -1
  83. package/lib/commonjs/agent-creator/messages.js +9 -0
  84. package/lib/commonjs/agent-creator/messages.js.map +1 -1
  85. package/lib/commonjs/agent-creator/shared.js +7 -10
  86. package/lib/commonjs/agent-creator/shared.js.map +1 -1
  87. package/lib/commonjs/agent-thinking/AgentThinking.js +4 -62
  88. package/lib/commonjs/agent-thinking/AgentThinking.js.map +1 -1
  89. package/lib/commonjs/agent-thinking/ThinkingLabel.js +77 -0
  90. package/lib/commonjs/agent-thinking/ThinkingLabel.js.map +1 -0
  91. package/lib/commonjs/chart-cards/TokensChartCard.js +20 -5
  92. package/lib/commonjs/chart-cards/TokensChartCard.js.map +1 -1
  93. package/lib/commonjs/locale/translations/ar.js +11 -1
  94. package/lib/commonjs/locale/translations/ar.js.map +1 -1
  95. package/lib/commonjs/locale/translations/bn.js +11 -1
  96. package/lib/commonjs/locale/translations/bn.js.map +1 -1
  97. package/lib/commonjs/locale/translations/ca.js +11 -1
  98. package/lib/commonjs/locale/translations/ca.js.map +1 -1
  99. package/lib/commonjs/locale/translations/de.js +11 -1
  100. package/lib/commonjs/locale/translations/de.js.map +1 -1
  101. package/lib/commonjs/locale/translations/es.js +11 -1
  102. package/lib/commonjs/locale/translations/es.js.map +1 -1
  103. package/lib/commonjs/locale/translations/fr.js +11 -1
  104. package/lib/commonjs/locale/translations/fr.js.map +1 -1
  105. package/lib/commonjs/locale/translations/hi.js +11 -1
  106. package/lib/commonjs/locale/translations/hi.js.map +1 -1
  107. package/lib/commonjs/locale/translations/id.js +11 -1
  108. package/lib/commonjs/locale/translations/id.js.map +1 -1
  109. package/lib/commonjs/locale/translations/it.js +11 -1
  110. package/lib/commonjs/locale/translations/it.js.map +1 -1
  111. package/lib/commonjs/locale/translations/ja.js +11 -1
  112. package/lib/commonjs/locale/translations/ja.js.map +1 -1
  113. package/lib/commonjs/locale/translations/pt.js +11 -1
  114. package/lib/commonjs/locale/translations/pt.js.map +1 -1
  115. package/lib/commonjs/locale/translations/ru.js +11 -1
  116. package/lib/commonjs/locale/translations/ru.js.map +1 -1
  117. package/lib/commonjs/locale/translations/tr.js +11 -1
  118. package/lib/commonjs/locale/translations/tr.js.map +1 -1
  119. package/lib/commonjs/locale/translations/zh.js +11 -1
  120. package/lib/commonjs/locale/translations/zh.js.map +1 -1
  121. package/lib/commonjs/multi-agent-chat/AvatarHandoff.js +2 -4
  122. package/lib/commonjs/multi-agent-chat/AvatarHandoff.js.map +1 -1
  123. package/lib/commonjs/multi-agent-chat/ChatAgentProfile.js +97 -0
  124. package/lib/commonjs/multi-agent-chat/ChatAgentProfile.js.map +1 -0
  125. package/lib/commonjs/multi-agent-chat/EditorRail.js +4 -0
  126. package/lib/commonjs/multi-agent-chat/EditorRail.js.map +1 -1
  127. package/lib/commonjs/multi-agent-chat/MultiAgentChatBase.js +89 -126
  128. package/lib/commonjs/multi-agent-chat/MultiAgentChatBase.js.map +1 -1
  129. package/lib/commonjs/multi-agent-chat/ReplyRow.js +8 -11
  130. package/lib/commonjs/multi-agent-chat/ReplyRow.js.map +1 -1
  131. package/lib/commonjs/multi-agent-chat/handoff.js +5 -5
  132. package/lib/commonjs/multi-agent-chat/handoff.js.map +1 -1
  133. package/lib/commonjs/project-board/CreateTicketDialog.js +33 -2
  134. package/lib/commonjs/project-board/CreateTicketDialog.js.map +1 -1
  135. package/lib/commonjs/project-board/ProjectBoardBase.js +137 -38
  136. package/lib/commonjs/project-board/ProjectBoardBase.js.map +1 -1
  137. package/lib/commonjs/project-board/TicketCornerGenieSurface.web.js +34 -28
  138. package/lib/commonjs/project-board/TicketCornerGenieSurface.web.js.map +1 -1
  139. package/lib/commonjs/project-board/TicketDetailDialog.js +6 -3
  140. package/lib/commonjs/project-board/TicketDetailDialog.js.map +1 -1
  141. package/lib/commonjs/project-board/TicketGenieSurface.js +17 -7
  142. package/lib/commonjs/project-board/TicketGenieSurface.js.map +1 -1
  143. package/lib/commonjs/project-board/TicketGenieSurface.web.js +1 -1
  144. package/lib/commonjs/project-board/TicketGenieSurface.web.js.map +1 -1
  145. package/lib/commonjs/project-board/TicketPresence.js +125 -0
  146. package/lib/commonjs/project-board/TicketPresence.js.map +1 -0
  147. package/lib/commonjs/project-board/TicketTokenChart.js +23 -0
  148. package/lib/commonjs/project-board/TicketTokenChart.js.map +1 -0
  149. package/lib/commonjs/project-board/context.js +3 -1
  150. package/lib/commonjs/project-board/context.js.map +1 -1
  151. package/lib/commonjs/search/Search.js +12 -3
  152. package/lib/commonjs/search/Search.js.map +1 -1
  153. package/lib/commonjs/sidebar/SidebarToolbar.js +28 -14
  154. package/lib/commonjs/sidebar/SidebarToolbar.js.map +1 -1
  155. package/lib/commonjs/text-field/TextField.js +13 -7
  156. package/lib/commonjs/text-field/TextField.js.map +1 -1
  157. package/lib/module/agent-avatar/AgentAvatar.js +16 -204
  158. package/lib/module/agent-avatar/AgentAvatar.js.map +1 -1
  159. package/lib/module/agent-avatar/AgentAvatarProvider.js +65 -0
  160. package/lib/module/agent-avatar/AgentAvatarProvider.js.map +1 -0
  161. package/lib/module/agent-avatar/CharacterAvatar.js +208 -0
  162. package/lib/module/agent-avatar/CharacterAvatar.js.map +1 -0
  163. package/lib/module/agent-avatar/ProceduralAvatar.js +212 -0
  164. package/lib/module/agent-avatar/ProceduralAvatar.js.map +1 -0
  165. package/lib/module/agent-avatar/artwork.js +3 -3
  166. package/lib/module/agent-avatar/artwork.js.map +1 -1
  167. package/lib/module/agent-avatar/avatar-color.js +12 -0
  168. package/lib/module/agent-avatar/avatar-color.js.map +1 -0
  169. package/lib/module/agent-avatar/character-html.js +19 -0
  170. package/lib/module/agent-avatar/character-html.js.map +1 -0
  171. package/lib/module/agent-avatar/character-runtime-module.js +35 -0
  172. package/lib/module/agent-avatar/character-runtime-module.js.map +1 -0
  173. package/lib/module/agent-avatar/character-webview.js +14 -0
  174. package/lib/module/agent-avatar/character-webview.js.map +1 -0
  175. package/lib/module/agent-avatar/config-character.js +32 -0
  176. package/lib/module/agent-avatar/config-character.js.map +1 -0
  177. package/lib/module/agent-avatar/context.js +5 -0
  178. package/lib/module/agent-avatar/context.js.map +1 -1
  179. package/lib/module/agent-avatar/index.js +1 -0
  180. package/lib/module/agent-avatar/index.js.map +1 -1
  181. package/lib/module/agent-avatar/legacy-contours.js +53 -0
  182. package/lib/module/agent-avatar/legacy-contours.js.map +1 -0
  183. package/lib/module/agent-avatar/legacy-recipe.js +104 -0
  184. package/lib/module/agent-avatar/legacy-recipe.js.map +1 -0
  185. package/lib/module/agent-avatar/messages.js +2 -1
  186. package/lib/module/agent-avatar/messages.js.map +1 -1
  187. package/lib/module/agent-avatar/model.js +2 -0
  188. package/lib/module/agent-avatar/model.js.map +1 -1
  189. package/lib/module/agent-creator/AgentCreatorBase.js +248 -22
  190. package/lib/module/agent-creator/AgentCreatorBase.js.map +1 -1
  191. package/lib/module/agent-creator/CharacterControls.js +112 -0
  192. package/lib/module/agent-creator/CharacterControls.js.map +1 -0
  193. package/lib/module/agent-creator/EmotionPicker.js +52 -19
  194. package/lib/module/agent-creator/EmotionPicker.js.map +1 -1
  195. package/lib/module/agent-creator/ShapeArc.js +58 -28
  196. package/lib/module/agent-creator/ShapeArc.js.map +1 -1
  197. package/lib/module/agent-creator/ShapeSilhouette.js +57 -0
  198. package/lib/module/agent-creator/ShapeSilhouette.js.map +1 -0
  199. package/lib/module/agent-creator/constants.js +47 -0
  200. package/lib/module/agent-creator/constants.js.map +1 -1
  201. package/lib/module/agent-creator/messages.js +9 -0
  202. package/lib/module/agent-creator/messages.js.map +1 -1
  203. package/lib/module/agent-creator/shared.js +1 -9
  204. package/lib/module/agent-creator/shared.js.map +1 -1
  205. package/lib/module/agent-thinking/AgentThinking.js +5 -63
  206. package/lib/module/agent-thinking/AgentThinking.js.map +1 -1
  207. package/lib/module/agent-thinking/ThinkingLabel.js +73 -0
  208. package/lib/module/agent-thinking/ThinkingLabel.js.map +1 -0
  209. package/lib/module/chart-cards/TokensChartCard.js +20 -5
  210. package/lib/module/chart-cards/TokensChartCard.js.map +1 -1
  211. package/lib/module/locale/translations/ar.js +11 -1
  212. package/lib/module/locale/translations/ar.js.map +1 -1
  213. package/lib/module/locale/translations/bn.js +11 -1
  214. package/lib/module/locale/translations/bn.js.map +1 -1
  215. package/lib/module/locale/translations/ca.js +11 -1
  216. package/lib/module/locale/translations/ca.js.map +1 -1
  217. package/lib/module/locale/translations/de.js +11 -1
  218. package/lib/module/locale/translations/de.js.map +1 -1
  219. package/lib/module/locale/translations/es.js +11 -1
  220. package/lib/module/locale/translations/es.js.map +1 -1
  221. package/lib/module/locale/translations/fr.js +11 -1
  222. package/lib/module/locale/translations/fr.js.map +1 -1
  223. package/lib/module/locale/translations/hi.js +11 -1
  224. package/lib/module/locale/translations/hi.js.map +1 -1
  225. package/lib/module/locale/translations/id.js +11 -1
  226. package/lib/module/locale/translations/id.js.map +1 -1
  227. package/lib/module/locale/translations/it.js +11 -1
  228. package/lib/module/locale/translations/it.js.map +1 -1
  229. package/lib/module/locale/translations/ja.js +11 -1
  230. package/lib/module/locale/translations/ja.js.map +1 -1
  231. package/lib/module/locale/translations/pt.js +11 -1
  232. package/lib/module/locale/translations/pt.js.map +1 -1
  233. package/lib/module/locale/translations/ru.js +11 -1
  234. package/lib/module/locale/translations/ru.js.map +1 -1
  235. package/lib/module/locale/translations/tr.js +11 -1
  236. package/lib/module/locale/translations/tr.js.map +1 -1
  237. package/lib/module/locale/translations/zh.js +11 -1
  238. package/lib/module/locale/translations/zh.js.map +1 -1
  239. package/lib/module/multi-agent-chat/AvatarHandoff.js +3 -5
  240. package/lib/module/multi-agent-chat/AvatarHandoff.js.map +1 -1
  241. package/lib/module/multi-agent-chat/ChatAgentProfile.js +94 -0
  242. package/lib/module/multi-agent-chat/ChatAgentProfile.js.map +1 -0
  243. package/lib/module/multi-agent-chat/EditorRail.js +4 -0
  244. package/lib/module/multi-agent-chat/EditorRail.js.map +1 -1
  245. package/lib/module/multi-agent-chat/MultiAgentChatBase.js +89 -126
  246. package/lib/module/multi-agent-chat/MultiAgentChatBase.js.map +1 -1
  247. package/lib/module/multi-agent-chat/ReplyRow.js +9 -12
  248. package/lib/module/multi-agent-chat/ReplyRow.js.map +1 -1
  249. package/lib/module/multi-agent-chat/handoff.js +4 -4
  250. package/lib/module/multi-agent-chat/handoff.js.map +1 -1
  251. package/lib/module/project-board/CreateTicketDialog.js +33 -2
  252. package/lib/module/project-board/CreateTicketDialog.js.map +1 -1
  253. package/lib/module/project-board/ProjectBoardBase.js +138 -39
  254. package/lib/module/project-board/ProjectBoardBase.js.map +1 -1
  255. package/lib/module/project-board/TicketCornerGenieSurface.web.js +35 -29
  256. package/lib/module/project-board/TicketCornerGenieSurface.web.js.map +1 -1
  257. package/lib/module/project-board/TicketDetailDialog.js +7 -4
  258. package/lib/module/project-board/TicketDetailDialog.js.map +1 -1
  259. package/lib/module/project-board/TicketGenieSurface.js +17 -7
  260. package/lib/module/project-board/TicketGenieSurface.js.map +1 -1
  261. package/lib/module/project-board/TicketGenieSurface.web.js +1 -1
  262. package/lib/module/project-board/TicketGenieSurface.web.js.map +1 -1
  263. package/lib/module/project-board/TicketPresence.js +119 -0
  264. package/lib/module/project-board/TicketPresence.js.map +1 -0
  265. package/lib/module/project-board/TicketTokenChart.js +20 -0
  266. package/lib/module/project-board/TicketTokenChart.js.map +1 -0
  267. package/lib/module/project-board/context.js +2 -0
  268. package/lib/module/project-board/context.js.map +1 -1
  269. package/lib/module/search/Search.js +12 -3
  270. package/lib/module/search/Search.js.map +1 -1
  271. package/lib/module/sidebar/SidebarToolbar.js +29 -15
  272. package/lib/module/sidebar/SidebarToolbar.js.map +1 -1
  273. package/lib/module/text-field/TextField.js +13 -7
  274. package/lib/module/text-field/TextField.js.map +1 -1
  275. package/lib/typescript/commonjs/agent-avatar/AgentAvatar.d.ts +2 -2
  276. package/lib/typescript/commonjs/agent-avatar/AgentAvatar.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/agent-avatar/AgentAvatarProvider.d.ts +4 -0
  278. package/lib/typescript/commonjs/agent-avatar/AgentAvatarProvider.d.ts.map +1 -0
  279. package/lib/typescript/commonjs/agent-avatar/CharacterAvatar.d.ts +4 -0
  280. package/lib/typescript/commonjs/agent-avatar/CharacterAvatar.d.ts.map +1 -0
  281. package/lib/typescript/commonjs/agent-avatar/ProceduralAvatar.d.ts +6 -0
  282. package/lib/typescript/commonjs/agent-avatar/ProceduralAvatar.d.ts.map +1 -0
  283. package/lib/typescript/commonjs/agent-avatar/artwork.d.ts +2 -1
  284. package/lib/typescript/commonjs/agent-avatar/artwork.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/agent-avatar/avatar-color.d.ts +3 -0
  286. package/lib/typescript/commonjs/agent-avatar/avatar-color.d.ts.map +1 -0
  287. package/lib/typescript/commonjs/agent-avatar/character-html.d.ts +4 -0
  288. package/lib/typescript/commonjs/agent-avatar/character-html.d.ts.map +1 -0
  289. package/lib/typescript/commonjs/agent-avatar/character-runtime-module.d.ts +2 -0
  290. package/lib/typescript/commonjs/agent-avatar/character-runtime-module.d.ts.map +1 -0
  291. package/lib/typescript/commonjs/agent-avatar/character-webview.d.ts +24 -0
  292. package/lib/typescript/commonjs/agent-avatar/character-webview.d.ts.map +1 -0
  293. package/lib/typescript/commonjs/agent-avatar/config-character.d.ts +11 -0
  294. package/lib/typescript/commonjs/agent-avatar/config-character.d.ts.map +1 -0
  295. package/lib/typescript/commonjs/agent-avatar/context.d.ts +15 -0
  296. package/lib/typescript/commonjs/agent-avatar/context.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/agent-avatar/index.d.ts +3 -1
  298. package/lib/typescript/commonjs/agent-avatar/index.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/agent-avatar/legacy-contours.d.ts +5 -0
  300. package/lib/typescript/commonjs/agent-avatar/legacy-contours.d.ts.map +1 -0
  301. package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts +40 -0
  302. package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/agent-avatar/messages.d.ts +1 -0
  304. package/lib/typescript/commonjs/agent-avatar/messages.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/agent-avatar/model.d.ts +3 -0
  306. package/lib/typescript/commonjs/agent-avatar/model.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/agent-avatar/types.d.ts +10 -1
  308. package/lib/typescript/commonjs/agent-avatar/types.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/agent-creator/AgentCreatorBase.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts +8 -0
  311. package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts.map +1 -0
  312. package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts +12 -1
  313. package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/agent-creator/ShapeArc.d.ts +11 -2
  315. package/lib/typescript/commonjs/agent-creator/ShapeArc.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/agent-creator/ShapeSilhouette.d.ts +6 -0
  317. package/lib/typescript/commonjs/agent-creator/ShapeSilhouette.d.ts.map +1 -0
  318. package/lib/typescript/commonjs/agent-creator/constants.d.ts +44 -0
  319. package/lib/typescript/commonjs/agent-creator/constants.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/agent-creator/context.d.ts +9 -0
  321. package/lib/typescript/commonjs/agent-creator/context.d.ts.map +1 -1
  322. package/lib/typescript/commonjs/agent-creator/messages.d.ts +10 -0
  323. package/lib/typescript/commonjs/agent-creator/messages.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/agent-creator/shared.d.ts +1 -1
  325. package/lib/typescript/commonjs/agent-creator/shared.d.ts.map +1 -1
  326. package/lib/typescript/commonjs/agent-thinking/AgentThinking.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/agent-thinking/ThinkingLabel.d.ts +7 -0
  328. package/lib/typescript/commonjs/agent-thinking/ThinkingLabel.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/chart-cards/TokensChartCard.d.ts +3 -1
  330. package/lib/typescript/commonjs/chart-cards/TokensChartCard.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/locale/translations/ar.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/locale/translations/bn.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/locale/translations/ca.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/locale/translations/de.d.ts.map +1 -1
  335. package/lib/typescript/commonjs/locale/translations/es.d.ts.map +1 -1
  336. package/lib/typescript/commonjs/locale/translations/fr.d.ts.map +1 -1
  337. package/lib/typescript/commonjs/locale/translations/hi.d.ts.map +1 -1
  338. package/lib/typescript/commonjs/locale/translations/id.d.ts.map +1 -1
  339. package/lib/typescript/commonjs/locale/translations/it.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/locale/translations/ja.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/locale/translations/pt.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/locale/translations/ru.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/locale/translations/tr.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/locale/translations/zh.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/multi-agent-chat/AvatarHandoff.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/multi-agent-chat/ChatAgentProfile.d.ts +11 -0
  347. package/lib/typescript/commonjs/multi-agent-chat/ChatAgentProfile.d.ts.map +1 -0
  348. package/lib/typescript/commonjs/multi-agent-chat/EditorRail.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/multi-agent-chat/MultiAgentChatBase.d.ts.map +1 -1
  350. package/lib/typescript/commonjs/multi-agent-chat/ReplyRow.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/multi-agent-chat/handoff.d.ts +2 -2
  352. package/lib/typescript/commonjs/multi-agent-chat/handoff.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/project-board/CreateTicketDialog.d.ts.map +1 -1
  354. package/lib/typescript/commonjs/project-board/ProjectBoardBase.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/project-board/TicketCornerGenieSurface.web.d.ts.map +1 -1
  356. package/lib/typescript/commonjs/project-board/TicketDetailDialog.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/project-board/TicketGenieSurface.d.ts.map +1 -1
  358. package/lib/typescript/commonjs/project-board/TicketPresence.d.ts +17 -0
  359. package/lib/typescript/commonjs/project-board/TicketPresence.d.ts.map +1 -0
  360. package/lib/typescript/commonjs/project-board/TicketTokenChart.d.ts +5 -0
  361. package/lib/typescript/commonjs/project-board/TicketTokenChart.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/project-board/context.d.ts +2 -0
  363. package/lib/typescript/commonjs/project-board/context.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/search/Search.d.ts.map +1 -1
  365. package/lib/typescript/commonjs/sidebar/SidebarToolbar.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/text-field/TextField.d.ts.map +1 -1
  367. package/lib/typescript/module/agent-avatar/AgentAvatar.d.ts +2 -2
  368. package/lib/typescript/module/agent-avatar/AgentAvatar.d.ts.map +1 -1
  369. package/lib/typescript/module/agent-avatar/AgentAvatarProvider.d.ts +4 -0
  370. package/lib/typescript/module/agent-avatar/AgentAvatarProvider.d.ts.map +1 -0
  371. package/lib/typescript/module/agent-avatar/CharacterAvatar.d.ts +4 -0
  372. package/lib/typescript/module/agent-avatar/CharacterAvatar.d.ts.map +1 -0
  373. package/lib/typescript/module/agent-avatar/ProceduralAvatar.d.ts +6 -0
  374. package/lib/typescript/module/agent-avatar/ProceduralAvatar.d.ts.map +1 -0
  375. package/lib/typescript/module/agent-avatar/artwork.d.ts +2 -1
  376. package/lib/typescript/module/agent-avatar/artwork.d.ts.map +1 -1
  377. package/lib/typescript/module/agent-avatar/avatar-color.d.ts +3 -0
  378. package/lib/typescript/module/agent-avatar/avatar-color.d.ts.map +1 -0
  379. package/lib/typescript/module/agent-avatar/character-html.d.ts +4 -0
  380. package/lib/typescript/module/agent-avatar/character-html.d.ts.map +1 -0
  381. package/lib/typescript/module/agent-avatar/character-runtime-module.d.ts +2 -0
  382. package/lib/typescript/module/agent-avatar/character-runtime-module.d.ts.map +1 -0
  383. package/lib/typescript/module/agent-avatar/character-webview.d.ts +24 -0
  384. package/lib/typescript/module/agent-avatar/character-webview.d.ts.map +1 -0
  385. package/lib/typescript/module/agent-avatar/config-character.d.ts +11 -0
  386. package/lib/typescript/module/agent-avatar/config-character.d.ts.map +1 -0
  387. package/lib/typescript/module/agent-avatar/context.d.ts +15 -0
  388. package/lib/typescript/module/agent-avatar/context.d.ts.map +1 -1
  389. package/lib/typescript/module/agent-avatar/index.d.ts +3 -1
  390. package/lib/typescript/module/agent-avatar/index.d.ts.map +1 -1
  391. package/lib/typescript/module/agent-avatar/legacy-contours.d.ts +5 -0
  392. package/lib/typescript/module/agent-avatar/legacy-contours.d.ts.map +1 -0
  393. package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts +40 -0
  394. package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts.map +1 -0
  395. package/lib/typescript/module/agent-avatar/messages.d.ts +1 -0
  396. package/lib/typescript/module/agent-avatar/messages.d.ts.map +1 -1
  397. package/lib/typescript/module/agent-avatar/model.d.ts +3 -0
  398. package/lib/typescript/module/agent-avatar/model.d.ts.map +1 -1
  399. package/lib/typescript/module/agent-avatar/types.d.ts +10 -1
  400. package/lib/typescript/module/agent-avatar/types.d.ts.map +1 -1
  401. package/lib/typescript/module/agent-creator/AgentCreatorBase.d.ts.map +1 -1
  402. package/lib/typescript/module/agent-creator/CharacterControls.d.ts +8 -0
  403. package/lib/typescript/module/agent-creator/CharacterControls.d.ts.map +1 -0
  404. package/lib/typescript/module/agent-creator/EmotionPicker.d.ts +12 -1
  405. package/lib/typescript/module/agent-creator/EmotionPicker.d.ts.map +1 -1
  406. package/lib/typescript/module/agent-creator/ShapeArc.d.ts +11 -2
  407. package/lib/typescript/module/agent-creator/ShapeArc.d.ts.map +1 -1
  408. package/lib/typescript/module/agent-creator/ShapeSilhouette.d.ts +6 -0
  409. package/lib/typescript/module/agent-creator/ShapeSilhouette.d.ts.map +1 -0
  410. package/lib/typescript/module/agent-creator/constants.d.ts +44 -0
  411. package/lib/typescript/module/agent-creator/constants.d.ts.map +1 -1
  412. package/lib/typescript/module/agent-creator/context.d.ts +9 -0
  413. package/lib/typescript/module/agent-creator/context.d.ts.map +1 -1
  414. package/lib/typescript/module/agent-creator/messages.d.ts +10 -0
  415. package/lib/typescript/module/agent-creator/messages.d.ts.map +1 -1
  416. package/lib/typescript/module/agent-creator/shared.d.ts +1 -1
  417. package/lib/typescript/module/agent-creator/shared.d.ts.map +1 -1
  418. package/lib/typescript/module/agent-thinking/AgentThinking.d.ts.map +1 -1
  419. package/lib/typescript/module/agent-thinking/ThinkingLabel.d.ts +7 -0
  420. package/lib/typescript/module/agent-thinking/ThinkingLabel.d.ts.map +1 -0
  421. package/lib/typescript/module/chart-cards/TokensChartCard.d.ts +3 -1
  422. package/lib/typescript/module/chart-cards/TokensChartCard.d.ts.map +1 -1
  423. package/lib/typescript/module/locale/translations/ar.d.ts.map +1 -1
  424. package/lib/typescript/module/locale/translations/bn.d.ts.map +1 -1
  425. package/lib/typescript/module/locale/translations/ca.d.ts.map +1 -1
  426. package/lib/typescript/module/locale/translations/de.d.ts.map +1 -1
  427. package/lib/typescript/module/locale/translations/es.d.ts.map +1 -1
  428. package/lib/typescript/module/locale/translations/fr.d.ts.map +1 -1
  429. package/lib/typescript/module/locale/translations/hi.d.ts.map +1 -1
  430. package/lib/typescript/module/locale/translations/id.d.ts.map +1 -1
  431. package/lib/typescript/module/locale/translations/it.d.ts.map +1 -1
  432. package/lib/typescript/module/locale/translations/ja.d.ts.map +1 -1
  433. package/lib/typescript/module/locale/translations/pt.d.ts.map +1 -1
  434. package/lib/typescript/module/locale/translations/ru.d.ts.map +1 -1
  435. package/lib/typescript/module/locale/translations/tr.d.ts.map +1 -1
  436. package/lib/typescript/module/locale/translations/zh.d.ts.map +1 -1
  437. package/lib/typescript/module/multi-agent-chat/AvatarHandoff.d.ts.map +1 -1
  438. package/lib/typescript/module/multi-agent-chat/ChatAgentProfile.d.ts +11 -0
  439. package/lib/typescript/module/multi-agent-chat/ChatAgentProfile.d.ts.map +1 -0
  440. package/lib/typescript/module/multi-agent-chat/EditorRail.d.ts.map +1 -1
  441. package/lib/typescript/module/multi-agent-chat/MultiAgentChatBase.d.ts.map +1 -1
  442. package/lib/typescript/module/multi-agent-chat/ReplyRow.d.ts.map +1 -1
  443. package/lib/typescript/module/multi-agent-chat/handoff.d.ts +2 -2
  444. package/lib/typescript/module/multi-agent-chat/handoff.d.ts.map +1 -1
  445. package/lib/typescript/module/project-board/CreateTicketDialog.d.ts.map +1 -1
  446. package/lib/typescript/module/project-board/ProjectBoardBase.d.ts.map +1 -1
  447. package/lib/typescript/module/project-board/TicketCornerGenieSurface.web.d.ts.map +1 -1
  448. package/lib/typescript/module/project-board/TicketDetailDialog.d.ts.map +1 -1
  449. package/lib/typescript/module/project-board/TicketGenieSurface.d.ts.map +1 -1
  450. package/lib/typescript/module/project-board/TicketPresence.d.ts +17 -0
  451. package/lib/typescript/module/project-board/TicketPresence.d.ts.map +1 -0
  452. package/lib/typescript/module/project-board/TicketTokenChart.d.ts +5 -0
  453. package/lib/typescript/module/project-board/TicketTokenChart.d.ts.map +1 -0
  454. package/lib/typescript/module/project-board/context.d.ts +2 -0
  455. package/lib/typescript/module/project-board/context.d.ts.map +1 -1
  456. package/lib/typescript/module/search/Search.d.ts.map +1 -1
  457. package/lib/typescript/module/sidebar/SidebarToolbar.d.ts.map +1 -1
  458. package/lib/typescript/module/text-field/TextField.d.ts.map +1 -1
  459. package/package.json +8 -3
  460. package/src/agent-avatar/AgentAvatar.tsx +16 -296
  461. package/src/agent-avatar/AgentAvatarProvider.tsx +79 -0
  462. package/src/agent-avatar/CharacterAvatar.tsx +260 -0
  463. package/src/agent-avatar/ProceduralAvatar.tsx +303 -0
  464. package/src/agent-avatar/artwork.ts +3 -3
  465. package/src/agent-avatar/avatar-color.ts +17 -0
  466. package/src/agent-avatar/character-html.ts +21 -0
  467. package/src/agent-avatar/character-runtime-module.ts +37 -0
  468. package/src/agent-avatar/character-webview.ts +24 -0
  469. package/src/agent-avatar/config-character.ts +40 -0
  470. package/src/agent-avatar/context.ts +17 -0
  471. package/src/agent-avatar/index.ts +4 -1
  472. package/src/agent-avatar/legacy-contours.ts +76 -0
  473. package/src/agent-avatar/legacy-recipe.ts +123 -0
  474. package/src/agent-avatar/messages.ts +1 -0
  475. package/src/agent-avatar/model.ts +5 -0
  476. package/src/agent-avatar/types.ts +12 -1
  477. package/src/agent-creator/AgentCreatorBase.tsx +338 -39
  478. package/src/agent-creator/CharacterControls.tsx +150 -0
  479. package/src/agent-creator/EmotionPicker.tsx +43 -21
  480. package/src/agent-creator/ShapeArc.tsx +83 -29
  481. package/src/agent-creator/ShapeSilhouette.tsx +65 -0
  482. package/src/agent-creator/constants.ts +30 -0
  483. package/src/agent-creator/messages.ts +19 -0
  484. package/src/agent-creator/shared.ts +1 -15
  485. package/src/agent-thinking/AgentThinking.tsx +7 -70
  486. package/src/agent-thinking/ThinkingLabel.tsx +74 -0
  487. package/src/chart-cards/TokensChartCard.tsx +10 -6
  488. package/src/locale/translations/ar.ts +10 -1
  489. package/src/locale/translations/bn.ts +10 -1
  490. package/src/locale/translations/ca.ts +10 -1
  491. package/src/locale/translations/de.ts +10 -1
  492. package/src/locale/translations/es.ts +10 -1
  493. package/src/locale/translations/fr.ts +10 -1
  494. package/src/locale/translations/hi.ts +10 -1
  495. package/src/locale/translations/id.ts +10 -1
  496. package/src/locale/translations/it.ts +10 -1
  497. package/src/locale/translations/ja.ts +10 -1
  498. package/src/locale/translations/pt.ts +10 -1
  499. package/src/locale/translations/ru.ts +10 -1
  500. package/src/locale/translations/tr.ts +10 -1
  501. package/src/locale/translations/zh.ts +10 -1
  502. package/src/multi-agent-chat/AvatarHandoff.tsx +2 -5
  503. package/src/multi-agent-chat/ChatAgentProfile.tsx +116 -0
  504. package/src/multi-agent-chat/EditorRail.tsx +2 -0
  505. package/src/multi-agent-chat/MultiAgentChatBase.tsx +123 -175
  506. package/src/multi-agent-chat/ReplyRow.tsx +10 -9
  507. package/src/multi-agent-chat/handoff.ts +4 -4
  508. package/src/project-board/CreateTicketDialog.tsx +28 -4
  509. package/src/project-board/ProjectBoardBase.tsx +115 -21
  510. package/src/project-board/TicketCornerGenieSurface.web.tsx +11 -6
  511. package/src/project-board/TicketDetailDialog.tsx +5 -4
  512. package/src/project-board/TicketGenieSurface.tsx +9 -0
  513. package/src/project-board/TicketGenieSurface.web.tsx +1 -1
  514. package/src/project-board/TicketPresence.tsx +137 -0
  515. package/src/project-board/TicketTokenChart.tsx +14 -0
  516. package/src/project-board/context.ts +2 -0
  517. package/src/search/Search.tsx +6 -5
  518. package/src/sidebar/SidebarToolbar.tsx +27 -15
  519. package/src/text-field/TextField.tsx +12 -7
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+
3
+ import { memo, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';
4
+ import { AccessibilityInfo, AppState, PixelRatio, Platform } from 'react-native';
5
+ import { useReducedMotion } from 'react-native-reanimated';
6
+ import { useMessages } from "../locale/messages.js";
7
+ import { StyledView } from "../styles/styled-primitives.js";
8
+ import { drawAvatar } from "./artwork.js";
9
+ import { advanceAttention, createAttention } from "./attention.js";
10
+ import { advanceBlink, createBlink } from "./blink.js";
11
+ import { AvatarDrawingObserver } from "./context.js";
12
+ import { DrawingContext } from "./drawing.js";
13
+ import { ENTRANCE_SECONDS } from "./entrance.js";
14
+ import { easeFace, expressionRig, faceAtSize, gazeAngles } from "./face.js";
15
+ import { AGENT_AVATAR_MESSAGES } from "./messages.js";
16
+ import { Drawing } from "./SvgDrawing.js";
17
+ import { advanceWander, createWander } from "./wander.js";
18
+ import { WORKING_SECONDS } from "./working.js";
19
+ import { jsx as _jsx } from "react/jsx-runtime";
20
+ const TAU = Math.PI * 2;
21
+ const randomSeed = () => {
22
+ if (globalThis.crypto?.getRandomValues) return globalThis.crypto.getRandomValues(new Uint32Array(1))[0];
23
+ return Math.floor(Math.random() * 4294967296) >>> 0;
24
+ };
25
+
26
+ /** Animated procedural artwork; shared geometry, face rig and materials across platforms. */
27
+ function AgentAvatarComponent({
28
+ config,
29
+ size = 64,
30
+ paused = false,
31
+ label,
32
+ locale,
33
+ entranceKey,
34
+ workingKey,
35
+ workingCycles = 1,
36
+ className,
37
+ style,
38
+ accessibilityLabel,
39
+ testID
40
+ }) {
41
+ const {
42
+ messages
43
+ } = useMessages(AGENT_AVATAR_MESSAGES, locale);
44
+ const initialReduced = useReducedMotion();
45
+ const [reduced, setReduced] = useState(initialReduced);
46
+ useEffect(() => {
47
+ const subscription = AccessibilityInfo.addEventListener('reduceMotionChanged', setReduced);
48
+ const media = Platform.OS === 'web' && typeof matchMedia !== 'undefined' ? matchMedia('(prefers-reduced-motion: reduce)') : undefined;
49
+ const change = () => setReduced(media.matches);
50
+ media?.addEventListener('change', change);
51
+ if (media) change();
52
+ return () => {
53
+ subscription?.remove?.();
54
+ media?.removeEventListener('change', change);
55
+ };
56
+ }, []);
57
+ const backingSize = Math.round(size * Math.min(PixelRatio.get() || 1, 2));
58
+ const root = useRef(null);
59
+ const randomized = useRef(false);
60
+ const state = useRef(null);
61
+ if (!state.current) {
62
+ const seed = config.seed >>> 0;
63
+ state.current = {
64
+ phase: seed / 4294967296 * TAU,
65
+ blink: createBlink(seed),
66
+ wander: createWander(seed ^ config.seed, config.family === 'fold'),
67
+ attention: createAttention(seed ^ config.seed),
68
+ shapeMorph: {
69
+ started: 0,
70
+ active: false
71
+ },
72
+ velocity: {},
73
+ entrance: {
74
+ elapsed: ENTRANCE_SECONDS
75
+ },
76
+ working: {
77
+ elapsed: WORKING_SECONDS
78
+ }
79
+ };
80
+ }
81
+ const renderDrawing = () => {
82
+ const context = new DrawingContext(),
83
+ s = state.current;
84
+ const appearance = faceAtSize(config, size),
85
+ target = expressionRig(appearance);
86
+ drawAvatar(context, appearance, s.phase, s.face ?? target, s.gaze ?? gazeAngles(appearance, s.phase, target), size, s.entrance.elapsed, s.working.elapsed, undefined, Math.max(1, Math.floor(workingCycles)), backingSize);
87
+ return context;
88
+ };
89
+ const [drawing, setDrawing] = useState(renderDrawing);
90
+ const observeDrawing = useContext(AvatarDrawingObserver);
91
+ useLayoutEffect(() => {
92
+ observeDrawing?.(drawing);
93
+ }, [observeDrawing, drawing]);
94
+ useEffect(() => {
95
+ const s = state.current,
96
+ cycles = Math.max(1, Math.floor(workingCycles));
97
+ if (!randomized.current) {
98
+ s.wander = createWander(randomSeed() ^ config.seed, config.family === 'fold');
99
+ const seed = randomSeed();
100
+ s.phase = seed / 4294967296 * TAU;
101
+ s.blink = createBlink(seed);
102
+ s.attention = createAttention(randomSeed() ^ config.seed);
103
+ randomized.current = true;
104
+ }
105
+ const duration = WORKING_SECONDS * cycles,
106
+ appearance = faceAtSize(config, size),
107
+ target = expressionRig(appearance);
108
+ if (s.entrance.key !== entranceKey) s.entrance = {
109
+ key: entranceKey,
110
+ elapsed: entranceKey === undefined || paused ? ENTRANCE_SECONDS : 0
111
+ };
112
+ if (s.working.key !== workingKey) {
113
+ s.working = {
114
+ key: workingKey,
115
+ elapsed: workingKey === undefined || paused ? duration : 0
116
+ };
117
+ if (workingKey !== undefined) s.entrance.elapsed = ENTRANCE_SECONDS;
118
+ }
119
+ if (config.idle || workingKey === undefined) s.working.elapsed = duration;
120
+ s.expression ??= s.face ?? target;
121
+ s.face ??= target;
122
+ s.gaze ??= gazeAngles(appearance, s.phase, target, s.wander.point);
123
+ const frozen = paused || reduced || config.motion === 0;
124
+ if (reduced || config.motion === 0) {
125
+ s.entrance.elapsed = ENTRANCE_SECONDS;
126
+ s.working.elapsed = duration;
127
+ }
128
+ if (frozen) {
129
+ s.shapeMorph = {
130
+ started: 0,
131
+ active: false
132
+ };
133
+ s.face = target;
134
+ s.expression = target;
135
+ s.velocity = {};
136
+ if (!paused || config.lookAt !== 'wander') s.gaze = gazeAngles(appearance, s.phase, target, s.wander.point);
137
+ }
138
+ const draw = () => {
139
+ const context = new DrawingContext();
140
+ drawAvatar(context, appearance, s.phase, s.face, s.gaze, size, s.entrance.elapsed, s.working.elapsed, frozen ? undefined : s.shapeMorph, cycles, backingSize);
141
+ setDrawing(context);
142
+ };
143
+ let frame = 0,
144
+ last = 0,
145
+ visible = true,
146
+ active = AppState.currentState !== 'background',
147
+ transitioning = true;
148
+ const tick = now => {
149
+ if (!last) last = now;
150
+ if (now - last >= (transitioning ? 16 : 32)) {
151
+ if (visible && active) {
152
+ const milliseconds = Math.min(now - last, 64),
153
+ seconds = milliseconds / 1000;
154
+ s.entrance.elapsed = Math.min(ENTRANCE_SECONDS, s.entrance.elapsed + seconds);
155
+ s.working.elapsed = Math.min(duration, s.working.elapsed + seconds);
156
+ const base = easeFace(s.expression ?? target, target, s.velocity, seconds);
157
+ s.expression = base;
158
+ transitioning = Object.keys(target).some(key => base[key] !== target[key]) || s.shapeMorph.active;
159
+ s.face = config.family === 'fold' || base.smile > 0.2 ? advanceAttention(s.attention, seconds * 8 / config.duration, base, appearance) : base;
160
+ s.face.blink = config.idle ? 1 : advanceBlink(s.blink, seconds);
161
+ transitioning ||= s.blink.blinking;
162
+ s.phase = (s.phase + seconds * TAU / config.duration) % TAU;
163
+ if (!config.idle && config.lookAt === 'wander') advanceWander(s.wander, seconds * 8 / config.duration, config.family === 'fold');
164
+ const aim = gazeAngles(appearance, s.phase, s.face, s.wander.point),
165
+ ease = 1 - Math.exp(-milliseconds / 85);
166
+ s.gaze = [s.gaze[0] + (aim[0] - s.gaze[0]) * ease, s.gaze[1] + (aim[1] - s.gaze[1]) * ease];
167
+ draw();
168
+ }
169
+ last = now;
170
+ }
171
+ frame = requestAnimationFrame(tick);
172
+ };
173
+ const subscription = AppState.addEventListener('change', next => {
174
+ active = next === 'active';
175
+ last = 0;
176
+ });
177
+ let observer;
178
+ if (Platform.OS === 'web' && typeof IntersectionObserver !== 'undefined' && root.current instanceof Element) {
179
+ observer = new IntersectionObserver(entries => {
180
+ visible = entries[0]?.isIntersecting ?? true;
181
+ });
182
+ observer.observe(root.current);
183
+ }
184
+ draw();
185
+ if (!frozen) frame = requestAnimationFrame(tick);
186
+ return () => {
187
+ cancelAnimationFrame(frame);
188
+ subscription?.remove?.();
189
+ observer?.disconnect();
190
+ };
191
+ }, [config, size, backingSize, paused, reduced, entranceKey, workingKey, workingCycles]);
192
+ return /*#__PURE__*/_jsx(StyledView, {
193
+ ref: root,
194
+ className: className,
195
+ style: [{
196
+ width: size,
197
+ height: size,
198
+ maxWidth: '100%'
199
+ }, style],
200
+ accessible: true,
201
+ accessibilityRole: "image",
202
+ accessibilityLabel: accessibilityLabel ?? label ?? messages.label,
203
+ testID: testID,
204
+ children: /*#__PURE__*/_jsx(Drawing, {
205
+ context: drawing,
206
+ size: size
207
+ })
208
+ });
209
+ }
210
+ export const ProceduralAvatar = /*#__PURE__*/memo(AgentAvatarComponent);
211
+ ProceduralAvatar.displayName = 'AgentAvatar';
212
+ //# sourceMappingURL=ProceduralAvatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useContext","useEffect","useLayoutEffect","useRef","useState","AccessibilityInfo","AppState","PixelRatio","Platform","useReducedMotion","useMessages","StyledView","drawAvatar","advanceAttention","createAttention","advanceBlink","createBlink","AvatarDrawingObserver","DrawingContext","ENTRANCE_SECONDS","easeFace","expressionRig","faceAtSize","gazeAngles","AGENT_AVATAR_MESSAGES","Drawing","advanceWander","createWander","WORKING_SECONDS","jsx","_jsx","TAU","Math","PI","randomSeed","globalThis","crypto","getRandomValues","Uint32Array","floor","random","AgentAvatarComponent","config","size","paused","label","locale","entranceKey","workingKey","workingCycles","className","style","accessibilityLabel","testID","messages","initialReduced","reduced","setReduced","subscription","addEventListener","media","OS","matchMedia","undefined","change","matches","remove","removeEventListener","backingSize","round","min","get","root","randomized","state","current","seed","phase","blink","wander","family","attention","shapeMorph","started","active","velocity","entrance","elapsed","working","renderDrawing","context","s","appearance","target","face","gaze","max","drawing","setDrawing","observeDrawing","cycles","duration","key","idle","expression","point","frozen","motion","lookAt","draw","frame","last","visible","currentState","transitioning","tick","now","milliseconds","seconds","base","Object","keys","some","smile","blinking","aim","ease","exp","requestAnimationFrame","next","observer","IntersectionObserver","Element","entries","isIntersecting","observe","cancelAnimationFrame","disconnect","ref","width","height","maxWidth","accessible","accessibilityRole","children","ProceduralAvatar","displayName"],"sourceRoot":"../../../src","sources":["agent-avatar/ProceduralAvatar.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ import { drawFace, drawSleepMarks } from "./face.js";
6
6
  import { drawFold } from "./fold.js";
7
7
  import { WORKING_SECONDS, workingPose } from "./working.js";
8
8
  const TAU = Math.PI * 2;
9
- function silhouette(c, phase) {
9
+ export function avatarSilhouette(c, phase) {
10
10
  const path = new DrawingPath();
11
11
  if (c.family === 'alien') {
12
12
  const sx = c.alienShape === 'round' ? 1.06 : c.alienShape === 'long' ? 0.86 : 1;
@@ -76,7 +76,7 @@ export function drawAvatar(ctx, c, phase, rig, gaze, cssSize, entranceSeconds =
76
76
  return;
77
77
  }
78
78
  ctx.save();
79
- ctx.clip(silhouette(c, phase));
79
+ ctx.clip(avatarSilhouette(c, phase));
80
80
  const color = (offset, light, alpha = 1) => `hsla(${c.hue + offset},${c.saturation}%,${light}%,${alpha})`;
81
81
  ctx.fillStyle = color(0, c.material === 'solid' ? 55 : 58);
82
82
  ctx.fillRect(-110, -110, 220, 220);
@@ -134,7 +134,7 @@ export function drawAvatar(ctx, c, phase, rig, gaze, cssSize, entranceSeconds =
134
134
  ctx.restore();
135
135
  if (c.face) {
136
136
  ctx.save();
137
- ctx.clip(silhouette(c, phase));
137
+ ctx.clip(avatarSilhouette(c, phase));
138
138
  drawFace(ctx, c, phase, rig, gaze, cssSize);
139
139
  ctx.restore();
140
140
  if (c.idle) drawSleepMarks(ctx, c, phase, gaze);
@@ -1 +1 @@
1
- {"version":3,"names":["DrawingPath","ENTRANCE_SECONDS","entrancePose","drawFace","drawSleepMarks","drawFold","WORKING_SECONDS","workingPose","TAU","Math","PI","silhouette","c","phase","path","family","sx","alienShape","sy","moveTo","bezierCurveTo","quadraticCurveTo","closePath","shape","lineTo","i","a","radius","sin","motion","cos","pow","abs","x","y","drawAvatar","ctx","rig","gaze","cssSize","entranceSeconds","workingSeconds","shapeMorph","workingCycles","backingSize","size","save","entrance","entrySide","foldDirection","translate","rotate","rotation","scale","scaleX","scaleY","globalAlpha","opacity","tremble","bounce","breath","work","tilt","fold","faceOpacity","turn","restore","clip","color","offset","light","alpha","hue","saturation","fillStyle","material","fillRect","drift","complexity","seed","g","createRadialGradient","spread","addColorStop","width","p","side","j","bend","createLinearGradient","fill","grain","globalCompositeOperation","createPattern","face","idle"],"sourceRoot":"../../../src","sources":["agent-avatar/artwork.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DrawingPath","ENTRANCE_SECONDS","entrancePose","drawFace","drawSleepMarks","drawFold","WORKING_SECONDS","workingPose","TAU","Math","PI","avatarSilhouette","c","phase","path","family","sx","alienShape","sy","moveTo","bezierCurveTo","quadraticCurveTo","closePath","shape","lineTo","i","a","radius","sin","motion","cos","pow","abs","x","y","drawAvatar","ctx","rig","gaze","cssSize","entranceSeconds","workingSeconds","shapeMorph","workingCycles","backingSize","size","save","entrance","entrySide","foldDirection","translate","rotate","rotation","scale","scaleX","scaleY","globalAlpha","opacity","tremble","bounce","breath","work","tilt","fold","faceOpacity","turn","restore","clip","color","offset","light","alpha","hue","saturation","fillStyle","material","fillRect","drift","complexity","seed","g","createRadialGradient","spread","addColorStop","width","p","side","j","bend","createLinearGradient","fill","grain","globalCompositeOperation","createPattern","face","idle"],"sourceRoot":"../../../src","sources":["agent-avatar/artwork.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ export function avatarHex(c) {
4
+ const light = (c.lightness ?? 76) / 100,
5
+ a = c.saturation / 100 * Math.min(light, 1 - light);
6
+ const channel = n => {
7
+ const k = (n + c.hue / 30) % 12;
8
+ return Math.round(255 * (light - a * Math.max(-1, Math.min(k - 3, 9 - k, 1)))).toString(16).padStart(2, '0');
9
+ };
10
+ return `#${channel(0)}${channel(8)}${channel(4)}`;
11
+ }
12
+ //# sourceMappingURL=avatar-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["avatarHex","c","light","lightness","a","saturation","Math","min","channel","n","k","hue","round","max","toString","padStart"],"sourceRoot":"../../../src","sources":["agent-avatar/avatar-color.ts"],"mappings":";;AAEA,OAAO,SAASA,SAASA,CACvBC,CAAyD,EACzD;EACA,MAAMC,KAAK,GAAG,CAACD,CAAC,CAACE,SAAS,IAAI,EAAE,IAAI,GAAG;IACrCC,CAAC,GAAIH,CAAC,CAACI,UAAU,GAAG,GAAG,GAAIC,IAAI,CAACC,GAAG,CAACL,KAAK,EAAE,CAAC,GAAGA,KAAK,CAAC;EACvD,MAAMM,OAAO,GAAIC,CAAS,IAAK;IAC7B,MAAMC,CAAC,GAAG,CAACD,CAAC,GAAGR,CAAC,CAACU,GAAG,GAAG,EAAE,IAAI,EAAE;IAC/B,OAAOL,IAAI,CAACM,KAAK,CACf,GAAG,IAAIV,KAAK,GAAGE,CAAC,GAAGE,IAAI,CAACO,GAAG,CAAC,CAAC,CAAC,EAAEP,IAAI,CAACC,GAAG,CAACG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAGA,CAAC,EAAE,CAAC,CAAC,CAAC,CAC5D,CAAC,CACEI,QAAQ,CAAC,EAAE,CAAC,CACZC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACrB,CAAC;EACD,OAAO,IAAIP,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,EAAE;AACnD","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ /** Escape script delimiters in saved recipes; never interpolate appearance text as HTML. */
4
+ export const scriptJson = value => JSON.stringify(value).replace(/</g, '\\u003c').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
5
+ export function characterHtml(runtimeUrl, props) {
6
+ return `<!doctype html><html><head><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><style>html,body{margin:0;width:100%;height:100%;overflow:hidden;background:transparent}canvas{display:block;width:100%;height:100%;touch-action:none}</style></head><body><canvas id="avatar"></canvas><script type="module">
7
+ let controller, latest=${scriptJson(props)};
8
+ const report = type => window.ReactNativeWebView.postMessage(type);
9
+ window.updateCharacter = value => { latest=value; try { controller?.update(value); } catch { report('error'); } };
10
+ try {
11
+ const {createAvatar}=await import(${scriptJson(runtimeUrl)});
12
+ controller=await createAvatar(document.querySelector('canvas'),latest,{onReady:()=>report('ready'),onError:()=>report('error'),onCapabilities:value=>report('capabilities:'+JSON.stringify(value))});
13
+ controller.update(latest);
14
+ report('loaded');
15
+ } catch { report('error'); }
16
+ window.addEventListener('pagehide',()=>controller?.dispose(),{once:true});
17
+ </script></body></html>`;
18
+ }
19
+ //# sourceMappingURL=character-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["scriptJson","value","JSON","stringify","replace","characterHtml","runtimeUrl","props"],"sourceRoot":"../../../src","sources":["agent-avatar/character-html.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,UAAU,GAAIC,KAAc,IACvCC,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC,CAClBG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CACxBA,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAC7BA,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;AAElC,OAAO,SAASC,aAAaA,CAACC,UAAkB,EAAEC,KAAc,EAAE;EAChE,OAAO;AACT,yBAAyBP,UAAU,CAACO,KAAK,CAAC;AAC1C;AACA;AACA;AACA,qCAAqCP,UAAU,CAACM,UAAU,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ /** Native Metro cannot analyze import(variable); load the optional browser module as a module script. */
4
+ const registryKey = Symbol.for('bloom.character.runtimes');
5
+ const pending = new Map();
6
+ export function loadCharacterRuntime(url) {
7
+ const resolved = new URL(url, document.baseURI).href;
8
+ const registry = globalThis[registryKey];
9
+ const existing = registry?.get(resolved);
10
+ if (existing) return Promise.resolve(existing);
11
+ const request = pending.get(resolved);
12
+ if (request) return request;
13
+ const promise = new Promise((resolve, reject) => {
14
+ const script = document.createElement('script');
15
+ script.type = 'module';
16
+ script.src = resolved;
17
+ script.onload = () => {
18
+ script.remove();
19
+ const loaded = globalThis[registryKey]?.get(resolved);
20
+ if (loaded) resolve(loaded);else {
21
+ pending.delete(resolved);
22
+ reject(new Error('Invalid character runtime module'));
23
+ }
24
+ };
25
+ script.onerror = () => {
26
+ script.remove();
27
+ pending.delete(resolved);
28
+ reject(new Error('Character runtime could not be loaded'));
29
+ };
30
+ document.head.appendChild(script);
31
+ });
32
+ pending.set(resolved, promise);
33
+ return promise;
34
+ }
35
+ //# sourceMappingURL=character-runtime-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["registryKey","Symbol","for","pending","Map","loadCharacterRuntime","url","resolved","URL","document","baseURI","href","registry","globalThis","existing","get","Promise","resolve","request","promise","reject","script","createElement","type","src","onload","remove","loaded","delete","Error","onerror","head","appendChild","set"],"sourceRoot":"../../../src","sources":["agent-avatar/character-runtime-module.ts"],"mappings":";;AAAA;AACA,MAAMA,WAAW,GAAGC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAC1D,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAA2B,CAAC;AACnD,OAAO,SAASC,oBAAoBA,CAAIC,GAAW,EAAc;EAC/D,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACF,GAAG,EAAEG,QAAQ,CAACC,OAAO,CAAC,CAACC,IAAI;EACpD,MAAMC,QAAQ,GACZC,UAAU,CACVb,WAAW,CAAC;EACd,MAAMc,QAAQ,GAAGF,QAAQ,EAAEG,GAAG,CAACR,QAAQ,CAAC;EACxC,IAAIO,QAAQ,EAAE,OAAOE,OAAO,CAACC,OAAO,CAACH,QAAa,CAAC;EACnD,MAAMI,OAAO,GAAGf,OAAO,CAACY,GAAG,CAACR,QAAQ,CAAC;EACrC,IAAIW,OAAO,EAAE,OAAOA,OAAO;EAC3B,MAAMC,OAAO,GAAG,IAAIH,OAAO,CAAU,CAACC,OAAO,EAAEG,MAAM,KAAK;IACxD,MAAMC,MAAM,GAAGZ,QAAQ,CAACa,aAAa,CAAC,QAAQ,CAAC;IAC/CD,MAAM,CAACE,IAAI,GAAG,QAAQ;IACtBF,MAAM,CAACG,GAAG,GAAGjB,QAAQ;IACrBc,MAAM,CAACI,MAAM,GAAG,MAAM;MACpBJ,MAAM,CAACK,MAAM,CAAC,CAAC;MACf,MAAMC,MAAM,GACVd,UAAU,CACVb,WAAW,CAAC,EAAEe,GAAG,CAACR,QAAQ,CAAC;MAC7B,IAAIoB,MAAM,EAAEV,OAAO,CAACU,MAAM,CAAC,CAAC,KACvB;QACHxB,OAAO,CAACyB,MAAM,CAACrB,QAAQ,CAAC;QACxBa,MAAM,CAAC,IAAIS,KAAK,CAAC,kCAAkC,CAAC,CAAC;MACvD;IACF,CAAC;IACDR,MAAM,CAACS,OAAO,GAAG,MAAM;MACrBT,MAAM,CAACK,MAAM,CAAC,CAAC;MACfvB,OAAO,CAACyB,MAAM,CAACrB,QAAQ,CAAC;MACxBa,MAAM,CAAC,IAAIS,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC5D,CAAC;IACDpB,QAAQ,CAACsB,IAAI,CAACC,WAAW,CAACX,MAAM,CAAC;EACnC,CAAC,CAAC;EACFlB,OAAO,CAAC8B,GAAG,CAAC1B,QAAQ,EAAEY,OAAO,CAAC;EAC9B,OAAOA,OAAO;AAChB","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ let cached;
4
+ export function characterWebView() {
5
+ if (cached !== undefined) return cached;
6
+ try {
7
+ const module = require('react-native-webview');
8
+ cached = module.WebView;
9
+ } catch {
10
+ cached = null;
11
+ }
12
+ return cached;
13
+ }
14
+ //# sourceMappingURL=character-webview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cached","characterWebView","undefined","module","require","WebView"],"sourceRoot":"../../../src","sources":["agent-avatar/character-webview.ts"],"mappings":";;AAaA,IAAIA,MAA+C;AACnD,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjC,IAAID,MAAM,KAAKE,SAAS,EAAE,OAAOF,MAAM;EACvC,IAAI;IACF,MAAMG,MAAM,GAAGC,OAAO,CAAC,sBAAsB,CAAC;IAC9CJ,MAAM,GAAGG,MAAM,CAACE,OAA+B;EACjD,CAAC,CAAC,MAAM;IACNL,MAAM,GAAG,IAAI;EACf;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ /** Catalog parts extend the existing avatar recipe without discarding its shape or expression fields. */
4
+
5
+ const categories = ['shape', 'color', 'eyes', 'eyewear', 'accessory'];
6
+ const validId = value => typeof value === 'string' && value.length > 0 && value.length <= 63;
7
+
8
+ /** Validate the JSON boundary before passing saved configuration to the optional renderer. */
9
+ export function parseCharacterConfig(value) {
10
+ if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error('Invalid character configuration.');
11
+ const candidate = value;
12
+ if (!validId(candidate.preset)) throw new Error('Invalid character preset.');
13
+ const result = {
14
+ preset: candidate.preset
15
+ };
16
+ if (candidate.bodyColor !== undefined) {
17
+ 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
+ result.bodyColor = candidate.bodyColor.toLowerCase();
19
+ }
20
+ if (candidate.selections !== undefined) {
21
+ if (!candidate.selections || typeof candidate.selections !== 'object' || Array.isArray(candidate.selections)) throw new Error('Invalid character selections.');
22
+ const selections = {};
23
+ for (const [category, id] of Object.entries(candidate.selections)) {
24
+ if (!categories.includes(category) || !validId(id)) throw new Error('Invalid character selection.');
25
+ selections[category] = id;
26
+ }
27
+ result.selections = selections;
28
+ }
29
+ if ('state' in candidate) throw new Error('Opaque character state is not supported.');
30
+ return result;
31
+ }
32
+ //# sourceMappingURL=config-character.js.map
@@ -0,0 +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":[]}
@@ -3,4 +3,9 @@
3
3
  import { createContext } from 'react';
4
4
  /** Internal frame observer. A preview can retain its committed artwork for a handoff. */
5
5
  export const AvatarDrawingObserver = /*#__PURE__*/createContext(null);
6
+ /** The application hosts the optional renderer assets at this module URL. */
7
+ export const CharacterRuntimeContext = /*#__PURE__*/createContext({});
8
+
9
+ /** Only editors subscribe to catalog updates; renderer input stays stable. */
10
+ export const CharacterCapabilitiesContext = /*#__PURE__*/createContext({});
6
11
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","AvatarDrawingObserver"],"sourceRoot":"../../../src","sources":["agent-avatar/context.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAGrC;AACA,OAAO,MAAMC,qBAAqB,gBAAGD,aAAa,CAEhD,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","AvatarDrawingObserver","CharacterRuntimeContext","CharacterCapabilitiesContext"],"sourceRoot":"../../../src","sources":["agent-avatar/context.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAGrC;AACA,OAAO,MAAMC,qBAAqB,gBAAGD,aAAa,CAEhD,IAAI,CAAC;AAOP;AACA,OAAO,MAAME,uBAAuB,gBAAGF,aAAa,CAGjD,CAAC,CAAC,CAAC;;AAEN;AACA,OAAO,MAAMG,4BAA4B,gBAAGH,aAAa,CAGtD,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -2,4 +2,5 @@
2
2
 
3
3
  export { AgentAvatar } from "./AgentAvatar.js";
4
4
  export { ALIEN_CONFIG, ALIEN_PRESETS, ALIEN_SHAPES, DEFAULT_CONFIG, EYES, FAMILIES, FOLD_CONFIG, FOLD_DIRECTIONS, FOLD_MATERIALS, FOLD_PRESETS, FOLD_SHAPES, LOOKS, MASCOT_ACTIVITIES, MASCOT_BUILDS, MASCOT_CONFIG, MASCOT_FINISHES, MASCOT_OUTFITS, MASCOT_PRESETS, MATERIALS, PRESETS, SHAPES, parsePreset } from "./model.js";
5
+ export { AgentAvatarProvider } from "./AgentAvatarProvider.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AgentAvatar","ALIEN_CONFIG","ALIEN_PRESETS","ALIEN_SHAPES","DEFAULT_CONFIG","EYES","FAMILIES","FOLD_CONFIG","FOLD_DIRECTIONS","FOLD_MATERIALS","FOLD_PRESETS","FOLD_SHAPES","LOOKS","MASCOT_ACTIVITIES","MASCOT_BUILDS","MASCOT_CONFIG","MASCOT_FINISHES","MASCOT_OUTFITS","MASCOT_PRESETS","MATERIALS","PRESETS","SHAPES","parsePreset"],"sourceRoot":"../../../src","sources":["agent-avatar/index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,kBAAe;AAC3C,SACEC,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,cAAc,EACdC,IAAI,EACJC,QAAQ,EACRC,WAAW,EACXC,eAAe,EACfC,cAAc,EACdC,YAAY,EACZC,WAAW,EACXC,KAAK,EACLC,iBAAiB,EACjBC,aAAa,EACbC,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,WAAW,QACN,YAAS","ignoreList":[]}
1
+ {"version":3,"names":["AgentAvatar","ALIEN_CONFIG","ALIEN_PRESETS","ALIEN_SHAPES","DEFAULT_CONFIG","EYES","FAMILIES","FOLD_CONFIG","FOLD_DIRECTIONS","FOLD_MATERIALS","FOLD_PRESETS","FOLD_SHAPES","LOOKS","MASCOT_ACTIVITIES","MASCOT_BUILDS","MASCOT_CONFIG","MASCOT_FINISHES","MASCOT_OUTFITS","MASCOT_PRESETS","MATERIALS","PRESETS","SHAPES","parsePreset","AgentAvatarProvider"],"sourceRoot":"../../../src","sources":["agent-avatar/index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,kBAAe;AAC3C,SACEC,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,cAAc,EACdC,IAAI,EACJC,QAAQ,EACRC,WAAW,EACXC,eAAe,EACfC,cAAc,EACdC,YAAY,EACZC,WAAW,EACXC,KAAK,EACLC,iBAAiB,EACjBC,aAAa,EACbC,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,WAAW,QACN,YAAS;AAIhB,SAASC,mBAAmB,QAAQ,0BAAuB","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ import { avatarSilhouette } from "./artwork.js";
4
+ import { DrawingContext } from "./drawing.js";
5
+ import { expressionRig } from "./face.js";
6
+ import { drawFold } from "./fold.js";
7
+ /** Sample the existing artwork, so a migrated silhouette has one source of truth. */
8
+ function samplePath(path) {
9
+ const points = [];
10
+ let current = [0, 0];
11
+ for (const {
12
+ kind,
13
+ values: v
14
+ } of path.commands) {
15
+ if (kind === 'M' || kind === 'L') {
16
+ current = [v[0], v[1]];
17
+ points.push(current);
18
+ } else if (kind === 'C' || kind === 'Q') {
19
+ const from = current;
20
+ for (let step = 1; step <= 24; step++) {
21
+ const t = step / 24,
22
+ u = 1 - t;
23
+ current = kind === 'C' ? [u ** 3 * from[0] + 3 * u * u * t * v[0] + 3 * u * t * t * v[2] + t ** 3 * v[4], u ** 3 * from[1] + 3 * u * u * t * v[1] + 3 * u * t * t * v[3] + t ** 3 * v[5]] : [u * u * from[0] + 2 * u * t * v[0] + t * t * v[2], u * u * from[1] + 2 * u * t * v[1] + t * t * v[3]];
24
+ points.push(current);
25
+ }
26
+ } else if (kind !== 'Z') {
27
+ throw new Error('Unsupported legacy contour command');
28
+ }
29
+ }
30
+ return points;
31
+ }
32
+
33
+ /** Engine coordinates: Y upwards, the existing circular body's radius is one. */
34
+ export function legacyContours(config) {
35
+ const rest = {
36
+ ...config,
37
+ motion: 0,
38
+ idle: false,
39
+ face: false
40
+ };
41
+ if (rest.family !== 'fold') {
42
+ return [samplePath(avatarSilhouette(rest, 0)).map(([x, y]) => [x / 83, -y / 83])];
43
+ }
44
+ const morph = {
45
+ started: 0,
46
+ active: false
47
+ };
48
+ drawFold(new DrawingContext(), rest, 0, expressionRig(rest), [0, 0], 200, null, 0, 1, 0, morph);
49
+ const geometry = morph.last;
50
+ const direction = rest.foldDirection === 'left' ? -1 : 1;
51
+ return [geometry.paper, geometry.back].map(path => samplePath(path).map(([x, y]) => [x * geometry.sx * direction / 83, -y / 83]));
52
+ }
53
+ //# sourceMappingURL=legacy-contours.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["avatarSilhouette","DrawingContext","expressionRig","drawFold","samplePath","path","points","current","kind","values","v","commands","push","from","step","t","u","Error","legacyContours","config","rest","motion","idle","face","family","map","x","y","morph","started","active","geometry","last","direction","foldDirection","paper","back","sx"],"sourceRoot":"../../../src","sources":["agent-avatar/legacy-contours.ts"],"mappings":"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","ignoreList":[]}