Files
beaver_project/app-instance/frontend/public/office/maps/office-winter-v1.tmj
steven_li 29dfd14aa6 ```
feat(agent): 添加对持久化子智能体的支持并增强委派管理

添加了持久化子智能体的完整生命周期管理功能,包括创建、更新、删除和查询API接口。
新增了子智能体的JSON-RPC通信协议支持,实现了远程调用和任务管理功能。

同时增强了委派管理器的功能:
- 添加了对本地委派、插件委派和本地回退的开关控制
- 实现了持久化子智能体任务的自动检测和本地执行保护
- 增加了对不同委派类型的权限验证机制

修改了智能体注册表以支持插件智能体的条件性包含,并更新了工具注册逻辑以支持可选工具。

BREAKING CHANGE: 委派管理器的构造函数签名已更改,添加了新的控制参数。
```
2026-03-27 10:15:35 +08:00

2499 lines
31 KiB
Plaintext

{
"compressionlevel": -1,
"height": 14,
"infinite": false,
"layers": [
{
"data": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
7,
7,
7,
7,
7,
7,
7,
0,
0,
0,
0,
0,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
0,
0,
7,
5,
6,
5,
6,
5,
6,
7,
7,
7,
7,
7,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
7,
0,
0,
7,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
7,
0,
0,
7,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
7,
0,
0,
7,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
7,
0,
0,
7,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
7,
0,
0,
7,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
7,
0,
0,
7,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
7,
0,
0,
7,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
7,
0,
0,
7,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
7,
0,
0,
7,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
5,
6,
7,
0,
0,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"height": 14,
"id": 1,
"name": "bg-floor",
"opacity": 1,
"type": "tilelayer",
"visible": true,
"width": 25,
"x": 0,
"y": 0
},
{
"data": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
9,
9,
9,
9,
9,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
10,
10,
10,
10,
10,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"height": 14,
"id": 2,
"name": "bg-rug",
"opacity": 1,
"type": "tilelayer",
"visible": true,
"width": 25,
"x": 0,
"y": 0
},
{
"data": [
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
],
"height": 14,
"id": 3,
"name": "walls",
"opacity": 1,
"type": "tilelayer",
"visible": true,
"width": 25,
"x": 0,
"y": 0
},
{
"data": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
4,
4,
4,
4,
4,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"height": 14,
"id": 4,
"name": "windows",
"opacity": 1,
"type": "tilelayer",
"visible": true,
"width": 25,
"x": 0,
"y": 0
},
{
"data": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"height": 14,
"id": 5,
"name": "markers",
"opacity": 1,
"type": "tilelayer",
"visible": true,
"width": 25,
"x": 0,
"y": 0
},
{
"draworder": "topdown",
"id": 6,
"name": "furniture-anchors",
"objects": [
{
"id": 1,
"name": "desk-anchor-1",
"type": "desk-anchor",
"x": 48,
"y": 32,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "D"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 2,
"name": "chair-anchor-2",
"type": "chair-anchor",
"x": 64,
"y": 32,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "C"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 3,
"name": "desk-anchor-3",
"type": "desk-anchor",
"x": 80,
"y": 32,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "D"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 4,
"name": "server-anchor-4",
"type": "server-anchor",
"x": 304,
"y": 32,
"width": 32,
"height": 48,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "V"
},
{
"name": "cellCount",
"type": "int",
"value": 6
}
]
},
{
"id": 5,
"name": "desk-anchor-5",
"type": "desk-anchor",
"x": 48,
"y": 80,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "D"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 6,
"name": "chair-anchor-6",
"type": "chair-anchor",
"x": 64,
"y": 80,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "C"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 7,
"name": "desk-anchor-7",
"type": "desk-anchor",
"x": 80,
"y": 80,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "D"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 8,
"name": "archive-anchor-8",
"type": "archive-anchor",
"x": 304,
"y": 80,
"width": 32,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "A"
},
{
"name": "cellCount",
"type": "int",
"value": 4
}
]
},
{
"id": 9,
"name": "meeting-anchor-9",
"type": "meeting-anchor",
"x": 224,
"y": 128,
"width": 80,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "M"
},
{
"name": "cellCount",
"type": "int",
"value": 10
}
]
},
{
"id": 10,
"name": "desk-anchor-10",
"type": "desk-anchor",
"x": 48,
"y": 144,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "D"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 11,
"name": "chair-anchor-11",
"type": "chair-anchor",
"x": 64,
"y": 144,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "C"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
},
{
"id": 12,
"name": "desk-anchor-12",
"type": "desk-anchor",
"x": 80,
"y": 144,
"width": 16,
"height": 32,
"rotation": 0,
"visible": true,
"properties": [
{
"name": "symbol",
"type": "string",
"value": "D"
},
{
"name": "cellCount",
"type": "int",
"value": 2
}
]
}
],
"opacity": 1,
"type": "objectgroup",
"visible": true,
"x": 0,
"y": 0
},
{
"data": [
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
16,
16,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
16,
16,
0,
0,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
16,
16,
0,
0,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
16,
16,
0,
0,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
16,
16,
16,
0,
0,
0,
0,
0,
16,
16,
0,
0,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
16,
16,
16,
0,
0,
0,
0,
0,
16,
16,
0,
0,
16,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16,
16
],
"height": 14,
"id": 7,
"name": "collision",
"opacity": 1,
"type": "tilelayer",
"visible": false,
"width": 25,
"x": 0,
"y": 0
}
],
"nextlayerid": 8,
"nextobjectid": 13,
"orientation": "orthogonal",
"renderorder": "right-down",
"tiledversion": "1.11.0",
"tileheight": 16,
"tilesets": [
{
"columns": 4,
"firstgid": 1,
"image": "../tiles/office-winter-tileset.png",
"imageheight": 64,
"imagewidth": 64,
"margin": 0,
"name": "office-winter-tileset",
"spacing": 0,
"tilecount": 16,
"tileheight": 16,
"tilewidth": 16
}
],
"tilewidth": 16,
"type": "map",
"version": "1.10",
"width": 25
}