AetherNo2332
56598108d4
feat(canvas): 云端 Agent 画布布局 - 新增 canvas_arrange_nodes 与新增节点自动落位
云端 Agent 此前只能新建节点与连线,既不会排版也不能移动已有节点:模型只能用几十个
update_node 手算坐标,或者让用户自己拖。
- 新增 backend/internal/canvas/layout:把前端既有的画布布局算法(web/src/lib/canvas/
canvas-layout.ts,本 PR 不改该文件)按同一套常量移植到服务端,提供 Kahn 拓扑分层 flow、
媒体泳道 byType、row/column/grid、对齐与等距、分组分带、AABB 重叠检测与空位搜索。
- 新增写工具 canvas_arrange_nodes:snapshotHash 必需,mode∈{auto,flow,byType,row,column,
grid},可传 nodeIds、groups(只做横向位置分带,不建容器、不改层级)、align、gap、dryRun。
只改坐标,不改内容、不建连线、不增删节点;一次最多 50 个节点 / 12 组。锁定节点、背板等
容器、隐藏批次子节点与已归属背板的子节点保持不动并在回执里说明;整批复用现有 mutation
记录与事件管线,审批与撤销走同一条路径。
- add_node 省略坐标时不再落到 (0,0):优先贴合本批连线的对端(输入在左、输出在右),否则
追加到同泳道同类节点之后,冲突则扫描空位;只给一个轴时保留该轴。agentCanvasOp.X/Y 改为
指针以区分"没给坐标"与"坐标 0"。
- update_node 的 patch 新增 x/y(PatchField.Limit 校验 ±1e6),供模型微调单个节点。
- 系统行为策略新增「布局与整理」一节并升版到 8;docs 补工具说明与工具全集;前端同步审批
预览联合类型、面板文案与徽标。
- 工具 schema 预算按实测从 24000 上调到 25000(21 个工具 24788 字节),并改正注释里
"上游约 23.4 KB"的说法(上游 20 个工具实测 22777 字节)。
2026-09-22 01:32:20 +08:00
..
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-19 09:54:27 +08:00
2026-09-21 09:48:43 +08:00
2026-09-21 09:48:43 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 14:11:29 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 11:11:10 +08:00
2026-09-18 23:26:54 +08:00
2026-09-20 01:40:40 +08:00
2026-09-20 01:40:40 +08:00
2026-09-20 01:40:40 +08:00
2026-09-17 23:17:09 +08:00
2026-09-17 23:17:09 +08:00
2026-09-19 09:54:27 +08:00
2026-09-18 23:28:57 +08:00
2026-09-21 14:11:29 +08:00
2026-09-21 14:11:29 +08:00
2026-09-21 14:11:29 +08:00
2026-09-18 23:28:57 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 14:11:29 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 20:14:05 +08:00
2026-09-21 20:14:05 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-21 11:11:10 +08:00
2026-09-20 11:18:19 +08:00
2026-09-20 11:18:19 +08:00
2026-09-21 11:11:10 +08:00
2026-09-21 11:11:10 +08:00
2026-09-19 21:04:03 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 11:11:10 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-19 09:54:27 +08:00
2026-09-19 09:54:27 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 15:26:26 +08:00
2026-09-21 09:37:20 +08:00
2026-09-22 01:32:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-20 17:18:46 +08:00
2026-09-19 15:35:11 +08:00
2026-09-17 18:40:42 +08:00
2026-09-17 18:40:42 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-18 15:26:26 +08:00
2026-09-18 15:26:26 +08:00
2026-09-17 20:21:25 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-17 20:21:25 +08:00
2026-09-18 15:26:26 +08:00
2026-09-19 20:43:20 +08:00
2026-09-17 20:21:25 +08:00
2026-09-18 15:26:26 +08:00
2026-09-21 09:30:38 +08:00
2026-09-22 01:32:20 +08:00
2026-09-22 01:32:20 +08:00
2026-09-18 15:26:26 +08:00
2026-09-18 15:26:26 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-18 15:26:26 +08:00
2026-09-20 12:47:07 +08:00
2026-09-17 20:21:25 +08:00
2026-09-17 20:21:25 +08:00
2026-09-20 12:47:07 +08:00
2026-09-20 12:47:07 +08:00
2026-09-14 17:58:21 +08:00
2026-09-14 17:58:21 +08:00
2026-09-18 15:26:26 +08:00
2026-09-17 20:21:25 +08:00
2026-09-18 15:26:26 +08:00
2026-09-18 15:26:26 +08:00
2026-09-18 15:26:26 +08:00
2026-09-19 20:43:20 +08:00
2026-09-17 23:31:54 +08:00
2026-09-14 17:58:21 +08:00
2026-09-18 15:26:26 +08:00
2026-09-18 15:26:26 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-22 01:32:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-17 18:40:42 +08:00
2026-09-15 13:37:21 +08:00
2026-09-15 05:22:07 +08:00
2026-09-19 20:43:20 +08:00
2026-09-17 20:21:25 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-17 20:21:25 +08:00
2026-09-21 09:30:38 +08:00
2026-09-21 09:30:38 +08:00
2026-09-22 01:32:20 +08:00
2026-09-22 01:32:20 +08:00
2026-09-17 18:40:42 +08:00
2026-09-17 18:40:42 +08:00
2026-09-17 20:21:25 +08:00
2026-09-17 20:21:25 +08:00
2026-09-18 15:26:26 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-17 18:40:42 +08:00
2026-09-18 20:34:28 +08:00
2026-09-14 18:12:29 +08:00
2026-09-19 09:54:27 +08:00
2026-09-19 09:54:27 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 14:09:50 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-20 12:47:07 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-15 11:10:12 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-19 09:54:27 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 23:26:54 +08:00
2026-09-20 12:59:23 +08:00
2026-09-18 23:26:54 +08:00
2026-09-19 20:40:55 +08:00
2026-09-20 13:05:42 +08:00
2026-09-19 09:54:27 +08:00
2026-09-21 11:11:10 +08:00
2026-09-11 14:02:49 +08:00
2026-09-20 13:05:42 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 09:31:40 +08:00
2026-09-18 09:31:40 +08:00
2026-09-11 21:42:15 +08:00
2026-09-11 14:02:49 +08:00
2026-09-20 05:18:16 +08:00
2026-09-20 04:04:42 +08:00
2026-09-18 09:31:40 +08:00
2026-09-17 23:32:11 +08:00
2026-09-18 09:31:40 +08:00
2026-09-14 01:11:56 +08:00
2026-09-17 23:32:11 +08:00
2026-09-17 23:32:11 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-17 18:40:42 +08:00
2026-09-20 16:40:08 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-17 18:40:42 +08:00
2026-09-11 14:02:49 +08:00
2026-09-17 23:32:11 +08:00
2026-09-17 23:32:11 +08:00
2026-09-19 20:29:46 +08:00
2026-09-15 05:22:07 +08:00
2026-09-11 21:40:47 +08:00
2026-09-17 17:44:44 +08:00
2026-09-17 18:15:32 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-21 09:38:11 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 14:09:50 +08:00
2026-09-18 14:09:50 +08:00
2026-09-18 14:09:50 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 09:38:11 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-11 14:02:49 +08:00
2026-09-17 17:55:12 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-18 10:41:19 +08:00
2026-09-21 09:38:11 +08:00
2026-09-17 17:44:44 +08:00
2026-09-12 21:28:41 +08:00
2026-09-12 21:28:41 +08:00
2026-09-17 17:55:12 +08:00
2026-09-20 16:40:08 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 20:14:05 +08:00
2026-09-21 20:14:05 +08:00
2026-09-21 20:14:05 +08:00
2026-09-21 09:48:43 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-21 14:11:29 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-12 21:28:41 +08:00
2026-09-20 16:40:08 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 01:11:56 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 20:34:28 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 20:34:28 +08:00
2026-09-14 19:45:56 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 18:12:29 +08:00
2026-09-20 16:40:08 +08:00
2026-09-20 12:47:07 +08:00
2026-09-20 12:47:07 +08:00
2026-09-19 20:43:20 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 01:11:56 +08:00
2026-09-19 20:43:20 +08:00
2026-09-11 14:02:49 +08:00
2026-09-19 20:43:20 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 01:11:56 +08:00
2026-09-19 20:43:20 +08:00
2026-09-19 20:43:20 +08:00
2026-09-15 05:22:07 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-21 09:48:43 +08:00
2026-09-21 09:48:43 +08:00
2026-09-21 09:48:43 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-20 16:40:08 +08:00
2026-09-20 16:40:08 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 01:11:56 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 23:26:54 +08:00
2026-09-11 14:02:49 +08:00
2026-09-11 14:02:49 +08:00
2026-09-18 23:26:54 +08:00
2026-09-18 20:34:28 +08:00
2026-09-11 14:02:49 +08:00
2026-09-14 01:11:56 +08:00
2026-09-14 19:45:56 +08:00
2026-09-14 19:45:56 +08:00