21 lines
1.5 KiB
TypeScript
21 lines
1.5 KiB
TypeScript
import { tool } from "@opencode-ai/plugin";
|
||
|
||
export default tool({
|
||
description:
|
||
"在前端地图上对 junctions 图层应用分区渲染。优先直接传入 render_ref(指向已持久化的渲染结果引用,格式应为 res-...),也不要先把 ref 内容完整读出再重组;前端会自行根据 render_ref 拉取完整 payload 并渲染,这样可以避免 LLM 读取大型 node_area_map。若当前只有本地 JSON 文件,请先调用 store_render_ref 把它迁移为受控 render_ref。供 render_ref 引用的 JSON 结构必须为 { node_area_map: Record<string, string>, area_ids?: string[], area_colors?: Record<string, string> },其中 node_area_map 的 key 是 junction/node id,value 是 area id。",
|
||
args: {
|
||
reason: tool.schema
|
||
.string()
|
||
.describe("Why this junction rendering action is needed for the user request."),
|
||
render_ref: tool.schema
|
||
.string()
|
||
.describe(
|
||
"渲染引用 ID。必须是持久化结果引用(res-...)。前端会按该引用读取完整 payload.data 并渲染,不需要先用 fetch_result_ref 提取完整数据。render_ref 对应的数据结构必须是 { node_area_map: { [junctionId]: areaId }, area_ids?: string[], area_colors?: { [areaId]: color } };node_area_map 必填,area_ids / area_colors 可选。",
|
||
),
|
||
},
|
||
async execute() {
|
||
// 工具参数里只需要 render_ref;浏览器端会再用该引用回读完整 payload.data 并完成渲染。
|
||
return "已在地图上应用节点分区渲染。";
|
||
},
|
||
});
|