@hedgehog-finance/hedgehog-plugin 1.0.21 → 1.0.23

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 (111) hide show
  1. package/dist/index.d.ts +4 -3
  2. package/dist/index.js +49 -6
  3. package/dist/index.js.map +1 -1
  4. package/dist/setup-api.d.ts +2 -0
  5. package/dist/setup-api.js +8 -0
  6. package/dist/setup-api.js.map +1 -0
  7. package/dist/src/channel.js +25 -23
  8. package/dist/src/channel.js.map +1 -1
  9. package/dist/src/core/database.js +449 -39
  10. package/dist/src/core/database.js.map +1 -1
  11. package/dist/src/dailyMorningBriefingCron.d.ts +46 -0
  12. package/dist/src/dailyMorningBriefingCron.js +82 -0
  13. package/dist/src/dailyMorningBriefingCron.js.map +1 -0
  14. package/dist/src/features/chartOutput.d.ts +2 -0
  15. package/dist/src/features/chartOutput.js +35 -0
  16. package/dist/src/features/chartOutput.js.map +1 -0
  17. package/dist/src/features/dailyMorningBriefing/schema.d.ts +56 -0
  18. package/dist/src/features/dailyMorningBriefing/schema.js +22 -0
  19. package/dist/src/features/dailyMorningBriefing/schema.js.map +1 -0
  20. package/dist/src/features/dailyMorningBriefing/tools.d.ts +12 -0
  21. package/dist/src/features/dailyMorningBriefing/tools.js +204 -0
  22. package/dist/src/features/dailyMorningBriefing/tools.js.map +1 -0
  23. package/dist/src/features/deepReasoning/schema.d.ts +43 -0
  24. package/dist/src/features/deepReasoning/schema.js +17 -0
  25. package/dist/src/features/deepReasoning/schema.js.map +1 -0
  26. package/dist/src/features/deepReasoning/tools.d.ts +12 -0
  27. package/dist/src/features/deepReasoning/tools.js +163 -0
  28. package/dist/src/features/deepReasoning/tools.js.map +1 -0
  29. package/dist/src/features/index.d.ts +2 -1
  30. package/dist/src/features/index.js +9 -1
  31. package/dist/src/features/index.js.map +1 -1
  32. package/dist/src/features/informationVerification/schema.d.ts +43 -0
  33. package/dist/src/features/informationVerification/schema.js +17 -0
  34. package/dist/src/features/informationVerification/schema.js.map +1 -0
  35. package/dist/src/features/informationVerification/tools.d.ts +12 -0
  36. package/dist/src/features/informationVerification/tools.js +162 -0
  37. package/dist/src/features/informationVerification/tools.js.map +1 -0
  38. package/dist/src/features/notes/schema.d.ts +136 -39
  39. package/dist/src/features/notes/schema.js +13 -10
  40. package/dist/src/features/notes/schema.js.map +1 -1
  41. package/dist/src/features/notes/tools.d.ts +1 -0
  42. package/dist/src/features/notes/tools.js +47 -14
  43. package/dist/src/features/notes/tools.js.map +1 -1
  44. package/dist/src/features/pluginInfo/schema.d.ts +79 -0
  45. package/dist/src/features/pluginInfo/schema.js +14 -0
  46. package/dist/src/features/pluginInfo/schema.js.map +1 -0
  47. package/dist/src/features/pluginInfo/tools.d.ts +1 -0
  48. package/dist/src/features/pluginInfo/tools.js +157 -2
  49. package/dist/src/features/pluginInfo/tools.js.map +1 -1
  50. package/dist/src/features/profileLibrary/schema.d.ts +34 -6
  51. package/dist/src/features/profileLibrary/schema.js +1 -1
  52. package/dist/src/features/profileLibrary/schema.js.map +1 -1
  53. package/dist/src/features/stockAnalysis/schema.d.ts +224 -31
  54. package/dist/src/features/stockAnalysis/schema.js +76 -12
  55. package/dist/src/features/stockAnalysis/schema.js.map +1 -1
  56. package/dist/src/features/stockAnalysis/tools.d.ts +6 -4
  57. package/dist/src/features/stockAnalysis/tools.js +389 -44
  58. package/dist/src/features/stockAnalysis/tools.js.map +1 -1
  59. package/dist/src/features/stockBasic/schema.d.ts +149 -0
  60. package/dist/src/features/stockBasic/schema.js +26 -0
  61. package/dist/src/features/stockBasic/schema.js.map +1 -0
  62. package/dist/src/features/stockBasic/tools.d.ts +12 -0
  63. package/dist/src/features/stockBasic/tools.js +124 -0
  64. package/dist/src/features/stockBasic/tools.js.map +1 -0
  65. package/dist/src/features/watchlist/logic.d.ts +3 -3
  66. package/dist/src/features/watchlist/logic.js +47 -46
  67. package/dist/src/features/watchlist/logic.js.map +1 -1
  68. package/dist/src/features/watchlist/schema.d.ts +89 -54
  69. package/dist/src/features/watchlist/schema.js +7 -4
  70. package/dist/src/features/watchlist/schema.js.map +1 -1
  71. package/dist/src/features/watchlist/tools.d.ts +106 -59
  72. package/dist/src/features/watchlist/tools.js +182 -104
  73. package/dist/src/features/watchlist/tools.js.map +1 -1
  74. package/dist/src/openclawConfig.d.ts +6 -0
  75. package/dist/src/openclawConfig.js +74 -0
  76. package/dist/src/openclawConfig.js.map +1 -0
  77. package/dist/src/openclawConstants.d.ts +4 -0
  78. package/dist/src/openclawConstants.js +10 -0
  79. package/dist/src/openclawConstants.js.map +1 -0
  80. package/dist/src/runtime.js +20 -0
  81. package/dist/src/runtime.js.map +1 -1
  82. package/index.ts +52 -5
  83. package/openclaw.plugin.json +24 -0
  84. package/package.json +20 -5
  85. package/setup-api.ts +10 -0
  86. package/src/channel.ts +26 -25
  87. package/src/core/database.ts +447 -40
  88. package/src/dailyMorningBriefingCron.ts +129 -0
  89. package/src/features/chartOutput.ts +35 -0
  90. package/src/features/dailyMorningBriefing/schema.ts +38 -0
  91. package/src/features/dailyMorningBriefing/tools.ts +246 -0
  92. package/src/features/deepReasoning/schema.ts +22 -0
  93. package/src/features/deepReasoning/tools.ts +182 -0
  94. package/src/features/index.ts +11 -2
  95. package/src/features/informationVerification/schema.ts +22 -0
  96. package/src/features/informationVerification/tools.ts +181 -0
  97. package/src/features/notes/schema.ts +17 -12
  98. package/src/features/notes/tools.ts +54 -17
  99. package/src/features/pluginInfo/schema.ts +19 -0
  100. package/src/features/pluginInfo/tools.ts +173 -2
  101. package/src/features/profileLibrary/schema.ts +1 -1
  102. package/src/features/stockAnalysis/schema.ts +99 -17
  103. package/src/features/stockAnalysis/tools.ts +447 -49
  104. package/src/features/stockBasic/schema.ts +33 -0
  105. package/src/features/stockBasic/tools.ts +157 -0
  106. package/src/features/watchlist/logic.ts +56 -53
  107. package/src/features/watchlist/schema.ts +11 -6
  108. package/src/features/watchlist/tools.ts +191 -106
  109. package/src/openclawConfig.ts +101 -0
  110. package/src/openclawConstants.ts +11 -0
  111. package/src/runtime.ts +19 -0
@@ -1,10 +1,25 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { z } from "openclaw/plugin-sdk/zod";
2
+ import { z } from "zod";
3
3
  import { getDB } from "../../core/database.js";
4
4
  import { logger } from "../../core/logger.js";
5
5
  import { watchlistLogic } from "./logic.js";
6
- import { AddToWatchlistParamsSchema, GetWatchlistParamsSchema, SyncCategoriesParamsSchema, BatchUpdateSortOrdersParamsSchema } from "./schema.js";
6
+ import { AddToWatchlistParamsSchema, GetWatchlistParamsSchema, SyncCategoriesParamsSchema, BatchUpdateSortOrdersParamsSchema, GetIndustryListParamsSchema } from "./schema.js";
7
7
  let watchlistMutationQueue = Promise.resolve();
8
+ const GetWatchlistAgentToolSchema = {
9
+ type: "object",
10
+ additionalProperties: false,
11
+ properties: {
12
+ categoryId: { type: "string", description: "分类 ID,不传返回所有" },
13
+ categoryType: { type: "string", enum: ["industry", "theme"], description: "分类类型" }
14
+ }
15
+ };
16
+ const GetIndustryListAgentToolSchema = {
17
+ type: "object",
18
+ additionalProperties: false,
19
+ properties: {
20
+ type: { type: "string", enum: ["industry", "theme", ""], description: "分类类型:industry 行业,theme 主题,空字符串或不传表示全部" }
21
+ }
22
+ };
8
23
  function enqueueWatchlistMutation(task) {
9
24
  const previous = watchlistMutationQueue;
10
25
  let release;
@@ -27,11 +42,11 @@ function normalizeTags(input) {
27
42
  function normalizeWatchlistStock(stock) {
28
43
  return {
29
44
  ...stock,
30
- stockCode: watchlistLogic._normalizeStockCodeForCache(stock.stockCode, stock.exchange)
45
+ stock_code: watchlistLogic._normalizeStockCodeForCache(stock.stock_code, stock.exchange)
31
46
  };
32
47
  }
33
48
  function watchlistStockKey(stock) {
34
- return `${watchlistLogic._normalizeStockCodeForCache(stock.stockCode, stock.exchange)}:${stock.exchange}`;
49
+ return `${watchlistLogic._normalizeStockCodeForCache(stock.stock_code, stock.exchange)}:${stock.exchange}`;
35
50
  }
36
51
  function updateWatchlistTags(db, watchlistId, userId, industry, theme) {
37
52
  db.prepare("DELETE FROM watchlist_industry_items WHERE watchlistId = ? AND userId = ?").run(watchlistId, userId);
@@ -58,18 +73,83 @@ function updateWatchlistTags(db, watchlistId, userId, industry, theme) {
58
73
  }
59
74
  }
60
75
  function upsertStockClassificationCache(db, stock, classification) {
61
- const cacheCode = watchlistLogic._normalizeStockCodeForCache(stock.stockCode, stock.exchange);
62
- const legacyCode = stock.stockCode.trim().toUpperCase().replace(/\.(SH|SS|SZ|HK|US)$/i, "");
76
+ const cacheCode = watchlistLogic._normalizeStockCodeForCache(stock.stock_code, stock.exchange);
77
+ const legacyCode = stock.stock_code.trim().toUpperCase().replace(/\.(SH|SS|SZ|HK|US)$/i, "");
63
78
  db.prepare(`
64
- INSERT OR REPLACE INTO global_stock_metadata (stockCode, exchange, stockName, industryJson, themeJson)
79
+ INSERT OR REPLACE INTO stock_classification_cache (stock_code, exchange, stock_name, industry_classification, theme_classification)
65
80
  VALUES (?, ?, ?, ?, ?)
66
- `).run(cacheCode, stock.exchange, stock.stockName, JSON.stringify(classification.industry), JSON.stringify(classification.theme || []));
81
+ `).run(cacheCode, stock.exchange, stock.stock_name, JSON.stringify(classification.industry), JSON.stringify(classification.theme || []));
67
82
  if (legacyCode && legacyCode !== cacheCode) {
68
83
  db.prepare(`
69
- DELETE FROM global_stock_metadata WHERE stockCode = ? AND exchange = ?
84
+ DELETE FROM stock_classification_cache WHERE stock_code = ? AND exchange = ?
70
85
  `).run(legacyCode, stock.exchange);
71
86
  }
72
87
  }
88
+ function readWatchlistRows(db, args, userId) {
89
+ let query;
90
+ const params = [];
91
+ if (userId) {
92
+ params.push(userId);
93
+ if (args.categoryId && args.categoryType) {
94
+ const table = args.categoryType === "industry" ? "watchlist_industry_items" : "watchlist_theme_items";
95
+ query = `
96
+ SELECT w.*, ci.weight as relWeight
97
+ FROM watchlist w
98
+ JOIN ${table} ci ON w.id = ci.watchlistId
99
+ WHERE w.userId = ? AND w.isDeleted = 0 AND ci.categoryId = ?
100
+ ORDER BY w.sortOrder ASC
101
+ `;
102
+ params.push(args.categoryId);
103
+ }
104
+ else {
105
+ query = `
106
+ SELECT w.*
107
+ FROM watchlist w
108
+ WHERE w.userId = ? AND w.isDeleted = 0
109
+ ORDER BY w.sortOrder ASC
110
+ `;
111
+ }
112
+ }
113
+ else if (args.categoryId && args.categoryType) {
114
+ const table = args.categoryType === "industry" ? "watchlist_industry_items" : "watchlist_theme_items";
115
+ query = `
116
+ SELECT w.*, ci.weight as relWeight
117
+ FROM watchlist w
118
+ JOIN ${table} ci ON w.id = ci.watchlistId
119
+ WHERE w.isDeleted = 0 AND ci.categoryId = ?
120
+ ORDER BY w.userId ASC, w.sortOrder ASC
121
+ `;
122
+ params.push(args.categoryId);
123
+ }
124
+ else {
125
+ query = `
126
+ SELECT w.*
127
+ FROM watchlist w
128
+ WHERE w.isDeleted = 0
129
+ ORDER BY w.userId ASC, w.sortOrder ASC
130
+ `;
131
+ }
132
+ return db.prepare(query).all(...params);
133
+ }
134
+ function attachWatchlistTags(db, stocks) {
135
+ return stocks.map(stock => {
136
+ const industries = db.prepare(`
137
+ SELECT c.name FROM industry_theme_categories c
138
+ JOIN watchlist_industry_items i ON c.id = i.categoryId
139
+ WHERE i.watchlistId = ? ORDER BY i.weight DESC
140
+ `).all(stock.id);
141
+ const themes = db.prepare(`
142
+ SELECT c.name FROM industry_theme_categories c
143
+ JOIN watchlist_theme_items t ON c.id = t.categoryId
144
+ WHERE t.watchlistId = ? ORDER BY t.weight DESC
145
+ `).all(stock.id);
146
+ return {
147
+ ...stock,
148
+ industries: industries.map(i => i.name),
149
+ themes: themes.map(t => t.name)
150
+ };
151
+ });
152
+ }
73
153
  export const watchlistTools = {
74
154
  add_to_watchlist: {
75
155
  name: "add_to_watchlist",
@@ -84,8 +164,8 @@ export const watchlistTools = {
84
164
  }
85
165
  const db = getDB();
86
166
  const stock = normalizeWatchlistStock(args);
87
- const existingBeforeClassify = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stockCode = ? AND exchange = ?")
88
- .get(uId, stock.stockCode, stock.exchange);
167
+ const existingBeforeClassify = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stock_code = ? AND exchange = ?")
168
+ .get(uId, stock.stock_code, stock.exchange);
89
169
  if (existingBeforeClassify?.isDeleted === 0) {
90
170
  return JSON.stringify({ success: true, skipped: true, reason: "duplicate", id: existingBeforeClassify.id });
91
171
  }
@@ -95,7 +175,7 @@ export const watchlistTools = {
95
175
  }
96
176
  let classification;
97
177
  try {
98
- classification = await watchlistLogic.getStockClassification(ctx.runtime, stock.stockName, stock.stockCode, stock.exchange, uId);
178
+ classification = await watchlistLogic.getStockClassification(ctx.runtime, stock.stock_name, stock.stock_code, stock.exchange, uId);
99
179
  }
100
180
  catch (e) {
101
181
  return JSON.stringify({ success: false, error: e.message });
@@ -110,13 +190,13 @@ export const watchlistTools = {
110
190
  const sortRow = db.prepare("SELECT MAX(sortOrder) as max FROM watchlist WHERE userId=? AND isDeleted=0").get(uId);
111
191
  const nextOrder = (sortRow?.max ?? 0) + 1024;
112
192
  let watchlistId;
113
- const existingItem = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stockCode = ? AND exchange = ?").get(uId, stock.stockCode, stock.exchange);
193
+ const existingItem = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stock_code = ? AND exchange = ?").get(uId, stock.stock_code, stock.exchange);
114
194
  if (existingItem) {
115
195
  watchlistId = existingItem.id;
116
196
  if (existingItem.isDeleted === 1) {
117
197
  db.prepare(`
118
- UPDATE watchlist SET isDeleted = 0, stockName = ?, sortOrder = ?, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW') WHERE id = ?
119
- `).run(stock.stockName, nextOrder, watchlistId);
198
+ UPDATE watchlist SET isDeleted = 0, stock_name = ?, sortOrder = ?, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW') WHERE id = ?
199
+ `).run(stock.stock_name, nextOrder, watchlistId);
120
200
  }
121
201
  else {
122
202
  db.exec("ROLLBACK");
@@ -126,9 +206,9 @@ export const watchlistTools = {
126
206
  else {
127
207
  watchlistId = randomUUID();
128
208
  db.prepare(`
129
- INSERT INTO watchlist (id, userId, stockCode, stockName, exchange, market, sortOrder)
209
+ INSERT INTO watchlist (id, userId, stock_code, stock_name, exchange, market, sortOrder)
130
210
  VALUES (?, ?, ?, ?, ?, ?, ?)
131
- `).run(watchlistId, uId, stock.stockCode, stock.stockName, stock.exchange, stock.market, nextOrder);
211
+ `).run(watchlistId, uId, stock.stock_code, stock.stock_name, stock.exchange, stock.market, nextOrder);
132
212
  }
133
213
  upsertStockClassificationCache(db, stock, classification);
134
214
  updateWatchlistTags(db, watchlistId, uId, classification.industry, classification.theme);
@@ -165,7 +245,7 @@ export const watchlistTools = {
165
245
  const stock = normalizeWatchlistStock(rawStock);
166
246
  const key = watchlistStockKey(stock);
167
247
  if (inputSeen.has(key)) {
168
- skipped.push({ stockCode: stock.stockCode, exchange: stock.exchange, reason: "input_duplicate" });
248
+ skipped.push({ stock_code: stock.stock_code, exchange: stock.exchange, reason: "input_duplicate" });
169
249
  continue;
170
250
  }
171
251
  inputSeen.add(key);
@@ -173,10 +253,10 @@ export const watchlistTools = {
173
253
  }
174
254
  const stocksToAdd = [];
175
255
  for (const stock of uniqueStocks) {
176
- const existing = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stockCode = ? AND exchange = ?")
177
- .get(uId, stock.stockCode, stock.exchange);
256
+ const existing = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stock_code = ? AND exchange = ?")
257
+ .get(uId, stock.stock_code, stock.exchange);
178
258
  if (existing?.isDeleted === 0) {
179
- skipped.push({ stockCode: stock.stockCode, exchange: stock.exchange, reason: "duplicate", id: existing.id });
259
+ skipped.push({ stock_code: stock.stock_code, exchange: stock.exchange, reason: "duplicate", id: existing.id });
180
260
  }
181
261
  else {
182
262
  stocksToAdd.push(stock);
@@ -199,7 +279,7 @@ export const watchlistTools = {
199
279
  catch (e) {
200
280
  logger.warn({
201
281
  count: stocksToAdd.length,
202
- codes: stocksToAdd.map(stock => stock.stockCode),
282
+ codes: stocksToAdd.map(stock => stock.stock_code),
203
283
  error: e.message || String(e)
204
284
  }, "[Watchlist] batch_add_to_watchlist classification failed");
205
285
  return JSON.stringify({
@@ -221,28 +301,28 @@ export const watchlistTools = {
221
301
  currentMaxOrder = nextOrder;
222
302
  const classification = batchResults[i];
223
303
  if (!classification) {
224
- throw new Error(`行业/主题关系分析失败: ${stock.stockName}`);
304
+ throw new Error(`行业/主题关系分析失败: ${stock.stock_name}`);
225
305
  }
226
306
  let watchlistId;
227
- const existingItem = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stockCode = ? AND exchange = ?").get(uId, stock.stockCode, stock.exchange);
307
+ const existingItem = db.prepare("SELECT id, isDeleted FROM watchlist WHERE userId = ? AND stock_code = ? AND exchange = ?").get(uId, stock.stock_code, stock.exchange);
228
308
  if (existingItem) {
229
309
  watchlistId = existingItem.id;
230
310
  if (existingItem.isDeleted === 1) {
231
311
  db.prepare(`
232
- UPDATE watchlist SET isDeleted = 0, stockName = ?, sortOrder = ?, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW') WHERE id = ?
233
- `).run(stock.stockName, nextOrder, watchlistId);
312
+ UPDATE watchlist SET isDeleted = 0, stock_name = ?, sortOrder = ?, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW') WHERE id = ?
313
+ `).run(stock.stock_name, nextOrder, watchlistId);
234
314
  }
235
315
  else {
236
- skipped.push({ stockCode: stock.stockCode, exchange: stock.exchange, reason: "duplicate", id: watchlistId });
316
+ skipped.push({ stock_code: stock.stock_code, exchange: stock.exchange, reason: "duplicate", id: watchlistId });
237
317
  return;
238
318
  }
239
319
  }
240
320
  else {
241
321
  watchlistId = randomUUID();
242
322
  db.prepare(`
243
- INSERT INTO watchlist (id, userId, stockCode, stockName, exchange, market, sortOrder)
323
+ INSERT INTO watchlist (id, userId, stock_code, stock_name, exchange, market, sortOrder)
244
324
  VALUES (?, ?, ?, ?, ?, ?, ?)
245
- `).run(watchlistId, uId, stock.stockCode, stock.stockName, stock.exchange, stock.market, nextOrder);
325
+ `).run(watchlistId, uId, stock.stock_code, stock.stock_name, stock.exchange, stock.market, nextOrder);
246
326
  }
247
327
  results.push(watchlistId);
248
328
  writtenItems.push({ id: watchlistId, stock, classification });
@@ -278,12 +358,9 @@ export const watchlistTools = {
278
358
  db.exec("BEGIN TRANSACTION");
279
359
  try {
280
360
  const info = db.prepare(`
281
- UPDATE watchlist
282
- SET isDeleted = 1,
283
- updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
361
+ DELETE FROM watchlist
284
362
  WHERE id = ?
285
363
  AND userId = ?
286
- AND isDeleted = 0
287
364
  `).run(args.id, uId);
288
365
  if (info.changes > 0) {
289
366
  db.prepare("DELETE FROM watchlist_industry_items WHERE watchlistId = ? AND userId = ?").run(args.id, uId);
@@ -309,53 +386,47 @@ export const watchlistTools = {
309
386
  },
310
387
  get_watchlist: {
311
388
  name: "get_watchlist",
312
- description: "获取自选股列表",
313
- parameters: GetWatchlistParamsSchema,
314
- registerTool: false,
315
- execute: async (args, ctx) => {
389
+ label: "获取自选股",
390
+ description: "获取当前全部自选股列表及其行业、主题标签。",
391
+ parameters: GetWatchlistAgentToolSchema,
392
+ registerTool: true,
393
+ execute: async (rawArgs, ctx) => {
316
394
  try {
395
+ const args = GetWatchlistParamsSchema.parse(rawArgs ?? {});
317
396
  const db = getDB();
318
- const uId = String(ctx.userId);
319
- let query;
320
- let params = [uId];
321
- if (args.categoryId && args.categoryType) {
322
- const table = args.categoryType === "industry" ? "watchlist_industry_items" : "watchlist_theme_items";
323
- query = `
324
- SELECT w.*, ci.weight as relWeight
325
- FROM watchlist w
326
- JOIN ${table} ci ON w.id = ci.watchlistId
327
- WHERE w.userId = ? AND w.isDeleted = 0 AND ci.categoryId = ?
328
- ORDER BY w.sortOrder ASC
329
- `;
330
- params.push(args.categoryId);
397
+ const stocks = readWatchlistRows(db, args, ctx?.userId ? String(ctx.userId) : undefined);
398
+ const fullList = attachWatchlistTags(db, stocks);
399
+ return JSON.stringify({ success: true, data: fullList });
400
+ }
401
+ catch (e) {
402
+ return JSON.stringify({ success: false, error: e.message });
403
+ }
404
+ }
405
+ },
406
+ get_industry_list: {
407
+ name: "get_industry_list",
408
+ label: "拉取申万一级行业分类或主题板块列表",
409
+ description: "拉取申万一级行业分类或主题板块列表。",
410
+ parameters: GetIndustryListAgentToolSchema,
411
+ registerTool: true,
412
+ execute: async (rawArgs) => {
413
+ try {
414
+ const args = GetIndustryListParamsSchema.parse(rawArgs ?? {});
415
+ const db = getDB();
416
+ let query = "SELECT DISTINCT name FROM industry_theme_categories";
417
+ const params = [];
418
+ const conditions = [];
419
+ if (args.type && args.type !== "") {
420
+ conditions.push("type = ?");
421
+ params.push(args.type);
331
422
  }
332
- else {
333
- query = `
334
- SELECT w.*
335
- FROM watchlist w
336
- WHERE w.userId = ? AND w.isDeleted = 0
337
- ORDER BY w.sortOrder ASC
338
- `;
423
+ if (conditions.length > 0) {
424
+ query += ` WHERE ${conditions.join(" AND ")}`;
339
425
  }
340
- const stocks = db.prepare(query).all(...params);
341
- const fullList = stocks.map(stock => {
342
- const industries = db.prepare(`
343
- SELECT c.name FROM watchlist_categories c
344
- JOIN watchlist_industry_items i ON c.id = i.categoryId
345
- WHERE i.watchlistId = ? ORDER BY i.weight DESC
346
- `).all(stock.id);
347
- const themes = db.prepare(`
348
- SELECT c.name FROM watchlist_categories c
349
- JOIN watchlist_theme_items t ON c.id = t.categoryId
350
- WHERE t.watchlistId = ? ORDER BY t.weight DESC
351
- `).all(stock.id);
352
- return {
353
- ...stock,
354
- industries: industries.map(i => i.name),
355
- themes: themes.map(t => t.name)
356
- };
357
- });
358
- return JSON.stringify({ success: true, data: fullList });
426
+ query += " ORDER BY name ASC";
427
+ const rows = db.prepare(query).all(...params);
428
+ const data = rows.map(r => r.name);
429
+ return JSON.stringify({ success: true, data });
359
430
  }
360
431
  catch (e) {
361
432
  return JSON.stringify({ success: false, error: e.message });
@@ -372,15 +443,15 @@ export const watchlistTools = {
372
443
  const db = getDB();
373
444
  const uId = String(ctx.userId);
374
445
  const industryData = db.prepare(`
375
- SELECT c.name as category_name, i.weight, w.stockCode
376
- FROM watchlist_categories c
446
+ SELECT c.name as category_name, i.weight, w.stock_code
447
+ FROM industry_theme_categories c
377
448
  JOIN watchlist_industry_items i ON c.id = i.categoryId
378
449
  JOIN watchlist w ON i.watchlistId = w.id
379
450
  WHERE i.userId = ? AND w.isDeleted = 0
380
451
  `).all(uId);
381
452
  const themeData = db.prepare(`
382
- SELECT c.name as category_name, t.weight, w.stockCode
383
- FROM watchlist_categories c
453
+ SELECT c.name as category_name, t.weight, w.stock_code
454
+ FROM industry_theme_categories c
384
455
  JOIN watchlist_theme_items t ON c.id = t.categoryId
385
456
  JOIN watchlist w ON t.watchlistId = w.id
386
457
  WHERE t.userId = ? AND w.isDeleted = 0
@@ -391,8 +462,8 @@ export const watchlistTools = {
391
462
  const name = item.category_name;
392
463
  const existing = aggMap.get(name) || { category_name: name, weight_total: 0, stocks: [] };
393
464
  existing.weight_total += (item.weight || 0);
394
- if (!existing.stocks.includes(item.stockCode)) {
395
- existing.stocks.push(item.stockCode);
465
+ if (!existing.stocks.includes(item.stock_code)) {
466
+ existing.stocks.push(item.stock_code);
396
467
  }
397
468
  aggMap.set(name, existing);
398
469
  });
@@ -415,14 +486,14 @@ export const watchlistTools = {
415
486
  const uId = String(ctx.userId);
416
487
  const industries = db.prepare(`
417
488
  SELECT DISTINCT c.id, c.name, c.type, c.sortOrder
418
- FROM watchlist_categories c
489
+ FROM industry_theme_categories c
419
490
  JOIN watchlist_industry_items i ON c.id = i.categoryId
420
491
  WHERE i.userId = ?
421
492
  ORDER BY c.sortOrder ASC, c.name ASC
422
493
  `).all(uId);
423
494
  const themes = db.prepare(`
424
495
  SELECT DISTINCT c.id, c.name, c.type, c.sortOrder
425
- FROM watchlist_categories c
496
+ FROM industry_theme_categories c
426
497
  JOIN watchlist_theme_items t ON c.id = t.categoryId
427
498
  WHERE t.userId = ?
428
499
  ORDER BY c.sortOrder ASC, c.name ASC
@@ -450,7 +521,7 @@ export const watchlistTools = {
450
521
  const db = getDB();
451
522
  const uId = String(ctx.userId);
452
523
  try {
453
- const stocks = db.prepare("SELECT stockCode as code, stockName as name FROM watchlist WHERE userId = ? AND isDeleted = 0").all(uId);
524
+ const stocks = db.prepare("SELECT stock_code as code, stock_name as name FROM watchlist WHERE userId = ? AND isDeleted = 0").all(uId);
454
525
  if (stocks.length === 0)
455
526
  return JSON.stringify({ success: true, message: "没有可排序的股票" });
456
527
  const sortedResults = await watchlistLogic.applySmartSort(ctx.runtime, `sort-${uId}`, stocks);
@@ -458,7 +529,7 @@ export const watchlistTools = {
458
529
  db.exec("BEGIN TRANSACTION");
459
530
  const stmt = db.prepare(`
460
531
  UPDATE watchlist SET sortOrder = ?, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
461
- WHERE userId = ? AND stockCode = ? AND isDeleted = 0
532
+ WHERE userId = ? AND stock_code = ? AND isDeleted = 0
462
533
  `);
463
534
  sortedResults.forEach((item, i) => {
464
535
  const currentOrder = i * 10;
@@ -486,31 +557,38 @@ export const watchlistTools = {
486
557
  const uId = String(ctx.userId);
487
558
  db.exec("BEGIN TRANSACTION");
488
559
  try {
560
+ const existing = db.prepare("SELECT name, type FROM industry_theme_categories WHERE userId = ?").all(uId);
561
+ const existingSet = new Set(existing.map(row => `${row.name}:${row.type}`));
562
+ const stmt = db.prepare(`
563
+ INSERT INTO industry_theme_categories (id, remoteId, userId, name, type, weight, sortOrder)
564
+ VALUES (?, ?, ?, ?, ?, 0, 0)
565
+ ON CONFLICT(userId, remoteId) DO UPDATE SET name = excluded.name, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
566
+ ON CONFLICT(userId, name, type) DO UPDATE SET remoteId = excluded.remoteId, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
567
+ `);
489
568
  if (args.industries) {
490
569
  for (const name of args.industries) {
491
- db.prepare(`
492
- INSERT INTO watchlist_categories (id, remoteId, userId, name, type, weight, sortOrder)
493
- VALUES (?, ?, ?, ?, 'industry', 0, 0)
494
- ON CONFLICT(userId, remoteId) DO UPDATE SET name = excluded.name, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
495
- ON CONFLICT(userId, name, type) DO UPDATE SET remoteId = excluded.remoteId, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
496
- `).run(randomUUID(), name, uId, name);
570
+ const key = `${name}:industry`;
571
+ if (!existingSet.has(key)) {
572
+ stmt.run(randomUUID(), name, uId, name, 'industry');
573
+ existingSet.add(key);
574
+ }
497
575
  }
498
576
  }
499
577
  if (args.themes) {
500
578
  for (const name of args.themes) {
501
- db.prepare(`
502
- INSERT INTO watchlist_categories (id, remoteId, userId, name, type, weight, sortOrder)
503
- VALUES (?, ?, ?, ?, 'theme', 0, 0)
504
- ON CONFLICT(userId, remoteId) DO UPDATE SET name = excluded.name, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
505
- ON CONFLICT(userId, name, type) DO UPDATE SET remoteId = excluded.remoteId, updatedAt = STRFTIME('%Y-%m-%dT%H:%M:%fZ', 'NOW')
506
- `).run(randomUUID(), name, uId, name);
579
+ const key = `${name}:theme`;
580
+ if (!existingSet.has(key)) {
581
+ stmt.run(randomUUID(), name, uId, name, 'theme');
582
+ existingSet.add(key);
583
+ }
507
584
  }
508
585
  }
509
586
  db.exec("COMMIT");
510
587
  return JSON.stringify({ success: true });
511
588
  }
512
589
  catch (e) {
513
- db.exec("ROLLBACK");
590
+ if (db.inTransaction)
591
+ db.exec("ROLLBACK");
514
592
  return JSON.stringify({ success: false, error: e.message });
515
593
  }
516
594
  }
@@ -550,7 +628,7 @@ export const watchlistTools = {
550
628
  const db = getDB();
551
629
  const uId = String(ctx.userId);
552
630
  try {
553
- const stocks = db.prepare("SELECT stockName, stockCode, exchange, market FROM watchlist WHERE userId = ? AND isDeleted = 0").all(uId);
631
+ const stocks = db.prepare("SELECT stock_name, stock_code, exchange, market FROM watchlist WHERE userId = ? AND isDeleted = 0").all(uId);
554
632
  if (stocks.length > 30) {
555
633
  return JSON.stringify({ success: false, error: "自选股数量超过 30 只,暂不支持批量重置分类" });
556
634
  }
@@ -565,15 +643,15 @@ export const watchlistTools = {
565
643
  try {
566
644
  db.prepare("DELETE FROM watchlist_industry_items WHERE userId = ?").run(uId);
567
645
  db.prepare("DELETE FROM watchlist_theme_items WHERE userId = ?").run(uId);
568
- const userStocks = db.prepare("SELECT id, stockCode, exchange FROM watchlist WHERE userId = ? AND isDeleted = 0").all(uId);
646
+ const userStocks = db.prepare("SELECT id, stock_code, exchange FROM watchlist WHERE userId = ? AND isDeleted = 0").all(uId);
569
647
  batchResults.forEach((res, i) => {
570
648
  if (res) {
571
649
  const s = stocks[i];
572
- const match = userStocks.find(us => us.stockCode === s.stockCode && us.exchange === s.exchange);
650
+ const match = userStocks.find(us => us.stock_code === s.stock_code && us.exchange === s.exchange);
573
651
  if (match) {
574
652
  upsertStockClassificationCache(db, {
575
- stockName: s.stockName,
576
- stockCode: s.stockCode,
653
+ stock_name: s.stock_name,
654
+ stock_code: s.stock_code,
577
655
  exchange: s.exchange,
578
656
  market: s.market
579
657
  }, res);
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/features/watchlist/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/features/watchlist/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { OpenClawConfig } from "openclaw/plugin-sdk/core";
2
+ export type HedgehogAgentToolAllowMigration = {
3
+ config: OpenClawConfig;
4
+ changes: string[];
5
+ };
6
+ export declare function ensureRegisteredToolsAllowedInConfig(config: OpenClawConfig): HedgehogAgentToolAllowMigration | null;