跳到主要内容

dsh-plugin-astock-chart

已验证

dsh-plugin-astock-chart · v0.1.0 · MIT · Web 界面

Draws the candlesticks in the reply: a web-client card that renders astock_data results as an OHLC chart with volume, instead of a table of numbers.

安装

dsh plugin add dsh-plugin-astock-chart

dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南

源码

发布到 npm 但没有公开仓库。安装前请检查包内容。

标签

说明文档

dsh-plugin-astock-chart

English | 中文

把 K 线画在回复里。astock_data 的结果会渲染成带成交量的 K 线图,而不是一张数字表格。

dsh plugin --profile web add dsh-plugin-astock-chart

数据来自 dsh-plugin-astock,卡片由 Web 客户端渲染。装完重启服务,浏览器 下次加载时会取到这份产物。

[!IMPORTANT] agent 必须能够原生调用 astock_data 在纯 Code Mode 预设下,每次调用都走 run_code,而 code-dispatch 的子调用没有卡片——运行时会跳过它的 presentationMeta, 于是序列根本到不了浏览器,你看到的就是通用行而不是图。请使用工具呈现模式为 nativeboth 的预设;both 既保留 run_code 做批量活,又让单只查询走原生调用、可以画图。 这个选择对你其他插件的影响见工具呈现模式

渲染方式

卡片注册进 Web 客户端的 tool.call.toolview 插槽,按工具名 astock_data 作 key。没有 注册视图的工具由 ui-tool 渲染通用卡片——所以本插件是增加一个视图而不是替换机制; 遇到画不出来的结果时,它退回那张通用卡片,而不是给一个空盒子。

K 线通过 presentationMeta 到达浏览器。规范值是执行期本地的——既不进卡片也不进回放—— 所以卡片要用的数据必须投影到结果上(结果是持久化的)。正因为会持久化,才有了限量: 这份投影只带一屏(120 根),而不是调用方可能请求的全部历史。

绘图上的几个决定

价格坐标只覆盖可见的最高最低价,不从 0 开始。否则一只涨了 2% 的股票会渲染成空图 顶部的一条直线。区间为零时(只有一根,或一字板)会补一点余量,让蜡烛保持可见,而不是 塌成一条线。

红涨绿跌,A 股惯例——和多数西方图表相反。

成交量按窗口内自身峰值缩放,所以那条带展示的是相对活跃度,而不是价格坐标表达不了 的数值。

缺价的那根直接丢弃。 打包的序列用空 token 表示未上报的字段,而 Number('')0—— 这样强转出来的一根会画成一根跌到零的蜡烛。

没有构建步骤

本包直接提供手写的客户端产物,格式是模块加载器文档化的工厂形态 (window.__ModuleLoader__.load({ id, factory }))。这张卡片自身零 npm 依赖——React 由 host 通过注入的 require 表提供——所以引入打包器,只是为了把一个没有依赖的文件"打包" 一遍,代价却是一整套工具链、一个构建步骤,以及 git 直装时的构建授权弹窗。

测试直接加载这个发布产物本身(配一个替身加载器表),因此验证的是我们真正发布的文件, 而不是它逻辑的一份副本。

许可

MIT