@v587d/capital-generation 2.15.0 → 2.15.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 +109 -0
- package/README.md +4 -9
- package/THIRD_PARTY_NOTICES.md +1 -0
- package/automation/TABLER-ICONS-LICENSE +21 -0
- package/automation/builtins.js +237 -10
- package/automation/client.js +37 -5
- package/automation/client.src.cjs +578 -126
- package/automation/defaults.js +4 -4
- package/automation/index.js +1 -0
- package/automation/package.json +4 -2
- package/automation/route.js +1 -1
- package/automation/runner.js +5 -0
- package/automation/scheduler.js +34 -29
- package/automation/schema.js +39 -5
- package/automation/service.js +13 -10
- package/automation/store.js +64 -21
- package/automation/task-icons.js +75 -0
- package/chart-ui/client.js +2 -2
- package/chart-ui/package.json +1 -1
- package/config/client.js +12 -5
- package/config/client.src.cjs +143 -45
- package/config/index.js +5 -5
- package/config/package.json +1 -1
- package/lib/chart/runtime.d.ts +1 -1
- package/lib/chart/runtime.js +95 -0
- package/lib/chart/series.d.ts +4 -4
- package/lib/chart/series.js +44 -10
- package/lib/index.js +5 -5
- package/lib/web-retriever/local-fetch.d.ts +1 -1
- package/lib/web-retriever/local-fetch.js +1 -1
- package/lib/web-retriever/wind-client.d.ts +1 -1
- package/lib/web-retriever/wind-client.js +1 -1
- package/package.json +1 -1
- package/preset/capital-generation/skills/capital-chart-protocol/SKILL.md +6 -3
- package/preset/capital-generation/skills/capital-visualization-protocol/SKILL.md +2 -0
- package/watchlist/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -49,11 +49,11 @@ const RetrieverSchema = z.object({
|
|
|
49
49
|
.description('PaddleOCR 文档解析(ocr 工具)配置;Token 走 credentials 引用 PADDLE_OCR_TOKEN'),
|
|
50
50
|
});
|
|
51
51
|
const AutomationSchema = z.object({
|
|
52
|
-
tickMs: z.number().default(60_000).description('
|
|
53
|
-
runTimeoutMinutes: z.number().default(
|
|
52
|
+
tickMs: z.number().default(60_000).description('投研自动化自动检查间隔(毫秒,30000–3600000)'),
|
|
53
|
+
runTimeoutMinutes: z.number().default(60).description('单次运行最长运行时间(分钟,5–120)'),
|
|
54
54
|
idleTimeoutMinutes: z.number().default(5).description('单次运行空闲超时分钟(1–30)'),
|
|
55
|
-
maxSteps: z.number().default(300).description('单次运行最大步骤数(
|
|
56
|
-
maxToolCalls: z.number().default(1_200).description('单次运行最大工具调用数(
|
|
55
|
+
maxSteps: z.number().default(300).description('单次运行最大步骤数(100–2000)'),
|
|
56
|
+
maxToolCalls: z.number().default(1_200).description('单次运行最大工具调用数(100–5000)'),
|
|
57
57
|
inAppNotifications: z.boolean().default(true).description('是否写入应用内通知'),
|
|
58
58
|
});
|
|
59
59
|
// Derive toggles from the catalog: a hand-copied list silently drops defaults at the entry→plugin boundary.
|
|
@@ -77,7 +77,7 @@ export const Config = z.object({
|
|
|
77
77
|
.description('FTShare(非凸科技)credentials 引用名,空 = FTSHARE_API_KEY'),
|
|
78
78
|
automation: AutomationSchema.default({
|
|
79
79
|
tickMs: 60_000,
|
|
80
|
-
runTimeoutMinutes:
|
|
80
|
+
runTimeoutMinutes: 60,
|
|
81
81
|
idleTimeoutMinutes: 5,
|
|
82
82
|
maxSteps: 300,
|
|
83
83
|
maxToolCalls: 1_200,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Known limit: DNS resolves per request but the IP is not pinned to the connection,
|
|
4
4
|
* so a rebinding window remains (same trade-off as dsh-search-first).
|
|
5
5
|
*/
|
|
6
|
-
export declare const LOCAL_FETCH_CLIENT_VERSION = "2.15.
|
|
6
|
+
export declare const LOCAL_FETCH_CLIENT_VERSION = "2.15.1";
|
|
7
7
|
export declare const LOCAL_FETCH_MAX_URL_LENGTH = 2048;
|
|
8
8
|
export type LocalFetchErrorCode = 'ABORTED' | 'TIMEOUT' | 'INVALID_URL' | 'BLOCKED_URL' | 'DNS' | 'REDIRECT' | 'HTTP' | 'TOO_LARGE' | 'UNSUPPORTED_CONTENT_TYPE';
|
|
9
9
|
export declare class LocalFetchError extends Error {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* so a rebinding window remains (same trade-off as dsh-search-first).
|
|
5
5
|
*/
|
|
6
6
|
import { htmlToMarkdown, stripInvisibleText } from './html-markdown.js';
|
|
7
|
-
export const LOCAL_FETCH_CLIENT_VERSION = '2.15.
|
|
7
|
+
export const LOCAL_FETCH_CLIENT_VERSION = '2.15.1';
|
|
8
8
|
export const LOCAL_FETCH_MAX_URL_LENGTH = 2048;
|
|
9
9
|
export class LocalFetchError extends Error {
|
|
10
10
|
code;
|
|
@@ -35,7 +35,7 @@ export interface WindCallResult {
|
|
|
35
35
|
code?: WindErrorCode;
|
|
36
36
|
}
|
|
37
37
|
/** Must match `package.json` version; a test pins the two together. */
|
|
38
|
-
export declare const WIND_CLIENT_VERSION = "2.15.
|
|
38
|
+
export declare const WIND_CLIENT_VERSION = "2.15.1";
|
|
39
39
|
export interface WindClient {
|
|
40
40
|
callTool(toolName: string, args: Record<string, unknown>, signal?: AbortSignal): Promise<WindCallResult>;
|
|
41
41
|
}
|
|
@@ -19,7 +19,7 @@ export const WIND_SERVER_ENDPOINTS = {
|
|
|
19
19
|
analytics_data: 'https://mcp.wind.com.cn/vserver_analytics_data/mcp/',
|
|
20
20
|
};
|
|
21
21
|
/** Must match `package.json` version; a test pins the two together. */
|
|
22
|
-
export const WIND_CLIENT_VERSION = '2.15.
|
|
22
|
+
export const WIND_CLIENT_VERSION = '2.15.1';
|
|
23
23
|
function errorText(error) {
|
|
24
24
|
return error instanceof Error ? error.message : String(error);
|
|
25
25
|
}
|
package/package.json
CHANGED
|
@@ -83,13 +83,14 @@ description: Use before calling render_chart — the full chart spec vocabulary
|
|
|
83
83
|
|
|
84
84
|
| 取值 | 解释 |
|
|
85
85
|
|---|---|
|
|
86
|
-
| `2025-01-02` |
|
|
87
|
-
| `2025-01-02 08:00:00`(无时区) | 按 **
|
|
86
|
+
| `2025-01-02` | 业务日;全为 date-only 时轴上原样显示;与 epoch 混用时按 **Asia/Shanghai 当日 00:00** 解释 |
|
|
87
|
+
| `2025-01-02 08:00:00`(无时区) | 按 **Asia/Shanghai 墙钟**解释(08:00 = 00:00Z) |
|
|
88
88
|
| `2025-01-02T08:00:00+08:00` | 按给出偏移解释 |
|
|
89
89
|
| 数字 / 纯数字字符串,≥ 1e11 | epoch **毫秒** |
|
|
90
90
|
| 数字 / 纯数字字符串,< 1e11 | epoch **秒** |
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
时间轴的 epoch 刻度与十字线统一按 **Asia/Shanghai** 格式化(日 K 显示 `MM-dd`,分钟线显示 `HH:mm`),
|
|
93
|
+
不会因为库默认按 UTC 而把日期显示早一天。无法解析的行会被丢弃并计入 `warnings.skipped_rows`;时间列**必须**有值。
|
|
93
94
|
时间轴会被强制升序去重(库的要求),发生重排/去重时 `warnings` 会如实披露。
|
|
94
95
|
|
|
95
96
|
## 4. 有界化语义(必须会读 warnings)
|
|
@@ -99,6 +100,8 @@ description: Use before calling render_chart — the full chart spec vocabulary
|
|
|
99
100
|
- **标记点会吸附到最近的保留时间点**,不会因为下采样而消失。
|
|
100
101
|
- 数值口径与 Dataset 一致:数字,或 Dataset schema 允许的数字字符串;空值/非数值被丢弃并计入 `warnings`。
|
|
101
102
|
- **分类轴不接受 `range`**:`range` 只用于真实时间轴;分类数据应先在来源侧裁剪,或改用可解析的时间字段。
|
|
103
|
+
- **date-only 的 `range.from/to` 按 Asia/Shanghai 日历日解释,`to` 含当日 23:59:59**;不要把 UTC 零点
|
|
104
|
+
当成本地日的边界,否则首日会被裁掉。`from/to` 是 datetime 时按给出的时刻精确过滤。
|
|
102
105
|
- 分类轴 marker 可以用 `index`,也可以把 `time` 写成与 `x` 完全一致的原始分类标签;时间轴 marker 才使用日期/epoch。
|
|
103
106
|
|
|
104
107
|
## 5. 错误码与一次改对
|
|
@@ -54,6 +54,8 @@ failed
|
|
|
54
54
|
|
|
55
55
|
推荐不是“看到时间字段就必画”。需要同时考虑点数、字段质量、缺失值和用户问题。
|
|
56
56
|
|
|
57
|
+
**排名视图的硬前置**:`render_chart` 的 spec **没有 `sort` / `limit`**,类别排名图只能画“来源已经按目标数值排序好”的行。若来源未排序,即使 `recommended` 也要在 gate 记为 `skipped` + `limitation`,用表格承载排名,**不要创建 specialist**——它只能空转数分钟后返回 skipped。确需出图时,先让 collector 产出“已按目标字段排序并裁剪成前 N 行 + 已并入名称”的 Dataset,再重新签发 `chart_source_ref`。
|
|
58
|
+
|
|
57
59
|
### 1.3 `blocked`
|
|
58
60
|
|
|
59
61
|
以下情况不得强行出图:
|
package/watchlist/package.json
CHANGED