@agents-uni/core 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/DESIGN.md +283 -0
- package/LICENSE +21 -0
- package/README.en.md +589 -0
- package/README.md +589 -0
- package/dist/bridge/config-sync.d.ts +24 -0
- package/dist/bridge/config-sync.d.ts.map +1 -0
- package/dist/bridge/config-sync.js +39 -0
- package/dist/bridge/config-sync.js.map +1 -0
- package/dist/bridge/index.d.ts +7 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +7 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/openclaw-adapter.d.ts +49 -0
- package/dist/bridge/openclaw-adapter.d.ts.map +1 -0
- package/dist/bridge/openclaw-adapter.js +151 -0
- package/dist/bridge/openclaw-adapter.js.map +1 -0
- package/dist/bridge/soul-generator.d.ts +34 -0
- package/dist/bridge/soul-generator.d.ts.map +1 -0
- package/dist/bridge/soul-generator.js +149 -0
- package/dist/bridge/soul-generator.js.map +1 -0
- package/dist/bridge/task-dispatcher.d.ts +107 -0
- package/dist/bridge/task-dispatcher.d.ts.map +1 -0
- package/dist/bridge/task-dispatcher.js +217 -0
- package/dist/bridge/task-dispatcher.js.map +1 -0
- package/dist/bridge/uni-registry.d.ts +82 -0
- package/dist/bridge/uni-registry.d.ts.map +1 -0
- package/dist/bridge/uni-registry.js +261 -0
- package/dist/bridge/uni-registry.js.map +1 -0
- package/dist/bridge/workspace-io.d.ts +64 -0
- package/dist/bridge/workspace-io.d.ts.map +1 -0
- package/dist/bridge/workspace-io.js +99 -0
- package/dist/bridge/workspace-io.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +6 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +48 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +137 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/inspect.d.ts +4 -0
- package/dist/cli/commands/inspect.d.ts.map +1 -0
- package/dist/cli/commands/inspect.js +77 -0
- package/dist/cli/commands/inspect.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +2 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +30 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/visualize.d.ts +2 -0
- package/dist/cli/commands/visualize.d.ts.map +1 -0
- package/dist/cli/commands/visualize.js +69 -0
- package/dist/cli/commands/visualize.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +132 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/agent-registry.d.ts +37 -0
- package/dist/core/agent-registry.d.ts.map +1 -0
- package/dist/core/agent-registry.js +97 -0
- package/dist/core/agent-registry.js.map +1 -0
- package/dist/core/event-bus.d.ts +34 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +96 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/permission-matrix.d.ts +35 -0
- package/dist/core/permission-matrix.d.ts.map +1 -0
- package/dist/core/permission-matrix.js +95 -0
- package/dist/core/permission-matrix.js.map +1 -0
- package/dist/core/relationship-graph.d.ts +50 -0
- package/dist/core/relationship-graph.d.ts.map +1 -0
- package/dist/core/relationship-graph.js +150 -0
- package/dist/core/relationship-graph.js.map +1 -0
- package/dist/core/resource-pool.d.ts +48 -0
- package/dist/core/resource-pool.d.ts.map +1 -0
- package/dist/core/resource-pool.js +205 -0
- package/dist/core/resource-pool.js.map +1 -0
- package/dist/core/state-machine.d.ts +47 -0
- package/dist/core/state-machine.d.ts.map +1 -0
- package/dist/core/state-machine.js +110 -0
- package/dist/core/state-machine.js.map +1 -0
- package/dist/core/universe.d.ts +38 -0
- package/dist/core/universe.d.ts.map +1 -0
- package/dist/core/universe.js +101 -0
- package/dist/core/universe.js.map +1 -0
- package/dist/dashboard/api.d.ts +10 -0
- package/dist/dashboard/api.d.ts.map +1 -0
- package/dist/dashboard/api.js +237 -0
- package/dist/dashboard/api.js.map +1 -0
- package/dist/dashboard/index.d.ts +3 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +3 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/server.d.ts +31 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +44 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/dashboard/templates.d.ts +47 -0
- package/dist/dashboard/templates.d.ts.map +1 -0
- package/dist/dashboard/templates.js +1481 -0
- package/dist/dashboard/templates.js.map +1 -0
- package/dist/evolution/index.d.ts +5 -0
- package/dist/evolution/index.d.ts.map +1 -0
- package/dist/evolution/index.js +5 -0
- package/dist/evolution/index.js.map +1 -0
- package/dist/evolution/memory-consolidator.d.ts +28 -0
- package/dist/evolution/memory-consolidator.d.ts.map +1 -0
- package/dist/evolution/memory-consolidator.js +84 -0
- package/dist/evolution/memory-consolidator.js.map +1 -0
- package/dist/evolution/performance-tracker.d.ts +29 -0
- package/dist/evolution/performance-tracker.d.ts.map +1 -0
- package/dist/evolution/performance-tracker.js +90 -0
- package/dist/evolution/performance-tracker.js.map +1 -0
- package/dist/evolution/promotion-engine.d.ts +32 -0
- package/dist/evolution/promotion-engine.d.ts.map +1 -0
- package/dist/evolution/promotion-engine.js +117 -0
- package/dist/evolution/promotion-engine.js.map +1 -0
- package/dist/evolution/relationship-evolver.d.ts +40 -0
- package/dist/evolution/relationship-evolver.d.ts.map +1 -0
- package/dist/evolution/relationship-evolver.js +105 -0
- package/dist/evolution/relationship-evolver.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/index.d.ts +13 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +18 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/universe.schema.json +214 -0
- package/dist/spec/compiler.d.ts +16 -0
- package/dist/spec/compiler.d.ts.map +1 -0
- package/dist/spec/compiler.js +26 -0
- package/dist/spec/compiler.js.map +1 -0
- package/dist/spec/index.d.ts +4 -0
- package/dist/spec/index.d.ts.map +1 -0
- package/dist/spec/index.js +4 -0
- package/dist/spec/index.js.map +1 -0
- package/dist/spec/parser.d.ts +11 -0
- package/dist/spec/parser.d.ts.map +1 -0
- package/dist/spec/parser.js +89 -0
- package/dist/spec/parser.js.map +1 -0
- package/dist/spec/validator.d.ts +9 -0
- package/dist/spec/validator.d.ts.map +1 -0
- package/dist/spec/validator.js +105 -0
- package/dist/spec/validator.js.map +1 -0
- package/dist/types/agent.d.ts +56 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +8 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/event.d.ts +34 -0
- package/dist/types/event.d.ts.map +1 -0
- package/dist/types/event.js +11 -0
- package/dist/types/event.js.map +1 -0
- package/dist/types/governance.d.ts +48 -0
- package/dist/types/governance.d.ts.map +1 -0
- package/dist/types/governance.js +9 -0
- package/dist/types/governance.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +73 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +9 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/protocol.d.ts +48 -0
- package/dist/types/protocol.d.ts.map +1 -0
- package/dist/types/protocol.js +9 -0
- package/dist/types/protocol.js.map +1 -0
- package/dist/types/relationship.d.ts +40 -0
- package/dist/types/relationship.d.ts.map +1 -0
- package/dist/types/relationship.js +9 -0
- package/dist/types/relationship.js.map +1 -0
- package/dist/types/resource.d.ts +52 -0
- package/dist/types/resource.d.ts.map +1 -0
- package/dist/types/resource.js +9 -0
- package/dist/types/resource.js.map +1 -0
- package/dist/types/universe.d.ts +71 -0
- package/dist/types/universe.d.ts.map +1 -0
- package/dist/types/universe.js +9 -0
- package/dist/types/universe.js.map +1 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,589 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">agents-uni-core</h1>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>Agent 组织与社会关系的通用协议层</strong>
|
|
5
|
+
</p>
|
|
6
|
+
<p align="center">
|
|
7
|
+
定义 Agent 如何组织、协作、竞争与进化 —— 而不仅仅是它们做什么。
|
|
8
|
+
</p>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="./README.en.md">English</a> •
|
|
13
|
+
<a href="#快速开始">快速开始</a> •
|
|
14
|
+
<a href="#核心概念">核心概念</a> •
|
|
15
|
+
<a href="#组织模板">组织模板</a> •
|
|
16
|
+
<a href="#命令行工具">CLI</a> •
|
|
17
|
+
<a href="#openclaw-桥接">OpenClaw</a> •
|
|
18
|
+
<a href="#dashboard-仪表盘">Dashboard</a> •
|
|
19
|
+
<a href="#多-uni-管理">多 Uni 管理</a> •
|
|
20
|
+
<a href="./DESIGN.md">设计文档</a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 为什么需要这个项目?
|
|
26
|
+
|
|
27
|
+
当前的多 Agent 框架解决的是**生产力**问题 —— 如何让 Agent 完成任务。它们忽略了**生产关系** —— Agent 之间如何组织、治理和进化。
|
|
28
|
+
|
|
29
|
+
人类社会用了数千年才发展出官僚制、公司制、军队、合伙制。这些不是随意发明的,而是在特定约束下演化出的最优组织形态。
|
|
30
|
+
|
|
31
|
+
**agents-uni-core** 把这种思维引入 AI Agent 世界:
|
|
32
|
+
|
|
33
|
+
> 提升生产力的同时,我们需要的是更优秀的生产关系。
|
|
34
|
+
|
|
35
|
+
### 用户是中心
|
|
36
|
+
|
|
37
|
+
在 OpenClaw 生态中,**用户是一切关系网络的核心**。Agent 不是孤立存在的——它们围绕用户形成社会结构,通过关系的构建帮助用户更好地完成任务、满足情感需求。agents-uni-core 提供的不是冷冰冰的任务执行管道,而是一个有温度的、以用户为中心的 Agent 社会框架。
|
|
38
|
+
|
|
39
|
+
每个 Agent 的 SOUL.md 不仅定义它自己的性格和能力,更定义它**与用户的关系**——它为用户提供什么独特价值、它如何理解用户的需求、它怎样通过自己的个性让用户感受到真正的陪伴和帮助。
|
|
40
|
+
|
|
41
|
+
## 快速开始
|
|
42
|
+
|
|
43
|
+
### 脚手架创建项目
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx create-uni my-universe
|
|
47
|
+
# 或指定模板
|
|
48
|
+
npx create-uni my-universe --template competitive
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 作为库使用
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install @agents-uni/core
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import { compileUniverse, parseSpecFile } from '@agents-uni/core';
|
|
59
|
+
|
|
60
|
+
// 加载并编译组织规范
|
|
61
|
+
const config = parseSpecFile('universe.yaml');
|
|
62
|
+
const universe = await compileUniverse(config, { autoInit: true });
|
|
63
|
+
|
|
64
|
+
// 访问组织基础设施
|
|
65
|
+
const agents = universe.agents.getAll();
|
|
66
|
+
const leaderboard = universe.resources.getLeaderboard('rating');
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 编写 Universe 规范
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
name: my-team
|
|
73
|
+
type: corporation
|
|
74
|
+
description: 一个小型敏捷开发团队
|
|
75
|
+
|
|
76
|
+
agents:
|
|
77
|
+
- id: tech-lead
|
|
78
|
+
name: 技术负责人
|
|
79
|
+
role:
|
|
80
|
+
title: Technical Lead
|
|
81
|
+
duties: [架构设计, 代码审查, 技术指导]
|
|
82
|
+
rank: 80
|
|
83
|
+
|
|
84
|
+
- id: dev-alpha
|
|
85
|
+
name: 开发者 Alpha
|
|
86
|
+
role:
|
|
87
|
+
title: Software Engineer
|
|
88
|
+
duties: [功能开发, 测试, 文档]
|
|
89
|
+
rank: 50
|
|
90
|
+
traits: { creativity: 0.8, speed: 0.7 }
|
|
91
|
+
|
|
92
|
+
relationships:
|
|
93
|
+
- { from: tech-lead, to: dev-alpha, type: supervises }
|
|
94
|
+
|
|
95
|
+
governance:
|
|
96
|
+
decisionModel: autocratic
|
|
97
|
+
permissionMatrix:
|
|
98
|
+
- { role: Technical Lead, action: execute, target: "*" }
|
|
99
|
+
reviewPolicy:
|
|
100
|
+
mandatory: true
|
|
101
|
+
reviewers: [tech-lead]
|
|
102
|
+
|
|
103
|
+
resources:
|
|
104
|
+
- name: compute
|
|
105
|
+
type: renewable
|
|
106
|
+
total: 1000
|
|
107
|
+
distribution: merit
|
|
108
|
+
|
|
109
|
+
evolution:
|
|
110
|
+
performanceWindow: 20
|
|
111
|
+
promotionThreshold: 80
|
|
112
|
+
demotionThreshold: 30
|
|
113
|
+
memoryRetention: 500
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## 核心概念
|
|
117
|
+
|
|
118
|
+
### Universe(宇宙)
|
|
119
|
+
|
|
120
|
+
一个自洽的 Agent 社会,拥有自己的规则、角色、关系和演化逻辑。可以把它理解为 Agent 生存和运作的"世界"。
|
|
121
|
+
|
|
122
|
+
### Agent 与 Role
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Agent = 具体的行动者("张三")
|
|
126
|
+
Role = 抽象的位置("技术负责人")
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Agent 占据 Role,Role 定义权限和职责。同一个 Role 可以有多个 Agent;同一个 Agent 可以通过晋升/降级迁移到不同 Role。
|
|
130
|
+
|
|
131
|
+
### 关系图谱(Relationship Graph)
|
|
132
|
+
|
|
133
|
+
关系不是简单的组织架构线,而是**加权有向图**:
|
|
134
|
+
|
|
135
|
+
| 类型 | 说明 |
|
|
136
|
+
|------|------|
|
|
137
|
+
| `supervises` | 管理关系 |
|
|
138
|
+
| `collaborates` | 平级协作 |
|
|
139
|
+
| `competes` | 竞争关系 |
|
|
140
|
+
| `advises` | 顾问关系 |
|
|
141
|
+
| `audits` | 审计/监督 |
|
|
142
|
+
|
|
143
|
+
每条边有 `weight`(0-1),随交互历史动态变化 —— 让信任成为可量化、可演化的组织属性。
|
|
144
|
+
|
|
145
|
+
### 权限矩阵(Permission Matrix)
|
|
146
|
+
|
|
147
|
+
三维访问控制系统:**谁**(agentId / roleId)x **动作**(execute / review / delegate / veto / allocate)x **目标**(agentId / \*)。
|
|
148
|
+
|
|
149
|
+
### 状态机(Protocol Engine)
|
|
150
|
+
|
|
151
|
+
工作流通过有限状态机定义,支持角色门控和守卫表达式:
|
|
152
|
+
|
|
153
|
+
```yaml
|
|
154
|
+
protocols:
|
|
155
|
+
- name: code-review
|
|
156
|
+
states:
|
|
157
|
+
- id: submitted
|
|
158
|
+
type: initial
|
|
159
|
+
- id: reviewing
|
|
160
|
+
transitions:
|
|
161
|
+
- to: approved
|
|
162
|
+
requiredRole: senior-dev
|
|
163
|
+
- to: rejected
|
|
164
|
+
guard: "score < 0.6"
|
|
165
|
+
- id: approved
|
|
166
|
+
type: terminal
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 资源池(Resource Pool)
|
|
170
|
+
|
|
171
|
+
资源塑造激励结构:
|
|
172
|
+
|
|
173
|
+
| 分配策略 | 适用场景 |
|
|
174
|
+
|----------|----------|
|
|
175
|
+
| `equal` | 协作型团队 |
|
|
176
|
+
| `hierarchy` | 官僚型组织 |
|
|
177
|
+
| `merit` | 绩效驱动型组织 |
|
|
178
|
+
| `competitive` | 市场型竞技场 |
|
|
179
|
+
|
|
180
|
+
资源可以设置 `decayRate`(衰减率)—— 不使用的权力会逐渐减弱,迫使 Agent 持续活跃。
|
|
181
|
+
|
|
182
|
+
### 演化引擎(Evolution Engine)
|
|
183
|
+
|
|
184
|
+
四个内置模块实现组织自我优化:
|
|
185
|
+
|
|
186
|
+
| 模块 | 功能 |
|
|
187
|
+
|------|------|
|
|
188
|
+
| **PerformanceTracker** | 多维度绩效记录与分析 |
|
|
189
|
+
| **PromotionEngine** | 基于阈值的晋升/降级/停职决策 |
|
|
190
|
+
| **RelationshipEvolver** | 根据事件自动调整关系权重 |
|
|
191
|
+
| **MemoryConsolidator** | 提取组织级经验教训,形成集体记忆 |
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
绩效数据 --> 追踪 --> 晋升决策 --> 角色变更
|
|
195
|
+
^ |
|
|
196
|
+
+-- 关系演化 <-- 事件流 <-- 组织记忆 -+
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## 组织模板
|
|
200
|
+
|
|
201
|
+
五种开箱即用的组织模板:
|
|
202
|
+
|
|
203
|
+
| 模板 | 组织模型 | 治理方式 | 适用场景 |
|
|
204
|
+
|------|----------|----------|----------|
|
|
205
|
+
| `competitive` | 裁判 + 选手竞技场 | 绩效导向 | 模型比较、创意竞赛 |
|
|
206
|
+
| `government` | 多部门等级制 | 权力制衡 | 审批流程、政策制定 |
|
|
207
|
+
| `corporation` | 经理 + 工程师 | 一人决策 | Sprint 开发 |
|
|
208
|
+
| `flat` | 平等团队 | 民主投票 | 开源协作 |
|
|
209
|
+
| `military` | 指挥官 + 执行者 | 单一指挥链 | 关键任务执行 |
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
npx create-uni my-project --template competitive
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## 命令行工具
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# 验证组织规范
|
|
219
|
+
uni validate universe.yaml
|
|
220
|
+
|
|
221
|
+
# ASCII 可视化组织结构
|
|
222
|
+
uni visualize universe.yaml
|
|
223
|
+
|
|
224
|
+
# 详细检视(或查看特定 Agent)
|
|
225
|
+
uni inspect universe.yaml
|
|
226
|
+
uni inspect universe.yaml --agent dev-alpha
|
|
227
|
+
|
|
228
|
+
# 部署到 OpenClaw 工作区
|
|
229
|
+
uni deploy universe.yaml --dir ./workspaces --lang zh
|
|
230
|
+
|
|
231
|
+
# 交互式初始化项目
|
|
232
|
+
uni init
|
|
233
|
+
|
|
234
|
+
# 🆕 启动 Dashboard 仪表盘
|
|
235
|
+
uni dashboard [--port 8089]
|
|
236
|
+
|
|
237
|
+
# 🆕 列出所有已注册的 Universe
|
|
238
|
+
uni list
|
|
239
|
+
|
|
240
|
+
# 🆕 查看已部署的 Uni / Agent 概览
|
|
241
|
+
uni status
|
|
242
|
+
|
|
243
|
+
# 🆕 清理一个 Universe(删除所有相关文件 + 注册信息)
|
|
244
|
+
uni cleanup <id>
|
|
245
|
+
|
|
246
|
+
# 🆕 重置一个 Universe(清除运行时数据,保留配置)
|
|
247
|
+
uni reset <id>
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
| 命令 | 说明 |
|
|
251
|
+
|------|------|
|
|
252
|
+
| `uni validate` | 验证组织规范 |
|
|
253
|
+
| `uni visualize` | ASCII 可视化组织结构 |
|
|
254
|
+
| `uni inspect` | 详细检视 Agent |
|
|
255
|
+
| `uni deploy` | 部署到 OpenClaw 工作区 |
|
|
256
|
+
| `uni init` | 交互式初始化项目 |
|
|
257
|
+
| `uni dashboard` | 启动 Dashboard Web UI |
|
|
258
|
+
| `uni list` | 列出所有已注册的 Universe |
|
|
259
|
+
| `uni status` | 查看已部署的 Uni / Agent 概览 |
|
|
260
|
+
| `uni cleanup <id>` | 清理一个 Universe 及其所有文件 |
|
|
261
|
+
| `uni reset <id>` | 重置运行时数据,保留 SOUL.md 等配置 |
|
|
262
|
+
|
|
263
|
+
## OpenClaw 桥接
|
|
264
|
+
|
|
265
|
+
agents-uni-core 通过**文件协议**与 [OpenClaw](https://github.com/anthropics/openclaw) 无缝集成。包含三个核心能力:
|
|
266
|
+
|
|
267
|
+
**1. SOUL.md 部署** — 从组织规范生成 Agent 人格文件并部署到 OpenClaw 工作区,同时创建 Agent 运行时目录(`agents/{id}/agent/` + `agents/{id}/sessions/`)
|
|
268
|
+
**2. 一键注册** — 部署时自动将 Agent 注册到 `openclaw.json`(含 `workspace` 和 `agentDir` 字段),无需手动配置
|
|
269
|
+
**3. 任务调度** — 通过 `TASK.md` / `SUBMISSION.md` 文件协议与 Agent 交互
|
|
270
|
+
**4. 工作区管理** — 检查和同步 OpenClaw 工作区状态
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
Universe Spec (YAML)
|
|
274
|
+
| uni deploy
|
|
275
|
+
SOUL.md × N → OpenClaw 工作区
|
|
276
|
+
|
|
|
277
|
+
TaskDispatcher.run()
|
|
278
|
+
|
|
|
279
|
+
├─ 写 TASK.md 到每个 Agent 工作区
|
|
280
|
+
├─ Agent 读取 → 执行 → 写 SUBMISSION.md
|
|
281
|
+
├─ 轮询收集 SUBMISSION.md
|
|
282
|
+
└─ 返回所有提交结果
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
import {
|
|
287
|
+
deployToOpenClaw,
|
|
288
|
+
TaskDispatcher,
|
|
289
|
+
FileWorkspaceIO,
|
|
290
|
+
} from '@agents-uni/core';
|
|
291
|
+
|
|
292
|
+
// 1. 部署 SOUL.md + Agent 运行时目录到 OpenClaw + 自动注册到 openclaw.json
|
|
293
|
+
const result = deployToOpenClaw(config, { openclawDir: '~/.openclaw' });
|
|
294
|
+
// result.registered → 新注册到 openclaw.json 的 Agent ID 列表
|
|
295
|
+
// result.agentDirs → 创建的 Agent 运行时目录(~/.openclaw/agents/{id}/agent/)
|
|
296
|
+
//
|
|
297
|
+
// 部署后目录结构:
|
|
298
|
+
// ~/.openclaw/
|
|
299
|
+
// ├── openclaw.json ← Agent 注册(含 workspace + agentDir)
|
|
300
|
+
// ├── agents/
|
|
301
|
+
// │ └── {id}/
|
|
302
|
+
// │ ├── agent/ ← 运行时配置(auth-profiles.json 等)
|
|
303
|
+
// │ └── sessions/ ← 会话历史
|
|
304
|
+
// └── workspace-{id}/
|
|
305
|
+
// └── SOUL.md ← Agent 人格定义
|
|
306
|
+
|
|
307
|
+
// 也可以单独注册(不部署 SOUL.md)
|
|
308
|
+
import { registerAgentsInOpenClaw } from '@agents-uni/core';
|
|
309
|
+
registerAgentsInOpenClaw(config, '~/.openclaw');
|
|
310
|
+
// 注册时同时写入 workspace 和 agentDir 到 openclaw.json
|
|
311
|
+
|
|
312
|
+
// 2. 下发任务并收集提交
|
|
313
|
+
const dispatcher = new TaskDispatcher(new FileWorkspaceIO());
|
|
314
|
+
const result = await dispatcher.run({
|
|
315
|
+
id: 'task-001',
|
|
316
|
+
title: '策论',
|
|
317
|
+
description: '撰写500字策论',
|
|
318
|
+
criteria: [{ name: '质量', weight: 1, description: '内容深度' }],
|
|
319
|
+
timeoutMs: 60000,
|
|
320
|
+
participants: ['agent-a', 'agent-b'],
|
|
321
|
+
});
|
|
322
|
+
// result.submissions → 收集到的 Agent 提交
|
|
323
|
+
// result.timedOut → 超时未提交的 Agent
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
## Dashboard 仪表盘
|
|
327
|
+
|
|
328
|
+
agents-uni-core 内置了一个基于 Hono 的 Web Dashboard,用于浏览和管理所有已部署的 Universe。
|
|
329
|
+
|
|
330
|
+
### 启动
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
# 默认端口 8089
|
|
334
|
+
uni dashboard
|
|
335
|
+
|
|
336
|
+
# 指定端口
|
|
337
|
+
uni dashboard --port 8080
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### 页面
|
|
341
|
+
|
|
342
|
+
| 页面 | 路径 | 说明 |
|
|
343
|
+
|------|------|------|
|
|
344
|
+
| 首页 | `/` | 项目介绍 + 所有已注册 Universe 概览 + 架构图 |
|
|
345
|
+
| 用户手册 | `/guide` | 完整使用指南:概念、工作流、CLI 参考、文件协议、多 Uni 管理 |
|
|
346
|
+
| Uni 详情 | `/uni/:id` | 单个 Universe 的 Agent 列表、关系图谱、资源状态 |
|
|
347
|
+
| Agent 详情 | `/uni/:id/agent/:agentId` | Agent 的品级、ELO、会话历史、SOUL.md 内容 |
|
|
348
|
+
| 管理 | `/manage` | 批量 reset / cleanup / update 操作 |
|
|
349
|
+
|
|
350
|
+
### API 端点
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
GET /api/unis # 列出所有已注册的 Universe
|
|
354
|
+
GET /api/unis/:id # 获取单个 Universe 详情
|
|
355
|
+
GET /api/unis/:id/agents/:agentId # 获取 Agent 详情
|
|
356
|
+
GET /api/unis/:id/relationships # 获取关系图谱
|
|
357
|
+
POST /api/unis/:id/reset # 重置 Universe 运行时数据
|
|
358
|
+
POST /api/unis/:id/cleanup # 清理 Universe 及所有文件
|
|
359
|
+
GET /api/health # 健康检查
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### 扩展机制
|
|
363
|
+
|
|
364
|
+
Dashboard 提供 `DashboardExtension` 接口,允许特定 Uni(如 zhenhuan-uni)注入自定义 API 路由和首页面板:
|
|
365
|
+
|
|
366
|
+
```typescript
|
|
367
|
+
import { Hono } from 'hono';
|
|
368
|
+
import { startDashboard } from '@agents-uni/core';
|
|
369
|
+
import type { DashboardExtension, PanelDefinition } from '@agents-uni/core';
|
|
370
|
+
|
|
371
|
+
// 1. 创建扩展路由(Hono 实例)
|
|
372
|
+
const extRoutes = new Hono();
|
|
373
|
+
extRoutes.get('/leaderboard', (c) => c.json(getLeaderboard()));
|
|
374
|
+
extRoutes.get('/factions', (c) => c.json(getFactions()));
|
|
375
|
+
|
|
376
|
+
// 2. 定义首页面板
|
|
377
|
+
const panels: PanelDefinition[] = [
|
|
378
|
+
{
|
|
379
|
+
title: 'ELO 排行榜',
|
|
380
|
+
renderHtml: () => '<table>...</table>', // 返回 HTML 片段
|
|
381
|
+
},
|
|
382
|
+
];
|
|
383
|
+
|
|
384
|
+
// 3. 组装扩展
|
|
385
|
+
const extension: DashboardExtension = {
|
|
386
|
+
uniId: 'zhenhuan-palace', // 扩展所属的 Uni ID
|
|
387
|
+
routes: extRoutes, // 挂载到 /ext/zhenhuan-palace/
|
|
388
|
+
panels, // 显示在首页
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// 4. 启动 Dashboard
|
|
392
|
+
await startDashboard({ port: 8089, extensions: [extension] });
|
|
393
|
+
// 扩展 API:GET /ext/zhenhuan-palace/leaderboard
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
UI 采用服务端渲染 HTML + Tailwind CDN,暗色主题,无需前端构建。
|
|
397
|
+
|
|
398
|
+
## 多 Uni 管理
|
|
399
|
+
|
|
400
|
+
当你有多个 Universe 部署在同一台机器上时,需要一个注册中心来跟踪它们。
|
|
401
|
+
|
|
402
|
+
### Uni Registry(注册中心)
|
|
403
|
+
|
|
404
|
+
注册信息存储在 `~/.openclaw/uni-registry.json`,每个 Universe 在 `deployToOpenClaw()` 时自动注册(需传入 `specPath` 选项)。
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
~/.openclaw/
|
|
408
|
+
├── openclaw.json ← Agent 配置
|
|
409
|
+
├── uni-registry.json ← 🆕 多 Uni 注册中心
|
|
410
|
+
├── agents/{id}/agent/ ← Agent 运行时
|
|
411
|
+
├── agents/{id}/sessions/ ← 会话历史
|
|
412
|
+
└── workspace-{id}/SOUL.md ← Agent 人格
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### 注册中心 API
|
|
416
|
+
|
|
417
|
+
```typescript
|
|
418
|
+
import {
|
|
419
|
+
registerUni, // 注册一个 Universe
|
|
420
|
+
listUnis, // 列出所有已注册 Universe
|
|
421
|
+
getUni, // 获取单个 Universe 信息
|
|
422
|
+
unregisterUni, // 从注册中心移除
|
|
423
|
+
cleanupUni, // 删除工作区 + Agent 目录 + openclaw.json 条目 + 注册信息
|
|
424
|
+
resetUni, // 清除 sessions、TASK.md、SUBMISSION.md,保留 SOUL.md
|
|
425
|
+
updateUni, // 重新部署 SOUL.md,处理新增/移除的 Agent
|
|
426
|
+
} from '@agents-uni/core';
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
### 生命周期管理
|
|
430
|
+
|
|
431
|
+
| 操作 | CLI | 说明 |
|
|
432
|
+
|------|-----|------|
|
|
433
|
+
| 注册 | `uni deploy`(自动) | 部署时自动注册到 uni-registry.json |
|
|
434
|
+
| 列表 | `uni list` | 列出所有已注册的 Universe |
|
|
435
|
+
| 状态 | `uni status` | 查看各 Uni 的 Agent 数量、部署时间等 |
|
|
436
|
+
| 重置 | `uni reset <id>` | 清除 sessions 和 TASK.md / SUBMISSION.md,保留 SOUL.md |
|
|
437
|
+
| 更新 | `updateUni()` | 重新部署 SOUL.md,处理新增/移除的 Agent |
|
|
438
|
+
| 清理 | `uni cleanup <id>` | 删除工作区目录 + Agent 目录 + 从 openclaw.json 移除 + 从注册中心移除 |
|
|
439
|
+
|
|
440
|
+
## 架构
|
|
441
|
+
|
|
442
|
+
```
|
|
443
|
+
+-----------------------------------------------------+
|
|
444
|
+
| Universe(容器) |
|
|
445
|
+
| |
|
|
446
|
+
| +----------+ +--------------+ +----------------+ |
|
|
447
|
+
| | Agent | | Relationship | | Permission | |
|
|
448
|
+
| | Registry |<>| Graph |<>| Matrix | |
|
|
449
|
+
| +----+-----+ +------+-------+ +-------+--------+ |
|
|
450
|
+
| | | | |
|
|
451
|
+
| +----+-----+ +------+-------+ +-------+--------+ |
|
|
452
|
+
| | State | | Resource | | Event | |
|
|
453
|
+
| | Machine | | Pool | | Bus | |
|
|
454
|
+
| +----------+ +--------------+ +----------------+ |
|
|
455
|
+
| |
|
|
456
|
+
| +-------------- 演化引擎 -------------------------+ |
|
|
457
|
+
| | 绩效追踪 -> 晋升决策 -> 组织记忆 -> 关系演化 | |
|
|
458
|
+
| +------------------------------------------------+ |
|
|
459
|
+
+--------------------------+----------------------------+
|
|
460
|
+
|
|
|
461
|
+
+---------+---------+
|
|
462
|
+
| |
|
|
463
|
+
+-----+-----+ +-----+-----+
|
|
464
|
+
| Spec YAML | | OpenClaw |
|
|
465
|
+
| -> Universe | | Bridge |
|
|
466
|
+
+------------+ +-----------+
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
## API 参考
|
|
470
|
+
|
|
471
|
+
### 核心模块
|
|
472
|
+
|
|
473
|
+
```typescript
|
|
474
|
+
import {
|
|
475
|
+
Universe, // 顶层容器
|
|
476
|
+
AgentRegistry, // Agent 生命周期管理
|
|
477
|
+
RelationshipGraph, // 加权有向关系图
|
|
478
|
+
StateMachine, // 工作流编排
|
|
479
|
+
PermissionMatrix, // 访问控制
|
|
480
|
+
ResourcePool, // 资源分配与衰减
|
|
481
|
+
EventBus, // 发布/订阅事件系统
|
|
482
|
+
} from '@agents-uni/core';
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
### 演化模块
|
|
486
|
+
|
|
487
|
+
```typescript
|
|
488
|
+
import {
|
|
489
|
+
PerformanceTracker, // 绩效记录与分析
|
|
490
|
+
PromotionEngine, // 自动晋升/降级/停职
|
|
491
|
+
MemoryConsolidator, // 组织学习
|
|
492
|
+
RelationshipEvolver, // 动态关系调整
|
|
493
|
+
} from '@agents-uni/core';
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
### 规范处理
|
|
497
|
+
|
|
498
|
+
```typescript
|
|
499
|
+
import {
|
|
500
|
+
parseSpecFile, // YAML 文件 -> UniverseConfig
|
|
501
|
+
parseSpecString, // YAML 字符串 -> UniverseConfig
|
|
502
|
+
validateSpec, // 双层验证(Schema + 语义)
|
|
503
|
+
compileUniverse, // UniverseConfig -> 运行时 Universe
|
|
504
|
+
} from '@agents-uni/core';
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
### 桥接模块
|
|
508
|
+
|
|
509
|
+
```typescript
|
|
510
|
+
import {
|
|
511
|
+
// SOUL.md 生成与部署
|
|
512
|
+
generateSoul, // 为单个 Agent 生成 SOUL.md
|
|
513
|
+
generateAllSouls, // 为所有 Agent 生成 SOUL.md
|
|
514
|
+
deployToOpenClaw, // 部署到 OpenClaw 工作区 + 创建 Agent 运行时目录 + 自动注册
|
|
515
|
+
registerAgentsInOpenClaw, // 单独注册 Agent 到 openclaw.json(含 workspace + agentDir)
|
|
516
|
+
checkWorkspaces, // 检查现有工作区状态
|
|
517
|
+
|
|
518
|
+
// 🆕 多 Uni 注册中心
|
|
519
|
+
registerUni, // 注册 Universe 到 uni-registry.json
|
|
520
|
+
listUnis, // 列出所有已注册的 Universe
|
|
521
|
+
getUni, // 获取单个 Universe 信息
|
|
522
|
+
unregisterUni, // 从注册中心移除
|
|
523
|
+
cleanupUni, // 删除工作区 + Agent 目录 + 注册信息
|
|
524
|
+
resetUni, // 清除运行时数据,保留 SOUL.md
|
|
525
|
+
updateUni, // 重新部署,处理新增/移除的 Agent
|
|
526
|
+
|
|
527
|
+
// 任务调度(文件协议)
|
|
528
|
+
TaskDispatcher, // 下发 TASK.md → 收集 SUBMISSION.md
|
|
529
|
+
FileWorkspaceIO, // 文件系统 I/O 后端
|
|
530
|
+
MemoryWorkspaceIO, // 内存 I/O 后端(用于测试)
|
|
531
|
+
} from '@agents-uni/core';
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
### Dashboard 模块
|
|
535
|
+
|
|
536
|
+
```typescript
|
|
537
|
+
import {
|
|
538
|
+
createDashboardServer, // 创建 Dashboard Hono 服务器
|
|
539
|
+
} from '@agents-uni/core';
|
|
540
|
+
|
|
541
|
+
import type {
|
|
542
|
+
DashboardExtension, // Dashboard 扩展接口
|
|
543
|
+
} from '@agents-uni/core';
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
## 项目结构
|
|
547
|
+
|
|
548
|
+
```
|
|
549
|
+
agents-uni-core/
|
|
550
|
+
src/
|
|
551
|
+
types/ # 完整类型体系(Agent, Relationship, Governance, ...)
|
|
552
|
+
core/ # 运行时引擎(Universe, Registry, Graph, StateMachine, ...)
|
|
553
|
+
evolution/ # 自优化(Performance, Promotion, Memory, ...)
|
|
554
|
+
spec/ # YAML 解析、验证、编译
|
|
555
|
+
bridge/ # OpenClaw 桥接(SOUL.md 生成、任务调度、工作区 I/O、Uni 注册中心)
|
|
556
|
+
dashboard/ # 🆕 Dashboard 仪表盘(Hono 服务器、HTML 模板、API 路由、扩展机制)
|
|
557
|
+
schema/ # JSON Schema 验证
|
|
558
|
+
templates/ # 5 种内置组织模板
|
|
559
|
+
cli/ # 命令行工具(10 个命令)
|
|
560
|
+
create-uni/ # npx create-uni 脚手架工具
|
|
561
|
+
tests/ # 单元测试(41 个测试,7 个套件)
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
## 开发
|
|
565
|
+
|
|
566
|
+
```bash
|
|
567
|
+
# 安装依赖
|
|
568
|
+
npm install
|
|
569
|
+
|
|
570
|
+
# 运行测试(41 个测试)
|
|
571
|
+
npm test
|
|
572
|
+
|
|
573
|
+
# 类型检查
|
|
574
|
+
npm run lint
|
|
575
|
+
|
|
576
|
+
# 构建
|
|
577
|
+
npm run build
|
|
578
|
+
|
|
579
|
+
# 监听模式
|
|
580
|
+
npm run dev
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
## 相关项目
|
|
584
|
+
|
|
585
|
+
- [**@agents-uni/zhenhuan**](https://github.com/agents-uni/zhenhuan) — 基于 agents-uni-core 的甄嬛后宫 Agent 竞技系统
|
|
586
|
+
|
|
587
|
+
## License
|
|
588
|
+
|
|
589
|
+
MIT
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Sync — synchronizes universe spec changes to running OpenClaw instances.
|
|
3
|
+
*/
|
|
4
|
+
import type { UniverseConfig } from '../types/index.js';
|
|
5
|
+
export interface SyncResult {
|
|
6
|
+
synced: string[];
|
|
7
|
+
skipped: string[];
|
|
8
|
+
errors: Array<{
|
|
9
|
+
agentId: string;
|
|
10
|
+
error: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Check which agents have OpenClaw workspaces already set up.
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkWorkspaces(universe: UniverseConfig, openclawDir?: string): {
|
|
17
|
+
existing: string[];
|
|
18
|
+
missing: string[];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Read the current openclaw.json config if it exists.
|
|
22
|
+
*/
|
|
23
|
+
export declare function readOpenClawConfig(openclawDir?: string): Record<string, unknown> | null;
|
|
24
|
+
//# sourceMappingURL=config-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-sync.d.ts","sourceRoot":"","sources":["../../src/bridge/config-sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB3C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAcvF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Sync — synchronizes universe spec changes to running OpenClaw instances.
|
|
3
|
+
*/
|
|
4
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
/**
|
|
7
|
+
* Check which agents have OpenClaw workspaces already set up.
|
|
8
|
+
*/
|
|
9
|
+
export function checkWorkspaces(universe, openclawDir) {
|
|
10
|
+
const dir = openclawDir ?? join(process.env.HOME ?? process.env.USERPROFILE ?? '.', '.openclaw');
|
|
11
|
+
const existing = [];
|
|
12
|
+
const missing = [];
|
|
13
|
+
for (const agent of universe.agents) {
|
|
14
|
+
const workspacePath = join(dir, `workspace-${agent.id}`);
|
|
15
|
+
if (existsSync(workspacePath)) {
|
|
16
|
+
existing.push(agent.id);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
missing.push(agent.id);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return { existing, missing };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Read the current openclaw.json config if it exists.
|
|
26
|
+
*/
|
|
27
|
+
export function readOpenClawConfig(openclawDir) {
|
|
28
|
+
const dir = openclawDir ?? join(process.env.HOME ?? process.env.USERPROFILE ?? '.', '.openclaw');
|
|
29
|
+
const configPath = join(dir, 'openclaw.json');
|
|
30
|
+
if (!existsSync(configPath))
|
|
31
|
+
return null;
|
|
32
|
+
try {
|
|
33
|
+
return JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=config-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-sync.js","sourceRoot":"","sources":["../../src/bridge/config-sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,WAAoB;IAEpB,MAAM,GAAG,GAAG,WAAW,IAAI,IAAI,CAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,WAAW,CACZ,CAAC;IAEF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAoB;IACrD,MAAM,GAAG,GAAG,WAAW,IAAI,IAAI,CAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,WAAW,CACZ,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAE9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { generateSoul, generateAllSouls, type SoulGeneratorOptions, type RulerDefinition } from './soul-generator.js';
|
|
2
|
+
export { deployToOpenClaw, registerAgentsInOpenClaw, type DeployOptions, type DeployResult } from './openclaw-adapter.js';
|
|
3
|
+
export { checkWorkspaces, readOpenClawConfig, type SyncResult } from './config-sync.js';
|
|
4
|
+
export { TaskDispatcher, type DispatchTask, type AgentSubmission, type DispatchResult, type DispatcherOptions, type EvaluationCriterion, } from './task-dispatcher.js';
|
|
5
|
+
export { FileWorkspaceIO, MemoryWorkspaceIO, type WorkspaceIO, type FileWorkspaceIOOptions, } from './workspace-io.js';
|
|
6
|
+
export { registerUni, listUnis, getUni, unregisterUni, cleanupUni, updateUni, resetUni, type UniRegistryEntry, type UniRegistry, } from './uni-registry.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1H,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,aAAa,EACb,UAAU,EACV,SAAS,EACT,QAAQ,EACR,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { generateSoul, generateAllSouls } from './soul-generator.js';
|
|
2
|
+
export { deployToOpenClaw, registerAgentsInOpenClaw } from './openclaw-adapter.js';
|
|
3
|
+
export { checkWorkspaces, readOpenClawConfig } from './config-sync.js';
|
|
4
|
+
export { TaskDispatcher, } from './task-dispatcher.js';
|
|
5
|
+
export { FileWorkspaceIO, MemoryWorkspaceIO, } from './workspace-io.js';
|
|
6
|
+
export { registerUni, listUnis, getUni, unregisterUni, cleanupUni, updateUni, resetUni, } from './uni-registry.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAmD,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAyC,MAAM,uBAAuB,CAAC;AAC1H,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACxF,OAAO,EACL,cAAc,GAMf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,aAAa,EACb,UAAU,EACV,SAAS,EACT,QAAQ,GAGT,MAAM,mBAAmB,CAAC"}
|