@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.
Files changed (46) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/src/channel.js +143 -4
  3. package/dist/src/channel.js.map +1 -1
  4. package/dist/src/core/database.js +156 -0
  5. package/dist/src/core/database.js.map +1 -1
  6. package/dist/src/features/index.js +9 -1
  7. package/dist/src/features/index.js.map +1 -1
  8. package/dist/src/features/notes/schema.d.ts +84 -0
  9. package/dist/src/features/notes/schema.js +40 -0
  10. package/dist/src/features/notes/schema.js.map +1 -0
  11. package/dist/src/features/notes/tools.d.ts +11 -0
  12. package/dist/src/features/notes/tools.js +297 -0
  13. package/dist/src/features/notes/tools.js.map +1 -0
  14. package/dist/src/features/pluginInfo/tools.d.ts +11 -0
  15. package/dist/src/features/pluginInfo/tools.js +49 -0
  16. package/dist/src/features/pluginInfo/tools.js.map +1 -0
  17. package/dist/src/features/profileLibrary/schema.d.ts +29 -0
  18. package/dist/src/features/profileLibrary/schema.js +21 -0
  19. package/dist/src/features/profileLibrary/schema.js.map +1 -0
  20. package/dist/src/features/profileLibrary/tools.d.ts +11 -0
  21. package/dist/src/features/profileLibrary/tools.js +163 -0
  22. package/dist/src/features/profileLibrary/tools.js.map +1 -0
  23. package/dist/src/features/stockAnalysis/schema.d.ts +61 -0
  24. package/dist/src/features/stockAnalysis/schema.js +30 -0
  25. package/dist/src/features/stockAnalysis/schema.js.map +1 -0
  26. package/dist/src/features/stockAnalysis/tools.d.ts +20 -0
  27. package/dist/src/features/stockAnalysis/tools.js +138 -0
  28. package/dist/src/features/stockAnalysis/tools.js.map +1 -0
  29. package/dist/src/features/watchlist/logic.js +7 -60
  30. package/dist/src/features/watchlist/logic.js.map +1 -1
  31. package/dist/src/features/watchlist/tools.js +61 -26
  32. package/dist/src/features/watchlist/tools.js.map +1 -1
  33. package/dist/src/types.d.ts +1 -1
  34. package/package.json +5 -5
  35. package/src/channel.ts +150 -4
  36. package/src/core/database.ts +155 -0
  37. package/src/features/index.ts +9 -1
  38. package/src/features/notes/schema.ts +75 -0
  39. package/src/features/notes/tools.ts +352 -0
  40. package/src/features/pluginInfo/tools.ts +63 -0
  41. package/src/features/profileLibrary/schema.ts +35 -0
  42. package/src/features/profileLibrary/tools.ts +194 -0
  43. package/src/features/stockAnalysis/schema.ts +60 -0
  44. package/src/features/stockAnalysis/tools.ts +192 -0
  45. package/src/features/watchlist/logic.ts +7 -63
  46. 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, prepareSimpleCompletionModel } from "openclaw/plugin-sdk/simple-completion-runtime";
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 prepareSimpleCompletionModel({
358
+ const prepared = await prepareSimpleCompletionModelForAgent({
415
359
  cfg: embeddedCfg,
416
- provider,
417
- modelId: model
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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"}