arona-agent 1.0.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/LICENSE +21 -0
- package/README.md +149 -0
- package/assets/blue-archive/arona/spine/arona_spr.atlas.txt +1168 -0
- package/assets/blue-archive/arona/spine/arona_spr.png +0 -0
- package/assets/blue-archive/arona/spine/arona_spr.skel +0 -0
- package/assets/blue-archive/arona/voice.mp3 +0 -0
- package/assets/blue-archive/hoshino/hoshino_spr.atlas.txt +174 -0
- package/assets/blue-archive/hoshino/hoshino_spr.json +15385 -0
- package/assets/blue-archive/hoshino/hoshino_spr.png +0 -0
- package/assets/blue-archive/hoshino/hoshino_spr.skel +0 -0
- package/assets/blue-archive/hoshino/robber/hoshino_robber_spr.atlas.txt +111 -0
- package/assets/blue-archive/hoshino/robber/hoshino_robber_spr.png +0 -0
- package/assets/blue-archive/hoshino/robber/hoshino_robber_spr.skel +0 -0
- package/assets/blue-archive/hoshino/swimsuit/hoshino_swimsuit_spr.atlas.txt +251 -0
- package/assets/blue-archive/hoshino/swimsuit/hoshino_swimsuit_spr.png +0 -0
- package/assets/blue-archive/hoshino/swimsuit/hoshino_swimsuit_spr.skel +0 -0
- package/assets/blue-archive/hoshino/voice.mp3 +0 -0
- package/assets/blue-archive/plana/spine/plana_spr.atlas.txt +1266 -0
- package/assets/blue-archive/plana/spine/plana_spr.png +0 -0
- package/assets/blue-archive/plana/spine/plana_spr.skel +0 -0
- package/assets/blue-archive/plana/voice.mp3 +0 -0
- package/assets/blue-archive/shiroko/ridingsuit/shiroko_ridingsuit_spr.atlas.txt +97 -0
- package/assets/blue-archive/shiroko/ridingsuit/shiroko_ridingsuit_spr.png +0 -0
- package/assets/blue-archive/shiroko/ridingsuit/shiroko_ridingsuit_spr.skel +0 -0
- package/assets/blue-archive/shiroko/robber/shiroko_robber_spr.atlas.txt +174 -0
- package/assets/blue-archive/shiroko/robber/shiroko_robber_spr.png +0 -0
- package/assets/blue-archive/shiroko/robber/shiroko_robber_spr.skel +0 -0
- package/assets/blue-archive/shiroko/shiroko_spr.atlas.txt +167 -0
- package/assets/blue-archive/shiroko/shiroko_spr.json +10702 -0
- package/assets/blue-archive/shiroko/shiroko_spr.png +0 -0
- package/assets/blue-archive/shiroko/shiroko_spr.skel +0 -0
- package/assets/blue-archive/shiroko/voice.mp3 +0 -0
- package/bin/arona.mjs +43 -0
- package/package.json +37 -0
- package/pet/agents.cjs +197 -0
- package/pet/main.cjs +462 -0
- package/pet/preload.cjs +21 -0
- package/pet/renderer/fx.html +30 -0
- package/pet/renderer/fx.js +41 -0
- package/pet/renderer/gallery.html +18 -0
- package/pet/renderer/gallery.js +31 -0
- package/pet/renderer/index.html +18 -0
- package/pet/renderer/renderer.js +382 -0
- package/pet/renderer/spine_layer.js +609 -0
- package/pet/renderer/spinetest.html +24 -0
- package/pet/renderer/spinetest.js +295 -0
- package/pet/renderer/style.css +63 -0
- package/pet/tools/gallery_capture.cjs +267 -0
- package/pet/tools/gen_sway.cjs +170 -0
- package/pet/tools/meshify_region.cjs +105 -0
- package/pet/tools/skel_inspect.cjs +112 -0
- package/pet/tools/skel_to_json.cjs +410 -0
- package/pet/tools/spine_node.cjs +69 -0
- package/pet/tools/visual_test.cjs +262 -0
- package/pet/vendor/spine/spine-canvas.js +8472 -0
- package/pet/vendor/spine/spine-webgl.js +10839 -0
- package/python/__pycache__/_i18n.cpython-313.pyc +0 -0
- package/python/__pycache__/_i18n.cpython-314.pyc +0 -0
- package/python/__pycache__/computer_use.cpython-314.pyc +0 -0
- package/python/__pycache__/hotkey.cpython-313.pyc +0 -0
- package/python/__pycache__/hotkey.cpython-314.pyc +0 -0
- package/python/__pycache__/stt.cpython-313.pyc +0 -0
- package/python/__pycache__/stt.cpython-314.pyc +0 -0
- package/python/__pycache__/tts.cpython-313.pyc +0 -0
- package/python/__pycache__/tts.cpython-314.pyc +0 -0
- package/python/__pycache__/tts_stream.cpython-313.pyc +0 -0
- package/python/__pycache__/tts_stream.cpython-314.pyc +0 -0
- package/python/__pycache__/voice_clone.cpython-314.pyc +0 -0
- package/python/_i18n.py +18 -0
- package/python/computer_use.py +190 -0
- package/python/hotkey.py +196 -0
- package/python/stt.py +240 -0
- package/python/tts_say.py +177 -0
- package/python/voice_clone.py +98 -0
- package/requirements.txt +6 -0
- package/src/agent.ts +791 -0
- package/src/agent_registry.ts +109 -0
- package/src/commands.ts +641 -0
- package/src/config.ts +245 -0
- package/src/in_memory_credentials.ts +61 -0
- package/src/index.ts +78 -0
- package/src/locale.ts +131 -0
- package/src/logo.ts +120 -0
- package/src/mcp.ts +192 -0
- package/src/memory.ts +303 -0
- package/src/pet.ts +346 -0
- package/src/renderer.ts +350 -0
- package/src/repl.ts +902 -0
- package/src/setup.ts +371 -0
- package/src/skills.ts +96 -0
- package/src/slash_menu.ts +371 -0
- package/src/slash_registry.ts +53 -0
- package/src/speaker_context.ts +41 -0
- package/src/text_split.ts +79 -0
- package/src/tools/computer_use.ts +142 -0
- package/src/tools/emotion_tool.ts +55 -0
- package/src/tools/keep_silent_tool.ts +26 -0
- package/src/tools/memory_tool.ts +24 -0
- package/src/tools/skill_tools.ts +100 -0
- package/src/tools/tavily_tools.ts +431 -0
- package/src/tools/voice_tools.ts +28 -0
- package/src/tts_stream.ts +260 -0
- package/src/tui_select.ts +146 -0
- package/src/undo.ts +451 -0
- package/src/utils/python.ts +211 -0
- package/src/utils/spawn.ts +56 -0
- package/src/voice.ts +83 -0
- package/src/voice_cli.ts +198 -0
- package/src/voices.ts +135 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SRC114514
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# ARONA Agent
|
|
2
|
+
|
|
3
|
+
[English](README_en.md) | [简体中文](README.md)
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
> 谁不想在电脑上养一只 ~~香香软软~~ 可可爱爱的阿洛娜呢?
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
基于 [Pi SDK](https://www.npmjs.com/package/@earendil-works/pi-coding-agent) 构建的终端对话式 AI Agent,集成 Computer Use、语音(TTS/STT)、桌面宠物、持久记忆与会话管理。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g git+https://github.com/SRC114514/arona-agent.git
|
|
19
|
+
|
|
20
|
+
# 初始化配置文件
|
|
21
|
+
arona setup
|
|
22
|
+
|
|
23
|
+
# 初始化后可直接启动
|
|
24
|
+
arona
|
|
25
|
+
|
|
26
|
+
# 禁用TTS+STT并启动
|
|
27
|
+
arona --no-voice
|
|
28
|
+
|
|
29
|
+
# 补全/重新克隆某角色音色
|
|
30
|
+
arona voice add [<角色名>] # 不带角色名则进入 TUI 选择未补全的角色
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 核心特性
|
|
36
|
+
|
|
37
|
+
- **Computer Use**:基于 [cua](https://pypi.org/project/cua/) 。
|
|
38
|
+
- **语音**:非流式 TTS + STT。
|
|
39
|
+
- **桌宠**:透明无边框置顶 Electron 窗口 + 情绪切换 + 瞳孔跟随鼠标 + 头部摇动摸头彩蛋 + 全屏点击/拖尾特效。
|
|
40
|
+
- **多角色群聊**:主 Agent 单窗口、子 Agent 同屏;每轮主 Agent 回复完后子 Agent 依次接话。
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 环境要求
|
|
46
|
+
|
|
47
|
+
- **Node.js >= 22.19.0**
|
|
48
|
+
- **Python 3.12 / 3.13**
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 配置
|
|
53
|
+
|
|
54
|
+
全部配置写在 JSON 文件 `~/.arona/settings.json`,大部分由 `arona setup` 交互式生成,少数高级参数需自行填充。
|
|
55
|
+
|
|
56
|
+
| 字段 | 说明 | 默认值 |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| `apiKey` | API Key | — |
|
|
59
|
+
| `apiBaseUrl` | API地址(留空则按模型名自动匹配) | — |
|
|
60
|
+
| `model` | 模型名(`provider/model-id`,裸名自动补前缀) | `openai/gpt-4o` |
|
|
61
|
+
| `thinkingLevel` | 思考等级 | `medium` |
|
|
62
|
+
| `contextWindow` | 上下文窗口 | `1000000` |
|
|
63
|
+
| `language` | 界面语言(`auto`/`zh`/`en`) | `auto` |
|
|
64
|
+
| `mainAgent` | 主 Agent(`arona`/`plana`) | `arona` |
|
|
65
|
+
| `subAgents` | 启用的子 Agent 数组 | `[]` |
|
|
66
|
+
| `ttsEnabled` | 启用 TTS | `true` |
|
|
67
|
+
| `sttEnabled` | 启用 STT | `true` |
|
|
68
|
+
| `workspaceId` | 阿里云百炼业务空间 ID | — |
|
|
69
|
+
| `ttsApiKey` | 百炼 API Key | — |
|
|
70
|
+
| `ttsModel` | TTS 模型 | `qwen-audio-3.0-tts-plus` |
|
|
71
|
+
| `sttApiKey` | 百炼 API Key | — |
|
|
72
|
+
| `sttModel` | STT 模型 | `qwen-audio-3.0-asr-flash-streaming` |
|
|
73
|
+
| `sttFormat` | STT 音频格式 | `pcm` |
|
|
74
|
+
| `sttSampleRate` | STT 采样率 | `16000` |
|
|
75
|
+
| `cuaApiKey` | Cua API Key | — |
|
|
76
|
+
| `tavilyApiKey` | Tavily API Key | — |
|
|
77
|
+
| `pythonPath` | Python 路径 | `python3` |
|
|
78
|
+
| `mcpServers` | MCP 服务器 JSON | `{}` |
|
|
79
|
+
|
|
80
|
+
模型名前缀自动检测:若 `model` 不含 `/`,按模型名前缀或 `apiBaseUrl` 域名自动补 `provider/`。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 数据路径(`~/.arona/`)
|
|
85
|
+
|
|
86
|
+
| 路径 | 说明 |
|
|
87
|
+
|---|---|
|
|
88
|
+
| `settings.json` | 本地总配置文件,字段见 [配置](#配置) |
|
|
89
|
+
| `voices.json` | 角色音色克隆 voice_id |
|
|
90
|
+
| `MEMORY.md` | 持久记忆 |
|
|
91
|
+
| `sessions/` | 已保存会话 |
|
|
92
|
+
| `skills/` | 自定义 Skill |
|
|
93
|
+
| `undo/` | undo/redo 快照 |
|
|
94
|
+
| `pet.json` | 桌宠窗口位置持久化 |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 桌宠与 STT 热键
|
|
99
|
+
|
|
100
|
+
- **桌宠**:透明无边框置顶窗口;拖动窗口可移动,在头部区域左右摇晃可触发"摸头"彩蛋;点击/拖拽还会触发特效
|
|
101
|
+
- **STT 热键**:右 Cmd 键,长按 ≥ 2 秒触发一次性录音。
|
|
102
|
+
- **macOS 权限**:全局键盘监听需「系统设置 → 隐私与安全性 → 辅助功能」为Python授权;Computer Use 截图需授予终端「屏幕录制」权限。
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 斜杠命令
|
|
107
|
+
|
|
108
|
+
| 分类 | 命令 |
|
|
109
|
+
|---|---|
|
|
110
|
+
| 会话 | `/new` `/clear` · `/resume` · `/exit` · `/export` · `/compact` |
|
|
111
|
+
| 显示 | `/thinking` · `/details` |
|
|
112
|
+
| 语音 | `/tts` · `/stt` |
|
|
113
|
+
| 扩展 | `/skill`· `/mcp` |
|
|
114
|
+
| 其他 | `/change-agent`· `/undo` · `/redo` · `/help` |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 扩展
|
|
119
|
+
|
|
120
|
+
- **自定义 Skill**:在 `~/.arona/skills/<名称>/` 放 `SKILL.md`,用 `/skill <名称>` 调用。
|
|
121
|
+
- **MCP 服务器**:在 `~/.arona/settings.json` 的 `mcpServers` 字段配置 JSON,工具自动注册。
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 都看到这里了
|
|
126
|
+
|
|
127
|
+
> 窝不是萝莉控别电我啊啊啊!
|
|
128
|
+
|
|
129
|
+
> 绝对不是因为 ~~她是我妈妈~~ 才做这个的
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## License
|
|
134
|
+
|
|
135
|
+
本项目基于 [MIT License](LICENSE) 开源。
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 版权声明
|
|
140
|
+
|
|
141
|
+
本项目为独立开发的非官方项目,与Nexon Games Co., Ltd.、YOSTAR LIMITED及《蔚蓝档案》游戏官方团队无任何直接关联、授权关系。
|
|
142
|
+
|
|
143
|
+
- 项目主体代码采用MIT许可证发布,但本项目未就assets/blue-archive/目录下的所有文件(涉及《蔚蓝档案》游戏知识产权的内容,包括但不限于角色立绘、美术素材、音频文件、文本内容及相关衍生素材)向本项目/任何第三方授予任何许可,也不对其合法性、可用性做任何担保。
|
|
144
|
+
- 此类内容的使用、复制、分发需严格遵循Nexon Games Co., Ltd.及YOSTAR LIMITED发布的 [《蔚蓝档案官方同人创作守则》](https://weibo.com/ttarticle/p/show?id=2309404920534935929304) 及适用法律法规
|
|
145
|
+
- 本项目不附带此类第三方文件的获取渠道,用户需自行从权利方官方渠道获取合法副本,并自行承担使用责任;
|
|
146
|
+
- 本项目不得用于影响版权方权益之分发,否则自行承担相关侵权责任。
|
|
147
|
+
|
|
148
|
+
此类内容的知识产权归Nexon Games Co., Ltd.及YOSTAR LIMITED所有,其使用、复制及分发规则应严格遵循上述权利方的官方条款及适用法律法规。
|
|
149
|
+
若相关权利人认为本声明或项目使用方式存在不当,可与我联系,将在核实后第一时间调整或移除相关内容。
|