Skip to content

rymcu/rodak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

194 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rodak

Rodak 是面向开发者、创客、学校和小团队的本地优先 AIoT Agent 工作台。它以 Windows 桌面应用承载设备云联调、Xiaozhi 语音 Agent、Agent Runtime registry、扩展包执行、观测审计和 trace 回放,并把 MQTT、OTA、设备模拟、模型供应商与语音运行态收敛到同一个可离线管理的工作空间。

当前能力

模块 说明
MQTT 调试器 多连接管理、主题订阅/取消订阅、消息发布、实时消息流、历史消息分页与清理
设备模拟器 产品列表与物模型加载、设备注册/激活、设备 Token 获取、遥测/影子/指令 ACK
OTA 监控 升级检查、下载凭证与清单拉取、进度/结果上报、MQTT OTA 主题联动
聊天 多供应商流式对话、模型开关、会话与消息本地持久化、Markdown 渲染
语音输入 OpenAI Whisper 在线转写、coli 本地离线转写、whisper.cpp 本地离线转写
Agent 工作区 Overview / Workflows / Registry / Events / Replay 组织 Agent Runtime 现状、观测审计、扩展入口与 trace 回放
设置 工作区与认证、AI 供应商、语音引擎、主题/字体/语言、关于与合规入口

技术栈

  • 桌面框架:Electron + electron-vite v5
  • 前端:Vue 3 + Vite + TypeScript
  • UI:Nuxt UI 4
  • 路由:Vue Router(createMemoryHistory()
  • 状态管理:Pinia
  • 样式:Tailwind CSS 4
  • 本地存储:better-sqlite3
  • MQTT:mqtt.js(仅运行于主进程)
  • 语音运行时:OpenAI API、coli CLI、whisper.cpp + FFmpeg
  • 打包:electron-builder(Windows)

项目结构

rodak/
├── src/
│   ├── main/                    # Electron 主进程
│   │   ├── agent-runtime/       # 正式 runtime core、registry、workbench、mapper、orchestrator、prompt loader
│   │   ├── ipc/                 # IPC 注册与桥接
│   │   ├── mqtt/                # MQTT 运行时
│   │   ├── store/               # SQLite DAO 与迁移
│   │   └── voice/               # OpenAI / coli / whisper.cpp 转写
│   ├── preload/
│   │   └── bridge.ts            # contextBridge 暴露 window.api
│   ├── renderer/
│   │   └── src/
│   │       ├── views/           # 页面视图
│   │       ├── components/      # 业务组件
│   │       ├── composables/     # 组合式逻辑
│   │       ├── stores/          # Pinia stores
│   │       ├── sdk/             # 从 Mortise 复制并适配的 SDK 代码
│   │       ├── types/           # 从 Mortise 复制并适配的类型
│   │       └── utils/           # 从 Mortise 复制并适配的工具函数
│   └── shared/                  # 跨进程共享通道常量与类型
├── docs/
├── resources/
└── templates/

开发

pnpm install
pnpm dev
pnpm lint
pnpm typecheck
pnpm test
pnpm test:coverage
pnpm build
pnpm dist

补充说明:

  • pnpm install / pnpm run rebuild:native 会先清理 pnpm 虚拟仓中的 dangling junction,再调用 electron-builder install-app-deps 重建 better-sqlite3 等原生依赖,避免 Windows 下因可选平台包坏链接导致安装中断。
  • pnpm prepare 会注册 simple-git-hooks,提交前执行 lint-staged
  • 测试采用 Vitest 多项目工作区,覆盖 renderer-unitrenderer-componentmain-integration 三层。
  • 覆盖率可通过 pnpm test:coverage 生成,最小验证基线见 AGENTS.md

IPC 命名空间

当前 preload 暴露的主要命名空间如下:

  • window.*:窗口控制
  • app.*:应用目录、日志与法律文件入口
  • store.* / auth.*:本地设置与认证会话
  • mqtt.*:MQTT 运行时与持久化
  • simulator.*:模拟设备 CRUD
  • chat.*:会话与消息持久化
  • aiProvider.*:AI 供应商配置
  • voice.*:语音转写
  • agent.*:统一工作台快照兼容入口
  • agentRuntime.*:正式 Agent Runtime API、registry 管理、trace / metrics / audit 查询与推送
  • whisperModel.*:Whisper 模型管理
  • whisperBinary.*:whisper.cpp 二进制管理
  • ffmpeg.*:FFmpeg 二进制管理

集成范围

  • Mortise Public API:工作区认证、产品查询、AIoT 设备链路、OTA 设备链路
  • 第三方 AI 供应商 API:OpenAI 兼容、Anthropic、Google Gemini、Azure OpenAI 等
  • 本地语音运行时:coli CLI、whisper.cpp、FFmpeg

Mortise 是当前设备云与 API 接入对象之一,不再定义 Rodak 的产品边界。 Rodak 当前不依赖 Mortise /api/v1/agent/* 接口,聊天能力通过供应商直连实现。

文档导航

许可证

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages