@oxy.so/bloom 7.0.1 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/character-runtime/README.md +55 -0
- package/assets/character-runtime/appearance-codec.mjs +149 -0
- package/assets/character-runtime/integrity.json +6 -0
- package/assets/character-runtime/legacy-engine.mjs +105 -0
- package/assets/character-runtime/legacy-geometry.mjs +166 -0
- package/assets/character-runtime/legacy-worker.mjs +85 -0
- package/assets/character-runtime/orbit-characters.data +0 -0
- package/assets/character-runtime/orbit-characters.mjs +30 -0
- package/assets/character-runtime/orbit-characters.wasm +0 -0
- package/assets/character-runtime/preparation-worker.mjs +19 -0
- package/assets/character-runtime/runtime.mjs +820 -0
- package/assets/character-runtime/thumbnails/eyes/crescent_inset.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/dots.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/double_highlights.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/highlight_capsules.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/oval.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/round_inset.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/sleepy_lids.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/sparkle_capsules.png +0 -0
- package/assets/character-runtime/thumbnails/eyes/swept_lids.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/capsule.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/circle.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/circle_two_ears.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/four_lobed_butterfly.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/heart.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/rounded_cube.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/rounded_diamond.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/rounded_head_two_ears.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/rounded_triangle.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/six_lobed_flower.png +0 -0
- package/assets/character-runtime/thumbnails/shapes/twelve_scalloped_rosette.png +0 -0
- package/docs/adoption-matrix.mdx +9 -9
- package/docs/agent-avatar.mdx +35 -10
- package/docs/agent-creator.mdx +12 -4
- package/docs/multi-agent-chat.mdx +12 -0
- package/docs/project-board.mdx +3 -3
- package/lib/commonjs/agent-avatar/AgentAvatar.js +15 -203
- package/lib/commonjs/agent-avatar/AgentAvatar.js.map +1 -1
- package/lib/commonjs/agent-avatar/AgentAvatarProvider.js +64 -0
- package/lib/commonjs/agent-avatar/AgentAvatarProvider.js.map +1 -0
- package/lib/commonjs/agent-avatar/CharacterAvatar.js +211 -0
- package/lib/commonjs/agent-avatar/CharacterAvatar.js.map +1 -0
- package/lib/commonjs/agent-avatar/ProceduralAvatar.js +216 -0
- package/lib/commonjs/agent-avatar/ProceduralAvatar.js.map +1 -0
- package/lib/commonjs/agent-avatar/artwork.js +4 -3
- package/lib/commonjs/agent-avatar/artwork.js.map +1 -1
- package/lib/commonjs/agent-avatar/avatar-color.js +16 -0
- package/lib/commonjs/agent-avatar/avatar-color.js.map +1 -0
- package/lib/commonjs/agent-avatar/character-html.js +25 -0
- package/lib/commonjs/agent-avatar/character-html.js.map +1 -0
- package/lib/commonjs/agent-avatar/character-runtime-module.js +39 -0
- package/lib/commonjs/agent-avatar/character-runtime-module.js.map +1 -0
- package/lib/commonjs/agent-avatar/character-webview.js +18 -0
- package/lib/commonjs/agent-avatar/character-webview.js.map +1 -0
- package/lib/commonjs/agent-avatar/config-character.js +36 -0
- package/lib/commonjs/agent-avatar/config-character.js.map +1 -0
- package/lib/commonjs/agent-avatar/context.js +3 -1
- package/lib/commonjs/agent-avatar/context.js.map +1 -1
- package/lib/commonjs/agent-avatar/index.js +7 -0
- package/lib/commonjs/agent-avatar/index.js.map +1 -1
- package/lib/commonjs/agent-avatar/legacy-contours.js +57 -0
- package/lib/commonjs/agent-avatar/legacy-contours.js.map +1 -0
- package/lib/commonjs/agent-avatar/legacy-recipe.js +112 -0
- package/lib/commonjs/agent-avatar/legacy-recipe.js.map +1 -0
- package/lib/commonjs/agent-avatar/messages.js +2 -1
- package/lib/commonjs/agent-avatar/messages.js.map +1 -1
- package/lib/commonjs/agent-avatar/model.js +2 -0
- package/lib/commonjs/agent-avatar/model.js.map +1 -1
- package/lib/commonjs/agent-creator/AgentCreatorBase.js +245 -21
- package/lib/commonjs/agent-creator/AgentCreatorBase.js.map +1 -1
- package/lib/commonjs/agent-creator/CharacterControls.js +113 -0
- package/lib/commonjs/agent-creator/CharacterControls.js.map +1 -0
- package/lib/commonjs/agent-creator/EmotionPicker.js +51 -18
- package/lib/commonjs/agent-creator/EmotionPicker.js.map +1 -1
- package/lib/commonjs/agent-creator/ShapeArc.js +56 -26
- package/lib/commonjs/agent-creator/ShapeArc.js.map +1 -1
- package/lib/commonjs/agent-creator/ShapeSilhouette.js +62 -0
- package/lib/commonjs/agent-creator/ShapeSilhouette.js.map +1 -0
- package/lib/commonjs/agent-creator/constants.js +48 -1
- package/lib/commonjs/agent-creator/constants.js.map +1 -1
- package/lib/commonjs/agent-creator/messages.js +9 -0
- package/lib/commonjs/agent-creator/messages.js.map +1 -1
- package/lib/commonjs/agent-creator/shared.js +7 -10
- package/lib/commonjs/agent-creator/shared.js.map +1 -1
- package/lib/commonjs/agent-thinking/AgentThinking.js +4 -62
- package/lib/commonjs/agent-thinking/AgentThinking.js.map +1 -1
- package/lib/commonjs/agent-thinking/ThinkingLabel.js +77 -0
- package/lib/commonjs/agent-thinking/ThinkingLabel.js.map +1 -0
- package/lib/commonjs/chart-cards/TokensChartCard.js +20 -5
- package/lib/commonjs/chart-cards/TokensChartCard.js.map +1 -1
- package/lib/commonjs/locale/translations/ar.js +11 -1
- package/lib/commonjs/locale/translations/ar.js.map +1 -1
- package/lib/commonjs/locale/translations/bn.js +11 -1
- package/lib/commonjs/locale/translations/bn.js.map +1 -1
- package/lib/commonjs/locale/translations/ca.js +11 -1
- package/lib/commonjs/locale/translations/ca.js.map +1 -1
- package/lib/commonjs/locale/translations/de.js +11 -1
- package/lib/commonjs/locale/translations/de.js.map +1 -1
- package/lib/commonjs/locale/translations/es.js +11 -1
- package/lib/commonjs/locale/translations/es.js.map +1 -1
- package/lib/commonjs/locale/translations/fr.js +11 -1
- package/lib/commonjs/locale/translations/fr.js.map +1 -1
- package/lib/commonjs/locale/translations/hi.js +11 -1
- package/lib/commonjs/locale/translations/hi.js.map +1 -1
- package/lib/commonjs/locale/translations/id.js +11 -1
- package/lib/commonjs/locale/translations/id.js.map +1 -1
- package/lib/commonjs/locale/translations/it.js +11 -1
- package/lib/commonjs/locale/translations/it.js.map +1 -1
- package/lib/commonjs/locale/translations/ja.js +11 -1
- package/lib/commonjs/locale/translations/ja.js.map +1 -1
- package/lib/commonjs/locale/translations/pt.js +11 -1
- package/lib/commonjs/locale/translations/pt.js.map +1 -1
- package/lib/commonjs/locale/translations/ru.js +11 -1
- package/lib/commonjs/locale/translations/ru.js.map +1 -1
- package/lib/commonjs/locale/translations/tr.js +11 -1
- package/lib/commonjs/locale/translations/tr.js.map +1 -1
- package/lib/commonjs/locale/translations/zh.js +11 -1
- package/lib/commonjs/locale/translations/zh.js.map +1 -1
- package/lib/commonjs/multi-agent-chat/AvatarHandoff.js +2 -4
- package/lib/commonjs/multi-agent-chat/AvatarHandoff.js.map +1 -1
- package/lib/commonjs/multi-agent-chat/ChatAgentProfile.js +97 -0
- package/lib/commonjs/multi-agent-chat/ChatAgentProfile.js.map +1 -0
- package/lib/commonjs/multi-agent-chat/EditorRail.js +4 -0
- package/lib/commonjs/multi-agent-chat/EditorRail.js.map +1 -1
- package/lib/commonjs/multi-agent-chat/MultiAgentChatBase.js +89 -126
- package/lib/commonjs/multi-agent-chat/MultiAgentChatBase.js.map +1 -1
- package/lib/commonjs/multi-agent-chat/ReplyRow.js +8 -11
- package/lib/commonjs/multi-agent-chat/ReplyRow.js.map +1 -1
- package/lib/commonjs/multi-agent-chat/handoff.js +5 -5
- package/lib/commonjs/multi-agent-chat/handoff.js.map +1 -1
- package/lib/commonjs/project-board/CreateTicketDialog.js +33 -2
- package/lib/commonjs/project-board/CreateTicketDialog.js.map +1 -1
- package/lib/commonjs/project-board/ProjectBoardBase.js +137 -38
- package/lib/commonjs/project-board/ProjectBoardBase.js.map +1 -1
- package/lib/commonjs/project-board/TicketCornerGenieSurface.web.js +34 -28
- package/lib/commonjs/project-board/TicketCornerGenieSurface.web.js.map +1 -1
- package/lib/commonjs/project-board/TicketDetailDialog.js +6 -3
- package/lib/commonjs/project-board/TicketDetailDialog.js.map +1 -1
- package/lib/commonjs/project-board/TicketGenieSurface.js +17 -7
- package/lib/commonjs/project-board/TicketGenieSurface.js.map +1 -1
- package/lib/commonjs/project-board/TicketGenieSurface.web.js +1 -1
- package/lib/commonjs/project-board/TicketGenieSurface.web.js.map +1 -1
- package/lib/commonjs/project-board/TicketPresence.js +125 -0
- package/lib/commonjs/project-board/TicketPresence.js.map +1 -0
- package/lib/commonjs/project-board/TicketTokenChart.js +23 -0
- package/lib/commonjs/project-board/TicketTokenChart.js.map +1 -0
- package/lib/commonjs/project-board/context.js +3 -1
- package/lib/commonjs/project-board/context.js.map +1 -1
- package/lib/commonjs/search/Search.js +12 -3
- package/lib/commonjs/search/Search.js.map +1 -1
- package/lib/commonjs/sidebar/SidebarToolbar.js +28 -14
- package/lib/commonjs/sidebar/SidebarToolbar.js.map +1 -1
- package/lib/commonjs/text-field/TextField.js +13 -7
- package/lib/commonjs/text-field/TextField.js.map +1 -1
- package/lib/module/agent-avatar/AgentAvatar.js +16 -204
- package/lib/module/agent-avatar/AgentAvatar.js.map +1 -1
- package/lib/module/agent-avatar/AgentAvatarProvider.js +60 -0
- package/lib/module/agent-avatar/AgentAvatarProvider.js.map +1 -0
- package/lib/module/agent-avatar/CharacterAvatar.js +207 -0
- package/lib/module/agent-avatar/CharacterAvatar.js.map +1 -0
- package/lib/module/agent-avatar/ProceduralAvatar.js +212 -0
- package/lib/module/agent-avatar/ProceduralAvatar.js.map +1 -0
- package/lib/module/agent-avatar/artwork.js +3 -3
- package/lib/module/agent-avatar/artwork.js.map +1 -1
- package/lib/module/agent-avatar/avatar-color.js +12 -0
- package/lib/module/agent-avatar/avatar-color.js.map +1 -0
- package/lib/module/agent-avatar/character-html.js +19 -0
- package/lib/module/agent-avatar/character-html.js.map +1 -0
- package/lib/module/agent-avatar/character-runtime-module.js +35 -0
- package/lib/module/agent-avatar/character-runtime-module.js.map +1 -0
- package/lib/module/agent-avatar/character-webview.js +14 -0
- package/lib/module/agent-avatar/character-webview.js.map +1 -0
- package/lib/module/agent-avatar/config-character.js +32 -0
- package/lib/module/agent-avatar/config-character.js.map +1 -0
- package/lib/module/agent-avatar/context.js +2 -0
- package/lib/module/agent-avatar/context.js.map +1 -1
- package/lib/module/agent-avatar/index.js +1 -0
- package/lib/module/agent-avatar/index.js.map +1 -1
- package/lib/module/agent-avatar/legacy-contours.js +53 -0
- package/lib/module/agent-avatar/legacy-contours.js.map +1 -0
- package/lib/module/agent-avatar/legacy-recipe.js +104 -0
- package/lib/module/agent-avatar/legacy-recipe.js.map +1 -0
- package/lib/module/agent-avatar/messages.js +2 -1
- package/lib/module/agent-avatar/messages.js.map +1 -1
- package/lib/module/agent-avatar/model.js +2 -0
- package/lib/module/agent-avatar/model.js.map +1 -1
- package/lib/module/agent-creator/AgentCreatorBase.js +242 -18
- package/lib/module/agent-creator/AgentCreatorBase.js.map +1 -1
- package/lib/module/agent-creator/CharacterControls.js +110 -0
- package/lib/module/agent-creator/CharacterControls.js.map +1 -0
- package/lib/module/agent-creator/EmotionPicker.js +52 -19
- package/lib/module/agent-creator/EmotionPicker.js.map +1 -1
- package/lib/module/agent-creator/ShapeArc.js +58 -28
- package/lib/module/agent-creator/ShapeArc.js.map +1 -1
- package/lib/module/agent-creator/ShapeSilhouette.js +57 -0
- package/lib/module/agent-creator/ShapeSilhouette.js.map +1 -0
- package/lib/module/agent-creator/constants.js +47 -0
- package/lib/module/agent-creator/constants.js.map +1 -1
- package/lib/module/agent-creator/messages.js +9 -0
- package/lib/module/agent-creator/messages.js.map +1 -1
- package/lib/module/agent-creator/shared.js +1 -9
- package/lib/module/agent-creator/shared.js.map +1 -1
- package/lib/module/agent-thinking/AgentThinking.js +5 -63
- package/lib/module/agent-thinking/AgentThinking.js.map +1 -1
- package/lib/module/agent-thinking/ThinkingLabel.js +73 -0
- package/lib/module/agent-thinking/ThinkingLabel.js.map +1 -0
- package/lib/module/chart-cards/TokensChartCard.js +20 -5
- package/lib/module/chart-cards/TokensChartCard.js.map +1 -1
- package/lib/module/locale/translations/ar.js +11 -1
- package/lib/module/locale/translations/ar.js.map +1 -1
- package/lib/module/locale/translations/bn.js +11 -1
- package/lib/module/locale/translations/bn.js.map +1 -1
- package/lib/module/locale/translations/ca.js +11 -1
- package/lib/module/locale/translations/ca.js.map +1 -1
- package/lib/module/locale/translations/de.js +11 -1
- package/lib/module/locale/translations/de.js.map +1 -1
- package/lib/module/locale/translations/es.js +11 -1
- package/lib/module/locale/translations/es.js.map +1 -1
- package/lib/module/locale/translations/fr.js +11 -1
- package/lib/module/locale/translations/fr.js.map +1 -1
- package/lib/module/locale/translations/hi.js +11 -1
- package/lib/module/locale/translations/hi.js.map +1 -1
- package/lib/module/locale/translations/id.js +11 -1
- package/lib/module/locale/translations/id.js.map +1 -1
- package/lib/module/locale/translations/it.js +11 -1
- package/lib/module/locale/translations/it.js.map +1 -1
- package/lib/module/locale/translations/ja.js +11 -1
- package/lib/module/locale/translations/ja.js.map +1 -1
- package/lib/module/locale/translations/pt.js +11 -1
- package/lib/module/locale/translations/pt.js.map +1 -1
- package/lib/module/locale/translations/ru.js +11 -1
- package/lib/module/locale/translations/ru.js.map +1 -1
- package/lib/module/locale/translations/tr.js +11 -1
- package/lib/module/locale/translations/tr.js.map +1 -1
- package/lib/module/locale/translations/zh.js +11 -1
- package/lib/module/locale/translations/zh.js.map +1 -1
- package/lib/module/multi-agent-chat/AvatarHandoff.js +3 -5
- package/lib/module/multi-agent-chat/AvatarHandoff.js.map +1 -1
- package/lib/module/multi-agent-chat/ChatAgentProfile.js +94 -0
- package/lib/module/multi-agent-chat/ChatAgentProfile.js.map +1 -0
- package/lib/module/multi-agent-chat/EditorRail.js +4 -0
- package/lib/module/multi-agent-chat/EditorRail.js.map +1 -1
- package/lib/module/multi-agent-chat/MultiAgentChatBase.js +89 -126
- package/lib/module/multi-agent-chat/MultiAgentChatBase.js.map +1 -1
- package/lib/module/multi-agent-chat/ReplyRow.js +9 -12
- package/lib/module/multi-agent-chat/ReplyRow.js.map +1 -1
- package/lib/module/multi-agent-chat/handoff.js +4 -4
- package/lib/module/multi-agent-chat/handoff.js.map +1 -1
- package/lib/module/project-board/CreateTicketDialog.js +33 -2
- package/lib/module/project-board/CreateTicketDialog.js.map +1 -1
- package/lib/module/project-board/ProjectBoardBase.js +138 -39
- package/lib/module/project-board/ProjectBoardBase.js.map +1 -1
- package/lib/module/project-board/TicketCornerGenieSurface.web.js +35 -29
- package/lib/module/project-board/TicketCornerGenieSurface.web.js.map +1 -1
- package/lib/module/project-board/TicketDetailDialog.js +7 -4
- package/lib/module/project-board/TicketDetailDialog.js.map +1 -1
- package/lib/module/project-board/TicketGenieSurface.js +17 -7
- package/lib/module/project-board/TicketGenieSurface.js.map +1 -1
- package/lib/module/project-board/TicketGenieSurface.web.js +1 -1
- package/lib/module/project-board/TicketGenieSurface.web.js.map +1 -1
- package/lib/module/project-board/TicketPresence.js +119 -0
- package/lib/module/project-board/TicketPresence.js.map +1 -0
- package/lib/module/project-board/TicketTokenChart.js +20 -0
- package/lib/module/project-board/TicketTokenChart.js.map +1 -0
- package/lib/module/project-board/context.js +2 -0
- package/lib/module/project-board/context.js.map +1 -1
- package/lib/module/search/Search.js +12 -3
- package/lib/module/search/Search.js.map +1 -1
- package/lib/module/sidebar/SidebarToolbar.js +29 -15
- package/lib/module/sidebar/SidebarToolbar.js.map +1 -1
- package/lib/module/text-field/TextField.js +13 -7
- package/lib/module/text-field/TextField.js.map +1 -1
- package/lib/typescript/commonjs/agent-avatar/AgentAvatar.d.ts +2 -2
- package/lib/typescript/commonjs/agent-avatar/AgentAvatar.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-avatar/AgentAvatarProvider.d.ts +4 -0
- package/lib/typescript/commonjs/agent-avatar/AgentAvatarProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/CharacterAvatar.d.ts +4 -0
- package/lib/typescript/commonjs/agent-avatar/CharacterAvatar.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/ProceduralAvatar.d.ts +6 -0
- package/lib/typescript/commonjs/agent-avatar/ProceduralAvatar.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/artwork.d.ts +2 -1
- package/lib/typescript/commonjs/agent-avatar/artwork.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-avatar/avatar-color.d.ts +3 -0
- package/lib/typescript/commonjs/agent-avatar/avatar-color.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/character-html.d.ts +4 -0
- package/lib/typescript/commonjs/agent-avatar/character-html.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/character-runtime-module.d.ts +2 -0
- package/lib/typescript/commonjs/agent-avatar/character-runtime-module.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/character-webview.d.ts +24 -0
- package/lib/typescript/commonjs/agent-avatar/character-webview.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/config-character.d.ts +11 -0
- package/lib/typescript/commonjs/agent-avatar/config-character.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/context.d.ts +12 -0
- package/lib/typescript/commonjs/agent-avatar/context.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-avatar/index.d.ts +3 -1
- package/lib/typescript/commonjs/agent-avatar/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-avatar/legacy-contours.d.ts +5 -0
- package/lib/typescript/commonjs/agent-avatar/legacy-contours.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts +40 -0
- package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-avatar/messages.d.ts +1 -0
- package/lib/typescript/commonjs/agent-avatar/messages.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-avatar/model.d.ts +3 -0
- package/lib/typescript/commonjs/agent-avatar/model.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-avatar/types.d.ts +10 -1
- package/lib/typescript/commonjs/agent-avatar/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-creator/AgentCreatorBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts +8 -0
- package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts +12 -1
- package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-creator/ShapeArc.d.ts +11 -2
- package/lib/typescript/commonjs/agent-creator/ShapeArc.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-creator/ShapeSilhouette.d.ts +6 -0
- package/lib/typescript/commonjs/agent-creator/ShapeSilhouette.d.ts.map +1 -0
- package/lib/typescript/commonjs/agent-creator/constants.d.ts +44 -0
- package/lib/typescript/commonjs/agent-creator/constants.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-creator/context.d.ts +9 -0
- package/lib/typescript/commonjs/agent-creator/context.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-creator/messages.d.ts +10 -0
- package/lib/typescript/commonjs/agent-creator/messages.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-creator/shared.d.ts +1 -1
- package/lib/typescript/commonjs/agent-creator/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-thinking/AgentThinking.d.ts.map +1 -1
- package/lib/typescript/commonjs/agent-thinking/ThinkingLabel.d.ts +7 -0
- package/lib/typescript/commonjs/agent-thinking/ThinkingLabel.d.ts.map +1 -0
- package/lib/typescript/commonjs/chart-cards/TokensChartCard.d.ts +3 -1
- package/lib/typescript/commonjs/chart-cards/TokensChartCard.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/ar.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/bn.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/ca.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/de.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/es.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/fr.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/hi.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/id.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/it.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/ja.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/pt.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/ru.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/tr.d.ts.map +1 -1
- package/lib/typescript/commonjs/locale/translations/zh.d.ts.map +1 -1
- package/lib/typescript/commonjs/multi-agent-chat/AvatarHandoff.d.ts.map +1 -1
- package/lib/typescript/commonjs/multi-agent-chat/ChatAgentProfile.d.ts +11 -0
- package/lib/typescript/commonjs/multi-agent-chat/ChatAgentProfile.d.ts.map +1 -0
- package/lib/typescript/commonjs/multi-agent-chat/EditorRail.d.ts.map +1 -1
- package/lib/typescript/commonjs/multi-agent-chat/MultiAgentChatBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/multi-agent-chat/ReplyRow.d.ts.map +1 -1
- package/lib/typescript/commonjs/multi-agent-chat/handoff.d.ts +2 -2
- package/lib/typescript/commonjs/multi-agent-chat/handoff.d.ts.map +1 -1
- package/lib/typescript/commonjs/project-board/CreateTicketDialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/project-board/ProjectBoardBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/project-board/TicketCornerGenieSurface.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/project-board/TicketDetailDialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/project-board/TicketGenieSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/project-board/TicketPresence.d.ts +17 -0
- package/lib/typescript/commonjs/project-board/TicketPresence.d.ts.map +1 -0
- package/lib/typescript/commonjs/project-board/TicketTokenChart.d.ts +5 -0
- package/lib/typescript/commonjs/project-board/TicketTokenChart.d.ts.map +1 -0
- package/lib/typescript/commonjs/project-board/context.d.ts +2 -0
- package/lib/typescript/commonjs/project-board/context.d.ts.map +1 -1
- package/lib/typescript/commonjs/search/Search.d.ts.map +1 -1
- package/lib/typescript/commonjs/sidebar/SidebarToolbar.d.ts.map +1 -1
- package/lib/typescript/commonjs/text-field/TextField.d.ts.map +1 -1
- package/lib/typescript/module/agent-avatar/AgentAvatar.d.ts +2 -2
- package/lib/typescript/module/agent-avatar/AgentAvatar.d.ts.map +1 -1
- package/lib/typescript/module/agent-avatar/AgentAvatarProvider.d.ts +4 -0
- package/lib/typescript/module/agent-avatar/AgentAvatarProvider.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/CharacterAvatar.d.ts +4 -0
- package/lib/typescript/module/agent-avatar/CharacterAvatar.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/ProceduralAvatar.d.ts +6 -0
- package/lib/typescript/module/agent-avatar/ProceduralAvatar.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/artwork.d.ts +2 -1
- package/lib/typescript/module/agent-avatar/artwork.d.ts.map +1 -1
- package/lib/typescript/module/agent-avatar/avatar-color.d.ts +3 -0
- package/lib/typescript/module/agent-avatar/avatar-color.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/character-html.d.ts +4 -0
- package/lib/typescript/module/agent-avatar/character-html.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/character-runtime-module.d.ts +2 -0
- package/lib/typescript/module/agent-avatar/character-runtime-module.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/character-webview.d.ts +24 -0
- package/lib/typescript/module/agent-avatar/character-webview.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/config-character.d.ts +11 -0
- package/lib/typescript/module/agent-avatar/config-character.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/context.d.ts +12 -0
- package/lib/typescript/module/agent-avatar/context.d.ts.map +1 -1
- package/lib/typescript/module/agent-avatar/index.d.ts +3 -1
- package/lib/typescript/module/agent-avatar/index.d.ts.map +1 -1
- package/lib/typescript/module/agent-avatar/legacy-contours.d.ts +5 -0
- package/lib/typescript/module/agent-avatar/legacy-contours.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts +40 -0
- package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts.map +1 -0
- package/lib/typescript/module/agent-avatar/messages.d.ts +1 -0
- package/lib/typescript/module/agent-avatar/messages.d.ts.map +1 -1
- package/lib/typescript/module/agent-avatar/model.d.ts +3 -0
- package/lib/typescript/module/agent-avatar/model.d.ts.map +1 -1
- package/lib/typescript/module/agent-avatar/types.d.ts +10 -1
- package/lib/typescript/module/agent-avatar/types.d.ts.map +1 -1
- package/lib/typescript/module/agent-creator/AgentCreatorBase.d.ts.map +1 -1
- package/lib/typescript/module/agent-creator/CharacterControls.d.ts +8 -0
- package/lib/typescript/module/agent-creator/CharacterControls.d.ts.map +1 -0
- package/lib/typescript/module/agent-creator/EmotionPicker.d.ts +12 -1
- package/lib/typescript/module/agent-creator/EmotionPicker.d.ts.map +1 -1
- package/lib/typescript/module/agent-creator/ShapeArc.d.ts +11 -2
- package/lib/typescript/module/agent-creator/ShapeArc.d.ts.map +1 -1
- package/lib/typescript/module/agent-creator/ShapeSilhouette.d.ts +6 -0
- package/lib/typescript/module/agent-creator/ShapeSilhouette.d.ts.map +1 -0
- package/lib/typescript/module/agent-creator/constants.d.ts +44 -0
- package/lib/typescript/module/agent-creator/constants.d.ts.map +1 -1
- package/lib/typescript/module/agent-creator/context.d.ts +9 -0
- package/lib/typescript/module/agent-creator/context.d.ts.map +1 -1
- package/lib/typescript/module/agent-creator/messages.d.ts +10 -0
- package/lib/typescript/module/agent-creator/messages.d.ts.map +1 -1
- package/lib/typescript/module/agent-creator/shared.d.ts +1 -1
- package/lib/typescript/module/agent-creator/shared.d.ts.map +1 -1
- package/lib/typescript/module/agent-thinking/AgentThinking.d.ts.map +1 -1
- package/lib/typescript/module/agent-thinking/ThinkingLabel.d.ts +7 -0
- package/lib/typescript/module/agent-thinking/ThinkingLabel.d.ts.map +1 -0
- package/lib/typescript/module/chart-cards/TokensChartCard.d.ts +3 -1
- package/lib/typescript/module/chart-cards/TokensChartCard.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/ar.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/bn.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/ca.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/de.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/es.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/fr.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/hi.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/id.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/it.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/ja.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/pt.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/ru.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/tr.d.ts.map +1 -1
- package/lib/typescript/module/locale/translations/zh.d.ts.map +1 -1
- package/lib/typescript/module/multi-agent-chat/AvatarHandoff.d.ts.map +1 -1
- package/lib/typescript/module/multi-agent-chat/ChatAgentProfile.d.ts +11 -0
- package/lib/typescript/module/multi-agent-chat/ChatAgentProfile.d.ts.map +1 -0
- package/lib/typescript/module/multi-agent-chat/EditorRail.d.ts.map +1 -1
- package/lib/typescript/module/multi-agent-chat/MultiAgentChatBase.d.ts.map +1 -1
- package/lib/typescript/module/multi-agent-chat/ReplyRow.d.ts.map +1 -1
- package/lib/typescript/module/multi-agent-chat/handoff.d.ts +2 -2
- package/lib/typescript/module/multi-agent-chat/handoff.d.ts.map +1 -1
- package/lib/typescript/module/project-board/CreateTicketDialog.d.ts.map +1 -1
- package/lib/typescript/module/project-board/ProjectBoardBase.d.ts.map +1 -1
- package/lib/typescript/module/project-board/TicketCornerGenieSurface.web.d.ts.map +1 -1
- package/lib/typescript/module/project-board/TicketDetailDialog.d.ts.map +1 -1
- package/lib/typescript/module/project-board/TicketGenieSurface.d.ts.map +1 -1
- package/lib/typescript/module/project-board/TicketPresence.d.ts +17 -0
- package/lib/typescript/module/project-board/TicketPresence.d.ts.map +1 -0
- package/lib/typescript/module/project-board/TicketTokenChart.d.ts +5 -0
- package/lib/typescript/module/project-board/TicketTokenChart.d.ts.map +1 -0
- package/lib/typescript/module/project-board/context.d.ts +2 -0
- package/lib/typescript/module/project-board/context.d.ts.map +1 -1
- package/lib/typescript/module/search/Search.d.ts.map +1 -1
- package/lib/typescript/module/sidebar/SidebarToolbar.d.ts.map +1 -1
- package/lib/typescript/module/text-field/TextField.d.ts.map +1 -1
- package/package.json +8 -3
- package/src/agent-avatar/AgentAvatar.tsx +16 -296
- package/src/agent-avatar/AgentAvatarProvider.tsx +72 -0
- package/src/agent-avatar/CharacterAvatar.tsx +255 -0
- package/src/agent-avatar/ProceduralAvatar.tsx +303 -0
- package/src/agent-avatar/artwork.ts +3 -3
- package/src/agent-avatar/avatar-color.ts +17 -0
- package/src/agent-avatar/character-html.ts +21 -0
- package/src/agent-avatar/character-runtime-module.ts +37 -0
- package/src/agent-avatar/character-webview.ts +24 -0
- package/src/agent-avatar/config-character.ts +40 -0
- package/src/agent-avatar/context.ts +13 -0
- package/src/agent-avatar/index.ts +4 -1
- package/src/agent-avatar/legacy-contours.ts +76 -0
- package/src/agent-avatar/legacy-recipe.ts +123 -0
- package/src/agent-avatar/messages.ts +1 -0
- package/src/agent-avatar/model.ts +5 -0
- package/src/agent-avatar/types.ts +12 -1
- package/src/agent-creator/AgentCreatorBase.tsx +329 -38
- package/src/agent-creator/CharacterControls.tsx +146 -0
- package/src/agent-creator/EmotionPicker.tsx +43 -21
- package/src/agent-creator/ShapeArc.tsx +83 -29
- package/src/agent-creator/ShapeSilhouette.tsx +65 -0
- package/src/agent-creator/constants.ts +30 -0
- package/src/agent-creator/messages.ts +19 -0
- package/src/agent-creator/shared.ts +1 -15
- package/src/agent-thinking/AgentThinking.tsx +7 -70
- package/src/agent-thinking/ThinkingLabel.tsx +74 -0
- package/src/chart-cards/TokensChartCard.tsx +10 -6
- package/src/locale/translations/ar.ts +10 -1
- package/src/locale/translations/bn.ts +10 -1
- package/src/locale/translations/ca.ts +10 -1
- package/src/locale/translations/de.ts +10 -1
- package/src/locale/translations/es.ts +10 -1
- package/src/locale/translations/fr.ts +10 -1
- package/src/locale/translations/hi.ts +10 -1
- package/src/locale/translations/id.ts +10 -1
- package/src/locale/translations/it.ts +10 -1
- package/src/locale/translations/ja.ts +10 -1
- package/src/locale/translations/pt.ts +10 -1
- package/src/locale/translations/ru.ts +10 -1
- package/src/locale/translations/tr.ts +10 -1
- package/src/locale/translations/zh.ts +10 -1
- package/src/multi-agent-chat/AvatarHandoff.tsx +2 -5
- package/src/multi-agent-chat/ChatAgentProfile.tsx +116 -0
- package/src/multi-agent-chat/EditorRail.tsx +2 -0
- package/src/multi-agent-chat/MultiAgentChatBase.tsx +123 -175
- package/src/multi-agent-chat/ReplyRow.tsx +10 -9
- package/src/multi-agent-chat/handoff.ts +4 -4
- package/src/project-board/CreateTicketDialog.tsx +28 -4
- package/src/project-board/ProjectBoardBase.tsx +115 -21
- package/src/project-board/TicketCornerGenieSurface.web.tsx +11 -6
- package/src/project-board/TicketDetailDialog.tsx +5 -4
- package/src/project-board/TicketGenieSurface.tsx +9 -0
- package/src/project-board/TicketGenieSurface.web.tsx +1 -1
- package/src/project-board/TicketPresence.tsx +137 -0
- package/src/project-board/TicketTokenChart.tsx +14 -0
- package/src/project-board/context.ts +2 -0
- package/src/search/Search.tsx +6 -5
- package/src/sidebar/SidebarToolbar.tsx +27 -15
- 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
|
|
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(
|
|
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(
|
|
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,6 @@
|
|
|
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({});
|
|
6
8
|
//# 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"],"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,CAKjD,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":[]}
|