@oomol-lab/open-connector 1.6.3 → 1.6.5

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 (108) hide show
  1. package/assets/open-connector/catalog/apps/aisa.json +568 -0
  2. package/assets/open-connector/catalog/apps/bilibili.json +2586 -0
  3. package/assets/open-connector/catalog/apps/bitwarden.json +1423 -0
  4. package/assets/open-connector/catalog/apps/cronfree.json +303 -0
  5. package/assets/open-connector/catalog/apps/cufinder.json +368 -0
  6. package/assets/open-connector/catalog/apps/feishu_app_bot.json +2 -2
  7. package/assets/open-connector/catalog/apps/gmail.json +73 -0
  8. package/assets/open-connector/catalog/apps/investoday_mcp.json +22228 -197
  9. package/assets/open-connector/catalog/apps/ixspy.json +2274 -0
  10. package/assets/open-connector/catalog/apps/jin10.json +1 -1
  11. package/assets/open-connector/catalog/apps/osv.json +663 -0
  12. package/assets/open-connector/catalog/apps/pdf_vector.json +329 -0
  13. package/assets/open-connector/catalog/apps/pulsetic.json +406 -0
  14. package/assets/open-connector/catalog/apps/shopee.json +1785 -0
  15. package/assets/open-connector/catalog/apps/slack.json +81 -0
  16. package/assets/open-connector/catalog/apps/slackbot.json +81 -0
  17. package/assets/open-connector/catalog/apps/speak_ai.json +360 -0
  18. package/assets/open-connector/catalog/apps/tongdaxin.json +11 -440
  19. package/assets/open-connector/catalog/apps/zyhub.json +1585 -0
  20. package/assets/open-connector/catalog/apps-index.json +1 -1
  21. package/package.json +1 -1
  22. package/src/core/json-schema.d.ts +5 -1
  23. package/src/core/json-schema.js +14 -2
  24. package/src/core/types.d.ts +9 -0
  25. package/src/oauth/oauth-credential-refresh-service.js +3 -1
  26. package/src/oauth/oauth-flow-service.js +17 -2
  27. package/src/oauth/oauth-token.d.ts +13 -0
  28. package/src/providers/action-contracts.generated.d.ts +16 -4
  29. package/src/providers/aisa/executors.d.ts +4 -0
  30. package/src/providers/aisa/executors.js +176 -0
  31. package/src/providers/bilibili/articles.d.ts +3 -0
  32. package/src/providers/bilibili/articles.js +369 -0
  33. package/src/providers/bilibili/executors.d.ts +8 -0
  34. package/src/providers/bilibili/executors.js +262 -0
  35. package/src/providers/bilibili/runtime.d.ts +95 -0
  36. package/src/providers/bilibili/runtime.js +238 -0
  37. package/src/providers/bilibili/upload.d.ts +14 -0
  38. package/src/providers/bilibili/upload.js +105 -0
  39. package/src/providers/bitwarden/executors.d.ts +3 -0
  40. package/src/providers/bitwarden/executors.js +146 -0
  41. package/src/providers/cronfree/executors.d.ts +4 -0
  42. package/src/providers/cronfree/executors.js +89 -0
  43. package/src/providers/cufinder/executors.d.ts +4 -0
  44. package/src/providers/cufinder/executors.js +105 -0
  45. package/src/providers/dropbox/executors.js +21 -3
  46. package/src/providers/elevenreader/runtime.js +6 -5
  47. package/src/providers/feishu_app_bot/scopes.js +1 -1
  48. package/src/providers/gmail/attachment-stream.d.ts +2 -0
  49. package/src/providers/gmail/attachment-stream.js +162 -0
  50. package/src/providers/gmail/executors.d.ts +3 -1
  51. package/src/providers/gmail/executors.js +53 -25
  52. package/src/providers/investoday_mcp/official-actions.js +19 -372
  53. package/src/providers/investoday_mcp/official-tool-types.d.ts +10 -0
  54. package/src/providers/investoday_mcp/official-tool-types.js +4 -0
  55. package/src/providers/investoday_mcp/official-tools/charts.d.ts +2 -0
  56. package/src/providers/investoday_mcp/official-tools/charts.js +32 -0
  57. package/src/providers/investoday_mcp/official-tools/fixed-income.d.ts +2 -0
  58. package/src/providers/investoday_mcp/official-tools/fixed-income.js +326 -0
  59. package/src/providers/investoday_mcp/official-tools/funds.d.ts +2 -0
  60. package/src/providers/investoday_mcp/official-tools/funds.js +1085 -0
  61. package/src/providers/investoday_mcp/official-tools/hong-kong.d.ts +2 -0
  62. package/src/providers/investoday_mcp/official-tools/hong-kong.js +275 -0
  63. package/src/providers/investoday_mcp/official-tools/indices-industries.d.ts +2 -0
  64. package/src/providers/investoday_mcp/official-tools/indices-industries.js +642 -0
  65. package/src/providers/investoday_mcp/official-tools/macro-calendar.d.ts +2 -0
  66. package/src/providers/investoday_mcp/official-tools/macro-calendar.js +398 -0
  67. package/src/providers/investoday_mcp/official-tools/other.d.ts +2 -0
  68. package/src/providers/investoday_mcp/official-tools/other.js +131 -0
  69. package/src/providers/investoday_mcp/official-tools/research-news.d.ts +2 -0
  70. package/src/providers/investoday_mcp/official-tools/research-news.js +302 -0
  71. package/src/providers/investoday_mcp/official-tools/stocks.d.ts +2 -0
  72. package/src/providers/investoday_mcp/official-tools/stocks.js +2829 -0
  73. package/src/providers/ixspy/executors.d.ts +3 -0
  74. package/src/providers/ixspy/executors.js +220 -0
  75. package/src/providers/mcp-client.d.ts +1 -0
  76. package/src/providers/mcp-client.js +41 -27
  77. package/src/providers/osv/executors.d.ts +2 -0
  78. package/src/providers/osv/executors.js +11 -0
  79. package/src/providers/osv/runtime.d.ts +9 -0
  80. package/src/providers/osv/runtime.js +66 -0
  81. package/src/providers/pdf_vector/executors.d.ts +4 -0
  82. package/src/providers/pdf_vector/executors.js +108 -0
  83. package/src/providers/provider-runtime.d.ts +3 -0
  84. package/src/providers/provider-runtime.js +4 -1
  85. package/src/providers/pulsetic/executors.d.ts +4 -0
  86. package/src/providers/pulsetic/executors.js +126 -0
  87. package/src/providers/registry.generated.js +12 -0
  88. package/src/providers/sellersprite_mcp/executors.js +2 -1
  89. package/src/providers/shopee/actions.d.ts +2 -0
  90. package/src/providers/shopee/actions.js +474 -0
  91. package/src/providers/shopee/executors.d.ts +3 -0
  92. package/src/providers/shopee/executors.js +85 -0
  93. package/src/providers/shopee/runtime.d.ts +79 -0
  94. package/src/providers/shopee/runtime.js +693 -0
  95. package/src/providers/slack/actions.js +17 -0
  96. package/src/providers/slack/runtime.js +62 -4
  97. package/src/providers/speak_ai/executors.d.ts +3 -0
  98. package/src/providers/speak_ai/executors.js +187 -0
  99. package/src/providers/tongdaxin/executors.js +5 -4
  100. package/src/providers/tongdaxin/named-action-output.js +3 -9
  101. package/src/providers/tongdaxin/named-action-routing.js +1 -1
  102. package/src/providers/tongdaxin/named-actions.js +1 -6
  103. package/src/providers/tushare/runtime.js +22 -9
  104. package/src/providers/twenty_crm/runtime.js +4 -2
  105. package/src/providers/zyhub/executors.d.ts +3 -0
  106. package/src/providers/zyhub/executors.js +240 -0
  107. package/src/server/files/transit-files.d.ts +3 -2
  108. package/src/server/files/transit-files.js +31 -35
