blob: 632aa932b446c94d0e2dd628097aa60953d4fe5f [file] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<h1 align="center"><img src="assets/logo.png" alt="Maka" width="72" /> Apache Maka (Incubating)</h1>
[English](README.md)
Apache Maka (Incubating) 是一个高性能 Agent 工作台,完整记录它做过的每一件事。
Maka 提供终端工作台和原生桌面 shell。Runtime Host 统一管理执行、权限和持久状态,模型提供商、工具与业务能力通过公共插件接口接入。
## 从源码运行
需要 Rust stable、Node.js 24 LTS、npm 11.19.0 和 [just](https://github.com/casey/just)。原生 Computer Use 在 macOS 需要 Xcode Command Line Tools,在 Linux 需要 X11 开发库。
```sh
git clone https://github.com/apache/maka.git
cd maka
just setup
just run
```
`just run` 打开 [NSH 终端工作台](products/maka/terminal-shell/README.zh-CN.md),即 `maka` 的默认界面。它自动发现或启动 `~/.maka/application/host` 的 Host;`--root PATH` 指定其他 Host,`--session ID` 打开已有会话。`just run --help` 查看 CLI 命令。`just build --release` 生成 `target/release/maka`、`maka-desktop-shell` 及相邻的 `app/` 目录,Windows 可执行文件使用 `.exe` 后缀,macOS 上桌面 shell 和 app 放在 `Maka.app` 中。构建入口支持 `--release` 和 `--target`。模型协议由 Rust 执行。Node.js 打包产品代码,CLI 在 V8 中执行插件与 Code Mode JavaScript,桌面 shell 通过 QuickJS 执行 app。编写和安装方式见[产品指南](products/maka/bundle/README.zh-CN.md)。
在 WSL 中,`just run` 构建不含本地 `native-desktop` 能力及其 Linux X11 依赖的 CLI,Computer Use 默认选择 Windows 桌面。源码构建需通过 `MAKA_CUA_WINDOWS_EXECUTABLE` 指定匹配的 Windows `maka.exe`,使用 WSL 可见的绝对路径。`MAKA_CUA_BUILD_MODE=auto|native|bridge` 控制开发构建选择,设置方法见 [Computer Use](platform/computer-use/README.zh-CN.md)。`just build` 和发布打包仍构建完整原生产品,包含桌面 shell 及其 Linux GUI 依赖。
通过 `target/release/maka desktop --root HOST_ROOT` 启动桌面,显式选择实际业务 Host Root。启动器初始化或重开 Host,并在 shell 运行期间保留其客户端。产物布局和开发命令见 [desktop-shell](products/maka/desktop-shell/README.zh-CN.md)。
## 目录
| 目录 | 用途 |
| --- | --- |
| [platform/](platform/README.zh-CN.md) | 应用内核、Host/UI owner、JavaScript 执行适配器和原生渲染器 |
| [plugins/](plugins/README.zh-CN.md) | 插件声明、业务实现及共享领域契约 |
| [products/maka/](products/maka/README.zh-CN.md) | 原生工厂选择、产品组合、CLI 和桌面入口 |
| `tools/schema/` | 无需构建完整产品的契约与 schema 导出 |
| `packages/plugin-sdk/` | JavaScript 插件的 Host、组件与原生呈现契约,由规范定义生成 |
| `packages/cli/` | 启动各平台 Rust 可执行文件的 npm 薄封装 |
| `scripts/rust/` | 原生打包与绑定源码的 npm 分发 |
| `website/` | 独立构建的项目官网 |
通过 `just --list` 查看开发命令。参阅[贡献指南](CONTRIBUTING.zh-CN.md)、[架构](ARCHITECTURE.zh-CN.md)和[安全策略](SECURITY.md)。
## 分发
npm 启动器选择匹配的原生平台包,自身不包含 Agent 运行时。原生预览包从同一份源码归档构建并验证,流程见 [packages/cli](packages/cli/README.zh-CN.md)。
Apache Maka 正在 Apache 软件基金会孵化。参见 [DISCLAIMER-WIP](DISCLAIMER-WIP)、[LICENSE](LICENSE) 和 [NOTICE](NOTICE)。