agent-robot-avatar 0.3.2 → 0.6.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/CHANGELOG.md +209 -124
- package/LICENSE +21 -21
- package/README.md +198 -446
- package/agent-robot-avatar.js +27 -25
- package/docs/README.de.md +185 -166
- package/docs/README.es.md +185 -225
- package/docs/README.fr.md +185 -225
- package/docs/README.ja.md +185 -225
- package/docs/README.ko.md +185 -225
- package/docs/README.pt.md +185 -225
- package/docs/README.ru.md +185 -0
- package/docs/README.zh-CN.md +202 -396
- package/docs/README.zh-TW.md +185 -227
- package/index.d.ts +141 -111
- package/package.json +79 -77
- package/src/agent-robot-avatar-actions.js +403 -400
- package/src/agent-robot-avatar-antenna.js +152 -152
- package/src/agent-robot-avatar-core.js +1155 -1152
- package/src/agent-robot-avatar-extension-host.js +78 -78
- package/src/agent-robot-avatar-failure.js +131 -131
- package/src/agent-robot-avatar-geometry.js +40 -40
- package/src/agent-robot-avatar-gestures.js +170 -0
- package/src/agent-robot-avatar-head-roundness.js +103 -103
- package/src/agent-robot-avatar-inspect.js +242 -242
- package/src/agent-robot-avatar-love.js +226 -0
- package/src/agent-robot-avatar-random.js +272 -0
- package/src/agent-robot-avatar-runtime.js +948 -860
- package/src/agent-robot-avatar-version.js +3 -3
- package/src/agent-robot-avatar-waiting.js +154 -121
- package/src/agent-robot-avatar-wrap.js +66 -0
- package/src/agent-robot-avatar-antenna-flash.js +0 -127
package/docs/README.pt.md
CHANGED
|
@@ -1,225 +1,185 @@
|
|
|
1
|
-
# Agent Robot Avatar
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<img src="../assets/readme/agent-robot-avatar-header.jpg" alt="Agent Robot Avatar">
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
[English](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/README.md) | [简体中文](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.zh-CN.md) | [
|
|
8
|
-
|
|
9
|
-
   
|
|
12
|
-
|
|
13
|
-
Um Web Component leve e expressivo de avatar
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Agent Robot Avatar
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
avatar
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
avatar.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
avatar.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
avatar.play('
|
|
105
|
-
|
|
106
|
-
avatar.play('
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
##
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
avatar
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
avatar
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
`demo/index.html` inclui todos os estados públicos, seguimento do ponteiro, arraste tipo gelatina, ciclo de waiting, ajuste do arredondamento, controles de cor e comportamento e simulação de conversa com Agent. O JavaScript exclusivo do Demo fica isolado em `demo/` e não faz parte do runtime reutilizável do npm.
|
|
188
|
-
|
|
189
|
-
## Estrutura do projeto
|
|
190
|
-
|
|
191
|
-
```text
|
|
192
|
-
agent-robot-avatar.js Entrada pública do componente
|
|
193
|
-
src/ Runtime reutilizável e módulos de expressão
|
|
194
|
-
demo/ Demo interativo e scripts exclusivos
|
|
195
|
-
examples/ Exemplos mínimos de integração
|
|
196
|
-
assets/support/ Recursos QR de apoio / pagamento
|
|
197
|
-
docs/ Documentação multilíngue
|
|
198
|
-
README.md Documento principal em inglês
|
|
199
|
-
CHANGELOG.md Histórico público de versões
|
|
200
|
-
CONTRIBUTING.md Guia de contribuição
|
|
201
|
-
package.json Metadados do pacote
|
|
202
|
-
LICENSE Licença MIT
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Distribuição e compatibilidade
|
|
206
|
-
|
|
207
|
-
O pacote está publicado no npm como `agent-robot-avatar` e inclui declarações TypeScript para ações, eventos e métodos públicos. Destina-se a navegadores modernos com suporte a ES Modules, Custom Elements, SVG, Pointer Events e Web Animations API.
|
|
208
|
-
|
|
209
|
-
## Contribuição
|
|
210
|
-
|
|
211
|
-
Issues e Pull Requests são bem-vindos. Leia [`CONTRIBUTING.md`](../CONTRIBUTING.md) antes de enviar alterações.
|
|
212
|
-
|
|
213
|
-
## Status do projeto
|
|
214
|
-
|
|
215
|
-
v0.3.2 é a versão pública atual. v0.1.0 continua disponível como a primeira versão pública. A API pública é mantida deliberadamente pequena para evoluir com cuidado antes de um futuro compromisso de estabilidade `1.0.0`.
|
|
216
|
-
|
|
217
|
-
Agent Robot Avatar é um projeto independente de código aberto e não é afiliado, endossado nem representa nenhuma plataforma ou marca de IA.
|
|
218
|
-
|
|
219
|
-
## Licença
|
|
220
|
-
|
|
221
|
-
MIT License. Consulte [`LICENSE`](../LICENSE).
|
|
222
|
-
|
|
223
|
-
## Pague-me um café
|
|
224
|
-
|
|
225
|
-
<a href='https://ko-fi.com/P0E625WIOI' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi6.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
|
|
1
|
+
# Agent Robot Avatar
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="../assets/readme/agent-robot-avatar-header.jpg" alt="Agent Robot Avatar">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
[English](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/README.md) | [简体中文](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.zh-CN.md) | [Español](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.es.md) | [Русский](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.ru.md) | [Français](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.fr.md) | [Português](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.pt.md) | [Deutsch](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.de.md) | [日本語](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.ja.md) | [한국어](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.ko.md) | [繁體中文](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.zh-TW.md)
|
|
8
|
+
|
|
9
|
+
 [](../LICENSE) [](https://github.com/CX-ArtLab/agent-robot-avatar/actions/workflows/validate.yml) [](https://ko-fi.com/P0E625WIOI)
|
|
10
|
+
|
|
11
|
+
   
|
|
12
|
+
|
|
13
|
+
Um Web Component leve e expressivo de avatar robô para agentes de IA e aplicações interativas.
|
|
14
|
+
|
|
15
|
+
Pode ser usado em assistentes de IA, interfaces de agentes, companheiros de desktop, pets virtuais, mascotes digitais, avatares de chatbot e outras experiências com personagens interativos.
|
|
16
|
+
|
|
17
|
+
É adequado para interfaces de assistentes de IA e agentes, incluindo produtos e experiências semelhantes ao ChatGPT, Claude, Codex, Cursor, Grok Bot, Gemini CLI e OpenCode.
|
|
18
|
+
|
|
19
|
+
Construído com SVG e JavaScript nativo, funciona como um Custom Element e não possui dependências em tempo de execução.
|
|
20
|
+
|
|
21
|
+
O Agent Robot Avatar também pode ser usado como camada de feedback visual para interfaces de agentes no estilo AG-UI.
|
|
22
|
+
|
|
23
|
+
<p align="center">
|
|
24
|
+
<img src="../assets/demo/agent-robot-avatar-demo.gif" alt="Demonstração animada interativa do Agent Robot Avatar" width="560">
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
## Demo ao vivo
|
|
28
|
+
|
|
29
|
+
[Abrir a demo interativa](https://cx-artlab.github.io/agent-robot-avatar/?lang=pt)
|
|
30
|
+
|
|
31
|
+
## Destaques
|
|
32
|
+
|
|
33
|
+
- Web Component nativo
|
|
34
|
+
- Renderização SVG + JavaScript nativo
|
|
35
|
+
- Zero dependências em tempo de execução
|
|
36
|
+
- Piscar automático e comportamento idle sutil
|
|
37
|
+
- Olhos que seguem o ponteiro e movimento inercial da cabeça
|
|
38
|
+
- Deformação local tipo gelatina ao arrastar, com recuperação elástica
|
|
39
|
+
- Compressão ao manter pressionado e antena elástica arrastável
|
|
40
|
+
- Estados e expressões do Agent controláveis por código
|
|
41
|
+
- Feedback para waiting, success, failure, warning, review, blocked e system error
|
|
42
|
+
- Suporte a movimento reduzido
|
|
43
|
+
- Comportamento de sono configurável
|
|
44
|
+
- Arredondamento da cabeça ajustável
|
|
45
|
+
- Pisca de status opcional na antena
|
|
46
|
+
- Declarações TypeScript incluídas
|
|
47
|
+
|
|
48
|
+
## Instalação
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm install agent-robot-avatar
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
import 'agent-robot-avatar';
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Também é possível carregar diretamente o código-fonte do repositório:
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<script type="module" src="./agent-robot-avatar.js"></script>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Depois, adicione o componente:
|
|
65
|
+
|
|
66
|
+
```html
|
|
67
|
+
<agent-robot-avatar id="avatar"></agent-robot-avatar>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Nenhum código de inicialização é necessário. O avatar entra automaticamente no estado idle padrão.
|
|
71
|
+
|
|
72
|
+
## Uso básico
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
const avatar = document.querySelector('#avatar');
|
|
76
|
+
|
|
77
|
+
avatar.play('success');
|
|
78
|
+
avatar.play('wary');
|
|
79
|
+
avatar.play('refuse');
|
|
80
|
+
|
|
81
|
+
avatar.reset();
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Ações disponíveis:
|
|
85
|
+
|
|
86
|
+
`idle` · `bored` · `waiting-spin` · `waiting-wrap` · `waiting-wave` · `input` · `affirm` · `success` · `failure` · `wary` · `inspect` · `angry` · `refuse` · `surprise` · `love` · `random` · `sleep` · `wake`
|
|
87
|
+
|
|
88
|
+
Os nomes das ações descrevem o que o avatar faz. `refuse` balança a cabeça, para um pedido que o Agent não pode ou não vai realizar; `failure` é para uma tarefa ou conexão que não deu certo; `wary` vira a cabeça e olha de cima a baixo com desconfiança, para uma ação que exige confirmação. Os nomes da 0.5 (`send`, `warning`, `error`, `blocked` e outros) continuam funcionando com um aviso no console até a 1.0; veja a [tabela de atualização](../CHANGELOG.md#upgrading-from-05x).
|
|
89
|
+
|
|
90
|
+
`love` expressa carinho ou gratidão: os dois olhos se inclinam até formar um único coração, batem três vezes e depois voltam ao normal.
|
|
91
|
+
|
|
92
|
+
`random` reproduz um giro de caça-níqueis: cada olho rola sobre um tambor; depois o olho esquerdo desacelera, quica e para, seguido do direito. `slot` é um alias.
|
|
93
|
+
|
|
94
|
+
Um fluxo típico de solicitação de Agent:
|
|
95
|
+
|
|
96
|
+
```js
|
|
97
|
+
avatar.startWaiting();
|
|
98
|
+
|
|
99
|
+
// Segunda espera: os olhos saem por um lado e voltam pelo outro.
|
|
100
|
+
avatar.startWaiting({ variant: 'wrap' });
|
|
101
|
+
|
|
102
|
+
try {
|
|
103
|
+
const result = await runAgentRequest();
|
|
104
|
+
await avatar.play(result.ok ? 'success' : 'failure');
|
|
105
|
+
} catch (error) {
|
|
106
|
+
await avatar.play('failure');
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Opções comuns
|
|
111
|
+
|
|
112
|
+
```html
|
|
113
|
+
<agent-robot-avatar
|
|
114
|
+
size="160"
|
|
115
|
+
color="#08090b"
|
|
116
|
+
auto-sleep="30000"
|
|
117
|
+
wake-on="activity"
|
|
118
|
+
motion="auto">
|
|
119
|
+
</agent-robot-avatar>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
| Atributo | Uso |
|
|
123
|
+
| --- | --- |
|
|
124
|
+
| `size` | Tamanho do avatar em pixels |
|
|
125
|
+
| `color` | Cor principal do avatar |
|
|
126
|
+
| `auto-sleep` | Tempo de inatividade antes do sono automático; `0` desativa |
|
|
127
|
+
| `wake-on` | Política de despertar automático: `activity`, `interaction` ou `manual` |
|
|
128
|
+
| `motion` | Política de movimento: `auto`, `reduce` ou `full` |
|
|
129
|
+
| `press-squeeze` | Pressione o centro para comprimir; `false` desativa |
|
|
130
|
+
| `antenna-drag` | Arraste e retorno elástico da antena com reação de raiva; `false` desativa |
|
|
131
|
+
|
|
132
|
+
Controles comuns em tempo de execução:
|
|
133
|
+
|
|
134
|
+
```js
|
|
135
|
+
avatar.setPointerFollow(false);
|
|
136
|
+
avatar.setHeadRoundness(75);
|
|
137
|
+
avatar.setPressSqueeze(true);
|
|
138
|
+
avatar.setAntennaDrag(true);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Manter o centro pressionado inicia a compressão. Ao mover mais de 4 pixels CSS, o mesmo gesto passa ao arraste de cabeça existente. A antena usa o mesmo limite de distância e termina com a reação de raiva existente.
|
|
142
|
+
|
|
143
|
+
## Eventos e integração
|
|
144
|
+
|
|
145
|
+
O componente emite `face-state` para mudanças de estado visual e `action-state` para mudanças semânticas no ciclo de vida das ações.
|
|
146
|
+
|
|
147
|
+
Para integrações com a aplicação host e textos de status acessíveis, prefira `action-state`. Veja [`examples/accessibility.html`](../examples/accessibility.html) para um exemplo executável do ciclo de vida de uma solicitação.
|
|
148
|
+
|
|
149
|
+
Um exemplo mínimo de integração está disponível em [`examples/basic.html`](../examples/basic.html).
|
|
150
|
+
|
|
151
|
+
## Compatibilidade
|
|
152
|
+
|
|
153
|
+
Projetado para navegadores modernos com suporte a ES Modules, Custom Elements, SVG, Pointer Events, Web Animations API, `IntersectionObserver`, `ResizeObserver` e `matchMedia`.
|
|
154
|
+
|
|
155
|
+
Os testes automatizados cobrem Chromium, Firefox e WebKit.
|
|
156
|
+
|
|
157
|
+
## Contribuindo
|
|
158
|
+
|
|
159
|
+
Issues e Pull Requests são bem-vindos. Consulte [`CONTRIBUTING.md`](../CONTRIBUTING.md) antes de enviar alterações.
|
|
160
|
+
|
|
161
|
+
## Status do projeto
|
|
162
|
+
|
|
163
|
+
**Versão pública atual: v0.6.0**
|
|
164
|
+
|
|
165
|
+
A API pública é mantida deliberadamente compacta enquanto o projeto evolui em direção a um futuro compromisso de estabilidade `1.0.0`.
|
|
166
|
+
|
|
167
|
+
Agent Robot Avatar é desenvolvido de forma independente e não é afiliado, endossado nem representa qualquer plataforma ou marca de IA.
|
|
168
|
+
|
|
169
|
+
## Design do personagem e identidade visual
|
|
170
|
+
|
|
171
|
+
O personagem Agent Robot Avatar, incluindo sua aparência robótica e identidade visual, é um design original da CX ArtLab.
|
|
172
|
+
|
|
173
|
+
A licença MIT se aplica ao software e ao código-fonte. Ela permite usar, modificar e distribuir o avatar como parte de aplicações, mas não transfere a propriedade do nome Agent Robot Avatar, da identidade do personagem ou de sua identidade visual, nem concede o direito de apresentá-los como personagem original ou marca independente de outra parte.
|
|
174
|
+
|
|
175
|
+
Os nomes de produtos de terceiros mencionados neste projeto servem apenas para descrever possíveis casos de uso e não indicam afiliação ou endosso.
|
|
176
|
+
|
|
177
|
+
## Licença
|
|
178
|
+
|
|
179
|
+
MIT License. Consulte [`LICENSE`](../LICENSE).
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
Se este projeto for útil para você, você pode me pagar um café.
|
|
184
|
+
|
|
185
|
+
<a href='https://ko-fi.com/P0E625WIOI' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi6.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Agent Robot Avatar
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="../assets/readme/agent-robot-avatar-header.jpg" alt="Agent Robot Avatar">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
[English](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/README.md) | [简体中文](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.zh-CN.md) | [Español](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.es.md) | [Русский](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.ru.md) | [Français](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.fr.md) | [Português](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.pt.md) | [Deutsch](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.de.md) | [日本語](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.ja.md) | [한국어](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.ko.md) | [繁體中文](https://github.com/CX-ArtLab/agent-robot-avatar/blob/main/docs/README.zh-TW.md)
|
|
8
|
+
|
|
9
|
+
 [](../LICENSE) [](https://github.com/CX-ArtLab/agent-robot-avatar/actions/workflows/validate.yml) [](https://ko-fi.com/P0E625WIOI)
|
|
10
|
+
|
|
11
|
+
   
|
|
12
|
+
|
|
13
|
+
Лёгкий и выразительный Web Component с роботом-аватаром для AI-агентов и интерактивных приложений.
|
|
14
|
+
|
|
15
|
+
Его можно использовать в AI-ассистентах, интерфейсах агентов, настольных компаньонах, виртуальных питомцах, цифровых маскотах, аватарах чат-ботов и других интерактивных персонажах.
|
|
16
|
+
|
|
17
|
+
Подходит для интерфейсов AI-ассистентов и агентов, включая продукты и сценарии, похожие на ChatGPT, Claude, Codex, Cursor, Grok Bot, Gemini CLI и OpenCode.
|
|
18
|
+
|
|
19
|
+
Компонент построен на SVG и vanilla JavaScript, работает как нативный Custom Element и не имеет runtime-зависимостей.
|
|
20
|
+
|
|
21
|
+
Agent Robot Avatar также можно использовать как слой визуальной обратной связи для интерфейсов агентов в стиле AG-UI.
|
|
22
|
+
|
|
23
|
+
<p align="center">
|
|
24
|
+
<img src="../assets/demo/agent-robot-avatar-demo.gif" alt="Интерактивная анимационная демонстрация Agent Robot Avatar" width="560">
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
## Демонстрация в реальном времени
|
|
28
|
+
|
|
29
|
+
[Открыть интерактивную демонстрацию](https://cx-artlab.github.io/agent-robot-avatar/?lang=ru)
|
|
30
|
+
|
|
31
|
+
## Основные возможности
|
|
32
|
+
|
|
33
|
+
- Нативный Web Component
|
|
34
|
+
- SVG-рендеринг + vanilla JavaScript
|
|
35
|
+
- Ноль runtime-зависимостей
|
|
36
|
+
- Автоматическое моргание и лёгкое idle-поведение
|
|
37
|
+
- Следование глазами за указателем и инерционное движение головы
|
|
38
|
+
- Локальная jelly-деформация при перетаскивании с упругим возвратом
|
|
39
|
+
- Сжатие при удержании и перетаскиваемая пружинящая антенна
|
|
40
|
+
- Программное управление состояниями и выражениями Agent
|
|
41
|
+
- Обратная связь для waiting, success, failure, warning, review, blocked и system error
|
|
42
|
+
- Поддержка reduced motion
|
|
43
|
+
- Настраиваемое поведение сна
|
|
44
|
+
- Регулируемое скругление головы
|
|
45
|
+
- Опциональное мигание антенны для статуса
|
|
46
|
+
- TypeScript-декларации включены
|
|
47
|
+
|
|
48
|
+
## Установка
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm install agent-robot-avatar
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
import 'agent-robot-avatar';
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Также можно напрямую загрузить исходный код из репозитория:
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<script type="module" src="./agent-robot-avatar.js"></script>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Затем добавьте компонент:
|
|
65
|
+
|
|
66
|
+
```html
|
|
67
|
+
<agent-robot-avatar id="avatar"></agent-robot-avatar>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Инициализация не требуется. Аватар автоматически переходит в стандартное состояние idle.
|
|
71
|
+
|
|
72
|
+
## Базовое использование
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
const avatar = document.querySelector('#avatar');
|
|
76
|
+
|
|
77
|
+
avatar.play('success');
|
|
78
|
+
avatar.play('wary');
|
|
79
|
+
avatar.play('refuse');
|
|
80
|
+
|
|
81
|
+
avatar.reset();
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Доступные действия:
|
|
85
|
+
|
|
86
|
+
`idle` · `bored` · `waiting-spin` · `waiting-wrap` · `waiting-wave` · `input` · `affirm` · `success` · `failure` · `wary` · `inspect` · `angry` · `refuse` · `surprise` · `love` · `random` · `sleep` · `wake`
|
|
87
|
+
|
|
88
|
+
Названия действий описывают, что делает аватар. `refuse` качает головой — для запроса, который Agent не может или не будет выполнять; `failure` — для задачи или соединения, которые не удались; `wary` поворачивает голову и настороженно оглядывает сверху вниз — для действия, требующего подтверждения. Названия из 0.5 (`send`, `warning`, `error`, `blocked` и другие) работают до 1.0 с уведомлением в консоли; см. [таблицу обновления](../CHANGELOG.md#upgrading-from-05x).
|
|
89
|
+
|
|
90
|
+
`love` выражает симпатию или благодарность: два глаза наклоняются друг к другу и образуют одно сердце, трижды бьются и возвращаются в исходное состояние.
|
|
91
|
+
|
|
92
|
+
`random` проигрывает вращение игрового автомата: каждый глаз катится по барабану, затем левый глаз замедляется, подпрыгивает и останавливается, следом правый. `slot` — псевдоним.
|
|
93
|
+
|
|
94
|
+
Типичный жизненный цикл запроса Agent:
|
|
95
|
+
|
|
96
|
+
```js
|
|
97
|
+
avatar.startWaiting();
|
|
98
|
+
|
|
99
|
+
// Второй вариант ожидания: глаза уходят с одной стороны и возвращаются с другой.
|
|
100
|
+
avatar.startWaiting({ variant: 'wrap' });
|
|
101
|
+
|
|
102
|
+
try {
|
|
103
|
+
const result = await runAgentRequest();
|
|
104
|
+
await avatar.play(result.ok ? 'success' : 'failure');
|
|
105
|
+
} catch (error) {
|
|
106
|
+
await avatar.play('failure');
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Часто используемые параметры
|
|
111
|
+
|
|
112
|
+
```html
|
|
113
|
+
<agent-robot-avatar
|
|
114
|
+
size="160"
|
|
115
|
+
color="#08090b"
|
|
116
|
+
auto-sleep="30000"
|
|
117
|
+
wake-on="activity"
|
|
118
|
+
motion="auto">
|
|
119
|
+
</agent-robot-avatar>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
| Атрибут | Назначение |
|
|
123
|
+
| --- | --- |
|
|
124
|
+
| `size` | Размер аватара в пикселях |
|
|
125
|
+
| `color` | Основной цвет аватара |
|
|
126
|
+
| `auto-sleep` | Время бездействия до автоматического сна; `0` отключает его |
|
|
127
|
+
| `wake-on` | Политика автоматического пробуждения: `activity`, `interaction` или `manual` |
|
|
128
|
+
| `motion` | Политика движения: `auto`, `reduce` или `full` |
|
|
129
|
+
| `press-squeeze` | Удержание центра для сжатия; `false` отключает жест |
|
|
130
|
+
| `antenna-drag` | Перетаскивание и пружинящий возврат антенны с сердитой реакцией; `false` отключает жест |
|
|
131
|
+
|
|
132
|
+
Часто используемые runtime-настройки:
|
|
133
|
+
|
|
134
|
+
```js
|
|
135
|
+
avatar.setPointerFollow(false);
|
|
136
|
+
avatar.setHeadRoundness(75);
|
|
137
|
+
avatar.setPressSqueeze(true);
|
|
138
|
+
avatar.setAntennaDrag(true);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Удержание центра запускает сжатие. После перемещения более чем на 4 CSS-пикселя тот же жест переходит в существующее перетаскивание головы. Для антенны действует тот же предел расстояния, а после возврата запускается существующая сердитая реакция.
|
|
142
|
+
|
|
143
|
+
## События и интеграция
|
|
144
|
+
|
|
145
|
+
Компонент отправляет `face-state` при изменениях визуального состояния и `action-state` при семантических изменениях жизненного цикла действий.
|
|
146
|
+
|
|
147
|
+
Для интеграции с host-приложением и доступного статусного текста предпочтительнее `action-state`. Рабочий пример жизненного цикла запроса находится в [`examples/accessibility.html`](../examples/accessibility.html).
|
|
148
|
+
|
|
149
|
+
Минимальный пример интеграции доступен в [`examples/basic.html`](../examples/basic.html).
|
|
150
|
+
|
|
151
|
+
## Совместимость
|
|
152
|
+
|
|
153
|
+
Рассчитан на современные браузеры с поддержкой ES Modules, Custom Elements, SVG, Pointer Events, Web Animations API, `IntersectionObserver`, `ResizeObserver` и `matchMedia`.
|
|
154
|
+
|
|
155
|
+
Автоматизированные тесты покрывают Chromium, Firefox и WebKit.
|
|
156
|
+
|
|
157
|
+
## Участие в разработке
|
|
158
|
+
|
|
159
|
+
Issues и Pull Requests приветствуются. Перед отправкой изменений прочитайте [`CONTRIBUTING.md`](../CONTRIBUTING.md).
|
|
160
|
+
|
|
161
|
+
## Статус проекта
|
|
162
|
+
|
|
163
|
+
**Текущая публичная версия: v0.6.0**
|
|
164
|
+
|
|
165
|
+
Публичный API намеренно остаётся компактным, пока проект развивается к будущему обязательству стабильности `1.0.0`.
|
|
166
|
+
|
|
167
|
+
Agent Robot Avatar разрабатывается независимо и не аффилирован, не одобрен и не представляет какую-либо AI-платформу или бренд.
|
|
168
|
+
|
|
169
|
+
## Дизайн персонажа и визуальная идентичность
|
|
170
|
+
|
|
171
|
+
Персонаж Agent Robot Avatar, включая внешний вид робота и визуальную идентичность, является оригинальной разработкой CX ArtLab.
|
|
172
|
+
|
|
173
|
+
MIT License применяется к программному обеспечению и исходному коду. Она разрешает использовать, изменять и распространять аватар как часть приложений, но не передаёт права собственности на название Agent Robot Avatar, идентичность персонажа или визуальную идентичность и не даёт права представлять их как оригинального персонажа или самостоятельный бренд другой стороны.
|
|
174
|
+
|
|
175
|
+
Названия сторонних продуктов, упомянутые в проекте, используются только для описания возможных сценариев применения и не означают аффилированность или одобрение.
|
|
176
|
+
|
|
177
|
+
## Лицензия
|
|
178
|
+
|
|
179
|
+
MIT License. См. [`LICENSE`](../LICENSE).
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
Если этот проект оказался полезен, вы можете угостить меня кофе.
|
|
184
|
+
|
|
185
|
+
<a href='https://ko-fi.com/P0E625WIOI' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi6.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
|