assetplex 0.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/LICENSE +21 -0
- package/README.md +243 -0
- package/README.zh-CN.md +243 -0
- package/dist/index.js +4152 -0
- package/dist/index.js.map +1 -0
- package/package.json +76 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Wynter-Cai
|
|
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,243 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# AssetPlex
|
|
4
|
+
|
|
5
|
+
**One hub, every AI agent.**
|
|
6
|
+
|
|
7
|
+
Sync your **identity, skills, rules & MCP servers** across Claude Code, Codex, TRAE, WorkBuddy and Qoder — **100% local, no cloud**.
|
|
8
|
+
|
|
9
|
+
[中文文档](README.zh-CN.md) · [Docs](https://wynter-cai.github.io/assetplex/) · [Privacy](PRIVACY.md) · [Discussions](https://github.com/wynter-cai/assetplex/discussions)
|
|
10
|
+
|
|
11
|
+
[](https://opensource.org/licenses/MIT)
|
|
12
|
+
[](https://nodejs.org/)
|
|
13
|
+
[](https://www.typescriptlang.org/)
|
|
14
|
+
[](https://github.com/wynter-cai/assetplex/actions/workflows/ci.yml)
|
|
15
|
+
[](https://github.com/wynter-cai/assetplex/actions/workflows/docs.yml)
|
|
16
|
+
[](https://www.npmjs.com/package/assetplex)
|
|
17
|
+
[](https://www.npmjs.com/package/assetplex)
|
|
18
|
+
[](https://github.com/wynter-cai/assetplex/stargazers)
|
|
19
|
+
[](https://github.com/wynter-cai/assetplex/pulls)
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Why AssetPlex?
|
|
26
|
+
|
|
27
|
+
Your identity, skills, rules and MCP servers are **your assets**. AI coding tools are just consumers of them. Today, that means:
|
|
28
|
+
|
|
29
|
+
- You write a detailed profile in TRAE — Claude Code doesn't know you.
|
|
30
|
+
- You configure 5 MCP servers in Claude Code — Codex makes you redo it all.
|
|
31
|
+
- You write 10 skills — and copy-paste them into every tool by hand.
|
|
32
|
+
- Switching tools feels like moving house — every time.
|
|
33
|
+
|
|
34
|
+
**AssetPlex centralizes those assets once, in `~/.assetplex/`, and syncs them to every AI coding tool with a single command.**
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
┌──────────────────────────────┐
|
|
38
|
+
│ ~/.assetplex/ │
|
|
39
|
+
│ │
|
|
40
|
+
│ identity/ your profile │
|
|
41
|
+
│ skills/ skill library │
|
|
42
|
+
│ rules/ global rules │
|
|
43
|
+
│ mcp/ MCP servers │
|
|
44
|
+
│ preferences/ personal prefs │
|
|
45
|
+
│ │
|
|
46
|
+
└──────────┬───────────────────┘
|
|
47
|
+
│ assetplex sync
|
|
48
|
+
┌───────────┼───────────┬──────────────┐
|
|
49
|
+
▼ ▼ ▼ ▼
|
|
50
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐
|
|
51
|
+
│ TRAE CN │ │ Claude │ │ Codex │ │WorkBuddy │
|
|
52
|
+
└─────────┘ └─────────┘ └─────────┘ └──────────┘
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Key Features
|
|
56
|
+
|
|
57
|
+
- **One central hub** — manage identity, skills, rules & MCP servers in `~/.assetplex/`.
|
|
58
|
+
- **Sync everywhere** — `assetplex sync` pushes your assets to all enabled tools.
|
|
59
|
+
- **Reverse import** — pull existing configs from your installed tools back into the hub.
|
|
60
|
+
- **Visual Web UI** — `assetplex ui` gives you a dashboard for everything.
|
|
61
|
+
- **Format translation** — JSON↔TOML for Codex, `${VAR}` interpolation for WorkBuddy.
|
|
62
|
+
- **Cross-platform symlinks** — Windows (junction fallback), macOS and Linux.
|
|
63
|
+
- **Plugin-style adapters** — add a new tool without touching the core.
|
|
64
|
+
- **100% local & private** — nothing ever leaves your machine. [Read the privacy model](PRIVACY.md).
|
|
65
|
+
|
|
66
|
+
## Supported Tools
|
|
67
|
+
|
|
68
|
+
| Tool | Syncs | Strategy |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| **TRAE (CN)** | profile, skills, rules, MCP | symlink |
|
|
71
|
+
| **Claude Code** | CLAUDE.md (`@import` aggregation), skills, MCP | native-import |
|
|
72
|
+
| **Codex CLI** | AGENTS.md, skills, MCP (JSON→TOML) | copy |
|
|
73
|
+
| **WorkBuddy / CodeBuddy** | skills, rules, MCP (`${VAR}` interpolation) | symlink + copy |
|
|
74
|
+
| **Qoder** | project `.qoder/rules`, skills, AGENTS.md | per-project |
|
|
75
|
+
|
|
76
|
+
## Quick Start
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Install
|
|
80
|
+
npm install -g assetplex
|
|
81
|
+
|
|
82
|
+
# Initialize your hub (~/.assetplex/)
|
|
83
|
+
assetplex init
|
|
84
|
+
|
|
85
|
+
# Detect installed AI tools
|
|
86
|
+
assetplex doctor
|
|
87
|
+
|
|
88
|
+
# Sync the hub to all tools
|
|
89
|
+
assetplex sync
|
|
90
|
+
|
|
91
|
+
# Open the visual management UI
|
|
92
|
+
assetplex ui
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Requirements**: Node.js >= 18.
|
|
96
|
+
|
|
97
|
+
### Reverse-import from existing tools
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
assetplex ui
|
|
101
|
+
# → Import page: detects installed tools → scans importable content → pick → one-click merge
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Comparison
|
|
105
|
+
|
|
106
|
+
| Capability | agentsync | agentsmesh | sync-rules | **AssetPlex** |
|
|
107
|
+
|---|---|---|---|---|
|
|
108
|
+
| China tool stack (TRAE/WorkBuddy/Qoder) | ❌ | ❌ | ❌ | ✅ |
|
|
109
|
+
| Visual Web UI | ❌ | ❌ | ❌ | ✅ |
|
|
110
|
+
| Reverse import from tools | ❌ | ❌ | ❌ | ✅ |
|
|
111
|
+
| Claude `@import` native support | ❌ | ❌ | ✅ | ✅ |
|
|
112
|
+
| Windows symlink compatibility | ✅ | ✅ | ❌ | ✅ |
|
|
113
|
+
| Plugin architecture | ❌ | ✅ | ❌ | ✅ |
|
|
114
|
+
| MCP JSON↔TOML conversion | ❌ | ❌ | ❌ | ✅ |
|
|
115
|
+
|
|
116
|
+
## Web UI Preview
|
|
117
|
+
|
|
118
|
+
Run `assetplex ui`, then open `http://127.0.0.1:17521`:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
┌──────────────────────────────────────────────────────────┐
|
|
122
|
+
│ 🏠 AssetPlex v0.1.0 │
|
|
123
|
+
├──────────┬───────────────────────────────────────────────┤
|
|
124
|
+
│ 📊 Overview │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
125
|
+
│ 🔧 Tools │ │Installed│ │Hub files│ │Last sync│ │
|
|
126
|
+
│ 🔄 Sync │ └─────────┘ └─────────┘ └─────────┘ │
|
|
127
|
+
│ 📥 Import │ │
|
|
128
|
+
│ 👤 Identity │ ┌─ Tool status ─────────────────────┐ │
|
|
129
|
+
│ 📦 Skills │ │ TRAE CN ✅ installed ~/.trae-cn/ │ │
|
|
130
|
+
│ 📋 Rules │ │ Claude Code ❌ not installed │ │
|
|
131
|
+
│ 🔌 MCP │ └───────────────────────────────────┘ │
|
|
132
|
+
│ ⚙️ Settings │ │
|
|
133
|
+
└──────────┴──────────────────────────────────────────────┘
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Hub Layout
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
~/.assetplex/
|
|
140
|
+
├── identity/ # your profile
|
|
141
|
+
│ ├── profile.md
|
|
142
|
+
│ ├── communication-style.md
|
|
143
|
+
│ ├── tech-stack.md
|
|
144
|
+
│ └── env.md
|
|
145
|
+
├── skills/ # cross-tool skill library
|
|
146
|
+
│ └── <skill-name>/SKILL.md
|
|
147
|
+
├── rules/ # rules
|
|
148
|
+
│ ├── always/global.md
|
|
149
|
+
│ ├── by-glob/*.md
|
|
150
|
+
│ └── by-project/*.md
|
|
151
|
+
├── preferences/ # personal preferences
|
|
152
|
+
├── mcp/mcp.sources.json # MCP server configs
|
|
153
|
+
├── commands/ # custom slash commands
|
|
154
|
+
├── agents/ # sub-agent definitions
|
|
155
|
+
├── hub.toml # main hub config
|
|
156
|
+
└── .backups/ # automatic backups
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Roadmap
|
|
160
|
+
|
|
161
|
+
**In development** 🚧
|
|
162
|
+
- Smart import wizard (4-step: detect → scan → resolve conflicts → import)
|
|
163
|
+
- Smart merge (Markdown / JSON / TOML conflict resolution)
|
|
164
|
+
|
|
165
|
+
**Planned** 📋
|
|
166
|
+
- Auto-learned profile from your coding behavior (`profile.auto.md`)
|
|
167
|
+
- Skill marketplace (aggregating claudeskills.info, agentskills.io)
|
|
168
|
+
- Drift detection & auto-repair
|
|
169
|
+
- `--watch` mode for live re-sync
|
|
170
|
+
|
|
171
|
+
## Contributing
|
|
172
|
+
|
|
173
|
+
Contributions are welcome! See [open issues](https://github.com/wynter-cai/assetplex/issues) and [good first issues](https://github.com/wynter-cai/assetplex/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22), or join the [Discussions](https://github.com/wynter-cai/assetplex/discussions).
|
|
174
|
+
|
|
175
|
+
## Development
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
git clone https://github.com/wynter-cai/assetplex.git
|
|
179
|
+
cd assetplex
|
|
180
|
+
|
|
181
|
+
npm install # install backend dependencies
|
|
182
|
+
npm run dev # watch mode (tsup)
|
|
183
|
+
npm run typecheck # TypeScript check
|
|
184
|
+
npm test # backend tests (Vitest)
|
|
185
|
+
npm run build # build dist/
|
|
186
|
+
|
|
187
|
+
# Frontend (web/)
|
|
188
|
+
cd web
|
|
189
|
+
npm install
|
|
190
|
+
npm test # frontend tests
|
|
191
|
+
npm run build # tsc -b && vite build
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Project structure
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
assetplex/
|
|
198
|
+
├── src/
|
|
199
|
+
│ ├── cli/ # CLI commands (init/doctor/sync/ui)
|
|
200
|
+
│ ├── core/ # core engine
|
|
201
|
+
│ │ ├── adapters/ # tool adapters (base interface)
|
|
202
|
+
│ │ ├── sync-engine.ts
|
|
203
|
+
│ │ ├── config.ts
|
|
204
|
+
│ │ └── types.ts
|
|
205
|
+
│ ├── server/ # HTTP server for the Web UI
|
|
206
|
+
│ ├── transforms/ # format transforms (symlink/json-toml/env)
|
|
207
|
+
│ └── utils/ # fs/paths/logger
|
|
208
|
+
├── web/ # React frontend (Vite + shadcn/ui)
|
|
209
|
+
├── tests/ # backend tests
|
|
210
|
+
└── 设计文档/ # design docs
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Tech stack
|
|
214
|
+
|
|
215
|
+
| Layer | Tech |
|
|
216
|
+
|---|---|
|
|
217
|
+
| Language | TypeScript 5.6 |
|
|
218
|
+
| Runtime | Node.js 18+ |
|
|
219
|
+
| CLI | Commander.js |
|
|
220
|
+
| HTTP | Hono |
|
|
221
|
+
| Frontend | React 18 + Vite + shadcn/ui + Tailwind |
|
|
222
|
+
| Data fetching | TanStack Query |
|
|
223
|
+
| Build | tsup |
|
|
224
|
+
| Tests | Vitest |
|
|
225
|
+
|
|
226
|
+
## Design Docs
|
|
227
|
+
|
|
228
|
+
- [Overall architecture](设计文档/assetplex-design-plan.md)
|
|
229
|
+
- [Sync engine MVP](设计文档/assetplex-stage2-sync-mvp.md)
|
|
230
|
+
- [Web UI plan](设计文档/assetplex-web-ui-plan.md)
|
|
231
|
+
- [Import wizard PRD](设计文档/assetplex-prd-v2-import-wizard.md)
|
|
232
|
+
|
|
233
|
+
## License
|
|
234
|
+
|
|
235
|
+
MIT © [Wynter-Cai](https://github.com/wynter-cai)
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
<div align="center">
|
|
240
|
+
|
|
241
|
+
If AssetPlex helps you, please give it a ⭐ Star!
|
|
242
|
+
|
|
243
|
+
</div>
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# AssetPlex
|
|
4
|
+
|
|
5
|
+
**一个身份,所有 AI 助手。**
|
|
6
|
+
|
|
7
|
+
把你的**身份、技能、规则、MCP 服务器**在 Claude Code、Codex、TRAE、WorkBuddy、Qoder 之间一键同步 —— **数据 100% 本地,绝不上云**。
|
|
8
|
+
|
|
9
|
+
[English](README.md) · [Docs](https://wynter-cai.github.io/assetplex/) · [隐私模型](PRIVACY.md) · [Discussions](https://github.com/wynter-cai/assetplex/discussions)
|
|
10
|
+
|
|
11
|
+
[](https://opensource.org/licenses/MIT)
|
|
12
|
+
[](https://nodejs.org/)
|
|
13
|
+
[](https://www.typescriptlang.org/)
|
|
14
|
+
[](https://github.com/wynter-cai/assetplex/actions/workflows/ci.yml)
|
|
15
|
+
[](https://github.com/wynter-cai/assetplex/actions/workflows/docs.yml)
|
|
16
|
+
[](https://www.npmjs.com/package/assetplex)
|
|
17
|
+
[](https://www.npmjs.com/package/assetplex)
|
|
18
|
+
[](https://github.com/wynter-cai/assetplex/stargazers)
|
|
19
|
+
[](https://github.com/wynter-cai/assetplex/pulls)
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 为什么需要 AssetPlex?
|
|
26
|
+
|
|
27
|
+
你的身份、技能、规则和 MCP 服务器是**你的资产**,AI 编码工具只是消费端。而现状是:
|
|
28
|
+
|
|
29
|
+
- 你在 TRAE 里写了详细的个人画像,Claude Code 不认识你
|
|
30
|
+
- 你在 Claude Code 配了 5 个 MCP 服务器,Codex 里又要重新配一遍
|
|
31
|
+
- 你写了 10 个技能,每个工具都要手动复制一份
|
|
32
|
+
- 换工具像搬家 —— 每次都从头开始
|
|
33
|
+
|
|
34
|
+
**AssetPlex 把这些资产集中管理在 `~/.assetplex/`,一条命令同步到你所有的 AI 编码工具。**
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
┌──────────────────────────────┐
|
|
38
|
+
│ ~/.assetplex/ │
|
|
39
|
+
│ │
|
|
40
|
+
│ identity/ 你的身份画像 │
|
|
41
|
+
│ skills/ 技能库 │
|
|
42
|
+
│ rules/ 通用规则 │
|
|
43
|
+
│ mcp/ MCP 配置 │
|
|
44
|
+
│ preferences/ 个人偏好 │
|
|
45
|
+
│ │
|
|
46
|
+
└──────────┬───────────────────┘
|
|
47
|
+
│ assetplex sync
|
|
48
|
+
┌───────────┼───────────┬──────────────┐
|
|
49
|
+
▼ ▼ ▼ ▼
|
|
50
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐
|
|
51
|
+
│ TRAE CN │ │ Claude │ │ Codex │ │WorkBuddy │
|
|
52
|
+
└─────────┘ └─────────┘ └─────────┘ └──────────┘
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 核心功能
|
|
56
|
+
|
|
57
|
+
- **一个中心 Hub** —— 身份、技能、规则、MCP 全部集中在 `~/.assetplex/`
|
|
58
|
+
- **一键同步** —— `assetplex sync` 把资产推到所有启用的工具
|
|
59
|
+
- **反向导入** —— 从已安装工具把现有配置拉回 Hub
|
|
60
|
+
- **可视化 Web UI** —— `assetplex ui` 仪表盘管理一切
|
|
61
|
+
- **格式转换** —— Codex 的 JSON↔TOML、WorkBuddy 的 `${VAR}` 插值
|
|
62
|
+
- **跨平台 symlink** —— Windows(junction 回退)、macOS、Linux
|
|
63
|
+
- **插件化适配器** —— 新增工具无需改核心代码
|
|
64
|
+
- **100% 本地、绝对隐私** —— 数据永不离开你的电脑。[查看隐私模型](PRIVACY.md)
|
|
65
|
+
|
|
66
|
+
## 支持的 AI 工具
|
|
67
|
+
|
|
68
|
+
| 工具 | 同步内容 | 策略 |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| **TRAE 中国版** | 身份画像、技能、规则、MCP | symlink |
|
|
71
|
+
| **Claude Code** | CLAUDE.md(@import 聚合)、技能、MCP | native-import |
|
|
72
|
+
| **Codex CLI** | AGENTS.md、技能、MCP(JSON→TOML) | copy |
|
|
73
|
+
| **WorkBuddy / CodeBuddy** | 技能、规则、MCP(${VAR} 插值) | symlink + copy |
|
|
74
|
+
| **Qoder** | 项目级 .qoder/rules、skills、AGENTS.md | per-project |
|
|
75
|
+
|
|
76
|
+
## 快速开始
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 安装
|
|
80
|
+
npm install -g assetplex
|
|
81
|
+
|
|
82
|
+
# 初始化 Hub(~/.assetplex/)
|
|
83
|
+
assetplex init
|
|
84
|
+
|
|
85
|
+
# 检测已安装的 AI 工具
|
|
86
|
+
assetplex doctor
|
|
87
|
+
|
|
88
|
+
# 同步 Hub 到所有工具
|
|
89
|
+
assetplex sync
|
|
90
|
+
|
|
91
|
+
# 打开可视化界面
|
|
92
|
+
assetplex ui
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**要求**:Node.js >= 18
|
|
96
|
+
|
|
97
|
+
### 从已有工具反向导入
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
assetplex ui
|
|
101
|
+
# → 导入页:检测已装工具 → 扫描可导入内容 → 勾选 → 一键汇聚
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 与同类工具对比
|
|
105
|
+
|
|
106
|
+
| 能力 | agentsync | agentsmesh | sync-rules | **AssetPlex** |
|
|
107
|
+
|---|---|---|---|---|
|
|
108
|
+
| 中国工具栈(TRAE/WorkBuddy/Qoder) | ❌ | ❌ | ❌ | ✅ |
|
|
109
|
+
| Web UI 可视化管理 | ❌ | ❌ | ❌ | ✅ |
|
|
110
|
+
| 从工具反向导入 | ❌ | ❌ | ❌ | ✅ |
|
|
111
|
+
| Claude @import 原生利用 | ❌ | ❌ | ✅ | ✅ |
|
|
112
|
+
| Windows symlink 兼容 | ✅ | ✅ | ❌ | ✅ |
|
|
113
|
+
| 插件架构 | ❌ | ✅ | ❌ | ✅ |
|
|
114
|
+
| MCP JSON↔TOML 转换 | ❌ | ❌ | ❌ | ✅ |
|
|
115
|
+
|
|
116
|
+
## Web UI 预览
|
|
117
|
+
|
|
118
|
+
运行 `assetplex ui` 后,浏览器打开 `http://127.0.0.1:17521`:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
┌──────────────────────────────────────────────────────────┐
|
|
122
|
+
│ 🏠 AssetPlex v0.1.0 │
|
|
123
|
+
├──────────┬───────────────────────────────────────────────┤
|
|
124
|
+
│ 📊 总览 │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
125
|
+
│ 🔧 工具 │ │ 已安装 │ │ Hub 文件 │ │ 最近同步 │ │
|
|
126
|
+
│ 🔄 同步 │ └─────────┘ └─────────┘ └─────────┘ │
|
|
127
|
+
│ 📥 导入 │ │
|
|
128
|
+
│ 👤 身份 │ ┌─ 工具状态 ──────────────────────────┐ │
|
|
129
|
+
│ 📦 技能 │ │ TRAE CN ✅ 已安装 ~/.trae-cn/ │ │
|
|
130
|
+
│ 📋 规则 │ │ Claude Code ❌ 未安装 │ │
|
|
131
|
+
│ 🔌 MCP │ └──────────────────────────────────────┘ │
|
|
132
|
+
│ ⚙️ 设置 │ │
|
|
133
|
+
└──────────┴───────────────────────────────────────────────┘
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Hub 目录结构
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
~/.assetplex/
|
|
140
|
+
├── identity/ # 你的身份画像
|
|
141
|
+
│ ├── profile.md
|
|
142
|
+
│ ├── communication-style.md
|
|
143
|
+
│ ├── tech-stack.md
|
|
144
|
+
│ └── env.md
|
|
145
|
+
├── skills/ # 跨工具技能库
|
|
146
|
+
│ └── <skill-name>/SKILL.md
|
|
147
|
+
├── rules/ # 规则
|
|
148
|
+
│ ├── always/global.md
|
|
149
|
+
│ ├── by-glob/*.md
|
|
150
|
+
│ └── by-project/*.md
|
|
151
|
+
├── preferences/ # 个人偏好
|
|
152
|
+
├── mcp/mcp.sources.json # MCP 服务器配置
|
|
153
|
+
├── commands/ # 自定义 slash commands
|
|
154
|
+
├── agents/ # 子代理定义
|
|
155
|
+
├── hub.toml # Hub 主配置
|
|
156
|
+
└── .backups/ # 自动备份
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 路线图
|
|
160
|
+
|
|
161
|
+
**开发中** 🚧
|
|
162
|
+
- 智能导入向导(4 步:检测 → 扫描 → 解决冲突 → 导入)
|
|
163
|
+
- 智能合并(Markdown / JSON / TOML 冲突处理)
|
|
164
|
+
|
|
165
|
+
**规划中** 📋
|
|
166
|
+
- 从编码行为自动学习个人画像(`profile.auto.md`)
|
|
167
|
+
- 技能市场(聚合 claudeskills.info / agentskills.io)
|
|
168
|
+
- 漂移检测与自动修复
|
|
169
|
+
- `--watch` 文件变化自动同步
|
|
170
|
+
|
|
171
|
+
## 参与贡献
|
|
172
|
+
|
|
173
|
+
欢迎提交 PR!可以看看 [open issues](https://github.com/wynter-cai/assetplex/issues) 和 [good first issues](https://github.com/wynter-cai/assetplex/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22),或加入 [Discussions](https://github.com/wynter-cai/assetplex/discussions)。
|
|
174
|
+
|
|
175
|
+
## 开发
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
git clone https://github.com/wynter-cai/assetplex.git
|
|
179
|
+
cd assetplex
|
|
180
|
+
|
|
181
|
+
npm install # 安装后端依赖
|
|
182
|
+
npm run dev # watch 模式(tsup)
|
|
183
|
+
npm run typecheck # TypeScript 检查
|
|
184
|
+
npm test # 后端测试(Vitest)
|
|
185
|
+
npm run build # 构建 dist/
|
|
186
|
+
|
|
187
|
+
# 前端(web/)
|
|
188
|
+
cd web
|
|
189
|
+
npm install
|
|
190
|
+
npm test # 前端测试
|
|
191
|
+
npm run build # tsc -b && vite build
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### 项目结构
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
assetplex/
|
|
198
|
+
├── src/
|
|
199
|
+
│ ├── cli/ # CLI 命令(init/doctor/sync/ui)
|
|
200
|
+
│ ├── core/ # 核心引擎
|
|
201
|
+
│ │ ├── adapters/ # 工具适配器(base 接口)
|
|
202
|
+
│ │ ├── sync-engine.ts
|
|
203
|
+
│ │ ├── config.ts
|
|
204
|
+
│ │ └── types.ts
|
|
205
|
+
│ ├── server/ # Web UI 后端 HTTP 服务
|
|
206
|
+
│ ├── transforms/ # 格式转换(symlink/json-toml/env)
|
|
207
|
+
│ └── utils/ # 工具函数(fs/paths/logger)
|
|
208
|
+
├── web/ # React 前端(Vite + shadcn/ui)
|
|
209
|
+
├── tests/ # 后端测试
|
|
210
|
+
└── 设计文档/ # 产品设计文档
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 技术栈
|
|
214
|
+
|
|
215
|
+
| 层 | 技术 |
|
|
216
|
+
|---|---|
|
|
217
|
+
| 语言 | TypeScript 5.6 |
|
|
218
|
+
| 运行时 | Node.js 18+ |
|
|
219
|
+
| CLI | Commander.js |
|
|
220
|
+
| HTTP | Hono |
|
|
221
|
+
| 前端 | React 18 + Vite + shadcn/ui + Tailwind |
|
|
222
|
+
| 数据获取 | TanStack Query |
|
|
223
|
+
| 构建 | tsup |
|
|
224
|
+
| 测试 | Vitest |
|
|
225
|
+
|
|
226
|
+
## 设计文档
|
|
227
|
+
|
|
228
|
+
- [项目总体架构设计](设计文档/assetplex-design-plan.md)
|
|
229
|
+
- [同步引擎 MVP 方案](设计文档/assetplex-stage2-sync-mvp.md)
|
|
230
|
+
- [Web UI 实施方案](设计文档/assetplex-web-ui-plan.md)
|
|
231
|
+
- [产品 PRD v2.0](设计文档/assetplex-prd-v2-import-wizard.md)
|
|
232
|
+
|
|
233
|
+
## 开源协议
|
|
234
|
+
|
|
235
|
+
MIT © [Wynter-Cai](https://github.com/wynter-cai)
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
<div align="center">
|
|
240
|
+
|
|
241
|
+
如果你觉得有用,请给个 ⭐ Star 支持一下~
|
|
242
|
+
|
|
243
|
+
</div>
|