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.
- package/README.md +27 -23
- package/dist/{adapters-C0s5bM8O.d.cts → adapters-BvE63CMd.d.cts} +16 -1
- package/dist/{adapters-C0s5bM8O.d.ts → adapters-BvE63CMd.d.ts} +16 -1
- package/dist/{addIndicators-TPEcddTW.d.cts → addIndicators-DwEr9RKK.d.cts} +207 -191
- package/dist/{addIndicators-TPEcddTW.d.ts → addIndicators-DwEr9RKK.d.ts} +207 -191
- package/dist/cache.cjs +1 -1
- package/dist/cache.js +1 -1
- package/dist/chunk-2PYGJ5I5.cjs +1 -0
- package/dist/chunk-3NSUE34F.cjs +1 -0
- package/dist/chunk-4PVVFEOQ.js +1 -0
- package/dist/chunk-C4CA7QBB.cjs +1 -0
- package/dist/chunk-D2MGPO3R.js +1 -0
- package/dist/{chunk-JYHHLB34.js → chunk-DU7MCVLJ.js} +1 -1
- package/dist/{chunk-SPLQXFFF.js → chunk-F3KZXCVO.js} +1 -1
- package/dist/chunk-G5KF73BW.js +1 -0
- package/dist/chunk-GBHWMR2O.js +1 -0
- package/dist/chunk-LCX5Q36O.js +1 -0
- package/dist/chunk-PMERLSCU.cjs +1 -0
- package/dist/{chunk-DOOAXFSS.cjs → chunk-TVIEKKDQ.cjs} +1 -1
- package/dist/{chunk-BGZ4ZUAF.cjs → chunk-WCBK5KYA.cjs} +1 -1
- package/dist/chunk-YR2SVSXB.cjs +1 -0
- package/dist/cli.cjs +17 -16
- package/dist/cli.js +17 -16
- package/dist/errors.d.cts +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/{index-B0PXWAkv.d.cts → index-mlzPfoON.d.cts} +12 -0
- package/dist/{index-B0PXWAkv.d.ts → index-mlzPfoON.d.ts} +12 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1 -1
- package/dist/indicators.cjs +1 -1
- package/dist/indicators.d.cts +55 -5
- package/dist/indicators.d.ts +55 -5
- package/dist/indicators.js +1 -1
- package/dist/mcp.cjs +5 -5
- package/dist/mcp.d.cts +3 -3
- package/dist/mcp.d.ts +3 -3
- package/dist/mcp.js +5 -5
- package/dist/screener.cjs +1 -1
- package/dist/screener.js +1 -1
- package/dist/{sdk-CGd_HgIM.d.ts → sdk-Cg_jTmTk.d.cts} +21 -527
- package/dist/{sdk-C_Agv5AV.d.cts → sdk-DOz03n_v.d.ts} +21 -527
- package/dist/signals.cjs +1 -1
- package/dist/signals.d.cts +1 -1
- package/dist/signals.d.ts +1 -1
- package/dist/signals.js +1 -1
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.d.cts +2 -2
- package/dist/symbols.d.ts +2 -2
- package/dist/symbols.js +1 -1
- package/package.json +6 -10
- package/dist/chunk-333W3ADG.js +0 -1
- package/dist/chunk-4RR2H3DC.js +0 -1
- package/dist/chunk-66NWE54C.cjs +0 -1
- package/dist/chunk-6JEP4QK7.cjs +0 -1
- package/dist/chunk-HFN6G5M4.js +0 -1
- package/dist/chunk-LRE63M2C.js +0 -1
- package/dist/chunk-NMRUSAWS.cjs +0 -1
- package/dist/chunk-PVSDXLQP.cjs +0 -1
- package/dist/chunk-XVLG3G7T.cjs +0 -1
- package/dist/chunk-ZAQ7DTRY.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});function ue(a,p){let m,g=p.reduce((i,O)=>{if(!(i==null||typeof i!="object"))return m=i,i[O]},a);if(typeof g=="function")return{fn:g,parent:m}}var C=["qfq","hfq","none"],F=["daily","weekly","monthly"],B=["1","5","15","30","60"],w=["sh","sz","bj","kc","cy"],v=["NASDAQ","NYSE","AMEX"],K= exports.b =["A","HK","US"],_=["north","south"],x= exports.c =["zt","yesterday","strong","sub_new","broken","dt"],h=["1month","3month","6month","1year"],y=["50ETF","300ETF","500ETF","\u79D1\u521B50","\u79D1\u521B\u677F50"],L=["ho","io","mo"],H=["gold","silver"],U=["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"],r= exports.d ={flag:"adjust",type:"enum",enum:C,map:{none:""},default:"qfq",desc:"\u590D\u6743\uFF1Aqfq \u524D\u590D\u6743(\u9ED8\u8BA4) / hfq \u540E\u590D\u6743 / none \u4E0D\u590D\u6743",mcpDesc:"\u590D\u6743\uFF1Aqfq=\u524D\u590D\u6743(\u9ED8\u8BA4,\u770B\u8D70\u52BF) / hfq=\u540E\u590D\u6743(\u7B97\u6536\u76CA) / ''=\u4E0D\u590D\u6743"},D={...r,default:"",mcpDesc:"\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"},s= exports.e ={flag:"period",type:"enum",enum:F,default:"daily",desc:"K \u7EBF\u5468\u671F daily/weekly/monthly",mcpDesc:"\u5386\u53F2 K \u7EBF\u5468\u671F"},u= exports.f ={flag:"period",type:"enum",enum:B,default:"1",desc:"\u5206\u949F\u5468\u671F 1/5/15/30/60",mcpDesc:"\u5206\u949F\u5468\u671F\uFF1B1=\u5F53\u65E5\u5206\u65F6"},S={...u,default:"5",mcpDesc:"\u5206\u949F\u5468\u671F\uFF1B\u9ED8\u8BA4 5\uFF085 \u5206\u949F K \u7EBF\uFF09\uFF0C\u5F53\u65E5\u5206\u65F6\u8BF7\u4F20 period=1"},t= exports.g ={flag:"start",field:"startDate",type:"string",desc:"\u5F00\u59CB\u65E5\u671F YYYYMMDD",mcpDesc:"\u8D77\u59CB\u65E5\u671F YYYYMMDD"},o= exports.h ={flag:"end",field:"endDate",type:"string",desc:"\u7ED3\u675F\u65E5\u671F YYYYMMDD",mcpDesc:"\u7ED3\u675F\u65E5\u671F YYYYMMDD"},Y={...t,required:!0},f={...o,required:!0},z={...t,mcpDesc:"\u5F00\u59CB\u65F6\u95F4"},j={...o,mcpDesc:"\u7ED3\u675F\u65F6\u95F4"},Q={...t,mcpDesc:"\u5F00\u59CB\u65F6\u95F4 YYYY-MM-DD HH:mm\uFF08\u6E2F\u80A1\u672C\u5730\u65F6\u533A\uFF09"},G={...o,mcpDesc:"\u7ED3\u675F\u65F6\u95F4 YYYY-MM-DD HH:mm\uFF08\u6E2F\u80A1\u672C\u5730\u65F6\u533A\uFF09"},Z={...t,mcp:!1},X={...o,mcp:!1},q={...t,mcpDesc:"\u8D77\u59CB\u65E5\u671F YYYY-MM-DD"},R={...o,mcpDesc:"\u7ED3\u675F\u65E5\u671F YYYY-MM-DD"},V={...q,cli:!1},J={...R,cli:!1},M= exports.i ={flag:"ndays",jsonKey:"recentDays",type:"number",desc:"\u6700\u8FD1 N \u4E2A\u4EA4\u6613\u65E5\u5206\u65F6(\u4EC5 period=1 \u751F\u6548)",mcpDesc:"\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"},N={flag:"market",type:"enum",enum:w,desc:"\u5E02\u573A\u7B5B\u9009 sh/sz/bj/kc/cy",mcpDesc:"\u6309\u677F\u5757\u7B5B\u9009"},b={flag:"market",type:"enum",enum:v,upper:!0,desc:"\u4EA4\u6613\u6240\u7B5B\u9009 NASDAQ/NYSE/AMEX"},$= exports.j ={flag:"market",type:"enum",enum:K,upper:!0,desc:"\u5E02\u573A(\u9ED8\u8BA4\u81EA\u52A8\u8BC6\u522B)",mcpDesc:"\u5E02\u573A\u7C7B\u578B A / HK / US\uFF1B\u4E0D\u4F20\u5219\u7531 symbol \u81EA\u52A8\u8BC6\u522B"},c={flag:"batchSize",type:"number",desc:"\u5355\u6279\u6570\u91CF(\u9ED8\u8BA4 500)",mcpDesc:"\u5355\u6279\u4EE3\u7801\u6570\uFF0C\u9ED8\u8BA4 500"},l={flag:"concurrency",type:"number",desc:"\u5E76\u53D1\u6570(\u9ED8\u8BA4 7)",mcpDesc:"\u5E76\u53D1\u6570\uFF0C\u9ED8\u8BA4 7"},I={flag:"simple",type:"boolean",desc:"\u53BB\u6389\u4EA4\u6613\u6240\u524D\u7F00"},W={...I,mcpDesc:"\u53BB\u6389\u5E02\u573A\u524D\u7F00"},k={flag:"direction",type:"enum",enum:_,mcp:!1,desc:"\u65B9\u5411 north / south"},ee= exports.k =["ma","rsi","wr","bias"],ae= exports.l =["macd","kdj","boll","cci","atr","obv","roc","dmi","sar","kc"],te=[...ee.map(a=>({flag:a,type:"number[]",mcp:!1,desc:`${a.toUpperCase()} \u5468\u671F(\u9017\u53F7\u5206\u9694\uFF0C\u5982 5,10\uFF1B\u4EC5 --${a} \u7528\u9ED8\u8BA4)`})),...ae.map(a=>({flag:a,type:"boolean",mcp:!1,desc:`\u542F\u7528 ${a.toUpperCase()}`}))],A={flag:"indicator",type:"enum",enum:["today","3day","5day","10day"],default:"today",cli:!1,desc:"\u6392\u540D\u5468\u671F today/3day/5day/10day",mcpDesc:"\u6392\u540D\u5468\u671F\uFF1Atoday=\u4ECA\u65E5(\u9ED8\u8BA4) / 3day / 5day / 10day"},oe={flag:"sectorType",type:"enum",enum:["industry","concept","region"],default:"industry",cli:!1,desc:"\u677F\u5757\u7C7B\u578B industry/concept/region",mcpDesc:"\u677F\u5757\u7C7B\u578B\uFF1Aindustry=\u884C\u4E1A(\u9ED8\u8BA4) / concept=\u6982\u5FF5 / region=\u5730\u57DF"},se={flag:"market",type:"enum",enum:["all","shanghai","shenzhen"],default:"all",cli:!1,desc:"\u5E02\u573A all/shanghai/shenzhen",mcpDesc:"\u5E02\u573A:all(\u9ED8\u8BA4) / shanghai=\u6CAA\u80A1\u901A / shenzhen=\u6DF1\u80A1\u901A"},re={flag:"period",type:"enum",enum:["today","3day","5day","10day","month","quarter","year"],default:"5day",cli:!1,desc:"\u6392\u540D\u5468\u671F today/3day/5day/10day/month/quarter/year",mcpDesc:"\u6392\u540D\u5468\u671F:today / 3day / 5day(\u9ED8\u8BA4) / 10day / month / quarter / year"},ne={flag:"date",type:"string",cli:!1,desc:"\u6307\u5B9A\u4EA4\u6613\u65E5 YYYY-MM-DD",mcpDesc:"\u6307\u5B9A\u4EA4\u6613\u65E5 YYYY-MM-DD\uFF08\u9ED8\u8BA4\u670D\u52A1\u7AEF\u6700\u65B0\u4EA4\u6613\u65E5\uFF09"},pe={flag:"pageSize",type:"number",cli:!1,desc:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20"},me={flag:"pageSize",type:"number",cli:!1,desc:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20000"},E={flag:"pageSize",type:"number",cli:!1,desc:"\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"},ie={flag:"marketCode",type:"number",cli:!1,desc:"\u4E1C\u8D22\u5E02\u573A\u4EE3\u7801\uFF08\u672A\u5185\u7F6E\u54C1\u79CD\u65F6\u624B\u52A8\u6307\u5B9A\uFF09"},ce={flag:"start",field:"startDate",type:"string",cli:!1,desc:"\u5F00\u59CB\u65E5\u671F YYYY-MM-DD\uFF0C\u9ED8\u8BA4 2020-10-28"},T={...r,mcp:!1},P="\u7EDF\u8BA1\u5468\u671F\uFF1A1month / 3month / 6month / 1year\uFF0C\u9ED8\u8BA4 1month",le=[{flag:"year",type:"string",cli:!1,desc:'\u67E5\u8BE2\u5E74\u4EFD\uFF0C\u5982 "2026"\uFF1B\u9ED8\u8BA4\u5F53\u524D\u5E74\uFF08Asia/Shanghai\uFF09'},{flag:"page",type:"string",cli:!1,desc:"\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"},{flag:"fundType",type:"string",cli:!1,desc:"\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'"},{flag:"rank",type:"enum",enum:["BZDM","ABBNAME","DJR","FSRQ","FHFCZ","FFR"],default:"FSRQ",cli:!1,desc:"\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"},{flag:"sort",type:"enum",enum:["asc","desc"],default:"desc",cli:!1,desc:"\u6392\u5E8F\u65B9\u5411\uFF1Aasc=\u5347\u5E8F / desc=\u964D\u5E8F(\u9ED8\u8BA4)"},{flag:"code",type:"string",cli:!1,desc:"\u6309\u57FA\u91D1\u4EE3\u7801\u8FC7\u6EE4\uFF08\u5BA2\u6237\u7AEF\u8FC7\u6EE4\uFF09\uFF0C\u4E00\u822C\u642D\u914D page='all' \u4F7F\u7528"}],e=a=>({name:"symbol",required:!0,desc:a}),n=a=>({name:"code",required:!0,desc:a}),d="\u5355\u53EA\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519",de= exports.m =[{path:["quotes","cn"],toolName:"get_a_share_quotes",tier:"core",summary:"A\u80A1\u5168\u91CF\u884C\u60C5(\u542B\u4E94\u6863)",mcpDesc:"\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",argShape:"codes[]"},{path:["quotes","cnSimple"],toolName:"get_a_share_simple_quotes",summary:"A\u80A1\u7B80\u8981\u884C\u60C5",mcpDesc:"\u83B7\u53D6 A \u80A1 / \u6307\u6570\u7B80\u8981\u884C\u60C5\uFF08\u4EF7\u683C\u3001\u6DA8\u8DCC\u5E45\u3001\u6210\u4EA4\u91CF\u989D\uFF09\u3002",argShape:"codes[]"},{path:["quotes","hk"],toolName:"get_hk_quotes",tier:"core",summary:"\u6E2F\u80A1\u884C\u60C5",mcpDesc:"\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",argShape:"codes[]"},{path:["quotes","us"],toolName:"get_us_quotes",tier:"core",summary:"\u7F8E\u80A1\u884C\u60C5",mcpDesc:"\u83B7\u53D6\u7F8E\u80A1\u884C\u60C5\u3002\u4EE3\u7801\u5982 AAPL / BABA\u3002",argShape:"codes[]"},{path:["quotes","fund"],toolName:"get_fund_quotes",tier:"core",summary:"\u57FA\u91D1\u884C\u60C5",mcpDesc:"\u83B7\u53D6\u516C\u52DF\u57FA\u91D1\u884C\u60C5\uFF08\u573A\u5185 / \u573A\u5916\uFF0C\u51C0\u503C\u7C7B\uFF09\u3002",argShape:"codes[]"},{path:["quotes","fundFlow"],toolName:"get_fund_flow",summary:"\u8D44\u91D1\u6D41\u5411(\u7B80\u7248)",mcpDesc:"\u83B7\u53D6\u8D44\u91D1\u6D41\u5411\uFF08\u7B80\u7248\uFF0C\u6309\u4EE3\u7801\u6279\u91CF\uFF09\u3002",argShape:"codes[]"},{path:["quotes","largeOrder"],toolName:"get_panel_large_order",summary:"\u76D8\u53E3\u5927\u5355\u5360\u6BD4",mcpDesc:"\u83B7\u53D6\u76D8\u53E3\u5927\u5355\u5360\u6BD4\u3002",argShape:"codes[]"},{path:["quotes","timeline"],toolName:"get_today_timeline",tier:"core",summary:"\u5F53\u65E5\u5206\u65F6",mcpDesc:"\u83B7\u53D6 A \u80A1\u5F53\u65E5\u5206\u65F6\u8D70\u52BF\uFF08\u5355\u53EA\uFF09\u3002",argShape:"positional",positional:[n(d)]},{path:["codes","cn"],toolName:"get_a_share_code_list",summary:"A\u80A1\u4EE3\u7801\u5217\u8868",mcpDesc:"\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",argShape:"options",params:[I,N]},{path:["codes","us"],toolName:"get_us_code_list",summary:"\u7F8E\u80A1\u4EE3\u7801\u5217\u8868",mcpDesc:"\u83B7\u53D6\u7F8E\u80A1\u5168\u91CF\u4EE3\u7801\u5217\u8868\u3002",argShape:"options",params:[W,b]},{path:["codes","hk"],toolName:"get_hk_code_list",summary:"\u6E2F\u80A1\u4EE3\u7801\u5217\u8868",mcpDesc:"\u83B7\u53D6\u6E2F\u80A1\u5168\u91CF\u4EE3\u7801\u5217\u8868\u3002",argShape:"none"},{path:["codes","fund"],toolName:"get_fund_code_list",summary:"\u57FA\u91D1\u4EE3\u7801\u5217\u8868",mcpDesc:"\u83B7\u53D6\u57FA\u91D1\u5168\u91CF\u4EE3\u7801\u5217\u8868\u3002",argShape:"none"},{path:["batch","cn"],toolName:"get_all_a_share_quotes",summary:"\u5168\u5E02\u573AA\u80A1\u884C\u60C5",mcpDesc:"\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",argShape:"options",params:[c,l,N]},{path:["batch","hk"],toolName:"get_all_hk_quotes",summary:"\u5168\u5E02\u573A\u6E2F\u80A1\u884C\u60C5",mcpDesc:"\u6279\u91CF\u62C9\u53D6\u5168\u5E02\u573A\u6E2F\u80A1\u884C\u60C5\u3002\u26A0\uFE0F \u8017\u65F6\u3002",argShape:"options",params:[c,l]},{path:["batch","us"],toolName:"get_all_us_quotes",summary:"\u5168\u5E02\u573A\u7F8E\u80A1\u884C\u60C5",mcpDesc:"\u6279\u91CF\u62C9\u53D6\u5168\u5E02\u573A\u7F8E\u80A1\u884C\u60C5\u3002\u26A0\uFE0F \u8017\u65F6\u3002",argShape:"options",params:[c,l,b]},{path:["batch","byCodes"],toolName:"get_quotes_by_codes",summary:"\u6309\u4EE3\u7801\u6279\u91CF\u884C\u60C5",mcpDesc:"\u6309\u4EE3\u7801\u5217\u8868\u6279\u91CF\u62C9\u53D6\u5B8C\u6574\u884C\u60C5\u3002",argShape:"codes+options",params:[c,l]},{path:["batch","raw"],summary:"\u817E\u8BAF\u539F\u59CB\u6279\u91CF",argShape:"positional",positional:[{name:"params",required:!0}],mcp:!1},{path:["kline","cn"],toolName:"get_history_kline",tier:"core",summary:"A\u80A1\u5386\u53F2K\u7EBF",mcpDesc:"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",argShape:"symbol+options",positional:[e("\u80A1\u7968 / \u6307\u6570\u4EE3\u7801\uFF0C\u5982 600519 / sh600519")],params:[s,r,t,o]},{path:["kline","cnMinute"],toolName:"get_minute_kline",tier:"core",summary:"A\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",mcpDesc:"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",argShape:"symbol+options",positional:[e("\u80A1\u7968 / \u6307\u6570\u4EE3\u7801\uFF0C\u5982 600519 / sh600519")],params:[u,r,z,j]},{path:["kline","hk"],toolName:"get_hk_history_kline",tier:"core",summary:"\u6E2F\u80A1\u5386\u53F2K\u7EBF",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u6E2F\u80A1\u4EE3\u7801\uFF0C\u5982 00700 / hk00700")],params:[s,r,t,o]},{path:["kline","hkMinute"],toolName:"get_hk_minute_kline",summary:"\u6E2F\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u6E2F\u80A1\u4EE3\u7801\uFF0C\u5982 00700 / hk00700")],params:[u,r,Q,G,M]},{path:["kline","us"],toolName:"get_us_history_kline",tier:"core",summary:"\u7F8E\u80A1\u5386\u53F2K\u7EBF",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u7F8E\u80A1\u4EE3\u7801\uFF0C\u683C\u5F0F {market}.{ticker}\uFF0C\u5982 105.AAPL / 106.BABA")],params:[s,r,t,o]},{path:["kline","usMinute"],toolName:"get_us_minute_kline",summary:"\u7F8E\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u7F8E\u80A1\u4EE3\u7801\uFF0C\u683C\u5F0F {market}.{ticker}\uFF0C\u5982 105.AAPL / 106.BABA")],params:[u,r,Z,X,M]},{path:["kline","withIndicators"],toolName:"get_kline_with_indicators",tier:"core",summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10 --macd --kdj --rsi ...)",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u80A1\u7968\u4EE3\u7801\uFF08A \u80A1 / \u6E2F\u80A1 / \u7F8E\u80A1\uFF09")],params:[s,r,t,o,$,...te],mcpCustom:!0},{path:["board","industry","list"],toolName:"get_industry_list",tier:"core",summary:"\u884C\u4E1A\u677F\u5757\u5217\u8868",mcpDesc:"\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",argShape:"none"},{path:["board","industry","spot"],toolName:"get_industry_spot",summary:"\u884C\u4E1A\u677F\u5757\u6210\u5206\u884C\u60C5",mcpDesc:"\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",argShape:"positional",positional:[e("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0")]},{path:["board","industry","constituents"],toolName:"get_industry_constituents",tier:"core",summary:"\u884C\u4E1A\u677F\u5757\u6210\u5206\u80A1",mcpDesc:"\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",argShape:"positional",positional:[e("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0")]},{path:["board","industry","kline"],toolName:"get_industry_kline",summary:"\u884C\u4E1A\u677F\u5757K\u7EBF",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0")],params:[s,D,t,o]},{path:["board","industry","minuteKline"],toolName:"get_industry_minute_kline",summary:"\u884C\u4E1A\u677F\u5757\u5206\u65F6",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u884C\u4E1A\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0475\uFF09\u6216\u677F\u5757\u540D\u79F0")],params:[S]},{path:["board","concept","list"],toolName:"get_concept_list",tier:"core",summary:"\u6982\u5FF5\u677F\u5757\u5217\u8868",mcpDesc:"\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",argShape:"none"},{path:["board","concept","spot"],toolName:"get_concept_spot",summary:"\u6982\u5FF5\u677F\u5757\u6210\u5206\u884C\u60C5",mcpDesc:"\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",argShape:"positional",positional:[e("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0")]},{path:["board","concept","constituents"],toolName:"get_concept_constituents",tier:"core",summary:"\u6982\u5FF5\u677F\u5757\u6210\u5206\u80A1",mcpDesc:"\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",argShape:"positional",positional:[e("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0")]},{path:["board","concept","kline"],toolName:"get_concept_kline",summary:"\u6982\u5FF5\u677F\u5757K\u7EBF",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0")],params:[s,D,t,o]},{path:["board","concept","minuteKline"],toolName:"get_concept_minute_kline",summary:"\u6982\u5FF5\u677F\u5757\u5206\u65F6",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u6982\u5FF5\u677F\u5757\u4EE3\u7801\uFF08\u5982 BK0815\uFF09\u6216\u677F\u5757\u540D\u79F0")],params:[S]},{path:["options","index","spot"],toolName:"get_index_option_spot",summary:"\u80A1\u6307\u671F\u6743T\u578B\u62A5\u4EF7",mcpDesc:"\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",argShape:"positional",positional:[{name:"product",required:!0,enum:L,desc:"\u4EA7\u54C1\u4EE3\u7801\uFF1Aho / io / mo"},{name:"contract",required:!0,desc:"\u5408\u7EA6\uFF08\u6708\u4EFD\uFF09\uFF0C\u5982 2406"}]},{path:["options","index","kline"],toolName:"get_index_option_kline",summary:"\u80A1\u6307\u671F\u6743\u65E5K",mcpDesc:"\u83B7\u53D6\u4E2D\u91D1\u6240\u80A1\u6307\u671F\u6743\u67D0\u5408\u7EA6\u7684\u65E5 K \u7EBF\u3002",argShape:"positional",positional:[e("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")]},{path:["options","etf","months"],toolName:"get_etf_option_months",summary:"ETF\u671F\u6743\u6708\u4EFD",mcpDesc:"\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",argShape:"positional",positional:[{name:"cate",required:!0,enum:y,desc:"\u671F\u6743\u54C1\u79CD\uFF1A50ETF / 300ETF / 500ETF / \u79D1\u521B50 / \u79D1\u521B\u677F50"}]},{path:["options","etf","expireDay"],toolName:"get_etf_option_expire_day",summary:"ETF\u671F\u6743\u5230\u671F\u65E5",mcpDesc:"\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",argShape:"positional",positional:[{name:"cate",required:!0,enum:y,desc:"\u671F\u6743\u54C1\u79CD\uFF1A50ETF / 300ETF / 500ETF / \u79D1\u521B50 / \u79D1\u521B\u677F50"},{name:"month",required:!0,desc:"\u6708\u4EFD YYYY-MM\uFF0C\u5982 2024-06\uFF08\u53EF\u53D6\u81EA get_etf_option_months \u8FD4\u56DE\u7684\u6708\u4EFD\uFF09"}]},{path:["options","etf","minute"],toolName:"get_etf_option_minute",summary:"ETF\u671F\u6743\u5F53\u65E5\u5206\u65F6",mcpDesc:"\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",argShape:"positional",positional:[n("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")]},{path:["options","etf","dailyKline"],toolName:"get_etf_option_daily_kline",summary:"ETF\u671F\u6743\u65E5K",mcpDesc:"\u83B7\u53D6 ETF \u671F\u6743\u67D0\u5408\u7EA6\u7684\u65E5 K \u7EBF\u3002",argShape:"positional",positional:[n("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")]},{path:["options","etf","fiveDayMinute"],toolName:"get_etf_option_five_day_minute",summary:"ETF\u671F\u67435\u65E5\u5206\u65F6",mcpDesc:"\u83B7\u53D6 ETF \u671F\u6743\u67D0\u5408\u7EA6\u7684\u8FD1 5 \u65E5\u5206\u65F6\u6570\u636E\u3002",argShape:"positional",positional:[n("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")]},{path:["options","commodity","spot"],toolName:"get_commodity_option_spot",summary:"\u5546\u54C1\u671F\u6743T\u578B\u62A5\u4EF7",mcpDesc:"\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",argShape:"positional",positional:[{name:"variety",required:!0,desc:"\u54C1\u79CD\u4EE3\u7801\uFF0C\u5982 cu / m / au"},{name:"contract",required:!0,desc:"\u5408\u7EA6\uFF08\u6708\u4EFD\uFF09\uFF0C\u5982 2406"}]},{path:["options","commodity","kline"],toolName:"get_commodity_option_kline",summary:"\u5546\u54C1\u671F\u6743\u65E5K",mcpDesc:"\u83B7\u53D6\u5546\u54C1\u671F\u6743\u67D0\u5408\u7EA6\u7684\u65E5 K \u7EBF\u3002",argShape:"positional",positional:[e("\u671F\u6743\u5408\u7EA6\u4EE3\u7801")]},{path:["options","cffex","quotes"],toolName:"get_cffex_option_quotes",summary:"\u4E2D\u91D1\u6240\u671F\u6743\u5F53\u65E5\u62A5\u4EF7",mcpDesc:"\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",argShape:"options",params:[me]},{path:["options","lhb"],toolName:"get_option_lhb",summary:"\u671F\u6743\u9F99\u864E\u699C",mcpDesc:"\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",argShape:"positional",positional:[{name:"symbol",required:!0,desc:"\u671F\u6743\u6807\u7684/\u5408\u7EA6\u4EE3\u7801"},{name:"date",required:!0,desc:"\u65E5\u671F YYYY-MM-DD\uFF0C\u5982 2024-06-03"}]},{path:["futures","kline"],toolName:"get_futures_kline",tier:"core",summary:"\u56FD\u5185\u671F\u8D27K\u7EBF",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u671F\u8D27\u5408\u7EA6\u4EE3\u7801\uFF0C\u5982 rb2605 / IF2604 / au2606")],params:[s,T,t,o]},{path:["futures","globalSpot"],toolName:"get_global_futures_spot",summary:"\u5168\u7403\u671F\u8D27\u5B9E\u65F6\u884C\u60C5",mcpDesc:"\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",argShape:"options",params:[pe]},{path:["futures","globalKline"],toolName:"get_global_futures_kline",summary:"\u5168\u7403\u671F\u8D27K\u7EBF",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u5168\u7403\u671F\u8D27\u5408\u7EA6\u4EE3\u7801\uFF0C\u5982 CONC(WTI \u539F\u6CB9) / GC00Y(COMEX \u9EC4\u91D1)")],params:[s,T,t,o,ie]},{path:["futures","inventorySymbols"],toolName:"get_futures_inventory_symbols",summary:"\u671F\u8D27\u5E93\u5B58\u54C1\u79CD\u5217\u8868",mcpDesc:"\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",argShape:"none"},{path:["futures","inventory"],toolName:"get_futures_inventory",summary:"\u671F\u8D27\u5E93\u5B58\u5386\u53F2",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u5E93\u5B58\u54C1\u79CD\u4EE3\u7801\uFF08\u89C1 get_futures_inventory_symbols\uFF09")],params:[ce,E]},{path:["futures","comexInventory"],toolName:"get_comex_inventory",summary:"COMEX \u5E93\u5B58",mcpDesc:"\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",argShape:"symbol+options",positional:[{name:"symbol",required:!0,enum:H,desc:"\u54C1\u79CD\uFF1Agold=\u9EC4\u91D1 / silver=\u767D\u94F6"}],params:[E]},{path:["fundFlow","individual"],toolName:"get_individual_fund_flow",tier:"core",summary:"\u4E2A\u80A1\u8D44\u91D1\u6D41\u5386\u53F2",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u80A1\u7968\u4EE3\u7801\uFF0C\u5E26\u4E0D\u5E26 sh/sz/bj \u524D\u7F00\u5747\u53EF\uFF0C\u5982 600519 / sh600519")],params:[{...s,cli:!1}]},{path:["fundFlow","market"],toolName:"get_market_fund_flow",summary:"\u5927\u76D8\u8D44\u91D1\u6D41",mcpDesc:"\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",argShape:"none"},{path:["fundFlow","rank"],toolName:"get_fund_flow_rank",tier:"core",summary:"\u4E2A\u80A1\u8D44\u91D1\u6D41\u6392\u540D",mcpDesc:"\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",argShape:"options",params:[A]},{path:["fundFlow","sectorRank"],toolName:"get_sector_fund_flow_rank",summary:"\u677F\u5757\u8D44\u91D1\u6D41\u6392\u540D",mcpDesc:"\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",argShape:"options",params:[A,oe]},{path:["fundFlow","sectorHistory"],toolName:"get_sector_fund_flow_history",summary:"\u5355\u677F\u5757\u5386\u53F2\u8D44\u91D1\u6D41",mcpDesc:"\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",argShape:"symbol+options",positional:[e("\u677F\u5757\u7F16\u53F7\uFF0C\u5982 BK0438 \u6216\u5168\u524D\u7F00 90.BK0438")],params:[{...s,cli:!1}]},{path:["northbound","minute"],toolName:"get_northbound_minute",summary:"\u5317\u5411/\u5357\u5411\u5206\u65F6(--direction north|south \u6216\u4F4D\u7F6E\u53C2\u6570)",mcpDesc:"\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",argShape:"positional",positional:[{name:"direction",enum:_,default:"north",desc:"\u8D44\u91D1\u65B9\u5411:north=\u5317\u5411(\u9ED8\u8BA4) / south=\u5357\u5411"}],params:[k]},{path:["northbound","summary"],toolName:"get_northbound_flow_summary",tier:"core",summary:"\u6CAA\u6DF1\u6E2F\u901A\u8D44\u91D1\u6C47\u603B",mcpDesc:"\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",argShape:"none"},{path:["northbound","holdingRank"],toolName:"get_northbound_holding_rank",summary:"\u5317\u5411\u6301\u80A1\u6392\u884C",mcpDesc:"\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",argShape:"options",params:[se,re,ne]},{path:["northbound","history"],toolName:"get_northbound_history",summary:"\u5317\u5411/\u5357\u5411\u5386\u53F2(--direction north|south\uFF1B--start/--end)",mcpDesc:"\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",argShape:"symbol+options",positional:[{name:"direction",enum:_,default:"north",desc:"\u8D44\u91D1\u65B9\u5411:north=\u5317\u5411(\u9ED8\u8BA4) / south=\u5357\u5411"}],params:[k,q,R]},{path:["northbound","individual"],toolName:"get_northbound_individual",summary:"\u4E2A\u80A1\u5317\u5411\u6301\u4ED3\u5386\u53F2",mcpDesc:"\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",argShape:"symbol+options",positional:[e(d)],params:[V,J]},{path:["marketEvent","ztPool"],toolName:"get_zt_pool",tier:"core",summary:"\u6DA8\u505C\u80A1\u6C60",mcpDesc:"\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",argShape:"positional",positional:[{name:"type",enum:x,default:"zt",desc:"\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"},{name:"date",desc:"\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD\uFF0C\u4E0D\u4F20\u4E3A\u6700\u65B0\u4EA4\u6613\u65E5"}]},{path:["marketEvent","stockChanges"],toolName:"get_stock_changes",summary:"\u76D8\u53E3\u5F02\u52A8",mcpDesc:"\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",argShape:"positional",positional:[{name:"type",enum:U,default:"large_buy",desc:"\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"}]},{path:["marketEvent","boardChanges"],toolName:"get_board_changes",summary:"\u677F\u5757\u5F02\u52A8",mcpDesc:"\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",argShape:"none"},{path:["dragonTiger","detail"],toolName:"get_dragon_tiger_detail",tier:"core",summary:"\u9F99\u864E\u699C\u8BE6\u60C5(\u5FC5\u586B --start/--end)",mcpDesc:"\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",argShape:"options",params:[Y,f]},{path:["dragonTiger","stockStats"],toolName:"get_dragon_tiger_stock_stats",summary:"\u4E2A\u80A1\u4E0A\u699C\u7EDF\u8BA1",mcpDesc:"\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",argShape:"positional",positional:[{name:"period",enum:h,default:"1month",desc:P}]},{path:["dragonTiger","institution"],toolName:"get_dragon_tiger_institution",summary:"\u673A\u6784\u4E70\u5356\u7EDF\u8BA1(\u5FC5\u586B --start/--end)",mcpDesc:"\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",argShape:"options",params:[Y,f]},{path:["dragonTiger","branchRank"],toolName:"get_dragon_tiger_branch_rank",summary:"\u8425\u4E1A\u90E8\u6392\u884C",mcpDesc:"\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",argShape:"positional",positional:[{name:"period",enum:h,default:"1month",desc:P}]},{path:["dragonTiger","seatDetail"],toolName:"get_dragon_tiger_seat_detail",summary:"\u4E2A\u80A1\u5E2D\u4F4D\u660E\u7EC6",mcpDesc:"\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",argShape:"positional",positional:[{name:"symbol",required:!0,desc:d},{name:"date",required:!0,desc:"\u4E0A\u699C\u65E5\u671F\uFF0CYYYYMMDD \u6216 YYYY-MM-DD"}]},{path:["blockTrade","marketStat"],summary:"\u5927\u5B97\u4EA4\u6613\u5E02\u573A\u7EDF\u8BA1",argShape:"none",mcp:!1},{path:["blockTrade","detail"],summary:"\u5927\u5B97\u4EA4\u6613\u660E\u7EC6",argShape:"options",mcp:!1},{path:["blockTrade","dailyStat"],summary:"\u5927\u5B97\u4EA4\u6613\u6BCF\u65E5\u7EDF\u8BA1",argShape:"options",mcp:!1},{path:["margin","accountInfo"],summary:"\u878D\u8D44\u878D\u5238\u8D26\u6237\u7EDF\u8BA1",argShape:"none",mcp:!1},{path:["margin","targetList"],summary:"\u878D\u8D44\u878D\u5238\u6807\u7684",argShape:"positional",positional:[{name:"date"}],mcp:!1},{path:["fund","dividendList"],toolName:"get_fund_dividend_list",summary:"\u57FA\u91D1\u5206\u7EA2\u660E\u7EC6",mcpDesc:"\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",argShape:"options",params:le},{path:["fund","navHistory"],toolName:"get_fund_nav_history",summary:"\u57FA\u91D1\u5386\u53F2\u51C0\u503C",mcpDesc:"\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",argShape:"positional",positional:[n("\u57FA\u91D1\u4EE3\u7801\uFF0C\u7EAF\u6570\u5B57\uFF0C\u5982 110011")]},{path:["fund","estimate"],toolName:"get_fund_estimate",tier:"core",summary:"\u57FA\u91D1\u5F53\u65E5\u4F30\u503C",mcpDesc:"\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",argShape:"positional",positional:[n("\u57FA\u91D1\u4EE3\u7801\uFF0C\u7EAF\u6570\u5B57\uFF0C\u5982 005827")]},{path:["fund","rankHistory"],toolName:"get_fund_rank_history",summary:"\u57FA\u91D1\u540C\u7C7B\u6392\u540D\u8D70\u52BF",mcpDesc:"\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",argShape:"positional",positional:[n("\u57FA\u91D1\u4EE3\u7801\uFF0C\u7EAF\u6570\u5B57\uFF0C\u5982 110011")]},{path:["calendar","isTradingDay"],toolName:"is_trading_day",tier:"core",summary:"\u662F\u5426\u4EA4\u6613\u65E5",mcpDesc:"\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",argShape:"positional",positional:[{name:"date",desc:"\u65E5\u671F YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u4E3A\u4ECA\u5929"}]},{path:["calendar","nextTradingDay"],toolName:"next_trading_day",summary:"\u4E0B\u4E00\u4EA4\u6613\u65E5",mcpDesc:"\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",argShape:"positional",positional:[{name:"date",desc:"\u57FA\u51C6\u65E5\u671F YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u4E3A\u4ECA\u5929"}]},{path:["calendar","prevTradingDay"],toolName:"prev_trading_day",summary:"\u4E0A\u4E00\u4EA4\u6613\u65E5",mcpDesc:"\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",argShape:"positional",positional:[{name:"date",desc:"\u57FA\u51C6\u65E5\u671F YYYY-MM-DD \u6216 YYYYMMDD\uFF1B\u4E0D\u4F20\u4E3A\u4ECA\u5929"}]},{path:["calendar","marketStatus"],toolName:"get_market_status",tier:"core",summary:"\u5E02\u573A\u72B6\u6001",mcpDesc:"\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",argShape:"positional",positional:[{name:"market",upper:!0,enum:K,default:"A",desc:"\u5E02\u573A\uFF1AA=A\u80A1 / HK=\u6E2F\u80A1 / US=\u7F8E\u80A1\uFF0C\u9ED8\u8BA4 A"}]},{path:["reference","dividendDetail"],toolName:"get_dividend_detail",summary:"\u5206\u7EA2\u914D\u80A1\u660E\u7EC6",mcpDesc:"\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",argShape:"positional",positional:[e(d)]},{path:["reference","tradingCalendar"],toolName:"get_trading_calendar",summary:"\u4EA4\u6613\u65E5\u5386(\u539F\u59CB\u6570\u7EC4)",mcpDesc:"\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",argShape:"none"},{path:["search"],toolName:"search",tier:"core",summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1",mcpDesc:"\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",argShape:"positional",positional:[{name:"keyword",required:!0,desc:"\u641C\u7D22\u5173\u952E\u8BCD"}]}];function ge(a){let p=de.find(m=>m.path.join(".")===a);if(!p)throw new Error(`spec \u4E2D\u4E0D\u5B58\u5728\u65B9\u6CD5: ${a}`);return p}exports.a = ue; exports.b = K; exports.c = x; exports.d = r; exports.e = s; exports.f = u; exports.g = t; exports.h = o; exports.i = M; exports.j = $; exports.k = ee; exports.l = ae; exports.m = de; exports.n = ge;
|
package/dist/cli.cjs
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict"; function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
3
|
-
${n.hint}`:"";return{text:`stock-sdk: ${o}${
|
|
4
|
-
`);return[
|
|
5
|
-
`)}function
|
|
6
|
-
`)}function G(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}var b={flag:"adjust",type:"enum",enum:["qfq","hfq","none"],map:{none:""},desc:"\u590D\u6743\uFF1Aqfq \u524D\u590D\u6743(\u9ED8\u8BA4) / hfq \u540E\u590D\u6743 / none \u4E0D\u590D\u6743"},f={flag:"start",field:"startDate",type:"string",desc:"\u5F00\u59CB\u65E5\u671F YYYYMMDD"},y={flag:"end",field:"endDate",type:"string",desc:"\u7ED3\u675F\u65E5\u671F YYYYMMDD"},Q={...f,required:!0},X={...y,required:!0},Z={flag:"direction",type:"enum",enum:["north","south"],desc:"\u65B9\u5411 north / south"},A={flag:"period",type:"enum",enum:["daily","weekly","monthly"],desc:"K \u7EBF\u5468\u671F daily/weekly/monthly"},rn={flag:"period",type:"enum",enum:["1","5","15","30","60"],desc:"\u5206\u949F\u5468\u671F 1/5/15/30/60"},k=[A,b,f,y],w=[rn,b,f,y],v=[{flag:"batchSize",type:"number",desc:"\u5355\u6279\u6570\u91CF(\u9ED8\u8BA4 500)"},{flag:"concurrency",type:"number",desc:"\u5E76\u53D1\u6570(\u9ED8\u8BA4 7)"},{flag:"market",type:"string",desc:"\u5E02\u573A\u7B5B\u9009 sh/sz/bj/kc/cy"}],nn=[{flag:"simple",type:"boolean",desc:"\u53BB\u6389\u4EA4\u6613\u6240\u524D\u7F00"},{flag:"market",type:"string",desc:"\u5E02\u573A\u7B5B\u9009 sh/sz/bj/kc/cy"}],d=[{name:"symbol",required:!0}],h=[{name:"code",required:!0}],an=["ma","rsi","wr","bias"],q=["macd","kdj","boll","cci","atr","obv","roc","dmi","sar","kc"],pn=[...an.map(n=>({flag:n,type:"number[]",desc:`${n.toUpperCase()} \u5468\u671F(\u9017\u53F7\u5206\u9694\uFF0C\u5982 5,10\uFF1B\u4EC5 --${n} \u7528\u9ED8\u8BA4)`})),...q.map(n=>({flag:n,type:"boolean",desc:`\u542F\u7528 ${n.toUpperCase()}`}))],Mn={flag:"market",type:"enum",enum:["A","HK","US"],upper:!0,desc:"\u5E02\u573A(\u9ED8\u8BA4\u81EA\u52A8\u8BC6\u522B)"},qn=[A,b,f,y,Mn,...pn],Pn=[{path:"quotes.cn",shape:"codes[]",summary:"A\u80A1\u5168\u91CF\u884C\u60C5(\u542B\u4E94\u6863)"},{path:"quotes.cnSimple",shape:"codes[]",summary:"A\u80A1\u7B80\u8981\u884C\u60C5"},{path:"quotes.hk",shape:"codes[]",summary:"\u6E2F\u80A1\u884C\u60C5"},{path:"quotes.us",shape:"codes[]",summary:"\u7F8E\u80A1\u884C\u60C5"},{path:"quotes.fund",shape:"codes[]",summary:"\u57FA\u91D1\u884C\u60C5"},{path:"quotes.fundFlow",shape:"codes[]",summary:"\u8D44\u91D1\u6D41\u5411(\u7B80\u7248)"},{path:"quotes.largeOrder",shape:"codes[]",summary:"\u76D8\u53E3\u5927\u5355\u5360\u6BD4"},{path:"quotes.timeline",shape:"positional",summary:"\u5F53\u65E5\u5206\u65F6",pos:h},{path:"codes.cn",shape:"options",summary:"A\u80A1\u4EE3\u7801\u5217\u8868",opts:nn},{path:"codes.us",shape:"options",summary:"\u7F8E\u80A1\u4EE3\u7801\u5217\u8868",opts:nn},{path:"codes.hk",shape:"none",summary:"\u6E2F\u80A1\u4EE3\u7801\u5217\u8868"},{path:"codes.fund",shape:"none",summary:"\u57FA\u91D1\u4EE3\u7801\u5217\u8868"},{path:"batch.cn",shape:"options",summary:"\u5168\u5E02\u573AA\u80A1\u884C\u60C5",opts:v},{path:"batch.hk",shape:"options",summary:"\u5168\u5E02\u573A\u6E2F\u80A1\u884C\u60C5",opts:v},{path:"batch.us",shape:"options",summary:"\u5168\u5E02\u573A\u7F8E\u80A1\u884C\u60C5",opts:v},{path:"batch.byCodes",shape:"codes+options",summary:"\u6309\u4EE3\u7801\u6279\u91CF\u884C\u60C5",opts:v},{path:"batch.raw",shape:"positional",summary:"\u817E\u8BAF\u539F\u59CB\u6279\u91CF",pos:[{name:"params",required:!0}]},{path:"kline.cn",shape:"symbol+options",summary:"A\u80A1\u5386\u53F2K\u7EBF",pos:d,opts:k},{path:"kline.cnMinute",shape:"symbol+options",summary:"A\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",pos:d,opts:w},{path:"kline.hk",shape:"symbol+options",summary:"\u6E2F\u80A1\u5386\u53F2K\u7EBF",pos:d,opts:k},{path:"kline.hkMinute",shape:"symbol+options",summary:"\u6E2F\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",pos:d,opts:w},{path:"kline.us",shape:"symbol+options",summary:"\u7F8E\u80A1\u5386\u53F2K\u7EBF",pos:d,opts:k},{path:"kline.usMinute",shape:"symbol+options",summary:"\u7F8E\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",pos:d,opts:w},{path:"kline.withIndicators",shape:"symbol+options",summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10 --macd --kdj --rsi ...)",pos:d,opts:qn,invoke:(n,t)=>un(n,t)},{path:"board.industry.list",shape:"none",summary:"\u884C\u4E1A\u677F\u5757\u5217\u8868"},{path:"board.industry.spot",shape:"positional",summary:"\u884C\u4E1A\u677F\u5757\u6210\u5206\u884C\u60C5",pos:d},{path:"board.industry.constituents",shape:"positional",summary:"\u884C\u4E1A\u677F\u5757\u6210\u5206\u80A1",pos:d},{path:"board.industry.kline",shape:"symbol+options",summary:"\u884C\u4E1A\u677F\u5757K\u7EBF",pos:d,opts:k},{path:"board.industry.minuteKline",shape:"symbol+options",summary:"\u884C\u4E1A\u677F\u5757\u5206\u65F6",pos:d,opts:w},{path:"board.concept.list",shape:"none",summary:"\u6982\u5FF5\u677F\u5757\u5217\u8868"},{path:"board.concept.spot",shape:"positional",summary:"\u6982\u5FF5\u677F\u5757\u6210\u5206\u884C\u60C5",pos:d},{path:"board.concept.constituents",shape:"positional",summary:"\u6982\u5FF5\u677F\u5757\u6210\u5206\u80A1",pos:d},{path:"board.concept.kline",shape:"symbol+options",summary:"\u6982\u5FF5\u677F\u5757K\u7EBF",pos:d,opts:k},{path:"board.concept.minuteKline",shape:"symbol+options",summary:"\u6982\u5FF5\u677F\u5757\u5206\u65F6",pos:d,opts:w},{path:"options.index.spot",shape:"positional",summary:"\u80A1\u6307\u671F\u6743T\u578B\u62A5\u4EF7",pos:[{name:"product",required:!0},{name:"contract",required:!0}]},{path:"options.index.kline",shape:"positional",summary:"\u80A1\u6307\u671F\u6743\u65E5K",pos:d},{path:"options.etf.months",shape:"positional",summary:"ETF\u671F\u6743\u6708\u4EFD",pos:[{name:"cate",required:!0}]},{path:"options.etf.expireDay",shape:"positional",summary:"ETF\u671F\u6743\u5230\u671F\u65E5",pos:[{name:"cate",required:!0},{name:"month",required:!0}]},{path:"options.etf.minute",shape:"positional",summary:"ETF\u671F\u6743\u5F53\u65E5\u5206\u65F6",pos:h},{path:"options.etf.dailyKline",shape:"positional",summary:"ETF\u671F\u6743\u65E5K",pos:h},{path:"options.etf.fiveDayMinute",shape:"positional",summary:"ETF\u671F\u67435\u65E5\u5206\u65F6",pos:h},{path:"options.commodity.spot",shape:"positional",summary:"\u5546\u54C1\u671F\u6743T\u578B\u62A5\u4EF7",pos:[{name:"variety",required:!0},{name:"contract",required:!0}]},{path:"options.commodity.kline",shape:"positional",summary:"\u5546\u54C1\u671F\u6743\u65E5K",pos:d},{path:"options.cffex.quotes",shape:"options",summary:"\u4E2D\u91D1\u6240\u671F\u6743\u5F53\u65E5\u62A5\u4EF7"},{path:"options.lhb",shape:"positional",summary:"\u671F\u6743\u9F99\u864E\u699C",pos:[{name:"symbol",required:!0},{name:"date",required:!0}]},{path:"futures.kline",shape:"symbol+options",summary:"\u56FD\u5185\u671F\u8D27K\u7EBF",pos:d,opts:k},{path:"futures.globalSpot",shape:"options",summary:"\u5168\u7403\u671F\u8D27\u5B9E\u65F6\u884C\u60C5"},{path:"futures.globalKline",shape:"symbol+options",summary:"\u5168\u7403\u671F\u8D27K\u7EBF",pos:d,opts:k},{path:"futures.inventorySymbols",shape:"none",summary:"\u671F\u8D27\u5E93\u5B58\u54C1\u79CD\u5217\u8868"},{path:"futures.inventory",shape:"symbol+options",summary:"\u671F\u8D27\u5E93\u5B58\u5386\u53F2",pos:d},{path:"futures.comexInventory",shape:"symbol+options",summary:"COMEX \u5E93\u5B58",pos:[{name:"symbol",required:!0,enum:["gold","silver"]}]},{path:"fundFlow.individual",shape:"symbol+options",summary:"\u4E2A\u80A1\u8D44\u91D1\u6D41\u5386\u53F2",pos:d},{path:"fundFlow.market",shape:"none",summary:"\u5927\u76D8\u8D44\u91D1\u6D41"},{path:"fundFlow.rank",shape:"options",summary:"\u4E2A\u80A1\u8D44\u91D1\u6D41\u6392\u540D"},{path:"fundFlow.sectorRank",shape:"options",summary:"\u677F\u5757\u8D44\u91D1\u6D41\u6392\u540D"},{path:"fundFlow.sectorHistory",shape:"symbol+options",summary:"\u5355\u677F\u5757\u5386\u53F2\u8D44\u91D1\u6D41",pos:d},{path:"northbound.minute",shape:"positional",summary:"\u5317\u5411/\u5357\u5411\u5206\u65F6(--direction north|south \u6216\u4F4D\u7F6E\u53C2\u6570)",pos:[{name:"direction",enum:["north","south"]}],opts:[Z],invoke:(n,t)=>g(n,["northbound","minute"],[en(t)])},{path:"northbound.summary",shape:"none",summary:"\u6CAA\u6DF1\u6E2F\u901A\u8D44\u91D1\u6C47\u603B"},{path:"northbound.holdingRank",shape:"options",summary:"\u5317\u5411\u6301\u80A1\u6392\u884C"},{path:"northbound.history",shape:"symbol+options",summary:"\u5317\u5411/\u5357\u5411\u5386\u53F2(--direction north|south\uFF1B--start/--end)",pos:[{name:"direction",enum:["north","south"]}],opts:[Z,f,y],invoke:(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),g(n,["northbound","history"],[en(t),o])}},{path:"northbound.individual",shape:"symbol+options",summary:"\u4E2A\u80A1\u5317\u5411\u6301\u4ED3\u5386\u53F2",pos:d},{path:"marketEvent.ztPool",shape:"positional",summary:"\u6DA8\u505C\u80A1\u6C60",pos:[{name:"type"},{name:"date"}]},{path:"marketEvent.stockChanges",shape:"positional",summary:"\u76D8\u53E3\u5F02\u52A8",pos:[{name:"type"}]},{path:"marketEvent.boardChanges",shape:"none",summary:"\u677F\u5757\u5F02\u52A8"},{path:"dragonTiger.detail",shape:"options",summary:"\u9F99\u864E\u699C\u8BE6\u60C5(\u5FC5\u586B --start/--end)",opts:[Q,X]},{path:"dragonTiger.stockStats",shape:"positional",summary:"\u4E2A\u80A1\u4E0A\u699C\u7EDF\u8BA1",pos:[{name:"period"}]},{path:"dragonTiger.institution",shape:"options",summary:"\u673A\u6784\u4E70\u5356\u7EDF\u8BA1(\u5FC5\u586B --start/--end)",opts:[Q,X]},{path:"dragonTiger.branchRank",shape:"positional",summary:"\u8425\u4E1A\u90E8\u6392\u884C",pos:[{name:"period"}]},{path:"dragonTiger.seatDetail",shape:"positional",summary:"\u4E2A\u80A1\u5E2D\u4F4D\u660E\u7EC6",pos:[{name:"symbol",required:!0},{name:"date",required:!0}]},{path:"blockTrade.marketStat",shape:"none",summary:"\u5927\u5B97\u4EA4\u6613\u5E02\u573A\u7EDF\u8BA1"},{path:"blockTrade.detail",shape:"options",summary:"\u5927\u5B97\u4EA4\u6613\u660E\u7EC6"},{path:"blockTrade.dailyStat",shape:"options",summary:"\u5927\u5B97\u4EA4\u6613\u6BCF\u65E5\u7EDF\u8BA1"},{path:"margin.accountInfo",shape:"none",summary:"\u878D\u8D44\u878D\u5238\u8D26\u6237\u7EDF\u8BA1"},{path:"margin.targetList",shape:"positional",summary:"\u878D\u8D44\u878D\u5238\u6807\u7684",pos:[{name:"date"}]},{path:"fund.dividendList",shape:"options",summary:"\u57FA\u91D1\u5206\u7EA2\u660E\u7EC6"},{path:"fund.navHistory",shape:"positional",summary:"\u57FA\u91D1\u5386\u53F2\u51C0\u503C",pos:h},{path:"fund.estimate",shape:"positional",summary:"\u57FA\u91D1\u5F53\u65E5\u4F30\u503C",pos:h},{path:"fund.rankHistory",shape:"positional",summary:"\u57FA\u91D1\u540C\u7C7B\u6392\u540D\u8D70\u52BF",pos:h},{path:"calendar.isTradingDay",shape:"positional",summary:"\u662F\u5426\u4EA4\u6613\u65E5",pos:[{name:"date"}]},{path:"calendar.nextTradingDay",shape:"positional",summary:"\u4E0B\u4E00\u4EA4\u6613\u65E5",pos:[{name:"date"}]},{path:"calendar.prevTradingDay",shape:"positional",summary:"\u4E0A\u4E00\u4EA4\u6613\u65E5",pos:[{name:"date"}]},{path:"calendar.marketStatus",shape:"positional",summary:"\u5E02\u573A\u72B6\u6001",pos:[{name:"market",upper:!0,enum:["A","HK","US"]}]},{path:"reference.dividendDetail",shape:"positional",summary:"\u5206\u7EA2\u914D\u80A1\u660E\u7EC6",pos:d},{path:"reference.tradingCalendar",shape:"none",summary:"\u4EA4\u6613\u65E5\u5386(\u539F\u59CB\u6570\u7EC4)"}],jn={path:"search",shape:"positional",summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1",pos:[{name:"keyword",required:!0}]};function In(n){return{path:n.path.split("."),summary:n.summary,argShape:n.shape,positional:n.pos,options:n.opts,invoke:n.invoke}}var O=[...Pn,jn].map(In),tn={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},$n={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},_={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function D(n){try{let t=_chunk6JEP4QK7cjs.d.call(void 0, n);return t.market==="HK"?"hk":t.market==="US"?"us":"a"}catch (e2){return"a"}}function g(n,t,o){let e=t.reduce((s,r)=>s[r],n);return Promise.resolve(e(...o))}function Kn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function on(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Fn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function en(n){let t=_nullishCoalesce(n.options.direction, () => (n.positional[0]));if(t!==void 0){if(t==="north"||t==="south")return t;throw new c("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function sn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Un(n){let t={};for(let o of an){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let s=Ln(e);s.length>0&&(t[o]={periods:s})}for(let o of q){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function un(n,t){let o=M(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Un(t.options),g(n,["kline","withIndicators"],[o,e])}function Ln(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>Number(o.trim())).filter(o=>!Number.isNaN(o))}var E=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[$n,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Fn(t.options.market),s=t.options.full===!0,r={a:[],hk:[],us:[],fund:[]};for(let u of o){let l=_nullishCoalesce(e, () => (D(u)));if(l==="fund"){r.fund.push(u);continue}try{let P=_chunk6JEP4QK7cjs.d.call(void 0, u,{market:Kn(l)});r[l].push(l==="a"?_chunk6JEP4QK7cjs.e.call(void 0, P):P.code)}catch (e3){r[l].push(u)}}let a=[];r.a.length&&a.push(Promise.resolve(s?n.quotes.cn(r.a):n.quotes.cnSimple(r.a))),r.hk.length&&a.push(Promise.resolve(n.quotes.hk(r.hk))),r.us.length&&a.push(Promise.resolve(n.quotes.us(r.us))),r.fund.length&&a.push(Promise.resolve(n.quotes.fund(r.fund)));let m=await Promise.allSettled(a),i=[],p=[];for(let u of m)u.status==="fulfilled"?i.push(...u.value):p.push(u.reason);if(i.length===0&&p.length>0)throw p[0];if(p.length>0){let u=p.map(l=>l instanceof Error?l.message:String(l)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
|
|
7
|
-
`)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:
|
|
8
|
-
`)}function
|
|
9
|
-
`)}function
|
|
10
|
-
`)
|
|
11
|
-
`),
|
|
12
|
-
`),0;if(o.positional
|
|
2
|
+
"use strict"; function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkYR2SVSXBcjs = require('./chunk-YR2SVSXB.cjs');var _chunk2PYGJ5I5cjs = require('./chunk-2PYGJ5I5.cjs');require('./chunk-PMERLSCU.cjs');var _chunk3NSUE34Fcjs = require('./chunk-3NSUE34F.cjs');require('./chunk-TVIEKKDQ.cjs');var _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');var c=class extends Error{constructor(t,o){super(t),this.name="CliUsageError",this.hint=o}},wn={INVALID_ARGUMENT:2,INVALID_SYMBOL:2,NOT_FOUND:2,NETWORK_ERROR:3,TIMEOUT:3,ABORTED:3,UPSTREAM_ERROR:4,UPSTREAM_EMPTY:4,PARSE_ERROR:4,HTTP_ERROR:4,RATE_LIMITED:5,CIRCUIT_OPEN:5};function F(n){if(n instanceof c)return 2;let t=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return _nullishCoalesce(wn[t], () => (1))}function V(n,t){let o=n instanceof Error?n.message:String(n);if(n instanceof c){if(t==="json")return{text:JSON.stringify({error:{code:"USAGE",message:o}})};let r=n.hint?`
|
|
3
|
+
${n.hint}`:"";return{text:`stock-sdk: ${o}${r}`}}let e=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return t==="json"?{text:JSON.stringify({error:{code:e,message:o}})}:{text:`stock-sdk: ${e}: ${o}`}}var On={start:"startDate",end:"endDate"},bn=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),Cn=new Set(["limit"]);function G(n){return bn.has(n)||Cn.has(n)}function En(n,t){let o={},e=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))e.set(r.flag,r);for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=e.get(r);if(!p){if(s===!0)continue;o[_nullishCoalesce(On[r], () => (r))]=s;continue}o[_nullishCoalesce(p.field, () => (p.flag))]=An(p,s)}for(let r of _nullishCoalesce(n.options, () => ([]))){let s=_nullishCoalesce(r.field, () => (r.flag));o[s]===void 0&&r.default!==void 0&&(o[s]=r.default)}return o}function An(n,t){switch(n.type){case"boolean":return t===!0||t==="true";case"number":return Number(S(t));case"number[]":return E(t);case"enum":case"string":{let o=S(t),e=typeof o=="boolean"?o:String(o);if(n.upper&&typeof e=="string"&&(e=e.toUpperCase()),n.type==="enum"&&n.enum&&typeof e=="string"&&!n.enum.includes(e))throw new c(`--${n.flag} \u975E\u6CD5\u503C\u300C${e}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return n.map&&typeof e=="string"&&e in n.map&&(e=n.map[e]),e}default:return t}}function S(n){return Array.isArray(n)?n[n.length-1]:n}function E(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>o.trim()).filter(o=>o.length>0).map(o=>Number(o)).filter(o=>Number.isInteger(o)&&o>0)}function H(n,t){let o=_nullishCoalesce(n.positional, () => ([])),e=[],r=0;for(let s of o){if(s.variadic){let d=t.slice(r);if(s.required&&d.length===0)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)e.push(J(s,i));return e}let p=t[r];if(p===void 0){if(s.required)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);e.push(void 0)}else e.push(J(s,p));r++}return e}function J(n,t){let o=t;if(n.upper&&(o=o.toUpperCase()),n.enum&&!n.enum.includes(o))throw new c(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return o}function m(n,t,o){let e=_chunkYR2SVSXBcjs.a.call(void 0, n,t);if(!e)throw new c(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(e.fn.apply(e.parent,o))}function Pn(n,t){let o=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))o.set(r.flag,r);let e=o.size>0;for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=o.get(r);if(!p){if(e)throw new c(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&p.type!=="boolean"&&p.type!=="number[]")throw new c(`--${r} \u7F3A\u5C11\u503C`);if(p.type!=="number[]"){let d=S(s);if(p.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),p.type==="enum"&&p.enum){let i=typeof d=="string"?d:String(d);if(!p.enum.includes(i))throw new c(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${p.enum.join(" / ")}`)}if(p.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new c(`--${r} \u9700\u8981\u6570\u503C\uFF0C\u5F97\u5230\u300C${String(d)}\u300D`)}}for(let r of _nullishCoalesce(n.options, () => ([])))if(r.required&&t[r.flag]===void 0)throw new c(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function vn(n,t){let o=_nullishCoalesce(n.positional, () => ([]));for(let e=0;e<o.length;e++){let r=o[e],s=t[e];if(s===void 0||!r.enum)continue;let p=r.upper?s.toUpperCase():s;if(!r.enum.includes(p))throw new c(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function _n(n,t){let o=t.limit;if(o===void 0||o===!0||!Array.isArray(n))return n;let e=Number(S(o));return!Number.isNaN(e)&&e>=1?n.slice(0,e):n}function W(n,t,o){Pn(t,o.options),vn(t,o.positional);let e=t.invoke?t.invoke(n,o):Rn(n,t,o);return Promise.resolve(e).then(r=>_n(r,o.options))}function Rn(n,t,o){let e=En(t,o.options);switch(t.argShape){case"none":return m(n,t.path,[]);case"codes[]":return z(o.positional,t),m(n,t.path,[o.positional]);case"codes+options":return z(o.positional,t),m(n,t.path,[o.positional,e]);case"symbol+options":{let r=H(t,o.positional);return m(n,t.path,[...r,e])}case"options":return m(n,t.path,[e]);case"positional":return m(n,t.path,H(t,o.positional));default:throw new c(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function z(n,t){if(n.length===0)throw new c(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function X(n,t,o){if(t==="json")return o?JSON.stringify(n,null,2):JSON.stringify(n);let e=Nn(n);return e.length===0?"":t==="csv"?Tn(e):jn(e)}function Z(n){return n==null||Array.isArray(n)&&n.length===0}function Nn(n){return Array.isArray(n)?n.map(t=>Y(t)?t:{value:t}):Y(n)?[n]:n==null?[]:[{value:n}]}function Y(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function nn(n){let t=[],o=new Set;for(let e of n)for(let r of Object.keys(e))o.has(r)||(o.add(r),t.push(r));return t}function tn(n){return n==null?"":typeof n=="object"?JSON.stringify(n):String(n)}function A(n){let t=0;for(let o of n){let e=_nullishCoalesce(o.codePointAt(0), () => (0));t+=Mn(e)?2:1}return t}function Mn(n){return n>=4352&&n<=4447||n>=11904&&n<=42191||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65072&&n<=65103||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=131072&&n<=262141}function B(n,t,o){let e=Math.max(0,t-A(n)),r=" ".repeat(e);return o?r+n:n+r}function jn(n){let t=nn(n),o=n.map(i=>t.map(a=>tn(i[a]))),e=t.map((i,a)=>o.every(u=>u[a]===""||In(u[a]))),r=t.map((i,a)=>Math.max(A(i),...o.map(u=>A(u[a])))),s=t.map((i,a)=>B(i,r[a],e[a])).join(" "),p=r.map(i=>"-".repeat(i)).join(" "),d=o.map(i=>i.map((a,u)=>B(a,r[u],e[u])).join(" ")).join(`
|
|
4
|
+
`);return[s,p,d].join(`
|
|
5
|
+
`)}function In(n){return n!==""&&!Number.isNaN(Number(n))}function Tn(n){let t=nn(n),o=[t.map(Q).join(",")];for(let e of n)o.push(t.map(r=>Q(tn(e[r]))).join(","));return o.join(`
|
|
6
|
+
`)}function Q(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function l(n){let t={flag:n.flag,type:n.type,desc:n.desc};return n.field!==void 0&&(t.field=n.field),n.enum&&(t.enum=n.enum),n.required&&(t.required=!0),n.upper&&(t.upper=!0),n.map&&(t.map=n.map),t}function Dn(n){let t={name:n.name};return n.required&&(t.required=!0),n.variadic&&(t.variadic=!0),n.enum&&(t.enum=n.enum),n.upper&&(t.upper=!0),t}function on(n,t){let o=(_nullishCoalesce(n.params, () => ([]))).filter(e=>e.cli!==!1).map(l);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:_optionalChain([n, 'access', _2 => _2.positional, 'optionalAccess', _3 => _3.map, 'call', _4 => _4(Dn)]),options:o.length>0?o:void 0,invoke:t}}var $n=l(_chunkYR2SVSXBcjs.e),qn=l(_chunkYR2SVSXBcjs.f),en=l(_chunkYR2SVSXBcjs.d),rn=l(_chunkYR2SVSXBcjs.g),sn=l(_chunkYR2SVSXBcjs.h),Kn=l(_chunkYR2SVSXBcjs.i),P=[{name:"symbol",required:!0}],Ln=[{name:"code",required:!0}],fn={"kline.withIndicators":(n,t)=>mn(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[cn(t)]),"northbound.history":(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),m(n,["northbound","history"],[cn(t),o])}};{let n=new Set(_chunkYR2SVSXBcjs.m.map(t=>t.path.join(".")));for(let t of Object.keys(fn))if(!n.has(t))throw new Error(`CLI_INVOKE_OVERRIDES \u5F15\u7528\u4E86 spec \u4E2D\u4E0D\u5B58\u5728\u7684\u65B9\u6CD5\u8DEF\u5F84: ${t}`)}var k=_chunkYR2SVSXBcjs.m.map(n=>on(n,fn[n.path.join(".")]));function Un(n){return _nullishCoalesce(_optionalChain([k, 'access', _5 => _5.find, 'call', _6 => _6(t=>t.path.join(".")===n), 'optionalAccess', _7 => _7.options]), () => ([]))}var xn=Un("kline.withIndicators"),an={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Fn={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},v={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function un(n){let t=_chunk3NSUE34Fcjs.e.call(void 0, n);return t==="HK"?"hk":t==="US"?"us":"a"}function Vn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function pn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Hn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function cn(n){let t=_nullishCoalesce(n.options.direction, () => (n.positional[0]));if(t!==void 0){if(t==="north"||t==="south")return t;throw new c("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function dn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Jn(n){let t={};for(let o of _chunkYR2SVSXBcjs.k){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let r=E(e);r.length>0&&(t[o]={periods:r})}for(let o of _chunkYR2SVSXBcjs.l){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function mn(n,t){let o=_(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Jn(t.options),m(n,["kline","withIndicators"],[o,e])}var y=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[Fn,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Hn(t.options.market),r=t.options.full===!0,s={a:[],hk:[],us:[],fund:[]};for(let u of o){if(e==="fund"){s.fund.push(u);continue}let f=_nullishCoalesce(e, () => ("a"));try{let h=e?_chunk3NSUE34Fcjs.d.call(void 0, u,{market:Vn(e)}):_chunk3NSUE34Fcjs.d.call(void 0, u);e||(f=h.market==="HK"?"hk":h.market==="US"?"us":"a"),s[f].push(f==="a"?_chunk3NSUE34Fcjs.g.call(void 0, h):h.code)}catch(h){if(e&&h instanceof _chunk4Q7UQ5Q3cjs.f&&_chunk3NSUE34Fcjs.e.call(void 0, u)!==void 0)throw h;s[f].push(u)}}let p=[];s.a.length&&p.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&p.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&p.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&p.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(p),i=[],a=[];for(let u of d)u.status==="fulfilled"?i.push(...u.value):a.push(u.reason);if(i.length===0&&a.length>0)throw a[0];if(a.length>0){let u=a.map(f=>f instanceof Error?f.message:String(f)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
|
|
7
|
+
`)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:P,options:[$n,en,rn,sn,an,v],invoke:async(n,t)=>{let o=_(t,"kline"),e=_nullishCoalesce(pn(t.options.market), () => (un(o))),r=dn(t);return m(n,["kline",e==="hk"?"hk":e==="us"?"us":"cn"],[o,r])}},{path:["kline","cnMinute"],alias:["minute"],summary:"\u5206\u949FK\u7EBF/\u5206\u65F6(--period 1/5/15/30/60\uFF1B--market\uFF1B\u6E2F/\u7F8E --ndays)",argShape:"symbol+options",positional:P,options:[qn,en,rn,sn,an,v,Kn],invoke:async(n,t)=>{let o=_(t,"minute"),e=_nullishCoalesce(pn(t.options.market), () => (un(o))),r=dn(t),s=e==="hk"?"hkMinute":e==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new c("--ndays \u4EC5\u652F\u6301\u6E2F/\u7F8E\u80A1\u5206\u65F6","\u793A\u4F8B: stock-sdk minute 00700 --ndays 5");r.ndays=Number(t.options.ndays)}return m(n,["kline",s],[o,r])}},{path:["kline","withIndicators"],alias:["indicators"],summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10,20 --macd --kdj --rsi --boll ...\uFF1B--market)",argShape:"symbol+options",positional:P,options:xn,invoke:mn},{path:["search"],alias:["search"],summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1(--limit \u622A\u65AD)",argShape:"positional",positional:[{name:"keyword",required:!0}],options:[v],invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: stock-sdk search <keyword>");return n.search(o)}},{path:["quotes","timeline"],alias:["timeline"],summary:"\u5F53\u65E5\u5206\u65F6",argShape:"positional",positional:Ln,invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk timeline <code>");return n.quotes.timeline(o)}},{path:["codes","cn"],alias:["codes"],summary:"\u4EE3\u7801\u5217\u8868(market: a/hk/us/fund\uFF1B--simple\uFF1B--board sh/sz/bj/kc/cy)",argShape:"positional",positional:[{name:"market",required:!0,enum:["a","hk","us","fund"]}],options:[{flag:"simple",type:"boolean",desc:"\u53BB\u524D\u7F00"},{flag:"board",field:"market",type:"string",desc:"\u677F\u5757 sh/sz/bj/kc/cy(\u4EC5A\u80A1)"}],invoke:async(n,t)=>{let o=t.positional[0],e={};if(t.options.simple===!0&&(e.simple=!0),t.options.board!==void 0){if(o!=="a")throw new c("--board \u4EC5\u652F\u6301 A \u80A1(market=a)","\u53EF\u9009: sh / sz / bj / kc / cy");e.market=t.options.board}switch(o){case"a":return m(n,["codes","cn"],[e]);case"us":return m(n,["codes","us"],[e]);case"hk":return n.codes.hk();case"fund":return n.codes.fund();default:throw new c(`\u672A\u77E5\u5E02\u573A: ${o}`,"\u53EF\u9009: a / hk / us / fund")}}},{path:["calendar","marketStatus"],alias:["status"],summary:"\u5E02\u573A\u72B6\u6001(a/hk/us\uFF0C\u9ED8\u8BA4 a)",argShape:"positional",positional:[{name:"market",upper:!0,enum:_chunkYR2SVSXBcjs.b}],invoke:async(n,t)=>{let o=t.positional[0],e=o?o.toUpperCase():"A";return n.calendar.marketStatus(e)}},{path:["marketEvent","ztPool"],alias:["ztpool"],summary:"\u6DA8\u505C\u80A1\u6C60 zt/yesterday/strong/sub_new/broken/dt(--date)",argShape:"positional",positional:[{name:"type",enum:_chunkYR2SVSXBcjs.c}],options:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD"}],invoke:async(n,t)=>{let o=t.positional[0],e=t.options.date;return n.marketEvent.ztPool(o,e)}},{path:["call"],alias:["call"],summary:"\u539F\u59CB\u76F4\u901A\uFF1A\u8C03\u7528\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5\uFF08--args \u4F20 JSON \u5B9E\u53C2\u6570\u7EC4\uFF09",argShape:"positional",positional:[{name:"method",required:!0}],options:[{flag:"args",type:"string",desc:`JSON \u5B9E\u53C2\u6570\u7EC4\uFF0C\u5982 '[["sh600519"]]'`}],invoke:(n,t)=>{let o=t.positional[0];if(!o)throw new c("call \u7F3A\u5C11\u65B9\u6CD5\u8DEF\u5F84","\u7528\u6CD5: stock-sdk call <ns.method> --args '[...]'");let e=[],r=t.options.args;if(typeof r=="string")try{let p=JSON.parse(r);e=Array.isArray(p)?p:[p]}catch (e2){throw new c("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Gn()).has(o))throw new c(`\u672A\u77E5\u65B9\u6CD5: ${o}`,"\u5F62\u5982 quotes.cn / kline.cn(\u4EC5\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5,\u89C1 stock-sdk --help)");return m(n,o.split("."),e)}}],ln="mcp",zn=[...y,...k];function Gn(){return _chunkYR2SVSXBcjs.m.map(n=>n.path.join("."))}function _(n,t){let o=n.positional[0];if(!o)throw new c("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return o}function hn(){let n=new Set(["help","h","version","V","quiet","q","pretty"]);for(let t of zn)for(let o of _nullishCoalesce(t.options, () => ([])))o.type==="boolean"&&n.add(o.flag);for(let t of _chunkYR2SVSXBcjs.l)n.add(t);return n}function kn(n){if(n.length===0)return null;for(let o=Math.min(3,n.length);o>=2;o--){let e=n.slice(0,o).join("."),r=k.find(s=>s.path.join(".")===e);if(r)return{spec:r,rest:n.slice(o)}}for(let o of y)if(_optionalChain([o, 'access', _8 => _8.alias, 'optionalAccess', _9 => _9.includes, 'call', _10 => _10(n[0])]))return{spec:o,rest:n.slice(1)};let t=k.find(o=>o.path.join(".")===n[0]);return t?{spec:t,rest:n.slice(1)}:null}function gn(){let n=["stock-sdk \u2014\u2014 \u80A1\u7968\u884C\u60C5\u547D\u4EE4\u884C\uFF08\u57FA\u4E8E stock-sdk v2 \u547D\u540D\u7A7A\u95F4 API\uFF09","","\u7528\u6CD5:"," stock-sdk <command> [args] [--flags]"," stock-sdk <namespace> <method> [args] [--flags] # \u76F4\u8FBE\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5","","\u5E38\u7528\u547D\u4EE4:"];for(let o of y){let e=_nullishCoalesce(_optionalChain([o, 'access', _11 => _11.alias, 'optionalAccess', _12 => _12[0]]), () => (o.path.join(" ")));n.push(` ${e.padEnd(12)} ${o.summary}`)}n.push(" mcp \u542F\u52A8 MCP server (stdio)"),n.push(""),n.push("\u547D\u540D\u7A7A\u95F4\uFF08stock-sdk <ns> <method> ...\uFF09:");let t=[...new Set(k.map(o=>o.path[0]))];return n.push(" "+t.join(" / ")),n.push(""),n.push("\u5168\u5C40\u9009\u9879:"),n.push(" -f, --format json|table|csv \u8F93\u51FA\u683C\u5F0F (\u9ED8\u8BA4 json)"),n.push(" --pretty JSON \u7F29\u8FDB\u7F8E\u5316"),n.push(" --timeout <ms> \u8BF7\u6C42\u8D85\u65F6"),n.push(" -q, --quiet \u9759\u9ED8(\u53EA\u8F93\u51FA\u6570\u636E)"),n.push(" -h, --help \u663E\u793A\u5E2E\u52A9"),n.push(" -V, --version \u663E\u793A\u7248\u672C"),n.push(""),n.push("\u793A\u4F8B:"),n.push(" stock-sdk quote 600519 000858 00700"),n.push(" stock-sdk kline 600519 --period weekly --adjust hfq --limit 30"),n.push(" stock-sdk indicators 600519 --ma 5,10,20 --macd"),n.push(" stock-sdk board industry list --format table"),n.push(" stock-sdk options etf dailyKline 10004336"),n.push(""),n.push("\u8FD0\u884C `stock-sdk <command> --help` \u67E5\u770B\u5355\u6761\u547D\u4EE4\u7528\u6CD5\u3002"),n.join(`
|
|
8
|
+
`)}function Sn(n){let t=_nullishCoalesce(_optionalChain([n, 'access', _13 => _13.alias, 'optionalAccess', _14 => _14[0]]), () => (n.path.join(" "))),o=[`${t} \u2014\u2014 ${n.summary}`,""],e=(_nullishCoalesce(n.positional, () => ([]))).map(r=>{let s=r.required?`<${r.name}>`:`[${r.name}]`;return r.variadic?`${s}...`:s}).join(" ");if(o.push(`\u7528\u6CD5: stock-sdk ${t}${e?" "+e:""} [--flags]`),_optionalChain([n, 'access', _15 => _15.options, 'optionalAccess', _16 => _16.length])){o.push(""),o.push("\u9009\u9879:");for(let r of n.options){let s=r.enum?` (${r.enum.join("/")})`:"";o.push(` --${r.flag.padEnd(12)} ${r.desc}${s}`)}}return o.join(`
|
|
9
|
+
`)}function yn(n,t=new Set){let o=[],e={},r=!1,s=(i,a)=>{let u=e[i];if(u===void 0){e[i]=a;return}if(typeof a!="string"){e[i]=a;return}Array.isArray(u)?u.push(a):typeof u=="string"?e[i]=[u,a]:e[i]=a},p=i=>i!==void 0&&(i==="-"||!i.startsWith("-")||/^-\d/.test(i)),d=(i,a)=>{if(t.has(i))return s(i,!0),a;let u=n[a+1];return p(u)?(s(i,u),a+1):(s(i,!0),a)};for(let i=0;i<n.length;i++){let a=n[i];if(r){o.push(a);continue}if(a==="--"){r=!0;continue}if(a.startsWith("--")&&a.length>2){let u=a.slice(2),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else if(a.startsWith("-")&&a.length>1&&!Wn(a)){let u=a.slice(1),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else o.push(a)}return{positional:o,options:e}}function Wn(n){return/^-\d/.test(n)}var Yn=hn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
|
|
10
|
+
`)});function Bn(){return"2.0.0"}function Qn(n){let t=_nullishCoalesce(n.format, () => (n.f)),o=t==="table"||t==="csv"?t:"json",e;if(typeof n.timeout=="string"||typeof n.timeout=="number"){let r=Number(n.timeout);!Number.isNaN(r)&&r>0&&(e=r)}return{format:o,pretty:n.pretty===!0,quiet:n.quiet===!0||n.q===!0,help:n.help===!0||n.h===!0,version:n.version===!0||n.V===!0,timeout:e}}async function Xn(){try{return(await Promise.resolve().then(() => _interopRequireWildcard(require("./mcp.cjs")))).startMcpServer(),0}catch(n){let t=n instanceof Error?n.message:String(n);return process.stderr.write(`stock-sdk: \u65E0\u6CD5\u542F\u52A8 MCP server: ${t}
|
|
11
|
+
`),1}}async function Zn(n){let t="json";try{let o=yn(n,Yn),e=Qn(o.options);if(t=e.format,e.version)return process.stdout.write(Bn()+`
|
|
12
|
+
`),0;if(o.positional.length===0)return process.stdout.write(gn()+`
|
|
13
|
+
`),0;if(o.positional[0]===ln)return e.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
|
|
13
14
|
|
|
14
15
|
\u7528\u6CD5: stock-sdk mcp
|
|
15
16
|
\u73AF\u5883\u53D8\u91CF: STOCK_SDK_MCP_TOOLS=core|full|<\u9017\u53F7\u5206\u9694\u5DE5\u5177\u540D>\uFF08\u9ED8\u8BA4 core\uFF09
|
|
16
|
-
`),0):await
|
|
17
|
-
`),0;let
|
|
18
|
-
`);let i=
|
|
19
|
-
`),0}catch(o){let e=
|
|
20
|
-
`)
|
|
17
|
+
`),0):await Xn();let r=kn(o.positional);if(!r)throw new c(`\u672A\u77E5\u547D\u4EE4 "${o.positional.join(" ")}"`,"\u8FD0\u884C `stock-sdk --help` \u67E5\u770B\u53EF\u7528\u547D\u4EE4");if(e.help)return process.stdout.write(Sn(r.spec)+`
|
|
18
|
+
`),0;let s=new (0, _chunk2PYGJ5I5cjs.t)(e.timeout!==void 0?{timeout:e.timeout}:{}),p={positional:r.rest,options:o.options},d=await W(s,r.spec,p);Z(d)&&!e.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
|
|
19
|
+
`);let i=X(d,e.format,e.pretty);return i.length>0&&process.stdout.write(i+`
|
|
20
|
+
`),0}catch(o){let e=V(o,t);return process.stderr.write(e.text+`
|
|
21
|
+
`),F(o)}}Zn(process.argv.slice(2)).then(n=>{process.exitCode=n},n=>{let t=n instanceof Error?n.message:String(n);process.stderr.write(`stock-sdk: ${t}
|
|
21
22
|
`),process.exitCode=1});
|
package/dist/cli.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{c as
|
|
3
|
-
${n.hint}`:"";return{text:`stock-sdk: ${o}${
|
|
4
|
-
`);return[
|
|
5
|
-
`)}function
|
|
6
|
-
`)}function G(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}var b={flag:"adjust",type:"enum",enum:["qfq","hfq","none"],map:{none:""},desc:"\u590D\u6743\uFF1Aqfq \u524D\u590D\u6743(\u9ED8\u8BA4) / hfq \u540E\u590D\u6743 / none \u4E0D\u590D\u6743"},f={flag:"start",field:"startDate",type:"string",desc:"\u5F00\u59CB\u65E5\u671F YYYYMMDD"},y={flag:"end",field:"endDate",type:"string",desc:"\u7ED3\u675F\u65E5\u671F YYYYMMDD"},Q={...f,required:!0},X={...y,required:!0},Z={flag:"direction",type:"enum",enum:["north","south"],desc:"\u65B9\u5411 north / south"},A={flag:"period",type:"enum",enum:["daily","weekly","monthly"],desc:"K \u7EBF\u5468\u671F daily/weekly/monthly"},rn={flag:"period",type:"enum",enum:["1","5","15","30","60"],desc:"\u5206\u949F\u5468\u671F 1/5/15/30/60"},k=[A,b,f,y],w=[rn,b,f,y],v=[{flag:"batchSize",type:"number",desc:"\u5355\u6279\u6570\u91CF(\u9ED8\u8BA4 500)"},{flag:"concurrency",type:"number",desc:"\u5E76\u53D1\u6570(\u9ED8\u8BA4 7)"},{flag:"market",type:"string",desc:"\u5E02\u573A\u7B5B\u9009 sh/sz/bj/kc/cy"}],nn=[{flag:"simple",type:"boolean",desc:"\u53BB\u6389\u4EA4\u6613\u6240\u524D\u7F00"},{flag:"market",type:"string",desc:"\u5E02\u573A\u7B5B\u9009 sh/sz/bj/kc/cy"}],d=[{name:"symbol",required:!0}],h=[{name:"code",required:!0}],an=["ma","rsi","wr","bias"],q=["macd","kdj","boll","cci","atr","obv","roc","dmi","sar","kc"],pn=[...an.map(n=>({flag:n,type:"number[]",desc:`${n.toUpperCase()} \u5468\u671F(\u9017\u53F7\u5206\u9694\uFF0C\u5982 5,10\uFF1B\u4EC5 --${n} \u7528\u9ED8\u8BA4)`})),...q.map(n=>({flag:n,type:"boolean",desc:`\u542F\u7528 ${n.toUpperCase()}`}))],Mn={flag:"market",type:"enum",enum:["A","HK","US"],upper:!0,desc:"\u5E02\u573A(\u9ED8\u8BA4\u81EA\u52A8\u8BC6\u522B)"},qn=[A,b,f,y,Mn,...pn],Pn=[{path:"quotes.cn",shape:"codes[]",summary:"A\u80A1\u5168\u91CF\u884C\u60C5(\u542B\u4E94\u6863)"},{path:"quotes.cnSimple",shape:"codes[]",summary:"A\u80A1\u7B80\u8981\u884C\u60C5"},{path:"quotes.hk",shape:"codes[]",summary:"\u6E2F\u80A1\u884C\u60C5"},{path:"quotes.us",shape:"codes[]",summary:"\u7F8E\u80A1\u884C\u60C5"},{path:"quotes.fund",shape:"codes[]",summary:"\u57FA\u91D1\u884C\u60C5"},{path:"quotes.fundFlow",shape:"codes[]",summary:"\u8D44\u91D1\u6D41\u5411(\u7B80\u7248)"},{path:"quotes.largeOrder",shape:"codes[]",summary:"\u76D8\u53E3\u5927\u5355\u5360\u6BD4"},{path:"quotes.timeline",shape:"positional",summary:"\u5F53\u65E5\u5206\u65F6",pos:h},{path:"codes.cn",shape:"options",summary:"A\u80A1\u4EE3\u7801\u5217\u8868",opts:nn},{path:"codes.us",shape:"options",summary:"\u7F8E\u80A1\u4EE3\u7801\u5217\u8868",opts:nn},{path:"codes.hk",shape:"none",summary:"\u6E2F\u80A1\u4EE3\u7801\u5217\u8868"},{path:"codes.fund",shape:"none",summary:"\u57FA\u91D1\u4EE3\u7801\u5217\u8868"},{path:"batch.cn",shape:"options",summary:"\u5168\u5E02\u573AA\u80A1\u884C\u60C5",opts:v},{path:"batch.hk",shape:"options",summary:"\u5168\u5E02\u573A\u6E2F\u80A1\u884C\u60C5",opts:v},{path:"batch.us",shape:"options",summary:"\u5168\u5E02\u573A\u7F8E\u80A1\u884C\u60C5",opts:v},{path:"batch.byCodes",shape:"codes+options",summary:"\u6309\u4EE3\u7801\u6279\u91CF\u884C\u60C5",opts:v},{path:"batch.raw",shape:"positional",summary:"\u817E\u8BAF\u539F\u59CB\u6279\u91CF",pos:[{name:"params",required:!0}]},{path:"kline.cn",shape:"symbol+options",summary:"A\u80A1\u5386\u53F2K\u7EBF",pos:d,opts:k},{path:"kline.cnMinute",shape:"symbol+options",summary:"A\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",pos:d,opts:w},{path:"kline.hk",shape:"symbol+options",summary:"\u6E2F\u80A1\u5386\u53F2K\u7EBF",pos:d,opts:k},{path:"kline.hkMinute",shape:"symbol+options",summary:"\u6E2F\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",pos:d,opts:w},{path:"kline.us",shape:"symbol+options",summary:"\u7F8E\u80A1\u5386\u53F2K\u7EBF",pos:d,opts:k},{path:"kline.usMinute",shape:"symbol+options",summary:"\u7F8E\u80A1\u5206\u949FK\u7EBF/\u5206\u65F6",pos:d,opts:w},{path:"kline.withIndicators",shape:"symbol+options",summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10 --macd --kdj --rsi ...)",pos:d,opts:qn,invoke:(n,t)=>un(n,t)},{path:"board.industry.list",shape:"none",summary:"\u884C\u4E1A\u677F\u5757\u5217\u8868"},{path:"board.industry.spot",shape:"positional",summary:"\u884C\u4E1A\u677F\u5757\u6210\u5206\u884C\u60C5",pos:d},{path:"board.industry.constituents",shape:"positional",summary:"\u884C\u4E1A\u677F\u5757\u6210\u5206\u80A1",pos:d},{path:"board.industry.kline",shape:"symbol+options",summary:"\u884C\u4E1A\u677F\u5757K\u7EBF",pos:d,opts:k},{path:"board.industry.minuteKline",shape:"symbol+options",summary:"\u884C\u4E1A\u677F\u5757\u5206\u65F6",pos:d,opts:w},{path:"board.concept.list",shape:"none",summary:"\u6982\u5FF5\u677F\u5757\u5217\u8868"},{path:"board.concept.spot",shape:"positional",summary:"\u6982\u5FF5\u677F\u5757\u6210\u5206\u884C\u60C5",pos:d},{path:"board.concept.constituents",shape:"positional",summary:"\u6982\u5FF5\u677F\u5757\u6210\u5206\u80A1",pos:d},{path:"board.concept.kline",shape:"symbol+options",summary:"\u6982\u5FF5\u677F\u5757K\u7EBF",pos:d,opts:k},{path:"board.concept.minuteKline",shape:"symbol+options",summary:"\u6982\u5FF5\u677F\u5757\u5206\u65F6",pos:d,opts:w},{path:"options.index.spot",shape:"positional",summary:"\u80A1\u6307\u671F\u6743T\u578B\u62A5\u4EF7",pos:[{name:"product",required:!0},{name:"contract",required:!0}]},{path:"options.index.kline",shape:"positional",summary:"\u80A1\u6307\u671F\u6743\u65E5K",pos:d},{path:"options.etf.months",shape:"positional",summary:"ETF\u671F\u6743\u6708\u4EFD",pos:[{name:"cate",required:!0}]},{path:"options.etf.expireDay",shape:"positional",summary:"ETF\u671F\u6743\u5230\u671F\u65E5",pos:[{name:"cate",required:!0},{name:"month",required:!0}]},{path:"options.etf.minute",shape:"positional",summary:"ETF\u671F\u6743\u5F53\u65E5\u5206\u65F6",pos:h},{path:"options.etf.dailyKline",shape:"positional",summary:"ETF\u671F\u6743\u65E5K",pos:h},{path:"options.etf.fiveDayMinute",shape:"positional",summary:"ETF\u671F\u67435\u65E5\u5206\u65F6",pos:h},{path:"options.commodity.spot",shape:"positional",summary:"\u5546\u54C1\u671F\u6743T\u578B\u62A5\u4EF7",pos:[{name:"variety",required:!0},{name:"contract",required:!0}]},{path:"options.commodity.kline",shape:"positional",summary:"\u5546\u54C1\u671F\u6743\u65E5K",pos:d},{path:"options.cffex.quotes",shape:"options",summary:"\u4E2D\u91D1\u6240\u671F\u6743\u5F53\u65E5\u62A5\u4EF7"},{path:"options.lhb",shape:"positional",summary:"\u671F\u6743\u9F99\u864E\u699C",pos:[{name:"symbol",required:!0},{name:"date",required:!0}]},{path:"futures.kline",shape:"symbol+options",summary:"\u56FD\u5185\u671F\u8D27K\u7EBF",pos:d,opts:k},{path:"futures.globalSpot",shape:"options",summary:"\u5168\u7403\u671F\u8D27\u5B9E\u65F6\u884C\u60C5"},{path:"futures.globalKline",shape:"symbol+options",summary:"\u5168\u7403\u671F\u8D27K\u7EBF",pos:d,opts:k},{path:"futures.inventorySymbols",shape:"none",summary:"\u671F\u8D27\u5E93\u5B58\u54C1\u79CD\u5217\u8868"},{path:"futures.inventory",shape:"symbol+options",summary:"\u671F\u8D27\u5E93\u5B58\u5386\u53F2",pos:d},{path:"futures.comexInventory",shape:"symbol+options",summary:"COMEX \u5E93\u5B58",pos:[{name:"symbol",required:!0,enum:["gold","silver"]}]},{path:"fundFlow.individual",shape:"symbol+options",summary:"\u4E2A\u80A1\u8D44\u91D1\u6D41\u5386\u53F2",pos:d},{path:"fundFlow.market",shape:"none",summary:"\u5927\u76D8\u8D44\u91D1\u6D41"},{path:"fundFlow.rank",shape:"options",summary:"\u4E2A\u80A1\u8D44\u91D1\u6D41\u6392\u540D"},{path:"fundFlow.sectorRank",shape:"options",summary:"\u677F\u5757\u8D44\u91D1\u6D41\u6392\u540D"},{path:"fundFlow.sectorHistory",shape:"symbol+options",summary:"\u5355\u677F\u5757\u5386\u53F2\u8D44\u91D1\u6D41",pos:d},{path:"northbound.minute",shape:"positional",summary:"\u5317\u5411/\u5357\u5411\u5206\u65F6(--direction north|south \u6216\u4F4D\u7F6E\u53C2\u6570)",pos:[{name:"direction",enum:["north","south"]}],opts:[Z],invoke:(n,t)=>g(n,["northbound","minute"],[en(t)])},{path:"northbound.summary",shape:"none",summary:"\u6CAA\u6DF1\u6E2F\u901A\u8D44\u91D1\u6C47\u603B"},{path:"northbound.holdingRank",shape:"options",summary:"\u5317\u5411\u6301\u80A1\u6392\u884C"},{path:"northbound.history",shape:"symbol+options",summary:"\u5317\u5411/\u5357\u5411\u5386\u53F2(--direction north|south\uFF1B--start/--end)",pos:[{name:"direction",enum:["north","south"]}],opts:[Z,f,y],invoke:(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),g(n,["northbound","history"],[en(t),o])}},{path:"northbound.individual",shape:"symbol+options",summary:"\u4E2A\u80A1\u5317\u5411\u6301\u4ED3\u5386\u53F2",pos:d},{path:"marketEvent.ztPool",shape:"positional",summary:"\u6DA8\u505C\u80A1\u6C60",pos:[{name:"type"},{name:"date"}]},{path:"marketEvent.stockChanges",shape:"positional",summary:"\u76D8\u53E3\u5F02\u52A8",pos:[{name:"type"}]},{path:"marketEvent.boardChanges",shape:"none",summary:"\u677F\u5757\u5F02\u52A8"},{path:"dragonTiger.detail",shape:"options",summary:"\u9F99\u864E\u699C\u8BE6\u60C5(\u5FC5\u586B --start/--end)",opts:[Q,X]},{path:"dragonTiger.stockStats",shape:"positional",summary:"\u4E2A\u80A1\u4E0A\u699C\u7EDF\u8BA1",pos:[{name:"period"}]},{path:"dragonTiger.institution",shape:"options",summary:"\u673A\u6784\u4E70\u5356\u7EDF\u8BA1(\u5FC5\u586B --start/--end)",opts:[Q,X]},{path:"dragonTiger.branchRank",shape:"positional",summary:"\u8425\u4E1A\u90E8\u6392\u884C",pos:[{name:"period"}]},{path:"dragonTiger.seatDetail",shape:"positional",summary:"\u4E2A\u80A1\u5E2D\u4F4D\u660E\u7EC6",pos:[{name:"symbol",required:!0},{name:"date",required:!0}]},{path:"blockTrade.marketStat",shape:"none",summary:"\u5927\u5B97\u4EA4\u6613\u5E02\u573A\u7EDF\u8BA1"},{path:"blockTrade.detail",shape:"options",summary:"\u5927\u5B97\u4EA4\u6613\u660E\u7EC6"},{path:"blockTrade.dailyStat",shape:"options",summary:"\u5927\u5B97\u4EA4\u6613\u6BCF\u65E5\u7EDF\u8BA1"},{path:"margin.accountInfo",shape:"none",summary:"\u878D\u8D44\u878D\u5238\u8D26\u6237\u7EDF\u8BA1"},{path:"margin.targetList",shape:"positional",summary:"\u878D\u8D44\u878D\u5238\u6807\u7684",pos:[{name:"date"}]},{path:"fund.dividendList",shape:"options",summary:"\u57FA\u91D1\u5206\u7EA2\u660E\u7EC6"},{path:"fund.navHistory",shape:"positional",summary:"\u57FA\u91D1\u5386\u53F2\u51C0\u503C",pos:h},{path:"fund.estimate",shape:"positional",summary:"\u57FA\u91D1\u5F53\u65E5\u4F30\u503C",pos:h},{path:"fund.rankHistory",shape:"positional",summary:"\u57FA\u91D1\u540C\u7C7B\u6392\u540D\u8D70\u52BF",pos:h},{path:"calendar.isTradingDay",shape:"positional",summary:"\u662F\u5426\u4EA4\u6613\u65E5",pos:[{name:"date"}]},{path:"calendar.nextTradingDay",shape:"positional",summary:"\u4E0B\u4E00\u4EA4\u6613\u65E5",pos:[{name:"date"}]},{path:"calendar.prevTradingDay",shape:"positional",summary:"\u4E0A\u4E00\u4EA4\u6613\u65E5",pos:[{name:"date"}]},{path:"calendar.marketStatus",shape:"positional",summary:"\u5E02\u573A\u72B6\u6001",pos:[{name:"market",upper:!0,enum:["A","HK","US"]}]},{path:"reference.dividendDetail",shape:"positional",summary:"\u5206\u7EA2\u914D\u80A1\u660E\u7EC6",pos:d},{path:"reference.tradingCalendar",shape:"none",summary:"\u4EA4\u6613\u65E5\u5386(\u539F\u59CB\u6570\u7EC4)"}],jn={path:"search",shape:"positional",summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1",pos:[{name:"keyword",required:!0}]};function In(n){return{path:n.path.split("."),summary:n.summary,argShape:n.shape,positional:n.pos,options:n.opts,invoke:n.invoke}}var O=[...Pn,jn].map(In),tn={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},$n={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},_={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function D(n){try{let t=T(n);return t.market==="HK"?"hk":t.market==="US"?"us":"a"}catch{return"a"}}function g(n,t,o){let e=t.reduce((s,r)=>s[r],n);return Promise.resolve(e(...o))}function Kn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function on(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Fn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function en(n){let t=n.options.direction??n.positional[0];if(t!==void 0){if(t==="north"||t==="south")return t;throw new c("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function sn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Un(n){let t={};for(let o of an){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let s=Ln(e);s.length>0&&(t[o]={periods:s})}for(let o of q){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function un(n,t){let o=M(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Un(t.options),g(n,["kline","withIndicators"],[o,e])}function Ln(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>Number(o.trim())).filter(o=>!Number.isNaN(o))}var E=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[$n,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Fn(t.options.market),s=t.options.full===!0,r={a:[],hk:[],us:[],fund:[]};for(let u of o){let l=e??D(u);if(l==="fund"){r.fund.push(u);continue}try{let P=T(u,{market:Kn(l)});r[l].push(l==="a"?j(P):P.code)}catch{r[l].push(u)}}let a=[];r.a.length&&a.push(Promise.resolve(s?n.quotes.cn(r.a):n.quotes.cnSimple(r.a))),r.hk.length&&a.push(Promise.resolve(n.quotes.hk(r.hk))),r.us.length&&a.push(Promise.resolve(n.quotes.us(r.us))),r.fund.length&&a.push(Promise.resolve(n.quotes.fund(r.fund)));let m=await Promise.allSettled(a),i=[],p=[];for(let u of m)u.status==="fulfilled"?i.push(...u.value):p.push(u.reason);if(i.length===0&&p.length>0)throw p[0];if(p.length>0){let u=p.map(l=>l instanceof Error?l.message:String(l)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
|
|
7
|
-
`)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:
|
|
8
|
-
`)}function
|
|
9
|
-
`)}function
|
|
10
|
-
`)
|
|
11
|
-
`),
|
|
12
|
-
`),0;if(o.positional
|
|
2
|
+
import{a as j,b as I,c as T,d as D,e as $,f as q,g as K,h as L,i as U,k as x,l as C,m as g}from"./chunk-GBHWMR2O.js";import{t as M}from"./chunk-4PVVFEOQ.js";import"./chunk-G5KF73BW.js";import{d as O,e as b,g as N}from"./chunk-D2MGPO3R.js";import"./chunk-DU7MCVLJ.js";import{f as R,k as w}from"./chunk-UBIQBXQ7.js";import"./chunk-WOT6VMZA.js";var c=class extends Error{constructor(t,o){super(t),this.name="CliUsageError",this.hint=o}},wn={INVALID_ARGUMENT:2,INVALID_SYMBOL:2,NOT_FOUND:2,NETWORK_ERROR:3,TIMEOUT:3,ABORTED:3,UPSTREAM_ERROR:4,UPSTREAM_EMPTY:4,PARSE_ERROR:4,HTTP_ERROR:4,RATE_LIMITED:5,CIRCUIT_OPEN:5};function F(n){if(n instanceof c)return 2;let t=w(n);return wn[t]??1}function V(n,t){let o=n instanceof Error?n.message:String(n);if(n instanceof c){if(t==="json")return{text:JSON.stringify({error:{code:"USAGE",message:o}})};let r=n.hint?`
|
|
3
|
+
${n.hint}`:"";return{text:`stock-sdk: ${o}${r}`}}let e=w(n);return t==="json"?{text:JSON.stringify({error:{code:e,message:o}})}:{text:`stock-sdk: ${e}: ${o}`}}var On={start:"startDate",end:"endDate"},bn=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),Cn=new Set(["limit"]);function G(n){return bn.has(n)||Cn.has(n)}function En(n,t){let o={},e=new Map;for(let r of n.options??[])e.set(r.flag,r);for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=e.get(r);if(!p){if(s===!0)continue;o[On[r]??r]=s;continue}o[p.field??p.flag]=An(p,s)}for(let r of n.options??[]){let s=r.field??r.flag;o[s]===void 0&&r.default!==void 0&&(o[s]=r.default)}return o}function An(n,t){switch(n.type){case"boolean":return t===!0||t==="true";case"number":return Number(S(t));case"number[]":return E(t);case"enum":case"string":{let o=S(t),e=typeof o=="boolean"?o:String(o);if(n.upper&&typeof e=="string"&&(e=e.toUpperCase()),n.type==="enum"&&n.enum&&typeof e=="string"&&!n.enum.includes(e))throw new c(`--${n.flag} \u975E\u6CD5\u503C\u300C${e}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return n.map&&typeof e=="string"&&e in n.map&&(e=n.map[e]),e}default:return t}}function S(n){return Array.isArray(n)?n[n.length-1]:n}function E(n){return(Array.isArray(n)?n.join(","):String(n)).split(",").map(o=>o.trim()).filter(o=>o.length>0).map(o=>Number(o)).filter(o=>Number.isInteger(o)&&o>0)}function H(n,t){let o=n.positional??[],e=[],r=0;for(let s of o){if(s.variadic){let d=t.slice(r);if(s.required&&d.length===0)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)e.push(J(s,i));return e}let p=t[r];if(p===void 0){if(s.required)throw new c(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);e.push(void 0)}else e.push(J(s,p));r++}return e}function J(n,t){let o=t;if(n.upper&&(o=o.toUpperCase()),n.enum&&!n.enum.includes(o))throw new c(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return o}function m(n,t,o){let e=j(n,t);if(!e)throw new c(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(e.fn.apply(e.parent,o))}function Pn(n,t){let o=new Map;for(let r of n.options??[])o.set(r.flag,r);let e=o.size>0;for(let[r,s]of Object.entries(t)){if(G(r))continue;let p=o.get(r);if(!p){if(e)throw new c(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&p.type!=="boolean"&&p.type!=="number[]")throw new c(`--${r} \u7F3A\u5C11\u503C`);if(p.type!=="number[]"){let d=S(s);if(p.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),p.type==="enum"&&p.enum){let i=typeof d=="string"?d:String(d);if(!p.enum.includes(i))throw new c(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${p.enum.join(" / ")}`)}if(p.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new c(`--${r} \u9700\u8981\u6570\u503C\uFF0C\u5F97\u5230\u300C${String(d)}\u300D`)}}for(let r of n.options??[])if(r.required&&t[r.flag]===void 0)throw new c(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function vn(n,t){let o=n.positional??[];for(let e=0;e<o.length;e++){let r=o[e],s=t[e];if(s===void 0||!r.enum)continue;let p=r.upper?s.toUpperCase():s;if(!r.enum.includes(p))throw new c(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function _n(n,t){let o=t.limit;if(o===void 0||o===!0||!Array.isArray(n))return n;let e=Number(S(o));return!Number.isNaN(e)&&e>=1?n.slice(0,e):n}function W(n,t,o){Pn(t,o.options),vn(t,o.positional);let e=t.invoke?t.invoke(n,o):Rn(n,t,o);return Promise.resolve(e).then(r=>_n(r,o.options))}function Rn(n,t,o){let e=En(t,o.options);switch(t.argShape){case"none":return m(n,t.path,[]);case"codes[]":return z(o.positional,t),m(n,t.path,[o.positional]);case"codes+options":return z(o.positional,t),m(n,t.path,[o.positional,e]);case"symbol+options":{let r=H(t,o.positional);return m(n,t.path,[...r,e])}case"options":return m(n,t.path,[e]);case"positional":return m(n,t.path,H(t,o.positional));default:throw new c(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function z(n,t){if(n.length===0)throw new c(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function X(n,t,o){if(t==="json")return o?JSON.stringify(n,null,2):JSON.stringify(n);let e=Nn(n);return e.length===0?"":t==="csv"?Tn(e):jn(e)}function Z(n){return n==null||Array.isArray(n)&&n.length===0}function Nn(n){return Array.isArray(n)?n.map(t=>Y(t)?t:{value:t}):Y(n)?[n]:n==null?[]:[{value:n}]}function Y(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function nn(n){let t=[],o=new Set;for(let e of n)for(let r of Object.keys(e))o.has(r)||(o.add(r),t.push(r));return t}function tn(n){return n==null?"":typeof n=="object"?JSON.stringify(n):String(n)}function A(n){let t=0;for(let o of n){let e=o.codePointAt(0)??0;t+=Mn(e)?2:1}return t}function Mn(n){return n>=4352&&n<=4447||n>=11904&&n<=42191||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65072&&n<=65103||n>=65280&&n<=65376||n>=65504&&n<=65510||n>=131072&&n<=262141}function B(n,t,o){let e=Math.max(0,t-A(n)),r=" ".repeat(e);return o?r+n:n+r}function jn(n){let t=nn(n),o=n.map(i=>t.map(a=>tn(i[a]))),e=t.map((i,a)=>o.every(u=>u[a]===""||In(u[a]))),r=t.map((i,a)=>Math.max(A(i),...o.map(u=>A(u[a])))),s=t.map((i,a)=>B(i,r[a],e[a])).join(" "),p=r.map(i=>"-".repeat(i)).join(" "),d=o.map(i=>i.map((a,u)=>B(a,r[u],e[u])).join(" ")).join(`
|
|
4
|
+
`);return[s,p,d].join(`
|
|
5
|
+
`)}function In(n){return n!==""&&!Number.isNaN(Number(n))}function Tn(n){let t=nn(n),o=[t.map(Q).join(",")];for(let e of n)o.push(t.map(r=>Q(tn(e[r]))).join(","));return o.join(`
|
|
6
|
+
`)}function Q(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function l(n){let t={flag:n.flag,type:n.type,desc:n.desc};return n.field!==void 0&&(t.field=n.field),n.enum&&(t.enum=n.enum),n.required&&(t.required=!0),n.upper&&(t.upper=!0),n.map&&(t.map=n.map),t}function Dn(n){let t={name:n.name};return n.required&&(t.required=!0),n.variadic&&(t.variadic=!0),n.enum&&(t.enum=n.enum),n.upper&&(t.upper=!0),t}function on(n,t){let o=(n.params??[]).filter(e=>e.cli!==!1).map(l);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:n.positional?.map(Dn),options:o.length>0?o:void 0,invoke:t}}var $n=l($),qn=l(q),en=l(D),rn=l(K),sn=l(L),Kn=l(U),P=[{name:"symbol",required:!0}],Ln=[{name:"code",required:!0}],fn={"kline.withIndicators":(n,t)=>mn(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[cn(t)]),"northbound.history":(n,t)=>{let o={};return t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),m(n,["northbound","history"],[cn(t),o])}};{let n=new Set(g.map(t=>t.path.join(".")));for(let t of Object.keys(fn))if(!n.has(t))throw new Error(`CLI_INVOKE_OVERRIDES \u5F15\u7528\u4E86 spec \u4E2D\u4E0D\u5B58\u5728\u7684\u65B9\u6CD5\u8DEF\u5F84: ${t}`)}var k=g.map(n=>on(n,fn[n.path.join(".")]));function Un(n){return k.find(t=>t.path.join(".")===n)?.options??[]}var xn=Un("kline.withIndicators"),an={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Fn={flag:"market",type:"enum",enum:["a","hk","us","fund"],desc:"\u5E02\u573A a/hk/us/fund(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B\uFF1B\u57FA\u91D1\u987B\u663E\u5F0F --market fund)"},v={flag:"limit",type:"number",desc:"\u53EA\u53D6\u524D N \u6761(CLI \u8F93\u51FA\u5C42\u88C1\u526A)"};function un(n){let t=b(n);return t==="HK"?"hk":t==="US"?"us":"a"}function Vn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function pn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Hn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new c("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function cn(n){let t=n.options.direction??n.positional[0];if(t!==void 0){if(t==="north"||t==="south")return t;throw new c("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function dn(n){let t={};return n.options.period!==void 0&&(t.period=n.options.period),n.options.adjust!==void 0&&(t.adjust=n.options.adjust==="none"?"":n.options.adjust),n.options.start!==void 0&&(t.startDate=n.options.start),n.options.end!==void 0&&(t.endDate=n.options.end),t}function Jn(n){let t={};for(let o of x){let e=n[o];if(e===void 0)continue;if(e===!0){t[o]={};continue}let r=E(e);r.length>0&&(t[o]={periods:r})}for(let o of C){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function mn(n,t){let o=_(t,"indicators"),e={};return t.options.period!==void 0&&(e.period=t.options.period),t.options.adjust!==void 0&&(e.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),t.options.market!==void 0&&(e.market=t.options.market),e.indicators=Jn(t.options),m(n,["kline","withIndicators"],[o,e])}var y=[{path:["quotes","cnSimple"],alias:["quote"],summary:"\u884C\u60C5(\u81EA\u52A8\u8BC6\u522B\u5E02\u573A\uFF1B--full \u5168\u91CF\u4E94\u6863\uFF1B--market \u5F3A\u5236\u5E02\u573A)",argShape:"codes[]",positional:[{name:"code",required:!0,variadic:!0}],options:[Fn,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let o=t.positional;if(o.length===0)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let e=Hn(t.options.market),r=t.options.full===!0,s={a:[],hk:[],us:[],fund:[]};for(let u of o){if(e==="fund"){s.fund.push(u);continue}let f=e??"a";try{let h=e?O(u,{market:Vn(e)}):O(u);e||(f=h.market==="HK"?"hk":h.market==="US"?"us":"a"),s[f].push(f==="a"?N(h):h.code)}catch(h){if(e&&h instanceof R&&b(u)!==void 0)throw h;s[f].push(u)}}let p=[];s.a.length&&p.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&p.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&p.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&p.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(p),i=[],a=[];for(let u of d)u.status==="fulfilled"?i.push(...u.value):a.push(u.reason);if(i.length===0&&a.length>0)throw a[0];if(a.length>0){let u=a.map(f=>f instanceof Error?f.message:String(f)).join("; ");process.stderr.write(`stock-sdk: \u90E8\u5206\u5E02\u573A\u884C\u60C5\u67E5\u8BE2\u5931\u8D25: ${u}
|
|
7
|
+
`)}return i}},{path:["kline","cn"],alias:["kline"],summary:"K\u7EBF(--market a/hk/us\uFF1B--limit \u622A\u65AD)",argShape:"symbol+options",positional:P,options:[$n,en,rn,sn,an,v],invoke:async(n,t)=>{let o=_(t,"kline"),e=pn(t.options.market)??un(o),r=dn(t);return m(n,["kline",e==="hk"?"hk":e==="us"?"us":"cn"],[o,r])}},{path:["kline","cnMinute"],alias:["minute"],summary:"\u5206\u949FK\u7EBF/\u5206\u65F6(--period 1/5/15/30/60\uFF1B--market\uFF1B\u6E2F/\u7F8E --ndays)",argShape:"symbol+options",positional:P,options:[qn,en,rn,sn,an,v,Kn],invoke:async(n,t)=>{let o=_(t,"minute"),e=pn(t.options.market)??un(o),r=dn(t),s=e==="hk"?"hkMinute":e==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new c("--ndays \u4EC5\u652F\u6301\u6E2F/\u7F8E\u80A1\u5206\u65F6","\u793A\u4F8B: stock-sdk minute 00700 --ndays 5");r.ndays=Number(t.options.ndays)}return m(n,["kline",s],[o,r])}},{path:["kline","withIndicators"],alias:["indicators"],summary:"\u5E26\u6307\u6807K\u7EBF(--ma 5,10,20 --macd --kdj --rsi --boll ...\uFF1B--market)",argShape:"symbol+options",positional:P,options:xn,invoke:mn},{path:["search"],alias:["search"],summary:"\u641C\u7D22\u80A1\u7968/\u6307\u6570/\u57FA\u91D1(--limit \u622A\u65AD)",argShape:"positional",positional:[{name:"keyword",required:!0}],options:[v],invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: stock-sdk search <keyword>");return n.search(o)}},{path:["quotes","timeline"],alias:["timeline"],summary:"\u5F53\u65E5\u5206\u65F6",argShape:"positional",positional:Ln,invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new c("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk timeline <code>");return n.quotes.timeline(o)}},{path:["codes","cn"],alias:["codes"],summary:"\u4EE3\u7801\u5217\u8868(market: a/hk/us/fund\uFF1B--simple\uFF1B--board sh/sz/bj/kc/cy)",argShape:"positional",positional:[{name:"market",required:!0,enum:["a","hk","us","fund"]}],options:[{flag:"simple",type:"boolean",desc:"\u53BB\u524D\u7F00"},{flag:"board",field:"market",type:"string",desc:"\u677F\u5757 sh/sz/bj/kc/cy(\u4EC5A\u80A1)"}],invoke:async(n,t)=>{let o=t.positional[0],e={};if(t.options.simple===!0&&(e.simple=!0),t.options.board!==void 0){if(o!=="a")throw new c("--board \u4EC5\u652F\u6301 A \u80A1(market=a)","\u53EF\u9009: sh / sz / bj / kc / cy");e.market=t.options.board}switch(o){case"a":return m(n,["codes","cn"],[e]);case"us":return m(n,["codes","us"],[e]);case"hk":return n.codes.hk();case"fund":return n.codes.fund();default:throw new c(`\u672A\u77E5\u5E02\u573A: ${o}`,"\u53EF\u9009: a / hk / us / fund")}}},{path:["calendar","marketStatus"],alias:["status"],summary:"\u5E02\u573A\u72B6\u6001(a/hk/us\uFF0C\u9ED8\u8BA4 a)",argShape:"positional",positional:[{name:"market",upper:!0,enum:I}],invoke:async(n,t)=>{let o=t.positional[0],e=o?o.toUpperCase():"A";return n.calendar.marketStatus(e)}},{path:["marketEvent","ztPool"],alias:["ztpool"],summary:"\u6DA8\u505C\u80A1\u6C60 zt/yesterday/strong/sub_new/broken/dt(--date)",argShape:"positional",positional:[{name:"type",enum:T}],options:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD"}],invoke:async(n,t)=>{let o=t.positional[0],e=t.options.date;return n.marketEvent.ztPool(o,e)}},{path:["call"],alias:["call"],summary:"\u539F\u59CB\u76F4\u901A\uFF1A\u8C03\u7528\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5\uFF08--args \u4F20 JSON \u5B9E\u53C2\u6570\u7EC4\uFF09",argShape:"positional",positional:[{name:"method",required:!0}],options:[{flag:"args",type:"string",desc:`JSON \u5B9E\u53C2\u6570\u7EC4\uFF0C\u5982 '[["sh600519"]]'`}],invoke:(n,t)=>{let o=t.positional[0];if(!o)throw new c("call \u7F3A\u5C11\u65B9\u6CD5\u8DEF\u5F84","\u7528\u6CD5: stock-sdk call <ns.method> --args '[...]'");let e=[],r=t.options.args;if(typeof r=="string")try{let p=JSON.parse(r);e=Array.isArray(p)?p:[p]}catch{throw new c("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Gn()).has(o))throw new c(`\u672A\u77E5\u65B9\u6CD5: ${o}`,"\u5F62\u5982 quotes.cn / kline.cn(\u4EC5\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5,\u89C1 stock-sdk --help)");return m(n,o.split("."),e)}}],ln="mcp",zn=[...y,...k];function Gn(){return g.map(n=>n.path.join("."))}function _(n,t){let o=n.positional[0];if(!o)throw new c("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return o}function hn(){let n=new Set(["help","h","version","V","quiet","q","pretty"]);for(let t of zn)for(let o of t.options??[])o.type==="boolean"&&n.add(o.flag);for(let t of C)n.add(t);return n}function kn(n){if(n.length===0)return null;for(let o=Math.min(3,n.length);o>=2;o--){let e=n.slice(0,o).join("."),r=k.find(s=>s.path.join(".")===e);if(r)return{spec:r,rest:n.slice(o)}}for(let o of y)if(o.alias?.includes(n[0]))return{spec:o,rest:n.slice(1)};let t=k.find(o=>o.path.join(".")===n[0]);return t?{spec:t,rest:n.slice(1)}:null}function gn(){let n=["stock-sdk \u2014\u2014 \u80A1\u7968\u884C\u60C5\u547D\u4EE4\u884C\uFF08\u57FA\u4E8E stock-sdk v2 \u547D\u540D\u7A7A\u95F4 API\uFF09","","\u7528\u6CD5:"," stock-sdk <command> [args] [--flags]"," stock-sdk <namespace> <method> [args] [--flags] # \u76F4\u8FBE\u4EFB\u610F\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5","","\u5E38\u7528\u547D\u4EE4:"];for(let o of y){let e=o.alias?.[0]??o.path.join(" ");n.push(` ${e.padEnd(12)} ${o.summary}`)}n.push(" mcp \u542F\u52A8 MCP server (stdio)"),n.push(""),n.push("\u547D\u540D\u7A7A\u95F4\uFF08stock-sdk <ns> <method> ...\uFF09:");let t=[...new Set(k.map(o=>o.path[0]))];return n.push(" "+t.join(" / ")),n.push(""),n.push("\u5168\u5C40\u9009\u9879:"),n.push(" -f, --format json|table|csv \u8F93\u51FA\u683C\u5F0F (\u9ED8\u8BA4 json)"),n.push(" --pretty JSON \u7F29\u8FDB\u7F8E\u5316"),n.push(" --timeout <ms> \u8BF7\u6C42\u8D85\u65F6"),n.push(" -q, --quiet \u9759\u9ED8(\u53EA\u8F93\u51FA\u6570\u636E)"),n.push(" -h, --help \u663E\u793A\u5E2E\u52A9"),n.push(" -V, --version \u663E\u793A\u7248\u672C"),n.push(""),n.push("\u793A\u4F8B:"),n.push(" stock-sdk quote 600519 000858 00700"),n.push(" stock-sdk kline 600519 --period weekly --adjust hfq --limit 30"),n.push(" stock-sdk indicators 600519 --ma 5,10,20 --macd"),n.push(" stock-sdk board industry list --format table"),n.push(" stock-sdk options etf dailyKline 10004336"),n.push(""),n.push("\u8FD0\u884C `stock-sdk <command> --help` \u67E5\u770B\u5355\u6761\u547D\u4EE4\u7528\u6CD5\u3002"),n.join(`
|
|
8
|
+
`)}function Sn(n){let t=n.alias?.[0]??n.path.join(" "),o=[`${t} \u2014\u2014 ${n.summary}`,""],e=(n.positional??[]).map(r=>{let s=r.required?`<${r.name}>`:`[${r.name}]`;return r.variadic?`${s}...`:s}).join(" ");if(o.push(`\u7528\u6CD5: stock-sdk ${t}${e?" "+e:""} [--flags]`),n.options?.length){o.push(""),o.push("\u9009\u9879:");for(let r of n.options){let s=r.enum?` (${r.enum.join("/")})`:"";o.push(` --${r.flag.padEnd(12)} ${r.desc}${s}`)}}return o.join(`
|
|
9
|
+
`)}function yn(n,t=new Set){let o=[],e={},r=!1,s=(i,a)=>{let u=e[i];if(u===void 0){e[i]=a;return}if(typeof a!="string"){e[i]=a;return}Array.isArray(u)?u.push(a):typeof u=="string"?e[i]=[u,a]:e[i]=a},p=i=>i!==void 0&&(i==="-"||!i.startsWith("-")||/^-\d/.test(i)),d=(i,a)=>{if(t.has(i))return s(i,!0),a;let u=n[a+1];return p(u)?(s(i,u),a+1):(s(i,!0),a)};for(let i=0;i<n.length;i++){let a=n[i];if(r){o.push(a);continue}if(a==="--"){r=!0;continue}if(a.startsWith("--")&&a.length>2){let u=a.slice(2),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else if(a.startsWith("-")&&a.length>1&&!Wn(a)){let u=a.slice(1),f=u.indexOf("=");f>=0?s(u.slice(0,f),u.slice(f+1)):i=d(u,i)}else o.push(a)}return{positional:o,options:e}}function Wn(n){return/^-\d/.test(n)}var Yn=hn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
|
|
10
|
+
`)});function Bn(){return"2.0.0"}function Qn(n){let t=n.format??n.f,o=t==="table"||t==="csv"?t:"json",e;if(typeof n.timeout=="string"||typeof n.timeout=="number"){let r=Number(n.timeout);!Number.isNaN(r)&&r>0&&(e=r)}return{format:o,pretty:n.pretty===!0,quiet:n.quiet===!0||n.q===!0,help:n.help===!0||n.h===!0,version:n.version===!0||n.V===!0,timeout:e}}async function Xn(){try{return(await import("./mcp.js")).startMcpServer(),0}catch(n){let t=n instanceof Error?n.message:String(n);return process.stderr.write(`stock-sdk: \u65E0\u6CD5\u542F\u52A8 MCP server: ${t}
|
|
11
|
+
`),1}}async function Zn(n){let t="json";try{let o=yn(n,Yn),e=Qn(o.options);if(t=e.format,e.version)return process.stdout.write(Bn()+`
|
|
12
|
+
`),0;if(o.positional.length===0)return process.stdout.write(gn()+`
|
|
13
|
+
`),0;if(o.positional[0]===ln)return e.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
|
|
13
14
|
|
|
14
15
|
\u7528\u6CD5: stock-sdk mcp
|
|
15
16
|
\u73AF\u5883\u53D8\u91CF: STOCK_SDK_MCP_TOOLS=core|full|<\u9017\u53F7\u5206\u9694\u5DE5\u5177\u540D>\uFF08\u9ED8\u8BA4 core\uFF09
|
|
16
|
-
`),0):await
|
|
17
|
-
`),0;let
|
|
18
|
-
`);let i=
|
|
19
|
-
`),0}catch(o){let e=
|
|
20
|
-
`)
|
|
17
|
+
`),0):await Xn();let r=kn(o.positional);if(!r)throw new c(`\u672A\u77E5\u547D\u4EE4 "${o.positional.join(" ")}"`,"\u8FD0\u884C `stock-sdk --help` \u67E5\u770B\u53EF\u7528\u547D\u4EE4");if(e.help)return process.stdout.write(Sn(r.spec)+`
|
|
18
|
+
`),0;let s=new M(e.timeout!==void 0?{timeout:e.timeout}:{}),p={positional:r.rest,options:o.options},d=await W(s,r.spec,p);Z(d)&&!e.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
|
|
19
|
+
`);let i=X(d,e.format,e.pretty);return i.length>0&&process.stdout.write(i+`
|
|
20
|
+
`),0}catch(o){let e=V(o,t);return process.stderr.write(e.text+`
|
|
21
|
+
`),F(o)}}Zn(process.argv.slice(2)).then(n=>{process.exitCode=n},n=>{let t=n instanceof Error?n.message:String(n);process.stderr.write(`stock-sdk: ${t}
|
|
21
22
|
`),process.exitCode=1});
|
package/dist/errors.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AbortedError, H as HttpError, I as InvalidArgumentError, f as InvalidSymbolError, N as NotFoundError, b as RequestError, S as SdkError, c as SdkErrorCode, U as UpstreamEmptyError, e as UpstreamError, h as attachErrorMetadata, g as getSdkErrorCode, i as isSdkError, n as normalizeRequestError } from './index-
|
|
1
|
+
export { A as AbortedError, H as HttpError, I as InvalidArgumentError, f as InvalidSymbolError, N as NotFoundError, b as RequestError, S as SdkError, c as SdkErrorCode, U as UpstreamEmptyError, e as UpstreamError, h as attachErrorMetadata, g as getSdkErrorCode, i as isSdkError, n as normalizeRequestError } from './index-mlzPfoON.cjs';
|
package/dist/errors.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AbortedError, H as HttpError, I as InvalidArgumentError, f as InvalidSymbolError, N as NotFoundError, b as RequestError, S as SdkError, c as SdkErrorCode, U as UpstreamEmptyError, e as UpstreamError, h as attachErrorMetadata, g as getSdkErrorCode, i as isSdkError, n as normalizeRequestError } from './index-
|
|
1
|
+
export { A as AbortedError, H as HttpError, I as InvalidArgumentError, f as InvalidSymbolError, N as NotFoundError, b as RequestError, S as SdkError, c as SdkErrorCode, U as UpstreamEmptyError, e as UpstreamError, h as attachErrorMetadata, g as getSdkErrorCode, i as isSdkError, n as normalizeRequestError } from './index-mlzPfoON.js';
|
|
@@ -191,6 +191,18 @@ interface CircuitBreakerOptions {
|
|
|
191
191
|
resetTimeout?: number;
|
|
192
192
|
/** 半开状态允许的探测请求数,默认 1 */
|
|
193
193
|
halfOpenRequests?: number;
|
|
194
|
+
/**
|
|
195
|
+
* 半开在途探测名额的失联回收阈值(毫秒),默认 `max(resetTimeout * 4, 120_000)`。
|
|
196
|
+
*
|
|
197
|
+
* Review R3-8:此前回收阈值硬复用 resetTimeout(默认 30s,恰等于请求默认
|
|
198
|
+
* 超时 DEFAULT_TIMEOUT),合法慢探测(单次近超时、或含重试预算 ~4×30s)的
|
|
199
|
+
* 名额会被中途回收 → 半开限流被击穿。独立化后默认值覆盖「默认超时 × 默认
|
|
200
|
+
* 重试(maxRetries 3 → 至多 4 次尝试 ≈ 120s + 退避)」的探测预算;
|
|
201
|
+
* resetTimeout 调大时按 4 倍跟随,保证回收阈值始终明显大于单探测生命周期。
|
|
202
|
+
* 仅用于兜底「调用方异常路径漏配对 / 把 canRequest 当只读探询」的失联名额,
|
|
203
|
+
* 不影响正常配对释放。
|
|
204
|
+
*/
|
|
205
|
+
probeRecycleTimeout?: number;
|
|
194
206
|
/** 状态变化回调 */
|
|
195
207
|
onStateChange?: (from: CircuitState, to: CircuitState) => void;
|
|
196
208
|
}
|