strategic-posture)展示战区级军事姿态评估 — 将每个战区的缓存”种子”视图与实时军事舰艇移动混合,使渲染的姿态反映当今部署而非昨日部署。
面板显示内容
一个垂直排列的战区姿态卡片列表。每张卡片包含战区名称、当前姿态摘要和点击穿透交互:选择一个战区会触发可选的位置点击回调,使宿主可以将地图缩放到其坐标。 面板的内部加载 UX 值得注意:它在等待姿态 + 舰艇获取解析时使用setInterval 跟踪已用时间,因此在慢速运行时读者能看到可见的进度信号。当种子过期时,面板设置过期指示器(isStale),使卡片表面可以标记它。
在面板底层:
- 通过
fetchCachedTheaterPosture()加载缓存姿态。 - 通过
fetchMilitaryVessels()获取当前军事舰艇。 - 使用
recalcPostureWithVessels()即时重新计算姿态,使显示的摘要是一个新鲜的激增估计,而非仅仅是缓存值。
strategic-posture;规范组件为 src/components/StrategicPosturePanel.ts。标题从 i18n 解析(panels.strategicPosture);配置在 src/config/panels.ts:23 设置 'AI Strategic Posture'。
如何访问
- Cmd+K:输入 posture 或 strategic。
- 按变体的可用性:仅在 full/geopolitical 变体中注册并默认启用。Web 端免费;桌面端变体注册将
{ premium: 'enhanced' as const }展开到配置中,使该面板在桌面构建上变为 enhanced 门控。来源:src/config/panels.ts:23处FULL_PANELS中的'strategic-posture'条目(未设置premium;其他位置的桌面变体按_desktop &&模式叠加 enhanced 门控)。
数据来源
- 缓存姿态:种子级战区姿态摘要,通过
@/services/cached-theater-posture读取。 - 军事舰艇:通过
@/services/military-vessels获取实时位置(驱动军事地图图层的同一数据源)。 - 激增重算:
@/services/military-surge中的recalcPostureWithVessels()将缓存基线与今日舰艇位置混合,生成显示的TheaterPostureSummary。
后端端点
该面板不直接调用每条军事路由。它先读取 bootstrap/缓存姿态数据,然后仅当本地姿态缓存需要新鲜的服务器值时才使用生成的 MilitaryService 客户端。| 方法 | 路由 | 供给内容 |
|---|---|---|
GET | /api/military/v1/get-theater-posture | 卡片列表的主要姿态 RPC。浏览器在回退到此路由之前会检查 bootstrap theaterPosture、熔断器缓存和 IndexedDB。 |
GET | /api/military/v1/list-military-flights | 缓存姿态载荷上游、为飞机驱动姿态和激增计算提供数据的源;面板通常消费计算出的姿态输出,而非自行重新获取航班。 |
刷新频率
面板不在轮询计时器上 — 在挂载时获取并在相关外部触发时重新渲染。底层姿态种子在军事 cron 上刷新;实时舰艇位置随 AIS relay 刷新。层级与门控
Web 端免费;桌面端 enhanced。 在 full 变体的FULL_PANELS 条目中注册时未设置 premium(src/config/panels.ts:23),因此 Web 构建不门控它。桌面构建在其他变体上下文中叠加 premium: 'enhanced' — 这就是该面板在 Web 端免费但在桌面应用上位于升级 CTA 之后的原因。
API 参考
- Military service — 战区姿态 + 舰艇的后端数据源。
- 相关:军事追踪 — 同一底层数据集的地图图层视图。