@@ -0,0 +1,2829 @@
1
+ import { s } from "../../../core/json-schema.js";
2
+ import { investodayCodeDataOutputSchema } from "../official-tool-types.js";
3
+ // 此文件按 2026-09-21 官方 MCP tools/list 审核。
4
+ export const stocksOfficialTools = [
5
+ {
6
+ name: "list_stock_absorption_mergers",
7
+ toolName: "list_stock_absorption_mergers",
8
+ description: "List stock absorption mergers data from Investoday.",
9
+ operationType: "read",
10
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_absorption_mergers operation.", {
11
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_absorption_mergers.", {
12
+ minLength: 1,
13
+ }), ["2020-01-01"]),
14
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_absorption_mergers.", {
15
+ minLength: 1,
16
+ }), ["2025-01-01"]),
17
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
18
+ minItems: 1,
19
+ }), [["000001", "600519"]]),
20
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_absorption_mergers.", {
21
+ minimum: 1,
22
+ maximum: 500,
23
+ }), [10]),
24
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_absorption_mergers.", {
25
+ minimum: 1,
26
+ }), [1]),
27
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
28
+ "002594",
29
+ ]),
30
+ }, { required: [] }), ["stockCode", "stockCodes"]),
31
+ outputSchema: investodayCodeDataOutputSchema,
32
+ },
33
+ {
34
+ name: "list_stock_adjusted_quotes",
35
+ toolName: "list_stock_adjusted_quotes",
36
+ description: "Get forward-adjusted daily stock prices over a date range, including batch queries and pagination.",
37
+ operationType: "read",
38
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for list_stock_adjusted_quotes.", {
39
+ stockCode: s.nonEmptyString("One stock code. Supply exactly one of stockCode or stockCodes."),
40
+ stockCodes: s.array("Stock codes for a batch query. Supply exactly one of stockCode or stockCodes.", s.nonEmptyString("A stock code."), { minItems: 1 }),
41
+ beginDate: s.date("Start date in YYYY-MM-DD format; earliest supported date is 2020-01-01."),
42
+ endDate: s.date("End date in YYYY-MM-DD format."),
43
+ pageNum: s.integer("Page number, starting at 1.", { minimum: 1 }),
44
+ pageSize: s.integer("Records per page, from 1 to 500.", { minimum: 1, maximum: 500 }),
45
+ }, { required: [] }), ["stockCode", "stockCodes"]),
46
+ outputSchema: investodayCodeDataOutputSchema,
47
+ },
48
+ {
49
+ name: "list_stock_share_adj_factors",
50
+ toolName: "list_stock_share_adj_factors",
51
+ description: "List stock share adjusted factors data from Investoday.",
52
+ operationType: "read",
53
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_share_adj_factors operation.", {
54
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_share_adj_factors.", {
55
+ minLength: 1,
56
+ }), ["2020-01-01"]),
57
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_share_adj_factors.", {
58
+ minLength: 1,
59
+ }), ["2025-01-01"]),
60
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
61
+ minItems: 1,
62
+ }), [["000001", "600519"]]),
63
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_share_adj_factors.", {
64
+ minimum: 1,
65
+ maximum: 500,
66
+ }), [10]),
67
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_share_adj_factors.", {
68
+ minimum: 1,
69
+ }), [1]),
70
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
71
+ "002594",
72
+ ]),
73
+ }, { required: [] }), ["stockCode", "stockCodes"]),
74
+ outputSchema: investodayCodeDataOutputSchema,
75
+ },
76
+ {
77
+ name: "list_stock_all",
78
+ toolName: "list_stock_all",
79
+ description: "List stock all data from Investoday.",
80
+ operationType: "read",
81
+ inputSchema: s.object("Arguments for the Investoday list_stock_all operation.", {
82
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_all.", {
83
+ minimum: 1,
84
+ maximum: 500,
85
+ }), [10]),
86
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_all.", {
87
+ minimum: 1,
88
+ }), [1]),
89
+ }, { required: [] }),
90
+ outputSchema: investodayCodeDataOutputSchema,
91
+ },
92
+ {
93
+ name: "list_stock_balance_sheet",
94
+ toolName: "list_stock_balance_sheet",
95
+ description: "List stock balance sheet data from Investoday.",
96
+ operationType: "read",
97
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_balance_sheet operation.", {
98
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_balance_sheet.", {
99
+ minLength: 1,
100
+ }), ["2020-01-01"]),
101
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_balance_sheet.", {
102
+ minLength: 1,
103
+ }), ["2025-01-01"]),
104
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
105
+ minItems: 1,
106
+ }), [["000001", "600519"]]),
107
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_balance_sheet.", {
108
+ minimum: 1,
109
+ maximum: 500,
110
+ }), [10]),
111
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_balance_sheet.", {
112
+ minimum: 1,
113
+ }), [1]),
114
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
115
+ "002594",
116
+ ]),
117
+ }, { required: [] }), ["stockCode", "stockCodes"]),
118
+ outputSchema: investodayCodeDataOutputSchema,
119
+ },
120
+ {
121
+ name: "list_stk_balan_sheet_pit",
122
+ toolName: "list_stk_balan_sheet_pit",
123
+ description: "List stock balan sheet pit data from Investoday.",
124
+ operationType: "read",
125
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stk_balan_sheet_pit operation.", {
126
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stk_balan_sheet_pit.", {
127
+ minLength: 1,
128
+ }), ["2020-01-01"]),
129
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stk_balan_sheet_pit.", {
130
+ minLength: 1,
131
+ }), ["2025-01-01"]),
132
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
133
+ minItems: 1,
134
+ }), [["000001", "600519"]]),
135
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_balan_sheet_pit.", {
136
+ minimum: 1,
137
+ maximum: 500,
138
+ }), [10]),
139
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_balan_sheet_pit.", {
140
+ minimum: 1,
141
+ }), [1]),
142
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
143
+ "002594",
144
+ ]),
145
+ }, { required: [] }), ["stockCode", "stockCodes"]),
146
+ outputSchema: investodayCodeDataOutputSchema,
147
+ },
148
+ {
149
+ name: "get_stock_basic_info",
150
+ toolName: "get_stock_basic_info",
151
+ description: "Get basic information for one or multiple Shanghai, Shenzhen or Beijing stocks.",
152
+ operationType: "read",
153
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for get_stock_basic_info.", {
154
+ stockCode: s.nonEmptyString("One stock code. Supply exactly one of stockCode or stockCodes."),
155
+ stockCodes: s.array("Stock codes for a batch query. Supply exactly one of stockCode or stockCodes.", s.nonEmptyString("A stock code."), { minItems: 1 }),
156
+ pageNum: s.integer("Page number, starting at 1.", { minimum: 1 }),
157
+ pageSize: s.integer("Records per page, from 1 to 500.", { minimum: 1, maximum: 500 }),
158
+ }, { required: [] }), ["stockCode", "stockCodes"]),
159
+ outputSchema: investodayCodeDataOutputSchema,
160
+ },
161
+ {
162
+ name: "list_stock_capital_changes",
163
+ toolName: "list_stock_capital_changes",
164
+ description: "List stock capital changes data from Investoday.",
165
+ operationType: "read",
166
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_capital_changes operation.", {
167
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_capital_changes.", {
168
+ minLength: 1,
169
+ }), ["2020-01-01"]),
170
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_capital_changes.", {
171
+ minLength: 1,
172
+ }), ["2025-01-01"]),
173
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
174
+ minItems: 1,
175
+ }), [["000001", "600519"]]),
176
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_capital_changes.", {
177
+ minimum: 1,
178
+ maximum: 500,
179
+ }), [10]),
180
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_capital_changes.", {
181
+ minimum: 1,
182
+ }), [1]),
183
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
184
+ "002594",
185
+ ]),
186
+ }, { required: [] }), ["stockCode", "stockCodes"]),
187
+ outputSchema: investodayCodeDataOutputSchema,
188
+ },
189
+ {
190
+ name: "list_stock_cash_flows",
191
+ toolName: "list_stock_cash_flows",
192
+ description: "List stock cash flows data from Investoday.",
193
+ operationType: "read",
194
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_cash_flows operation.", {
195
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows.", {
196
+ minLength: 1,
197
+ }), ["2020-01-01"]),
198
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows.", { minLength: 1 }), ["2022-01-01"]),
199
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
200
+ minItems: 1,
201
+ }), [["000001", "600519"]]),
202
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_cash_flows.", {
203
+ minimum: 1,
204
+ maximum: 500,
205
+ }), [10]),
206
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_cash_flows.", { minimum: 1 }), [1]),
207
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
208
+ "002594",
209
+ ]),
210
+ }, { required: [] }), ["stockCode", "stockCodes"]),
211
+ outputSchema: investodayCodeDataOutputSchema,
212
+ },
213
+ {
214
+ name: "list_stock_cash_flows_pit",
215
+ toolName: "list_stock_cash_flows_pit",
216
+ description: "List stock cash flows pit data from Investoday.",
217
+ operationType: "read",
218
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_cash_flows_pit operation.", {
219
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows_pit.", {
220
+ minLength: 1,
221
+ }), ["2020-01-01"]),
222
+ endDate: s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows_pit.", {
223
+ minLength: 1,
224
+ }),
225
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
226
+ minItems: 1,
227
+ }), [["000001", "600519"]]),
228
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_cash_flows_pit.", {
229
+ minimum: 1,
230
+ maximum: 500,
231
+ }), [10]),
232
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_cash_flows_pit.", {
233
+ minimum: 1,
234
+ }), [1]),
235
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
236
+ "002594",
237
+ ]),
238
+ }, { required: [] }), ["stockCode", "stockCodes"]),
239
+ outputSchema: investodayCodeDataOutputSchema,
240
+ },
241
+ {
242
+ name: "get_company_profiles",
243
+ toolName: "get_company_profiles",
244
+ description: "Get company profiles data from Investoday.",
245
+ operationType: "read",
246
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_company_profiles operation.", {
247
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
248
+ minItems: 1,
249
+ }), [["000001", "600519"]]),
250
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_company_profiles.", {
251
+ minimum: 1,
252
+ maximum: 500,
253
+ }), [10]),
254
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_company_profiles.", { minimum: 1 }), [1]),
255
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
256
+ "000001",
257
+ ]),
258
+ }, { required: [] }), ["stockCode", "stockCodes"]),
259
+ outputSchema: investodayCodeDataOutputSchema,
260
+ },
261
+ {
262
+ name: "list_stock_core_mgmt_changes",
263
+ toolName: "list_stock_core_mgmt_changes",
264
+ description: "List stock core mgmt changes data from Investoday.",
265
+ operationType: "read",
266
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_core_mgmt_changes operation.", {
267
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_core_mgmt_changes.", {
268
+ minLength: 1,
269
+ }), ["2020-01-01"]),
270
+ positionStatus: s.withExamples(s.stringEnum("Position status Accepted by Investoday for list_stock_core_mgmt_changes.", ["1", "0", "-1"]), ["1"]),
271
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_core_mgmt_changes.", {
272
+ minLength: 1,
273
+ }), ["2025-01-01"]),
274
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
275
+ minItems: 1,
276
+ }), [["000001", "600519"]]),
277
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_core_mgmt_changes.", {
278
+ minimum: 1,
279
+ maximum: 500,
280
+ }), [10]),
281
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_core_mgmt_changes.", {
282
+ minimum: 1,
283
+ }), [1]),
284
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
285
+ "002594",
286
+ ]),
287
+ }, { required: [] }), ["stockCode", "stockCodes"]),
288
+ outputSchema: investodayCodeDataOutputSchema,
289
+ },
290
+ {
291
+ name: "list_stocks_dividends",
292
+ toolName: "list_stocks_dividends",
293
+ description: "List stocks dividends data from Investoday.",
294
+ operationType: "read",
295
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stocks_dividends operation.", {
296
+ beginDate: s.withExamples(s.nonEmptyString("Start date in YYYY-MM-DD format Accepted by Investoday for list_stocks_dividends."), ["2025-01-01"]),
297
+ endDate: s.withExamples(s.nonEmptyString("End date in YYYY-MM-DD format Accepted by Investoday for list_stocks_dividends."), ["2025-01-31"]),
298
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
299
+ minItems: 1,
300
+ }), [["000001", "600519"]]),
301
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stocks_dividends.", {
302
+ minimum: 1,
303
+ maximum: 500,
304
+ }), [10]),
305
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stocks_dividends.", { minimum: 1 }), [1]),
306
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
307
+ "002594",
308
+ ]),
309
+ }, { required: [] }), ["stockCode", "stockCodes"]),
310
+ outputSchema: investodayCodeDataOutputSchema,
311
+ },
312
+ {
313
+ name: "list_stock_earnings_bulletins",
314
+ toolName: "list_stock_earnings_bulletins",
315
+ description: "List stock earnings bulletins data from Investoday.",
316
+ operationType: "read",
317
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_earnings_bulletins operation.", {
318
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_earnings_bulletins.", {
319
+ minLength: 1,
320
+ }), ["2020-01-01"]),
321
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_earnings_bulletins.", {
322
+ minLength: 1,
323
+ }), ["2020-01-01"]),
324
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
325
+ minItems: 1,
326
+ }), [["000001", "600519"]]),
327
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_earnings_bulletins.", {
328
+ minimum: 1,
329
+ maximum: 500,
330
+ }), [10]),
331
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_earnings_bulletins.", {
332
+ minimum: 1,
333
+ }), [1]),
334
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
335
+ "002594",
336
+ ]),
337
+ }, { required: [] }), ["stockCode", "stockCodes"]),
338
+ outputSchema: investodayCodeDataOutputSchema,
339
+ },
340
+ {
341
+ name: "list_stock_executive_shareholding_change",
342
+ toolName: "list_stock_executive_shareholding_change",
343
+ description: "List stock executive shareholding change data from Investoday.",
344
+ operationType: "read",
345
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_executive_shareholding_change operation.", {
346
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_executive_shareholding_change.", { minLength: 1 }), ["2020-01-01"]),
347
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_executive_shareholding_change.", { minLength: 1 }), ["2025-01-01"]),
348
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
349
+ minItems: 1,
350
+ }), [["000001", "600519"]]),
351
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_executive_shareholding_change.", { minimum: 1, maximum: 500 }), [10]),
352
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_executive_shareholding_change.", { minimum: 1 }), [1]),
353
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
354
+ "002594",
355
+ ]),
356
+ }, { required: [] }), ["stockCode", "stockCodes"]),
357
+ outputSchema: investodayCodeDataOutputSchema,
358
+ },
359
+ {
360
+ name: "get_stock_former_names",
361
+ toolName: "get_stock_former_names",
362
+ description: "Get stock former names data from Investoday.",
363
+ operationType: "read",
364
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stock_former_names operation.", {
365
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
366
+ minItems: 1,
367
+ }), [["000001", "600519"]]),
368
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_former_names.", {
369
+ minimum: 1,
370
+ maximum: 500,
371
+ }), [10]),
372
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_former_names.", { minimum: 1 }), [1]),
373
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
374
+ "000001",
375
+ ]),
376
+ }, { required: [] }), ["stockCode", "stockCodes"]),
377
+ outputSchema: investodayCodeDataOutputSchema,
378
+ },
379
+ {
380
+ name: "list_stock_freeze_details",
381
+ toolName: "list_stock_freeze_details",
382
+ description: "List stock freeze details data from Investoday.",
383
+ operationType: "read",
384
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_freeze_details operation.", {
385
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_freeze_details.", {
386
+ minLength: 1,
387
+ }), ["2020-01-01"]),
388
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_freeze_details.", {
389
+ minLength: 1,
390
+ }), ["2025-01-01"]),
391
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
392
+ minItems: 1,
393
+ }), [["000001", "600519"]]),
394
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_freeze_details.", {
395
+ minimum: 1,
396
+ maximum: 500,
397
+ }), [10]),
398
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_freeze_details.", {
399
+ minimum: 1,
400
+ }), [1]),
401
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
402
+ "002594",
403
+ ]),
404
+ }, { required: [] }), ["stockCode", "stockCodes"]),
405
+ outputSchema: investodayCodeDataOutputSchema,
406
+ },
407
+ {
408
+ name: "list_stock_holder_cnt",
409
+ toolName: "list_stock_holder_cnt",
410
+ description: "List stock holder cnt data from Investoday.",
411
+ operationType: "read",
412
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_holder_cnt operation.", {
413
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_holder_cnt.", {
414
+ minLength: 1,
415
+ }), ["2020-01-01"]),
416
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_holder_cnt.", { minLength: 1 }), ["2025-01-01"]),
417
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
418
+ minItems: 1,
419
+ }), [["000001", "600519"]]),
420
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_holder_cnt.", {
421
+ minimum: 1,
422
+ maximum: 500,
423
+ }), [10]),
424
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_holder_cnt.", { minimum: 1 }), [1]),
425
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
426
+ "002594",
427
+ ]),
428
+ }, { required: [] }), ["stockCode", "stockCodes"]),
429
+ outputSchema: investodayCodeDataOutputSchema,
430
+ },
431
+ {
432
+ name: "list_stock_income_statements",
433
+ toolName: "list_stock_income_statements",
434
+ description: "List stock income statements data from Investoday.",
435
+ operationType: "read",
436
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_income_statements operation.", {
437
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_income_statements.", {
438
+ minLength: 1,
439
+ }), ["2020-01-01"]),
440
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_income_statements.", {
441
+ minLength: 1,
442
+ }), ["2025-03-30"]),
443
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
444
+ minItems: 1,
445
+ }), [["000001", "600519"]]),
446
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_income_statements.", {
447
+ minimum: 1,
448
+ maximum: 500,
449
+ }), [10]),
450
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_income_statements.", {
451
+ minimum: 1,
452
+ }), [1]),
453
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
454
+ "002594",
455
+ ]),
456
+ }, { required: [] }), ["stockCode", "stockCodes"]),
457
+ outputSchema: investodayCodeDataOutputSchema,
458
+ },
459
+ {
460
+ name: "list_stk_income_state_pit",
461
+ toolName: "list_stk_income_state_pit",
462
+ description: "List stock income state pit data from Investoday.",
463
+ operationType: "read",
464
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stk_income_state_pit operation.", {
465
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stk_income_state_pit.", {
466
+ minLength: 1,
467
+ }), ["2020-01-01"]),
468
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stk_income_state_pit.", {
469
+ minLength: 1,
470
+ }), ["2025-01-01"]),
471
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
472
+ minItems: 1,
473
+ }), [["000001", "600519"]]),
474
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_income_state_pit.", {
475
+ minimum: 1,
476
+ maximum: 500,
477
+ }), [10]),
478
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_income_state_pit.", {
479
+ minimum: 1,
480
+ }), [1]),
481
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
482
+ "002594",
483
+ ]),
484
+ }, { required: [] }), ["stockCode", "stockCodes"]),
485
+ outputSchema: investodayCodeDataOutputSchema,
486
+ },
487
+ {
488
+ name: "get_stock_industries",
489
+ toolName: "get_stock_industries",
490
+ description: "Get stock industries data from Investoday.",
491
+ operationType: "read",
492
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stock_industries operation.", {
493
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
494
+ minItems: 1,
495
+ }), [["000001", "600519"]]),
496
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_industries.", {
497
+ minimum: 1,
498
+ maximum: 500,
499
+ }), [10]),
500
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_industries.", { minimum: 1 }), [1]),
501
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
502
+ "000001",
503
+ ]),
504
+ }, { required: [] }), ["stockCode", "stockCodes"]),
505
+ outputSchema: investodayCodeDataOutputSchema,
506
+ },
507
+ {
508
+ name: "list_stock_institutional_holdings_stats",
509
+ toolName: "list_stock_institutional_holdings_stats",
510
+ description: "List stock institutional holdings stats data from Investoday.",
511
+ operationType: "read",
512
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_institutional_holdings_stats operation.", {
513
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_institutional_holdings_stats.", { minLength: 1 }), ["2020-01-01"]),
514
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_institutional_holdings_stats.", { minLength: 1 }), ["2025-01-01"]),
515
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
516
+ minItems: 1,
517
+ }), [["000001", "600519"]]),
518
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_institutional_holdings_stats.", { minimum: 1, maximum: 500 }), [10]),
519
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_institutional_holdings_stats.", { minimum: 1 }), [1]),
520
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
521
+ "002594",
522
+ ]),
523
+ }, { required: [] }), ["stockCode", "stockCodes"]),
524
+ outputSchema: investodayCodeDataOutputSchema,
525
+ },
526
+ {
527
+ name: "list_stock_major_contracts",
528
+ toolName: "list_stock_major_contracts",
529
+ description: "List stock major contracts data from Investoday.",
530
+ operationType: "read",
531
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_major_contracts operation.", {
532
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_major_contracts.", {
533
+ minLength: 1,
534
+ }), ["2020-01-01"]),
535
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_major_contracts.", {
536
+ minLength: 1,
537
+ }), ["2025-01-01"]),
538
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
539
+ minItems: 1,
540
+ }), [["000001", "600519"]]),
541
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_major_contracts.", {
542
+ minimum: 1,
543
+ maximum: 500,
544
+ }), [10]),
545
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_major_contracts.", {
546
+ minimum: 1,
547
+ }), [1]),
548
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
549
+ "002594",
550
+ ]),
551
+ }, { required: [] }), ["stockCode", "stockCodes"]),
552
+ outputSchema: investodayCodeDataOutputSchema,
553
+ },
554
+ {
555
+ name: "get_stock_margin_securities",
556
+ toolName: "get_stock_margin_securities",
557
+ description: "Get stock margin securities data from Investoday.",
558
+ operationType: "read",
559
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stock_margin_securities operation.", {
560
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
561
+ minItems: 1,
562
+ }), [["000001", "600519"]]),
563
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_margin_securities.", {
564
+ minimum: 1,
565
+ maximum: 500,
566
+ }), [10]),
567
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_margin_securities.", {
568
+ minimum: 1,
569
+ }), [1]),
570
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
571
+ "000001",
572
+ ]),
573
+ }, { required: [] }), ["stockCode", "stockCodes"]),
574
+ outputSchema: investodayCodeDataOutputSchema,
575
+ },
576
+ {
577
+ name: "list_stock_management_dirs",
578
+ toolName: "list_stock_management_dirs",
579
+ description: "List stock management dirs data from Investoday.",
580
+ operationType: "read",
581
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_management_dirs operation.", {
582
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_management_dirs.", {
583
+ minLength: 1,
584
+ }), ["2020-01-01"]),
585
+ positionStatus: s.withExamples(s.stringEnum("Position status Accepted by Investoday for list_stock_management_dirs.", ["1", "0", "-1"]), ["1"]),
586
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_management_dirs.", {
587
+ minLength: 1,
588
+ }), ["2025-01-01"]),
589
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
590
+ minItems: 1,
591
+ }), [["000001", "600519"]]),
592
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_management_dirs.", {
593
+ minimum: 1,
594
+ maximum: 500,
595
+ }), [10]),
596
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_management_dirs.", {
597
+ minimum: 1,
598
+ }), [1]),
599
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
600
+ "002594",
601
+ ]),
602
+ }, { required: [] }), ["stockCode", "stockCodes"]),
603
+ outputSchema: investodayCodeDataOutputSchema,
604
+ },
605
+ {
606
+ name: "list_stock_offerings",
607
+ toolName: "list_stock_offerings",
608
+ description: "List stock offerings data from Investoday.",
609
+ operationType: "read",
610
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_offerings operation.", {
611
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_offerings.", {
612
+ minLength: 1,
613
+ }), ["2020-01-01"]),
614
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_offerings.", { minLength: 1 }), ["2025-01-01"]),
615
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
616
+ minItems: 1,
617
+ }), [["000001", "600519"]]),
618
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_offerings.", {
619
+ minimum: 1,
620
+ maximum: 500,
621
+ }), [10]),
622
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_offerings.", { minimum: 1 }), [1]),
623
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
624
+ "002594",
625
+ ]),
626
+ }, { required: [] }), ["stockCode", "stockCodes"]),
627
+ outputSchema: investodayCodeDataOutputSchema,
628
+ },
629
+ {
630
+ name: "list_stock_pledge_details",
631
+ toolName: "list_stock_pledge_details",
632
+ description: "List stock pledge details data from Investoday.",
633
+ operationType: "read",
634
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_pledge_details operation.", {
635
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_pledge_details.", {
636
+ minLength: 1,
637
+ }), ["2020-01-01"]),
638
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_pledge_details.", {
639
+ minLength: 1,
640
+ }), ["2025-01-01"]),
641
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
642
+ minItems: 1,
643
+ }), [["000001", "600519"]]),
644
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_pledge_details.", {
645
+ minimum: 1,
646
+ maximum: 500,
647
+ }), [10]),
648
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_pledge_details.", {
649
+ minimum: 1,
650
+ }), [1]),
651
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
652
+ "002594",
653
+ ]),
654
+ }, { required: [] }), ["stockCode", "stockCodes"]),
655
+ outputSchema: investodayCodeDataOutputSchema,
656
+ },
657
+ {
658
+ name: "list_stocks_public_offering_place",
659
+ toolName: "list_stocks_public_offering_place",
660
+ description: "List stocks public offering place data from Investoday.",
661
+ operationType: "read",
662
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stocks_public_offering_place operation.", {
663
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stocks_public_offering_place.", {
664
+ minLength: 1,
665
+ }), ["2020-01-01"]),
666
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stocks_public_offering_place.", {
667
+ minLength: 1,
668
+ }), ["2025-01-01"]),
669
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
670
+ minItems: 1,
671
+ }), [["000001", "600519"]]),
672
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stocks_public_offering_place.", {
673
+ minimum: 1,
674
+ maximum: 500,
675
+ }), [10]),
676
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stocks_public_offering_place.", {
677
+ minimum: 1,
678
+ }), [1]),
679
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
680
+ "002594",
681
+ ]),
682
+ }, { required: [] }), ["stockCode", "stockCodes"]),
683
+ outputSchema: investodayCodeDataOutputSchema,
684
+ },
685
+ {
686
+ name: "list_stock_related_transactions",
687
+ toolName: "list_stock_related_transactions",
688
+ description: "List stock related transactions data from Investoday.",
689
+ operationType: "read",
690
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_related_transactions operation.", {
691
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_related_transactions.", {
692
+ minLength: 1,
693
+ }), ["2020-01-01"]),
694
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_related_transactions.", {
695
+ minLength: 1,
696
+ }), ["2025-01-01"]),
697
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
698
+ minItems: 1,
699
+ }), [["000001", "600519"]]),
700
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_related_transactions.", {
701
+ minimum: 1,
702
+ maximum: 500,
703
+ }), [10]),
704
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_related_transactions.", {
705
+ minimum: 1,
706
+ }), [1]),
707
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
708
+ "002594",
709
+ ]),
710
+ }, { required: [] }), ["stockCode", "stockCodes"]),
711
+ outputSchema: investodayCodeDataOutputSchema,
712
+ },
713
+ {
714
+ name: "list_stock_report_schema",
715
+ toolName: "list_stock_report_schema",
716
+ description: "List stock report schema data from Investoday.",
717
+ operationType: "read",
718
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_report_schema operation.", {
719
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_report_schema.", {
720
+ minLength: 1,
721
+ }), ["2020-01-01"]),
722
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_report_schema.", {
723
+ minLength: 1,
724
+ }), ["2025-01-01"]),
725
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
726
+ minItems: 1,
727
+ }), [["000001", "600519"]]),
728
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_report_schema.", {
729
+ minimum: 1,
730
+ maximum: 500,
731
+ }), [10]),
732
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_report_schema.", {
733
+ minimum: 1,
734
+ }), [1]),
735
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
736
+ "002594",
737
+ ]),
738
+ }, { required: [] }), ["stockCode", "stockCodes"]),
739
+ outputSchema: investodayCodeDataOutputSchema,
740
+ },
741
+ {
742
+ name: "list_stock_repurchase_plans",
743
+ toolName: "list_stock_repurchase_plans",
744
+ description: "List stock repurchase plans data from Investoday.",
745
+ operationType: "read",
746
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_repurchase_plans operation.", {
747
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_repurchase_plans.", {
748
+ minLength: 1,
749
+ }), ["2020-01-01"]),
750
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_repurchase_plans.", {
751
+ minLength: 1,
752
+ }), ["2025-01-01"]),
753
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
754
+ minItems: 1,
755
+ }), [["000001", "600519"]]),
756
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_repurchase_plans.", {
757
+ minimum: 1,
758
+ maximum: 500,
759
+ }), [10]),
760
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_repurchase_plans.", {
761
+ minimum: 1,
762
+ }), [1]),
763
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
764
+ "002594",
765
+ ]),
766
+ }, { required: [] }), ["stockCode", "stockCodes"]),
767
+ outputSchema: investodayCodeDataOutputSchema,
768
+ },
769
+ {
770
+ name: "list_stocks_rights_issue_res",
771
+ toolName: "list_stocks_rights_issue_res",
772
+ description: "List stocks rights issue res data from Investoday.",
773
+ operationType: "read",
774
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stocks_rights_issue_res operation.", {
775
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stocks_rights_issue_res.", {
776
+ minLength: 1,
777
+ }), ["2020-01-01"]),
778
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stocks_rights_issue_res.", {
779
+ minLength: 1,
780
+ }), ["2025-01-01"]),
781
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
782
+ minItems: 1,
783
+ }), [["000001", "600519"]]),
784
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stocks_rights_issue_res.", {
785
+ minimum: 1,
786
+ maximum: 500,
787
+ }), [10]),
788
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stocks_rights_issue_res.", {
789
+ minimum: 1,
790
+ }), [1]),
791
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
792
+ "002594",
793
+ ]),
794
+ }, { required: [] }), ["stockCode", "stockCodes"]),
795
+ outputSchema: investodayCodeDataOutputSchema,
796
+ },
797
+ {
798
+ name: "get_stock_rights_issues",
799
+ toolName: "get_stock_rights_issues",
800
+ description: "Get stock rights issues data from Investoday.",
801
+ operationType: "read",
802
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stock_rights_issues operation.", {
803
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for get_stock_rights_issues.", {
804
+ minLength: 1,
805
+ }), ["2020-01-01"]),
806
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for get_stock_rights_issues.", {
807
+ minLength: 1,
808
+ }), ["2025-01-01"]),
809
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
810
+ minItems: 1,
811
+ }), [["000001", "600519"]]),
812
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_rights_issues.", {
813
+ minimum: 1,
814
+ maximum: 500,
815
+ }), [10]),
816
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_rights_issues.", { minimum: 1 }), [1]),
817
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
818
+ "002594",
819
+ ]),
820
+ }, { required: [] }), ["stockCode", "stockCodes"]),
821
+ outputSchema: investodayCodeDataOutputSchema,
822
+ },
823
+ {
824
+ name: "list_stock_special_notices",
825
+ toolName: "list_stock_special_notices",
826
+ description: "List stock special notices data from Investoday.",
827
+ operationType: "read",
828
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_special_notices operation.", {
829
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_special_notices.", {
830
+ minLength: 1,
831
+ }), ["2020-01-01"]),
832
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_special_notices.", {
833
+ minLength: 1,
834
+ }), ["2025-01-01"]),
835
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
836
+ minItems: 1,
837
+ }), [["000001", "600519"]]),
838
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_special_notices.", {
839
+ minimum: 1,
840
+ maximum: 500,
841
+ }), [10]),
842
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_special_notices.", {
843
+ minimum: 1,
844
+ }), [1]),
845
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
846
+ "000001",
847
+ ]),
848
+ }, { required: [] }), ["stockCode", "stockCodes"]),
849
+ outputSchema: investodayCodeDataOutputSchema,
850
+ },
851
+ {
852
+ name: "list_stock_tender_offers",
853
+ toolName: "list_stock_tender_offers",
854
+ description: "List stock tender offers data from Investoday.",
855
+ operationType: "read",
856
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_tender_offers operation.", {
857
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_tender_offers.", {
858
+ minLength: 1,
859
+ }), ["2020-01-01"]),
860
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_tender_offers.", {
861
+ minLength: 1,
862
+ }), ["2025-01-01"]),
863
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
864
+ minItems: 1,
865
+ }), [["000001", "600519"]]),
866
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_tender_offers.", {
867
+ minimum: 1,
868
+ maximum: 500,
869
+ }), [10]),
870
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_tender_offers.", {
871
+ minimum: 1,
872
+ }), [1]),
873
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
874
+ "002594",
875
+ ]),
876
+ }, { required: [] }), ["stockCode", "stockCodes"]),
877
+ outputSchema: investodayCodeDataOutputSchema,
878
+ },
879
+ {
880
+ name: "list_stock_top10_circulating_shareh",
881
+ toolName: "list_stock_top10_circulating_shareh",
882
+ description: "List stock top10 circulating shareh data from Investoday.",
883
+ operationType: "read",
884
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_top10_circulating_shareh operation.", {
885
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_top10_circulating_shareh.", {
886
+ minLength: 1,
887
+ }), ["2020-01-01"]),
888
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_top10_circulating_shareh.", {
889
+ minLength: 1,
890
+ }), ["2025-01-01"]),
891
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
892
+ minItems: 1,
893
+ }), [["000001", "600519"]]),
894
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_top10_circulating_shareh.", {
895
+ minimum: 1,
896
+ maximum: 500,
897
+ }), [10]),
898
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_top10_circulating_shareh.", {
899
+ minimum: 1,
900
+ }), [1]),
901
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
902
+ "002594",
903
+ ]),
904
+ }, { required: [] }), ["stockCode", "stockCodes"]),
905
+ outputSchema: investodayCodeDataOutputSchema,
906
+ },
907
+ {
908
+ name: "list_stock_unadjusted_quotes",
909
+ toolName: "list_stock_unadjusted_quotes",
910
+ description: "List stock unadjusted quotes data from Investoday.",
911
+ operationType: "read",
912
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_unadjusted_quotes operation.", {
913
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_unadjusted_quotes.", {
914
+ minLength: 1,
915
+ }), ["2020-01-01"]),
916
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_unadjusted_quotes.", {
917
+ minLength: 1,
918
+ }), ["2025-01-01"]),
919
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
920
+ minItems: 1,
921
+ }), [["000001", "600519"]]),
922
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_unadjusted_quotes.", {
923
+ minimum: 1,
924
+ maximum: 500,
925
+ }), [10]),
926
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_unadjusted_quotes.", {
927
+ minimum: 1,
928
+ }), [1]),
929
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
930
+ "002594",
931
+ ]),
932
+ }, { required: [] }), ["stockCode", "stockCodes"]),
933
+ outputSchema: investodayCodeDataOutputSchema,
934
+ },
935
+ {
936
+ name: "list_stock_audit_opinion",
937
+ toolName: "list_stock_audit_opinion",
938
+ description: "List stock audit opinion data from Investoday.",
939
+ operationType: "read",
940
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_audit_opinion operation.", {
941
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_audit_opinion.", {
942
+ minLength: 1,
943
+ }), ["2020-01-01"]),
944
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_audit_opinion.", {
945
+ minLength: 1,
946
+ }), ["2020-01-01"]),
947
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
948
+ minItems: 1,
949
+ }), [["000001", "600519"]]),
950
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_audit_opinion.", {
951
+ minimum: 1,
952
+ maximum: 500,
953
+ }), [10]),
954
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_audit_opinion.", {
955
+ minimum: 1,
956
+ }), [1]),
957
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
958
+ "002594",
959
+ ]),
960
+ }, { required: [] }), ["stockCode", "stockCodes"]),
961
+ outputSchema: investodayCodeDataOutputSchema,
962
+ },
963
+ {
964
+ name: "list_stock_balance_sheet_q",
965
+ toolName: "list_stock_balance_sheet_q",
966
+ description: "List stock balance sheet quarterly data from Investoday.",
967
+ operationType: "read",
968
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_balance_sheet_q operation.", {
969
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_balance_sheet_q.", {
970
+ minLength: 1,
971
+ }), ["2020-01-01"]),
972
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_balance_sheet_q.", {
973
+ minLength: 1,
974
+ }), ["2025-01-01"]),
975
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
976
+ minItems: 1,
977
+ }), [["000001", "600519"]]),
978
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_balance_sheet_q.", {
979
+ minimum: 1,
980
+ maximum: 500,
981
+ }), [10]),
982
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_balance_sheet_q.", {
983
+ minimum: 1,
984
+ }), [1]),
985
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
986
+ "002594",
987
+ ]),
988
+ }, { required: [] }), ["stockCode", "stockCodes"]),
989
+ outputSchema: investodayCodeDataOutputSchema,
990
+ },
991
+ {
992
+ name: "list_stk_balance_sht_ttm",
993
+ toolName: "list_stk_balance_sht_ttm",
994
+ description: "List stock balance sht ttm data from Investoday.",
995
+ operationType: "read",
996
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stk_balance_sht_ttm operation.", {
997
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stk_balance_sht_ttm.", {
998
+ minLength: 1,
999
+ }), ["2020-01-01"]),
1000
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stk_balance_sht_ttm.", {
1001
+ minLength: 1,
1002
+ }), ["2025-01-01"]),
1003
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1004
+ minItems: 1,
1005
+ }), [["000001", "600519"]]),
1006
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_balance_sht_ttm.", {
1007
+ minimum: 1,
1008
+ maximum: 500,
1009
+ }), [10]),
1010
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_balance_sht_ttm.", {
1011
+ minimum: 1,
1012
+ }), [1]),
1013
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1014
+ "002594",
1015
+ ]),
1016
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1017
+ outputSchema: investodayCodeDataOutputSchema,
1018
+ },
1019
+ {
1020
+ name: "list_stock_block_trades",
1021
+ toolName: "list_stock_block_trades",
1022
+ description: "List stock block trades data from Investoday.",
1023
+ operationType: "read",
1024
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_block_trades operation.", {
1025
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_block_trades.", {
1026
+ minLength: 1,
1027
+ }), ["2020-01-01"]),
1028
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_block_trades.", {
1029
+ minLength: 1,
1030
+ }), ["2025-01-01"]),
1031
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1032
+ minItems: 1,
1033
+ }), [["000001", "600519"]]),
1034
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_block_trades.", {
1035
+ minimum: 1,
1036
+ maximum: 500,
1037
+ }), [10]),
1038
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_block_trades.", { minimum: 1 }), [1]),
1039
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1040
+ "002594",
1041
+ ]),
1042
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1043
+ outputSchema: investodayCodeDataOutputSchema,
1044
+ },
1045
+ {
1046
+ name: "list_stock_cash_flows_q",
1047
+ toolName: "list_stock_cash_flows_q",
1048
+ description: "List stock cash flows quarterly data from Investoday.",
1049
+ operationType: "read",
1050
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_cash_flows_q operation.", {
1051
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows_q.", {
1052
+ minLength: 1,
1053
+ }), ["2020-01-01"]),
1054
+ endDate: s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows_q.", {
1055
+ minLength: 1,
1056
+ }),
1057
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1058
+ minItems: 1,
1059
+ }), [["000001", "600519"]]),
1060
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_cash_flows_q.", {
1061
+ minimum: 1,
1062
+ maximum: 500,
1063
+ }), [10]),
1064
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_cash_flows_q.", { minimum: 1 }), [1]),
1065
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1066
+ "002594",
1067
+ ]),
1068
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1069
+ outputSchema: investodayCodeDataOutputSchema,
1070
+ },
1071
+ {
1072
+ name: "list_stock_cash_flows_ttm",
1073
+ toolName: "list_stock_cash_flows_ttm",
1074
+ description: "List stock cash flows ttm data from Investoday.",
1075
+ operationType: "read",
1076
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_cash_flows_ttm operation.", {
1077
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows_ttm.", {
1078
+ minLength: 1,
1079
+ }), ["2020-01-01"]),
1080
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_cash_flows_ttm.", {
1081
+ minLength: 1,
1082
+ }), ["2025-01-01"]),
1083
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1084
+ minItems: 1,
1085
+ }), [["000001", "600519"]]),
1086
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_cash_flows_ttm.", {
1087
+ minimum: 1,
1088
+ maximum: 500,
1089
+ }), [10]),
1090
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_cash_flows_ttm.", {
1091
+ minimum: 1,
1092
+ }), [1]),
1093
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1094
+ "002594",
1095
+ ]),
1096
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1097
+ outputSchema: investodayCodeDataOutputSchema,
1098
+ },
1099
+ {
1100
+ name: "list_stock_concept_classifications",
1101
+ toolName: "list_stock_concept_classifications",
1102
+ description: "List stock concept classifications data from Investoday.",
1103
+ operationType: "read",
1104
+ inputSchema: s.object("Arguments for the Investoday list_stock_concept_classifications operation.", {
1105
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_concept_classifications.", {
1106
+ minLength: 1,
1107
+ }), ["2025-01-01"]),
1108
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_concept_classifications.", {
1109
+ minLength: 1,
1110
+ }), ["2025-01-01"]),
1111
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_concept_classifications.", {
1112
+ minimum: 1,
1113
+ maximum: 500,
1114
+ }), [10]),
1115
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_concept_classifications.", {
1116
+ minimum: 1,
1117
+ }), [1]),
1118
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for list_stock_concept_classifications."), ["000001"]),
1119
+ }, { required: ["stockCode"] }),
1120
+ outputSchema: investodayCodeDataOutputSchema,
1121
+ },
1122
+ {
1123
+ name: "list_stock_daily_fund_flows",
1124
+ toolName: "list_stock_daily_fund_flows",
1125
+ description: "List stock daily fund flows data from Investoday.",
1126
+ operationType: "read",
1127
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_daily_fund_flows operation.", {
1128
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_daily_fund_flows.", {
1129
+ minLength: 1,
1130
+ }), ["2020-01-01"]),
1131
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_daily_fund_flows.", {
1132
+ minLength: 1,
1133
+ }), ["2025-01-01"]),
1134
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1135
+ minItems: 1,
1136
+ }), [["000001", "600519"]]),
1137
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_daily_fund_flows.", {
1138
+ minimum: 1,
1139
+ maximum: 500,
1140
+ }), [10]),
1141
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_daily_fund_flows.", {
1142
+ minimum: 1,
1143
+ }), [1]),
1144
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1145
+ "002594",
1146
+ ]),
1147
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1148
+ outputSchema: investodayCodeDataOutputSchema,
1149
+ },
1150
+ {
1151
+ name: "list_stk_dragon_tiger_broke_details",
1152
+ toolName: "list_stk_dragon_tiger_broke_details",
1153
+ description: "List stock dragon tiger broke details data from Investoday.",
1154
+ operationType: "read",
1155
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stk_dragon_tiger_broke_details operation.", {
1156
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stk_dragon_tiger_broke_details.", {
1157
+ minLength: 1,
1158
+ }), ["2020-01-01"]),
1159
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stk_dragon_tiger_broke_details.", {
1160
+ minLength: 1,
1161
+ }), ["2025-01-01"]),
1162
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1163
+ minItems: 1,
1164
+ }), [["000001", "600519"]]),
1165
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_dragon_tiger_broke_details.", {
1166
+ minimum: 1,
1167
+ maximum: 500,
1168
+ }), [10]),
1169
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_dragon_tiger_broke_details.", {
1170
+ minimum: 1,
1171
+ }), [1]),
1172
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1173
+ "002594",
1174
+ ]),
1175
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1176
+ outputSchema: investodayCodeDataOutputSchema,
1177
+ },
1178
+ {
1179
+ name: "list_stock_dragon_tiger_details",
1180
+ toolName: "list_stock_dragon_tiger_details",
1181
+ description: "List stock dragon tiger details data from Investoday.",
1182
+ operationType: "read",
1183
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_dragon_tiger_details operation.", {
1184
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_dragon_tiger_details.", {
1185
+ minLength: 1,
1186
+ }), ["2020-01-01"]),
1187
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_dragon_tiger_details.", {
1188
+ minLength: 1,
1189
+ }), ["2025-01-01"]),
1190
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1191
+ minItems: 1,
1192
+ }), [["000001", "600519"]]),
1193
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_dragon_tiger_details.", {
1194
+ minimum: 1,
1195
+ maximum: 500,
1196
+ }), [10]),
1197
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_dragon_tiger_details.", {
1198
+ minimum: 1,
1199
+ }), [1]),
1200
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1201
+ "002594",
1202
+ ]),
1203
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1204
+ outputSchema: investodayCodeDataOutputSchema,
1205
+ },
1206
+ {
1207
+ name: "list_stk_dupont_analysis",
1208
+ toolName: "list_stk_dupont_analysis",
1209
+ description: "List stock dupont analysis data from Investoday.",
1210
+ operationType: "read",
1211
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stk_dupont_analysis operation.", {
1212
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stk_dupont_analysis.", {
1213
+ minLength: 1,
1214
+ }), ["2020-01-01"]),
1215
+ endDate: s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stk_dupont_analysis.", {
1216
+ minLength: 1,
1217
+ }),
1218
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1219
+ minItems: 1,
1220
+ }), [["000001", "600519"]]),
1221
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_dupont_analysis.", {
1222
+ minimum: 1,
1223
+ maximum: 500,
1224
+ }), [10]),
1225
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_dupont_analysis.", {
1226
+ minimum: 1,
1227
+ }), [1]),
1228
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1229
+ "002594",
1230
+ ]),
1231
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1232
+ outputSchema: investodayCodeDataOutputSchema,
1233
+ },
1234
+ {
1235
+ name: "list_stock_fin_derivative_inds",
1236
+ toolName: "list_stock_fin_derivative_inds",
1237
+ description: "List stock financial derivative indicators data from Investoday.",
1238
+ operationType: "read",
1239
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_fin_derivative_inds operation.", {
1240
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_derivative_inds.", {
1241
+ minLength: 1,
1242
+ }), ["2020-01-01"]),
1243
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_derivative_inds.", {
1244
+ minLength: 1,
1245
+ }), ["2025-01-01"]),
1246
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1247
+ minItems: 1,
1248
+ }), [["000001", "600519"]]),
1249
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_fin_derivative_inds.", {
1250
+ minimum: 1,
1251
+ maximum: 500,
1252
+ }), [10]),
1253
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_fin_derivative_inds.", {
1254
+ minimum: 1,
1255
+ }), [1]),
1256
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1257
+ "002594",
1258
+ ]),
1259
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1260
+ outputSchema: investodayCodeDataOutputSchema,
1261
+ },
1262
+ {
1263
+ name: "list_stock_fin_derivative_inds_q",
1264
+ toolName: "list_stock_fin_derivative_inds_q",
1265
+ description: "List stock financial derivative indicators quarterly data from Investoday.",
1266
+ operationType: "read",
1267
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_fin_derivative_inds_q operation.", {
1268
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_derivative_inds_q.", {
1269
+ minLength: 1,
1270
+ }), ["2020-01-01"]),
1271
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_derivative_inds_q.", {
1272
+ minLength: 1,
1273
+ }), ["2025-01-01"]),
1274
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1275
+ minItems: 1,
1276
+ }), [["000001", "600519"]]),
1277
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_fin_derivative_inds_q.", {
1278
+ minimum: 1,
1279
+ maximum: 500,
1280
+ }), [10]),
1281
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_fin_derivative_inds_q.", {
1282
+ minimum: 1,
1283
+ }), [1]),
1284
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1285
+ "002594",
1286
+ ]),
1287
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1288
+ outputSchema: investodayCodeDataOutputSchema,
1289
+ },
1290
+ {
1291
+ name: "list_stock_fin_derivative_inds_ttm",
1292
+ toolName: "list_stock_fin_derivative_inds_ttm",
1293
+ description: "List stock financial derivative indicators ttm data from Investoday.",
1294
+ operationType: "read",
1295
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_fin_derivative_inds_ttm operation.", {
1296
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_derivative_inds_ttm.", {
1297
+ minLength: 1,
1298
+ }), ["2020-01-01"]),
1299
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_derivative_inds_ttm.", {
1300
+ minLength: 1,
1301
+ }), ["2025-01-01"]),
1302
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1303
+ minItems: 1,
1304
+ }), [["000001", "600519"]]),
1305
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_fin_derivative_inds_ttm.", {
1306
+ minimum: 1,
1307
+ maximum: 500,
1308
+ }), [10]),
1309
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_fin_derivative_inds_ttm.", {
1310
+ minimum: 1,
1311
+ }), [1]),
1312
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1313
+ "002594",
1314
+ ]),
1315
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1316
+ outputSchema: investodayCodeDataOutputSchema,
1317
+ },
1318
+ {
1319
+ name: "list_stk_fin_ind_sw_rnk_q",
1320
+ toolName: "list_stk_fin_ind_sw_rnk_q",
1321
+ description: "List stock financial indicator sw rnk quarterly data from Investoday.",
1322
+ operationType: "read",
1323
+ inputSchema: s.object("Arguments for the Investoday list_stk_fin_ind_sw_rnk_q operation.", {
1324
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stk_fin_ind_sw_rnk_q.", {
1325
+ minLength: 1,
1326
+ }), ["2020-01-01"]),
1327
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stk_fin_ind_sw_rnk_q.", {
1328
+ minLength: 1,
1329
+ }), ["2025-03-30"]),
1330
+ stockCodes: s.withExamples(s.array("Stock codes Accepted by Investoday for list_stk_fin_ind_sw_rnk_q.", s.string("One stockCode value."), { minItems: 1 }), [["000001", "600519"]]),
1331
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_fin_ind_sw_rnk_q.", {
1332
+ minimum: 1,
1333
+ maximum: 500,
1334
+ }), [10]),
1335
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_fin_ind_sw_rnk_q.", { minimum: 1 }), [1]),
1336
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for list_stk_fin_ind_sw_rnk_q."), ["002594"]),
1337
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_stk_fin_ind_sw_rnk_q."), ["640000"]),
1338
+ }, { required: [] }),
1339
+ outputSchema: investodayCodeDataOutputSchema,
1340
+ },
1341
+ {
1342
+ name: "list_fin_ind_cash_coll_q",
1343
+ toolName: "list_fin_ind_cash_coll_q",
1344
+ description: "List financial indicator cash coll quarterly data from Investoday.",
1345
+ operationType: "read",
1346
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_cash_coll_q operation.", {
1347
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_cash_coll_q.", {
1348
+ minLength: 1,
1349
+ }), ["2020-01-01"]),
1350
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_cash_coll_q.", {
1351
+ minLength: 1,
1352
+ }), ["2025-01-01"]),
1353
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1354
+ minItems: 1,
1355
+ }), [["000001", "600519"]]),
1356
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_cash_coll_q.", {
1357
+ minimum: 1,
1358
+ maximum: 500,
1359
+ }), [10]),
1360
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_cash_coll_q.", {
1361
+ minimum: 1,
1362
+ }), [1]),
1363
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1364
+ "002594",
1365
+ ]),
1366
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1367
+ outputSchema: investodayCodeDataOutputSchema,
1368
+ },
1369
+ {
1370
+ name: "list_fin_ind_operating_q",
1371
+ toolName: "list_fin_ind_operating_q",
1372
+ description: "List financial indicator operating quarterly data from Investoday.",
1373
+ operationType: "read",
1374
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_operating_q operation.", {
1375
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_operating_q.", {
1376
+ minLength: 1,
1377
+ }), ["2020-01-01"]),
1378
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_operating_q.", {
1379
+ minLength: 1,
1380
+ }), ["2025-01-01"]),
1381
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1382
+ minItems: 1,
1383
+ }), [["000001", "600519"]]),
1384
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_operating_q.", {
1385
+ minimum: 1,
1386
+ maximum: 500,
1387
+ }), [10]),
1388
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_operating_q.", {
1389
+ minimum: 1,
1390
+ }), [1]),
1391
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1392
+ "002594",
1393
+ ]),
1394
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1395
+ outputSchema: investodayCodeDataOutputSchema,
1396
+ },
1397
+ {
1398
+ name: "list_fin_ind_profit_q",
1399
+ toolName: "list_fin_ind_profit_q",
1400
+ description: "List financial indicator profit quarterly data from Investoday.",
1401
+ operationType: "read",
1402
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_profit_q operation.", {
1403
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_profit_q.", {
1404
+ minLength: 1,
1405
+ }), ["2020-01-01"]),
1406
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_profit_q.", { minLength: 1 }), ["2025-01-01"]),
1407
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1408
+ minItems: 1,
1409
+ }), [["000001", "600519"]]),
1410
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_profit_q.", {
1411
+ minimum: 1,
1412
+ maximum: 500,
1413
+ }), [10]),
1414
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_profit_q.", { minimum: 1 }), [1]),
1415
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1416
+ "002594",
1417
+ ]),
1418
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1419
+ outputSchema: investodayCodeDataOutputSchema,
1420
+ },
1421
+ {
1422
+ name: "list_fin_ind_profit_ttm",
1423
+ toolName: "list_fin_ind_profit_ttm",
1424
+ description: "List financial indicator profit ttm data from Investoday.",
1425
+ operationType: "read",
1426
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_profit_ttm operation.", {
1427
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_profit_ttm.", {
1428
+ minLength: 1,
1429
+ }), ["2020-01-01"]),
1430
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_profit_ttm.", {
1431
+ minLength: 1,
1432
+ }), ["2025-01-01"]),
1433
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1434
+ minItems: 1,
1435
+ }), [["000001", "600519"]]),
1436
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_profit_ttm.", {
1437
+ minimum: 1,
1438
+ maximum: 500,
1439
+ }), [10]),
1440
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_profit_ttm.", { minimum: 1 }), [1]),
1441
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1442
+ "002594",
1443
+ ]),
1444
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1445
+ outputSchema: investodayCodeDataOutputSchema,
1446
+ },
1447
+ {
1448
+ name: "list_fin_ind_solvency_q",
1449
+ toolName: "list_fin_ind_solvency_q",
1450
+ description: "List financial indicator solvency quarterly data from Investoday.",
1451
+ operationType: "read",
1452
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_solvency_q operation.", {
1453
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_solvency_q.", {
1454
+ minLength: 1,
1455
+ }), ["2020-01-01"]),
1456
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_solvency_q.", {
1457
+ minLength: 1,
1458
+ }), ["2025-01-01"]),
1459
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1460
+ minItems: 1,
1461
+ }), [["000001", "600519"]]),
1462
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_solvency_q.", {
1463
+ minimum: 1,
1464
+ maximum: 500,
1465
+ }), [10]),
1466
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_solvency_q.", { minimum: 1 }), [1]),
1467
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1468
+ "002594",
1469
+ ]),
1470
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1471
+ outputSchema: investodayCodeDataOutputSchema,
1472
+ },
1473
+ {
1474
+ name: "list_fin_ind_solvency_ttm",
1475
+ toolName: "list_fin_ind_solvency_ttm",
1476
+ description: "List financial indicator solvency ttm data from Investoday.",
1477
+ operationType: "read",
1478
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_solvency_ttm operation.", {
1479
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_solvency_ttm.", {
1480
+ minLength: 1,
1481
+ }), ["2020-01-01"]),
1482
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_solvency_ttm.", {
1483
+ minLength: 1,
1484
+ }), ["2025-01-01"]),
1485
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1486
+ minItems: 1,
1487
+ }), [["000001", "600519"]]),
1488
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_solvency_ttm.", {
1489
+ minimum: 1,
1490
+ maximum: 500,
1491
+ }), [10]),
1492
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_solvency_ttm.", {
1493
+ minimum: 1,
1494
+ }), [1]),
1495
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1496
+ "002594",
1497
+ ]),
1498
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1499
+ outputSchema: investodayCodeDataOutputSchema,
1500
+ },
1501
+ {
1502
+ name: "get_stock_finance_strength",
1503
+ toolName: "get_stock_finance_strength",
1504
+ description: "Get stock finance strength data from Investoday.",
1505
+ operationType: "read",
1506
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_strength operation.", {
1507
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_strength."),
1508
+ }, { required: ["stockCode"] }),
1509
+ outputSchema: investodayCodeDataOutputSchema,
1510
+ },
1511
+ {
1512
+ name: "get_fin_health_history",
1513
+ toolName: "get_fin_health_history",
1514
+ description: "Get financial health history data from Investoday.",
1515
+ operationType: "read",
1516
+ inputSchema: s.object("Arguments for the Investoday get_fin_health_history operation.", {
1517
+ type: s.stringEnum("Investoday query type Accepted by Investoday for get_fin_health_history.", ["1", "2"]),
1518
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_fin_health_history."),
1519
+ }, { required: ["stockCode", "type"] }),
1520
+ outputSchema: investodayCodeDataOutputSchema,
1521
+ },
1522
+ {
1523
+ name: "get_stock_finance_growth_ability",
1524
+ toolName: "get_stock_finance_growth_ability",
1525
+ description: "Get stock finance growth ability data from Investoday.",
1526
+ operationType: "read",
1527
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_growth_ability operation.", {
1528
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_growth_ability."),
1529
+ }, { required: ["stockCode"] }),
1530
+ outputSchema: investodayCodeDataOutputSchema,
1531
+ },
1532
+ {
1533
+ name: "get_stock_finance_growth_ability_hist",
1534
+ toolName: "get_stock_finance_growth_ability_hist",
1535
+ description: "Get stock finance growth ability historical data from Investoday.",
1536
+ operationType: "read",
1537
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_growth_ability_hist operation.", {
1538
+ type: s.stringEnum("Investoday query type Accepted by Investoday for get_stock_finance_growth_ability_hist.", [
1539
+ "1",
1540
+ "2",
1541
+ ]),
1542
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_growth_ability_hist."),
1543
+ }, { required: ["stockCode", "type"] }),
1544
+ outputSchema: investodayCodeDataOutputSchema,
1545
+ },
1546
+ {
1547
+ name: "get_stock_finance_industry_compare",
1548
+ toolName: "get_stock_finance_industry_compare",
1549
+ description: "Get stock finance industry compare data from Investoday.",
1550
+ operationType: "read",
1551
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_industry_compare operation.", {
1552
+ type: s.stringEnum("Investoday query type Accepted by Investoday for get_stock_finance_industry_compare.", [
1553
+ "indu1",
1554
+ "indu2",
1555
+ "indu3",
1556
+ ]),
1557
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_industry_compare."),
1558
+ key: s.stringEnum("Search keyword Accepted by Investoday for get_stock_finance_industry_compare.", [
1559
+ "f2030",
1560
+ "f2040",
1561
+ "f2050",
1562
+ "f2060",
1563
+ "f2070",
1564
+ "f2080",
1565
+ "f2090",
1566
+ "f2100",
1567
+ "f2190",
1568
+ "f2200",
1569
+ "f2210",
1570
+ "f2220",
1571
+ "f2230",
1572
+ "f2240",
1573
+ "f2180Ext",
1574
+ "f2250",
1575
+ "f2260",
1576
+ "f2270",
1577
+ "f2280",
1578
+ "f2290",
1579
+ "f2300Ext2",
1580
+ "f2310",
1581
+ "f2320",
1582
+ "f2330",
1583
+ "f2340",
1584
+ "f2350",
1585
+ "f2370",
1586
+ "f2380",
1587
+ "f2390",
1588
+ "f2440Ext2",
1589
+ "f2450Ext2",
1590
+ "f2460Ext2",
1591
+ "f2470",
1592
+ "f2480",
1593
+ ]),
1594
+ }, { required: ["stockCode", "type", "key"] }),
1595
+ outputSchema: investodayCodeDataOutputSchema,
1596
+ },
1597
+ {
1598
+ name: "get_stock_finance_profit_ability",
1599
+ toolName: "get_stock_finance_profit_ability",
1600
+ description: "Get stock finance profit ability data from Investoday.",
1601
+ operationType: "read",
1602
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_profit_ability operation.", {
1603
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_profit_ability."),
1604
+ }, { required: ["stockCode"] }),
1605
+ outputSchema: investodayCodeDataOutputSchema,
1606
+ },
1607
+ {
1608
+ name: "get_stock_finance_profit_ability_hist",
1609
+ toolName: "get_stock_finance_profit_ability_hist",
1610
+ description: "Get stock finance profit ability historical data from Investoday.",
1611
+ operationType: "read",
1612
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_profit_ability_hist operation.", {
1613
+ type: s.stringEnum("Investoday query type Accepted by Investoday for get_stock_finance_profit_ability_hist.", [
1614
+ "1",
1615
+ "2",
1616
+ ]),
1617
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_profit_ability_hist."),
1618
+ }, { required: ["stockCode", "type"] }),
1619
+ outputSchema: investodayCodeDataOutputSchema,
1620
+ },
1621
+ {
1622
+ name: "get_stock_finance_valuation",
1623
+ toolName: "get_stock_finance_valuation",
1624
+ description: "Get stock finance valuation data from Investoday.",
1625
+ operationType: "read",
1626
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_valuation operation.", {
1627
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_valuation."),
1628
+ }, { required: ["stockCode"] }),
1629
+ outputSchema: investodayCodeDataOutputSchema,
1630
+ },
1631
+ {
1632
+ name: "get_stock_finance_valuation_hist",
1633
+ toolName: "get_stock_finance_valuation_hist",
1634
+ description: "Get stock finance valuation historical data from Investoday.",
1635
+ operationType: "read",
1636
+ inputSchema: s.object("Arguments for the Investoday get_stock_finance_valuation_hist operation.", {
1637
+ type: s.stringEnum("Investoday query type Accepted by Investoday for get_stock_finance_valuation_hist.", [
1638
+ "1",
1639
+ "2",
1640
+ ]),
1641
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_finance_valuation_hist."),
1642
+ }, { required: ["stockCode", "type"] }),
1643
+ outputSchema: investodayCodeDataOutputSchema,
1644
+ },
1645
+ {
1646
+ name: "list_fin_ind_cash_collect",
1647
+ toolName: "list_fin_ind_cash_collect",
1648
+ description: "List financial indicator cash collect data from Investoday.",
1649
+ operationType: "read",
1650
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_cash_collect operation.", {
1651
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_cash_collect.", {
1652
+ minLength: 1,
1653
+ }), ["2020-01-01"]),
1654
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_cash_collect.", {
1655
+ minLength: 1,
1656
+ }), ["2025-01-01"]),
1657
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1658
+ minItems: 1,
1659
+ }), [["000001", "600519"]]),
1660
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_cash_collect.", {
1661
+ minimum: 1,
1662
+ maximum: 500,
1663
+ }), [10]),
1664
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_cash_collect.", {
1665
+ minimum: 1,
1666
+ }), [1]),
1667
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1668
+ "002594",
1669
+ ]),
1670
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1671
+ outputSchema: investodayCodeDataOutputSchema,
1672
+ },
1673
+ {
1674
+ name: "list_stock_fin_ind_grow_q",
1675
+ toolName: "list_stock_fin_ind_grow_q",
1676
+ description: "List stock financial indicator grow quarterly data from Investoday.",
1677
+ operationType: "read",
1678
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_fin_ind_grow_q operation.", {
1679
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_ind_grow_q.", {
1680
+ minLength: 1,
1681
+ }), ["2020-01-01"]),
1682
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_ind_grow_q.", {
1683
+ minLength: 1,
1684
+ }), ["2025-01-01"]),
1685
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1686
+ minItems: 1,
1687
+ }), [["000001", "600519"]]),
1688
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_fin_ind_grow_q.", {
1689
+ minimum: 1,
1690
+ maximum: 500,
1691
+ }), [10]),
1692
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_fin_ind_grow_q.", {
1693
+ minimum: 1,
1694
+ }), [1]),
1695
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1696
+ "002594",
1697
+ ]),
1698
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1699
+ outputSchema: investodayCodeDataOutputSchema,
1700
+ },
1701
+ {
1702
+ name: "list_stock_fin_ind_growth",
1703
+ toolName: "list_stock_fin_ind_growth",
1704
+ description: "List stock financial indicator growth data from Investoday.",
1705
+ operationType: "read",
1706
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_fin_ind_growth operation.", {
1707
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_ind_growth.", {
1708
+ minLength: 1,
1709
+ }), ["2020-01-01"]),
1710
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_fin_ind_growth.", {
1711
+ minLength: 1,
1712
+ }), ["2025-01-01"]),
1713
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1714
+ minItems: 1,
1715
+ }), [["000001", "600519"]]),
1716
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_fin_ind_growth.", {
1717
+ minimum: 1,
1718
+ maximum: 500,
1719
+ }), [10]),
1720
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_fin_ind_growth.", {
1721
+ minimum: 1,
1722
+ }), [1]),
1723
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1724
+ "002594",
1725
+ ]),
1726
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1727
+ outputSchema: investodayCodeDataOutputSchema,
1728
+ },
1729
+ {
1730
+ name: "list_fin_ind_operating",
1731
+ toolName: "list_fin_ind_operating",
1732
+ description: "List financial indicator operating data from Investoday.",
1733
+ operationType: "read",
1734
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_operating operation.", {
1735
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_operating.", {
1736
+ minLength: 1,
1737
+ }), ["2020-01-01"]),
1738
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_operating.", {
1739
+ minLength: 1,
1740
+ }), ["2025-01-01"]),
1741
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1742
+ minItems: 1,
1743
+ }), [["000001", "600519"]]),
1744
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_operating.", {
1745
+ minimum: 1,
1746
+ maximum: 500,
1747
+ }), [10]),
1748
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_operating.", { minimum: 1 }), [1]),
1749
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1750
+ "002594",
1751
+ ]),
1752
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1753
+ outputSchema: investodayCodeDataOutputSchema,
1754
+ },
1755
+ {
1756
+ name: "list_fin_ind_profit",
1757
+ toolName: "list_fin_ind_profit",
1758
+ description: "List financial indicator profit data from Investoday.",
1759
+ operationType: "read",
1760
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_profit operation.", {
1761
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_profit.", { minLength: 1 }), ["2020-01-01"]),
1762
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_profit.", { minLength: 1 }), ["2025-01-01"]),
1763
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1764
+ minItems: 1,
1765
+ }), [["000001", "600519"]]),
1766
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_profit.", {
1767
+ minimum: 1,
1768
+ maximum: 500,
1769
+ }), [10]),
1770
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_profit.", { minimum: 1 }), [1]),
1771
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1772
+ "002594",
1773
+ ]),
1774
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1775
+ outputSchema: investodayCodeDataOutputSchema,
1776
+ },
1777
+ {
1778
+ name: "list_fin_ind_solvency",
1779
+ toolName: "list_fin_ind_solvency",
1780
+ description: "List financial indicator solvency data from Investoday.",
1781
+ operationType: "read",
1782
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_fin_ind_solvency operation.", {
1783
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_solvency.", {
1784
+ minLength: 1,
1785
+ }), ["2020-01-01"]),
1786
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_fin_ind_solvency.", { minLength: 1 }), ["2025-01-01"]),
1787
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1788
+ minItems: 1,
1789
+ }), [["000001", "600519"]]),
1790
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_fin_ind_solvency.", {
1791
+ minimum: 1,
1792
+ maximum: 500,
1793
+ }), [10]),
1794
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_fin_ind_solvency.", { minimum: 1 }), [1]),
1795
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1796
+ "002594",
1797
+ ]),
1798
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1799
+ outputSchema: investodayCodeDataOutputSchema,
1800
+ },
1801
+ {
1802
+ name: "get_stock_financial_strength_ext_hist",
1803
+ toolName: "get_stock_financial_strength_ext_hist",
1804
+ description: "Get stock financial strength ext historical data from Investoday.",
1805
+ operationType: "read",
1806
+ inputSchema: s.object("Arguments for the Investoday get_stock_financial_strength_ext_hist operation.", {
1807
+ stockCode: s.nonEmptyString("Stock code Accepted by Investoday for get_stock_financial_strength_ext_hist."),
1808
+ }, { required: ["stockCode"] }),
1809
+ outputSchema: investodayCodeDataOutputSchema,
1810
+ },
1811
+ {
1812
+ name: "get_stock_fin_subitem_score",
1813
+ toolName: "get_stock_fin_subitem_score",
1814
+ description: "Get stock financial subitem score data from Investoday.",
1815
+ operationType: "read",
1816
+ inputSchema: s.object("Arguments for the Investoday get_stock_fin_subitem_score operation.", {
1817
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for get_stock_fin_subitem_score."), ["600519"]),
1818
+ }, { required: ["stockCode"] }),
1819
+ outputSchema: investodayCodeDataOutputSchema,
1820
+ },
1821
+ {
1822
+ name: "list_stock_growth_op_revs",
1823
+ toolName: "list_stock_growth_op_revs",
1824
+ description: "List stock growth op revs data from Investoday.",
1825
+ operationType: "read",
1826
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_growth_op_revs operation.", {
1827
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1828
+ minItems: 1,
1829
+ }), [["000001", "600519"]]),
1830
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_growth_op_revs.", {
1831
+ minimum: 1,
1832
+ maximum: 500,
1833
+ }), [10]),
1834
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_growth_op_revs.", {
1835
+ minimum: 1,
1836
+ }), [1]),
1837
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1838
+ "002594",
1839
+ ]),
1840
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1841
+ outputSchema: investodayCodeDataOutputSchema,
1842
+ },
1843
+ {
1844
+ name: "list_stock_income_statement_q",
1845
+ toolName: "list_stock_income_statement_q",
1846
+ description: "List stock income statement quarterly data from Investoday.",
1847
+ operationType: "read",
1848
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_income_statement_q operation.", {
1849
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_income_statement_q.", {
1850
+ minLength: 1,
1851
+ }), ["2020-01-01"]),
1852
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_income_statement_q.", {
1853
+ minLength: 1,
1854
+ }), ["2025-03-30"]),
1855
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1856
+ minItems: 1,
1857
+ }), [["000001", "600519"]]),
1858
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_income_statement_q.", {
1859
+ minimum: 1,
1860
+ maximum: 500,
1861
+ }), [10]),
1862
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_income_statement_q.", {
1863
+ minimum: 1,
1864
+ }), [1]),
1865
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1866
+ "002594",
1867
+ ]),
1868
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1869
+ outputSchema: investodayCodeDataOutputSchema,
1870
+ },
1871
+ {
1872
+ name: "list_stock_income_statement_ttm",
1873
+ toolName: "list_stock_income_statement_ttm",
1874
+ description: "List stock income statement ttm data from Investoday.",
1875
+ operationType: "read",
1876
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_income_statement_ttm operation.", {
1877
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_income_statement_ttm.", {
1878
+ minLength: 1,
1879
+ }), ["2020-01-01"]),
1880
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_income_statement_ttm.", {
1881
+ minLength: 1,
1882
+ }), ["2025-03-30"]),
1883
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1884
+ minItems: 1,
1885
+ }), [["000001", "600519"]]),
1886
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_income_statement_ttm.", {
1887
+ minimum: 1,
1888
+ maximum: 500,
1889
+ }), [10]),
1890
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_income_statement_ttm.", {
1891
+ minimum: 1,
1892
+ }), [1]),
1893
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1894
+ "002594",
1895
+ ]),
1896
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1897
+ outputSchema: investodayCodeDataOutputSchema,
1898
+ },
1899
+ {
1900
+ name: "list_stock_limit_up_down",
1901
+ toolName: "list_stock_limit_up_down",
1902
+ description: "List stock limit up down data from Investoday.",
1903
+ operationType: "read",
1904
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_limit_up_down operation.", {
1905
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_limit_up_down.", {
1906
+ minLength: 1,
1907
+ }), ["2020-01-01"]),
1908
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_limit_up_down.", {
1909
+ minLength: 1,
1910
+ }), ["2025-01-01"]),
1911
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1912
+ minItems: 1,
1913
+ }), [["000001", "600519"]]),
1914
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_limit_up_down.", {
1915
+ minimum: 1,
1916
+ maximum: 500,
1917
+ }), [10]),
1918
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_limit_up_down.", {
1919
+ minimum: 1,
1920
+ }), [1]),
1921
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1922
+ "002594",
1923
+ ]),
1924
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1925
+ outputSchema: investodayCodeDataOutputSchema,
1926
+ },
1927
+ {
1928
+ name: "list_stock_major_sup_cust",
1929
+ toolName: "list_stock_major_sup_cust",
1930
+ description: "List stock major sup cust data from Investoday.",
1931
+ operationType: "read",
1932
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_major_sup_cust operation.", {
1933
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_major_sup_cust.", {
1934
+ minLength: 1,
1935
+ }), ["2020-01-01"]),
1936
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_major_sup_cust.", {
1937
+ minLength: 1,
1938
+ }), ["2020-01-01"]),
1939
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1940
+ minItems: 1,
1941
+ }), [["000001", "600519"]]),
1942
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_major_sup_cust.", {
1943
+ minimum: 1,
1944
+ maximum: 500,
1945
+ }), [10]),
1946
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_major_sup_cust.", {
1947
+ minimum: 1,
1948
+ }), [1]),
1949
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1950
+ "002594",
1951
+ ]),
1952
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1953
+ outputSchema: investodayCodeDataOutputSchema,
1954
+ },
1955
+ {
1956
+ name: "get_stock_margin_requirement",
1957
+ toolName: "get_stock_margin_requirement",
1958
+ description: "Get stock margin requirement data from Investoday.",
1959
+ operationType: "read",
1960
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stock_margin_requirement operation.", {
1961
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for get_stock_margin_requirement.", {
1962
+ minLength: 1,
1963
+ }), ["2020-01-01"]),
1964
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for get_stock_margin_requirement.", {
1965
+ minLength: 1,
1966
+ }), ["2025-01-01"]),
1967
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1968
+ minItems: 1,
1969
+ }), [["000001", "600519"]]),
1970
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_margin_requirement.", {
1971
+ minimum: 1,
1972
+ maximum: 500,
1973
+ }), [10]),
1974
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_margin_requirement.", {
1975
+ minimum: 1,
1976
+ }), [1]),
1977
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
1978
+ "002594",
1979
+ ]),
1980
+ }, { required: [] }), ["stockCode", "stockCodes"]),
1981
+ outputSchema: investodayCodeDataOutputSchema,
1982
+ },
1983
+ {
1984
+ name: "list_stock_margin_trade",
1985
+ toolName: "list_stock_margin_trade",
1986
+ description: "List stock margin trade data from Investoday.",
1987
+ operationType: "read",
1988
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_margin_trade operation.", {
1989
+ beginDate: s.withExamples(s.nonEmptyString("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_margin_trade."), ["2025-01-01"]),
1990
+ endDate: s.withExamples(s.nonEmptyString("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_margin_trade."), ["2025-01-01"]),
1991
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
1992
+ minItems: 1,
1993
+ }), [["000001", "600519"]]),
1994
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_margin_trade.", {
1995
+ minimum: 1,
1996
+ maximum: 500,
1997
+ }), [10]),
1998
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_margin_trade.", { minimum: 1 }), [1]),
1999
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2000
+ "002594",
2001
+ ]),
2002
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2003
+ outputSchema: investodayCodeDataOutputSchema,
2004
+ },
2005
+ {
2006
+ name: "list_stock_margin_trade_totals",
2007
+ toolName: "list_stock_margin_trade_totals",
2008
+ description: "List stock margin trade totals data from Investoday.",
2009
+ operationType: "read",
2010
+ inputSchema: s.object("Arguments for the Investoday list_stock_margin_trade_totals operation.", {
2011
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_margin_trade_totals.", {
2012
+ minLength: 1,
2013
+ }), ["2020-01-01"]),
2014
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_margin_trade_totals.", {
2015
+ minLength: 1,
2016
+ }), ["2025-01-01"]),
2017
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_margin_trade_totals.", {
2018
+ minimum: 1,
2019
+ maximum: 500,
2020
+ }), [10]),
2021
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_margin_trade_totals.", {
2022
+ minimum: 1,
2023
+ }), [1]),
2024
+ }, { required: [] }),
2025
+ outputSchema: investodayCodeDataOutputSchema,
2026
+ },
2027
+ {
2028
+ name: "list_stock_oscillator_indicators",
2029
+ toolName: "list_stock_oscillator_indicators",
2030
+ description: "List stock oscillator indicators data from Investoday.",
2031
+ operationType: "read",
2032
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_oscillator_indicators operation.", {
2033
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_oscillator_indicators.", {
2034
+ minLength: 1,
2035
+ }), ["2020-01-01"]),
2036
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_oscillator_indicators.", {
2037
+ minLength: 1,
2038
+ }), ["2025-01-01"]),
2039
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2040
+ minItems: 1,
2041
+ }), [["000001", "600519"]]),
2042
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_oscillator_indicators.", {
2043
+ minimum: 1,
2044
+ maximum: 500,
2045
+ }), [10]),
2046
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_oscillator_indicators.", {
2047
+ minimum: 1,
2048
+ }), [1]),
2049
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2050
+ "002594",
2051
+ ]),
2052
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2053
+ outputSchema: investodayCodeDataOutputSchema,
2054
+ },
2055
+ {
2056
+ name: "list_per_share_indicators",
2057
+ toolName: "list_per_share_indicators",
2058
+ description: "List per share indicators data from Investoday.",
2059
+ operationType: "read",
2060
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_per_share_indicators operation.", {
2061
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_per_share_indicators.", {
2062
+ minLength: 1,
2063
+ }), ["2020-01-01"]),
2064
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_per_share_indicators.", {
2065
+ minLength: 1,
2066
+ }), ["2025-01-01"]),
2067
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2068
+ minItems: 1,
2069
+ }), [["000001", "600519"]]),
2070
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_per_share_indicators.", {
2071
+ minimum: 1,
2072
+ maximum: 500,
2073
+ }), [10]),
2074
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_per_share_indicators.", {
2075
+ minimum: 1,
2076
+ }), [1]),
2077
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2078
+ "002594",
2079
+ ]),
2080
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2081
+ outputSchema: investodayCodeDataOutputSchema,
2082
+ },
2083
+ {
2084
+ name: "list_per_share_indicators_q",
2085
+ toolName: "list_per_share_indicators_q",
2086
+ description: "List per share indicators quarterly data from Investoday.",
2087
+ operationType: "read",
2088
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_per_share_indicators_q operation.", {
2089
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_per_share_indicators_q.", {
2090
+ minLength: 1,
2091
+ }), ["2020-01-01"]),
2092
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_per_share_indicators_q.", {
2093
+ minLength: 1,
2094
+ }), ["2025-01-01"]),
2095
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2096
+ minItems: 1,
2097
+ }), [["000001", "600519"]]),
2098
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_per_share_indicators_q.", {
2099
+ minimum: 1,
2100
+ maximum: 500,
2101
+ }), [10]),
2102
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_per_share_indicators_q.", {
2103
+ minimum: 1,
2104
+ }), [1]),
2105
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2106
+ "002594",
2107
+ ]),
2108
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2109
+ outputSchema: investodayCodeDataOutputSchema,
2110
+ },
2111
+ {
2112
+ name: "list_stock_performance_metrics",
2113
+ toolName: "list_stock_performance_metrics",
2114
+ description: "List stock performance metrics data from Investoday.",
2115
+ operationType: "read",
2116
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_performance_metrics operation.", {
2117
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_performance_metrics.", {
2118
+ minLength: 1,
2119
+ }), ["2020-01-01"]),
2120
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_performance_metrics.", {
2121
+ minLength: 1,
2122
+ }), ["2025-01-01"]),
2123
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2124
+ minItems: 1,
2125
+ }), [["000001", "600519"]]),
2126
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_performance_metrics.", {
2127
+ minimum: 1,
2128
+ maximum: 500,
2129
+ }), [10]),
2130
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_performance_metrics.", {
2131
+ minimum: 1,
2132
+ }), [1]),
2133
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2134
+ "002594",
2135
+ ]),
2136
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2137
+ outputSchema: investodayCodeDataOutputSchema,
2138
+ },
2139
+ {
2140
+ name: "list_stock_price_volume_indicators",
2141
+ toolName: "list_stock_price_volume_indicators",
2142
+ description: "List stock price volume indicators data from Investoday.",
2143
+ operationType: "read",
2144
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_price_volume_indicators operation.", {
2145
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_price_volume_indicators.", {
2146
+ minLength: 1,
2147
+ }), ["2020-01-01"]),
2148
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_price_volume_indicators.", {
2149
+ minLength: 1,
2150
+ }), ["2025-01-01"]),
2151
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2152
+ minItems: 1,
2153
+ }), [["000001", "600519"]]),
2154
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_price_volume_indicators.", {
2155
+ minimum: 1,
2156
+ maximum: 500,
2157
+ }), [10]),
2158
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_price_volume_indicators.", {
2159
+ minimum: 1,
2160
+ }), [1]),
2161
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2162
+ "002594",
2163
+ ]),
2164
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2165
+ outputSchema: investodayCodeDataOutputSchema,
2166
+ },
2167
+ {
2168
+ name: "list_soctk_strength_trend_indicators",
2169
+ toolName: "list_soctk_strength_trend_indicators",
2170
+ description: "List soctk strength trend indicators data from Investoday.",
2171
+ operationType: "read",
2172
+ inputSchema: s.object("Arguments for the Investoday list_soctk_strength_trend_indicators operation.", {
2173
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_soctk_strength_trend_indicators.", {
2174
+ minLength: 1,
2175
+ }), ["2020-01-01"]),
2176
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_soctk_strength_trend_indicators.", {
2177
+ minLength: 1,
2178
+ }), ["2025-01-01"]),
2179
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_soctk_strength_trend_indicators.", {
2180
+ minimum: 1,
2181
+ maximum: 500,
2182
+ }), [10]),
2183
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_soctk_strength_trend_indicators.", {
2184
+ minimum: 1,
2185
+ }), [1]),
2186
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for list_soctk_strength_trend_indicators."), ["002594"]),
2187
+ }, { required: ["stockCode"] }),
2188
+ outputSchema: investodayCodeDataOutputSchema,
2189
+ },
2190
+ {
2191
+ name: "list_stock_strength_trend_indicators",
2192
+ toolName: "list_stock_strength_trend_indicators",
2193
+ description: "List stock strength trend indicators data from Investoday.",
2194
+ operationType: "read",
2195
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_strength_trend_indicators operation.", {
2196
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_strength_trend_indicators.", {
2197
+ minLength: 1,
2198
+ }), ["2020-01-01"]),
2199
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_strength_trend_indicators.", {
2200
+ minLength: 1,
2201
+ }), ["2025-01-01"]),
2202
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2203
+ minItems: 1,
2204
+ }), [["000001", "600519"]]),
2205
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_strength_trend_indicators.", {
2206
+ minimum: 1,
2207
+ maximum: 500,
2208
+ }), [10]),
2209
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_strength_trend_indicators.", {
2210
+ minimum: 1,
2211
+ }), [1]),
2212
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2213
+ "002594",
2214
+ ]),
2215
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2216
+ outputSchema: investodayCodeDataOutputSchema,
2217
+ },
2218
+ {
2219
+ name: "get_stk_sw_idu_returns",
2220
+ toolName: "get_stk_sw_idu_returns",
2221
+ description: "Get stock sw industry returns data from Investoday.",
2222
+ operationType: "read",
2223
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stk_sw_idu_returns operation.", {
2224
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2225
+ minItems: 1,
2226
+ }), [["000001", "600519"]]),
2227
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stk_sw_idu_returns.", {
2228
+ minimum: 1,
2229
+ maximum: 500,
2230
+ }), [10]),
2231
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stk_sw_idu_returns.", { minimum: 1 }), [1]),
2232
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2233
+ "002594",
2234
+ ]),
2235
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2236
+ outputSchema: investodayCodeDataOutputSchema,
2237
+ },
2238
+ {
2239
+ name: "list_stock_turnover_rates",
2240
+ toolName: "list_stock_turnover_rates",
2241
+ description: "List stock turnover rates data from Investoday.",
2242
+ operationType: "read",
2243
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_turnover_rates operation.", {
2244
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_turnover_rates.", {
2245
+ minLength: 1,
2246
+ }), ["2020-01-01"]),
2247
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_turnover_rates.", {
2248
+ minLength: 1,
2249
+ }), ["2025-01-01"]),
2250
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2251
+ minItems: 1,
2252
+ }), [["000001", "600519"]]),
2253
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_turnover_rates.", {
2254
+ minimum: 1,
2255
+ maximum: 500,
2256
+ }), [10]),
2257
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_turnover_rates.", {
2258
+ minimum: 1,
2259
+ }), [1]),
2260
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2261
+ "002594",
2262
+ ]),
2263
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2264
+ outputSchema: investodayCodeDataOutputSchema,
2265
+ },
2266
+ {
2267
+ name: "list_stock_up_down_list",
2268
+ toolName: "list_stock_up_down_list",
2269
+ description: "List stock up down list data from Investoday.",
2270
+ operationType: "read",
2271
+ inputSchema: s.object("Arguments for the Investoday list_stock_up_down_list operation.", {
2272
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_up_down_list.", {
2273
+ minLength: 1,
2274
+ }), ["2020-01-01"]),
2275
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_up_down_list.", { minLength: 1 }), ["2025-01-01"]),
2276
+ limitFlag: s.withExamples(s.withEnum(s.integer("Limit-up or limit-down filter Accepted by Investoday for list_stock_up_down_list."), [1, -1, 0]), [1]),
2277
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_up_down_list.", {
2278
+ minimum: 1,
2279
+ maximum: 500,
2280
+ }), [10]),
2281
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_up_down_list.", { minimum: 1 }), [1]),
2282
+ }, { required: ["limitFlag"] }),
2283
+ outputSchema: investodayCodeDataOutputSchema,
2284
+ },
2285
+ {
2286
+ name: "get_stock_val_indicators",
2287
+ toolName: "get_stock_val_indicators",
2288
+ description: "Get stock valuation indicators including market capitalization, PE, PB and PS over a date range.",
2289
+ operationType: "read",
2290
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for get_stock_val_indicators.", {
2291
+ stockCode: s.nonEmptyString("One stock code. Supply exactly one of stockCode or stockCodes."),
2292
+ stockCodes: s.array("Stock codes for a batch query. Supply exactly one of stockCode or stockCodes.", s.nonEmptyString("A stock code."), { minItems: 1 }),
2293
+ beginDate: s.date("Start date in YYYY-MM-DD format; earliest supported date is 2020-01-01."),
2294
+ endDate: s.date("End date in YYYY-MM-DD format."),
2295
+ pageNum: s.integer("Page number, starting at 1.", { minimum: 1 }),
2296
+ pageSize: s.integer("Records per page, from 1 to 500.", { minimum: 1, maximum: 500 }),
2297
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2298
+ outputSchema: investodayCodeDataOutputSchema,
2299
+ },
2300
+ {
2301
+ name: "list_stock_vol_indicators",
2302
+ toolName: "list_stock_vol_indicators",
2303
+ description: "List stock vol indicators data from Investoday.",
2304
+ operationType: "read",
2305
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_vol_indicators operation.", {
2306
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_vol_indicators.", {
2307
+ minLength: 1,
2308
+ }), ["2020-01-01"]),
2309
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_vol_indicators.", {
2310
+ minLength: 1,
2311
+ }), ["2025-01-01"]),
2312
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2313
+ minItems: 1,
2314
+ }), [["000001", "600519"]]),
2315
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_vol_indicators.", {
2316
+ minimum: 1,
2317
+ maximum: 500,
2318
+ }), [10]),
2319
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_vol_indicators.", {
2320
+ minimum: 1,
2321
+ }), [1]),
2322
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2323
+ "002594",
2324
+ ]),
2325
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2326
+ outputSchema: investodayCodeDataOutputSchema,
2327
+ },
2328
+ {
2329
+ name: "get_stock_realtime_fund_flow",
2330
+ toolName: "get_stock_realtime_fund_flow",
2331
+ description: "Get stock realtime fund flow data from Investoday.",
2332
+ operationType: "read",
2333
+ inputSchema: s.object("Arguments for the Investoday get_stock_realtime_fund_flow operation.", {
2334
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for get_stock_realtime_fund_flow."), ["002594"]),
2335
+ }, { required: ["stockCode"] }),
2336
+ outputSchema: investodayCodeDataOutputSchema,
2337
+ },
2338
+ {
2339
+ name: "get_stock_quote_realtime",
2340
+ toolName: "get_stock_quote_realtime",
2341
+ description: "Get the latest realtime quote for one Shanghai, Shenzhen or Beijing stock.",
2342
+ operationType: "read",
2343
+ inputSchema: s.object("Arguments for get_stock_quote_realtime.", {
2344
+ stockCode: s.nonEmptyString("Stock code, for example 002594."),
2345
+ }, { required: ["stockCode"] }),
2346
+ outputSchema: investodayCodeDataOutputSchema,
2347
+ },
2348
+ {
2349
+ name: "get_stock_quote_rt_ext",
2350
+ toolName: "get_stock_quote_rt_ext",
2351
+ description: "Get stock quote realtime ext data from Investoday.",
2352
+ operationType: "read",
2353
+ inputSchema: s.object("Arguments for the Investoday get_stock_quote_rt_ext operation.", {
2354
+ sortColumn: s.withExamples(s.stringEnum("Column used to sort the result Accepted by Investoday for get_stock_quote_rt_ext.", [
2355
+ "changeRatio",
2356
+ "limitUpTime",
2357
+ "limitDownTime",
2358
+ ]), ["changeRatio"]),
2359
+ stockCodes: s.withExamples(s.array("Stock codes Accepted by Investoday for get_stock_quote_rt_ext.", s.string("One stockCode value.")), [["000001"]]),
2360
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_quote_rt_ext."), [10]),
2361
+ page: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_quote_rt_ext."), [1]),
2362
+ order: s.withExamples(s.nonEmptyString("Sort order Accepted by Investoday for get_stock_quote_rt_ext."), [
2363
+ "asc",
2364
+ ]),
2365
+ }, { required: ["sortColumn"] }),
2366
+ outputSchema: investodayCodeDataOutputSchema,
2367
+ },
2368
+ {
2369
+ name: "get_stock_realtime_quote_merge",
2370
+ toolName: "get_stock_realtime_quote_merge",
2371
+ description: "Get stock realtime quote merge data from Investoday.",
2372
+ operationType: "read",
2373
+ inputSchema: s.object("Arguments for the Investoday get_stock_realtime_quote_merge operation.", {
2374
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for get_stock_realtime_quote_merge."), ["600839"]),
2375
+ }, { required: ["stockCode"] }),
2376
+ outputSchema: investodayCodeDataOutputSchema,
2377
+ },
2378
+ {
2379
+ name: "list_stock_arbitration_cases",
2380
+ toolName: "list_stock_arbitration_cases",
2381
+ description: "List stock arbitration cases data from Investoday.",
2382
+ operationType: "read",
2383
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_arbitration_cases operation.", {
2384
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_arbitration_cases.", {
2385
+ minLength: 1,
2386
+ }), ["2020-01-01"]),
2387
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_arbitration_cases.", {
2388
+ minLength: 1,
2389
+ }), ["2025-01-01"]),
2390
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2391
+ minItems: 1,
2392
+ }), [["000001", "600519"]]),
2393
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_arbitration_cases.", {
2394
+ minimum: 1,
2395
+ maximum: 500,
2396
+ }), [10]),
2397
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_arbitration_cases.", {
2398
+ minimum: 1,
2399
+ }), [1]),
2400
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2401
+ "002594",
2402
+ ]),
2403
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2404
+ outputSchema: investodayCodeDataOutputSchema,
2405
+ },
2406
+ {
2407
+ name: "list_stk_consultations",
2408
+ toolName: "list_stk_consultations",
2409
+ description: "List stock consultations data from Investoday.",
2410
+ operationType: "read",
2411
+ inputSchema: s.object("Arguments for the Investoday list_stk_consultations operation.", {
2412
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stk_consultations.", {
2413
+ minLength: 1,
2414
+ }), ["2020-01-01"]),
2415
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stk_consultations.", { minLength: 1 }), ["2025-01-01"]),
2416
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_consultations.", {
2417
+ minimum: 1,
2418
+ maximum: 500,
2419
+ }), [10]),
2420
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_consultations.", { minimum: 1 }), [1]),
2421
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for list_stk_consultations."), [
2422
+ "002594",
2423
+ ]),
2424
+ }, { required: ["stockCode"] }),
2425
+ outputSchema: investodayCodeDataOutputSchema,
2426
+ },
2427
+ {
2428
+ name: "list_stock_inst_research",
2429
+ toolName: "list_stock_inst_research",
2430
+ description: "List stock inst research data from Investoday.",
2431
+ operationType: "read",
2432
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_inst_research operation.", {
2433
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_inst_research.", {
2434
+ minLength: 1,
2435
+ }), ["2020-01-01"]),
2436
+ endDate: s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_inst_research.", {
2437
+ minLength: 1,
2438
+ }),
2439
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2440
+ minItems: 1,
2441
+ }), [["000001", "600519"]]),
2442
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_inst_research.", {
2443
+ minimum: 1,
2444
+ maximum: 500,
2445
+ }), [10]),
2446
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_inst_research.", {
2447
+ minimum: 1,
2448
+ }), [1]),
2449
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2450
+ "002594",
2451
+ ]),
2452
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2453
+ outputSchema: investodayCodeDataOutputSchema,
2454
+ },
2455
+ {
2456
+ name: "list_stock_op_reviews",
2457
+ toolName: "list_stock_op_reviews",
2458
+ description: "List stock op reviews data from Investoday.",
2459
+ operationType: "read",
2460
+ inputSchema: s.object("Arguments for the Investoday list_stock_op_reviews operation.", {
2461
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_op_reviews.", { minLength: 1 }), ["2020-01-01"]),
2462
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_op_reviews.", { minLength: 1 }), ["2025-01-01"]),
2463
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_op_reviews.", {
2464
+ minimum: 1,
2465
+ maximum: 5,
2466
+ }), [5]),
2467
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_op_reviews.", { minimum: 1 }), [1]),
2468
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for list_stock_op_reviews."), [
2469
+ "002594",
2470
+ ]),
2471
+ }, { required: ["stockCode"] }),
2472
+ outputSchema: investodayCodeDataOutputSchema,
2473
+ },
2474
+ {
2475
+ name: "list_stock_violation_penalt",
2476
+ toolName: "list_stock_violation_penalt",
2477
+ description: "List stock violation penalt data from Investoday.",
2478
+ operationType: "read",
2479
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_violation_penalt operation.", {
2480
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_violation_penalt.", {
2481
+ minLength: 1,
2482
+ }), ["2020-01-01"]),
2483
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_violation_penalt.", {
2484
+ minLength: 1,
2485
+ }), ["2025-01-01"]),
2486
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2487
+ minItems: 1,
2488
+ }), [["000001", "600519"]]),
2489
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_violation_penalt.", {
2490
+ minimum: 1,
2491
+ maximum: 500,
2492
+ }), [10]),
2493
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_violation_penalt.", {
2494
+ minimum: 1,
2495
+ }), [1]),
2496
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2497
+ "002594",
2498
+ ]),
2499
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2500
+ outputSchema: investodayCodeDataOutputSchema,
2501
+ },
2502
+ {
2503
+ name: "get_stock_business_themes",
2504
+ toolName: "get_stock_business_themes",
2505
+ description: "Get stock business themes data from Investoday.",
2506
+ operationType: "read",
2507
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stock_business_themes operation.", {
2508
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2509
+ minItems: 1,
2510
+ }), [["000001", "600519"]]),
2511
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_business_themes.", {
2512
+ minimum: 1,
2513
+ maximum: 500,
2514
+ }), [10]),
2515
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_business_themes.", {
2516
+ minimum: 1,
2517
+ }), [1]),
2518
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2519
+ "000001",
2520
+ ]),
2521
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2522
+ outputSchema: investodayCodeDataOutputSchema,
2523
+ },
2524
+ {
2525
+ name: "list_stock_dcf_result",
2526
+ toolName: "list_stock_dcf_result",
2527
+ description: "List stock dcf result data from Investoday.",
2528
+ operationType: "read",
2529
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_dcf_result operation.", {
2530
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_dcf_result.", {
2531
+ minLength: 1,
2532
+ }), ["2020-01-01"]),
2533
+ endDate: s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_dcf_result.", {
2534
+ minLength: 1,
2535
+ }),
2536
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2537
+ minItems: 1,
2538
+ }), [["000001", "600519"]]),
2539
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_dcf_result.", {
2540
+ minimum: 1,
2541
+ maximum: 500,
2542
+ }), [10]),
2543
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_dcf_result.", { minimum: 1 }), [1]),
2544
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2545
+ "002594",
2546
+ ]),
2547
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2548
+ outputSchema: investodayCodeDataOutputSchema,
2549
+ },
2550
+ {
2551
+ name: "list_stock_esg_rating",
2552
+ toolName: "list_stock_esg_rating",
2553
+ description: "List stock esg rating data from Investoday.",
2554
+ operationType: "read",
2555
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_esg_rating operation.", {
2556
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_esg_rating.", {
2557
+ minLength: 1,
2558
+ }), ["2020-01-01"]),
2559
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_esg_rating.", { minLength: 1 }), ["2020-01-01"]),
2560
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2561
+ minItems: 1,
2562
+ }), [["000001", "600519"]]),
2563
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_esg_rating.", {
2564
+ minimum: 1,
2565
+ maximum: 500,
2566
+ }), [10]),
2567
+ dataSource: s.withExamples(s.withEnum(s.integer("Data source Accepted by Investoday for list_stock_esg_rating."), [1, 2]), [1]),
2568
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_esg_rating.", { minimum: 1 }), [1]),
2569
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2570
+ "002594",
2571
+ ]),
2572
+ }, { required: ["dataSource"] }), ["stockCode", "stockCodes"]),
2573
+ outputSchema: investodayCodeDataOutputSchema,
2574
+ },
2575
+ {
2576
+ name: "list_stock_fund_flow_s",
2577
+ toolName: "list_stock_fund_flow_s",
2578
+ description: "List stock fund flow s data from Investoday.",
2579
+ operationType: "read",
2580
+ inputSchema: s.object("Arguments for the Investoday list_stock_fund_flow_s operation.", {
2581
+ date: s.withExamples(s.date("Query date in YYYY-MM-DD format Accepted by Investoday for list_stock_fund_flow_s.", {
2582
+ minLength: 1,
2583
+ }), ["2026-07-10"]),
2584
+ minAmount: s.withExamples(s.number("Minimum amount filter Accepted by Investoday for list_stock_fund_flow_s.", {
2585
+ minimum: 0,
2586
+ }), [1000]),
2587
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_fund_flow_s.", {
2588
+ minimum: 1,
2589
+ maximum: 500,
2590
+ }), [10]),
2591
+ maxAmount: s.withExamples(s.number("Maximum amount filter Accepted by Investoday for list_stock_fund_flow_s.", {
2592
+ minimum: 0,
2593
+ }), [20000]),
2594
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_fund_flow_s.", { minimum: 1 }), [1]),
2595
+ matchMode: s.withExamples(s.withEnum(s.integer("Result matching mode Accepted by Investoday for list_stock_fund_flow_s.", {
2596
+ minimum: 1,
2597
+ maximum: 2,
2598
+ }), [1, 2]), [1]),
2599
+ signalCodes: s.withExamples(s.array("Technical signal codes Accepted by Investoday for list_stock_fund_flow_s.", s.withEnum(s.integer("One signalCode value."), [101, 102, 201, 202, 203, 204, 205, 206, 301, 302, 303, 304, 401, 402, 403, 404]), { minItems: 1 }), [[101, 203, 401]]),
2600
+ }, { required: ["date", "signalCodes"] }),
2601
+ outputSchema: investodayCodeDataOutputSchema,
2602
+ },
2603
+ {
2604
+ name: "get_stk_fundamentals",
2605
+ toolName: "get_stk_fundamentals",
2606
+ description: "Get stock fundamentals data from Investoday.",
2607
+ operationType: "read",
2608
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stk_fundamentals operation.", {
2609
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2610
+ minItems: 1,
2611
+ }), [["000001", "600519"]]),
2612
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stk_fundamentals.", {
2613
+ minimum: 1,
2614
+ maximum: 500,
2615
+ }), [10]),
2616
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stk_fundamentals.", { minimum: 1 }), [1]),
2617
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2618
+ "000001",
2619
+ ]),
2620
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2621
+ outputSchema: investodayCodeDataOutputSchema,
2622
+ },
2623
+ {
2624
+ name: "get_stk_investment_risks",
2625
+ toolName: "get_stk_investment_risks",
2626
+ description: "Get stock investment risks data from Investoday.",
2627
+ operationType: "read",
2628
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stk_investment_risks operation.", {
2629
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2630
+ minItems: 1,
2631
+ }), [["000001", "600519"]]),
2632
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stk_investment_risks.", {
2633
+ minimum: 1,
2634
+ maximum: 500,
2635
+ }), [10]),
2636
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stk_investment_risks.", {
2637
+ minimum: 1,
2638
+ }), [1]),
2639
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2640
+ "000001",
2641
+ ]),
2642
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2643
+ outputSchema: investodayCodeDataOutputSchema,
2644
+ },
2645
+ {
2646
+ name: "list_stock_market_ind_dm",
2647
+ toolName: "list_stock_market_ind_dm",
2648
+ description: "List stock market indicator data mining data from Investoday.",
2649
+ operationType: "read",
2650
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_stock_market_ind_dm operation.", {
2651
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_market_ind_dm.", {
2652
+ minLength: 1,
2653
+ }), ["2020-01-01"]),
2654
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_market_ind_dm.", {
2655
+ minLength: 1,
2656
+ }), ["2025-01-01"]),
2657
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2658
+ minItems: 1,
2659
+ }), [["000001", "600519"]]),
2660
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_market_ind_dm.", {
2661
+ minimum: 1,
2662
+ maximum: 500,
2663
+ }), [10]),
2664
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_market_ind_dm.", {
2665
+ minimum: 1,
2666
+ }), [1]),
2667
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2668
+ "002594",
2669
+ ]),
2670
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2671
+ outputSchema: investodayCodeDataOutputSchema,
2672
+ },
2673
+ {
2674
+ name: "list_stock_price_pattern",
2675
+ toolName: "list_stock_price_pattern",
2676
+ description: "List stock price pattern data from Investoday.",
2677
+ operationType: "read",
2678
+ inputSchema: s.object("Arguments for the Investoday list_stock_price_pattern operation.", {
2679
+ date: s.withExamples(s.date("Query date in YYYY-MM-DD format Accepted by Investoday for list_stock_price_pattern.", {
2680
+ minLength: 1,
2681
+ }), ["2026-07-10"]),
2682
+ cycleType: s.withExamples(s.withEnum(s.integer("Analysis cycle type Accepted by Investoday for list_stock_price_pattern."), [1, 2, 3]), [2]),
2683
+ statusCodes: s.withExamples(s.array("Status codes Accepted by Investoday for list_stock_price_pattern.", s.withEnum(s.integer("One statusCode value."), [1, 2, 3]), { minItems: 1 }), [[1, 2]]),
2684
+ patternCodes: s.withExamples(s.array("Price-pattern codes Accepted by Investoday for list_stock_price_pattern.", s.withEnum(s.integer("One patternCode value."), [1, 2, 3, 4, 5, 6, 7]), { minItems: 1 }), [[1, 5, 7]]),
2685
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_price_pattern.", {
2686
+ minimum: 1,
2687
+ maximum: 500,
2688
+ }), [10]),
2689
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_price_pattern.", { minimum: 1 }), [1]),
2690
+ }, { required: ["date", "cycleType", "patternCodes", "statusCodes"] }),
2691
+ outputSchema: investodayCodeDataOutputSchema,
2692
+ },
2693
+ {
2694
+ name: "get_stock_prospects",
2695
+ toolName: "get_stock_prospects",
2696
+ description: "Get stock prospects data from Investoday.",
2697
+ operationType: "read",
2698
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_stock_prospects operation.", {
2699
+ stockCodes: s.withExamples(s.array("Stock codes Supply exactly one of stockCodes or stockCode.", s.string("One stockCode value."), {
2700
+ minItems: 1,
2701
+ }), [["000001", "600519"]]),
2702
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_stock_prospects.", {
2703
+ minimum: 1,
2704
+ maximum: 500,
2705
+ }), [10]),
2706
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_stock_prospects.", { minimum: 1 }), [1]),
2707
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Supply exactly one of stockCode or stockCodes."), [
2708
+ "000001",
2709
+ ]),
2710
+ }, { required: [] }), ["stockCode", "stockCodes"]),
2711
+ outputSchema: investodayCodeDataOutputSchema,
2712
+ },
2713
+ {
2714
+ name: "get_stock_score",
2715
+ toolName: "get_stock_score",
2716
+ description: "Get stock score data from Investoday.",
2717
+ operationType: "read",
2718
+ inputSchema: s.object("Arguments for the Investoday get_stock_score operation.", {
2719
+ stockCode: s.withExamples(s.nonEmptyString("Stock code Accepted by Investoday for get_stock_score."), [
2720
+ "000001",
2721
+ ]),
2722
+ }, { required: ["stockCode"] }),
2723
+ outputSchema: investodayCodeDataOutputSchema,
2724
+ },
2725
+ {
2726
+ name: "list_stk_tech_signals",
2727
+ toolName: "list_stk_tech_signals",
2728
+ description: "List stock tech signals data from Investoday.",
2729
+ operationType: "read",
2730
+ inputSchema: s.object("Arguments for the Investoday list_stk_tech_signals operation.", {
2731
+ date: s.withExamples(s.nonEmptyString("Query date in YYYY-MM-DD format Accepted by Investoday for list_stk_tech_signals."), ["2026-07-13"]),
2732
+ signalMatchMode: s.withExamples(s.withEnum(s.integer("Technical signal matching mode Accepted by Investoday for list_stk_tech_signals.", {
2733
+ minimum: 1,
2734
+ maximum: 2,
2735
+ }), [1, 2]), [1]),
2736
+ stockCodes: s.withExamples(s.array("Stock codes Accepted by Investoday for list_stk_tech_signals.", s.string("One stockCode value.")), [["000001", "600519"]]),
2737
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_tech_signals.", {
2738
+ minimum: 1,
2739
+ maximum: 500,
2740
+ }), [10]),
2741
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_tech_signals.", { minimum: 1 }), [1]),
2742
+ signalCodes: s.withExamples(s.array("Technical signal codes Accepted by Investoday for list_stk_tech_signals.", s.withEnum(s.integer("One signalCode value."), [
2743
+ 101, 102, 103, 104, 105, 106, 107, 108, 201, 202, 203, 204, 205, 206, 301, 302, 303, 401, 402, 403, 404,
2744
+ 405, 406, 407, 408, 501, 502, 503, 504, 505, 506, 507, 601, 602, 603, 604, 605, 606, 607, 701, 702, 703,
2745
+ 704, 705, 706, 801, 802, 803, 804, 805, 806, 807, 808, 901, 902, 1001, 1002, 1003, 1004, 1005, 1006,
2746
+ 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
2747
+ 1024, 1025, 1026, 1027, 1028, 1029, 1030,
2748
+ ]), { minItems: 1 }), [[606, 801, 807, 1018]]),
2749
+ }, { required: ["date", "signalCodes"] }),
2750
+ outputSchema: investodayCodeDataOutputSchema,
2751
+ },
2752
+ {
2753
+ name: "list_stk_trend_structure",
2754
+ toolName: "list_stk_trend_structure",
2755
+ description: "List stock trend structure data from Investoday.",
2756
+ operationType: "read",
2757
+ inputSchema: s.object("Arguments for the Investoday list_stk_trend_structure operation.", {
2758
+ date: s.withExamples(s.date("Query date in YYYY-MM-DD format Accepted by Investoday for list_stk_trend_structure.", {
2759
+ minLength: 1,
2760
+ }), ["2020-01-01"]),
2761
+ cycleType: s.withExamples(s.withEnum(s.integer("Analysis cycle type Accepted by Investoday for list_stk_trend_structure."), [1, 2, 3]), [1]),
2762
+ minTrendScore: s.withExamples(s.nonEmptyString("Minimum trend score Accepted by Investoday for list_stk_trend_structure."), ["60"]),
2763
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stk_trend_structure.", {
2764
+ minimum: 1,
2765
+ maximum: 500,
2766
+ }), [10]),
2767
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stk_trend_structure.", { minimum: 1 }), [1]),
2768
+ matchMode: s.withExamples(s.stringEnum("Result matching mode Accepted by Investoday for list_stk_trend_structure.", ["1", "2"]), ["2"]),
2769
+ signalCodes: s.withExamples(s.array("Technical signal codes Accepted by Investoday for list_stk_trend_structure.", s.withEnum(s.integer("One signalCode value."), [1, 2, 3, 4, 5, 6]), { minItems: 1 }), [[1, 2, 3]]),
2770
+ }, { required: ["date", "cycleType", "signalCodes"] }),
2771
+ outputSchema: investodayCodeDataOutputSchema,
2772
+ },
2773
+ {
2774
+ name: "list_stock_val_factors",
2775
+ toolName: "list_stock_val_factors",
2776
+ description: "List stock valuation factors data from Investoday.",
2777
+ operationType: "read",
2778
+ inputSchema: s.object("Arguments for the Investoday list_stock_val_factors operation.", {
2779
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_stock_val_factors.", {
2780
+ minLength: 1,
2781
+ }), ["2026-07-01"]),
2782
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_stock_val_factors.", { minLength: 1 }), ["2026-07-31"]),
2783
+ stockCodes: s.withExamples(s.array("Stock codes Accepted by Investoday for list_stock_val_factors.", s.string("One stockCode value.")), [["000001", "600519"]]),
2784
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_val_factors.", {
2785
+ minimum: 1,
2786
+ maximum: 500,
2787
+ }), [10]),
2788
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_val_factors.", { minimum: 1 }), [1]),
2789
+ }, { required: [] }),
2790
+ outputSchema: investodayCodeDataOutputSchema,
2791
+ },
2792
+ {
2793
+ name: "list_stock_volume_price",
2794
+ toolName: "list_stock_volume_price",
2795
+ description: "List stock volume price data from Investoday.",
2796
+ operationType: "read",
2797
+ inputSchema: s.object("Arguments for the Investoday list_stock_volume_price operation.", {
2798
+ date: s.withExamples(s.date("Query date in YYYY-MM-DD format Accepted by Investoday for list_stock_volume_price.", {
2799
+ minLength: 1,
2800
+ }), ["2026-07-10"]),
2801
+ cycleType: s.withExamples(s.withEnum(s.integer("Analysis cycle type Accepted by Investoday for list_stock_volume_price.", {
2802
+ minimum: 1,
2803
+ maximum: 3,
2804
+ }), [1, 2, 3]), [2]),
2805
+ priceFeedbacks: s.withExamples(s.array("Price feedback values Accepted by Investoday for list_stock_volume_price.", s.stringEnum("One priceFeedback value.", [
2806
+ "strong_positive",
2807
+ "positive",
2808
+ "flat",
2809
+ "negative",
2810
+ "strong_negative",
2811
+ ])), [["positive", "strong_positive"]]),
2812
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_stock_volume_price.", {
2813
+ minimum: 1,
2814
+ maximum: 500,
2815
+ }), [10]),
2816
+ minVolumePriceScore: s.withExamples(s.number("Minimum volume-price score Accepted by Investoday for list_stock_volume_price.", {
2817
+ minimum: 0,
2818
+ maximum: 100,
2819
+ }), [60]),
2820
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_stock_volume_price.", { minimum: 1 }), [1]),
2821
+ matchMode: s.withExamples(s.withEnum(s.integer("Result matching mode Accepted by Investoday for list_stock_volume_price.", {
2822
+ minimum: 1,
2823
+ maximum: 2,
2824
+ }), [1, 2]), [1]),
2825
+ signalCodes: s.withExamples(s.array("Technical signal codes Accepted by Investoday for list_stock_volume_price.", s.withEnum(s.integer("One signalCode value."), [1, 2, 3, 4, 5])), [[1, 2, 5]]),
2826
+ }, { required: ["date", "cycleType"] }),
2827
+ outputSchema: investodayCodeDataOutputSchema,
2828
+ },
2829
+ ];