@v587d/capital-generation 0.0.0-stage → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +814 -0
- package/LICENSE +21 -0
- package/README.md +118 -2
- package/assets/cg-icon.png +0 -0
- package/capital-config/client.js +28 -0
- package/capital-config/client.src.cjs +388 -0
- package/capital-config/index.js +113 -0
- package/capital-config/package.json +36 -0
- package/capital-watchlist/client.js +182 -0
- package/capital-watchlist/client.src.cjs +1229 -0
- package/capital-watchlist/index.js +772 -0
- package/capital-watchlist/package.json +37 -0
- package/chart-ui/README.md +112 -0
- package/chart-ui/client.js +16 -0
- package/chart-ui/client.src.cjs +126 -0
- package/chart-ui/index.js +205 -0
- package/chart-ui/package.json +30 -0
- package/cordis.patch.yml +72 -0
- package/lib/agents/bash-guard.d.ts +55 -0
- package/lib/agents/bash-guard.js +162 -0
- package/lib/agents/root-tool-policy.d.ts +164 -0
- package/lib/agents/root-tool-policy.js +309 -0
- package/lib/chart/artifact-ref.d.ts +65 -0
- package/lib/chart/artifact-ref.js +107 -0
- package/lib/chart/downsample.d.ts +8 -0
- package/lib/chart/downsample.js +53 -0
- package/lib/chart/errors.d.ts +16 -0
- package/lib/chart/errors.js +15 -0
- package/lib/chart/events.d.ts +120 -0
- package/lib/chart/events.js +471 -0
- package/lib/chart/html.d.ts +21 -0
- package/lib/chart/html.js +154 -0
- package/lib/chart/runtime.d.ts +20 -0
- package/lib/chart/runtime.js +270 -0
- package/lib/chart/series.d.ts +102 -0
- package/lib/chart/series.js +424 -0
- package/lib/chart/source-token.d.ts +64 -0
- package/lib/chart/source-token.js +217 -0
- package/lib/chart/spec.d.ts +58 -0
- package/lib/chart/spec.js +265 -0
- package/lib/chart/tool.d.ts +86 -0
- package/lib/chart/tool.js +288 -0
- package/lib/chart/vendor/LICENSE +201 -0
- package/lib/chart/vendor/VERSION.json +8 -0
- package/lib/chart/vendor/lightweight-charts.standalone.production.js +7 -0
- package/lib/data-collector/args.d.ts +38 -0
- package/lib/data-collector/args.js +114 -0
- package/lib/data-collector/dataset-tools.d.ts +3 -0
- package/lib/data-collector/dataset-tools.js +421 -0
- package/lib/data-collector/describe.d.ts +99 -0
- package/lib/data-collector/describe.js +256 -0
- package/lib/data-collector/hub.d.ts +187 -0
- package/lib/data-collector/hub.js +469 -0
- package/lib/data-collector/query-time.d.ts +58 -0
- package/lib/data-collector/query-time.js +101 -0
- package/lib/data-collector/query.d.ts +57 -0
- package/lib/data-collector/query.js +473 -0
- package/lib/data-collector/store.d.ts +499 -0
- package/lib/data-collector/store.js +1486 -0
- package/lib/data-collector/time-axis.d.ts +169 -0
- package/lib/data-collector/time-axis.js +419 -0
- package/lib/data-collector/tools.d.ts +32 -0
- package/lib/data-collector/tools.js +216 -0
- package/lib/index.d.ts +275 -0
- package/lib/index.js +458 -0
- package/lib/net/eastmoney-client.d.ts +104 -0
- package/lib/net/eastmoney-client.js +118 -0
- package/lib/net/throttle.d.ts +16 -0
- package/lib/net/throttle.js +34 -0
- package/lib/ocr/client.d.ts +82 -0
- package/lib/ocr/client.js +281 -0
- package/lib/ocr/markdown.d.ts +75 -0
- package/lib/ocr/markdown.js +209 -0
- package/lib/ocr/store.d.ts +119 -0
- package/lib/ocr/store.js +226 -0
- package/lib/sources/eastmoney-http.d.ts +2 -0
- package/lib/sources/eastmoney-http.js +1253 -0
- package/lib/sources/fuyao-core.d.ts +52 -0
- package/lib/sources/fuyao-core.js +96 -0
- package/lib/sources/fuyao-rest.d.ts +14 -0
- package/lib/sources/fuyao-rest.js +2057 -0
- package/lib/sources/security-code.d.ts +27 -0
- package/lib/sources/security-code.js +104 -0
- package/lib/sources/security-identity.d.ts +24 -0
- package/lib/sources/security-identity.js +89 -0
- package/lib/sources/tencent-http.d.ts +2 -0
- package/lib/sources/tencent-http.js +1053 -0
- package/lib/sources/wind-mcp.d.ts +8 -0
- package/lib/sources/wind-mcp.js +593 -0
- package/lib/time/tools.d.ts +74 -0
- package/lib/time/tools.js +464 -0
- package/lib/tool-exec.d.ts +29 -0
- package/lib/tool-exec.js +17 -0
- package/lib/web-retriever/engines.d.ts +61 -0
- package/lib/web-retriever/engines.js +202 -0
- package/lib/web-retriever/html-markdown.d.ts +50 -0
- package/lib/web-retriever/html-markdown.js +321 -0
- package/lib/web-retriever/local-fetch.d.ts +121 -0
- package/lib/web-retriever/local-fetch.js +562 -0
- package/lib/web-retriever/retriever.d.ts +58 -0
- package/lib/web-retriever/retriever.js +94 -0
- package/lib/web-retriever/sources.d.ts +235 -0
- package/lib/web-retriever/sources.js +961 -0
- package/lib/web-retriever/tools.d.ts +50 -0
- package/lib/web-retriever/tools.js +1029 -0
- package/lib/web-retriever/wind-client.d.ts +69 -0
- package/lib/web-retriever/wind-client.js +311 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +84 -4
- package/preset/capital-generation/README.md +161 -0
- package/preset/capital-generation/agent.patch.yml +509 -0
- package/preset/capital-generation/skills/capital-chart-protocol/SKILL.md +137 -0
- package/preset/capital-generation/skills/capital-data-protocol/SKILL.md +416 -0
- package/preset/capital-generation/skills/capital-orchestration/SKILL.md +174 -0
- package/preset/capital-generation/skills/capital-visualization-protocol/SKILL.md +296 -0
- package/preset/capital-generation/skills/capital-web-protocol/SKILL.md +240 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@v587d/capital-watchlist",
|
|
3
|
+
"version": "2.6.1",
|
|
4
|
+
"description": "Capital 模式的用户自选股(宿主级清单 + Fuyao 报价快照 + /capital-watchlist 路由 + 输入框菜单弹窗):由 @v587d/capital-generation 随包携带并作为 host 平面行挂载。",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"default": "./index.js"
|
|
10
|
+
},
|
|
11
|
+
"./client": {
|
|
12
|
+
"default": "./client.js"
|
|
13
|
+
},
|
|
14
|
+
"./package.json": "./package.json"
|
|
15
|
+
},
|
|
16
|
+
"dsh": {
|
|
17
|
+
"client": {
|
|
18
|
+
"platform": "web",
|
|
19
|
+
"immediately": true,
|
|
20
|
+
"inject": [
|
|
21
|
+
"@deepseek-ai/dsh-client-locale",
|
|
22
|
+
"@deepseek-ai/dsh-client-ui-primitives",
|
|
23
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
24
|
+
"@deepseek-ai/dsh-client-ui-commands",
|
|
25
|
+
"@deepseek-ai/dsh-api-session-controller"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"zod": "^4.5.4"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"index.js",
|
|
34
|
+
"client.js",
|
|
35
|
+
"package.json"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# @v587d/capital-charts
|
|
2
|
+
|
|
3
|
+
Capital 模式的图表前端组件。**它不是独立安装的包**——它是 `@v587d/capital-generation`
|
|
4
|
+
随包携带的嵌套包,由后者 `cordis.patch.yml` 里的 `insert` 行以 host 平面挂载。
|
|
5
|
+
|
|
6
|
+
## 为什么是一个嵌套包,而不是主包的一部分
|
|
7
|
+
|
|
8
|
+
三个约束叠在一起,只有这一种结构能同时满足:
|
|
9
|
+
|
|
10
|
+
1. **一个包 = 一份客户端 bundle**。`dsh-client-modules` 把"同一个包名出现在多个 active
|
|
11
|
+
Loader source"判为组合错误,所以"工具行(preset 平面)+ 图表 UI 行(host 平面)"
|
|
12
|
+
不可能塞进同一个包。
|
|
13
|
+
2. **客户端 bundle 必须挂在 host 平面**。boot graph 在 `index.html` 渲染那一刻确定,
|
|
14
|
+
运行期新增的 entry 没有送达浏览器的通道。挂在 preset 行上的客户端 bundle 到不了
|
|
15
|
+
已经打开的页面。
|
|
16
|
+
3. **用户只装一次**。本包被主包的 `files` 收录、随同一个 tarball 发布,patch 行用
|
|
17
|
+
**相对本 patch 目录的字面量路径** `./chart-ui/index.js` 挂载,不依赖 profile 的
|
|
18
|
+
`node_modules` 能按裸名解析到它(pnpm 的 isolated 布局下传递依赖解析不到)。
|
|
19
|
+
|
|
20
|
+
## 行名的三条规则(都踩过,别再踩)
|
|
21
|
+
|
|
22
|
+
| 规则 | 写错的后果 |
|
|
23
|
+
|---|---|
|
|
24
|
+
| `name` **不参与 `!!js` 插值**(只有 fiber 的 `config` 会) | 启动期 `name.startsWith is not a function`,**整个 profile 起不来** |
|
|
25
|
+
| `name` 只认**精确包名**或 **path-like**(`.` / `file:` / 绝对路径) | subpath 会被 `locatePkgJson` 静默丢弃:profile 能起,但**图表 UI 永远不出现且无报错** |
|
|
26
|
+
| 相对行名的解析基址是 **patch 文件所在目录**,不是 profile 根 | 行解析不到,profile 起不来 |
|
|
27
|
+
|
|
28
|
+
因此 `cordis.patch.yml` 里写的是 `./chart-ui/index.js`(`cordis-plugin-include` 会把
|
|
29
|
+
baseUrl 设为本 patch 文件所在目录);`locatePkgJson` 随后按"最近的 package.json"归属,
|
|
30
|
+
包身份为 `@v587d/capital-charts`。
|
|
31
|
+
|
|
32
|
+
回归断言在 `test/chart-composition.test.mjs`(既复刻那两条守卫,也真的解析并导入一次);
|
|
33
|
+
真实启动验证是 `npm run smoke:boot`。
|
|
34
|
+
|
|
35
|
+
## 文件
|
|
36
|
+
|
|
37
|
+
| 文件 | 说明 |
|
|
38
|
+
|---|---|
|
|
39
|
+
| `index.js` | 宿主半边:`capitalCharts` 服务 + `/capital-charts/<chart_id>.json` 序列路由。纯 JS、零构建 |
|
|
40
|
+
| `client.src.cjs` | 浏览器半边源码:只注册 `tool.call.toolview['render_chart']` 过程明细卡片(取数 → 渲染 → “打开”自包含 HTML)。**不再有 turn-tail 卡片**——呈现改走官方交付通道,见下 |
|
|
41
|
+
| `client.js` | 浏览器半边**构建产物**:`npm run build:client` 用 esbuild 打包生成。`lightweight-charts` 内联(无页面全局)、`react` external |
|
|
42
|
+
| `package.json` | `dsh.client` 声明(`platform: web`)+ `exports["./client"]` |
|
|
43
|
+
|
|
44
|
+
## 构建
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
npm run build:client # 生成 chart-ui/client.js(`npm run build` / `npm test` 会先跑它)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
产物形状与 shipped 客户端一致:`window.__ModuleLoader__.load({ id, factory })`,工厂是 CommonJS。
|
|
51
|
+
`client.js` 是**提交进仓库**的构建产物(本包随主包发布,用户装的是打好的文件);
|
|
52
|
+
`client.src.cjs` 与构建脚本 `scripts/build-client.mjs` 才是维护面。
|
|
53
|
+
|
|
54
|
+
## 为什么需要构建步骤
|
|
55
|
+
|
|
56
|
+
设计(内部设计文档 `docs/design/chart-visualization.md` §9,**不随仓库发布**)要求客户端**不产生页面全局**,所以
|
|
57
|
+
`lightweight-charts` 走打包进来的 ESM 模块(tree-shake 后内联),而不是 UMD 全局——
|
|
58
|
+
避免与官方或其它插件带的同库不同版本互相覆盖。运行时(`src/chart/runtime.ts`,与自包含
|
|
59
|
+
HTML 逐字节同源)以字符串形式在构建期落成真实模块,**不在浏览器里 eval**(避开 CSP)。
|
|
60
|
+
|
|
61
|
+
浏览器半边的契约测试在 `test/chart-client.test.mjs`:把 bundle 放进最小 DOM 沙箱真的执行
|
|
62
|
+
工厂函数,断言它只按工具名注册 toolview、**不再持有任何图表专属会话投影或 turn-tail 抢占**、
|
|
63
|
+
库已内联、react 保持 external、不依赖页面全局。
|
|
64
|
+
|
|
65
|
+
## 数据通道
|
|
66
|
+
|
|
67
|
+
图表序列**不进模型上下文**:`render_chart`(preset 平面)把序列写进 workspace 产物并
|
|
68
|
+
把**已解析好的绝对路径**登记到 `capitalCharts` 服务;浏览器半边按回执里的 `chart_url`
|
|
69
|
+
取数。路由只读登记过的文件,URL 里没有用户可控的路径成分。
|
|
70
|
+
|
|
71
|
+
**认证围栏(2026-09 review 修复)**:DSH 的 `webServer` 路由分发**不做认证**——认证由
|
|
72
|
+
route owner 自己负责,平台自己的 `/api` 与首页分别走 `connection.requestRejection()` 与
|
|
73
|
+
`authorizeIndex()`,上游 deliverables 的注释也写着 "inside Connection's authentication fence"。
|
|
74
|
+
本路由以前直接 `webServer.register(...)`,等于开了一个无认证端点:任何本机进程或页面只要
|
|
75
|
+
拿到 `chart_id` 就能读 `series.json`(`chart_id` 随机只降低命中率,不是访问控制)。
|
|
76
|
+
现在 `apply()` 把 `ctx.get('connection').requestRejection(req)` 接进 handler:
|
|
77
|
+
|
|
78
|
+
- 未认证 → 401,Host/Origin 不受信 → 403,且**认证先于方法与路径判定**(与 `/api` 一致,
|
|
79
|
+
未认证探测拿不到"路由存在 / chart_id 是否存在"的信息);
|
|
80
|
+
- `authorize` 抛错时 fail closed(401),不退化放行;
|
|
81
|
+
- 没有 `connection` 服务的组合(Electron/file:// 这类没有浏览器认证面的载体)才退回旧行为。
|
|
82
|
+
|
|
83
|
+
上游接口账本见 `docs/reference/dsh-surface-ledger.md` 的 **L13**,探针 `npm run check:dsh`;
|
|
84
|
+
本仓回归在 `test/chart-host.test.mjs`。
|
|
85
|
+
|
|
86
|
+
**已知遗留**:登记表是进程级 500 条 LRU,而 standing composition 进程内只有一个实例
|
|
87
|
+
(所有 Capital 会话共享),因此会话 B 大量出图会淘汰会话 A 的 URL(A 的图仍在盘上但卡片 404)。
|
|
88
|
+
修法(按 owner 分区 / 给条目加过期并同步撤销)尚未实施,记录在案。
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## 本轮呈现(官方交付通道)
|
|
92
|
+
|
|
93
|
+
出图成功后,**宿主**(`@v587d/capital-generation` 的 `render_chart`)会往"用户正在看的根会话"
|
|
94
|
+
追加一条**官方** `deliverables/presented` 事件,把 `capital-analysis/charts/<chart_id>/chart.html`
|
|
95
|
+
登记为**本轮交付物**:
|
|
96
|
+
|
|
97
|
+
- 载荷只有官方契约字段:`turn` / `callId`(`capital-chart:<chart_id>` 句柄)/ `files[]`
|
|
98
|
+
(工作区相对 `html_path` + 标题)——绝不含 rows、series、HTML 或绝对路径;
|
|
99
|
+
- 用户在收尾的官方「本轮文件改动 / 交付」行点开该文件,右侧由官方
|
|
100
|
+
`dsh-client-ui-sidebar-documentpreview` 的 script-enabled iframe 渲染自包含图表;
|
|
101
|
+
- 非 surface 事件不进 `deriveMessages()`,所以**不污染模型上下文**;
|
|
102
|
+
- 图表跟着 Dataset 一对一:需要多个视图就出多张,不做多源叠图。
|
|
103
|
+
|
|
104
|
+
**为什么不再自建卡片(2026-09-18 事故)**:卡片需要一条自定义会话事件承载,而会话日志的事件
|
|
105
|
+
词汇表是**闭集**、读取侧 fail-closed,且 `Session.append` 无法设置 `ignorable`——自定义事件写进日志后
|
|
106
|
+
会让**整份会话在冷加载时打不开**(实测 6 份会话 `failed to observe session`)。所以客户端不再持有
|
|
107
|
+
任何图表专属会话投影,**turn-tail 卡片通道已整体移除**;回归断言在 `test/chart-client.test.mjs`。
|
|
108
|
+
详见 `src/chart/events.ts` 头部、`docs/dev/chart-presentation.md` §6.1 与
|
|
109
|
+
`docs/dev/chart-delivery-events.md` §6.3。
|
|
110
|
+
|
|
111
|
+
`tool.call.toolview['render_chart']` 保留为工具过程明细(子会话与展开视图可见),
|
|
112
|
+
经 `/capital-charts/<chart_id>.json` 旁路取数渲染,**不经**会话事件。
|