stock-sdk 2.0.0-beta.0 → 2.0.0

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 (62) hide show
  1. package/README.md +27 -23
  2. package/dist/{adapters-C0s5bM8O.d.cts → adapters-BvE63CMd.d.cts} +16 -1
  3. package/dist/{adapters-C0s5bM8O.d.ts → adapters-BvE63CMd.d.ts} +16 -1
  4. package/dist/{addIndicators-TPEcddTW.d.cts → addIndicators-DwEr9RKK.d.cts} +207 -191
  5. package/dist/{addIndicators-TPEcddTW.d.ts → addIndicators-DwEr9RKK.d.ts} +207 -191
  6. package/dist/cache.cjs +1 -1
  7. package/dist/cache.js +1 -1
  8. package/dist/chunk-2PYGJ5I5.cjs +1 -0
  9. package/dist/chunk-3NSUE34F.cjs +1 -0
  10. package/dist/chunk-4PVVFEOQ.js +1 -0
  11. package/dist/chunk-C4CA7QBB.cjs +1 -0
  12. package/dist/chunk-D2MGPO3R.js +1 -0
  13. package/dist/{chunk-JYHHLB34.js → chunk-DU7MCVLJ.js} +1 -1
  14. package/dist/{chunk-SPLQXFFF.js → chunk-F3KZXCVO.js} +1 -1
  15. package/dist/chunk-G5KF73BW.js +1 -0
  16. package/dist/chunk-GBHWMR2O.js +1 -0
  17. package/dist/chunk-LCX5Q36O.js +1 -0
  18. package/dist/chunk-PMERLSCU.cjs +1 -0
  19. package/dist/{chunk-DOOAXFSS.cjs → chunk-TVIEKKDQ.cjs} +1 -1
  20. package/dist/{chunk-BGZ4ZUAF.cjs → chunk-WCBK5KYA.cjs} +1 -1
  21. package/dist/chunk-YR2SVSXB.cjs +1 -0
  22. package/dist/cli.cjs +17 -16
  23. package/dist/cli.js +17 -16
  24. package/dist/errors.d.cts +1 -1
  25. package/dist/errors.d.ts +1 -1
  26. package/dist/{index-B0PXWAkv.d.cts → index-mlzPfoON.d.cts} +12 -0
  27. package/dist/{index-B0PXWAkv.d.ts → index-mlzPfoON.d.ts} +12 -0
  28. package/dist/index.cjs +1 -1
  29. package/dist/index.d.cts +6 -6
  30. package/dist/index.d.ts +6 -6
  31. package/dist/index.js +1 -1
  32. package/dist/indicators.cjs +1 -1
  33. package/dist/indicators.d.cts +55 -5
  34. package/dist/indicators.d.ts +55 -5
  35. package/dist/indicators.js +1 -1
  36. package/dist/mcp.cjs +5 -5
  37. package/dist/mcp.d.cts +3 -3
  38. package/dist/mcp.d.ts +3 -3
  39. package/dist/mcp.js +5 -5
  40. package/dist/screener.cjs +1 -1
  41. package/dist/screener.js +1 -1
  42. package/dist/{sdk-CGd_HgIM.d.ts → sdk-Cg_jTmTk.d.cts} +21 -527
  43. package/dist/{sdk-C_Agv5AV.d.cts → sdk-DOz03n_v.d.ts} +21 -527
  44. package/dist/signals.cjs +1 -1
  45. package/dist/signals.d.cts +1 -1
  46. package/dist/signals.d.ts +1 -1
  47. package/dist/signals.js +1 -1
  48. package/dist/symbols.cjs +1 -1
  49. package/dist/symbols.d.cts +2 -2
  50. package/dist/symbols.d.ts +2 -2
  51. package/dist/symbols.js +1 -1
  52. package/package.json +6 -10
  53. package/dist/chunk-333W3ADG.js +0 -1
  54. package/dist/chunk-4RR2H3DC.js +0 -1
  55. package/dist/chunk-66NWE54C.cjs +0 -1
  56. package/dist/chunk-6JEP4QK7.cjs +0 -1
  57. package/dist/chunk-HFN6G5M4.js +0 -1
  58. package/dist/chunk-LRE63M2C.js +0 -1
  59. package/dist/chunk-NMRUSAWS.cjs +0 -1
  60. package/dist/chunk-PVSDXLQP.cjs +0 -1
  61. package/dist/chunk-XVLG3G7T.cjs +0 -1
  62. package/dist/chunk-ZAQ7DTRY.js +0 -1
package/dist/mcp.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { S as StockSDK, R as RequestClientOptions } from './sdk-C_Agv5AV.cjs';
2
- import './index-B0PXWAkv.cjs';
3
- import './addIndicators-TPEcddTW.cjs';
1
+ import { S as StockSDK, R as RequestClientOptions } from './sdk-Cg_jTmTk.cjs';
2
+ import './addIndicators-DwEr9RKK.cjs';
3
+ import './index-mlzPfoON.cjs';
4
4
 
5
5
  type JsonRpcId = string | number | null;
