dsh-plugin-astock-chart
Verifieddsh-plugin-astock-chart · v0.1.0 · MIT · Web UI
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.
Install
dsh plugin add dsh-plugin-astock-chart Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
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, 于是序列根本到不了浏览器,你看到的就是通用行而不是图。请使用工具呈现模式为native或both的预设;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