@hedgehog-finance/hedgehog-plugin 1.0.19 → 1.0.21
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/dist/index.d.ts +1 -1
- package/dist/src/channel.js +143 -4
- package/dist/src/channel.js.map +1 -1
- package/dist/src/core/database.js +156 -0
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/features/index.js +9 -1
- package/dist/src/features/index.js.map +1 -1
- package/dist/src/features/notes/schema.d.ts +84 -0
- package/dist/src/features/notes/schema.js +40 -0
- package/dist/src/features/notes/schema.js.map +1 -0
- package/dist/src/features/notes/tools.d.ts +11 -0
- package/dist/src/features/notes/tools.js +297 -0
- package/dist/src/features/notes/tools.js.map +1 -0
- package/dist/src/features/pluginInfo/tools.d.ts +11 -0
- package/dist/src/features/pluginInfo/tools.js +49 -0
- package/dist/src/features/pluginInfo/tools.js.map +1 -0
- package/dist/src/features/profileLibrary/schema.d.ts +29 -0
- package/dist/src/features/profileLibrary/schema.js +21 -0
- package/dist/src/features/profileLibrary/schema.js.map +1 -0
- package/dist/src/features/profileLibrary/tools.d.ts +11 -0
- package/dist/src/features/profileLibrary/tools.js +163 -0
- package/dist/src/features/profileLibrary/tools.js.map +1 -0
- package/dist/src/features/stockAnalysis/schema.d.ts +61 -0
- package/dist/src/features/stockAnalysis/schema.js +30 -0
- package/dist/src/features/stockAnalysis/schema.js.map +1 -0
- package/dist/src/features/stockAnalysis/tools.d.ts +20 -0
- package/dist/src/features/stockAnalysis/tools.js +138 -0
- package/dist/src/features/stockAnalysis/tools.js.map +1 -0
- package/dist/src/features/watchlist/logic.js +7 -60
- package/dist/src/features/watchlist/logic.js.map +1 -1
- package/dist/src/features/watchlist/tools.js +61 -26
- package/dist/src/features/watchlist/tools.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/package.json +5 -5
- package/src/channel.ts +150 -4
- package/src/core/database.ts +155 -0
- package/src/features/index.ts +9 -1
- package/src/features/notes/schema.ts +75 -0
- package/src/features/notes/tools.ts +352 -0
- package/src/features/pluginInfo/tools.ts +63 -0
- package/src/features/profileLibrary/schema.ts +35 -0
- package/src/features/profileLibrary/tools.ts +194 -0
- package/src/features/stockAnalysis/schema.ts +60 -0
- package/src/features/stockAnalysis/tools.ts +192 -0
- package/src/features/watchlist/logic.ts +7 -63
- package/src/features/watchlist/tools.ts +83 -48
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { getDB } from "../../core/database.js";
|
|
3
|
+
import { AddProfileLibraryParamsSchema, DeleteProfileLibraryParamsSchema, GetProfileLibraryByIdParamsSchema, GetProfileLibrariesParamsSchema, QueryProfileLibrariesParamsSchema } from "./schema.js";
|
|
4
|
+
function escapeLikePattern(value) {
|
|
5
|
+
return value.replace(/[\\%_]/g, (char) => `\\${char}`);
|
|
6
|
+
}
|
|
7
|
+
function normalizePagination(args) {
|
|
8
|
+
const page = args.page ?? 1;
|
|
9
|
+
const pageSize = args.pageSize ?? 20;
|
|
10
|
+
return {
|
|
11
|
+
page,
|
|
12
|
+
pageSize,
|
|
13
|
+
offset: (page - 1) * pageSize
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function paginatedResponse(rows, page, pageSize, total) {
|
|
17
|
+
return JSON.stringify({
|
|
18
|
+
success: true,
|
|
19
|
+
data: rows,
|
|
20
|
+
pagination: {
|
|
21
|
+
page,
|
|
22
|
+
pageSize,
|
|
23
|
+
total,
|
|
24
|
+
totalPages: Math.ceil(total / pageSize)
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async function getProfileLibraries(args = {}, ctx) {
|
|
29
|
+
try {
|
|
30
|
+
const db = getDB();
|
|
31
|
+
const uId = String(ctx.userId);
|
|
32
|
+
const { page, pageSize, offset } = normalizePagination(args);
|
|
33
|
+
const total = db.prepare(`
|
|
34
|
+
SELECT COUNT(*) AS count
|
|
35
|
+
FROM profile_libraries
|
|
36
|
+
WHERE userId = ?
|
|
37
|
+
`).get(uId).count;
|
|
38
|
+
const rows = db.prepare(`
|
|
39
|
+
SELECT id, title
|
|
40
|
+
FROM profile_libraries
|
|
41
|
+
WHERE userId = ?
|
|
42
|
+
ORDER BY updatedAt DESC, createdAt DESC
|
|
43
|
+
LIMIT ? OFFSET ?
|
|
44
|
+
`).all(uId, pageSize, offset);
|
|
45
|
+
return paginatedResponse(rows, page, pageSize, total);
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
return JSON.stringify({ success: false, error: e.message });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async function queryProfileLibraries(args = {}, ctx) {
|
|
52
|
+
try {
|
|
53
|
+
const db = getDB();
|
|
54
|
+
const uId = String(ctx.userId);
|
|
55
|
+
const keyword = args.keyword?.trim();
|
|
56
|
+
const { page, pageSize, offset } = normalizePagination(args);
|
|
57
|
+
if (keyword) {
|
|
58
|
+
const pattern = `%${escapeLikePattern(keyword)}%`;
|
|
59
|
+
const total = db.prepare(`
|
|
60
|
+
SELECT COUNT(*) AS count
|
|
61
|
+
FROM profile_libraries
|
|
62
|
+
WHERE userId = ?
|
|
63
|
+
AND (title LIKE ? ESCAPE '\\' OR id LIKE ? ESCAPE '\\')
|
|
64
|
+
`).get(uId, pattern, pattern).count;
|
|
65
|
+
const rows = db.prepare(`
|
|
66
|
+
SELECT id, title
|
|
67
|
+
FROM profile_libraries
|
|
68
|
+
WHERE userId = ?
|
|
69
|
+
AND (title LIKE ? ESCAPE '\\' OR id LIKE ? ESCAPE '\\')
|
|
70
|
+
ORDER BY updatedAt DESC, createdAt DESC
|
|
71
|
+
LIMIT ? OFFSET ?
|
|
72
|
+
`).all(uId, pattern, pattern, pageSize, offset);
|
|
73
|
+
return paginatedResponse(rows, page, pageSize, total);
|
|
74
|
+
}
|
|
75
|
+
return getProfileLibraries(args, ctx);
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
return JSON.stringify({ success: false, error: e.message });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export const profileLibraryTools = {
|
|
82
|
+
add_profile_library: {
|
|
83
|
+
name: "add_profile_library",
|
|
84
|
+
description: "新增个人资料库",
|
|
85
|
+
parameters: AddProfileLibraryParamsSchema,
|
|
86
|
+
registerTool: false,
|
|
87
|
+
execute: async (args, ctx) => {
|
|
88
|
+
try {
|
|
89
|
+
const db = getDB();
|
|
90
|
+
const uId = String(ctx.userId);
|
|
91
|
+
const id = args.id?.trim() || randomUUID();
|
|
92
|
+
const title = args.title.trim();
|
|
93
|
+
db.prepare(`
|
|
94
|
+
INSERT INTO profile_libraries (id, userId, title)
|
|
95
|
+
VALUES (?, ?, ?)
|
|
96
|
+
ON CONFLICT(id, userId) DO UPDATE SET
|
|
97
|
+
title = excluded.title,
|
|
98
|
+
updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
|
|
99
|
+
`).run(id, uId, title);
|
|
100
|
+
return JSON.stringify({ success: true, data: { id, title } });
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
return JSON.stringify({ success: false, error: e.message });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
delete_profile_library: {
|
|
108
|
+
name: "delete_profile_library",
|
|
109
|
+
description: "删除个人资料库",
|
|
110
|
+
parameters: DeleteProfileLibraryParamsSchema,
|
|
111
|
+
registerTool: false,
|
|
112
|
+
execute: async (args, ctx) => {
|
|
113
|
+
try {
|
|
114
|
+
const db = getDB();
|
|
115
|
+
const uId = String(ctx.userId);
|
|
116
|
+
const info = db.prepare(`
|
|
117
|
+
DELETE FROM profile_libraries
|
|
118
|
+
WHERE id = ? AND userId = ?
|
|
119
|
+
`).run(args.id.trim(), uId);
|
|
120
|
+
return JSON.stringify({ success: info.changes > 0 });
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
return JSON.stringify({ success: false, error: e.message });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
get_profile_library_by_id: {
|
|
128
|
+
name: "get_profile_library_by_id",
|
|
129
|
+
description: "根据 ID 查询个人资料库",
|
|
130
|
+
parameters: GetProfileLibraryByIdParamsSchema,
|
|
131
|
+
registerTool: false,
|
|
132
|
+
execute: async (args, ctx) => {
|
|
133
|
+
try {
|
|
134
|
+
const db = getDB();
|
|
135
|
+
const uId = String(ctx.userId);
|
|
136
|
+
const row = db.prepare(`
|
|
137
|
+
SELECT id, title
|
|
138
|
+
FROM profile_libraries
|
|
139
|
+
WHERE id = ? AND userId = ?
|
|
140
|
+
`).get(args.id.trim(), uId);
|
|
141
|
+
return JSON.stringify({ success: true, data: row ?? null });
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
return JSON.stringify({ success: false, error: e.message });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
query_profile_libraries: {
|
|
149
|
+
name: "query_profile_libraries",
|
|
150
|
+
description: "分页查询个人资料库,支持按标题或 ID 模糊查询",
|
|
151
|
+
parameters: QueryProfileLibrariesParamsSchema,
|
|
152
|
+
registerTool: false,
|
|
153
|
+
execute: queryProfileLibraries
|
|
154
|
+
},
|
|
155
|
+
get_profile_libraries: {
|
|
156
|
+
name: "get_profile_libraries",
|
|
157
|
+
description: "分页获取个人资料库列表",
|
|
158
|
+
parameters: GetProfileLibrariesParamsSchema,
|
|
159
|
+
registerTool: false,
|
|
160
|
+
execute: getProfileLibraries
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/features/profileLibrary/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "openclaw/plugin-sdk/zod";
|
|
2
|
+
export declare const GetStockAiAnalysisParamsSchema: z.ZodObject<{
|
|
3
|
+
stockCode: z.ZodString;
|
|
4
|
+
market: z.ZodDefault<z.ZodString>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export type GetStockAiAnalysisParams = z.infer<typeof GetStockAiAnalysisParamsSchema>;
|
|
7
|
+
export declare const QueryStockAiAnalysisHistoryParamsSchema: z.ZodObject<{
|
|
8
|
+
stockCode: z.ZodString;
|
|
9
|
+
market: z.ZodDefault<z.ZodString>;
|
|
10
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
11
|
+
pageSize: z.ZodDefault<z.ZodNumber>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type QueryStockAiAnalysisHistoryParams = z.infer<typeof QueryStockAiAnalysisHistoryParamsSchema>;
|
|
14
|
+
export declare const SaveStockAiAnalysisParamsSchema: z.ZodObject<{
|
|
15
|
+
stockCode: z.ZodString;
|
|
16
|
+
stockName: z.ZodString;
|
|
17
|
+
market: z.ZodDefault<z.ZodString>;
|
|
18
|
+
content: z.ZodString;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export type SaveStockAiAnalysisParams = z.infer<typeof SaveStockAiAnalysisParamsSchema>;
|
|
21
|
+
export interface StockAiAnalysis {
|
|
22
|
+
id: string;
|
|
23
|
+
stockCode: string;
|
|
24
|
+
stockName: string;
|
|
25
|
+
market: string;
|
|
26
|
+
content: string;
|
|
27
|
+
createdAt: string;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
}
|
|
30
|
+
export declare const ArticleAiAnalysisKindSchema: z.ZodEnum<{
|
|
31
|
+
verification: "verification";
|
|
32
|
+
deduction: "deduction";
|
|
33
|
+
}>;
|
|
34
|
+
export declare const GetArticleAiAnalysisParamsSchema: z.ZodObject<{
|
|
35
|
+
id: z.ZodString;
|
|
36
|
+
analysisType: z.ZodEnum<{
|
|
37
|
+
verification: "verification";
|
|
38
|
+
deduction: "deduction";
|
|
39
|
+
}>;
|
|
40
|
+
market: z.ZodDefault<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type GetArticleAiAnalysisParams = z.infer<typeof GetArticleAiAnalysisParamsSchema>;
|
|
43
|
+
export declare const SaveArticleAiAnalysisParamsSchema: z.ZodObject<{
|
|
44
|
+
id: z.ZodString;
|
|
45
|
+
analysisType: z.ZodEnum<{
|
|
46
|
+
verification: "verification";
|
|
47
|
+
deduction: "deduction";
|
|
48
|
+
}>;
|
|
49
|
+
market: z.ZodDefault<z.ZodString>;
|
|
50
|
+
content: z.ZodString;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type SaveArticleAiAnalysisParams = z.infer<typeof SaveArticleAiAnalysisParamsSchema>;
|
|
53
|
+
export interface ArticleAiAnalysis {
|
|
54
|
+
id: string;
|
|
55
|
+
sourceId: string;
|
|
56
|
+
analysisType: GetArticleAiAnalysisParams["analysisType"];
|
|
57
|
+
market: string;
|
|
58
|
+
content: string;
|
|
59
|
+
createdAt: string;
|
|
60
|
+
updatedAt: string;
|
|
61
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "openclaw/plugin-sdk/zod";
|
|
2
|
+
export const GetStockAiAnalysisParamsSchema = z.object({
|
|
3
|
+
stockCode: z.string().trim().min(1).describe("股票代码"),
|
|
4
|
+
market: z.string().trim().min(1).default("CN").describe("市场类型,默认 CN")
|
|
5
|
+
});
|
|
6
|
+
export const QueryStockAiAnalysisHistoryParamsSchema = z.object({
|
|
7
|
+
stockCode: z.string().trim().min(1).describe("股票代码"),
|
|
8
|
+
market: z.string().trim().min(1).default("CN").describe("市场类型,默认 CN"),
|
|
9
|
+
page: z.number().int().min(1).default(1).describe("页码"),
|
|
10
|
+
pageSize: z.number().int().min(1).max(50).default(20).describe("每页数量")
|
|
11
|
+
});
|
|
12
|
+
export const SaveStockAiAnalysisParamsSchema = z.object({
|
|
13
|
+
stockCode: z.string().trim().min(1).describe("股票代码"),
|
|
14
|
+
stockName: z.string().trim().min(1).describe("股票名称"),
|
|
15
|
+
market: z.string().trim().min(1).default("CN").describe("市场类型,默认 CN"),
|
|
16
|
+
content: z.string().trim().min(1).describe("AI 分析内容")
|
|
17
|
+
});
|
|
18
|
+
export const ArticleAiAnalysisKindSchema = z.enum(["verification", "deduction"]);
|
|
19
|
+
export const GetArticleAiAnalysisParamsSchema = z.object({
|
|
20
|
+
id: z.string().trim().min(1).describe("文章来源 ID,例如 news-5、report-5、announce-5"),
|
|
21
|
+
analysisType: ArticleAiAnalysisKindSchema.describe("分析类型:verification 信息求证,deduction 深度推演"),
|
|
22
|
+
market: z.string().trim().min(1).default("CN").describe("市场类型,默认 CN")
|
|
23
|
+
});
|
|
24
|
+
export const SaveArticleAiAnalysisParamsSchema = z.object({
|
|
25
|
+
id: z.string().trim().min(1).describe("文章来源 ID,例如 news-5、report-5、announce-5"),
|
|
26
|
+
analysisType: ArticleAiAnalysisKindSchema.describe("分析类型:verification 信息求证,deduction 深度推演"),
|
|
27
|
+
market: z.string().trim().min(1).default("CN").describe("市场类型,默认 CN"),
|
|
28
|
+
content: z.string().trim().min(1).describe("AI 分析内容")
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/features/stockAnalysis/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getDB } from "../../core/database.js";
|
|
2
|
+
import { StockAiAnalysis } from "./schema.js";
|
|
3
|
+
interface RuntimeTool {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
parameters: unknown;
|
|
7
|
+
registerTool?: boolean;
|
|
8
|
+
execute(params: unknown, ctx: {
|
|
9
|
+
userId: string;
|
|
10
|
+
}): Promise<string>;
|
|
11
|
+
}
|
|
12
|
+
export declare function normalizeStockCode(stockCode: string): string;
|
|
13
|
+
export declare function saveStockAiAnalysisRecord(db: ReturnType<typeof getDB>, userId: string, args: {
|
|
14
|
+
stockCode: string;
|
|
15
|
+
stockName: string;
|
|
16
|
+
market: string;
|
|
17
|
+
content: string;
|
|
18
|
+
}): StockAiAnalysis;
|
|
19
|
+
export declare const stockAnalysisTools: Record<string, RuntimeTool>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { getDB } from "../../core/database.js";
|
|
3
|
+
import { GetArticleAiAnalysisParamsSchema, GetStockAiAnalysisParamsSchema, QueryStockAiAnalysisHistoryParamsSchema, SaveArticleAiAnalysisParamsSchema, SaveStockAiAnalysisParamsSchema } from "./schema.js";
|
|
4
|
+
export function normalizeStockCode(stockCode) {
|
|
5
|
+
return stockCode.trim().toUpperCase().replace(/\.SS$/i, ".SH");
|
|
6
|
+
}
|
|
7
|
+
function selectLatestStockAnalysis(db, userId, stockCode) {
|
|
8
|
+
return db.prepare(`
|
|
9
|
+
SELECT id, stockCode, stockName, market, content, createdAt, updatedAt
|
|
10
|
+
FROM stock_ai_analysis
|
|
11
|
+
WHERE userId = ? AND stockCode = ?
|
|
12
|
+
ORDER BY updatedAt DESC, createdAt DESC
|
|
13
|
+
LIMIT 1
|
|
14
|
+
`).get(userId, stockCode);
|
|
15
|
+
}
|
|
16
|
+
export function saveStockAiAnalysisRecord(db, userId, args) {
|
|
17
|
+
const stockCode = normalizeStockCode(args.stockCode);
|
|
18
|
+
const id = randomUUID();
|
|
19
|
+
db.prepare(`
|
|
20
|
+
INSERT INTO stock_ai_analysis (id, userId, stockCode, stockName, market, content)
|
|
21
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
22
|
+
`).run(id, userId, stockCode, args.stockName, args.market, args.content);
|
|
23
|
+
return db.prepare(`
|
|
24
|
+
SELECT id, stockCode, stockName, market, content, createdAt, updatedAt
|
|
25
|
+
FROM stock_ai_analysis
|
|
26
|
+
WHERE userId = ? AND id = ?
|
|
27
|
+
`).get(userId, id);
|
|
28
|
+
}
|
|
29
|
+
function selectLatestArticleAnalysis(db, userId, sourceId, analysisType, market) {
|
|
30
|
+
return db.prepare(`
|
|
31
|
+
SELECT id, sourceId, analysisType, market, content, createdAt, updatedAt
|
|
32
|
+
FROM article_ai_analysis
|
|
33
|
+
WHERE userId = ? AND sourceId = ? AND analysisType = ? AND market = ?
|
|
34
|
+
ORDER BY updatedAt DESC, createdAt DESC
|
|
35
|
+
LIMIT 1
|
|
36
|
+
`).get(userId, sourceId, analysisType, market);
|
|
37
|
+
}
|
|
38
|
+
function saveArticleAiAnalysisRecord(db, userId, args) {
|
|
39
|
+
const id = randomUUID();
|
|
40
|
+
db.prepare(`
|
|
41
|
+
INSERT INTO article_ai_analysis (id, sourceId, userId, analysisType, market, content)
|
|
42
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
43
|
+
ON CONFLICT(sourceId, userId, analysisType, market) DO UPDATE SET
|
|
44
|
+
content = excluded.content,
|
|
45
|
+
updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
|
|
46
|
+
`).run(id, args.sourceId, userId, args.analysisType, args.market, args.content);
|
|
47
|
+
return db.prepare(`
|
|
48
|
+
SELECT id, sourceId, analysisType, market, content, createdAt, updatedAt
|
|
49
|
+
FROM article_ai_analysis
|
|
50
|
+
WHERE userId = ? AND sourceId = ? AND analysisType = ? AND market = ?
|
|
51
|
+
`).get(userId, args.sourceId, args.analysisType, args.market);
|
|
52
|
+
}
|
|
53
|
+
export const stockAnalysisTools = {
|
|
54
|
+
get_stock_ai_analysis: {
|
|
55
|
+
name: "get_stock_ai_analysis",
|
|
56
|
+
description: "读取股票 AI 分析的最新一条历史记录;不触发模型分析。",
|
|
57
|
+
parameters: GetStockAiAnalysisParamsSchema,
|
|
58
|
+
registerTool: false,
|
|
59
|
+
async execute(params, ctx) {
|
|
60
|
+
const args = GetStockAiAnalysisParamsSchema.parse(params);
|
|
61
|
+
const db = getDB();
|
|
62
|
+
const data = selectLatestStockAnalysis(db, ctx.userId, normalizeStockCode(args.stockCode));
|
|
63
|
+
return JSON.stringify({ success: true, data: data || null });
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
query_stock_ai_analysis_history: {
|
|
67
|
+
name: "query_stock_ai_analysis_history",
|
|
68
|
+
description: "分页读取股票 AI 分析历史记录;不触发模型分析。",
|
|
69
|
+
parameters: QueryStockAiAnalysisHistoryParamsSchema,
|
|
70
|
+
registerTool: false,
|
|
71
|
+
async execute(params, ctx) {
|
|
72
|
+
const args = QueryStockAiAnalysisHistoryParamsSchema.parse(params);
|
|
73
|
+
const db = getDB();
|
|
74
|
+
const stockCode = normalizeStockCode(args.stockCode);
|
|
75
|
+
const offset = (args.page - 1) * args.pageSize;
|
|
76
|
+
const rows = db.prepare(`
|
|
77
|
+
SELECT id, stockCode, stockName, market, content, createdAt, updatedAt
|
|
78
|
+
FROM stock_ai_analysis
|
|
79
|
+
WHERE userId = ? AND stockCode = ? AND market = ?
|
|
80
|
+
ORDER BY updatedAt DESC, createdAt DESC
|
|
81
|
+
LIMIT ? OFFSET ?
|
|
82
|
+
`).all(ctx.userId, stockCode, args.market, args.pageSize, offset);
|
|
83
|
+
const countRow = db.prepare(`
|
|
84
|
+
SELECT COUNT(*) AS total
|
|
85
|
+
FROM stock_ai_analysis
|
|
86
|
+
WHERE userId = ? AND stockCode = ? AND market = ?
|
|
87
|
+
`).get(ctx.userId, stockCode, args.market);
|
|
88
|
+
const total = countRow.total || 0;
|
|
89
|
+
return JSON.stringify({
|
|
90
|
+
success: true,
|
|
91
|
+
data: rows,
|
|
92
|
+
pagination: {
|
|
93
|
+
page: args.page,
|
|
94
|
+
pageSize: args.pageSize,
|
|
95
|
+
total,
|
|
96
|
+
totalPages: Math.ceil(total / args.pageSize)
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
save_stock_ai_analysis: {
|
|
102
|
+
name: "save_stock_ai_analysis",
|
|
103
|
+
description: "追加保存一条股票 AI 分析历史记录。",
|
|
104
|
+
parameters: SaveStockAiAnalysisParamsSchema,
|
|
105
|
+
registerTool: false,
|
|
106
|
+
async execute(params, ctx) {
|
|
107
|
+
const args = SaveStockAiAnalysisParamsSchema.parse(params);
|
|
108
|
+
const db = getDB();
|
|
109
|
+
const data = saveStockAiAnalysisRecord(db, ctx.userId, args);
|
|
110
|
+
return JSON.stringify({ success: true, data });
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
get_article_ai_analysis: {
|
|
114
|
+
name: "get_article_ai_analysis",
|
|
115
|
+
description: "读取文章 AI 分析结果;支持信息求证与深度推演,不触发模型分析。",
|
|
116
|
+
parameters: GetArticleAiAnalysisParamsSchema,
|
|
117
|
+
registerTool: false,
|
|
118
|
+
async execute(params, ctx) {
|
|
119
|
+
const args = GetArticleAiAnalysisParamsSchema.parse(params);
|
|
120
|
+
const db = getDB();
|
|
121
|
+
const data = selectLatestArticleAnalysis(db, ctx.userId, args.id, args.analysisType, args.market);
|
|
122
|
+
return JSON.stringify({ success: true, data: data || null });
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
save_article_ai_analysis: {
|
|
126
|
+
name: "save_article_ai_analysis",
|
|
127
|
+
description: "保存文章 AI 分析结果;支持信息求证与深度推演。",
|
|
128
|
+
parameters: SaveArticleAiAnalysisParamsSchema,
|
|
129
|
+
registerTool: false,
|
|
130
|
+
async execute(params, ctx) {
|
|
131
|
+
const args = SaveArticleAiAnalysisParamsSchema.parse(params);
|
|
132
|
+
const db = getDB();
|
|
133
|
+
const data = saveArticleAiAnalysisRecord(db, ctx.userId, { ...args, sourceId: args.id });
|
|
134
|
+
return JSON.stringify({ success: true, data });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/features/stockAnalysis/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { completeSimple } from "@mariozechner/pi-ai";
|
|
3
|
-
import { extractAssistantText,
|
|
3
|
+
import { extractAssistantText, prepareSimpleCompletionModelForAgent } from "openclaw/plugin-sdk/simple-completion-runtime";
|
|
4
4
|
import { getDB } from "../../core/database.js";
|
|
5
5
|
import { logger } from "../../core/logger.js";
|
|
6
6
|
import { StockClassificationSchema } from "../../types.js";
|
|
@@ -19,41 +19,6 @@ const CLASSIFIER_SYSTEM_PROMPT = [
|
|
|
19
19
|
"禁止输出推理过程、解释、Markdown 或代码块;不要思考展开,只做快速匹配。",
|
|
20
20
|
"只允许根据用户消息中提供的行业/主题分类字典和股票列表输出纯 JSON 数组。"
|
|
21
21
|
].join("\n");
|
|
22
|
-
function resolveModelRef(modelConfig) {
|
|
23
|
-
if (typeof modelConfig === "string" && modelConfig.trim())
|
|
24
|
-
return modelConfig.trim();
|
|
25
|
-
if (!modelConfig || typeof modelConfig !== "object" || Array.isArray(modelConfig))
|
|
26
|
-
return undefined;
|
|
27
|
-
const primary = modelConfig.primary;
|
|
28
|
-
return typeof primary === "string" && primary.trim() ? primary.trim() : undefined;
|
|
29
|
-
}
|
|
30
|
-
function getConfiguredProviderConfig(cfg, provider) {
|
|
31
|
-
const providerConfigs = cfg.models?.providers;
|
|
32
|
-
if (!providerConfigs)
|
|
33
|
-
return undefined;
|
|
34
|
-
const exact = providerConfigs[provider];
|
|
35
|
-
if (exact)
|
|
36
|
-
return exact;
|
|
37
|
-
const normalized = provider.trim().toLowerCase();
|
|
38
|
-
return Object.entries(providerConfigs).find(([key]) => key.trim().toLowerCase() === normalized)?.[1];
|
|
39
|
-
}
|
|
40
|
-
function resolveClassifierModelSelection(cfg, defaultProvider, defaultModel) {
|
|
41
|
-
const agentEntry = (cfg.agents?.list || []).find((agent) => agent?.id === MAIN_AGENT_ID);
|
|
42
|
-
const primary = resolveModelRef(agentEntry?.model)
|
|
43
|
-
|| resolveModelRef(cfg.agents?.defaults?.model)
|
|
44
|
-
|| `${defaultProvider}/${defaultModel}`;
|
|
45
|
-
const slash = primary.indexOf("/");
|
|
46
|
-
if (slash > 0) {
|
|
47
|
-
return {
|
|
48
|
-
provider: primary.slice(0, slash),
|
|
49
|
-
model: primary.slice(slash + 1)
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
provider: defaultProvider,
|
|
54
|
-
model: primary
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
22
|
function normalizeStockCodeForCache(stockCode, exchange) {
|
|
58
23
|
const code = String(stockCode || "")
|
|
59
24
|
.trim()
|
|
@@ -379,17 +344,7 @@ export const watchlistLogic = {
|
|
|
379
344
|
},
|
|
380
345
|
async _callClassifierCompletion(rt, sessionId, prompt, timeoutMs) {
|
|
381
346
|
const cfg = rt.config.loadConfig();
|
|
382
|
-
const { provider, model } = resolveClassifierModelSelection(cfg, rt.agent.defaults.provider, rt.agent.defaults.model);
|
|
383
347
|
const maxTokens = resolveClassifierOutputMaxTokens(prompt);
|
|
384
|
-
const providerAuth = await rt.modelAuth.resolveApiKeyForProvider({ provider, cfg });
|
|
385
|
-
if (!providerAuth.apiKey) {
|
|
386
|
-
throw new Error(`No API key found for provider "${provider}".`);
|
|
387
|
-
}
|
|
388
|
-
const providerConfigs = cfg.models?.providers;
|
|
389
|
-
const providerConfig = getConfiguredProviderConfig(cfg, provider);
|
|
390
|
-
if (!providerConfig) {
|
|
391
|
-
throw new Error(`No model provider config found for "${provider}".`);
|
|
392
|
-
}
|
|
393
348
|
const embeddedCfg = {
|
|
394
349
|
...cfg,
|
|
395
350
|
agents: {
|
|
@@ -398,27 +353,19 @@ export const watchlistLogic = {
|
|
|
398
353
|
...cfg.agents?.defaults,
|
|
399
354
|
systemPromptOverride: CLASSIFIER_SYSTEM_PROMPT
|
|
400
355
|
}
|
|
401
|
-
},
|
|
402
|
-
models: {
|
|
403
|
-
...cfg.models,
|
|
404
|
-
providers: {
|
|
405
|
-
...providerConfigs,
|
|
406
|
-
[provider]: {
|
|
407
|
-
...providerConfig,
|
|
408
|
-
auth: "api-key",
|
|
409
|
-
apiKey: providerAuth.apiKey
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
356
|
}
|
|
413
357
|
};
|
|
414
|
-
const prepared = await
|
|
358
|
+
const prepared = await prepareSimpleCompletionModelForAgent({
|
|
415
359
|
cfg: embeddedCfg,
|
|
416
|
-
|
|
417
|
-
|
|
360
|
+
agentId: MAIN_AGENT_ID,
|
|
361
|
+
allowBundledStaticCatalogFallback: true
|
|
418
362
|
});
|
|
419
363
|
if ("error" in prepared) {
|
|
420
364
|
throw new Error(prepared.error);
|
|
421
365
|
}
|
|
366
|
+
if (!prepared.auth.apiKey) {
|
|
367
|
+
throw new Error(`No API key found for provider "${prepared.selection.provider}".`);
|
|
368
|
+
}
|
|
422
369
|
const abortController = new AbortController();
|
|
423
370
|
const abortTimer = setTimeout(() => {
|
|
424
371
|
abortController.abort(new Error(`classifier completion timed out after ${timeoutMs}ms`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/features/watchlist/logic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/features/watchlist/logic.ts"],"names":[],"mappings":"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"}
|