DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Geodesy — DeepSeek Harness 插件(DSH Plugin)
← Plugins
G

dsh-geodesy

Geodesy

DeepSeek Harness (dsh) 的测地线数学工具箱:大圆距离、方位角、目的地点、DMS 解析、恒向线、路径交点和球面多边形面积——零运行时依赖

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:TYEclipse/dsh-geodesy#542e117e33de42bd18cc0064ebc8a2bc2e9057ec
README兼容性版本

兼容性与来源证明

Geodesy 以 dsh-geodesy 发布,当前版本为 0.2.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/10

版本

0.2.3stable
2026/9/10
0.2.0stable
2026/9/3
0.1.0stable
2026/8/23
最新版
0.2.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-geodesy

Geodesic math toolbox for DeepSeek Harness (dsh): great-circle distances, bearings, destination points, DMS parsing, rhumb lines, path intersections, and spherical polygon areas — all as local, deterministic tools with zero runtime dependencies.

中文简介:dsh 插件「大地测量工具箱」——大圆距离、方位角、目的地推算、DMS 坐标解析、恒向线(罗盘等角航线)距离、两条大圆路径交点、球面多边形面积共七个纯计算工具,零运行时依赖。专治大模型手算球面几何的常见错误(弧度与角度混用、经纬度顺序颠倒、忘记地球半径、把球面多边形当平面算等)。

Why

LLMs reliably fumble geodesic math: they mix up latitude/longitude order, use the wrong Earth radius, forget degrees→radians, botch DMS conversions, and treat spherical polygons as planar. This plugin moves that math out of the model's head and into exact spherical trigonometry:

  • geo_distance — great-circle distance (haversine) between two points, with initial/final bearings and the 16-wind compass direction; results in km, m, mi, or nmi
  • geo_bearing — initial & final great-circle bearings plus the great-circle midpoint of two points
  • geo_destination — the direct geodesic problem: given a start point, bearing and distance, compute the destination (with a round-trip distance check)
  • coord_parse — parse and validate coordinate strings (decimal, DMS, suffixes, pairs) and convert them to decimal degrees + formatted DMS
  • geo_rhumb — rhumb-line (constant-heading / loxodrome) distance and bearing between two points, with the great-circle distance for comparison
  • geo_intersection — where two great-circle paths (start point + initial bearing each) cross; reports the nearest crossing, the antipodal crossing, and distances from both starts
  • geo_area — area and perimeter of a spherical polygon via spherical excess (Girard's theorem), with the complementary region's area always included

All math uses the IUGG mean Earth radius 6371.0088 km (configurable via the plugin radiusKm option, e.g. for lunar or planetary calculations).

Install

dsh plugin --profile web add github:TYEclipse/dsh-geodesy

Requires pnpm on your PATH. Then restart the profile's services (or dsh restart web).

Usage

Ask the agent questions that involve Earth-surface math; it will call the tools automatically:

  • "What is the great-circle distance from Beijing to Shanghai?"
  • "Which direction is New York from London, and where is the midpoint?"
  • "I'm 200 km due east of Paris — where am I?"
  • "Parse 37°46′30″N, 122°25′8.4″W into decimal degrees."
  • "How far do I sail from (45°N, 0°) to (45°N, 90°) at a constant heading, and how much longer is that than the great circle?"
  • "Where does the flight corridor starting at (0, 0) heading due east cross the one starting at (0, 90) heading due north?"
  • "What is the area of the triangle (0,0), (0,90), (90,0) on the sphere?"

Examples

geo_rhumb — (45°N, 0°) → (45°N, 90°) at constant heading:

{
  "valid": true,
  "unit": "km",
  "distance": 7076.411574,
  "kilometers": 7076.411574,
  "miles": 4397.078297,
  "nauticalMiles": 3820.956573,
  "bearing": 90,
  "compass": "E",
  "greatCircleKm": 6671.704814
}

geo_intersection — equator (east from (0,0)) × meridian (north from (0,90)):

{
  "valid": true,
  "lat": 0,
  "lon": 90,
  "distanceFromStart1Km": 10007.557221,
  "distanceFromStart2Km": 0,
  "antipodeLat": 0,
  "antipodeLon": -90,
  "antipodeDistanceFromStart1Km": 10007.557221,
  "antipodeDistanceFromStart2Km": 20015.114442
}

geo_area — the octant triangle (0,0), (0,90), (90,0): exactly one eighth of the sphere:

{
  "valid": true,
  "vertices": 3,
  "areaKm2": 63758235.121609,
  "perimeterKm": 30022.671663,
  "excessRadians": 1.5707963268,
  "complementKm2": 446307645.851263
}

geo_distance — Beijing (39.9042, 116.4074) → Shanghai (31.2304, 121.4737):

{
  "valid": true,
  "unit": "km",
  "distance": 1067.311645,
  "kilometers": 1067.311645,
  "miles": 663.196709,
  "nauticalMiles": 576.302184,
  "initialBearing": 153.072675,
  "finalBearing": 156.029266,
  "compass": "SSE"
}

Semantics notes

  • geo_area winding: the reported area is the region to the LEFT of the directed edges. Counter-clockwise vertex order (seen from outside the sphere) yields the polygon itself; clockwise order yields its complement. complementKm2 is always included, so either region is one field away. The polygon must be simple (non-self-intersecting); at most 100 vertices.
  • geo_intersection reports the crossing nearest to the first path's start; when that crossing lies on the reverse side of path 1 (bearing from start 1 differs by ~180°), a note says so and the antipodal crossing is the one ahead.
  • geo_rhumb returns bearing 0 for zero-length lines (no unique heading exists).

Coordinate input formats

coord_parse accepts, deterministically:

InputMeaning
39.9042, 116.4074decimal pair, lat, lon order
116.4074E, 39.9042Npair with suffixes — order is irrelevant, axes come from suffixes
39°54′15″N 116°23′27″EDMS pair (comma optional when suffixed)
37°46′30″N / 37d46m30sN / 37:46:30N / 37 46 30 Nsingle DMS coordinate
37.775N / -122.419single decimal (negative = S/W)
37.775, kind: "lat"unsuffixed single value with an explicit axis hint

Invalid input returns valid: false with a reason — never a silent guess.

Tools

ToolPurpose
geo_distancehaversine distance, km/m/mi/nmi, initial & final bearing, compass point
geo_bearinginitial/final bearings + great-circle midpoint
geo_destinationdestination point from start + bearing + distance, with round-trip check
coord_parseparse/validate decimal & DMS coordinate strings → decimal degrees + DMS
geo_rhumbconstant-heading distance + bearing (loxodrome), great-circle comparison
geo_intersectioncrossing of two great-circle paths (+ antipodal crossing, distances from starts)
geo_areaspherical polygon area + perimeter (spherical excess), complement area

Configuration

plugins:
  dsh-geodesy:
    radiusKm: 6371.0088   # sphere radius; use 1737.4 for the Moon, 3389.5 for Mars

Development

pnpm install
pnpm build
pnpm test     # 154 tests, anchored to independently computed closed-form values
pnpm lint

License

MIT © TYEclipse