@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,642 @@
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 indicesIndustriesOfficialTools = [
5
+ {
6
+ name: "list_concepts",
7
+ toolName: "list_concepts",
8
+ description: "List concepts data from Investoday.",
9
+ operationType: "read",
10
+ inputSchema: s.object("Arguments for the Investoday list_concepts operation.", {
11
+ conceptName: s.withExamples(s.nonEmptyString("Concept name Accepted by Investoday for list_concepts."), [
12
+ "次新股",
13
+ ]),
14
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_concepts.", {
15
+ minimum: 1,
16
+ maximum: 500,
17
+ }), [10]),
18
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_concepts.", {
19
+ minimum: 1,
20
+ }), [1]),
21
+ }, { required: [] }),
22
+ outputSchema: investodayCodeDataOutputSchema,
23
+ },
24
+ {
25
+ name: "get_index_basic_info",
26
+ toolName: "get_index_basic_info",
27
+ description: "Get index basic info data from Investoday.",
28
+ operationType: "read",
29
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_index_basic_info operation.", {
30
+ indexCode: s.withExamples(s.nonEmptyString("Index code Supply exactly one of indexCode or indexCodes."), [
31
+ "399300",
32
+ ]),
33
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or indexCode.", s.string("One indexCode value."), {
34
+ minItems: 1,
35
+ }), [["000001", "000300"]]),
36
+ }, { required: [] }), ["indexCode", "indexCodes"]),
37
+ outputSchema: investodayCodeDataOutputSchema,
38
+ },
39
+ {
40
+ name: "list_index_quote_barch",
41
+ toolName: "list_index_quote_barch",
42
+ description: "List index quote barch data from Investoday.",
43
+ operationType: "read",
44
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_index_quote_barch operation.", {
45
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_index_quote_barch.", {
46
+ minLength: 1,
47
+ }), ["2025-01-01"]),
48
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_index_quote_barch.", {
49
+ minLength: 1,
50
+ }), ["2025-01-01"]),
51
+ indexCode: s.withExamples(s.nonEmptyString("Index code Supply exactly one of indexCode or indexCodes."), [
52
+ "000300",
53
+ ]),
54
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_index_quote_barch.", {
55
+ minimum: 1,
56
+ maximum: 500,
57
+ }), [10]),
58
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_index_quote_barch.", { minimum: 1 }), [1]),
59
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or indexCode.", s.string("One indexCode value."), {
60
+ minItems: 1,
61
+ }), [["399300", "399301"]]),
62
+ }, { required: [] }), ["indexCode", "indexCodes"]),
63
+ outputSchema: investodayCodeDataOutputSchema,
64
+ },
65
+ {
66
+ name: "list_index_sample",
67
+ toolName: "list_index_sample",
68
+ description: "List index sample data from Investoday.",
69
+ operationType: "read",
70
+ inputSchema: s.object("Arguments for the Investoday list_index_sample operation.", {
71
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_index_sample.", {
72
+ minLength: 1,
73
+ }), ["2020-01-01"]),
74
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_index_sample.", {
75
+ minLength: 1,
76
+ }), ["2026-07-31"]),
77
+ indexCode: s.withExamples(s.nonEmptyString("Index code Accepted by Investoday for list_index_sample."), [
78
+ "000300",
79
+ ]),
80
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_index_sample.", {
81
+ minimum: 1,
82
+ maximum: 500,
83
+ }), [10]),
84
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_index_sample.", {
85
+ minimum: 1,
86
+ }), [1]),
87
+ indexCodes: s.withExamples(s.array("Index codes Accepted by Investoday for list_index_sample.", s.string("One indexCode value.")), [["000300", "000905"]]),
88
+ }, { required: [] }),
89
+ outputSchema: investodayCodeDataOutputSchema,
90
+ },
91
+ {
92
+ name: "list_industries",
93
+ toolName: "list_industries",
94
+ description: "List industries data from Investoday.",
95
+ operationType: "read",
96
+ inputSchema: s.object("Arguments for the Investoday list_industries operation.", {
97
+ industryName: s.withExamples(s.nonEmptyString("Industry name Accepted by Investoday for list_industries."), [
98
+ "煤炭",
99
+ ]),
100
+ industryType: s.withExamples(s.stringEnum("Industry classification type Accepted by Investoday for list_industries.", [
101
+ "INDUS2_CL",
102
+ "INDUS3_CL",
103
+ "INDUS4_CL",
104
+ "INDUS5_CL",
105
+ "INDUS6_CL",
106
+ "INDUS8_CL",
107
+ ]), ["INDUS4_CL"]),
108
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industries.", {
109
+ minimum: 1,
110
+ maximum: 500,
111
+ }), [10]),
112
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industries.", {
113
+ minimum: 1,
114
+ }), [1]),
115
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_industries."), [
116
+ "740000",
117
+ ]),
118
+ }, { required: [] }),
119
+ outputSchema: investodayCodeDataOutputSchema,
120
+ },
121
+ {
122
+ name: "list_industry_quote",
123
+ toolName: "list_industry_quote",
124
+ description: "List industry quote data from Investoday.",
125
+ operationType: "read",
126
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_industry_quote operation.", {
127
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_industry_quote.", { minLength: 1 }), ["2025-01-01"]),
128
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_industry_quote.", { minLength: 1 }), ["2025-01-01"]),
129
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_quote.", {
130
+ minimum: 1,
131
+ maximum: 500,
132
+ }), [10]),
133
+ industryCodes: s.withExamples(s.array("Industry codes Supply exactly one of industryCodes or industryCode.", s.string("One industryCode value."), { minItems: 1 }), [["640000", "740000"]]),
134
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_quote.", { minimum: 1 }), [1]),
135
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Supply exactly one of industryCode or industryCodes."), ["640000"]),
136
+ }, { required: [] }), ["industryCode", "industryCodes"]),
137
+ outputSchema: investodayCodeDataOutputSchema,
138
+ },
139
+ {
140
+ name: "list_concept_etf_mapping",
141
+ toolName: "list_concept_etf_mapping",
142
+ description: "List concept etf mapping data from Investoday.",
143
+ operationType: "read",
144
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_concept_etf_mapping operation.", {
145
+ fundCodes: s.withExamples(s.array("Fund codes Supply exactly one of fundCodes or conceptCodes.", s.string("One fundCode value."), {
146
+ minItems: 1,
147
+ }), [["512480", "515880"]]),
148
+ conceptCodes: s.withExamples(s.array("Concept codes Supply exactly one of conceptCodes or fundCodes.", s.string("One conceptCode value."), { minItems: 1 }), [["CLS80006", "CLS80003"]]),
149
+ minAnnualWeight: s.withExamples(s.number("Minimum annual weight filter Accepted by Investoday for list_concept_etf_mapping.", {
150
+ minimum: 0,
151
+ maximum: 100,
152
+ }), [20]),
153
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_concept_etf_mapping.", {
154
+ minimum: 1,
155
+ maximum: 500,
156
+ }), [10]),
157
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_concept_etf_mapping.", {
158
+ minimum: 1,
159
+ }), [1]),
160
+ }, { required: [] }), ["conceptCodes", "fundCodes"]),
161
+ outputSchema: investodayCodeDataOutputSchema,
162
+ },
163
+ {
164
+ name: "list_index_finance",
165
+ toolName: "list_index_finance",
166
+ description: "List index finance data from Investoday.",
167
+ operationType: "read",
168
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_index_finance operation.", {
169
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_index_finance.", { minLength: 1 }), ["2015-03-31"]),
170
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_index_finance.", {
171
+ minLength: 1,
172
+ }), ["2025-12-31"]),
173
+ indexCode: s.withExamples(s.nonEmptyString("Index code Supply exactly one of indexCode or indexCodes."), [
174
+ "000300",
175
+ ]),
176
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_index_finance.", {
177
+ minimum: 1,
178
+ maximum: 500,
179
+ }), [10]),
180
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_index_finance.", {
181
+ minimum: 1,
182
+ }), [1]),
183
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or indexCode.", s.string("One indexCode value."), {
184
+ minItems: 1,
185
+ }), [["000300", "000905"]]),
186
+ }, { required: [] }), ["indexCode", "indexCodes"]),
187
+ outputSchema: investodayCodeDataOutputSchema,
188
+ },
189
+ {
190
+ name: "list_idx_idu_exposure",
191
+ toolName: "list_idx_idu_exposure",
192
+ description: "List index industry exposure data from Investoday.",
193
+ operationType: "read",
194
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_idx_idu_exposure operation.", {
195
+ queryDate: s.withExamples(s.date("Query date in YYYY-MM-DD format Accepted by Investoday for list_idx_idu_exposure.", {
196
+ minLength: 1,
197
+ }), ["2026-09-01"]),
198
+ industryLevel: s.withExamples(s.withEnum(s.integer("Industry classification level Accepted by Investoday for list_idx_idu_exposure."), [1, 2, 3]), [1]),
199
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_idx_idu_exposure.", {
200
+ minimum: 1,
201
+ maximum: 500,
202
+ }), [10]),
203
+ minIndustryWeight: s.withExamples(s.number("Minimum industry weight filter Accepted by Investoday for list_idx_idu_exposure.", {
204
+ minimum: 0,
205
+ maximum: 100,
206
+ }), [10]),
207
+ industryCodes: s.withExamples(s.array("Industry codes Supply exactly one of industryCodes or indexCodes.", s.string("One industryCode value."), { minItems: 1 }), [["640000", "730000"]]),
208
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_idx_idu_exposure.", { minimum: 1 }), [1]),
209
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or industryCodes.", s.string("One indexCode value."), { minItems: 1 }), [["000300", "000905"]]),
210
+ }, { required: ["queryDate"] }), ["indexCodes", "industryCodes"]),
211
+ outputSchema: investodayCodeDataOutputSchema,
212
+ },
213
+ {
214
+ name: "list_index_oscillator_indicators",
215
+ toolName: "list_index_oscillator_indicators",
216
+ description: "List index oscillator indicators data from Investoday.",
217
+ operationType: "read",
218
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_index_oscillator_indicators operation.", {
219
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_index_oscillator_indicators.", {
220
+ minLength: 1,
221
+ }), ["2020-01-01"]),
222
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_index_oscillator_indicators.", {
223
+ minLength: 1,
224
+ }), ["2025-01-01"]),
225
+ indexCode: s.withExamples(s.nonEmptyString("Index code Supply exactly one of indexCode or indexCodes."), [
226
+ "000300",
227
+ ]),
228
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_index_oscillator_indicators.", {
229
+ minimum: 1,
230
+ maximum: 500,
231
+ }), [10]),
232
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_index_oscillator_indicators.", {
233
+ minimum: 1,
234
+ }), [1]),
235
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or indexCode.", s.string("One indexCode value."), {
236
+ minItems: 1,
237
+ }), [["000001", "000300"]]),
238
+ }, { required: [] }), ["indexCode", "indexCodes"]),
239
+ outputSchema: investodayCodeDataOutputSchema,
240
+ },
241
+ {
242
+ name: "list_index_price_volume_indicators",
243
+ toolName: "list_index_price_volume_indicators",
244
+ description: "List index price volume indicators data from Investoday.",
245
+ operationType: "read",
246
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_index_price_volume_indicators operation.", {
247
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_index_price_volume_indicators.", {
248
+ minLength: 1,
249
+ }), ["2020-01-01"]),
250
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_index_price_volume_indicators.", {
251
+ minLength: 1,
252
+ }), ["2025-01-01"]),
253
+ indexCode: s.withExamples(s.nonEmptyString("Index code Supply exactly one of indexCode or indexCodes."), [
254
+ "000300",
255
+ ]),
256
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_index_price_volume_indicators.", {
257
+ minimum: 1,
258
+ maximum: 500,
259
+ }), [10]),
260
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_index_price_volume_indicators.", {
261
+ minimum: 1,
262
+ }), [1]),
263
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or indexCode.", s.string("One indexCode value."), {
264
+ minItems: 1,
265
+ }), [["000001", "000300"]]),
266
+ }, { required: [] }), ["indexCode", "indexCodes"]),
267
+ outputSchema: investodayCodeDataOutputSchema,
268
+ },
269
+ {
270
+ name: "get_index_range_gains",
271
+ toolName: "get_index_range_gains",
272
+ description: "Get index range gains data from Investoday.",
273
+ operationType: "read",
274
+ inputSchema: s.object("Arguments for the Investoday get_index_range_gains operation.", {
275
+ indexCode: s.withExamples(s.nonEmptyString("Index code Accepted by Investoday for get_index_range_gains."), [
276
+ "000300",
277
+ ]),
278
+ }, { required: ["indexCode"] }),
279
+ outputSchema: investodayCodeDataOutputSchema,
280
+ },
281
+ {
282
+ name: "list_index_strength_trend_indicators",
283
+ toolName: "list_index_strength_trend_indicators",
284
+ description: "List index strength trend indicators data from Investoday.",
285
+ operationType: "read",
286
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_index_strength_trend_indicators operation.", {
287
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_index_strength_trend_indicators.", {
288
+ minLength: 1,
289
+ }), ["2020-01-01"]),
290
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_index_strength_trend_indicators.", {
291
+ minLength: 1,
292
+ }), ["2025-01-01"]),
293
+ indexCode: s.withExamples(s.nonEmptyString("Index code Supply exactly one of indexCode or indexCodes."), [
294
+ "000300",
295
+ ]),
296
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_index_strength_trend_indicators.", {
297
+ minimum: 1,
298
+ maximum: 500,
299
+ }), [10]),
300
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_index_strength_trend_indicators.", {
301
+ minimum: 1,
302
+ }), [1]),
303
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or indexCode.", s.string("One indexCode value."), {
304
+ minItems: 1,
305
+ }), [["000001", "000300"]]),
306
+ }, { required: [] }), ["indexCode", "indexCodes"]),
307
+ outputSchema: investodayCodeDataOutputSchema,
308
+ },
309
+ {
310
+ name: "list_index_technical_indicators",
311
+ toolName: "list_index_technical_indicators",
312
+ description: "List index technical indicators data from Investoday.",
313
+ operationType: "read",
314
+ inputSchema: s.object("Arguments for the Investoday list_index_technical_indicators operation.", {
315
+ indexCode: s.withExamples(s.nonEmptyString("Index code Accepted by Investoday for list_index_technical_indicators."), ["000001"]),
316
+ }, { required: ["indexCode"] }),
317
+ outputSchema: investodayCodeDataOutputSchema,
318
+ },
319
+ {
320
+ name: "get_index_valuation",
321
+ toolName: "get_index_valuation",
322
+ description: "Get index valuation data from Investoday.",
323
+ operationType: "read",
324
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday get_index_valuation operation.", {
325
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for get_index_valuation.", { minLength: 1 }), ["2025-11-04"]),
326
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for get_index_valuation.", { minLength: 1 }), ["2025-11-04"]),
327
+ indexCode: s.withExamples(s.nonEmptyString("Index code Supply exactly one of indexCode or indexCodes."), [
328
+ "399300",
329
+ ]),
330
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_index_valuation.", {
331
+ minimum: 1,
332
+ maximum: 500,
333
+ }), [10]),
334
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_index_valuation.", { minimum: 1 }), [1]),
335
+ indexCodes: s.withExamples(s.array("Index codes Supply exactly one of indexCodes or indexCode.", s.string("One indexCode value."), {
336
+ minItems: 1,
337
+ }), [["399300", "399301"]]),
338
+ }, { required: [] }), ["indexCode", "indexCodes"]),
339
+ outputSchema: investodayCodeDataOutputSchema,
340
+ },
341
+ {
342
+ name: "list_idu_concept_mappings",
343
+ toolName: "list_idu_concept_mappings",
344
+ description: "List industry concept mappings data from Investoday.",
345
+ operationType: "read",
346
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_idu_concept_mappings operation.", {
347
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_idu_concept_mappings.", {
348
+ minLength: 1,
349
+ }), ["2026-01-01"]),
350
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_idu_concept_mappings.", {
351
+ minLength: 1,
352
+ }), ["2026-09-01"]),
353
+ conceptCodes: s.withExamples(s.array("Concept codes Supply exactly one of conceptCodes or industryCodes.", s.string("One conceptCode value."), { minItems: 1 }), [["CLS80006", "CLS80003"]]),
354
+ industryLevel: s.withExamples(s.withEnum(s.integer("Industry classification level Accepted by Investoday for list_idu_concept_mappings."), [1, 2, 3]), [1]),
355
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_idu_concept_mappings.", {
356
+ minimum: 1,
357
+ maximum: 500,
358
+ }), [10]),
359
+ minTotalCapWeight: s.withExamples(s.number("Minimum total market-capitalization weight Accepted by Investoday for list_idu_concept_mappings."), [0.2]),
360
+ industryCodes: s.withExamples(s.array("Industry codes Supply exactly one of industryCodes or conceptCodes.", s.string("One industryCode value."), { minItems: 1 }), [["640000", "730000"]]),
361
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_idu_concept_mappings.", {
362
+ minimum: 1,
363
+ }), [1]),
364
+ }, { required: [] }), ["conceptCodes", "industryCodes"]),
365
+ outputSchema: investodayCodeDataOutputSchema,
366
+ },
367
+ {
368
+ name: "list_industry_etf_mapping",
369
+ toolName: "list_industry_etf_mapping",
370
+ description: "List industry etf mapping data from Investoday.",
371
+ operationType: "read",
372
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_industry_etf_mapping operation.", {
373
+ fundCodes: s.withExamples(s.array("Fund codes Supply exactly one of fundCodes or industryCodes.", s.string("One fundCode value."), {
374
+ minItems: 1,
375
+ }), [["512720", "515880"]]),
376
+ minAnnualWeight: s.withExamples(s.number("Minimum annual weight filter Accepted by Investoday for list_industry_etf_mapping.", {
377
+ minimum: 0,
378
+ maximum: 100,
379
+ }), [20]),
380
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_etf_mapping.", {
381
+ minimum: 1,
382
+ maximum: 500,
383
+ }), [10]),
384
+ industryCodes: s.withExamples(s.array("Industry codes Supply exactly one of industryCodes or fundCodes.", s.string("One industryCode value."), { minItems: 1 }), [["640000", "730000"]]),
385
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_etf_mapping.", {
386
+ minimum: 1,
387
+ }), [1]),
388
+ }, { required: [] }), ["fundCodes", "industryCodes"]),
389
+ outputSchema: investodayCodeDataOutputSchema,
390
+ },
391
+ {
392
+ name: "list_industry_excess_alph",
393
+ toolName: "list_industry_excess_alph",
394
+ description: "List industry excess alph data from Investoday.",
395
+ operationType: "read",
396
+ inputSchema: s.object("Arguments for the Investoday list_industry_excess_alph operation.", {
397
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_industry_excess_alph.", {
398
+ minLength: 1,
399
+ }), ["2026-01-01"]),
400
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_industry_excess_alph.", {
401
+ minLength: 1,
402
+ }), ["2026-07-31"]),
403
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_excess_alph.", {
404
+ minimum: 1,
405
+ maximum: 500,
406
+ }), [10]),
407
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_excess_alph.", { minimum: 1 }), [1]),
408
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_industry_excess_alph."), ["640000"]),
409
+ }, { required: ["industryCode"] }),
410
+ outputSchema: investodayCodeDataOutputSchema,
411
+ },
412
+ {
413
+ name: "list__idu_fin_ind_sol_avg",
414
+ toolName: "list__idu_fin_ind_sol_avg",
415
+ description: "List industry financial indicator sol average data from Investoday.",
416
+ operationType: "read",
417
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list__idu_fin_ind_sol_avg operation.", {
418
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list__idu_fin_ind_sol_avg.", {
419
+ minLength: 1,
420
+ }), ["2020-01-01"]),
421
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list__idu_fin_ind_sol_avg.", {
422
+ minLength: 1,
423
+ }), ["2025-01-01"]),
424
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list__idu_fin_ind_sol_avg.", {
425
+ minimum: 1,
426
+ maximum: 500,
427
+ }), [10]),
428
+ industryCodes: s.withExamples(s.array("Industry codes Supply exactly one of industryCodes or industryCode.", s.string("One industryCode value."), { minItems: 1 }), [["640000", "740000"]]),
429
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list__idu_fin_ind_sol_avg.", {
430
+ minimum: 1,
431
+ }), [1]),
432
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Supply exactly one of industryCode or industryCodes."), ["640000"]),
433
+ }, { required: [] }), ["industryCode", "industryCodes"]),
434
+ outputSchema: investodayCodeDataOutputSchema,
435
+ },
436
+ {
437
+ name: "list_industry_fin_ttm",
438
+ toolName: "list_industry_fin_ttm",
439
+ description: "List industry financial ttm data from Investoday.",
440
+ operationType: "read",
441
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_industry_fin_ttm operation.", {
442
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_industry_fin_ttm.", {
443
+ minLength: 1,
444
+ }), ["2024-03-31"]),
445
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_industry_fin_ttm.", { minLength: 1 }), ["2025-12-31"]),
446
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_fin_ttm.", {
447
+ minimum: 1,
448
+ maximum: 500,
449
+ }), [10]),
450
+ industryCodes: s.withExamples(s.array("Industry codes Supply exactly one of industryCodes or industryCode.", s.string("One industryCode value."), { minItems: 1 }), [["801780", "801790"]]),
451
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_fin_ttm.", { minimum: 1 }), [1]),
452
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Supply exactly one of industryCode or industryCodes."), ["801780"]),
453
+ }, { required: [] }), ["industryCode", "industryCodes"]),
454
+ outputSchema: investodayCodeDataOutputSchema,
455
+ },
456
+ {
457
+ name: "get_industry_financial_overview",
458
+ toolName: "get_industry_financial_overview",
459
+ description: "Get industry financial overview data from Investoday.",
460
+ operationType: "read",
461
+ inputSchema: s.object("Arguments for the Investoday get_industry_financial_overview operation.", {
462
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for get_industry_financial_overview."), ["640000"]),
463
+ }, { required: ["industryCode"] }),
464
+ outputSchema: investodayCodeDataOutputSchema,
465
+ },
466
+ {
467
+ name: "list_industry_forecasts",
468
+ toolName: "list_industry_forecasts",
469
+ description: "List industry forecasts data from Investoday.",
470
+ operationType: "read",
471
+ inputSchema: s.object("Arguments for the Investoday list_industry_forecasts operation.", {
472
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_industry_forecasts."), ["640000"]),
473
+ }, { required: ["industryCode"] }),
474
+ outputSchema: investodayCodeDataOutputSchema,
475
+ },
476
+ {
477
+ name: "get_industry_market_stats",
478
+ toolName: "get_industry_market_stats",
479
+ description: "Get industry market stats data from Investoday.",
480
+ operationType: "read",
481
+ inputSchema: s.object("Arguments for the Investoday get_industry_market_stats operation.", {
482
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for get_industry_market_stats."), ["640000"]),
483
+ }, { required: ["industryCode"] }),
484
+ outputSchema: investodayCodeDataOutputSchema,
485
+ },
486
+ {
487
+ name: "list_industry_pros_idx",
488
+ toolName: "list_industry_pros_idx",
489
+ description: "List industry pros index data from Investoday.",
490
+ operationType: "read",
491
+ inputSchema: s.object("Arguments for the Investoday list_industry_pros_idx operation.", {
492
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_industry_pros_idx.", {
493
+ minLength: 1,
494
+ }), ["2025-01-01"]),
495
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_industry_pros_idx.", { minLength: 1 }), ["2026-08-18"]),
496
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_pros_idx.", {
497
+ minimum: 1,
498
+ maximum: 500,
499
+ }), [10]),
500
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_pros_idx.", { minimum: 1 }), [1]),
501
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_industry_pros_idx."), ["740000"]),
502
+ }, { required: ["industryCode"] }),
503
+ outputSchema: investodayCodeDataOutputSchema,
504
+ },
505
+ {
506
+ name: "list_industry_prosperity_index",
507
+ toolName: "list_industry_prosperity_index",
508
+ description: "List industry prosperity index data from Investoday.",
509
+ operationType: "read",
510
+ inputSchema: s.object("Arguments for the Investoday list_industry_prosperity_index operation.", {
511
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_industry_prosperity_index.", {
512
+ minLength: 1,
513
+ }), ["2025-01-01"]),
514
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_industry_prosperity_index.", {
515
+ minLength: 1,
516
+ }), ["2025-01-01"]),
517
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_prosperity_index.", {
518
+ minimum: 1,
519
+ maximum: 500,
520
+ }), [10]),
521
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_prosperity_index.", {
522
+ minimum: 1,
523
+ }), [1]),
524
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_industry_prosperity_index."), ["740000"]),
525
+ }, { required: ["industryCode"] }),
526
+ outputSchema: investodayCodeDataOutputSchema,
527
+ },
528
+ {
529
+ name: "list_industry_rotation",
530
+ toolName: "list_industry_rotation",
531
+ description: "List industry rotation data from Investoday.",
532
+ operationType: "read",
533
+ inputSchema: s.object("Arguments for the Investoday list_industry_rotation operation.", {
534
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_industry_rotation.", {
535
+ minLength: 1,
536
+ }), ["2020-01-01"]),
537
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_industry_rotation.", { minLength: 1 }), ["2025-01-01"]),
538
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_rotation.", {
539
+ minimum: 1,
540
+ maximum: 500,
541
+ }), [10]),
542
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_rotation.", { minimum: 1 }), [1]),
543
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_industry_rotation."), ["640000"]),
544
+ }, { required: ["industryCode"] }),
545
+ outputSchema: investodayCodeDataOutputSchema,
546
+ },
547
+ {
548
+ name: "list_idu_turnover_rates",
549
+ toolName: "list_idu_turnover_rates",
550
+ description: "List industry turnover rates data from Investoday.",
551
+ operationType: "read",
552
+ inputSchema: s.object("Arguments for the Investoday list_idu_turnover_rates operation.", {
553
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_idu_turnover_rates.", {
554
+ minLength: 1,
555
+ }), ["2020-01-01"]),
556
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_idu_turnover_rates.", { minLength: 1 }), ["2025-01-01"]),
557
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_idu_turnover_rates.", {
558
+ minimum: 1,
559
+ maximum: 500,
560
+ }), [10]),
561
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_idu_turnover_rates.", { minimum: 1 }), [1]),
562
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Accepted by Investoday for list_idu_turnover_rates."), ["640000"]),
563
+ }, { required: ["industryCode"] }),
564
+ outputSchema: investodayCodeDataOutputSchema,
565
+ },
566
+ {
567
+ name: "list_industry_val_ind",
568
+ toolName: "list_industry_val_ind",
569
+ description: "List industry valuation indicator data from Investoday.",
570
+ operationType: "read",
571
+ inputSchema: s.requireExactlyOneProperty(s.object("Arguments for the Investoday list_industry_val_ind operation.", {
572
+ beginDate: s.withExamples(s.date("Start date in YYYY-MM-DD format Accepted by Investoday for list_industry_val_ind.", {
573
+ minLength: 1,
574
+ }), ["2020-01-01"]),
575
+ endDate: s.withExamples(s.date("End date in YYYY-MM-DD format Accepted by Investoday for list_industry_val_ind.", { minLength: 1 }), ["2025-01-01"]),
576
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_industry_val_ind.", {
577
+ minimum: 1,
578
+ maximum: 500,
579
+ }), [10]),
580
+ industryCodes: s.withExamples(s.array("Industry codes Supply exactly one of industryCodes or industryCode.", s.string("One industryCode value."), { minItems: 1 }), [["640000", "740000"]]),
581
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_industry_val_ind.", { minimum: 1 }), [1]),
582
+ industryCode: s.withExamples(s.nonEmptyString("Industry code Supply exactly one of industryCode or industryCodes."), ["640000"]),
583
+ }, { required: [] }), ["industryCode", "industryCodes"]),
584
+ outputSchema: investodayCodeDataOutputSchema,
585
+ },
586
+ {
587
+ name: "get_concept_realtime_quote",
588
+ toolName: "get_concept_realtime_quote",
589
+ description: "Get concept realtime quote data from Investoday.",
590
+ operationType: "read",
591
+ inputSchema: s.object("Arguments for the Investoday get_concept_realtime_quote operation.", {
592
+ conceptType: s.withExamples(s.nonEmptyString("Concept type Accepted by Investoday for get_concept_realtime_quote."), ["jy"]),
593
+ conceptCode: s.withExamples(s.nonEmptyString("Concept code Accepted by Investoday for get_concept_realtime_quote."), ["14060061"]),
594
+ }, { required: ["conceptType", "conceptCode"] }),
595
+ outputSchema: investodayCodeDataOutputSchema,
596
+ },
597
+ {
598
+ name: "list_concept_real_quote",
599
+ toolName: "list_concept_real_quote",
600
+ description: "List concept real quote data from Investoday.",
601
+ operationType: "read",
602
+ inputSchema: s.object("Arguments for the Investoday list_concept_real_quote operation.", {
603
+ sortColumn: s.withExamples(s.nonEmptyString("Column used to sort the result Accepted by Investoday for list_concept_real_quote."), ["changeRatio"]),
604
+ conceptType: s.withExamples(s.withEnum(s.integer("Concept type Accepted by Investoday for list_concept_real_quote."), [1, 2]), [1]),
605
+ conceptCodes: s.array("Concept codes Accepted by Investoday for list_concept_real_quote.", s.string("One conceptCode value.")),
606
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for list_concept_real_quote.", {
607
+ minimum: 1,
608
+ maximum: 500,
609
+ }), [10]),
610
+ pageNum: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for list_concept_real_quote.", { minimum: 1 }), [1]),
611
+ order: s.withExamples(s.nonEmptyString("Sort order Accepted by Investoday for list_concept_real_quote."), [
612
+ "desc",
613
+ ]),
614
+ }, { required: ["conceptType", "sortColumn"] }),
615
+ outputSchema: investodayCodeDataOutputSchema,
616
+ },
617
+ {
618
+ name: "get_concept_stock_realtime_quote",
619
+ toolName: "get_concept_stock_realtime_quote",
620
+ description: "Get concept stock realtime quote data from Investoday.",
621
+ operationType: "read",
622
+ inputSchema: s.object("Arguments for the Investoday get_concept_stock_realtime_quote operation.", {
623
+ sortColumn: s.withExamples(s.nonEmptyString("Column used to sort the result Accepted by Investoday for get_concept_stock_realtime_quote."), ["changeRatio"]),
624
+ conceptType: s.withExamples(s.stringEnum("Concept type Accepted by Investoday for get_concept_stock_realtime_quote.", ["jy", "cls"]), ["jy"]),
625
+ conceptCode: s.withExamples(s.nonEmptyString("Concept code Accepted by Investoday for get_concept_stock_realtime_quote."), ["14060061"]),
626
+ pageSize: s.withExamples(s.integer("Number of records per page Accepted by Investoday for get_concept_stock_realtime_quote."), [10]),
627
+ page: s.withExamples(s.integer("Page number, starting at 1 Accepted by Investoday for get_concept_stock_realtime_quote."), [1]),
628
+ order: s.withExamples(s.stringEnum("Sort order Accepted by Investoday for get_concept_stock_realtime_quote.", ["asc", "desc"]), ["desc"]),
629
+ }, { required: ["conceptType", "conceptCode"] }),
630
+ outputSchema: investodayCodeDataOutputSchema,
631
+ },
632
+ {
633
+ name: "get_index_realtime_quotes",
634
+ toolName: "get_index_realtime_quotes",
635
+ description: "Get index realtime quotes data from Investoday.",
636
+ operationType: "read",
637
+ inputSchema: s.object("Arguments for the Investoday get_index_realtime_quotes operation.", {
638
+ indexCodes: s.withExamples(s.array("Index codes Accepted by Investoday for get_index_realtime_quotes.", s.string("One indexCode value."), { minItems: 1 }), [["000001", "399006"]]),
639
+ }, { required: ["indexCodes"] }),
640
+ outputSchema: investodayCodeDataOutputSchema,
641
+ },
642
+ ];
@@ -0,0 +1,2 @@
1
+ import type { InvestodayOfficialToolDefinition } from "../official-tool-types.ts";
2
+ export declare const macroCalendarOfficialTools: readonly InvestodayOfficialToolDefinition[];