6
6
  interface JsonRpcRequest {
package/dist/mcp.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { S as StockSDK, R as RequestClientOptions } from './sdk-CGd_HgIM.js';
2
- import './index-B0PXWAkv.js';
3
- import './addIndicators-TPEcddTW.js';
1
+ import { S as StockSDK, R as RequestClientOptions } from './sdk-DOz03n_v.js';
2
+ import './addIndicators-DwEr9RKK.js';
3
+ import './index-mlzPfoON.js';
4
4
 
5
5
  type JsonRpcId = string | number | null;
6
6
  interface JsonRpcRequest {
package/dist/mcp.js CHANGED
@@ -1,5 +1,5 @@
1
- import{c as K}from"./chunk-333W3ADG.js";import"./chunk-LRE63M2C.js";import"./chunk-4RR2H3DC.js";import"./chunk-ZAQ7DTRY.js";import"./chunk-JYHHLB34.js";import{e as O,i as M}from"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";function y(...t){process.stderr.write(t.map(e=>typeof e=="string"?e:JSON.stringify(e)).join(" ")+`
2
- `)}function h(t){process.stdout.write(JSON.stringify(t)+`
3
- `)}var q=1e6;function x(t){let e="";process.stdin.setEncoding("utf8"),process.stdin.on("data",i=>{e+=i;let r=e.indexOf(`
4
- `);for(;r>=0;){let s=e.slice(0,r);e=e.slice(r+1),s.trim()&&t(s),r=e.indexOf(`
5
- `)}e.length>q&&(y(`[stock-sdk mcp] \u4E22\u5F03\u8D85\u957F\u8F93\u5165\uFF08${e.length} bytes \u65E0\u6362\u884C\uFF0C\u8D85 ${q} \u4E0A\u9650\uFF09`),e="")}),process.stdin.on("error",i=>y("[stock-sdk mcp] stdin error:",i.message)),process.stdout.on("error",i=>{i.code==="EPIPE"?(y("[stock-sdk mcp] stdout EPIPE\uFF08client \u65AD\u5F00\uFF09\uFF0C\u9000\u51FA"),process.exit(0)):y("[stock-sdk mcp] stdout error:",i.message)})}var P=["2025-11-25","2025-06-18"],ue=P[0],k={name:"stock-sdk",version:"2.0.0-beta.0"},w=-32700,j=-32600,N=-32601,_=-32602,F=-32603;function I(t){return typeof t=="string"&&P.includes(t)?t:ue}function n(t,e){return{type:"object",properties:t,required:e,additionalProperties:!1}}var m={type:"array",items:{type:"string"},description:"\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26\u4EA4\u6613\u6240\u524D\u7F00\u5747\u53EF\uFF0C\u5982 ['sh600519','000001','600036']"};function o(t){return{type:"string",description:t}}var p={type:"string",enum:["daily","weekly","monthly"],default:"daily",description:"\u5386\u53F2 K \u7EBF\u5468\u671F"},b={type:"string",enum:["1","5","15","30","60"],default:"1",description:"\u5206\u949F\u5468\u671F\uFF1B1=\u5F53\u65E5\u5206\u65F6"},f={type:"string",enum:["","qfq","hfq"],default:"qfq",description:"\u590D\u6743\uFF1Aqfq=\u524D\u590D\u6743(\u9ED8\u8BA4,\u770B\u8D70\u52BF) / hfq=\u540E\u590D\u6743(\u7B97\u6536\u76CA) / ''=\u4E0D\u590D\u6743"},c={type:"string",description:"\u8D77\u59CB\u65E5\u671F YYYYMMDD"},u={type:"string",description:"\u7ED3\u675F\u65E5\u671F YYYYMMDD"};var C=["sh","sz","bj","kc","cy"],B=["NASDAQ","NYSE","AMEX"],z=[{name:"get_a_share_quotes",tier:"core",description:"\u83B7\u53D6 A \u80A1 / \u6307\u6570\u5168\u91CF\u884C\u60C5\uFF08\u817E\u8BAF\uFF09\uFF1A\u6700\u65B0\u4EF7\u3001\u6DA8\u8DCC\u5E45\u3001\u4E94\u6863\u76D8\u53E3\u3001\u5E02\u503C\u3001PE/PB \u7B49\u3002",inputSchema:n({codes:m},["codes"]),invoke:(t,e)=>t.quotes.cn(e.codes)},{name:"get_a_share_simple_quotes",tier:"full",description:"\u83B7\u53D6 A \u80A1 / \u6307\u6570\u7B80\u8981\u884C\u60C5\uFF08\u4EF7\u683C\u3001\u6DA8\u8DCC\u5E45\u3001\u6210\u4EA4\u91CF\u989D\uFF09\u3002",inputSchema:n({codes:m},["codes"]),invoke:(t,e)=>t.quotes.cnSimple(e.codes)},{name:"get_hk_quotes",tier:"core",description:"\u83B7\u53D6\u6E2F\u80A1\u884C\u60C5\u3002\u4EE3\u7801 5 \u4F4D\u6570\u5B57\uFF0C\u5E26\u4E0D\u5E26 hk \u524D\u7F00\u5747\u53EF\uFF08\u5982 00700 / hk00700\uFF09\u3002",inputSchema:n({codes:m},["codes"]),invoke:(t,e)=>t.quotes.hk(e.codes)},{name:"get_us_quotes",tier:"core",description:"\u83B7\u53D6\u7F8E\u80A1\u884C\u60C5\u3002\u4EE3\u7801\u5982 AAPL / BABA\u3002",inputSchema:n({codes:m},["codes"]),invoke:(t,e)=>t.quotes.us(e.codes)},{name:"get_fund_quotes",tier:"core",description:"\u83B7\u53D6\u516C\u52DF\u57FA\u91D1\u884C\u60C5\uFF08\u573A\u5185 / \u573A\u5916\uFF0C\u51C0\u503C\u7C7B\uFF09\u3002",inputSchema:n({codes:m},["codes"]),invoke:(t,e)=>t.quotes.fund(e.codes)},{name:"get_fund_flow",tier:"full",description:"\u83B7\u53D6\u8D44\u91D1\u6D41\u5411\uFF08\u7B80\u7248\uFF0C\u6309\u4EE3\u7801\u6279\u91CF\uFF09\u3002",inputSchema:n({codes:m},["codes"]),invoke:(t,e)=>t.quotes.fundFlow(e.codes)},{name:"get_panel_large_order",tier:"full",description:"\u83B7\u53D6\u76D8\u53E3\u5927\u5355\u5360\u6BD4\u3002",inputSchema:n({codes:m},["codes"]),invoke:(t,e)=>t.quotes.largeOrder(e.codes)},{name:"get_today_timeline",tier:"core",description:"\u83B7\u53D6 A \u80A1\u5F53\u65E5\u5206\u65F6\u8D70\u52BF\uFF08\u5355\u53EA\uFF09\u3002",inputSchema:n({code:o("\u5355\u53EA\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519")},["code"]),invoke:(t,e)=>t.quotes.timeline(e.code)}],J=[{name:"search",tier:"core",description:"\u6A21\u7CCA\u641C\u7D22\u80A1\u7968 / \u6307\u6570 / \u57FA\u91D1\uFF08\u4EE3\u7801 / \u540D\u79F0 / \u62FC\u97F3\uFF09\u3002\u8FD4\u56DE code\u3001name\u3001market\u3001category\u3002",inputSchema:n({keyword:{type:"string",description:"\u641C\u7D22\u5173\u952E\u8BCD"}},["keyword"]),invoke:(t,e)=>t.search(e.keyword)}],H=[{name:"get_a_share_code_list",tier:"full",description:"\u83B7\u53D6 A \u80A1\u5168\u91CF\u4EE3\u7801\u5217\u8868\uFF08\u53EF\u6309\u5E02\u573A\u7B5B\u9009 / \u53BB\u4EA4\u6613\u6240\u524D\u7F00\uFF09\u3002",inputSchema:n({simple:{type:"boolean",description:"\u53BB\u6389\u4EA4\u6613\u6240\u524D\u7F00"},market:{type:"string",enum:C,description:"\u6309\u677F\u5757\u7B5B\u9009"}}),invoke:(t,e)=>t.codes.cn({simple:e.simple,market:e.market})},{name:"get_us_code_list",tier:"full",description:"\u83B7\u53D6\u7F8E\u80A1\u5168\u91CF\u4EE3\u7801\u5217\u8868\u3002",inputSchema:n({simple:{type:"boolean",description:"\u53BB\u6389\u5E02\u573A\u524D\u7F00"},market:{type:"string",enum:B}}),invoke:(t,e)=>t.codes.us({simple:e.simple,market:e.market})},{name:"get_hk_code_list",tier:"full",description:"\u83B7\u53D6\u6E2F\u80A1\u5168\u91CF\u4EE3\u7801\u5217\u8868\u3002",inputSchema:n({}),invoke:t=>t.codes.hk()},{name:"get_fund_code_list",tier:"full",description:"\u83B7\u53D6\u57FA\u91D1\u5168\u91CF\u4EE3\u7801\u5217\u8868\u3002",inputSchema:n({}),invoke:t=>t.codes.fund()}],L=[{name:"get_all_a_share_quotes",tier:"full",description:"\u6279\u91CF\u62C9\u53D6\u5168\u5E02\u573A A \u80A1\u884C\u60C5\u3002\u26A0\uFE0F \u53EF\u80FD\u8017\u65F6\u6570\u5341\u79D2\u3001\u8FD4\u56DE\u6570\u5343\u6761\uFF08\u7ED3\u679C\u4F1A\u88AB\u88C1\u526A\uFF09\u3002",inputSchema:n({market:{type:"string",enum:C},batchSize:{type:"integer",description:"\u5355\u6279\u4EE3\u7801\u6570\uFF0C\u9ED8\u8BA4 500"},concurrency:{type:"integer",description:"\u5E76\u53D1\u6570\uFF0C\u9ED8\u8BA4 7"}}),invoke:(t,e)=>t.batch.cn({market:e.market,batchSize:e.batchSize,concurrency:e.concurrency})},{name:"get_all_hk_quotes",tier:"full",description:"\u6279\u91CF\u62C9\u53D6\u5168\u5E02\u573A\u6E2F\u80A1\u884C\u60C5\u3002\u26A0\uFE0F \u8017\u65F6\u3002",inputSchema:n({batchSize:{type:"integer"},concurrency:{type:"integer"}}),invoke:(t,e)=>t.batch.hk({batchSize:e.batchSize,concurrency:e.concurrency})},{name:"get_all_us_quotes",tier:"full",description:"\u6279\u91CF\u62C9\u53D6\u5168\u5E02\u573A\u7F8E\u80A1\u884C\u60C5\u3002\u26A0\uFE0F \u8017\u65F6\u3002",inputSchema:n({market:{type:"string",enum:B},batchSize:{type:"integer"},concurrency:{type:"integer"}}),invoke:(t,e)=>t.batch.us({market:e.market,batchSize:e.batchSize,concurrency:e.concurrency})},{name:"get_quotes_by_codes",tier:"full",description:"\u6309\u4EE3\u7801\u5217\u8868\u6279\u91CF\u62C9\u53D6\u5B8C\u6574\u884C\u60C5\u3002",inputSchema:n({codes:m,batchSize:{type:"integer"},concurrency:{type:"integer"}},["codes"]),invoke:(t,e)=>t.batch.byCodes(e.codes,{batchSize:e.batchSize,concurrency:e.concurrency})}];var le=["A","HK","US"],me=["ma","macd","boll","kdj","rsi","wr","bias","cci","atr","obv","roc","dmi","sar","kc"],U=[{name:"get_history_kline",tier:"core",description:"A \u80A1 / \u6307\u6570\u5386\u53F2 K \u7EBF\uFF08\u65E5 / \u5468 / \u6708\uFF0C\u542B\u590D\u6743\uFF09\uFF1A\u5F00\u9AD8\u4F4E\u6536\u3001\u6210\u4EA4\u91CF\u989D\u3001\u632F\u5E45\u3001\u6DA8\u8DCC\u5E45\u7B49\u3002\u590D\u6743\u9ED8\u8BA4 qfq\uFF08\u524D\u590D\u6743\uFF0C\u770B\u8D70\u52BF\uFF09\uFF1B\u505A\u56DE\u6D4B / \u6536\u76CA\u8BA1\u7B97\u8BF7\u663E\u5F0F\u4F20 hfq\uFF08\u540E\u590D\u6743\uFF09\u6216 ''\uFF08\u4E0D\u590D\u6743\uFF09\u3002\u65E5\u671F\u683C\u5F0F YYYYMMDD\u3002",inputSchema:n({symbol:o("\u80A1\u7968 / \u6307\u6570\u4EE3\u7801\uFF0C\u5982 600519 / sh600519"),period:p,adjust:f,startDate:c,endDate:u},["symbol"]),invoke:(t,e)=>t.kline.cn(e.symbol,{period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate})},{name:"get_minute_kline",tier:"core",description:"A \u80A1\u5206\u949F K \u7EBF / \u5F53\u65E5\u5206\u65F6\u3002period=1 \u8FD4\u56DE\u6700\u8FD1\u7EA6 5 \u4E2A\u4EA4\u6613\u65E5\u7684\u5206\u65F6\uFF08\u4E0D\u652F\u6301\u590D\u6743\uFF0C\u53EF\u7528 startDate/endDate \u6536\u7A84\u5230\u5F53\u65E5\uFF09\uFF1Bperiod=5/15/30/60 \u8FD4\u56DE\u5206\u949F K \u7EBF\uFF08adjust \u4EC5\u6B64\u65F6\u6709\u6548\uFF0C\u9ED8\u8BA4 qfq\uFF09\u3002",inputSchema:n({symbol:o("\u80A1\u7968 / \u6307\u6570\u4EE3\u7801\uFF0C\u5982 600519 / sh600519"),period:b,adjust:f,startDate:{type:"string",description:"\u5F00\u59CB\u65F6\u95F4"},endDate:{type:"string",description:"\u7ED3\u675F\u65F6\u95F4"}},["symbol"]),invoke:(t,e)=>t.kline.cnMinute(e.symbol,{period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate})},{name:"get_hk_history_kline",tier:"core",description:"\u6E2F\u80A1\u5386\u53F2 K \u7EBF\uFF08\u65E5 / \u5468 / \u6708\uFF0C\u542B\u590D\u6743\uFF0C\u5E01\u79CD HKD\uFF09\u3002\u4EE3\u7801 5 \u4F4D\u6570\u5B57\uFF0C\u5E26\u4E0D\u5E26 hk \u524D\u7F00\u5747\u53EF\uFF08\u5982 00700 / hk00700\uFF09\u3002\u590D\u6743\u9ED8\u8BA4 qfq\uFF1B\u65E5\u671F\u683C\u5F0F YYYYMMDD\u3002",inputSchema:n({symbol:o("\u6E2F\u80A1\u4EE3\u7801\uFF0C\u5982 00700 / hk00700"),period:p,adjust:f,startDate:c,endDate:u},["symbol"]),invoke:(t,e)=>t.kline.hk(e.symbol,{period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate})},{name:"get_hk_minute_kline",tier:"full",description:"\u6E2F\u80A1\u5206\u949F K \u7EBF / \u5F53\u65E5\u5206\u65F6\u3002period=1 \u8FD4\u56DE\u5F53\u65E5\u5206\u65F6\uFF08\u4E0D\u652F\u6301\u590D\u6743\uFF0C\u53EF\u7528 recentDays \u53D6\u8FD1 N \u65E5\uFF09\uFF1Bperiod=5/15/30/60 \u8FD4\u56DE\u5206\u949F K \u7EBF\uFF08adjust \u4EC5\u6B64\u65F6\u6709\u6548\uFF0C\u9ED8\u8BA4 qfq\uFF09\u3002\u65F6\u95F4\u683C\u5F0F YYYY-MM-DD HH:mm\uFF08\u6E2F\u80A1\u672C\u5730\u65F6\u533A Asia/Hong_Kong\uFF09\u3002",inputSchema:n({symbol:o("\u6E2F\u80A1\u4EE3\u7801\uFF0C\u5982 00700 / hk00700"),period:b,adjust:f,startDate:{type:"string",description:"\u5F00\u59CB\u65F6\u95F4 YYYY-MM-DD HH:mm\uFF08\u6E2F\u80A1\u672C\u5730\u65F6\u533A\uFF09"},endDate:{type:"string",description:"\u7ED3\u675F\u65F6\u95F4 YYYY-MM-DD HH:mm\uFF08\u6E2F\u80A1\u672C\u5730\u65F6\u533A\uFF09"},recentDays:{type:"integer",description:"\u4EC5 period=1 \u751F\u6548\uFF1A\u8FD4\u56DE\u6700\u8FD1 N \u4E2A\u4EA4\u6613\u65E5\u7684\u5206\u65F6\uFF0C\u9ED8\u8BA4 1\uFF08\u5F53\u65E5\uFF09"}},["symbol"]),invoke:(t,e)=>t.kline.hkMinute(e.symbol,{period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate,ndays:e.recentDays})},{name:"get_us_history_kline",tier:"core",description:"\u7F8E\u80A1\u5386\u53F2 K \u7EBF\uFF08\u65E5 / \u5468 / \u6708\uFF0C\u542B\u590D\u6743\uFF0C\u5E01\u79CD USD\uFF09\u3002\u4EE3\u7801\u683C\u5F0F {market}.{ticker}\uFF08\u5982 105.AAPL / 106.BABA\uFF09\u3002\u590D\u6743\u9ED8\u8BA4 qfq\uFF1B\u65E5\u671F\u683C\u5F0F YYYYMMDD\u3002",inputSchema:n({symbol:o("\u7F8E\u80A1\u4EE3\u7801\uFF0C\u683C\u5F0F {market}.{ticker}\uFF0C\u5982 105.AAPL / 106.BABA"),period:p,adjust:f,startDate:c,endDate:u},["symbol"]),invoke:(t,e)=>t.kline.us(e.symbol,{period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate})},{name:"get_us_minute_kline",tier:"full",description:"\u7F8E\u80A1\u5206\u949F K \u7EBF / \u5F53\u65E5\u5206\u65F6\uFF08\u4EC5\u5E38\u89C4\u4EA4\u6613\u65F6\u6BB5\uFF0C\u4E0D\u542B\u76D8\u524D / \u76D8\u540E\uFF09\u3002period=1 \u8FD4\u56DE\u5F53\u65E5\u5206\u65F6\uFF08\u4E0D\u652F\u6301\u590D\u6743\uFF0C\u53EF\u7528 recentDays \u53D6\u8FD1 N \u65E5\uFF09\uFF1Bperiod=5/15/30/60 \u8FD4\u56DE\u5206\u949F K \u7EBF\uFF08adjust \u4EC5\u6B64\u65F6\u6709\u6548\uFF0C\u9ED8\u8BA4 qfq\uFF09\u3002\u4EE3\u7801\u683C\u5F0F {market}.{ticker}\uFF0C\u5982 105.AAPL\u3002",inputSchema:n({symbol:o("\u7F8E\u80A1\u4EE3\u7801\uFF0C\u683C\u5F0F {market}.{ticker}\uFF0C\u5982 105.AAPL / 106.BABA"),period:b,adjust:f,recentDays:{type:"integer",description:"\u4EC5 period=1 \u751F\u6548\uFF1A\u8FD4\u56DE\u6700\u8FD1 N \u4E2A\u4EA4\u6613\u65E5\u7684\u5206\u65F6\uFF0C\u9ED8\u8BA4 1\uFF08\u5F53\u65E5\uFF09"}},["symbol"]),invoke:(t,e)=>t.kline.usMinute(e.symbol,{period:e.period,adjust:e.adjust,ndays:e.recentDays})},{name:"get_kline_with_indicators",tier:"core",description:"\u5E26\u6280\u672F\u6307\u6807\u7684\u5386\u53F2 K \u7EBF\uFF08A \u80A1 / \u6E2F\u80A1 / \u7F8E\u80A1\uFF0Cmarket \u4E0D\u4F20\u81EA\u52A8\u6309 symbol \u8BC6\u522B\uFF09\u3002\u5468\u671F\u9ED8\u8BA4 daily\uFF0C\u590D\u6743\u9ED8\u8BA4\u6309 SDK \u9ED8\u8BA4\uFF08qfq\uFF09\uFF1B\u65E5\u671F\u652F\u6301 YYYYMMDD \u6216 YYYY-MM-DD\u3002indicators \u4E3A\u5BF9\u8C61\uFF0C\u952E\u53D6\u81EA 14 \u4E2A\u6307\u6807\uFF1Ama / macd / boll / kdj / rsi / wr / bias / cci / atr / obv / roc / dmi / sar / kc\uFF0C\u6BCF\u4E2A\u952E\u4F20 true \u5373\u7528\u9ED8\u8BA4\u53C2\u6570\u5F00\u542F\uFF0C\u6216\u4F20\u914D\u7F6E\u5BF9\u8C61\uFF08\u5982 { ma: { periods: [5,10,20] }, macd: { short: 12, long: 26, signal: 9 } }\uFF09\u3002SDK \u4F1A\u6309\u6307\u6807\u4F9D\u8D56\u81EA\u52A8\u5411\u524D\u591A\u53D6\u82E5\u5E72 bar \u4FDD\u8BC1\u9996\u65E5\u6709\u6548\u3002",inputSchema:n({symbol:o("\u80A1\u7968\u4EE3\u7801\uFF08A \u80A1 / \u6E2F\u80A1 / \u7F8E\u80A1\uFF09"),market:{type:"string",enum:le,description:"\u5E02\u573A\u7C7B\u578B A / HK / US\uFF1B\u4E0D\u4F20\u5219\u7531 symbol \u81EA\u52A8\u8BC6\u522B"},period:p,adjust:f,startDate:{type:"string",description:"\u8D77\u59CB\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD"},endDate:{type:"string",description:"\u7ED3\u675F\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD"},indicators:{type:"object",description:"\u6307\u6807\u914D\u7F6E\u5BF9\u8C61\uFF0C\u952E\u53D6\u81EA "+me.join(" / ")+"\uFF1B\u503C\u4E3A true\uFF08\u9ED8\u8BA4\u53C2\u6570\uFF09\u6216\u914D\u7F6E\u5BF9\u8C61",properties:{ma:{description:"MA \u5747\u7EBF\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods: [5,10,20], type: sma|ema|wma }"},macd:{description:"MACD\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { short, long, signal }"},boll:{description:"\u5E03\u6797\u5E26\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, stdDev }"},kdj:{description:"KDJ\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, kPeriod, dPeriod }"},rsi:{description:"RSI\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods }"},wr:{description:"\u5A01\u5EC9\u6307\u6807 WR\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods }"},bias:{description:"BIAS \u4E56\u79BB\u7387\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods }"},cci:{description:"CCI\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period }"},atr:{description:"ATR \u771F\u5B9E\u6CE2\u5E45\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period }"},obv:{description:"OBV\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { maPeriod }"},roc:{description:"ROC\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, signalPeriod }"},dmi:{description:"DMI / ADX\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, adxPeriod }"},sar:{description:"SAR \u629B\u7269\u7EBF\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { afStart, afIncrement, afMax }"},kc:{description:"Keltner \u901A\u9053 KC\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { emaPeriod, atrPeriod, multiplier }"}}}},["symbol"]),invoke:(t,e)=>t.kline.withIndicators(e.symbol,{market:e.market,period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate,indicators:e.indicators})}];var V={type:"string",enum:["","qfq","hfq"],default:"",description:"\u590D\u6743\u65B9\u5F0F\uFF0C\u9ED8\u8BA4\u4E0D\u590D\u6743\uFF08''\uFF09\uFF1B\u9700\u524D\u590D\u6743\u4F20 qfq\uFF08\u770B\u8D70\u52BF\uFF09\uFF0C\u540E\u590D\u6743\u4F20 hfq\uFF08\u7B97\u6536\u76CA\uFF09"},$={type:"string",enum:["1","5","15","30","60"],default:"5",description:"\u5206\u949F\u5468\u671F\uFF1B\u9ED8\u8BA4 5\uFF085 \u5206\u949F K \u7EBF\uFF09\uFF0C\u5F53\u65E5\u5206\u65F6\u8BF7\u4F20 period=1"},X=[{name:"get_industry_list",tier:"core",description:"\u83B7\u53D6\u884C\u4E1A\u677F\u5757\u5217\u8868\uFF08\u4E1C\u65B9\u8D22\u5BCC\uFF09\uFF1A\u677F\u5757\u4EE3\u7801\u3001\u540D\u79F0\u3001\u6700\u65B0\u4EF7\u3001\u6DA8\u8DCC\u5E45\u3001\u6210\u4EA4\u989D\u3001\u9886\u6DA8\u80A1\u7B49\u3002\u65E0\u53C2\u3002",inputSchema:n({}),invoke:t=>t.board.industry.list()},{name:"get_industry_spot",tier:"full",description:"\u83B7\u53D6\u6307\u5B9A\u884C\u4E1A\u677F\u5757\u7684\u6210\u5206\u80A1\u5B9E\u65F6\u884C\u60C5\u5217\u8868\uFF08\u6700\u65B0\u4EF7\u3001\u6DA8\u8DCC\u5E45\u3001\u6210\u4EA4\u91CF\u989D\u7B49\uFF09\u3002symbol \u4E3A\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u540D\u79F0\u3002",inputSchema:n({symbol:o("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0")},["symbol"]),invoke:(t,e)=>t.board.industry.spot(e.symbol)},{name:"get_industry_constituents",tier:"core",description:"\u83B7\u53D6\u6307\u5B9A\u884C\u4E1A\u677F\u5757\u7684\u6210\u5206\u80A1\u5217\u8868\uFF08\u4EE3\u7801\u3001\u540D\u79F0\u7B49\u57FA\u7840\u4FE1\u606F\uFF09\u3002symbol \u4E3A\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u540D\u79F0\u3002",inputSchema:n({symbol:o("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0")},["symbol"]),invoke:(t,e)=>t.board.industry.constituents(e.symbol)},{name:"get_industry_kline",tier:"full",description:"\u83B7\u53D6\u884C\u4E1A\u677F\u5757\u5386\u53F2 K \u7EBF\uFF08\u65E5/\u5468/\u6708\uFF09\uFF1A\u65E5\u671F\u3001\u5F00\u9AD8\u4F4E\u6536\u3001\u6210\u4EA4\u91CF\u989D\u3001\u6DA8\u8DCC\u5E45\u3002\u4EF7\u683C\u5355\u4F4D\u4E3A\u5143\u3002\u590D\u6743\u9ED8\u8BA4\u4E0D\u590D\u6743\uFF0C\u9700\u524D/\u540E\u590D\u6743\u8BF7\u663E\u5F0F\u4F20 adjust\u3002",inputSchema:n({symbol:o("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0"),period:p,adjust:V,startDate:c,endDate:u},["symbol"]),invoke:(t,e)=>t.board.industry.kline(e.symbol,{period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate})},{name:"get_industry_minute_kline",tier:"full",description:"\u83B7\u53D6\u884C\u4E1A\u677F\u5757\u5206\u65F6/\u5206\u949F K \u7EBF\u3002period=1 \u8FD4\u56DE\u5F53\u65E5\u5206\u65F6\uFF1B5/15/30/60 \u8FD4\u56DE\u5BF9\u5E94\u5206\u949F K \u7EBF\u3002\u9ED8\u8BA4 5\uFF085 \u5206\u949F K \u7EBF\uFF09\uFF0C\u5F53\u65E5\u5206\u65F6\u8BF7\u4F20 period=1\u3002",inputSchema:n({symbol:o("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0"),period:$},["symbol"]),invoke:(t,e)=>t.board.industry.minuteKline(e.symbol,{period:e.period})},{name:"get_concept_list",tier:"core",description:"\u83B7\u53D6\u6982\u5FF5\u677F\u5757\u5217\u8868\uFF08\u4E1C\u65B9\u8D22\u5BCC\uFF09\uFF1A\u677F\u5757\u4EE3\u7801\u3001\u540D\u79F0\u3001\u6700\u65B0\u4EF7\u3001\u6DA8\u8DCC\u5E45\u3001\u6210\u4EA4\u989D\u3001\u9886\u6DA8\u80A1\u7B49\u3002\u65E0\u53C2\u3002",inputSchema:n({}),invoke:t=>t.board.concept.list()},{name:"get_concept_spot",tier:"full",description:"\u83B7\u53D6\u6307\u5B9A\u6982\u5FF5\u677F\u5757\u7684\u6210\u5206\u80A1\u5B9E\u65F6\u884C\u60C5\u5217\u8868\uFF08\u6700\u65B0\u4EF7\u3001\u6DA8\u8DCC\u5E45\u3001\u6210\u4EA4\u91CF\u989D\u7B49\uFF09\u3002symbol \u4E3A\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u540D\u79F0\u3002",inputSchema:n({symbol:o("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0")},["symbol"]),invoke:(t,e)=>t.board.concept.spot(e.symbol)},{name:"get_concept_constituents",tier:"core",description:"\u83B7\u53D6\u6307\u5B9A\u6982\u5FF5\u677F\u5757\u7684\u6210\u5206\u80A1\u5217\u8868\uFF08\u4EE3\u7801\u3001\u540D\u79F0\u7B49\u57FA\u7840\u4FE1\u606F\uFF09\u3002symbol \u4E3A\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u540D\u79F0\u3002",inputSchema:n({symbol:o("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0")},["symbol"]),invoke:(t,e)=>t.board.concept.constituents(e.symbol)},{name:"get_concept_kline",tier:"full",description:"\u83B7\u53D6\u6982\u5FF5\u677F\u5757\u5386\u53F2 K \u7EBF\uFF08\u65E5/\u5468/\u6708\uFF09\uFF1A\u65E5\u671F\u3001\u5F00\u9AD8\u4F4E\u6536\u3001\u6210\u4EA4\u91CF\u989D\u3001\u6DA8\u8DCC\u5E45\u3002\u4EF7\u683C\u5355\u4F4D\u4E3A\u5143\u3002\u590D\u6743\u9ED8\u8BA4\u4E0D\u590D\u6743\uFF0C\u9700\u524D/\u540E\u590D\u6743\u8BF7\u663E\u5F0F\u4F20 adjust\u3002",inputSchema:n({symbol:o("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0"),period:p,adjust:V,startDate:c,endDate:u},["symbol"]),invoke:(t,e)=>t.board.concept.kline(e.symbol,{period:e.period,adjust:e.adjust,startDate:e.startDate,endDate:e.endDate})},{name:"get_concept_minute_kline",tier:"full",description:"\u83B7\u53D6\u6982\u5FF5\u677F\u5757\u5206\u65F6/\u5206\u949F K \u7EBF\u3002period=1 \u8FD4\u56DE\u5F53\u65E5\u5206\u65F6\uFF1B5/15/30/60 \u8FD4\u56DE\u5BF9\u5E94\u5206\u949F K \u7EBF\u3002\u9ED8\u8BA4 5\uFF085 \u5206\u949F K \u7EBF\uFF09\uFF0C\u5F53\u65E5\u5206\u65F6\u8BF7\u4F20 period=1\u3002",inputSchema:n({symbol:o("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0"),period:$},["symbol"]),invoke:(t,e)=>t.board.concept.minuteKline(e.symbol,{period:e.period})}];var Q=["today","3day","5day","10day"],ye=["industry","concept","region"],W=[{name:"get_individual_fund_flow",tier:"core",description:"\u83B7\u53D6\u4E2A\u80A1\u8D44\u91D1\u6D41\u5386\u53F2\uFF08\u65E5 / \u5468 / \u6708\uFF09\uFF1A\u4E3B\u529B / \u8D85\u5927\u5355 / \u5927\u5355 / \u4E2D\u5355 / \u5C0F\u5355\u51C0\u6D41\u5165\uFF08\u91D1\u989D\u5355\u4F4D\u5143\u3001\u5360\u6BD4\u4E3A\u767E\u5206\u6BD4\uFF09\u3002",inputSchema:n({symbol:o("\u80A1\u7968\u4EE3\u7801\uFF0C\u5E26\u4E0D\u5E26 sh/sz/bj \u524D\u7F00\u5747\u53EF\uFF0C\u5982 600519 / sh600519"),period:p},["symbol"]),invoke:(t,e)=>t.fundFlow.individual(e.symbol,{period:e.period})},{name:"get_market_fund_flow",tier:"full",description:"\u83B7\u53D6\u5927\u76D8\u8D44\u91D1\u6D41\uFF08\u4E0A\u8BC1\u7EFC\u6307 + \u6DF1\u8BC1\u6210\u6307(399001)\uFF09\uFF1A\u5404\u5206\u7C7B\u8D44\u91D1\u51C0\u6D41\u5165\u91D1\u989D\uFF08\u5143\uFF09\u4E0E\u5360\u6BD4\uFF08%\uFF09\u3002",inputSchema:n({}),invoke:t=>t.fundFlow.market()},{name:"get_fund_flow_rank",tier:"core",description:"\u83B7\u53D6\u4E2A\u80A1\u8D44\u91D1\u6D41\u6392\u540D\uFF08\u6CAA\u6DF1\u5317 A \u80A1\u5168\u5E02\u573A\uFF09\uFF1A\u6309\u4E3B\u529B\u51C0\u6D41\u5165\u6392\u5E8F\uFF0C\u91D1\u989D\u5355\u4F4D\u5143\u3001\u5360\u6BD4\u4E3A\u767E\u5206\u6BD4\u3002\u26A0\uFE0F \u8FD4\u56DE\u5168\u5E02\u573A\u6570\u5343\u6761\uFF0C\u7ED3\u679C\u88C1\u526A\u81F3\u524D 200\uFF08\u6309\u4E3B\u529B\u51C0\u6D41\u5165\u964D\u5E8F\uFF09\uFF0C\u5B8C\u6574\u6570\u636E\u8BF7\u76F4\u63A5\u7528 SDK\u3002",inputSchema:n({indicator:{type:"string",enum:Q,default:"today",description:"\u6392\u540D\u5468\u671F\uFF1Atoday=\u4ECA\u65E5(\u9ED8\u8BA4) / 3day / 5day / 10day"}}),invoke:(t,e)=>t.fundFlow.rank({indicator:e.indicator})},{name:"get_sector_fund_flow_rank",tier:"full",description:"\u83B7\u53D6\u677F\u5757\u8D44\u91D1\u6D41\u6392\u540D\uFF08\u884C\u4E1A / \u6982\u5FF5 / \u5730\u57DF\uFF09\uFF1A\u6309\u677F\u5757\u4E3B\u529B\u51C0\u6D41\u5165\u6392\u5E8F\uFF0C\u91D1\u989D\u5355\u4F4D\u5143\u3001\u5360\u6BD4\u4E3A\u767E\u5206\u6BD4\u3002",inputSchema:n({indicator:{type:"string",enum:Q,default:"today",description:"\u6392\u540D\u5468\u671F\uFF1Atoday=\u4ECA\u65E5(\u9ED8\u8BA4) / 3day / 5day / 10day"},sectorType:{type:"string",enum:ye,default:"industry",description:"\u677F\u5757\u7C7B\u578B\uFF1Aindustry=\u884C\u4E1A(\u9ED8\u8BA4) / concept=\u6982\u5FF5 / region=\u5730\u57DF"}}),invoke:(t,e)=>t.fundFlow.sectorRank({indicator:e.indicator,sectorType:e.sectorType})},{name:"get_sector_fund_flow_history",tier:"full",description:"\u83B7\u53D6\u5355\u4E2A\u677F\u5757\u7684\u5386\u53F2\u8D44\u91D1\u6D41\uFF08\u65E5 / \u5468 / \u6708\uFF09\uFF1A\u5404\u5206\u7C7B\u8D44\u91D1\u51C0\u6D41\u5165\u91D1\u989D\uFF08\u5143\uFF09\u4E0E\u5360\u6BD4\uFF08%\uFF09\u3002symbol \u4E3A\u677F\u5757\u7F16\u53F7\uFF0C\u5982 BK0438 \u6216\u5168\u524D\u7F00 90.BK0438\u3002",inputSchema:n({symbol:o("\u677F\u5757\u7F16\u53F7\uFF0C\u5982 BK0438 \u6216\u5168\u524D\u7F00 90.BK0438"),period:p},["symbol"]),invoke:(t,e)=>t.fundFlow.sectorHistory(e.symbol,{period:e.period})}];var Z=["north","south"],fe=["all","shanghai","shenzhen"],ge=["today","3day","5day","10day","month","quarter","year"],G=[{name:"get_northbound_minute",tier:"full",description:"\u83B7\u53D6\u5317\u5411 / \u5357\u5411\u8D44\u91D1\u5206\u65F6\u6570\u636E\uFF08\u5F53\u65E5\uFF0C\u6309 HH:MM\uFF09\u3002\u8FD4\u56DE\u6CAA/\u6DF1\u5206\u9879\u4E0E\u5408\u8BA1\u51C0\u6D41\u5165\uFF08\u5355\u4F4D:\u4E07\u5143\uFF09\u3002direction:north=\u5317\u5411(\u9ED8\u8BA4) / south=\u5357\u5411\u3002",inputSchema:n({direction:{type:"string",enum:Z,default:"north",description:"\u8D44\u91D1\u65B9\u5411:north=\u5317\u5411(\u9ED8\u8BA4) / south=\u5357\u5411"}}),invoke:(t,e)=>t.northbound.minute(e.direction)},{name:"get_northbound_flow_summary",tier:"core",description:"\u83B7\u53D6\u6CAA\u6DF1\u6E2F\u901A\u5E02\u573A\u8D44\u91D1\u6D41\u5411\u6C47\u603B\uFF08\u5317\u5411 + \u5357\u5411 + \u6E2F\u80A1\u901A\u62C6\u5206\uFF09\uFF1A\u542B\u677F\u5757\u540D\u3001\u51C0\u4E70\u989D/\u51C0\u6D41\u5165(\u5143)\u3001\u5F53\u65E5\u4F59\u989D\u3001\u76F8\u5173\u6307\u6570\u6DA8\u8DCC\u5E45\u7B49\u3002",inputSchema:n({}),invoke:t=>t.northbound.summary()},{name:"get_northbound_holding_rank",tier:"full",description:"\u83B7\u53D6\u5317\u5411 / \u6CAA\u80A1\u901A / \u6DF1\u80A1\u901A\u6301\u80A1\u4E2A\u80A1\u6392\u884C\uFF1A\u542B\u6301\u80A1\u80A1\u6570\u3001\u6301\u80A1\u5E02\u503C(\u5143)\u3001\u5360\u6D41\u901A\u80A1/\u603B\u80A1\u672C\u6BD4(%)\u3001\u533A\u95F4\u589E\u6301\u4F30\u8BA1\u7B49\u3002market:all(\u9ED8\u8BA4)/shanghai/shenzhen;period \u9ED8\u8BA4 5day;date \u987B\u4E3A\u6709\u6570\u636E\u7684\u4EA4\u6613\u65E5\uFF0C\u5426\u5219\u8FD4\u56DE\u7A7A\u3002",inputSchema:n({market:{type:"string",enum:fe,default:"all",description:"\u5E02\u573A:all(\u9ED8\u8BA4) / shanghai=\u6CAA\u80A1\u901A / shenzhen=\u6DF1\u80A1\u901A"},period:{type:"string",enum:ge,default:"5day",description:"\u6392\u540D\u5468\u671F:today / 3day / 5day(\u9ED8\u8BA4) / 10day / month / quarter / year"},date:{type:"string",description:"\u6307\u5B9A\u4EA4\u6613\u65E5 YYYY-MM-DD\uFF08\u9ED8\u8BA4\u670D\u52A1\u7AEF\u6700\u65B0\u4EA4\u6613\u65E5\uFF09"}}),invoke:(t,e)=>t.northbound.holdingRank({market:e.market,period:e.period,date:e.date})},{name:"get_northbound_history",tier:"full",description:"\u83B7\u53D6\u5317\u5411 / \u5357\u5411\u8D44\u91D1\u5386\u53F2\uFF08\u6309\u65E5\uFF09\uFF1A\u6210\u4EA4\u51C0\u4E70\u989D\u3001\u4E70/\u5356\u6210\u4EA4\u989D\u3001\u5386\u53F2\u7D2F\u8BA1\u51C0\u4E70\u989D\u3001\u5F53\u65E5\u8D44\u91D1\u6D41\u5165/\u4F59\u989D(\u5143)\u53CA\u9886\u6DA8\u80A1\u3002direction:north(\u9ED8\u8BA4)/south;\u4E0D\u4F20 startDate/endDate \u53D6\u5168\u91CF\u533A\u95F4\u3002",inputSchema:n({direction:{type:"string",enum:Z,default:"north",description:"\u8D44\u91D1\u65B9\u5411:north=\u5317\u5411(\u9ED8\u8BA4) / south=\u5357\u5411"},startDate:{type:"string",description:"\u8D77\u59CB\u65E5\u671F YYYY-MM-DD"},endDate:{type:"string",description:"\u7ED3\u675F\u65E5\u671F YYYY-MM-DD"}}),invoke:(t,e)=>t.northbound.history(e.direction,{startDate:e.startDate,endDate:e.endDate})},{name:"get_northbound_individual",tier:"full",description:"\u83B7\u53D6\u4E2A\u80A1\u7684\u5317\u5411\u6301\u4ED3\u5386\u53F2\uFF08\u6309\u65E5\uFF09\uFF1A\u6301\u80A1\u6570\u91CF\u3001\u6301\u80A1\u5E02\u503C(\u5143)\u3001\u5360\u6D41\u901A\u80A1/\u603B\u80A1\u672C\u6BD4(%)\u3001\u5F53\u65E5\u6536\u76D8\u4EF7\u4E0E\u6DA8\u8DCC\u5E45\u3002\u4E0D\u4F20 startDate/endDate \u53D6\u5168\u91CF\u533A\u95F4\u3002",inputSchema:n({symbol:o("\u5355\u53EA\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519"),startDate:{type:"string",description:"\u8D77\u59CB\u65E5\u671F YYYY-MM-DD"},endDate:{type:"string",description:"\u7ED3\u675F\u65E5\u671F YYYY-MM-DD"}},["symbol"]),invoke:(t,e)=>t.northbound.individual(e.symbol,{startDate:e.startDate,endDate:e.endDate})}];var _e=["zt","yesterday","strong","sub_new","broken","dt"],De=["rocket_launch","quick_rebound","large_buy","limit_up_seal","limit_down_open","big_buy_order","auction_up","high_open_5d","gap_up","high_60d","surge_60d","accelerate_down","high_dive","large_sell","limit_down_seal","limit_up_open","big_sell_order","auction_down","low_open_5d","gap_down","low_60d","drop_60d"],ee=[{name:"get_zt_pool",tier:"core",description:"\u83B7\u53D6\u6DA8\u505C\u80A1\u6C60\uFF08\u4E1C\u65B9\u8D22\u5BCC\uFF09\uFF1A\u6DA8\u505C / \u6628\u65E5\u6DA8\u505C / \u5F3A\u52BF / \u6B21\u65B0 / \u70B8\u677F / \u8DCC\u505C\u3002\u5B57\u6BB5\u542B\u4EF7\u683C(\u5143)\u3001\u6DA8\u8DCC\u5E45(%)\u3001\u6210\u4EA4\u989D(\u5143)\u3001\u6D41\u901A/\u603B\u5E02\u503C(\u5143)\u3001\u6362\u624B\u7387(%)\u3001\u8FDE\u677F\u6570\u3001\u5C01\u677F\u65F6\u95F4(HHMMSS) \u7B49\u3002type \u9ED8\u8BA4 zt\uFF1Bdate \u4E0D\u4F20\u4E3A\u6700\u65B0\u4EA4\u6613\u65E5\u3002",inputSchema:n({type:{type:"string",enum:_e,default:"zt",description:"\u80A1\u6C60\u7C7B\u578B\uFF1Azt=\u6DA8\u505C / yesterday=\u6628\u65E5\u6DA8\u505C / strong=\u5F3A\u52BF / sub_new=\u6B21\u65B0 / broken=\u70B8\u677F / dt=\u8DCC\u505C"},date:{type:"string",description:"\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD\uFF0C\u4E0D\u4F20\u4E3A\u6700\u65B0\u4EA4\u6613\u65E5"}}),invoke:(t,e)=>t.marketEvent.ztPool(e.type,e.date)},{name:"get_stock_changes",tier:"full",description:"\u83B7\u53D6\u5F53\u65E5\u76D8\u53E3\u5F02\u52A8\u5217\u8868\uFF08\u4E1C\u65B9\u8D22\u5BCC\uFF09\uFF1A\u6BCF\u6761\u542B\u53D1\u751F\u65F6\u95F4(HH:MM:SS)\u3001\u4EE3\u7801\u3001\u540D\u79F0\u3001\u5F02\u52A8\u7C7B\u578B\u53CA\u4E2D\u6587\u6807\u7B7E\u3001\u76F8\u5173\u4FE1\u606F\u3002type \u4E0D\u4F20\u9ED8\u8BA4 large_buy(\u5927\u7B14\u4E70\u5165)\u3002",inputSchema:n({type:{type:"string",enum:De,default:"large_buy",description:"\u5F02\u52A8\u7C7B\u578B\u7B5B\u9009\uFF1Arocket_launch=\u706B\u7BAD\u53D1\u5C04 / quick_rebound=\u5FEB\u901F\u53CD\u5F39 / large_buy=\u5927\u7B14\u4E70\u5165 / limit_up_seal=\u5C01\u6DA8\u505C\u677F / limit_down_open=\u6253\u5F00\u8DCC\u505C\u677F / big_buy_order=\u6709\u5927\u4E70\u76D8 / auction_up=\u7ADE\u4EF7\u4E0A\u6DA8 / high_open_5d=\u9AD8\u5F005\u65E5\u7EBF / gap_up=\u5411\u4E0A\u7F3A\u53E3 / high_60d=60\u65E5\u65B0\u9AD8 / surge_60d=60\u65E5\u5927\u5E45\u4E0A\u6DA8 / accelerate_down=\u52A0\u901F\u4E0B\u8DCC / high_dive=\u9AD8\u53F0\u8DF3\u6C34 / large_sell=\u5927\u7B14\u5356\u51FA / limit_down_seal=\u5C01\u8DCC\u505C\u677F / limit_up_open=\u6253\u5F00\u6DA8\u505C\u677F / big_sell_order=\u6709\u5927\u5356\u76D8 / auction_down=\u7ADE\u4EF7\u4E0B\u8DCC / low_open_5d=\u4F4E\u5F005\u65E5\u7EBF / gap_down=\u5411\u4E0B\u7F3A\u53E3 / low_60d=60\u65E5\u65B0\u4F4E / drop_60d=60\u65E5\u5927\u5E45\u4E0B\u8DCC"}}),invoke:(t,e)=>t.marketEvent.stockChanges(e.type)},{name:"get_board_changes",tier:"full",description:"\u83B7\u53D6\u5F53\u65E5\u677F\u5757\u5F02\u52A8\u6C47\u603B\uFF08\u4E1C\u65B9\u8D22\u5BCC\uFF09\uFF1A\u6BCF\u6761\u542B\u677F\u5757\u540D\u79F0\u3001\u6DA8\u8DCC\u5E45(%)\u3001\u4E3B\u529B\u51C0\u6D41\u5165(\u5143)\u3001\u5F02\u52A8\u603B\u6B21\u6570\u3001\u5F02\u52A8\u6700\u9891\u7E41\u4E2A\u80A1\uFF08\u4EE3\u7801 / \u540D\u79F0 / \u65B9\u5411\uFF09\u53CA\u5F02\u52A8\u7C7B\u578B\u5206\u5E03\u3002\u65E0\u53C2\u3002",inputSchema:n({}),invoke:t=>t.marketEvent.boardChanges()}];var he=["1month","3month","6month","1year"],te={type:"string",enum:he,default:"1month",description:"\u7EDF\u8BA1\u5468\u671F\uFF1A1month / 3month / 6month / 1year\uFF0C\u9ED8\u8BA4 1month"},ne=[{name:"get_dragon_tiger_detail",tier:"core",description:"\u83B7\u53D6\u9F99\u864E\u699C\u4E0A\u699C\u4E2A\u80A1\u660E\u7EC6\uFF08\u6309\u65E5\u671F\u8303\u56F4\uFF09\uFF1A\u4EE3\u7801\u3001\u540D\u79F0\u3001\u4E0A\u699C\u65E5\u671F\u3001\u6536\u76D8\u4EF7\u3001\u6DA8\u8DCC\u5E45(%)\u3001\u51C0\u4E70\u989D/\u4E70\u5165\u989D/\u5356\u51FA\u989D/\u6210\u4EA4\u989D(\u5143)\u3001\u5360\u603B\u6210\u4EA4\u6BD4(%)\u3001\u6362\u624B\u7387(%)\u3001\u6D41\u901A\u5E02\u503C(\u5143)\u3001\u4E0A\u699C\u539F\u56E0\u3001\u4E0A\u699C\u540E 1/2/5/10 \u65E5\u6DA8\u8DCC\u5E45(%)\u3002\u65E5\u671F\u683C\u5F0F YYYYMMDD\uFF0CstartDate / endDate \u5747\u5FC5\u586B\u3002\u65E5\u671F\u533A\u95F4\u8FC7\u5927\u65F6\u7ED3\u679C\u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\uFF0C\u8BF7\u6536\u7A84\u533A\u95F4\u3002",inputSchema:n({startDate:c,endDate:u},["startDate","endDate"]),invoke:(t,e)=>t.dragonTiger.detail({startDate:e.startDate,endDate:e.endDate})},{name:"get_dragon_tiger_stock_stats",tier:"full",description:"\u83B7\u53D6\u9F99\u864E\u699C\u4E2A\u80A1\u4E0A\u699C\u7EDF\u8BA1\uFF08\u6309\u5468\u671F\u805A\u5408\uFF09\uFF1A\u4EE3\u7801\u3001\u540D\u79F0\u3001\u6700\u8FD1\u4E0A\u699C\u65E5\u3001\u6536\u76D8\u4EF7\u3001\u6DA8\u8DCC\u5E45(%)\u3001\u4E0A\u699C\u6B21\u6570\u3001\u7D2F\u8BA1\u4E70\u5165/\u5356\u51FA/\u51C0\u989D/\u6210\u4EA4\u989D(\u5143)\u3001\u7D2F\u8BA1\u4E70/\u5356\u65B9\u673A\u6784\u6B21\u6570\u3002period \u53EF\u9009\uFF0C\u9ED8\u8BA4 1month\u3002\u26A0\uFE0F \u8FD4\u56DE\u5168\u5E02\u573A\uFF0C\u53EF\u80FD\u6570\u767E\u81F3\u4E0A\u5343\u6761\uFF0C\u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\u3002",inputSchema:n({period:te}),invoke:(t,e)=>t.dragonTiger.stockStats(e.period)},{name:"get_dragon_tiger_institution",tier:"full",description:"\u83B7\u53D6\u9F99\u864E\u699C\u673A\u6784\u4E70\u5356\u660E\u7EC6\uFF08\u6309\u65E5\u671F\u8303\u56F4\uFF09\uFF1A\u4EE3\u7801\u3001\u540D\u79F0\u3001\u4E0A\u699C\u65E5\u671F\u3001\u6536\u76D8\u4EF7\u3001\u6DA8\u8DCC\u5E45(%)\u3001\u4E70/\u5356\u65B9\u673A\u6784\u6570\u3001\u673A\u6784\u4E70\u5165\u989D/\u5356\u51FA\u989D/\u51C0\u989D(\u5143)\u3002\u65E5\u671F\u683C\u5F0F YYYYMMDD\uFF0CstartDate / endDate \u5747\u5FC5\u586B\u3002\u65E5\u671F\u533A\u95F4\u8FC7\u5927\u65F6\u7ED3\u679C\u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\uFF0C\u8BF7\u6536\u7A84\u533A\u95F4\u3002",inputSchema:n({startDate:c,endDate:u},["startDate","endDate"]),invoke:(t,e)=>t.dragonTiger.institution({startDate:e.startDate,endDate:e.endDate})},{name:"get_dragon_tiger_branch_rank",tier:"full",description:"\u83B7\u53D6\u9F99\u864E\u699C\u8425\u4E1A\u90E8\uFF08\u5E2D\u4F4D\uFF09\u6392\u884C\uFF08\u6309\u5468\u671F\u805A\u5408\uFF09\uFF1A\u8425\u4E1A\u90E8\u4EE3\u7801\u3001\u540D\u79F0\u3001\u4E70\u5165\u603B\u989D/\u5356\u51FA\u603B\u989D(\u5143)\u3001\u4E70\u5165/\u5356\u51FA\u6B21\u6570\u3001\u4E0A\u699C\u6B21\u6570\u3002period \u53EF\u9009\uFF0C\u9ED8\u8BA4 1month\u3002\u26A0\uFE0F \u8FD4\u56DE\u5168\u5E02\u573A\uFF0C\u53EF\u80FD\u6570\u767E\u81F3\u4E0A\u5343\u6761\uFF0C\u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\u3002",inputSchema:n({period:te}),invoke:(t,e)=>t.dragonTiger.branchRank(e.period)},{name:"get_dragon_tiger_seat_detail",tier:"full",description:"\u83B7\u53D6\u4E2A\u80A1\u67D0\u65E5\u9F99\u864E\u699C\u5E2D\u4F4D\u660E\u7EC6\uFF1A\u6392\u540D\u3001\u8425\u4E1A\u90E8\u540D\u79F0\u3001\u4E70\u5165\u989D/\u5356\u51FA\u989D/\u51C0\u989D(\u5143)\u3001\u4E70\u5165/\u5356\u51FA\u5360\u603B\u6210\u4EA4\u6BD4(%)\u3001\u4E70\u5356\u65B9\u5411(buy/sell)\u3002symbol \u4E0E date \u5747\u5FC5\u586B\uFF1Bdate \u652F\u6301 YYYYMMDD \u6216 YYYY-MM-DD\u3002",inputSchema:n({symbol:o("\u5355\u53EA\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519"),date:{type:"string",description:"\u4E0A\u699C\u65E5\u671F\uFF0CYYYYMMDD \u6216 YYYY-MM-DD"}},["symbol","date"]),invoke:(t,e)=>t.dragonTiger.seatDetail(e.symbol,e.date)}];var ke=["gold","silver"],oe=[{name:"get_futures_kline",tier:"core",description:"\u83B7\u53D6\u56FD\u5185\u671F\u8D27\u5386\u53F2 K \u7EBF\uFF08\u4E1C\u8D22\uFF09\uFF1A\u5F00\u9AD8\u4F4E\u6536\u3001\u6210\u4EA4\u91CF\u3001\u6301\u4ED3\u91CF\u7B49\u3002symbol \u4E3A\u5408\u7EA6\u4EE3\u7801\uFF0C\u5982 rb2605(\u87BA\u7EB9\u94A2) / IF2604(\u6CAA\u6DF1300\u80A1\u6307) / au2606(\u9EC4\u91D1)\uFF0Cperiod \u9ED8\u8BA4 daily(\u65E5\u7EBF)\uFF0CstartDate/endDate \u4E3A YYYYMMDD\u3002",inputSchema:n({symbol:o("\u671F\u8D27\u5408\u7EA6\u4EE3\u7801\uFF0C\u5982 rb2605 / IF2604 / au2606"),period:p,startDate:c,endDate:u},["symbol"]),invoke:(t,e)=>t.futures.kline(e.symbol,{period:e.period,startDate:e.startDate,endDate:e.endDate})},{name:"get_global_futures_spot",tier:"full",description:"\u83B7\u53D6\u5168\u7403\u671F\u8D27\u5B9E\u65F6\u884C\u60C5\uFF08\u4E1C\u8D22\uFF09\uFF1A\u56FD\u9645\u539F\u6CB9\u3001\u9EC4\u91D1\u3001\u5916\u76D8\u6307\u6570\u671F\u8D27\u7B49\u7684\u6700\u65B0\u4EF7\u3001\u6DA8\u8DCC\u5E45\u3001\u6210\u4EA4\u91CF\u3002pageSize \u4E3A\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20\u3002",inputSchema:n({pageSize:{type:"integer",description:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20"}}),invoke:(t,e)=>t.futures.globalSpot({pageSize:e.pageSize})},{name:"get_global_futures_kline",tier:"full",description:"\u83B7\u53D6\u5168\u7403\u671F\u8D27\u5386\u53F2 K \u7EBF\uFF08\u4E1C\u8D22\uFF09\uFF1A\u5F00\u9AD8\u4F4E\u6536\u3001\u6210\u4EA4\u91CF\u7B49\u3002symbol \u4E3A\u5408\u7EA6\u4EE3\u7801\uFF0Cperiod \u9ED8\u8BA4 daily\uFF0CstartDate/endDate \u4E3A YYYYMMDD\u3002marketCode \u4E3A\u4E1C\u8D22\u5E02\u573A\u4EE3\u7801\uFF08\u7528\u4E8E\u672A\u5185\u7F6E\u54C1\u79CD\uFF0C\u53EF\u4ECE\u5168\u7403\u671F\u8D27\u5B9E\u65F6\u884C\u60C5\u7ED3\u679C\u53CD\u67E5\uFF09\u3002",inputSchema:n({symbol:o("\u5168\u7403\u671F\u8D27\u5408\u7EA6\u4EE3\u7801\uFF0C\u5982 CONC(WTI \u539F\u6CB9) / GC00Y(COMEX \u9EC4\u91D1)"),period:p,startDate:c,endDate:u,marketCode:{type:"integer",description:"\u4E1C\u8D22\u5E02\u573A\u4EE3\u7801\uFF08\u672A\u5185\u7F6E\u54C1\u79CD\u65F6\u624B\u52A8\u6307\u5B9A\uFF09"}},["symbol"]),invoke:(t,e)=>t.futures.globalKline(e.symbol,{period:e.period,startDate:e.startDate,endDate:e.endDate,marketCode:e.marketCode})},{name:"get_futures_inventory_symbols",tier:"full",description:"\u83B7\u53D6\u671F\u8D27\u5E93\u5B58\u54C1\u79CD\u5217\u8868\uFF08\u4E1C\u8D22\uFF09\uFF1A\u53EF\u67E5\u5E93\u5B58\u7684\u54C1\u79CD\u4EE3\u7801\u4E0E\u540D\u79F0\uFF0C\u4F9B get_futures_inventory \u4F7F\u7528\u3002",inputSchema:n({}),invoke:t=>t.futures.inventorySymbols()},{name:"get_futures_inventory",tier:"full",description:"\u83B7\u53D6\u6307\u5B9A\u54C1\u79CD\u7684\u671F\u8D27\u5E93\u5B58\u5386\u53F2\uFF08\u4E1C\u8D22\uFF09\uFF1A\u4EA4\u6613\u6240\u6CE8\u518C\u4ED3\u5355 / \u5E93\u5B58\u91CF\u53CA\u589E\u51CF\u3002symbol \u4E3A\u54C1\u79CD\u4EE3\u7801\uFF08\u89C1 get_futures_inventory_symbols\uFF09\uFF0CstartDate \u4E3A YYYY-MM-DD(\u9ED8\u8BA4 2020-10-28)\u3002pageSize \u4EC5\u4E3A\u5355\u9875\u6279\u91CF\u5927\u5C0F\uFF08\u9ED8\u8BA4 500\uFF09\uFF0C\u63A5\u53E3\u8FD4\u56DE\u5168\u91CF\u5386\u53F2\uFF0C\u8FC7\u5927\u65F6\u4F1A\u88AB\u88C1\u526A\u3002",inputSchema:n({symbol:o("\u5E93\u5B58\u54C1\u79CD\u4EE3\u7801\uFF08\u89C1 get_futures_inventory_symbols\uFF09"),startDate:{type:"string",description:"\u5F00\u59CB\u65E5\u671F YYYY-MM-DD\uFF0C\u9ED8\u8BA4 2020-10-28"},pageSize:{type:"integer",description:"\u5355\u9875\u6279\u91CF\u5927\u5C0F\uFF0C\u9ED8\u8BA4 500\uFF1B\u63A5\u53E3\u8FD4\u56DE\u5168\u91CF\u5386\u53F2\uFF0C\u8FC7\u5927\u65F6\u4F1A\u88AB\u88C1\u526A"}},["symbol"]),invoke:(t,e)=>t.futures.inventory(e.symbol,{startDate:e.startDate,pageSize:e.pageSize})},{name:"get_comex_inventory",tier:"full",description:"\u83B7\u53D6 COMEX \u9EC4\u91D1 / \u767D\u94F6\u5E93\u5B58\u5386\u53F2\uFF08\u4E1C\u8D22\uFF09\uFF1A\u6CE8\u518C\u5E93\u5B58\u3001\u5408\u683C\u5E93\u5B58\u53CA\u603B\u91CF\u53D8\u5316\u3002symbol \u5FC5\u586B\uFF0C\u53D6 'gold'(\u9EC4\u91D1) \u6216 'silver'(\u767D\u94F6)\u3002pageSize \u4EC5\u4E3A\u5355\u9875\u6279\u91CF\u5927\u5C0F\uFF08\u9ED8\u8BA4 500\uFF09\uFF0C\u63A5\u53E3\u8FD4\u56DE\u5168\u91CF\u5386\u53F2\uFF0C\u8FC7\u5927\u65F6\u4F1A\u88AB\u88C1\u526A\u3002",inputSchema:n({symbol:{type:"string",enum:ke,description:"\u54C1\u79CD\uFF1Agold=\u9EC4\u91D1 / silver=\u767D\u94F6"},pageSize:{type:"integer",description:"\u5355\u9875\u6279\u91CF\u5927\u5C0F\uFF0C\u9ED8\u8BA4 500\uFF1B\u63A5\u53E3\u8FD4\u56DE\u5168\u91CF\u5386\u53F2\uFF0C\u8FC7\u5927\u65F6\u4F1A\u88AB\u88C1\u526A"}},["symbol"]),invoke:(t,e)=>t.futures.comexInventory(e.symbol,{pageSize:e.pageSize})}];var be=["ho","io","mo"],ie=["50ETF","300ETF","500ETF","\u79D1\u521B50","\u79D1\u521B\u677F50"],re=[{name:"get_index_option_spot",tier:"full",description:"\u83B7\u53D6\u4E2D\u91D1\u6240\u80A1\u6307\u671F\u6743 T \u578B\u5B9E\u65F6\u62A5\u4EF7\uFF08\u8BA4\u8D2D/\u8BA4\u6CBD\u5206\u5217\uFF09\u3002product=\u4EA7\u54C1\u4EE3\u7801(ho/io/mo)\uFF1Bcontract=\u5408\u7EA6\u6708\u4EFD\u3002",inputSchema:n({product:{type:"string",enum:be,description:"\u4EA7\u54C1\u4EE3\u7801\uFF1Aho / io / mo"},contract:o("\u5408\u7EA6\uFF08\u6708\u4EFD\uFF09\uFF0C\u5982 2406")},["product","contract"]),invoke:(t,e)=>t.options.index.spot(e.product,e.contract)},{name:"get_index_option_kline",tier:"full",description:"\u83B7\u53D6\u4E2D\u91D1\u6240\u80A1\u6307\u671F\u6743\u67D0\u5408\u7EA6\u7684\u65E5 K \u7EBF\u3002",inputSchema:n({symbol:o("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")},["symbol"]),invoke:(t,e)=>t.options.index.kline(e.symbol)},{name:"get_etf_option_months",tier:"full",description:"\u83B7\u53D6 ETF \u671F\u6743\u53EF\u4EA4\u6613\u6708\u4EFD\u5217\u8868\uFF08\u542B\u6807\u7684/\u54C1\u79CD\u4FE1\u606F\uFF09\u3002cate=\u671F\u6743\u54C1\u79CD\u3002",inputSchema:n({cate:{type:"string",enum:ie,description:"\u671F\u6743\u54C1\u79CD\uFF1A50ETF / 300ETF / 500ETF / \u79D1\u521B50 / \u79D1\u521B\u677F50"}},["cate"]),invoke:(t,e)=>t.options.etf.months(e.cate)},{name:"get_etf_option_expire_day",tier:"full",description:"\u83B7\u53D6 ETF \u671F\u6743\u6307\u5B9A\u6708\u4EFD\u7684\u5230\u671F\u65E5\u4E0E\u5269\u4F59\u5929\u6570\u3002month \u683C\u5F0F YYYY-MM\uFF08\u5982 2024-06\uFF09\uFF0C\u53EF\u76F4\u63A5\u53D6\u81EA get_etf_option_months \u8FD4\u56DE\u7684\u6708\u4EFD\u3002",inputSchema:n({cate:{type:"string",enum:ie,description:"\u671F\u6743\u54C1\u79CD\uFF1A50ETF / 300ETF / 500ETF / \u79D1\u521B50 / \u79D1\u521B\u677F50"},month:o("\u6708\u4EFD YYYY-MM\uFF0C\u5982 2024-06\uFF08\u53EF\u53D6\u81EA get_etf_option_months \u8FD4\u56DE\u7684\u6708\u4EFD\uFF09")},["cate","month"]),invoke:(t,e)=>t.options.etf.expireDay(e.cate,e.month)},{name:"get_etf_option_minute",tier:"full",description:"\u83B7\u53D6 ETF \u671F\u6743\u67D0\u5408\u7EA6\u7684\u5F53\u65E5\u5206\u65F6\u6570\u636E\uFF08\u4EF7\u683C\u3001\u6210\u4EA4\u91CF\u3001\u6301\u4ED3\u91CF\u3001\u5747\u4EF7\uFF09\u3002",inputSchema:n({code:o("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")},["code"]),invoke:(t,e)=>t.options.etf.minute(e.code)},{name:"get_etf_option_daily_kline",tier:"full",description:"\u83B7\u53D6 ETF \u671F\u6743\u67D0\u5408\u7EA6\u7684\u65E5 K \u7EBF\u3002",inputSchema:n({code:o("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")},["code"]),invoke:(t,e)=>t.options.etf.dailyKline(e.code)},{name:"get_etf_option_five_day_minute",tier:"full",description:"\u83B7\u53D6 ETF \u671F\u6743\u67D0\u5408\u7EA6\u7684\u8FD1 5 \u65E5\u5206\u65F6\u6570\u636E\u3002",inputSchema:n({code:o("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")},["code"]),invoke:(t,e)=>t.options.etf.fiveDayMinute(e.code)},{name:"get_commodity_option_spot",tier:"full",description:"\u83B7\u53D6\u5546\u54C1\u671F\u6743 T \u578B\u5B9E\u65F6\u62A5\u4EF7\uFF08\u8BA4\u8D2D/\u8BA4\u6CBD\u5206\u5217\uFF09\u3002variety=\u54C1\u79CD\u4EE3\u7801\uFF08\u5982 cu/m/au\uFF09\uFF1Bcontract=\u5408\u7EA6\u6708\u4EFD\u3002",inputSchema:n({variety:o("\u54C1\u79CD\u4EE3\u7801\uFF0C\u5982 cu / m / au"),contract:o("\u5408\u7EA6\uFF08\u6708\u4EFD\uFF09\uFF0C\u5982 2406")},["variety","contract"]),invoke:(t,e)=>t.options.commodity.spot(e.variety,e.contract)},{name:"get_commodity_option_kline",tier:"full",description:"\u83B7\u53D6\u5546\u54C1\u671F\u6743\u67D0\u5408\u7EA6\u7684\u65E5 K \u7EBF\u3002",inputSchema:n({symbol:o("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")},["symbol"]),invoke:(t,e)=>t.options.commodity.kline(e.symbol)},{name:"get_cffex_option_quotes",tier:"full",description:"\u83B7\u53D6\u4E2D\u91D1\u6240\u5168\u90E8\u671F\u6743\u5B9E\u65F6\u884C\u60C5\u5217\u8868\uFF08\u4EF7\u683C\u3001\u6DA8\u8DCC\u3001\u6210\u4EA4\u3001\u6301\u4ED3\u3001\u884C\u6743\u4EF7\u3001\u5269\u4F59\u5929\u6570\u7B49\uFF09\u3002\u26A0\uFE0F \u4F53\u79EF\u5927\uFF1A\u9ED8\u8BA4 pageSize=20000 \u8FD4\u56DE\u5168\u5E02\u573A\u5408\u7EA6\u3002",inputSchema:n({pageSize:{type:"integer",description:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20000"}}),invoke:(t,e)=>t.options.cffex.quotes({pageSize:e.pageSize})},{name:"get_option_lhb",tier:"full",description:"\u83B7\u53D6\u671F\u6743\u9F99\u864E\u699C\uFF08\u6309\u6807\u7684\u4E0E\u65E5\u671F\uFF0C\u542B\u6210\u4EA4\u91CF/\u6301\u4ED3\u91CF\u6392\u540D\u3001\u4F1A\u5458\u5E2D\u4F4D\u3001\u51C0\u4E70\u5356\u7B49\uFF09\u3002date \u683C\u5F0F YYYY-MM-DD\u3002",inputSchema:n({symbol:o("\u671F\u6743\u6807\u7684/\u5408\u7EA6\u4EE3\u7801"),date:o("\u65E5\u671F YYYY-MM-DD\uFF0C\u5982 2024-06-03")},["symbol","date"]),invoke:(t,e)=>t.options.lhb(e.symbol,e.date)}];var Se=["BZDM","ABBNAME","DJR","FSRQ","FHFCZ","FFR"],Ye=["asc","desc"],se=[{name:"get_fund_dividend_list",tier:"full",description:"\u83B7\u53D6\u57FA\u91D1\u5206\u7EA2\u660E\u7EC6\u5217\u8868\uFF08\u4E1C\u65B9\u8D22\u5BCC\u5206\u7EA2\u9001\u914D\u9891\u9053\uFF09\u3002\u63A5\u53E3\u4EC5\u652F\u6301\u300C\u5E74\u4EFD+\u5168\u5E02\u573A+\u7FFB\u9875\u300D\u67E5\u8BE2\uFF0C\u4E0D\u652F\u6301\u670D\u52A1\u7AEF\u6309\u4EE3\u7801\u7CBE\u786E\u67E5\uFF1B\u8981\u62FF\u5355\u53EA\u57FA\u91D1\u5B8C\u6574\u5206\u7EA2\u8BB0\u5F55\u8BF7\u540C\u65F6\u8BBE page='all' \u4E0E code\uFF08code \u4E3A\u5BA2\u6237\u7AEF\u8FC7\u6EE4\uFF09\u3002\u9ED8\u8BA4\u62C9\u5F53\u524D\u5E74\u7B2C 1 \u9875\u3001\u6309\u9664\u606F\u65E5(FSRQ)\u5012\u5E8F\u3002",inputSchema:n({year:{type:"string",description:'\u67E5\u8BE2\u5E74\u4EFD\uFF0C\u5982 "2026"\uFF1B\u9ED8\u8BA4\u5F53\u524D\u5E74\uFF08Asia/Shanghai\uFF09'},page:{type:"string",description:"\u9875\u7801\uFF08\u4ECE 1 \u5F00\u59CB\uFF09\u7684\u6570\u5B57\u5B57\u7B26\u4E32\uFF0C\u6216 'all' \u81EA\u52A8\u7FFB\u5B8C\u8BE5\u5E74\u6240\u6709\u9875\u5E76\u805A\u5408\uFF1B\u9ED8\u8BA4 1"},fundType:{type:"string",description:"\u57FA\u91D1\u7C7B\u578B\u7B5B\u9009\uFF0C\u7A7A\u8868\u793A\u5168\u90E8\uFF0C\u5982 '\u80A1\u7968\u578B' / '\u6307\u6570\u578B-\u80A1\u7968' / '\u6DF7\u5408\u578B-\u504F\u80A1' / 'REITs'"},rank:{type:"string",enum:Se,default:"FSRQ",description:"\u6392\u5E8F\u5B57\u6BB5\uFF1ABZDM=\u57FA\u91D1\u4EE3\u7801 / ABBNAME=\u57FA\u91D1\u7B80\u79F0 / DJR=\u6743\u76CA\u767B\u8BB0\u65E5 / FSRQ=\u9664\u606F\u65E5\u671F(\u9ED8\u8BA4) / FHFCZ=\u5206\u7EA2(\u5143/\u4EFD) / FFR=\u5206\u7EA2\u53D1\u653E\u65E5"},sort:{type:"string",enum:Ye,default:"desc",description:"\u6392\u5E8F\u65B9\u5411\uFF1Aasc=\u5347\u5E8F / desc=\u964D\u5E8F(\u9ED8\u8BA4)"},code:{type:"string",description:"\u6309\u57FA\u91D1\u4EE3\u7801\u8FC7\u6EE4\uFF08\u5BA2\u6237\u7AEF\u8FC7\u6EE4\uFF09\uFF0C\u4E00\u822C\u642D\u914D page='all' \u4F7F\u7528"}}),invoke:(t,e)=>{let i={year:e.year,page:e.page,fundType:e.fundType,rank:e.rank,sort:e.sort,code:e.code};return t.fund.dividendList(i)}},{name:"get_fund_nav_history",tier:"full",description:"\u83B7\u53D6\u57FA\u91D1\u5386\u53F2\u51C0\u503C\uFF08\u5355\u4F4D\u51C0\u503C + \u7D2F\u8BA1\u51C0\u503C\uFF0C\u5168\u5386\u53F2\u4E00\u6B21\u8FD4\u56DE\uFF0C\u6309\u65E5\u671F\u5347\u5E8F\uFF09\u3002\u5F00\u653E\u5F0F / ETF / LOF / \u8D27\u5E01 / QDII \u5747\u901A\u7528\u3002\u26A0\uFE0F \u4F53\u79EF\u5927\uFF1A\u5168\u5386\u53F2\u6570\u5343\u6761\u3001\u54CD\u5E94\u4F53\u7EA6 600KB\uFF0C\u5EFA\u8BAE\u5E94\u7528\u5C42\u7F13\u5B58\u3002",inputSchema:n({code:o("\u57FA\u91D1\u4EE3\u7801\uFF0C\u7EAF\u6570\u5B57\uFF0C\u5982 110011")},["code"]),invoke:(t,e)=>t.fund.navHistory(e.code)},{name:"get_fund_estimate",tier:"core",description:"\u83B7\u53D6\u57FA\u91D1\u5F53\u65E5\u5B9E\u65F6\u4F30\u503C\uFF08\u5929\u5929\u57FA\u91D1 fundgz \u63A5\u53E3\uFF09\u3002\u540C\u65F6\u8FD4\u56DE\u6700\u65B0\u5DF2\u7ED3\u7B97\u5355\u4F4D\u51C0\u503C\uFF08nav/navDate\uFF09\u4E0E\u76D8\u4E2D\u5B9E\u65F6\u4F30\u7B97\uFF08estimatedNav/estimatedChangePercent/estimateTime\uFF0C\u6DA8\u8DCC\u5E45\u5355\u4F4D %\uFF09\u3002QDII / \u975E\u4EA4\u6613\u65E5 / \u90E8\u5206\u5C0F\u4F17\u57FA\u91D1\u7684\u4F30\u7B97\u5B57\u6BB5\u53EF\u80FD\u4E3A null\u3002",inputSchema:n({code:o("\u57FA\u91D1\u4EE3\u7801\uFF0C\u7EAF\u6570\u5B57\uFF0C\u5982 005827")},["code"]),invoke:(t,e)=>t.fund.estimate(e.code)},{name:"get_fund_rank_history",tier:"full",description:"\u83B7\u53D6\u57FA\u91D1\u540C\u7C7B\u6392\u540D\u8D70\u52BF\uFF08\u6BCF\u65E5\u8FD1\u4E09\u6708\u6392\u540D + \u540C\u7C7B\u603B\u6570 + \u6392\u540D\u767E\u5206\u4F4D %\uFF0C\u6309\u65E5\u671F\u5347\u5E8F\uFF09\u3002\u9002\u5408\u753B\u300C\u8BE5\u57FA\u91D1\u5728\u540C\u7C7B\u91CC\u7684\u76F8\u5BF9\u8868\u73B0\u300D\u6298\u7EBF\u56FE\u3002\u6570\u636E\u6E90\u540C get_fund_nav_history\u3002",inputSchema:n({code:o("\u57FA\u91D1\u4EE3\u7801\uFF0C\u7EAF\u6570\u5B57\uFF0C\u5982 110011")},["code"]),invoke:(t,e)=>t.fund.rankHistory(e.code)}];var Te=["A","HK","US"],ae=[{name:"is_trading_day",tier:"core",description:"\u5224\u65AD\u67D0\u5929\u662F\u5426\u4E3A A \u80A1\u4EA4\u6613\u65E5\uFF08\u57FA\u4E8E\u4E0A\u6E38\u5B98\u65B9\u65E5\u5386\uFF0C\u80FD\u8BC6\u522B\u6CD5\u5B9A\u5047\u65E5\uFF09\u3002date \u53EF\u9009\uFF0C\u652F\u6301 YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u5219\u5224\u65AD\u4ECA\u5929\u3002\u8FD4\u56DE boolean\u3002",inputSchema:n({date:o("\u65E5\u671F YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u4E3A\u4ECA\u5929")}),invoke:(t,e)=>t.calendar.isTradingDay(e.date)},{name:"next_trading_day",tier:"full",description:"\u8FD4\u56DE\u7ED9\u5B9A\u65E5\u671F\u4E4B\u540E\u6700\u8FD1\u7684\u4E00\u4E2A A \u80A1\u4EA4\u6613\u65E5\uFF08YYYY-MM-DD\uFF09\u3002date \u53EF\u9009\uFF0C\u652F\u6301 YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u5219\u4EE5\u4ECA\u5929\u4E3A\u57FA\u51C6\u3002",inputSchema:n({date:o("\u57FA\u51C6\u65E5\u671F YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u4E3A\u4ECA\u5929")}),invoke:(t,e)=>t.calendar.nextTradingDay(e.date)},{name:"prev_trading_day",tier:"full",description:"\u8FD4\u56DE\u7ED9\u5B9A\u65E5\u671F\u4E4B\u524D\u6700\u8FD1\u7684\u4E00\u4E2A A \u80A1\u4EA4\u6613\u65E5\uFF08YYYY-MM-DD\uFF09\u3002date \u53EF\u9009\uFF0C\u652F\u6301 YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u5219\u4EE5\u4ECA\u5929\u4E3A\u57FA\u51C6\u3002",inputSchema:n({date:o("\u57FA\u51C6\u65E5\u671F YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u4E3A\u4ECA\u5929")}),invoke:(t,e)=>t.calendar.prevTradingDay(e.date)},{name:"get_market_status",tier:"core",description:"\u83B7\u53D6\u5E02\u573A\u5F53\u524D\u5B9E\u65F6\u72B6\u6001\uFF1Apre_market(\u76D8\u524D) / open(\u4EA4\u6613\u4E2D) / lunch_break(\u5348\u4F11) / after_hours(\u76D8\u540E) / closed(\u4F11\u5E02)\u3002market \u53EF\u9009\u679A\u4E3E A/HK/US\uFF0C\u9ED8\u8BA4 A\u3002\u26A0\uFE0F \u540C\u6B65\u672C\u5730\u65F6\u949F\u5224\u65AD\u3001\u4E0D\u53D1\u8BF7\u6C42\uFF1AA \u80A1\u57FA\u4E8E\u4EA4\u6613\u65F6\u6BB5\u4F46\u4E0D\u8BC6\u522B\u6CD5\u5B9A\u5047\u65E5\uFF0C\u6E2F\u80A1/\u7F8E\u80A1\u9000\u5316\u4E3A'\u5468\u4E00-\u5468\u4E94 + \u5DF2\u77E5\u4EA4\u6613\u65F6\u6BB5'\u8FD1\u4F3C\u3002",inputSchema:n({market:{type:"string",enum:Te,default:"A",description:"\u5E02\u573A\uFF1AA=A\u80A1 / HK=\u6E2F\u80A1 / US=\u7F8E\u80A1\uFF0C\u9ED8\u8BA4 A"}}),invoke:(t,e)=>t.calendar.marketStatus(e.market)}];var de=[{name:"get_dividend_detail",tier:"full",description:"\u83B7\u53D6 A \u80A1\u5206\u7EA2\u914D\u80A1\u660E\u7EC6\uFF1A\u5386\u5E74\u9001\u8F6C\u3001\u6D3E\u606F\uFF08\u6BCF 10 \u80A1\u6D3E X \u5143\uFF09\u3001\u9664\u6743\u9664\u606F\u65E5\u3001\u80A1\u6743\u767B\u8BB0\u65E5\u7B49\u3002\u4EE3\u7801\u5E26\u4E0D\u5E26\u4EA4\u6613\u6240\u524D\u7F00\u5747\u53EF\uFF08\u5982 600519 / sh600519\uFF09\u3002",inputSchema:n({symbol:o("\u5355\u53EA\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519")},["symbol"]),invoke:(t,e)=>t.reference.dividendDetail(e.symbol)},{name:"get_trading_calendar",tier:"full",description:"\u83B7\u53D6 A \u80A1\u4EA4\u6613\u65E5\u5386\u539F\u59CB\u6570\u7EC4\uFF08\u5347\u5E8F 'YYYY-MM-DD' \u5B57\u7B26\u4E32\u5217\u8868\uFF0C\u6765\u81EA\u817E\u8BAF\u63A5\u53E3\uFF0C\u5E26 12 \u5C0F\u65F6\u7F13\u5B58\uFF09\u3002\u26A0\uFE0F \u4F53\u79EF\u5927\uFF1A\u8FD4\u56DE\u6570\u5343\u4E2A\u4EA4\u6613\u65E5\u3002\u53EA\u9700\u5224\u65AD\u67D0\u65E5\u662F\u5426\u4EA4\u6613\u65E5 / \u53D6\u4E0A\u4E00\u6216\u4E0B\u4E00\u4EA4\u6613\u65E5\u65F6\uFF0C\u4F18\u5148\u7528 calendar \u547D\u540D\u7A7A\u95F4\u4E0B\u7684\u5DE5\u5177\uFF0C\u65E0\u9700\u62C9\u5168\u91CF\u3002",inputSchema:n({}),invoke:t=>t.reference.tradingCalendar()}];var S=[...z,...J,...H,...L,...U,...X,...W,...G,...ee,...ne,...oe,...re,...se,...ae,...de],gt=new Map(S.map(t=>[t.name,t]));function pe(t){if(Array.isArray(t)){let e=new Set(t);return S.filter(i=>e.has(i.name))}return t==="full"?S:S.filter(e=>e.tier==="core")}var v=200,Me=8e4;function ve(t){return Array.isArray(t)&&t.length>v?{total:t.length,truncated:!0,note:`\u7ED3\u679C\u8FC7\u5927\uFF0C\u4EC5\u8FD4\u56DE\u524D ${v} \u6761\uFF1B\u8BF7\u7528\u65E5\u671F / \u5206\u9875 / \u5E02\u573A\u7B49\u53C2\u6570\u7F29\u5C0F\u8303\u56F4`,sample:t.slice(0,v)}:t}function ce(t){let e=JSON.stringify(ve(t))??"null";return e.length>Me?{content:[{type:"text",text:JSON.stringify({truncated:!0,reason:"oversized",approxKB:Math.round(e.length/1024),note:"\u7ED3\u679C\u4F53\u79EF\u8FC7\u5927\uFF0C\u5DF2\u7701\u7565\u6570\u636E\u4F53\uFF1B\u8BF7\u7528\u66F4\u5C0F\u7684\u65E5\u671F / \u5206\u9875 / \u8303\u56F4\u53C2\u6570\uFF0C\u6216\u76F4\u63A5\u7528 SDK \u83B7\u53D6\u5B8C\u6574\u6570\u636E"})}],_meta:{truncated:!0,approxChars:e.length}}:{content:[{type:"text",text:e}]}}function R(t){let e=M(t)?t.code:"UNKNOWN",i=t instanceof Error?t.message:String(t),r=M(t)?{code:t.code,provider:t.provider,url:t.url,status:t.status,details:t.details}:{code:e};return{content:[{type:"text",text:`Error[${e}]: ${i}`}],isError:!0,_meta:r}}function Y(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Re(t,e){for(let i of t.required??[])if(e[i]===void 0||e[i]===null)return`\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570 "${i}"`;for(let[i,r]of Object.entries(t.properties)){let s=e[i];if(s==null||!r.type)continue;if(!(r.type==="array"?Array.isArray(s):r.type==="string"?typeof s=="string":r.type==="integer"?Number.isInteger(s):r.type==="number"?typeof s=="number":r.type==="boolean"?typeof s=="boolean":r.type==="object"?typeof s=="object"&&!Array.isArray(s):!0))return`\u53C2\u6570 "${i}" \u7C7B\u578B\u5E94\u4E3A ${r.type}`}return null}async function Ae(t,e){let i=t.id??null,r=t.id!==void 0&&t.id!==null,s=a=>({jsonrpc:"2.0",id:i,result:a}),d=(a,g)=>({jsonrpc:"2.0",id:i,error:{code:a,message:g}});if(t.jsonrpc!=="2.0"||typeof t.method!="string"||t.method.length===0)return r?d(j,"Invalid Request"):null;let l=t.params;switch(t.method){case"initialize":{let a=Y(l)?l.protocolVersion:void 0;return s({protocolVersion:I(a),capabilities:{tools:{}},serverInfo:k})}case"notifications/initialized":case"notifications/cancelled":return null;case"ping":return s({});case"tools/list":return s({tools:e.tools.map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema}))});case"tools/call":{if(!Y(l))return d(_,"params must be an object");let a=l.name;if(typeof a!="string")return d(_,"params.name must be a string");let g=e.toolMap.get(a);if(!g)return d(_,`Unknown tool: ${a}`);let D=l.arguments;if(D!==void 0&&!Y(D))return d(_,"params.arguments must be an object");let A=Y(D)?D:{},E=Re(g.inputSchema,A);if(E)return s(R(new O(E)));try{let T=await g.invoke(e.sdk,A);return s(ce(T))}catch(T){return s(R(T))}}default:return r?d(N,`Unknown method: ${t.method}`):null}}function Ee(t){if(t)return t;let e=process.env.STOCK_SDK_MCP_TOOLS;if(!e)return"core";if(e==="core"||e==="full")return e;let i=e.split(",").map(r=>r.trim()).filter(Boolean);return i.length>0?i:"core"}function Oe(t){if(t)return t;let e=process.env.STOCK_SDK_MCP_TIMEOUT,i=e?Number(e):void 0;return i&&!Number.isNaN(i)&&i>0?{timeout:i}:{}}function vt(t={}){let e=new K(Oe(t.sdk)),i=pe(Ee(t.tools)),r={sdk:e,tools:i,toolMap:new Map(i.map(d=>[d.name,d]))};y(`[stock-sdk mcp] ready \xB7 ${i.length} tools \xB7 ${k.name}@${k.version}`),x(d=>{s(d)}),process.stdin.on("end",()=>y("[stock-sdk mcp] stdin closed, exiting"));async function s(d){let l;try{l=JSON.parse(d)}catch{h({jsonrpc:"2.0",id:null,error:{code:w,message:"Parse error"}});return}try{let a=await Ae(l,r);a&&h(a)}catch(a){y("[stock-sdk mcp] internal error:",a?.message??String(a)),l.id!==void 0&&l.id!==null&&h({jsonrpc:"2.0",id:l.id,error:{code:F,message:String(a?.message??a)}})}}}export{Ae as dispatchMessage,vt as startMcpServer};
1
+ import{a as x,d as I,e as C,g as b,h as A,j as N,m as J,n as j}from"./chunk-GBHWMR2O.js";import{t as M}from"./chunk-4PVVFEOQ.js";import"./chunk-G5KF73BW.js";import"./chunk-D2MGPO3R.js";import"./chunk-DU7MCVLJ.js";import{e as w,i as T}from"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";var v=["2025-11-25","2025-06-18"],X=v[0],R={name:"stock-sdk",version:"2.0.0"},K=-32700,S=-32600,$=-32601,d=-32602,Y=-32603;function L(e){return typeof e=="string"&&v.includes(e)?e:X}function p(...e){process.stderr.write(e.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(" ")+`
2
+ `)}function l(e){process.stdout.write(JSON.stringify(e)+`
3
+ `)}var k=1e6;function q(e){let o="",t=!1;process.stdin.setEncoding("utf8"),process.stdin.on("data",r=>{o+=r;let n=o.indexOf(`
4
+ `);for(;n>=0;){let i=o.slice(0,n);o=o.slice(n+1),t?(t=!1,l({jsonrpc:"2.0",id:null,error:{code:S,message:`Message too large (limit ${k} bytes)`}})):i.trim()&&e(i),n=o.indexOf(`
5
+ `)}!t&&o.length>k?(p(`[stock-sdk mcp] \u8F93\u5165\u8D85\u957F\uFF08${o.length} bytes \u65E0\u6362\u884C\uFF0C\u8D85 ${k} \u4E0A\u9650\uFF09\uFF0C\u4E22\u5F03\u81F3\u4E0B\u4E00\u6362\u884C`),t=!0,o=""):t&&(o="")}),process.stdin.on("error",r=>p("[stock-sdk mcp] stdin error:",r.message)),process.stdout.on("error",r=>{r.code==="EPIPE"?(p("[stock-sdk mcp] stdout EPIPE\uFF08client \u65AD\u5F00\uFF09\uFF0C\u9000\u51FA"),process.exit(0)):p("[stock-sdk mcp] stdout error:",r.message)})}var H={string:"string",enum:"string",number:"integer",boolean:"boolean"};function _(e){return e.jsonKey??e.field??e.flag}function z(e){return e.enum?.map(o=>e.map?.[o]??o)}function u(e){let o=H[e.type];if(!o)throw new Error(`\u53C2\u6570 --${e.flag} \u7684\u7C7B\u578B ${e.type} \u4E0D\u80FD\u6D3E\u751F MCP schema\uFF08\u8BF7\u6807\u8BB0 mcp:false\uFF09`);let t={type:o},r=z(e);r&&(t.enum=r),e.default!==void 0&&(t.default=e.default);let n=e.mcpDesc??e.desc;return n&&(t.description=n),t}function Q(e){let o={type:"string"};return e.enum&&(o.enum=e.enum),e.default!==void 0&&(o.default=e.default),e.desc&&(o.description=e.desc),o}var G={type:"array",items:{type:"string"},description:"\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26\u4EA4\u6613\u6240\u524D\u7F00\u5747\u53EF\uFF0C\u5982 ['sh600519','000001','600036']"};function V(e){return(e.params??[]).filter(o=>o.mcp!==!1)}function Z(e){let o={},t=[];(e.argShape==="codes[]"||e.argShape==="codes+options")&&(o.codes=G,t.push("codes"));for(let r of e.positional??[])o[r.name]=Q(r),r.required&&t.push(r.name);for(let r of V(e))o[_(r)]=u(r),r.required&&t.push(_(r));return{type:"object",properties:o,required:t.length>0?t:void 0,additionalProperties:!1}}function ee(e,o){let t=x(e,o);if(!t)throw new Error(`SDK \u4E0A\u4E0D\u5B58\u5728\u65B9\u6CD5: ${o.join(".")}`);return r=>t.fn.apply(t.parent,r)}function oe(e){let o=e.positional??[],t=V(e);return(r,n)=>{let i=ee(r,e.path),c=o.map(a=>n[a.name]),s={};for(let a of t)s[a.field??a.flag]=n[_(a)];switch(e.argShape){case"none":return i([]);case"codes[]":return i([n.codes]);case"codes+options":return i([n.codes,s]);case"symbol+options":return i([...c,s]);case"options":return i([s]);case"positional":return i(c);default:throw new Error(`\u4E0D\u652F\u6301\u7684 argShape: ${e.argShape}`)}}}function U(e){if(e.mcp===!1||!e.toolName)throw new Error(`\u65B9\u6CD5 ${e.path.join(".")} \u672A\u58F0\u660E MCP \u5DE5\u5177\uFF0C\u4E0D\u80FD\u6D3E\u751F ToolDef`);if(e.mcpCustom)throw new Error(`\u65B9\u6CD5 ${e.path.join(".")} \u7684 MCP \u5DE5\u5177\u4E3A\u624B\u5199\u5B9E\u73B0\uFF0C\u4E0D\u80FD\u81EA\u52A8\u6D3E\u751F`);return{name:e.toolName,description:e.mcpDesc??e.summary,inputSchema:Z(e),tier:e.tier??"full",invoke:oe(e)}}var te=["ma","macd","boll","kdj","rsi","wr","bias","cci","atr","obv","roc","dmi","sar","kc"],g=j("kline.withIndicators"),W={name:g.toolName,tier:g.tier??"full",description:g.mcpDesc??g.summary,inputSchema:{type:"object",properties:{symbol:{type:"string",description:"\u80A1\u7968\u4EE3\u7801\uFF08A \u80A1 / \u6E2F\u80A1 / \u7F8E\u80A1\uFF09"},market:u(N),period:u(C),adjust:u(I),startDate:{...u(b),description:"\u8D77\u59CB\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD"},endDate:{...u(A),description:"\u7ED3\u675F\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD"},indicators:{type:"object",description:"\u6307\u6807\u914D\u7F6E\u5BF9\u8C61\uFF0C\u952E\u53D6\u81EA "+te.join(" / ")+"\uFF1B\u503C\u4E3A true\uFF08\u9ED8\u8BA4\u53C2\u6570\uFF09\u6216\u914D\u7F6E\u5BF9\u8C61",properties:{ma:{description:"MA \u5747\u7EBF\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods: [5,10,20], type: sma|ema|wma }"},macd:{description:"MACD\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { short, long, signal }"},boll:{description:"\u5E03\u6797\u5E26\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, stdDev }"},kdj:{description:"KDJ\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, kPeriod, dPeriod }"},rsi:{description:"RSI\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods }"},wr:{description:"\u5A01\u5EC9\u6307\u6807 WR\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods }"},bias:{description:"BIAS \u4E56\u79BB\u7387\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { periods }"},cci:{description:"CCI\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period }"},atr:{description:"ATR \u771F\u5B9E\u6CE2\u5E45\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period }"},obv:{description:"OBV\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { maPeriod }"},roc:{description:"ROC\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, signalPeriod }"},dmi:{description:"DMI / ADX\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { period, adxPeriod }"},sar:{description:"SAR \u629B\u7269\u7EBF\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { afStart, afIncrement, afMax }"},kc:{description:"Keltner \u901A\u9053 KC\uFF0Ctrue \u6216\u914D\u7F6E\u5BF9\u8C61 { emaPeriod, atrPeriod, multiplier }"}}}},required:["symbol"],additionalProperties:!1},invoke:(e,o)=>e.kline.withIndicators(o.symbol,{market:o.market,period:o.period,adjust:o.adjust,startDate:o.startDate,endDate:o.endDate,indicators:o.indicators})};var re={"kline.withIndicators":W},h=J.filter(e=>e.mcp!==!1).map(e=>{if(e.mcpCustom){let o=re[e.path.join(".")];if(!o)throw new Error(`\u65B9\u6CD5 ${e.path.join(".")} \u6807\u8BB0\u4E86 mcpCustom \u4F46\u672A\u6CE8\u518C\u624B\u5199\u5DE5\u5177`);return o}return U(e)}),_e=new Map(h.map(e=>[e.name,e]));function B(e){if(Array.isArray(e)){let o=new Set(e);return h.filter(t=>o.has(t.name))}return e==="full"?h:h.filter(o=>o.tier==="core")}var O=200,ne=8e4;function se(e){return Array.isArray(e)&&e.length>O?{total:e.length,truncated:!0,note:`\u7ED3\u679C\u8FC7\u5927\uFF0C\u4EC5\u8FD4\u56DE\u524D ${O} \u6761\uFF1B\u8BF7\u7528\u65E5\u671F / \u5206\u9875 / \u5E02\u573A\u7B49\u53C2\u6570\u7F29\u5C0F\u8303\u56F4`,sample:e.slice(0,O)}:e}function F(e){let o=JSON.stringify(se(e))??"null";return o.length>ne?{content:[{type:"text",text:JSON.stringify({truncated:!0,reason:"oversized",approxKB:Math.round(o.length/1024),note:"\u7ED3\u679C\u4F53\u79EF\u8FC7\u5927\uFF0C\u5DF2\u7701\u7565\u6570\u636E\u4F53\uFF1B\u8BF7\u7528\u66F4\u5C0F\u7684\u65E5\u671F / \u5206\u9875 / \u8303\u56F4\u53C2\u6570\uFF0C\u6216\u76F4\u63A5\u7528 SDK \u83B7\u53D6\u5B8C\u6574\u6570\u636E"})}],_meta:{truncated:!0,approxChars:o.length}}:{content:[{type:"text",text:o}]}}function E(e){let o=T(e)?e.code:"UNKNOWN",t=e instanceof Error?e.message:String(e),r=T(e)?{code:e.code,provider:e.provider,url:e.url,status:e.status,details:e.details}:{code:o};return{content:[{type:"text",text:`Error[${o}]: ${t}`}],isError:!0,_meta:r}}function f(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ie(e,o){switch(o){case"array":return Array.isArray(e);case"string":return typeof e=="string";case"integer":return Number.isInteger(e);case"number":return typeof e=="number";case"boolean":return typeof e=="boolean";case"object":return f(e);default:return!0}}function ce(e,o){if(e.additionalProperties===!1){let t=new Set(Object.keys(e.properties));for(let r of Object.keys(o))if(!t.has(r))return`\u672A\u77E5\u53C2\u6570 "${r}"`}for(let t of e.required??[])if(o[t]===void 0||o[t]===null)return`\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570 "${t}"`;for(let[t,r]of Object.entries(e.properties)){let n=o[t];if(n!==void 0){if(r.type&&!ie(n,r.type))return`\u53C2\u6570 "${t}" \u7C7B\u578B\u5E94\u4E3A ${r.type}`;if(r.enum&&!r.enum.includes(n))return`\u53C2\u6570 "${t}" \u53D6\u503C\u975E\u6CD5\u300C${String(n)}\u300D\uFF0C\u53EF\u9009: ${r.enum.join(" / ")}`}}return null}async function ae(e,o){let t=e.id??null,r=e.id!==void 0&&e.id!==null,n=s=>({jsonrpc:"2.0",id:t,result:s}),i=(s,a)=>({jsonrpc:"2.0",id:t,error:{code:s,message:a}});if(e.jsonrpc!=="2.0"||typeof e.method!="string"||e.method.length===0)return r?i(S,"Invalid Request"):null;let c=e.params;switch(e.method){case"initialize":{let s=f(c)?c.protocolVersion:void 0;return n({protocolVersion:L(s),capabilities:{tools:{}},serverInfo:R})}case"notifications/initialized":case"notifications/cancelled":return null;case"ping":return n({});case"tools/list":return n({tools:o.tools.map(s=>({name:s.name,description:s.description,inputSchema:s.inputSchema}))});case"tools/call":{if(!f(c))return i(d,"params must be an object");let s=c.name;if(typeof s!="string")return i(d,"params.name must be a string");let a=o.toolMap.get(s);if(!a)return i(d,`Unknown tool: ${s}`);let m=c.arguments;if(m!==void 0&&!f(m))return i(d,"params.arguments must be an object");let D=f(m)?m:{},P=ce(a.inputSchema,D);if(P)return n(E(new w(P)));try{let y=await a.invoke(o.sdk,D);return n(F(y))}catch(y){return n(E(y))}}default:return r?i($,`Unknown method: ${e.method}`):null}}function pe(e){if(e)return e;let o=process.env.STOCK_SDK_MCP_TOOLS;if(!o)return"core";if(o==="core"||o==="full")return o;let t=o.split(",").map(r=>r.trim()).filter(Boolean);return t.length>0?t:"core"}function ue(e){if(e)return e;let o=process.env.STOCK_SDK_MCP_TIMEOUT,t=o?Number(o):void 0;return t&&!Number.isNaN(t)&&t>0?{timeout:t}:{}}function be(e={}){let o=new M(ue(e.sdk)),t=B(pe(e.tools)),r={sdk:o,tools:t,toolMap:new Map(t.map(i=>[i.name,i]))};p(`[stock-sdk mcp] ready \xB7 ${t.length} tools \xB7 ${R.name}@${R.version}`),q(i=>{n(i)}),process.stdin.on("end",()=>p("[stock-sdk mcp] stdin closed, exiting"));async function n(i){let c;try{c=JSON.parse(i)}catch{l({jsonrpc:"2.0",id:null,error:{code:K,message:"Parse error"}});return}try{let s=await ae(c,r);s&&l(s)}catch(s){p("[stock-sdk mcp] internal error:",s?.message??String(s)),c.id!==void 0&&c.id!==null&&l({jsonrpc:"2.0",id:c.id,error:{code:Y,message:String(s?.message??s)}})}}}export{ae as dispatchMessage,be as startMcpServer};
package/dist/screener.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXVLG3G7Tcjs = require('./chunk-XVLG3G7T.cjs');require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');exports.backtest = _chunkXVLG3G7Tcjs.b; exports.screen = _chunkXVLG3G7Tcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkC4CA7QBBcjs = require('./chunk-C4CA7QBB.cjs');require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');exports.backtest = _chunkC4CA7QBBcjs.b; exports.screen = _chunkC4CA7QBBcjs.a;
package/dist/screener.js CHANGED
@@ -1 +1 @@
1
- import{a,b}from"./chunk-HFN6G5M4.js";import"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";export{b as backtest,a as screen};
1
+ import{a,b}from"./chunk-LCX5Q36O.js";import"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";export{b as backtest,a as screen};