← 返回列表
未验证
DeepSeek Harness DSH 插件 — 将 GeoLibre 地图能力接入 Web GUI,并让…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/9 · 已提供中文文档
DeepSeek Harness 插件:将 GeoJSON/矢量数据渲染为交互式 GeoLibre 地图,并让智能体通过智能体工具操作实时地图(图层、样式、视图、GeoLibre 算法和 Whitebox WASM 工具)。
综合分
29.6
GitHub 分
29.6
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add baddying/dsh-geolibre该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-tools用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-geolibre
DeepSeek Harness (DSH) 插件 — 将 GeoLibre 地图能力接入 Web GUI,并让 Agent 可以实时操作「地图」tab 里的交互地图:渲染 GeoJSON、管理图层/样式/视图、运行 GeoLibre 处理算法与 Whitebox 工具箱(浏览器内 WASM 执行)。
在 DSH Web GUI 内将 GeoJSON 渲染到交互式 GeoLibre 地图中,并让 agent 操作「地图」(Map)侧边栏 tab 中的实时地图 — 图层、样式、视图、GeoLibre 处理算法以及 Whitebox 工具箱(由浏览器中的 WASM 执行)。
功能总览 / Features
- 宿主侧 agent 工具(Host agent tools)
- geolibre_render_map — 渲染 GeoJSON 数据(文本 / 本地文件 / URL)为地图并同步到会话工程
- geolibre_map_status — 查看实时地图会话:图层清单、可见性、视图、连接状态
- geolibre_map_run — 向已就绪的实时地图发送命令并等待结果:
getView / getCenter / getBounds / flyTo / fitBounds / zoomToLayer / identify /
getLayerFeatures / getSelectedFeatures / getDrawnFeatures /
listAlgorithms / runAlgorithm / runModelBuilder /
listWhiteboxTools / runWhiteboxTool / toImage …
- geolibre_map_update — 整体替换工程、追加 GeoJSON 图层、删除 / 改名 / 显隐 / 改样式图层、移动视图(view / data+style / layer / removeLayer / project)
- 浏览器侧(client):注册「地图」侧边栏 tab,内嵌 GeoLibre 应用并充当 host ↔ iframe 的双向中继(geolibre:load-project / geolibre:command / state / result / event)
- 同源本地托管 GeoLibre Web App(/dsh-geolibre/app/*),无需外部 CDN
依赖要求 / Requirements
- Node.js >= 20,运行在 DSH(Web 形态,profile 内注册)
- Python 3(python 可执行文件,可配置 python),且该解释器可 import geolibre(pip install geolibre)——
geolibre Python 包同时提供图层构造辅助与其内置的 GeoLibre Web App 静态资源
安装 / Installation
在目标 DSH profile 的 package.json 中声明依赖并把本包加入 dsh.profile.bundles:
{
"dependencies": { "dsh-geolibre": "0.1.0" },
"dsh": { "profile": { "bundles": ["…", "dsh-geolibre"] } }
}
插件配置(在 profile 的 cordis.patch.yml 中按 entry id 覆盖):
仅当 python 无法直接 import geolibre 时需要显式指定
- id: geolibre
config:
geolibreEnv: "D:/path/to/geolibre_env" # 留空则自动探测(推荐)
python: "python" # 默认
outputDir: "" # 地图产物目录,默认 /.geolibre-maps
appRoot: "" # GeoLibre app 静态目录,默认 /geolibre/static/app
theme: "light"
说明:geolibreEnv 留空时插件会运行 python -c "import geolibre" 自动定位其安装目录(作为 PYTHONPATH 前缀)。显式设置则跳过探测。
使用示例 / Usage examples
Agent(模型)在工作区直接调用工具即可:
用户:把北京、上海、广州、成都四个点画到地图上。
→ geolibre_render_map(data=, name="cities", center="112,32", zoom=4)
用户:对 sample-points 做 100km 缓冲。
→ geolibre_map_run(method="listAlgorithms") # 发现 buffer 算法
→ geolibre_map_run(method="runAlgorithm", params={"id":"buffer","params":{"layer":"","distance":100,"units":"kilometers"}})
用户:把所有省会城市显示出来。
→ geolibre_map_update(data=, name="cities", style={...})
用户:把地图移到上海。
→ geolibre_map_update(view={center:"121.5,31.2", zoom:8})
「地图」tab 顶部的 刷新 按钮会重新挂载 iframe 并载入 host 当前工程;工程/图层状态以 host 进程内的会话工程为单一事实来源,应用侧改动(用户交互、算法结果图层)会通过 geolibre:state 回写。
架构 / Architecture
Agent 工具 (host, Node)
│ ops 队列(id 数字键)
▼ 同源 HTTP:/dsh-geolibre/ops · /result · /state · /project · /status
「地图」tab 控制器页 (lib/map-page.html) —— 轮询 op、回传 result/state
│ window.postMessage(geolibre:load-project / geolibre:command / result / ready / state)
▼
GeoLibre Web App iframe(本地静态托管于 /dsh-geolibre/app/,含 Whitebox WASM)
- 每次渲染 / 更新会整体推送 .geolibre.json 工程对象(图层、样式、视图),与 geolibre Python 包 Map 使用的协议一致。
- runAlgorithm / runWhiteboxTool 等命令在浏览器端由应用执行(算法 / Whitebox WASM),结果经 geolibre:result 返回并在应用侧新增图层。
开发 / Development
npm install # 安装 dev 依赖
npm test # 冒烟测试(纯 Node 检查 + 可选 python byte-compile)
npm run prepack # 发布前语法检查
目录:
| 路径 | 说明 |
| --- | --- |
| lib/index.js | host 插件:工具、会话、HTTP API、静态托管 |
| lib/map-page.html | 「地图」tab 控制器页(iframe 中继) |
| client/client.js | 浏览器侧 tab 注册(client module) |
| scripts/render.py | 渲染 GeoJSON → 独立 HTML + project JSON(复用 geolibre Python 包) |
| scripts/ops.py | 服务端工程编辑(create / add-layer / set-layer / remove-layer / set-view) |
| cordis.patch.yml | DSH bundle 层:注册插件 entry(id geolibre) |
| test/smoke.mjs | 冒烟测试 |
注意:本仓库工作区内的演示工程(.geolibre-maps/)与控制器会话是运行期产物,不随包发布。
许可 / License
MIT — see LICENSE。扫码进群