stock-sdk 2.2.2 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +7 -2
  2. package/dist/{adapters-BiH4keVd.d.cts → adapters-CZUNRbxi.d.cts} +29 -1
  3. package/dist/{adapters-BiH4keVd.d.ts → adapters-CZUNRbxi.d.ts} +29 -1
  4. package/dist/cache.cjs +1 -1
  5. package/dist/cache.d.cts +35 -3
  6. package/dist/cache.d.ts +35 -3
  7. package/dist/cache.js +1 -1
  8. package/dist/chip-BbA23rr1.d.cts +113 -0
  9. package/dist/chip-BbA23rr1.d.ts +113 -0
  10. package/dist/chunk-46ECBWOQ.cjs +1 -0
  11. package/dist/chunk-4RN7AVFQ.js +1 -0
  12. package/dist/chunk-6FZNYDNN.cjs +1 -0
  13. package/dist/chunk-6MCPZDKN.cjs +1 -0
  14. package/dist/chunk-H5FDXQRK.js +1 -0
  15. package/dist/chunk-HKREKO2F.js +1 -0
  16. package/dist/chunk-LDYRNH4X.cjs +1 -0
  17. package/dist/chunk-OPCBE3NR.js +1 -0
  18. package/dist/chunk-R7M3BHS4.cjs +1 -0
  19. package/dist/chunk-SMCYQ6NL.js +1 -0
  20. package/dist/chunk-USZUOBM2.cjs +1 -0
  21. package/dist/chunk-VKXPLWPL.js +1 -0
  22. package/dist/chunk-W625VPPB.js +1 -0
  23. package/dist/chunk-WJOFTWZL.cjs +1 -0
  24. package/dist/cli.cjs +16 -16
  25. package/dist/cli.js +16 -16
  26. package/dist/index.cjs +1 -1
  27. package/dist/index.d.cts +24 -7
  28. package/dist/index.d.ts +24 -7
  29. package/dist/index.js +1 -1
  30. package/dist/indicators.cjs +1 -1
  31. package/dist/indicators.d.cts +1 -0
  32. package/dist/indicators.d.ts +1 -0
  33. package/dist/indicators.js +1 -1
  34. package/dist/mcp.cjs +83 -5
  35. package/dist/mcp.d.cts +29 -2
  36. package/dist/mcp.d.ts +29 -2
  37. package/dist/mcp.js +83 -5
  38. package/dist/screener.cjs +1 -1
  39. package/dist/screener.d.cts +51 -16
  40. package/dist/screener.d.ts +51 -16
  41. package/dist/screener.js +1 -1
  42. package/dist/{sdk-CmYFd7V2.d.ts → sdk-DGgSDZRx.d.ts} +200 -21
  43. package/dist/{sdk-BOfyUDzu.d.cts → sdk-RzQ-drS4.d.cts} +200 -21
  44. package/dist/signals.d.cts +3 -42
  45. package/dist/signals.d.ts +3 -42
  46. package/dist/symbols.cjs +1 -1
  47. package/dist/symbols.d.cts +2 -2
  48. package/dist/symbols.d.ts +2 -2
  49. package/dist/symbols.js +1 -1
  50. package/dist/types-7n5rSHbd.d.cts +42 -0
  51. package/dist/types-7n5rSHbd.d.ts +42 -0
  52. package/package.json +2 -1
  53. package/dist/chunk-3VUFYFFD.js +0 -1
  54. package/dist/chunk-6ZSZEHZW.js +0 -1
  55. package/dist/chunk-C4CA7QBB.cjs +0 -1
  56. package/dist/chunk-DU7MCVLJ.js +0 -1
  57. package/dist/chunk-EDUJJOAJ.js +0 -1
  58. package/dist/chunk-F3KZXCVO.js +0 -1
  59. package/dist/chunk-JP3ZPNWP.cjs +0 -1
  60. package/dist/chunk-KKGWFS2M.cjs +0 -1
  61. package/dist/chunk-LCX5Q36O.js +0 -1
  62. package/dist/chunk-T5CH7H3X.cjs +0 -1
  63. package/dist/chunk-TVIEKKDQ.cjs +0 -1
  64. package/dist/chunk-USK6JHLG.cjs +0 -1
  65. package/dist/chunk-WCBK5KYA.cjs +0 -1
  66. package/dist/chunk-ZZ2IBUMV.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');function I(e){if(e.startsWith("92")||/^[48]/.test(e))return"BSE";let t=e[0];return t==="6"||t==="5"||t==="9"?"SSE":"SZSE"}var y={SHFE:{market:"CN",exchange:"SHFE"},DCE:{market:"CN",exchange:"DCE"},CZCE:{market:"CN",exchange:"CZCE"},INE:{market:"CN",exchange:"INE"},CFFEX:{market:"CN",exchange:"CFFEX"},GFEX:{market:"CN",exchange:"GFEX"},COMEX:{market:"GLOBAL",exchange:"COMEX"},NYMEX:{market:"GLOBAL",exchange:"NYMEX"},CBOT:{market:"GLOBAL",exchange:"CBOT"},LME:{market:"GLOBAL",exchange:"LME"}};function A(e){let t=e.match(/^([A-Za-z]+)/);return(t?t[1]:e).toUpperCase()}var H={market:"CN",exchange:"CSI",secidPrefix:"2"},D=[/^93\d{4}$/,/^H\d{5}$/],U={HSHCI:{market:"HK",exchange:"HSI",secidPrefix:"124"},HSI:{market:"HK",exchange:"HSI",secidPrefix:"100",tencent:"hkHSI",collision:!0},HSCEI:{market:"HK",exchange:"HSI",secidPrefix:"100",tencent:"hkHSCEI",collision:!0},HSTECH:{market:"HK",exchange:"HSI",tencent:"hkHSTECH",collision:!0},DJI:{market:"US",exchange:"US",secidPrefix:"100",eastmoneyCode:"DJIA",tencent:"usDJI",collision:!0},INX:{market:"US",exchange:"US",secidPrefix:"100",eastmoneyCode:"SPX",tencent:"usINX",collision:!0},IXIC:{market:"US",exchange:"US",secidPrefix:"100",eastmoneyCode:"NDX",tencent:"usIXIC",collision:!0},GDAXI:{market:"GLOBAL",exchange:"DAX",secidPrefix:"100"}},R=[[H.exchange,H.market],...Object.values(U).map(e=>[e.exchange,e.market])];function E(e){let t=e.toUpperCase();if(D.some(i=>i.test(t)))return{...H,code:t};let c=U[t];return c?{...c,code:t}:void 0}function V(e){let t=e.indexOf(".");if(t<=0)return;let c=e.slice(0,t),i=e.slice(t+1).toUpperCase();for(let[n,d]of Object.entries(U))if(d.secidPrefix===c&&(_nullishCoalesce(d.eastmoneyCode, () => (n)))===i)return{...d,code:n}}var N={sh:{market:"CN",exchange:"SSE"},sz:{market:"CN",exchange:"SZSE"},bj:{market:"CN",exchange:"BSE"},hk:{market:"HK",exchange:"HKEX"},us:{market:"US",exchange:"US"}},L=Object.keys(N),K={0:{market:"CN",exchange:"SZSE"},1:{market:"CN",exchange:"SSE"},116:{market:"HK",exchange:"HKEX"},105:{market:"US",exchange:"NASDAQ"},106:{market:"US",exchange:"NYSE"},107:{market:"US",exchange:"AMEX"}},F={0:["SZSE","BSE"]},Z={SSE:"CN",SZSE:"CN",BSE:"CN",HKEX:"HK",NASDAQ:"US",NYSE:"US",AMEX:"US",US:"US",...Object.fromEntries(R),...Object.fromEntries(Object.values(y).map(e=>[e.exchange,e.market]))};function _(e,t,c,i){let n=_nullishCoalesce(i, () => ([t.exchange])),d=e.toLowerCase();for(let a of L){if(!d.startsWith(a)||e.length<=a.length)continue;let m=e.slice(a.length);if(!/^\d+$/.test(m))continue;let f=N[a];if(f.market!==t.market||!n.includes(f.exchange))throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${c} (prefix '${a}' conflicts with resolved ${t.market}/${t.exchange})`);return{code:m,exchange:f.exchange}}return{code:e,exchange:t.exchange}}function b(e,t){let c=typeof e=="string"?{code:e}:{...e},i=typeof e=="string"?e:e.code,n=String(_nullishCoalesce(c.code, () => (""))).trim(),d=_nullishCoalesce(c.market, () => (_optionalChain([t, 'optionalAccess', _2 => _2.market]))),a=_nullishCoalesce(c.assetType, () => (_optionalChain([t, 'optionalAccess', _3 => _3.assetType]))),m=_nullishCoalesce(c.exchange, () => (_optionalChain([t, 'optionalAccess', _4 => _4.exchange])));if(!n)throw new (0, _chunk4Q7UQ5Q3cjs.f)(String(i));let f=(r,o,s,S,T,h={})=>{if(d&&d!==r)throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (market hint '${d}' conflicts with resolved market ${r})`);if(m){let l=Z[m];if(l&&l!==r)throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (exchange hint '${m}' belongs to market ${l}, conflicts with resolved market ${r})`);if(h.exchange&&m!==o)throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (exchange hint '${m}' conflicts with resolved exchange ${o})`)}if(a&&a!==S){if(h.assetType)throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (assetType hint '${a}' conflicts with resolved assetType ${S})`);if(a==="board"||a==="futures")throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (assetType hint '${a}' conflicts with a ${S}-shaped code)`)}return{market:r,exchange:_nullishCoalesce(m, () => (o)),assetType:_nullishCoalesce(a, () => (S)),code:s,variety:T,input:i}},w=r=>f(r.market,r.exchange,r.code,"index",void 0,{exchange:!0,assetType:!0}),X=(r,o)=>o==="HK"&&/^\d+$/.test(r)?r.padStart(5,"0"):o==="US"?r.toUpperCase():r;if(n.includes(".")){let r=n.indexOf("."),o=n.slice(0,r),s=n.slice(r+1),S=o.toUpperCase(),T=s.toUpperCase(),h=E(s);if(h&&h.secidPrefix===o)return w(h);if(/^\d+$/.test(o)&&K[o]){let g=K[o],p=F[o],C=_(s,g,i,p),M=C.exchange,O=!0;if(p&&C.code===s&&/^\d+$/.test(C.code)){let P=I(C.code);p.includes(P)&&(M=P),O=!1}return f(g.market,M,X(C.code,g.market),"stock",void 0,{exchange:O})}let l=s.toLowerCase(),k=Object.prototype.hasOwnProperty.call(N,l)?N[l]:void 0;if(k){if(k.market==="CN"||k.market==="HK"){let p=E(o);if(p&&!p.collision)throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (special index code '${p.code}' conflicts with exchange suffix '${s}'; use bare '${p.code}' or secid '${p.secidPrefix}.${p.code}')`)}let g=_(o,k,i);return f(k.market,g.exchange,X(g.code,k.market),"stock",void 0,{exchange:g.exchange!=="US"})}if(y[S]){let g=y[S];return f(g.market,g.exchange,T,"futures",A(s),{exchange:!0,assetType:!0})}if(o==="90")return f("CN","SSE",s,"board",void 0,{exchange:!0,assetType:!0})}let G=n.toLowerCase();for(let r of L)if(G.startsWith(r)&&n.length>r.length){let o=n.slice(r.length),s=N[r],S=n.startsWith(r)&&(/^[A-Z][A-Za-z0-9.\-]*$/.test(o)||/^[a-z]{3,}$/.test(o));if(s.market==="CN"?/^\d+$/.test(o):/^\d+$/.test(o)||S){let h=E(o);if(h&&h.collision&&h.market===s.market&&a!=="stock")return w(h);if((s.market==="CN"||s.market==="HK")&&h&&!h.collision)throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (special index code '${h.code}' conflicts with exchange prefix '${r}'; use bare '${h.code}' or secid '${h.secidPrefix}.${h.code}')`);let l=s.market==="HK"?o.toUpperCase().padStart(5,"0"):s.market==="US"?o.toUpperCase():o;return f(s.market,s.exchange,l,"stock",void 0,{exchange:s.exchange!=="US"})}}let $=E(n);if($&&(!$.collision||d===$.market&&a!=="stock"))return w($);if(/^\d+$/.test(n))return d==="US"?f("US","US",n,"stock"):d==="CN"?f("CN",I(n),n,"stock"):d==="HK"||n.length===5||n.length===4?f("HK","HKEX",n.padStart(5,"0"),"stock",void 0,{exchange:!0}):f("CN",I(n),n,"stock");if((a==="futures"||d==="GLOBAL")&&/[A-Za-z]/.test(n)){let r=m;if(!r&&d==="GLOBAL")throw new (0, _chunk4Q7UQ5Q3cjs.f)(`${i} (GLOBAL futures require an explicit exchange, e.g. { exchange: 'COMEX' })`);let o=r?_optionalChain([y, 'access', _5 => _5[String(r).toUpperCase()], 'optionalAccess', _6 => _6.market]):void 0;return f(_nullishCoalesce(_nullishCoalesce(d, () => (o)), () => ("CN")),_nullishCoalesce(r, () => ("SHFE")),n.toUpperCase(),"futures",A(n),{assetType:!0})}if(/^[A-Za-z][A-Za-z.\-]*$/.test(n))return f("US","US",n.toUpperCase(),"stock");throw new (0, _chunk4Q7UQ5Q3cjs.f)(String(i))}function j(e){try{return b(e).market}catch (e2){return}}var B={SSE:"1",SZSE:"0",BSE:"0",HKEX:"116",NASDAQ:"105",NYSE:"106",AMEX:"107",US:"105"},v={SSE:"sh",SZSE:"sz",BSE:"bj"};function z(e){if(e.assetType==="board"||e.assetType==="futures"||e.assetType==="option")throw new (0, _chunk4Q7UQ5Q3cjs.e)(`Tencent quote symbol does not support assetType '${e.assetType}'`,{assetType:e.assetType,code:e.code});if(e.assetType==="index"){let t=E(e.code);if(_optionalChain([t, 'optionalAccess', _7 => _7.tencent])&&t.exchange===e.exchange)return t.tencent}switch(e.market){case"CN":{let t=v[e.exchange];if(!t)throw new (0, _chunk4Q7UQ5Q3cjs.e)(`Cannot map to Tencent symbol: unsupported CN exchange '${e.exchange}'`,{exchange:e.exchange,code:e.code});return`${t}${e.code}`}case"HK":if(!/^\d+$/.test(e.code))throw new (0, _chunk4Q7UQ5Q3cjs.e)(`Cannot map to Tencent symbol: HK code '${e.code}' is not numeric`,{market:e.market,code:e.code});return`hk${e.code.padStart(5,"0")}`;case"US":return`us${e.code}`;default:throw new (0, _chunk4Q7UQ5Q3cjs.e)(`Cannot map to Tencent symbol: unsupported market '${e.market}'`,{market:e.market,code:e.code})}}function q(e){if(e.assetType==="board")return`90.${e.code}`;if(e.assetType==="futures"||e.assetType==="option")throw new (0, _chunk4Q7UQ5Q3cjs.e)(`Eastmoney secid for assetType '${e.assetType}' uses a separate scheme; use the dedicated futures/options provider instead of toEastmoneySecid`,{assetType:e.assetType,exchange:e.exchange,code:e.code});if(e.assetType==="index"){let c=E(e.code);if(c&&c.exchange===e.exchange){if(c.secidPrefix)return`${c.secidPrefix}.${_nullishCoalesce(c.eastmoneyCode, () => (c.code))}`;throw new (0, _chunk4Q7UQ5Q3cjs.e)(`Eastmoney has no quote for special index '${c.code}' (Tencent-only); use quotes.hk/quotes.us instead of kline for this index`,{code:c.code,exchange:c.exchange})}}if(e.market==="HK")return`116.${e.code.padStart(5,"0")}`;let t=B[e.exchange];if(!t)throw new (0, _chunk4Q7UQ5Q3cjs.e)(`Cannot map to Eastmoney secid: unsupported exchange '${e.exchange}' (market=${e.market})`,{exchange:e.exchange,market:e.market,code:e.code});return`${t}.${e.code}`}function Y(e){return e.code}function W(e,t){let c=[],i=[],n=new Set;for(let d of e)try{let a=z(b(d,{market:t}));n.has(a)||(n.add(a),c.push(a))}catch(a){i.push({code:d,reason:a instanceof Error?a.message:String(a)})}return{keys:c,invalid:i}}exports.a = I; exports.b = y; exports.c = A; exports.d = E; exports.e = V; exports.f = b; exports.g = j; exports.h = B; exports.i = z; exports.j = q; exports.k = Y; exports.l = W;
@@ -0,0 +1 @@
1
+ import{a as h}from"./chunk-SMCYQ6NL.js";var d=class{constructor(e){this.cache=new h(e)}get(e){return this.cache.get(e)}set(e,r,a){this.cache.set(e,r,a)}delete(e){this.cache.delete(e)}clear(){this.cache.clear()}},l=new WeakMap;async function f(n,e,r,a){let c=await n.get(e);if(c!==void 0)return c;let t=l.get(n);t||(t=new Map,l.set(n,t));let o=t.get(e);if(o)return o;let s=(async()=>{let i=await r();return i!==void 0&&await n.set(e,i,a),i})().finally(()=>{t.delete(e)});return t.set(e,s),s}export{d as a,f as b};
@@ -0,0 +1 @@
1
+ function d(e,t=3){let r=Math.pow(10,t);return Math.round(e*r)/r}var A=class{constructor(t,r){this.sum=0;this.comp=0;this.count=0;this.data=t,this.period=r}advance(t){let r=this.data[t];if(r!==null&&(this.add(r),this.count++),t>=this.period){let u=this.data[t-this.period];u!==null&&(this.add(-u),this.count--)}Number.isFinite(this.sum)||this.refill(t)}get value(){return this.sum}get nonNullCount(){return this.count}add(t){let r=t-this.comp,u=this.sum+r;this.comp=u-this.sum-r,this.sum=u}refill(t){this.sum=0,this.comp=0;let r=Math.max(0,t-this.period+1);for(let u=r;u<=t;u++){let c=this.data[u];c!==null&&this.add(c)}}};function j(e,t,r){let u=new Array(e.length),c=new A(e,t);for(let s=0;s<e.length;s++)c.advance(s),u[s]=s>=t-1&&c.nonNullCount===t?d(c.value/t,r):null;return u}function D(e,t,r){let u=[],c=2/(t+1),s=null,n=!1;for(let o=0;o<e.length;o++){if(o<t-1){u.push(null);continue}if(!n){let i=0,a=0;for(let m=o-t+1;m<=o;m++)e[m]!==null&&(i+=e[m],a++);a===t&&(s=i/t,n=!0),u.push(s!==null?d(s,r):null);continue}let l=e[o];l===null?u.push(s!==null?d(s,r):null):(s=c*l+(1-c)*s,u.push(d(s,r)))}return u}function le(e,t,r){let u=[],c=Array.from({length:t},(n,o)=>o+1),s=c.reduce((n,o)=>n+o,0);for(let n=0;n<e.length;n++){if(n<t-1){u.push(null);continue}let o=0,l=!0;for(let i=0;i<t;i++){let a=e[n-t+1+i];if(a===null){l=!1;break}o+=a*c[i]}u.push(l?d(o/s,r):null)}return u}function J(e,t={}){let{periods:r=[5,10,20,30,60,120,250],type:u="sma",decimals:c}=t,s=u==="ema"?D:u==="wma"?le:j,n={};for(let o of r)n[`ma${o}`]=s(e,o,c);return e.map((o,l)=>{let i={};for(let a of r)i[`ma${a}`]=n[`ma${a}`][l];return i})}function F(e,t={}){let{short:r=12,long:u=26,signal:c=9,decimals:s}=t,n=D(e,r,s),o=D(e,u,s),l=e.map((a,m)=>n[m]===null||o[m]===null?null:n[m]-o[m]),i=D(l,c,s);return e.map((a,m)=>({dif:l[m]!==null?d(l[m],s):null,dea:i[m],macd:l[m]!==null&&i[m]!==null?d((l[m]-i[m])*2,s):null}))}function ae(e,t,r){let u=new Array(e.length),c=e.map(o=>o===null?null:o*o),s=new A(e,t),n=new A(c,t);for(let o=0;o<e.length;o++){s.advance(o),n.advance(o);let l=r[o];if(o<t-1||l===null){u[o]=null;continue}if(s.nonNullCount!==t){u[o]=null;continue}let i=n.value-2*l*s.value+t*l*l;u[o]=Math.sqrt(Math.max(0,i)/t)}return u}function q(e,t={}){let{period:r=20,stdDev:u=2,decimals:c}=t,s=j(e,r,c),n=ae(e,r,s);return e.map((o,l)=>{if(s[l]===null||n[l]===null)return{mid:null,upper:null,lower:null,bandwidth:null};let i=s[l]+u*n[l],a=s[l]-u*n[l],m=s[l]!==0?d((i-a)/s[l]*100,c):null;return{mid:s[l],upper:d(i,c),lower:d(a,c),bandwidth:m}})}function G(e,t={}){let{period:r=9,kPeriod:u=3,dPeriod:c=3,decimals:s}=t,n=[],o=50,l=50,i=[],a=0,m=[],f=0,h=0;for(let b=0;b<e.length;b++){let p=e[b];if(p.high===null||p.low===null)h++;else{for(;i.length>a&&e[i[i.length-1]].high<=p.high;)i.pop();for(i.push(b);m.length>f&&e[m[m.length-1]].low>=p.low;)m.pop();m.push(b)}let g=b-r+1;if(b>=r){let R=e[b-r];(R.high===null||R.low===null)&&h--}for(;i.length>a&&i[a]<g;)a++;for(;m.length>f&&m[f]<g;)f++;if(b<r-1){n.push({k:null,d:null,j:null});continue}let y=i.length>a?e[i[a]].high:-1/0,w=m.length>f?e[m[f]].low:1/0,v=e[b].close;if(h>0||v===null||y===w){n.push({k:null,d:null,j:null});continue}let S=(v-w)/(y-w)*100;o=(u-1)/u*o+1/u*S,l=(c-1)/c*l+1/c*o;let L=3*o-2*l;n.push({k:d(o,s),d:d(l,s),j:d(L,s)})}return n}function U(e,t={}){let{periods:r=[6,12,24],decimals:u}=t,c=[null];for(let n=1;n<e.length;n++)e[n]===null||e[n-1]===null?c.push(null):c.push(e[n]-e[n-1]);let s={};for(let n of r){let o=[],l=0,i=0;for(let a=0;a<e.length;a++){if(a<n){o.push(null),c[a]!==null&&(c[a]>0?l+=c[a]:i+=Math.abs(c[a]));continue}if(a===n)c[a]!==null&&(c[a]>0?l+=c[a]:i+=Math.abs(c[a])),l=l/n,i=i/n;else{let m=c[a]??0,f=m>0?m:0,h=m<0?Math.abs(m):0;l=(l*(n-1)+f)/n,i=(i*(n-1)+h)/n}if(i===0)o.push(100);else if(l===0)o.push(0);else{let m=l/i;o.push(d(100-100/(1+m),u))}}s[`rsi${n}`]=o}return e.map((n,o)=>{let l={};for(let i of r)l[`rsi${i}`]=s[`rsi${i}`][o];return l})}function Y(e,t={}){let{periods:r=[6,10],decimals:u}=t,c={};for(let s of r){let n=[];for(let o=0;o<e.length;o++){if(o<s-1){n.push(null);continue}let l=-1/0,i=1/0,a=!0;for(let h=o-s+1;h<=o;h++){if(e[h].high===null||e[h].low===null){a=!1;break}l=Math.max(l,e[h].high),i=Math.min(i,e[h].low)}let m=e[o].close;if(!a||m===null||l===i){n.push(null);continue}let f=(l-m)/(l-i)*100;n.push(d(f,u))}c[`wr${s}`]=n}return e.map((s,n)=>{let o={};for(let l of r)o[`wr${l}`]=c[`wr${l}`][n];return o})}function z(e,t={}){let{periods:r=[6,12,24],decimals:u}=t,c={};for(let s of r){let n=j(e,s,u),o=[];for(let l=0;l<e.length;l++)if(e[l]===null||n[l]===null||n[l]===0)o.push(null);else{let i=(e[l]-n[l])/n[l]*100;o.push(d(i,u))}c[`bias${s}`]=o}return e.map((s,n)=>{let o={};for(let l of r)o[`bias${l}`]=c[`bias${l}`][n];return o})}function Q(e,t={}){let{period:r=14,decimals:u}=t,c=[],s=e.map(n=>n.high===null||n.low===null||n.close===null?null:(n.high+n.low+n.close)/3);for(let n=0;n<e.length;n++){if(n<r-1){c.push({cci:null});continue}let o=0,l=0;for(let f=n-r+1;f<=n;f++)s[f]!==null&&(o+=s[f],l++);if(l!==r||s[n]===null){c.push({cci:null});continue}let i=o/r,a=0;for(let f=n-r+1;f<=n;f++)a+=Math.abs(s[f]-i);let m=a/r;if(m===0)c.push({cci:0});else{let f=(s[n]-i)/(.015*m);c.push({cci:d(f,u)})}}return c}function P(e,t={}){let{period:r=14,decimals:u}=t,c=Number.isInteger(r)&&r>=1,s=[],n=[];for(let l=0;l<e.length;l++){let{high:i,low:a,close:m}=e[l];if(i===null||a===null||m===null){n.push(null);continue}if(l===0)n.push(i-a);else{let f=e[l-1].close;if(f===null)n.push(i-a);else{let h=i-a,b=Math.abs(i-f),p=Math.abs(a-f);n.push(Math.max(h,b,p))}}}let o=null;for(let l=0;l<e.length;l++){if(!c||l<r-1){s.push({tr:n[l]!==null?d(n[l],u):null,atr:null});continue}if(o===null){let i=0,a=0;for(let m=l-r+1;m<=l;m++)n[m]!==null&&(i+=n[m],a++);a===r&&(o=i/r)}else n[l]!==null&&(o=(o*(r-1)+n[l])/r);s.push({tr:n[l]!==null?d(n[l],u):null,atr:o!==null?d(o,u):null})}return s}function X(e,t={}){let{maPeriod:r}=t,u=[];if(e.length===0)return u;let c=e[0].volume??0;u.push({obv:c,obvMa:null});for(let s=1;s<e.length;s++){let n=e[s],o=e[s-1];if(n.close===null||o.close===null||n.volume===null||n.volume===void 0){u.push({obv:null,obvMa:null});continue}n.close>o.close?c+=n.volume:n.close<o.close&&(c-=n.volume),u.push({obv:c,obvMa:null})}if(r&&r>0){let s=u.map(o=>o.obv),n=new A(s,r);for(let o=0;o<u.length;o++)n.advance(o),o>=r-1&&n.nonNullCount===r&&(u[o].obvMa=n.value/r)}return u}function Z(e,t={}){let{period:r=12,signalPeriod:u}=t,c=[];for(let s=0;s<e.length;s++){if(s<r){c.push({roc:null,signal:null});continue}let n=e[s].close,o=e[s-r].close;if(n===null||o===null||o===0){c.push({roc:null,signal:null});continue}let l=(n-o)/o*100;c.push({roc:l,signal:null})}if(u&&u>0){let s=c.map(o=>o.roc),n=new A(s,u);for(let o=0;o<c.length;o++)n.advance(o),o>=r+u-1&&n.nonNullCount===u&&(c[o].signal=n.value/u)}return c}function ee(e,t={}){let{period:r=14,adxPeriod:u=r}=t,c=[];if(e.length<2)return e.map(()=>({pdi:null,mdi:null,adx:null,adxr:null}));let s=[],n=[],o=[];for(let p=0;p<e.length;p++){if(p===0){s.push(0),n.push(0),o.push(0),c.push({pdi:null,mdi:null,adx:null,adxr:null});continue}let g=e[p],y=e[p-1];if(g.high===null||g.low===null||g.close===null||y.high===null||y.low===null||y.close===null){s.push(0),n.push(0),o.push(0),c.push({pdi:null,mdi:null,adx:null,adxr:null});continue}let w=g.high-g.low,v=Math.abs(g.high-y.close),S=Math.abs(g.low-y.close);o.push(Math.max(w,v,S));let L=g.high-y.high,R=y.low-g.low;L>R&&L>0?s.push(L):s.push(0),R>L&&R>0?n.push(R):n.push(0),c.push({pdi:null,mdi:null,adx:null,adxr:null})}let l=0,i=0,a=0,m=[];for(let p=1;p<e.length;p++){if(p<r){l+=o[p],i+=s[p],a+=n[p],m.push(0);continue}p===r?(l+=o[p],i+=s[p],a+=n[p]):(l=l-l/r+o[p],i=i-i/r+s[p],a=a-a/r+n[p]);let g=l>0?i/l*100:0,y=l>0?a/l*100:0;c[p].pdi=g,c[p].mdi=y;let w=g+y,v=w>0?Math.abs(g-y)/w*100:0;m.push(v)}let f=0,h=0,b=r+u-1;for(let p=r;p<e.length;p++){if(p<b){f+=m[p-1]||0;continue}if(p===b)f+=m[p-1]||0,h=f/u,c[p].adx=h;else{let g=m[p-1]||0;h=(h*(u-1)+g)/u,c[p].adx=h}}for(let p=b+u;p<e.length;p++){let g=c[p].adx,y=c[p-u]?.adx;g!==null&&y!==null&&(c[p].adxr=(g+y)/2)}return c}function te(e,t={}){let{afStart:r=.02,afIncrement:u=.02,afMax:c=.2}=t,s=[];if(e.length<2)return e.map(()=>({sar:null,trend:null,ep:null,af:null}));let n=0;for(;n<e.length&&(e[n].high===null||e[n].low===null);)n++;if(n>=e.length-1)return e.map(()=>({sar:null,trend:null,ep:null,af:null}));let o=1,l=r,i=e[n].high,a=e[n].low,m=e[n],f=e[n+1];m.close!==null&&f.close!==null&&f.close<m.close&&(o=-1,i=m.low,a=m.high);for(let h=0;h<=n;h++)s.push({sar:null,trend:null,ep:null,af:null});for(let h=n+1;h<e.length;h++){let b=e[h],p=e[h-1];if(b.high===null||b.low===null||p.high===null||p.low===null){s.push({sar:null,trend:null,ep:null,af:null});continue}let g=a+l*(i-a);o===1?(g=Math.min(g,p.low,e[Math.max(n,h-2)]?.low??p.low),b.low<g?(o=-1,g=i,i=b.low,l=r):b.high>i&&(i=b.high,l=Math.min(l+u,c))):(g=Math.max(g,p.high,e[Math.max(n,h-2)]?.high??p.high),b.high>g?(o=1,g=i,i=b.high,l=r):b.low<i&&(i=b.low,l=Math.min(l+u,c))),a=g,s.push({sar:a,trend:o,ep:i,af:l})}return s}function ne(e,t={}){let{emaPeriod:r=20,atrPeriod:u=10,multiplier:c=2}=t,s=[],n=e.map(i=>i.close),o=D(n,r),l=P(e,{period:u});for(let i=0;i<e.length;i++){let a=o[i],m=l[i]?.atr;if(a===null||m===null){s.push({mid:null,upper:null,lower:null,width:null});continue}let f=a+c*m,h=a-c*m,b=a>0?(f-h)/a*100:null;s.push({mid:a,upper:f,lower:h,width:b})}return s}var k=150;function re(e){return e.open!==null&&e.high!==null&&e.low!==null&&e.close!==null}function pe(e){return Number(e.toPrecision(12))}function E(e){return Number(e.toFixed(2))}function ue(e){return{date:e,profitRatio:null,avgCost:null,cost90Low:null,cost90High:null,concentration90:null,cost70Low:null,cost70High:null,concentration70:null}}function fe(e,t={}){let{range:r=120,tail:u,includeHistogram:c=!1,decimals:s=3}=t,n=e.length;if(n===0)return[];let o=u!==void 0?n-Math.min(n,Math.max(0,Math.floor(u))):0,l=c===!0?"last":c||!1,i=[];for(let a=o;a<n;a++){let m=l==="all"||l==="last"&&a===n-1;i.push(he(e,a,r,s,m))}return i}function he(e,t,r,u,c){let s=e[t].date,n=r?Math.max(0,t-r+1):0,o=e.slice(n,Math.max(1,t+1)),l=-1/0,i=1/0,a=!1;for(let R of o)re(R)&&(a=!0,l=Math.max(l,R.high),i=Math.min(i,R.low));if(!a)return ue(s);let m=Math.max(.01,(l-i)/(k-1)),f=new Array(k).fill(0);for(let R of o){if(!re(R))continue;let{open:I,close:x,high:C,low:M}=R,K=(I+x+C+M)/4,B=Math.max(0,Math.min(1,(R.turnoverRate??0)/100||0)),_=O=>Math.min(k-1,Math.max(0,O)),se=_(Math.floor((C-i)/m)),ie=_(Math.ceil((M-i)/m)),V=C===M?k-1:2/(C-M),ce=_(Math.floor((K-i)/m));for(let O=0;O<f.length;O++)f[O]*=1-B;if(C===M)f[ce]+=V*B/2;else for(let O=ie;O<=se;O++){let $=i+m*O;$<=K?f[O]+=Math.abs(K-M)<1e-8?V*B:($-M)/(K-M)*V*B:f[O]+=Math.abs(C-K)<1e-8?V*B:(C-$)/(C-K)*V*B}}let h=new Array(k),b=0;for(let R=0;R<k;R++)h[R]=pe(f[R]),b+=h[R];if(b===0)return ue(s);let p=R=>{let I=0,x=0;for(let C=0;C<k;C++){let M=h[C];if(x+M>R){I=i+C*m;break}x+=M}return I},g=R=>{let I=0;for(let x=0;x<k;x++)R>=i+x*m&&(I+=h[x]);return I/b},y=R=>{let I=p(b*((1-R)/2)),x=p(b*((1+R)/2));return{low:E(I),high:E(x),concentration:I+x===0?0:(x-I)/(I+x)}},w=e[t].close,v=y(.9),S=y(.7),L={date:s,profitRatio:w!==null?d(g(w),u):null,avgCost:E(p(b*.5)),cost90Low:v.low,cost90High:v.high,concentration90:d(v.concentration,u),cost70Low:S.low,cost70High:S.high,concentration70:d(S.concentration,u)};if(c){let R=new Array(k),I=new Array(k);for(let x=0;x<k;x++)R[x]=E(i+m*x),I[x]=d(h[x]/b,6);L.histogram={prices:R,ratios:I}}return L}function W(e,t=0){return e.length===0?t:Math.max(...e)}function oe(e){return{closes:e.map(t=>t.close),ohlcv:e.map(t=>({open:t.open,high:t.high,low:t.low,close:t.close,volume:t.volume}))}}var H={ma:{key:"ma",estimateLookback:e=>{let t=typeof e=="object"?e:{},r=t.periods??[5,10,20,30,60,120,250],u=t.type??"sma";return{bars:W(r,20),emaBased:u==="ema"}},compute:(e,t)=>J(e.closes,typeof t=="object"?t:{})},macd:{key:"macd",recursive:!0,estimateLookback:e=>{let t=typeof e=="object"?e:{},r=t.long??26,u=t.signal??9;return{bars:r*3+u,emaBased:!0}},compute:(e,t)=>F(e.closes,typeof t=="object"?t:{})},boll:{key:"boll",estimateLookback:e=>({bars:typeof e=="object"&&e.period?e.period:20}),compute:(e,t)=>q(e.closes,typeof t=="object"?t:{})},kdj:{key:"kdj",recursive:!0,estimateLookback:e=>({bars:typeof e=="object"&&e.period?e.period:9}),compute:(e,t)=>G(e.ohlcv,typeof t=="object"?t:{})},rsi:{key:"rsi",recursive:!0,estimateLookback:e=>{let t=typeof e=="object"&&e.periods?e.periods:[6,12,24];return{bars:W(t,14)+1}},compute:(e,t)=>U(e.closes,typeof t=="object"?t:{})},wr:{key:"wr",estimateLookback:e=>{let t=typeof e=="object"&&e.periods?e.periods:[6,10];return{bars:W(t,10)}},compute:(e,t)=>Y(e.ohlcv,typeof t=="object"?t:{})},bias:{key:"bias",estimateLookback:e=>{let t=typeof e=="object"&&e.periods?e.periods:[6,12,24];return{bars:W(t,12)}},compute:(e,t)=>z(e.closes,typeof t=="object"?t:{})},cci:{key:"cci",estimateLookback:e=>({bars:typeof e=="object"&&e.period?e.period:14}),compute:(e,t)=>Q(e.ohlcv,typeof t=="object"?t:{})},atr:{key:"atr",recursive:!0,estimateLookback:e=>({bars:typeof e=="object"&&e.period?e.period:14}),compute:(e,t)=>P(e.ohlcv,typeof t=="object"?t:{})},obv:{key:"obv",cumulative:!0,estimateLookback:e=>{let t=typeof e=="object"&&e.maPeriod?e.maPeriod:0;return{bars:Math.max(2,t)}},compute:(e,t)=>X(e.ohlcv,typeof t=="object"?t:{})},roc:{key:"roc",estimateLookback:e=>{let t=typeof e=="object"?e:{},r=t.period??12,u=t.signalPeriod??0;return{bars:r+u}},compute:(e,t)=>Z(e.ohlcv,typeof t=="object"?t:{})},dmi:{key:"dmi",recursive:!0,estimateLookback:e=>{let t=typeof e=="object"?e:{},r=t.period??14,u=t.adxPeriod??r;return{bars:r*2+u}},compute:(e,t)=>ee(e.ohlcv,typeof t=="object"?t:{})},sar:{key:"sar",recursive:!0,estimateLookback:()=>({bars:5}),compute:(e,t)=>te(e.ohlcv,typeof t=="object"?t:{})},kc:{key:"kc",recursive:!0,estimateLookback:e=>{let t=typeof e=="object"?e:{},r=t.emaPeriod??20,u=t.atrPeriod??10;return{bars:Math.max(r*3,u),emaBased:!0}},compute:(e,t)=>ne(e.ohlcv,typeof t=="object"?t:{})}},be=["ma","rsi","wr","bias"];function N(e){let t=null;for(let r of be){let u=e[r];if(Array.isArray(u))(t??(t={...e}))[r]={periods:u};else if(u&&typeof u=="object"&&!("periods"in u)&&typeof u.period=="number"){let{period:c,...s}=u;(t??(t={...e}))[r]={...s,periods:[c]}}}return t??e}function de(e){return T(N(e)).some(t=>H[t].cumulative===!0)}function T(e){return Object.keys(H).filter(t=>!!e[t])}function ge(e){e=N(e);let t=0,r=0,u=!1;for(let s of T(e)){let n=H[s],o=n.estimateLookback(e[s]);t=Math.max(t,o.bars),u||(u=!!o.emaBased),(n.recursive===!0||o.emaBased===!0)&&(r=Math.max(r,o.bars))}return{maxLookback:t,hasEmaBasedIndicator:u,requiredBars:Math.ceil(t*(u?1.5:1.2)),maxRecursiveLookback:r}}function Re(e,t={}){if(e.length===0)return[];t=N(t);let r=oe(e),u=new Map;for(let n of T(t)){let o=H[n];u.set(n,o.compute(r,t[n]))}let c=[],s=[];for(let[n,o]of u)c.push(n),s.push(o);return e.map((n,o)=>{let l={...n},i=l;for(let a=0;a<c.length;a++)i[c[a]]=s[a][o];return l})}export{j as a,D as b,le as c,J as d,F as e,q as f,G as g,U as h,Y as i,z as j,Q as k,P as l,X as m,Z as n,ee as o,te as p,ne as q,fe as r,oe as s,H as t,de as u,T as v,ge as w,Re as x};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});function Ne(a,m){let p,h=m.reduce((c,B)=>{if(!(c==null||typeof c!="object"))return p=c,c[B]},a);if(typeof h=="function")return{fn:h,parent:p}}var L=["qfq","hfq","none"],w=["daily","weekly","monthly"],H=["1","5","15","30","60"],x=["sh","sz","bj","kc","cy"],z=["NASDAQ","NYSE","AMEX"],I= exports.b =["A","HK","US"],g=["north","south"],U= exports.c =["zt","yesterday","strong","sub_new","broken","dt"],D=["1month","3month","6month","1year"],y=["50ETF","300ETF","500ETF","\u79D1\u521B50","\u79D1\u521B\u677F50"],j=["ho","io","mo"],Q=["gold","silver"],Z=["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"],G=[...Z,"all"],s= exports.d ={flag:"adjust",type:"enum",enum:L,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"},S={...s,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"},r= exports.e ={flag:"period",type:"enum",enum:w,default:"daily",desc:"K \u7EBF\u5468\u671F daily/weekly/monthly",mcpDesc:"\u5386\u53F2 K \u7EBF\u5468\u671F"},Y={...r,mcpDesc:"\u8D44\u91D1\u6D41\u7EDF\u8BA1\u5468\u671F\uFF08\u65E5 / \u5468 / \u6708\uFF09"},u= exports.f ={flag:"period",type:"enum",enum:H,default:"1",desc:"\u5206\u949F\u5468\u671F 1/5/15/30/60",mcpDesc:"\u5206\u949F\u5468\u671F\uFF1B1=\u5F53\u65E5\u5206\u65F6"},f={...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"},M={...t,required:!0},N={...o,required:!0},J={...t,mcpDesc:"\u5F00\u59CB\u65F6\u95F4"},X={...o,mcpDesc:"\u7ED3\u675F\u65F6\u95F4"},V={...t,mcpDesc:"\u5F00\u59CB\u65F6\u95F4 YYYY-MM-DD HH:mm\uFF08\u6E2F\u80A1\u672C\u5730\u65F6\u533A\uFF09"},W={...o,mcpDesc:"\u7ED3\u675F\u65F6\u95F4 YYYY-MM-DD HH:mm\uFF08\u6E2F\u80A1\u672C\u5730\u65F6\u533A\uFF09"},$={...t,mcp:!1},ee={...o,mcp:!1},F={...t,mcpDesc:"\u8D77\u59CB\u65E5\u671F YYYY-MM-DD"},v={...o,mcpDesc:"\u7ED3\u675F\u65E5\u671F YYYY-MM-DD"},ae={...F,cli:!1},te={...v,cli:!1},b=[{...t,mcpDesc:"\u8D77\u59CB\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD"},{...o,mcpDesc:"\u7ED3\u675F\u65E5\u671F YYYYMMDD \u6216 YYYY-MM-DD"}],A= 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"},k={flag:"market",type:"enum",enum:x,desc:"\u5E02\u573A\u7B5B\u9009 sh/sz/bj/kc/cy",mcpDesc:"\u6309\u677F\u5757\u7B5B\u9009"},P={flag:"market",type:"enum",enum:z,upper:!0,desc:"\u4EA4\u6613\u6240\u7B5B\u9009 NASDAQ/NYSE/AMEX"},E= exports.j ={flag:"market",type:"enum",enum:I,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"},oe={flag:"maFast",type:"number",default:5,desc:"MA \u91D1\u53C9/\u6B7B\u53C9\u5FEB\u7EBF\u5468\u671F(\u9ED8\u8BA4 5)",mcpDesc:"MA \u91D1\u53C9/\u6B7B\u53C9\u7684\u5FEB\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA4 5\uFF08\u987B\u4E3A\u6B63\u6574\u6570\u4E14\u5C0F\u4E8E maSlow\uFF09"},se={flag:"maSlow",type:"number",default:20,desc:"MA \u91D1\u53C9/\u6B7B\u53C9\u6162\u7EBF\u5468\u671F(\u9ED8\u8BA4 20)",mcpDesc:"MA \u91D1\u53C9/\u6B7B\u53C9\u7684\u6162\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA4 20\uFF08\u987B\u4E3A\u6B63\u6574\u6570\u4E14\u5927\u4E8E maFast\uFF09"},i={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"},O={flag:"simple",type:"boolean",desc:"\u53BB\u6389\u4EA4\u6613\u6240\u524D\u7F00"},re={...O,mcpDesc:"\u53BB\u6389\u5E02\u573A\u524D\u7F00"},T={flag:"direction",type:"enum",enum:g,mcp:!1,desc:"\u65B9\u5411 north / south"},ne= exports.k =["ma","rsi","wr","bias"],me= exports.l =["macd","kdj","boll","cci","atr","obv","roc","dmi","sar","kc"],pe=[...ne.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)`})),...me.map(a=>({flag:a,type:"boolean",mcp:!1,desc:`\u542F\u7528 ${a.toUpperCase()}`}))],ce={flag:"days",type:"number",default:90,desc:"\u8FD4\u56DE\u6700\u8FD1 N \u4E2A\u4EA4\u6613\u65E5(\u9ED8\u8BA4 90)",mcpDesc:"\u8FD4\u56DE\u6700\u8FD1 N \u4E2A\u4EA4\u6613\u65E5\u7684\u7B79\u7801\u5206\u5E03\u5E8F\u5217\uFF0C\u9ED8\u8BA4 90"},ie={flag:"range",type:"number",default:120,desc:"\u5206\u5E03\u56DE\u770B\u7A97\u53E3\u6839\u6570(\u9ED8\u8BA4 120,0=\u5168\u91CF\u7D2F\u8BA1)",mcpDesc:"\u5206\u5E03\u56DE\u770B\u7A97\u53E3(K \u7EBF\u6839\u6570)\u3002\u9ED8\u8BA4 120 = \u4E1C\u8D22 App \u663E\u793A\u53E3\u5F84\uFF1B0 = \u4ECE\u4E0A\u5E02\u9996\u65E5\u5168\u91CF\u7D2F\u8BA1(akshare stock_cyq_em \u53E3\u5F84\uFF0C\u8BA1\u7B97\u91CF\u66F4\u5927)"},le={flag:"histogram",field:"includeHistogram",type:"enum",enum:["last","all"],desc:"\u9644\u5E26\u7B79\u7801\u5CF0\u76F4\u65B9\u56FE last=\u4EC5\u6700\u540E\u4E00\u65E5 / all=\u6BCF\u65E5(\u4E0D\u4F20\u5219\u4E0D\u9644\u5E26)",mcpDesc:"\u7B79\u7801\u5CF0\u76F4\u65B9\u56FE(150 \u4EF7\u683C\u6863\u7684\u5360\u6BD4\u5206\u5E03)\uFF1Alast=\u4EC5\u6700\u540E\u4E00\u65E5\u9644\u5E26 / all=\u6BCF\u65E5\u90FD\u9644\u5E26\uFF1B\u4E0D\u4F20\u5219\u4E0D\u9644\u5E26"},de={flag:"decimals",type:"number",default:3,desc:"\u6BD4\u4F8B\u7C7B\u5B57\u6BB5\u820D\u5165\u5C0F\u6570\u4F4D(\u9ED8\u8BA4 3)",mcpDesc:"\u83B7\u5229\u6BD4\u4F8B / \u96C6\u4E2D\u5EA6\u7684\u820D\u5165\u5C0F\u6570\u4F4D\uFF0C\u9ED8\u8BA4 3(\u4EF7\u683C\u7C7B\u5B57\u6BB5\u56FA\u5B9A 2 \u4F4D)"},_=[ce,s,ie,le,de],K={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"},ue={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"},_e={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"},ge={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"},he={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"},De={flag:"pageSize",type:"number",cli:!1,desc:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20"},ye={flag:"pageSize",type:"number",cli:!1,desc:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20000"},C={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"},Se={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"},Ye={flag:"start",field:"startDate",type:"string",cli:!1,desc:"\u5F00\u59CB\u65E5\u671F YYYY-MM-DD\uFF0C\u9ED8\u8BA4 2020-10-28"},q={...s,mcp:!1},R="\u7EDF\u8BA1\u5468\u671F\uFF1A1month / 3month / 6month / 1year\uFF0C\u9ED8\u8BA4 1month",fe=[{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",Me= 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[]",codesDesc:"A \u80A1\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26 sh/sz/bj \u524D\u7F00\u5747\u53EF\uFF08\u5982 600036 / sh600519\uFF09\uFF1B\u6307\u6570\u9700\u5E26\u524D\u7F00\uFF08\u5982 sh000001\uFF09"},{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[]",codesDesc:"A \u80A1\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26 sh/sz/bj \u524D\u7F00\u5747\u53EF\uFF08\u5982 600036 / sh600519\uFF09\uFF1B\u6307\u6570\u9700\u5E26\u524D\u7F00\uFF08\u5982 sh000001\uFF09"},{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[]",codesDesc:"\u6E2F\u80A1\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26 hk \u524D\u7F00\u5747\u53EF\uFF08\u5982 00700 / hk00700\uFF09"},{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[]",codesDesc:"\u7F8E\u80A1\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26 us \u524D\u7F00\u5747\u53EF\uFF08\u5982 AAPL / usAAPL\uFF09"},{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[]",codesDesc:"\u57FA\u91D1\u4EE3\u7801\u6570\u7EC4\uFF0C\u7EAF 6 \u4F4D\u6570\u5B57\uFF08\u5982 ['000001','110011']\uFF09\uFF0C\u65E0\u4EA4\u6613\u6240\u524D\u7F00\u6982\u5FF5"},{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[]",codesDesc:"A \u80A1\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26 sh/sz/bj \u524D\u7F00\u5747\u53EF\uFF08\u5982 600036 / sz000858\uFF09"},{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[]",codesDesc:"A \u80A1\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26 sh/sz/bj \u524D\u7F00\u5747\u53EF\uFF08\u5982 600036 / sz000858\uFF09"},{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:[O,k]},{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:[re,P]},{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\uFF08MCP tools/call \u5927\u6570\u7EC4\u4F1A\u88AB\u88C1\u526A\u81F3 200 \u6761\uFF1BSDK \u76F4\u8FDE\u8FD4\u56DE\u5168\u91CF\uFF09\u3002",argShape:"options",params:[i,l,k]},{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:[i,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:[i,l,P]},{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:[i,l],codesDesc:"A \u80A1\u4EE3\u7801\u6570\u7EC4\uFF0C\u5E26\u4E0D\u5E26\u4EA4\u6613\u6240\u524D\u7F00\u5747\u53EF\uFF08\u5982 ['sh600519','600036']\uFF09\uFF1B\u6307\u6570\u9700\u5E26\u524D\u7F00\uFF08\u5982 'sh000001'\uFF09"},{path:["batch","raw"],summary:"\u817E\u8BAF\u539F\u59CB\u6279\u91CF",argShape:"positional",positional:[{name:"params",required:!0,desc:"\u817E\u8BAF raw \u6279\u91CF\u67E5\u8BE2\u53C2\u6570\u5B57\u7B26\u4E32\uFF08provider \u539F\u59CB\u683C\u5F0F\uFF0C\u5982 sh600519,sz000001\uFF09"}],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\u652F\u6301\u4E2D\u8BC1\u7279\u6B8A\u6307\u6570\u7801\u5F62\uFF0893xxxx / H+5 \u4F4D\uFF0C\u5982 930955 / H30533\uFF09\u3002\u65E5\u671F\u683C\u5F0F YYYYMMDD\u3002",argShape:"symbol+options",positional:[e("\u80A1\u7968 / \u6307\u6570\u4EE3\u7801\uFF0C\u5982 600519 / sh600519 / 930955\uFF08\u4E2D\u8BC1\u6307\u6570\uFF09")],params:[r,s,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,s,J,X]},{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\uFF1B\u4EA6\u63A5\u53D7\u6052\u751F\u7279\u6B8A\u6307\u6570\u5B57\u6BCD\u4EE3\u7801\uFF08\u5982 HSHCI \u6052\u751F\u533B\u7597\u4FDD\u5065\u6307\u6570\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\uFF1B\u7279\u6B8A\u6307\u6570\u5982 HSHCI")],params:[r,s,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\uFF1B\u4EA6\u63A5\u53D7\u7279\u6B8A\u6307\u6570\u4EE3\u7801\uFF08\u5982 HSHCI\uFF09")],params:[u,s,V,W,A]},{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\u652F\u6301\u88F8 ticker\uFF08\u5982 AAPL / BABA\uFF0C\u81EA\u52A8\u89E3\u6790\u4EA4\u6613\u6240\uFF09\u6216\u663E\u5F0F secid\uFF08105.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\u88F8 ticker\uFF08AAPL\uFF09\u6216 secid\uFF08105.AAPL / 106.BABA\uFF09\u5747\u53EF")],params:[r,s,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\u652F\u6301\u88F8 ticker\uFF08AAPL\uFF09\u6216 secid\uFF08105.AAPL\uFF09\u3002",argShape:"symbol+options",positional:[e("\u7F8E\u80A1\u4EE3\u7801\uFF0C\u88F8 ticker\uFF08AAPL\uFF09\u6216 secid\uFF08105.AAPL / 106.BABA\uFF09\u5747\u53EF")],params:[u,s,$,ee,A]},{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\u820D\u5165\u578B\u6307\u6807(ma/macd/boll/kdj/rsi/wr/bias/cci/atr)\u53EF\u4F20 decimals \u6307\u5B9A\u8F93\u51FA\u5C0F\u6570\u4F4D(\u9ED8\u8BA4 3;obv/roc/dmi/sar/kc \u8F93\u51FA\u4E0D\u820D\u5165)\u3002",argShape:"symbol+options",positional:[e("\u80A1\u7968\u4EE3\u7801\uFF08A \u80A1 / \u6E2F\u80A1 / \u7F8E\u80A1\uFF09")],params:[r,s,t,o,E,...pe],mcpCustom:!0},{path:["kline","signals"],toolName:"get_kline_signals",tier:"core",summary:"\u6307\u6807\u4FE1\u53F7\u8BC6\u522B(\u91D1\u53C9/\u6B7B\u53C9/\u8D85\u4E70\u8D85\u5356/\u7A81\u7834/\u53CD\u8F6C)",mcpDesc:"\u8BC6\u522B\u6280\u672F\u6307\u6807\u4FE1\u53F7\uFF08A \u80A1 / \u6E2F\u80A1 / \u7F8E\u80A1\uFF0Cmarket \u4E0D\u4F20\u6309 symbol \u81EA\u52A8\u8BC6\u522B\uFF09\uFF1AMA / MACD / KDJ \u91D1\u53C9\u6B7B\u53C9\u3001KDJ / RSI \u8D85\u4E70\u8D85\u5356\u3001BOLL \u6536\u76D8\u7A81\u7834\u3001SAR \u8D8B\u52BF\u53CD\u8F6C\uFF0C\u5171 14 \u7C7B\u3002\u5185\u90E8\u81EA\u52A8\u53D6\u5E26\u6307\u6807 K \u7EBF\u518D\u9010\u65E5\u6BD4\u5BF9\uFF0C\u8FD4\u56DE\u6BCF\u6761\u4FE1\u53F7\u7684\u7C7B\u578B / \u65E5\u671F / \u6536\u76D8\u4EF7 / \u9644\u52A0\u503C\u3002MA \u4EA4\u53C9\u5468\u671F\u7531 maFast / maSlow \u6307\u5B9A\uFF08\u9ED8\u8BA4 5 / 20\uFF09\uFF0C\u5176\u4F59\u4FE1\u53F7\u7528\u5E38\u7528\u9ED8\u8BA4\u9608\u503C\uFF08KDJ 80/20\u3001RSI period=6 \u7684 70/30\uFF09\u3002\u4E0D\u4F20 startDate \u4F1A\u5728\u5168\u90E8\u5386\u53F2\u4E0A\u8BC6\u522B\uFF1B\u53EA\u770B\u8FD1\u671F\u8BF7\u4F20 startDate \u6536\u7A84\u7A97\u53E3\u3002\u5468\u671F\u9ED8\u8BA4 daily\uFF0C\u590D\u6743\u9ED8\u8BA4 qfq\u3002",argShape:"symbol+options",positional:[e("\u80A1\u7968\u4EE3\u7801\uFF08A \u80A1 / \u6E2F\u80A1 / \u7F8E\u80A1\uFF09")],params:[r,s,t,o,E,oe,se]},{path:["chips","cn"],toolName:"get_chip_distribution",tier:"core",summary:"A\u80A1\u7B79\u7801\u5206\u5E03",mcpDesc:"A \u80A1\u7B79\u7801\u5206\u5E03 / \u7B79\u7801\u5CF0\uFF08\u57FA\u4E8E\u65E5 K \u7EBF + \u6362\u624B\u7387\u672C\u5730\u8BA1\u7B97\uFF0C\u4E1C\u65B9\u8D22\u5BCC CYQ \u7B97\u6CD5\uFF09\uFF1A\u6BCF\u65E5\u83B7\u5229\u6BD4\u4F8B\u3001\u5E73\u5747\u6210\u672C\u300190/70 \u6210\u672C\u533A\u95F4\u4E0E\u96C6\u4E2D\u5EA6\u3002days \u9ED8\u8BA4 90\uFF1Brange \u4E3A\u5206\u5E03\u56DE\u770B\u7A97\u53E3\uFF08\u9ED8\u8BA4 120 = \u4E1C\u8D22 App \u53E3\u5F84\uFF0C0 = \u5168\u91CF\u7D2F\u8BA1\u5373 akshare \u53E3\u5F84\uFF09\uFF1B\u590D\u6743\u9ED8\u8BA4 qfq\uFF0C\u5BF9\u9F50 akshare \u8F93\u51FA\u8BF7\u4F20 ''\u3002histogram=last \u53EF\u9644\u5E26\u6700\u65B0\u4E00\u65E5\u7B79\u7801\u5CF0\u5F62\u72B6\u3002\u4EC5\u4E2A\u80A1\u6709\u610F\u4E49\uFF08\u6307\u6570 / ETF \u65E0\u6362\u624B\u7387\u6982\u5FF5\uFF09\uFF0C\u957F\u671F\u505C\u724C\u6216\u6781\u4F4E\u6362\u624B\u4E2A\u80A1\u7684\u5206\u5E03\u53C2\u8003\u4EF7\u503C\u6709\u9650\u3002",argShape:"symbol+options",positional:[e("\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519")],params:_},{path:["chips","hk"],toolName:"get_hk_chip_distribution",summary:"\u6E2F\u80A1\u7B79\u7801\u5206\u5E03",mcpDesc:"\u6E2F\u80A1\u7B79\u7801\u5206\u5E03 / \u7B79\u7801\u5CF0\uFF08\u57FA\u4E8E\u4E1C\u8D22\u6E2F\u80A1\u65E5 K \u7EBF + \u6362\u624B\u7387\u672C\u5730\u8BA1\u7B97\uFF0C\u540C A \u80A1 CYQ \u7B97\u6CD5\uFF09\uFF1A\u6BCF\u65E5\u83B7\u5229\u6BD4\u4F8B\u3001\u5E73\u5747\u6210\u672C\u300190/70 \u6210\u672C\u533A\u95F4\u4E0E\u96C6\u4E2D\u5EA6\u3002days \u9ED8\u8BA4 90\uFF1Brange \u9ED8\u8BA4 120\uFF080 = \u5168\u91CF\u7D2F\u8BA1\uFF09\u3002\u6CE8\u610F\uFF1A\u4EF7\u683C\u6863\u7CBE\u5EA6\u4E0B\u9650 0.01 \u5143\uFF0C\u4F4E\u4EF7\u4ED9\u80A1\u7684\u76F4\u65B9\u56FE\u7C92\u5EA6\u504F\u7C97\uFF1B\u6781\u4F4E\u6362\u624B\u4E2A\u80A1\u53C2\u8003\u4EF7\u503C\u6709\u9650\u3002",argShape:"symbol+options",positional:[e("\u6E2F\u80A1\u4EE3\u7801\uFF0C\u5982 00700 / hk00700")],params:_},{path:["chips","us"],toolName:"get_us_chip_distribution",summary:"\u7F8E\u80A1\u7B79\u7801\u5206\u5E03",mcpDesc:"\u7F8E\u80A1\u7B79\u7801\u5206\u5E03 / \u7B79\u7801\u5CF0\uFF08\u57FA\u4E8E\u4E1C\u8D22\u7F8E\u80A1\u65E5 K \u7EBF + \u6362\u624B\u7387\u672C\u5730\u8BA1\u7B97\uFF0C\u540C A \u80A1 CYQ \u7B97\u6CD5\uFF09\uFF1A\u6BCF\u65E5\u83B7\u5229\u6BD4\u4F8B\u3001\u5E73\u5747\u6210\u672C\u300190/70 \u6210\u672C\u533A\u95F4\u4E0E\u96C6\u4E2D\u5EA6\u3002days \u9ED8\u8BA4 90\uFF1Brange \u9ED8\u8BA4 120\uFF080 = \u5168\u91CF\u7D2F\u8BA1\uFF09\u3002\u6362\u624B\u7387\u4E3A\u4E1C\u8D22\u53E3\u5F84\uFF08\u4EA4\u6613\u6240\u516C\u5F00\u6210\u4EA4\u91CF / \u6D41\u901A\u80A1\u672C\uFF09\uFF0C\u4E0D\u542B\u6697\u6C60\u7EC6\u8282\u3002",argShape:"symbol+options",positional:[e("\u7F8E\u80A1\u4EE3\u7801\uFF0C\u88F8 ticker\uFF08AAPL\uFF09\u6216 secid\uFF08105.AAPL / 106.BABA\uFF09\u5747\u53EF")],params:_},{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\u5B9E\u65F6\u6307\u6807",mcpDesc:"\u83B7\u53D6\u6307\u5B9A\u884C\u4E1A\u677F\u5757\u7684\u5B9E\u65F6\u884C\u60C5\u6307\u6807\uFF08\u6700\u65B0\u3001\u6700\u9AD8\u3001\u6700\u4F4E\u3001\u5F00\u76D8\u3001\u6210\u4EA4\u91CF\u989D\u3001\u6DA8\u8DCC\u5E45\u3001\u632F\u5E45\u3001\u6362\u624B\u7387\u7B49\uFF09\uFF0C\u8FD4\u56DE `{ item, value }[]`\u3002\u6210\u5206\u80A1\u5217\u8868\u8BF7\u7528 `constituents`\uFF1B\u6210\u5206\u80A1\u884C\u60C5\u4EA6\u89C1 `constituents`\uFF08\u542B\u4EF7\u683C/\u6DA8\u8DCC\u5E45\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:[r,S,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:[f]},{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\u5B9E\u65F6\u6307\u6807",mcpDesc:"\u83B7\u53D6\u6307\u5B9A\u6982\u5FF5\u677F\u5757\u7684\u5B9E\u65F6\u884C\u60C5\u6307\u6807\uFF08\u6700\u65B0\u3001\u6700\u9AD8\u3001\u6700\u4F4E\u3001\u5F00\u76D8\u3001\u6210\u4EA4\u91CF\u989D\u3001\u6DA8\u8DCC\u5E45\u3001\u632F\u5E45\u3001\u6362\u624B\u7387\u7B49\uFF09\uFF0C\u8FD4\u56DE `{ item, value }[]`\u3002\u6210\u5206\u80A1\u5217\u8868\u8BF7\u7528 `constituents`\uFF1B\u6210\u5206\u80A1\u884C\u60C5\u4EA6\u89C1 `constituents`\uFF08\u542B\u4EF7\u683C/\u6DA8\u8DCC\u5E45\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:[r,S,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:[f]},{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:j,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:[ye]},{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:[r,q,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:[De]},{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:[r,q,t,o,Se]},{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:[Ye,C]},{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:Q,desc:"\u54C1\u79CD\uFF1Agold=\u9EC4\u91D1 / silver=\u767D\u94F6"}],params:[C]},{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:[{...Y,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 MCP tools/call \u5927\u6570\u7EC4\u4F1A\u88AB\u88C1\u526A\u81F3\u524D 200 \u6761\uFF08\u6309\u4E3B\u529B\u51C0\u6D41\u5165\u964D\u5E8F\uFF09\uFF1BSDK \u76F4\u8FDE\u8FD4\u56DE\u5168\u91CF\u3002",argShape:"options",params:[K]},{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:[K,ue]},{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:[{...Y,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:g,default:"north",desc:"\u8D44\u91D1\u65B9\u5411:north=\u5317\u5411(\u9ED8\u8BA4) / south=\u5357\u5411"}],params:[T]},{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:[_e,ge,he]},{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:g,default:"north",desc:"\u8D44\u91D1\u65B9\u5411:north=\u5317\u5411(\u9ED8\u8BA4) / south=\u5357\u5411"}],params:[T,F,v]},{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:[ae,te]},{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:U,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(type \u53EF\u4F20 all \u62C9\u5168\u7C7B\u578B)",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(changeType/typeCode)\u53CA\u4E2D\u6587\u6807\u7B7E\u3001\u76F8\u5173\u4FE1\u606F\u3002type \u4E0D\u4F20\u9ED8\u8BA4 large_buy(\u5927\u7B14\u4E70\u5165);\u4F20 'all' \u4E00\u6B21\u62C9\u53D6\u5168\u90E8 22 \u7C7B(\u603B\u91CF\u53EF\u8FBE\u4E0A\u4E07\u6761,\u81EA\u52A8\u7FFB\u9875\u6536\u5168,MCP tools/call \u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A)\u3002",argShape:"positional",positional:[{name:"type",enum:G,default:"large_buy",desc:"\u5F02\u52A8\u7C7B\u578B\u7B5B\u9009(all=\u5168\u90E8 22 \u7C7B)\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","individualChanges"],toolName:"get_individual_stock_changes",summary:"\u4E2A\u80A1\u5F53\u65E5\u76D8\u53E3\u5F02\u52A8",mcpDesc:'\u83B7\u53D6\u5355\u53EA A \u80A1\u67D0\u4E2A\u4EA4\u6613\u65E5\u7684\u76D8\u53E3\u5F02\u52A8\u4E8B\u4EF6\u6D41\uFF08\u4E1C\u65B9\u8D22\u5BCC\uFF09\uFF1A\u65F6\u95F4\u3001\u7C7B\u578B(changeType/typeCode,\u542B\u4E2D\u6587\u6807\u7B7E)\u3001\u89E6\u53D1\u4EF7(\u5143)\u3001\u6DA8\u8DCC\u5E45(%)\u3001\u76F8\u5173\u4FE1\u606F;\u5168\u90E8\u7C7B\u578B\u4E00\u6B21\u8FD4\u56DE,\u6700\u65B0\u5728\u524D\u3002date \u4E0D\u4F20\u4E3A\u4ECA\u5929\u3002\u6CE8\u610F:\u670D\u52A1\u7AEF\u4EC5\u4FDD\u7559\u7EA6\u6700\u8FD1\u6570\u5468\u6570\u636E(\u4E14\u53EF\u80FD\u6709\u4E2A\u522B\u65E5\u671F\u7A7A\u6D1E),\u65E0\u6570\u636E\u65E5\u671F\u8FD4\u56DE\u7A7A\u6570\u7EC4;\u9700\u8981\u533A\u5206"\u8D85\u7A97"\u4E0E"\u5F53\u65E5\u65E0\u5F02\u52A8"\u8BF7\u7528 get_individual_stock_changes_history(\u9010\u65E5\u5E26 available \u6807\u8BB0)\u3002',argShape:"symbol+options",positional:[e("\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519")],params:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD \u6216 YYYY-MM-DD,\u4E0D\u4F20\u4E3A\u4ECA\u5929",mcpDesc:"\u4EA4\u6613\u65E5 YYYYMMDD \u6216 YYYY-MM-DD;\u4E0D\u4F20\u4E3A\u5317\u4EAC\u65F6\u95F4\u4ECA\u5929"}]},{path:["marketEvent","individualChangesHistory"],toolName:"get_individual_stock_changes_history",summary:"\u4E2A\u80A1\u8FD1N\u5929\u5F02\u52A8\u5386\u53F2(--days 7)",mcpDesc:"\u805A\u5408\u5355\u53EA A \u80A1\u6700\u8FD1 N \u4E2A\u81EA\u7136\u65E5\u7684\u76D8\u53E3\u5F02\u52A8\uFF08\u6309\u4EA4\u6613\u65E5\u5386\u9010\u4EA4\u6613\u65E5\u8BF7\u6C42\u540E\u5408\u5E76\uFF09\uFF1Adays \u6570\u7EC4\u6309\u65E5\u671F\u5347\u5E8F,\u6BCF\u65E5\u542B available \u6807\u8BB0\u4E0E\u4E8B\u4EF6\u6D41;coverage \u6807\u6CE8\u5B9E\u9645\u8986\u76D6\u8303\u56F4(\u670D\u52A1\u7AEF\u4EC5\u4FDD\u7559\u7EA6\u6700\u8FD1\u6570\u5468\u4E14\u53EF\u80FD\u6709\u7A7A\u6D1E\u65E5,\u65E0\u6570\u636E\u65E5\u671F available=false);stats \u4EE5\u539F\u59CB\u7C7B\u578B\u7801\u4E3A\u952E\u7ED9\u51FA\u5404\u7C7B\u578B\u8BA1\u6570(\u542B\u4E2D\u6587\u6807\u7B7E)\u3002days \u9ED8\u8BA4 7,\u8303\u56F4 1~60\u3002\u26A0\uFE0F \u8FD4\u56DE\u4E3A\u5D4C\u5957\u5BF9\u8C61:\u5E8F\u5217\u5316\u8D85\u7EA6 80KB \u4F1A\u88AB\u6574\u4F53\u7701\u7565(\u4EC5\u8FD4\u56DE\u63D0\u793A,\u62FF\u4E0D\u5230\u4EFB\u4F55\u6570\u636E);\u4E8B\u4EF6\u591A\u7684\u6D3B\u8DC3\u6807\u7684\u8BF7\u7528\u8F83\u5C0F days \u5206\u6BB5\u67E5\u8BE2,\u6216\u6539\u7528 get_individual_stock_changes \u9010\u65E5\u83B7\u53D6\u3002",argShape:"symbol+options",positional:[e("\u80A1\u7968\u4EE3\u7801\uFF0C\u5982 600519 / sh600519")],params:[{flag:"days",type:"number",default:7,desc:"\u6700\u8FD1 N \u4E2A\u81EA\u7136\u65E5(1~60,\u9ED8\u8BA4 7)",mcpDesc:"\u6700\u8FD1 N \u4E2A\u81EA\u7136\u65E5,\u9ED8\u8BA4 7,\u6700\u5927 60"}]},{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 MCP tools/call \u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\uFF0C\u8BF7\u6536\u7A84\u533A\u95F4\uFF1BSDK \u76F4\u8FDE\u8FD4\u56DE\u5168\u91CF\u3002",argShape:"options",params:[M,N]},{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 MCP tools/call \u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\uFF1BSDK \u76F4\u8FDE\u8FD4\u56DE\u5168\u91CF\u3002",argShape:"positional",positional:[{name:"period",enum:D,default:"1month",desc:R}]},{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 MCP tools/call \u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\uFF0C\u8BF7\u6536\u7A84\u533A\u95F4\uFF1BSDK \u76F4\u8FDE\u8FD4\u56DE\u5168\u91CF\u3002",argShape:"options",params:[M,N]},{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 MCP tools/call \u8D85 200 \u6761\u4F1A\u88AB\u88C1\u526A\uFF1BSDK \u76F4\u8FDE\u8FD4\u56DE\u5168\u91CF\u3002",argShape:"positional",positional:[{name:"period",enum:D,default:"1month",desc:R}]},{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"],toolName:"get_block_trade_market_stat",summary:"\u5927\u5B97\u4EA4\u6613\u5E02\u573A\u7EDF\u8BA1",mcpDesc:"\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\u5E02\u573A\u6BCF\u65E5\u603B\u89C8\uFF08\u6210\u4EA4\u989D\u3001\u6EA2\u4EF7\u7387\u3001\u4E70\u5356\u65B9\u7EDF\u8BA1\u7B49\uFF09\u3002",argShape:"none"},{path:["blockTrade","detail"],toolName:"get_block_trade_detail",summary:"\u5927\u5B97\u4EA4\u6613\u660E\u7EC6",mcpDesc:"\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\u660E\u7EC6\uFF08\u6309\u65E5\u671F\u8303\u56F4\u7B5B\u9009\uFF09\uFF1A\u6210\u4EA4\u4EF7\u3001\u6210\u4EA4\u91CF\u3001\u4E70\u5356\u8425\u4E1A\u90E8\u7B49\u3002\u7701\u7565\u65E5\u671F\u5219\u9ED8\u8BA4\u6700\u8FD1\u4E00\u6BB5\u65F6\u95F4\u3002",argShape:"options",params:b},{path:["blockTrade","dailyStat"],toolName:"get_block_trade_daily_stat",summary:"\u5927\u5B97\u4EA4\u6613\u6BCF\u65E5\u7EDF\u8BA1",mcpDesc:"\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\u6BCF\u65E5\u7EDF\u8BA1\uFF08\u6309\u80A1\u7968\u6C47\u603B\uFF09\uFF1A\u6210\u4EA4\u7B14\u6570\u3001\u6210\u4EA4\u989D\u3001\u6EA2\u4EF7\u7387\u7B49\u3002\u7701\u7565\u65E5\u671F\u5219\u9ED8\u8BA4\u6700\u8FD1\u4E00\u6BB5\u65F6\u95F4\u3002",argShape:"options",params:b},{path:["margin","accountInfo"],toolName:"get_margin_account_info",summary:"\u878D\u8D44\u878D\u5238\u8D26\u6237\u7EDF\u8BA1",mcpDesc:"\u83B7\u53D6\u878D\u8D44\u878D\u5238\u8D26\u6237\u7EDF\u8BA1\uFF08\u878D\u8D44\u4F59\u989D\u3001\u878D\u5238\u4F59\u91CF\u3001\u4E24\u878D\u4F59\u989D\u7B49\uFF09\u3002",argShape:"none"},{path:["margin","targetList"],toolName:"get_margin_target_list",summary:"\u878D\u8D44\u878D\u5238\u6807\u7684",mcpDesc:"\u83B7\u53D6\u878D\u8D44\u878D\u5238\u6807\u7684\u660E\u7EC6\u5217\u8868\uFF08\u53EF\u878D\u8D44 / \u53EF\u878D\u5238\u6807\u5FD7\u3001\u6298\u7B97\u7387\u7B49\uFF09\u3002",argShape:"positional",positional:[{name:"date",desc:"\u4EA4\u6613\u65E5 YYYYMMDD \u6216 YYYY-MM-DD\uFF1B\u4E0D\u4F20\u5219\u53D6\u6700\u65B0\u53EF\u7528\u65E5\u671F"}]},{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:fe},{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:["fund","profile"],toolName:"get_fund_profile",summary:"\u57FA\u91D1\u6DF1\u5EA6\u8D44\u6599",mcpDesc:"\u4E00\u6B21\u8BF7\u6C42\u83B7\u53D6\u57FA\u91D1\u6DF1\u5EA6\u8D44\u6599\uFF08\u4E1C\u65B9\u8D22\u5BCC pingzhongdata \u5168\u91CF\u5B57\u6BB5\uFF09\uFF1A\u524D\u5341\u5927\u91CD\u4ED3\u80A1\u3001\u524D\u4E94\u5927\u503A\u5238\u3001\u5B63\u5EA6\u8D44\u4EA7\u914D\u7F6E\u3001\u6BCF\u65E5\u80A1\u7968\u4ED3\u4F4D\u6D4B\u7B97\u3001\u57FA\u91D1\u7ECF\u7406\uFF08\u542B\u661F\u7EA7\u4E0E\u80FD\u529B\u8BC4\u5206\uFF09\u3001\u4E1A\u7EE9\u8BC4\u4EF7\u3001\u6301\u6709\u4EBA\u7ED3\u6784\u3001\u89C4\u6A21\u53D8\u52A8\u3001\u7533\u8D2D\u8D4E\u56DE\u3001\u9636\u6BB5\u6536\u76CA\u7387\uFF08\u8FD11\u6708/3\u6708/6\u6708/1\u5E74\uFF09\u3001\u540C\u7C7B\u57FA\u91D1\u7B49\u3002\u5B57\u6BB5\u968F\u57FA\u91D1\u7C7B\u578B\u4E0E\u6570\u636E\u5B8C\u6574\u5EA6\u53EF\u80FD\u4E3A\u7A7A\u3002\u4E0E navHistory / rankHistory \u540C\u6E90\uFF08\u540C\u4E00\u4EFD pingzhongdata \u6587\u4EF6\uFF0C\u7EA6 600KB\uFF09\uFF0C\u5EFA\u8BAE\u5E94\u7528\u5C42\u7F13\u5B58\u3002",argShape:"positional",positional:[n("\u57FA\u91D1\u4EE3\u7801\uFF0C\u7EAF\u6570\u5B57\uFF0C\u5982 000001")]},{path:["fund","theme","getThemeList"],toolName:"get_theme_list",tier:"core",summary:"\u4E3B\u9898\u57FA\u91D1\u5217\u8868",mcpDesc:"\u83B7\u53D6\u4E3B\u9898\u57FA\u91D1\u5217\u8868\uFF08\u4E1C\u65B9\u8D22\u5BCC\u5929\u5929\u57FA\u91D1\uFF09\uFF0C\u53EF\u7B5B\u9009\u884C\u4E1A/\u6982\u5FF5\u4E3B\u9898\u7C7B\u578B\uFF0C\u6309\u65E5\u6DA8\u5E45/\u5404\u9636\u6BB5\u6536\u76CA\u7387\u6392\u5E8F\u5206\u9875\u3002\u8FD4\u56DE\u4E3B\u9898\u4EE3\u7801(code)\u3001\u540D\u79F0(name)\u3001\u65E5\u6DA8\u5E45\u53CA\u5404\u9636\u6BB5\u6536\u76CA\u7387\u3002category=0(\u884C\u4E1A)/1(\u6982\u5FF5)/2(\u5168\u90E8\uFF0C\u9ED8\u8BA4)\u3002",argShape:"options",params:[{flag:"sort",type:"string",cli:!1,desc:"\u6392\u5E8F\u5B57\u6BB5\uFF1AZDF(\u65E5\u6DA8\u5E45)/SYL_W(\u8FD11\u5468)/SYL_M(\u8FD11\u6708)/SYL_3M(\u8FD13\u6708)/SYL_6M(\u8FD16\u6708)/SYL_Y(\u8FD11\u5E74)/SYL_3Y(\u8FD13\u5E74)/SYL_5Y(\u8FD15\u5E74)\uFF0C\u9ED8\u8BA4ZDF"},{flag:"order",type:"enum",enum:["desc","asc"],default:"desc",cli:!1,desc:"\u6392\u5E8F\u65B9\u5411\uFF1Adesc(\u964D\u5E8F\uFF0C\u9ED8\u8BA4)/asc(\u5347\u5E8F)"},{flag:"category",type:"enum",enum:["0","1","2"],default:"2",cli:!1,desc:"\u4E3B\u9898\u7C7B\u578B\uFF1A0(\u884C\u4E1A)/1(\u6982\u5FF5)/2(\u5168\u90E8\uFF0C\u9ED8\u8BA4)"},{flag:"pageSize",type:"number",cli:!1,desc:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u592750"},{flag:"page",type:"number",cli:!1,desc:"\u9875\u7801\uFF0C\u9ED8\u8BA41"}]},{path:["fund","theme","getThemeFunds"],toolName:"get_theme_funds",summary:"\u4E3B\u9898\u4E0B\u57FA\u91D1\u6392\u884C",mcpDesc:"\u83B7\u53D6\u6307\u5B9A\u4E3B\u9898\u4E0B\u7684\u57FA\u91D1\u6392\u884C\u5217\u8868\uFF08\u4E1C\u65B9\u8D22\u5BCC\u5929\u5929\u57FA\u91D1\uFF09\u3002themeCode\u4E3A\u4E3B\u9898\u4EE3\u7801\uFF08\u5982BK0438=\u98DF\u54C1\u996E\u6599\uFF09\u3002\u53EF\u6309\u65E5\u6DA8\u5E45/\u5404\u9636\u6BB5\u6536\u76CA\u7387\u6392\u5E8F\u5206\u9875\uFF0C\u8FD4\u56DE\u57FA\u91D1\u4EE3\u7801\u3001\u540D\u79F0\u3001\u57FA\u91D1\u7C7B\u578B\u3001\u65E5\u6DA8\u5E45\u53CA\u5404\u9636\u6BB5\u6536\u76CA\u7387\u3001\u6700\u65B0\u51C0\u503C\u3002",argShape:"symbol+options",positional:[e("\u4E3B\u9898\u4EE3\u7801\uFF0C\u5982 BK0438\uFF08\u98DF\u54C1\u996E\u6599\uFF09")],params:[{flag:"sortColumn",type:"string",cli:!1,desc:"\u6392\u5E8F\u5B57\u6BB5\uFF1ASYL_Z(\u8FD11\u5468)/SYL_Y(\u8FD11\u6708)/SYL_3Y(\u8FD13\u6708)/SYL_1N(\u8FD11\u5E74\uFF0C\u9ED8\u8BA4)/RZDF(\u65E5\u6DA8\u5E45)"},{flag:"sort",type:"enum",enum:["desc","asc"],default:"desc",cli:!1,desc:"\u6392\u5E8F\u65B9\u5411\uFF1Adesc(\u964D\u5E8F\uFF0C\u9ED8\u8BA4)/asc(\u5347\u5E8F)"},{flag:"pageSize",type:"number",cli:!1,desc:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA410\uFF0C\u6700\u592730"},{flag:"page",type:"number",cli:!1,desc:"\u9875\u7801\uFF0C\u9ED8\u8BA41"},{flag:"fundType",type:"string",cli:!1,desc:'\u57FA\u91D1\u7C7B\u578B\u7B5B\u9009\uFF0C\u5982"\u80A1\u7968\u578B"/"\u6DF7\u5408\u578B"\uFF0C\u7A7A\u8868\u793A\u5168\u90E8'}]},{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:I,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 Ae(a){let m=Me.find(p=>p.path.join(".")===a);if(!m)throw new Error(`spec \u4E2D\u4E0D\u5B58\u5728\u65B9\u6CD5: ${a}`);return m}exports.a = Ne; exports.b = I; exports.c = U; exports.d = s; exports.e = r; exports.f = u; exports.g = t; exports.h = o; exports.i = A; exports.j = E; exports.k = ne; exports.l = me; exports.m = Me; exports.n = Ae;
package/dist/cli.cjs CHANGED
@@ -1,22 +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 _chunkJP3ZPNWPcjs = require('./chunk-JP3ZPNWP.cjs');var _chunkUSK6JHLGcjs = require('./chunk-USK6JHLG.cjs');require('./chunk-KKGWFS2M.cjs');var _chunkT5CH7H3Xcjs = require('./chunk-T5CH7H3X.cjs');require('./chunk-TVIEKKDQ.cjs');var _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');var p=class extends Error{constructor(t,o){super(t),this.name="CliUsageError",this.hint=o}},On={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 V(n){if(n instanceof p)return 2;let t=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return _nullishCoalesce(On[t], () => (1))}function G(n,t){let o=n instanceof Error?n.message:String(n);if(n instanceof p){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 bn={start:"startDate",end:"endDate"},Cn=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),En=new Set(["limit"]);function B(n){return Cn.has(n)||En.has(n)}function An(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(B(r))continue;let c=e.get(r);if(!c){if(s===!0)continue;o[_nullishCoalesce(bn[r], () => (r))]=s;continue}o[_nullishCoalesce(c.field, () => (c.flag))]=Pn(c,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 Pn(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 p(`--${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 p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)e.push(J(s,i));return e}let c=t[r];if(c===void 0){if(s.required)throw new p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);e.push(void 0)}else e.push(J(s,c));r++}return e}function J(n,t){let o=t;if(n.upper&&(o=o.toUpperCase()),n.enum&&!n.enum.includes(o))throw new p(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return o}function m(n,t,o){let e=_chunkJP3ZPNWPcjs.a.call(void 0, n,t);if(!e)throw new p(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(e.fn.apply(e.parent,o))}function vn(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(B(r))continue;let c=o.get(r);if(!c){if(e)throw new p(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&c.type!=="boolean"&&c.type!=="number[]")throw new p(`--${r} \u7F3A\u5C11\u503C`);if(c.type!=="number[]"){let d=S(s);if(c.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),c.type==="enum"&&c.enum){let i=typeof d=="string"?d:String(d);if(!c.enum.includes(i))throw new p(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${c.enum.join(" / ")}`)}if(c.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new p(`--${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 p(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function _n(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 c=r.upper?s.toUpperCase():s;if(!r.enum.includes(c))throw new p(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function Rn(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){vn(t,o.options),_n(t,o.positional);let e=t.invoke?t.invoke(n,o):Nn(n,t,o);return Promise.resolve(e).then(r=>Rn(r,o.options))}function Nn(n,t,o){let e=An(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 p(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function z(n,t){if(n.length===0)throw new p(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function Z(n,t,o){if(t==="json")return o?JSON.stringify(n,null,2):JSON.stringify(n);let e=Mn(n);return e.length===0?"":t==="csv"?Dn(e):jn(e)}function nn(n){return n==null||Array.isArray(n)&&n.length===0}function Mn(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 tn(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 on(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+=In(e)?2:1}return t}function In(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 Q(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=tn(n),o=n.map(i=>t.map(a=>on(i[a]))),e=t.map((i,a)=>o.every(u=>u[a]===""||Tn(u[a]))),r=t.map((i,a)=>Math.max(A(i),...o.map(u=>A(u[a])))),s=t.map((i,a)=>Q(i,r[a],e[a])).join(" "),c=r.map(i=>"-".repeat(i)).join(" "),d=o.map(i=>i.map((a,u)=>Q(a,r[u],e[u])).join(" ")).join(`
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 _chunkWJOFTWZLcjs = require('./chunk-WJOFTWZL.cjs');var _chunk46ECBWOQcjs = require('./chunk-46ECBWOQ.cjs');require('./chunk-R7M3BHS4.cjs');var _chunkUSZUOBM2cjs = require('./chunk-USZUOBM2.cjs');require('./chunk-SR7FGCVZ.cjs');require('./chunk-6MCPZDKN.cjs');var _chunk4Q7UQ5Q3cjs = require('./chunk-4Q7UQ5Q3.cjs');require('./chunk-4VDLQK6F.cjs');var p=class extends Error{constructor(t,e){super(t),this.name="CliUsageError",this.hint=e}},bn={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 G(n){if(n instanceof p)return 2;let t=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return _nullishCoalesce(bn[t], () => (1))}function H(n,t){let e=n instanceof Error?n.message:String(n);if(n instanceof p){if(t==="json")return{text:JSON.stringify({error:{code:"USAGE",message:e}})};let r=n.hint?`
3
+ ${n.hint}`:"";return{text:`stock-sdk: ${e}${r}`}}let o=_chunk4Q7UQ5Q3cjs.k.call(void 0, n);return t==="json"?{text:JSON.stringify({error:{code:o,message:e}})}:{text:`stock-sdk: ${o}: ${e}`}}var Cn={start:"startDate",end:"endDate"},En=new Set(["format","f","pretty","quiet","q","help","h","version","V","timeout"]),An=new Set(["limit"]);function W(n){return En.has(n)||An.has(n)}function Pn(n,t){let e={},o=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))o.set(r.flag,r);for(let[r,s]of Object.entries(t)){if(W(r))continue;let c=o.get(r);if(!c){if(s===!0)continue;e[_nullishCoalesce(Cn[r], () => (r))]=s;continue}e[_nullishCoalesce(c.field, () => (c.flag))]=vn(c,s)}for(let r of _nullishCoalesce(n.options, () => ([]))){let s=_nullishCoalesce(r.field, () => (r.flag));e[s]===void 0&&r.default!==void 0&&(e[s]=r.default)}return e}function vn(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 e=S(t),o=typeof e=="boolean"?e:String(e);if(n.upper&&typeof o=="string"&&(o=o.toUpperCase()),n.type==="enum"&&n.enum&&typeof o=="string"&&!n.enum.includes(o))throw new p(`--${n.flag} \u975E\u6CD5\u503C\u300C${o}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return n.map&&typeof o=="string"&&o in n.map&&(o=n.map[o]),o}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(e=>e.trim()).filter(e=>e.length>0).map(e=>Number(e)).filter(e=>Number.isInteger(e)&&e>0)}function J(n,t){let e=_nullishCoalesce(n.positional, () => ([])),o=[],r=0;for(let s of e){if(s.variadic){let d=t.slice(r);if(s.required&&d.length===0)throw new p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);for(let i of d)o.push(z(s,i));return o}let c=t[r];if(c===void 0){if(s.required)throw new p(`\u7F3A\u5C11\u53C2\u6570 <${s.name}>`);o.push(void 0)}else o.push(z(s,c));r++}return o}function z(n,t){let e=t;if(n.upper&&(e=e.toUpperCase()),n.enum&&!n.enum.includes(e))throw new p(`<${n.name}> \u975E\u6CD5\u503C\u300C${t}\u300D`,`\u53EF\u9009: ${n.enum.join(" / ")}`);return e}function m(n,t,e){let o=_chunkWJOFTWZLcjs.a.call(void 0, n,t);if(!o)throw new p(`\u672A\u77E5\u547D\u4EE4: ${t.join(" ")}`);return Promise.resolve(o.fn.apply(o.parent,e))}function _n(n,t){let e=new Map;for(let r of _nullishCoalesce(n.options, () => ([])))e.set(r.flag,r);let o=e.size>0;for(let[r,s]of Object.entries(t)){if(W(r))continue;let c=e.get(r);if(!c){if(o)throw new p(`\u672A\u77E5\u9009\u9879 --${r}`,`\u8FD0\u884C \`stock-sdk ${n.path.join(" ")} --help\` \u67E5\u770B\u53EF\u7528\u9009\u9879`);continue}if(s===!0&&c.type!=="boolean"&&c.type!=="number[]")throw new p(`--${r} \u7F3A\u5C11\u503C`);if(c.type!=="number[]"){let d=S(s);if(c.upper&&typeof d=="string"&&(d=d.toUpperCase()),d!==s&&(t[r]=d),c.type==="enum"&&c.enum){let i=typeof d=="string"?d:String(d);if(!c.enum.includes(i))throw new p(`--${r} \u975E\u6CD5\u503C\u300C${i}\u300D`,`\u53EF\u9009: ${c.enum.join(" / ")}`)}if(c.type==="number"&&d!==!0&&Number.isNaN(Number(d)))throw new p(`--${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 p(`\u7F3A\u5C11\u5FC5\u586B\u9009\u9879 --${r.flag}`,r.desc)}function Rn(n,t){let e=_nullishCoalesce(n.positional, () => ([]));for(let o=0;o<e.length;o++){let r=e[o],s=t[o];if(s===void 0||!r.enum)continue;let c=r.upper?s.toUpperCase():s;if(!r.enum.includes(c))throw new p(`<${r.name}> \u975E\u6CD5\u503C\u300C${s}\u300D`,`\u53EF\u9009: ${r.enum.join(" / ")}`)}}function Nn(n,t){let e=t.limit;if(e===void 0||e===!0||!Array.isArray(n))return n;let o=Number(S(e));return!Number.isNaN(o)&&o>=1?n.slice(0,o):n}function Y(n,t,e){_n(t,e.options),Rn(t,e.positional);let o=t.invoke?t.invoke(n,e):Mn(n,t,e);return Promise.resolve(o).then(r=>Nn(r,e.options))}function Mn(n,t,e){let o=Pn(t,e.options);switch(t.argShape){case"none":return m(n,t.path,[]);case"codes[]":return B(e.positional,t),m(n,t.path,[e.positional]);case"codes+options":return B(e.positional,t),m(n,t.path,[e.positional,o]);case"symbol+options":{let r=J(t,e.positional);return m(n,t.path,[...r,o])}case"options":return m(n,t.path,[o]);case"positional":return m(n,t.path,J(t,e.positional));default:throw new p(`\u4E0D\u652F\u6301\u7684\u547D\u4EE4\u5F62\u6001: ${t.argShape}`)}}function B(n,t){if(n.length===0)throw new p(`\u547D\u4EE4 "${t.path.join(" ")}" \u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u4EE3\u7801\u53C2\u6570`)}function nn(n,t,e){if(t==="json")return e?JSON.stringify(n,null,2):JSON.stringify(n);let o=In(n);return o.length===0?"":t==="csv"?$n(o):Tn(o)}function tn(n){return n==null||Array.isArray(n)&&n.length===0}function In(n){return Array.isArray(n)?n.map(t=>Q(t)?t:{value:t}):Q(n)?[n]:n==null?[]:[{value:n}]}function Q(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function en(n){let t=[],e=new Set;for(let o of n)for(let r of Object.keys(o))e.has(r)||(e.add(r),t.push(r));return t}function on(n){return n==null?"":typeof n=="object"?JSON.stringify(n):String(n)}function A(n){let t=0;for(let e of n){let o=_nullishCoalesce(e.codePointAt(0), () => (0));t+=jn(o)?2:1}return t}function jn(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 X(n,t,e){let o=Math.max(0,t-A(n)),r=" ".repeat(o);return e?r+n:n+r}function Tn(n){let t=en(n),e=n.map(i=>t.map(a=>on(i[a]))),o=t.map((i,a)=>e.every(u=>u[a]===""||Dn(u[a]))),r=t.map((i,a)=>Math.max(A(i),...e.map(u=>A(u[a])))),s=t.map((i,a)=>X(i,r[a],o[a])).join(" "),c=r.map(i=>"-".repeat(i)).join(" "),d=e.map(i=>i.map((a,u)=>X(a,r[u],o[u])).join(" ")).join(`
4
4
  `);return[s,c,d].join(`
5
- `)}function Tn(n){return n!==""&&!Number.isNaN(Number(n))}function Dn(n){let t=tn(n),o=[t.map(X).join(",")];for(let e of n)o.push(t.map(r=>X(on(e[r]))).join(","));return o.join(`
6
- `)}function X(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function h(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 $n(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 en(n,t){let o=(_nullishCoalesce(n.params, () => ([]))).filter(e=>e.cli!==!1).map(h);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:_optionalChain([n, 'access', _2 => _2.positional, 'optionalAccess', _3 => _3.map, 'call', _4 => _4($n)]),options:o.length>0?o:void 0,invoke:t}}var qn=h(_chunkJP3ZPNWPcjs.e),Kn=h(_chunkJP3ZPNWPcjs.f),rn=h(_chunkJP3ZPNWPcjs.d),sn=h(_chunkJP3ZPNWPcjs.g),an=h(_chunkJP3ZPNWPcjs.h),Ln=h(_chunkJP3ZPNWPcjs.i),P=[{name:"symbol",required:!0}],Un=[{name:"code",required:!0}],mn={"kline.withIndicators":(n,t)=>ln(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[dn(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"],[dn(t),o])}};{let n=new Set(_chunkJP3ZPNWPcjs.m.map(t=>t.path.join(".")));for(let t of Object.keys(mn))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=_chunkJP3ZPNWPcjs.m.map(n=>en(n,mn[n.path.join(".")]));function xn(n){return _nullishCoalesce(_optionalChain([k, 'access', _5 => _5.find, 'call', _6 => _6(t=>t.path.join(".")===n), 'optionalAccess', _7 => _7.options]), () => ([]))}var Fn=xn("kline.withIndicators"),un={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Vn={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 pn(n){let t=_chunkT5CH7H3Xcjs.f.call(void 0, n);if(t==="GLOBAL")throw new p(`\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u8DEF\u7531 GLOBAL \u5E02\u573A\u7B26\u53F7: ${n}`,"\u6D77\u5916\u7279\u6B8A\u6307\u6570\u6682\u65E0\u6B63\u5F0F K \u7EBF\u5165\u53E3,\u53EF\u7528 raw-secid \u76F4\u901A: stock-sdk kline 100.GDAXI --market us");return t==="HK"?"hk":t==="US"?"us":"a"}function Gn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function cn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new p("--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 p("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function dn(n){let t=_nullishCoalesce(n.options.direction, () => (n.positional[0]));if(t!==void 0){if(t==="north"||t==="south")return t;throw new p("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function fn(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 _chunkJP3ZPNWPcjs.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 _chunkJP3ZPNWPcjs.l){let e=n[o];e!==void 0&&(e===!0||e==="true"||e==="1"||e==="yes")&&(t[o]=!0)}return t}function ln(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:[Vn,{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 p("\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 l=e?_chunkT5CH7H3Xcjs.e.call(void 0, u,{market:Gn(e)}):_chunkT5CH7H3Xcjs.e.call(void 0, u);if(e||(f=l.market==="HK"?"hk":l.market==="US"?"us":"a"),l.assetType==="index"&&_chunkT5CH7H3Xcjs.d.call(void 0, l.code))throw new p(`\u7279\u6B8A\u6307\u6570 ${l.code} \u65E0\u884C\u60C5\u63A5\u53E3`,`\u884C\u60C5\u6E90(\u817E\u8BAF)\u4E0D\u8986\u76D6\u4E2D\u8BC1/\u6052\u751F/\u6D77\u5916\u7279\u6B8A\u6307\u6570;K \u7EBF\u8BF7\u7528: stock-sdk kline ${l.code}`);s[f].push(f==="a"?_chunkT5CH7H3Xcjs.h.call(void 0, l):l.code)}catch(l){if(l instanceof p||e&&l instanceof _chunk4Q7UQ5Q3cjs.f&&_chunkT5CH7H3Xcjs.f.call(void 0, u)!==void 0)throw l;s[f].push(u)}}let c=[];s.a.length&&c.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&c.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&c.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&c.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(c),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:[qn,rn,sn,an,un,v],invoke:async(n,t)=>{let o=_(t,"kline"),e=_nullishCoalesce(cn(t.options.market), () => (pn(o))),r=fn(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:[Kn,rn,sn,an,un,v,Ln],invoke:async(n,t)=>{let o=_(t,"minute"),e=_nullishCoalesce(cn(t.options.market), () => (pn(o))),r=fn(t),s=e==="hk"?"hkMinute":e==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new p("--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:Fn,invoke:ln},{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 p("\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:Un,invoke:async(n,t)=>{let o=t.positional[0];if(!o)throw new p("\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 p("--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 p(`\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:_chunkJP3ZPNWPcjs.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:_chunkJP3ZPNWPcjs.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 p("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 c=JSON.parse(r);e=Array.isArray(c)?c:[c]}catch (e2){throw new p("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Bn()).has(o))throw new p(`\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)}}],hn="mcp",zn=[...y,...k];function Bn(){return _chunkJP3ZPNWPcjs.m.map(n=>n.path.join("."))}function _(n,t){let o=n.positional[0];if(!o)throw new p("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return o}function kn(){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 _chunkJP3ZPNWPcjs.l)n.add(t);return n}function gn(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 Sn(){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 yn(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 wn(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},c=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 c(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=kn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
10
- `)});function Qn(){return"2.2.2"}function Xn(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 Zn(){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 nt(n){let t="json";try{let o=wn(n,Yn),e=Xn(o.options);if(t=e.format,e.version)return process.stdout.write(Qn()+`
12
- `),0;if(o.positional.length===0)return process.stdout.write(Sn()+`
13
- `),0;if(o.positional[0]===hn)return e.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
5
+ `)}function Dn(n){return n!==""&&!Number.isNaN(Number(n))}function $n(n){let t=en(n),e=[t.map(Z).join(",")];for(let o of n)e.push(t.map(r=>Z(on(o[r]))).join(","));return e.join(`
6
+ `)}function Z(n){return/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function h(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 qn(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 rn(n,t){let e=(_nullishCoalesce(n.params, () => ([]))).filter(o=>o.cli!==!1).map(h);return{path:n.path,summary:n.summary,argShape:n.argShape,positional:_optionalChain([n, 'access', _2 => _2.positional, 'optionalAccess', _3 => _3.map, 'call', _4 => _4(qn)]),options:e.length>0?e:void 0,invoke:t}}var Kn=h(_chunkWJOFTWZLcjs.e),Ln=h(_chunkWJOFTWZLcjs.f),sn=h(_chunkWJOFTWZLcjs.d),an=h(_chunkWJOFTWZLcjs.g),un=h(_chunkWJOFTWZLcjs.h),Un=h(_chunkWJOFTWZLcjs.i),P=[{name:"symbol",required:!0}],xn=[{name:"code",required:!0}],ln={"kline.withIndicators":(n,t)=>hn(n,t),"northbound.minute":(n,t)=>m(n,["northbound","minute"],[fn(t)]),"northbound.history":(n,t)=>{let e={};return t.options.start!==void 0&&(e.startDate=t.options.start),t.options.end!==void 0&&(e.endDate=t.options.end),m(n,["northbound","history"],[fn(t),e])}};{let n=new Set(_chunkWJOFTWZLcjs.m.map(t=>t.path.join(".")));for(let t of Object.keys(ln))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=_chunkWJOFTWZLcjs.m.map(n=>rn(n,ln[n.path.join(".")]));function Fn(n){return _nullishCoalesce(_optionalChain([k, 'access', _5 => _5.find, 'call', _6 => _6(t=>t.path.join(".")===n), 'optionalAccess', _7 => _7.options]), () => ([]))}var Vn=Fn("kline.withIndicators"),pn={flag:"market",type:"enum",enum:["a","hk","us"],desc:"\u5E02\u573A a/hk/us(\u9ED8\u8BA4\u6309\u4EE3\u7801\u81EA\u52A8\u8BC6\u522B)"},Gn={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 cn(n){let t=_chunkUSZUOBM2cjs.g.call(void 0, n);if(t==="GLOBAL")throw new p(`\u6682\u4E0D\u652F\u6301\u81EA\u52A8\u8DEF\u7531 GLOBAL \u5E02\u573A\u7B26\u53F7: ${n}`,"\u6D77\u5916\u7279\u6B8A\u6307\u6570\u6682\u65E0\u6B63\u5F0F K \u7EBF\u5165\u53E3,\u53EF\u7528 raw-secid \u76F4\u901A: stock-sdk kline 100.GDAXI --market us");return t==="HK"?"hk":t==="US"?"us":"a"}function Hn(n){return n==="hk"?"HK":n==="us"?"US":"CN"}function dn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us")return n;throw new p("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us")}}function Jn(n){if(n!==void 0){if(n==="a"||n==="hk"||n==="us"||n==="fund")return n;throw new p("--market \u975E\u6CD5\u503C","\u53EF\u9009: a / hk / us / fund")}}function fn(n){let t=_nullishCoalesce(n.options.direction, () => (n.positional[0]));if(t!==void 0){if(t==="north"||t==="south")return t;throw new p("direction \u975E\u6CD5\u503C","\u53EF\u9009: north / south")}}function mn(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 zn(n){let t={};for(let e of _chunkWJOFTWZLcjs.k){let o=n[e];if(o===void 0)continue;if(o===!0){t[e]={};continue}let r=E(o);r.length>0&&(t[e]={periods:r})}for(let e of _chunkWJOFTWZLcjs.l){let o=n[e];o!==void 0&&(o===!0||o==="true"||o==="1"||o==="yes")&&(t[e]=!0)}return t}function hn(n,t){let e=_(t,"indicators"),o={};return t.options.period!==void 0&&(o.period=t.options.period),t.options.adjust!==void 0&&(o.adjust=t.options.adjust==="none"?"":t.options.adjust),t.options.start!==void 0&&(o.startDate=t.options.start),t.options.end!==void 0&&(o.endDate=t.options.end),t.options.market!==void 0&&(o.market=t.options.market),o.indicators=zn(t.options),m(n,["kline","withIndicators"],[e,o])}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:[Gn,{flag:"full",type:"boolean",desc:"A\u80A1\u5168\u91CF\u4E94\u6863\u884C\u60C5"}],invoke:async(n,t)=>{let e=t.positional;if(e.length===0)throw new p("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk quote <code...>");let o=Jn(t.options.market),r=t.options.full===!0,s={a:[],hk:[],us:[],fund:[]};for(let u of e){if(o==="fund"){s.fund.push(u);continue}let f=_nullishCoalesce(o, () => ("a"));try{let l=o?_chunkUSZUOBM2cjs.f.call(void 0, u,{market:Hn(o)}):_chunkUSZUOBM2cjs.f.call(void 0, u);o||(f=l.market==="HK"?"hk":l.market==="US"?"us":"a");let R=l.assetType==="index"?_chunkUSZUOBM2cjs.d.call(void 0, l.code):void 0;if(R&&!R.tencent)throw new p(`\u7279\u6B8A\u6307\u6570 ${l.code} \u65E0\u884C\u60C5\u63A5\u53E3`,`\u884C\u60C5\u6E90(\u817E\u8BAF)\u4E0D\u8986\u76D6\u8BE5\u7279\u6B8A\u6307\u6570;K \u7EBF\u8BF7\u7528: stock-sdk kline ${l.code}`);s[f].push(f==="a"?_chunkUSZUOBM2cjs.i.call(void 0, l):l.code)}catch(l){if(l instanceof p||o&&l instanceof _chunk4Q7UQ5Q3cjs.f&&_chunkUSZUOBM2cjs.g.call(void 0, u)!==void 0)throw l;s[f].push(u)}}let c=[];s.a.length&&c.push(Promise.resolve(r?n.quotes.cn(s.a):n.quotes.cnSimple(s.a))),s.hk.length&&c.push(Promise.resolve(n.quotes.hk(s.hk))),s.us.length&&c.push(Promise.resolve(n.quotes.us(s.us))),s.fund.length&&c.push(Promise.resolve(n.quotes.fund(s.fund)));let d=await Promise.allSettled(c),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:[Kn,sn,an,un,pn,v],invoke:async(n,t)=>{let e=_(t,"kline"),o=_nullishCoalesce(dn(t.options.market), () => (cn(e))),r=mn(t);return m(n,["kline",o==="hk"?"hk":o==="us"?"us":"cn"],[e,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:[Ln,sn,an,un,pn,v,Un],invoke:async(n,t)=>{let e=_(t,"minute"),o=_nullishCoalesce(dn(t.options.market), () => (cn(e))),r=mn(t),s=o==="hk"?"hkMinute":o==="us"?"usMinute":"cnMinute";if(t.options.ndays!==void 0){if(s==="cnMinute")throw new p("--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],[e,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:Vn,invoke:hn},{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 e=t.positional[0];if(!e)throw new p("\u7F3A\u5C11\u641C\u7D22\u5173\u952E\u8BCD","\u7528\u6CD5: stock-sdk search <keyword>");return n.search(e)}},{path:["quotes","timeline"],alias:["timeline"],summary:"\u5F53\u65E5\u5206\u65F6",argShape:"positional",positional:xn,invoke:async(n,t)=>{let e=t.positional[0];if(!e)throw new p("\u7F3A\u5C11\u80A1\u7968\u4EE3\u7801","\u7528\u6CD5: stock-sdk timeline <code>");return n.quotes.timeline(e)}},{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 e=t.positional[0],o={};if(t.options.simple===!0&&(o.simple=!0),t.options.board!==void 0){if(e!=="a")throw new p("--board \u4EC5\u652F\u6301 A \u80A1(market=a)","\u53EF\u9009: sh / sz / bj / kc / cy");o.market=t.options.board}switch(e){case"a":return m(n,["codes","cn"],[o]);case"us":return m(n,["codes","us"],[o]);case"hk":return n.codes.hk();case"fund":return n.codes.fund();default:throw new p(`\u672A\u77E5\u5E02\u573A: ${e}`,"\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:_chunkWJOFTWZLcjs.b}],invoke:async(n,t)=>{let e=t.positional[0],o=e?e.toUpperCase():"A";return n.calendar.marketStatus(o)}},{path:["marketEvent","ztPool"],alias:["ztpool"],summary:"\u6DA8\u505C\u80A1\u6C60 zt/yesterday/strong/sub_new/broken/dt(--date)",argShape:"positional",positional:[{name:"type",enum:_chunkWJOFTWZLcjs.c}],options:[{flag:"date",type:"string",desc:"\u4EA4\u6613\u65E5 YYYYMMDD"}],invoke:async(n,t)=>{let e=t.positional[0],o=t.options.date;return n.marketEvent.ztPool(e,o)}},{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 e=t.positional[0];if(!e)throw new p("call \u7F3A\u5C11\u65B9\u6CD5\u8DEF\u5F84","\u7528\u6CD5: stock-sdk call <ns.method> --args '[...]'");let o=[],r=t.options.args;if(typeof r=="string")try{let c=JSON.parse(r);o=Array.isArray(c)?c:[c]}catch (e2){throw new p("--args \u4E0D\u662F\u5408\u6CD5 JSON",`\u793A\u4F8B: --args '[["sh600519"]]'`)}if(!new Set(Wn()).has(e))throw new p(`\u672A\u77E5\u65B9\u6CD5: ${e}`,"\u5F62\u5982 quotes.cn / kline.cn(\u4EC5\u547D\u540D\u7A7A\u95F4\u65B9\u6CD5,\u89C1 stock-sdk --help)");return m(n,e.split("."),o)}}],kn="mcp",Bn=[...y,...k];function Wn(){return _chunkWJOFTWZLcjs.m.map(n=>n.path.join("."))}function _(n,t){let e=n.positional[0];if(!e)throw new p("\u7F3A\u5C11\u4EE3\u7801\u53C2\u6570",`\u7528\u6CD5: stock-sdk ${t} <symbol>`);return e}function gn(){let n=new Set(["help","h","version","V","quiet","q","pretty"]);for(let t of Bn)for(let e of _nullishCoalesce(t.options, () => ([])))e.type==="boolean"&&n.add(e.flag);for(let t of _chunkWJOFTWZLcjs.l)n.add(t);return n}function Sn(n){if(n.length===0)return null;for(let e=Math.min(3,n.length);e>=2;e--){let o=n.slice(0,e).join("."),r=k.find(s=>s.path.join(".")===o);if(r)return{spec:r,rest:n.slice(e)}}for(let e of y)if(_optionalChain([e, 'access', _8 => _8.alias, 'optionalAccess', _9 => _9.includes, 'call', _10 => _10(n[0])]))return{spec:e,rest:n.slice(1)};let t=k.find(e=>e.path.join(".")===n[0]);return t?{spec:t,rest:n.slice(1)}:null}function yn(){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 e of y){let o=_nullishCoalesce(_optionalChain([e, 'access', _11 => _11.alias, 'optionalAccess', _12 => _12[0]]), () => (e.path.join(" ")));n.push(` ${o.padEnd(12)} ${e.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(e=>e.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 wn(n){let t=_nullishCoalesce(_optionalChain([n, 'access', _13 => _13.alias, 'optionalAccess', _14 => _14[0]]), () => (n.path.join(" "))),e=[`${t} \u2014\u2014 ${n.summary}`,""],o=(_nullishCoalesce(n.positional, () => ([]))).map(r=>{let s=r.required?`<${r.name}>`:`[${r.name}]`;return r.variadic?`${s}...`:s}).join(" ");if(e.push(`\u7528\u6CD5: stock-sdk ${t}${o?" "+o:""} [--flags]`),_optionalChain([n, 'access', _15 => _15.options, 'optionalAccess', _16 => _16.length])){e.push(""),e.push("\u9009\u9879:");for(let r of n.options){let s=r.enum?` (${r.enum.join("/")})`:"";e.push(` --${r.flag.padEnd(12)} ${r.desc}${s}`)}}return e.join(`
9
+ `)}function On(n,t=new Set){let e=[],o={},r=!1,s=(i,a)=>{let u=o[i];if(u===void 0){o[i]=a;return}if(typeof a!="string"){o[i]=a;return}Array.isArray(u)?u.push(a):typeof u=="string"?o[i]=[u,a]:o[i]=a},c=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 c(u)?(s(i,u),a+1):(s(i,!0),a)};for(let i=0;i<n.length;i++){let a=n[i];if(r){e.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&&!Yn(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 e.push(a)}return{positional:e,options:o}}function Yn(n){return/^-\d/.test(n)}var Qn=gn();process.stdout.on("error",n=>{n.code==="EPIPE"&&process.exit(0),process.stderr.write(`stock-sdk: stdout error: ${n.message}
10
+ `)});function Xn(){return"2.4.0"}function Zn(n){let t=_nullishCoalesce(n.format, () => (n.f)),e=t==="table"||t==="csv"?t:"json",o;if(typeof n.timeout=="string"||typeof n.timeout=="number"){let r=Number(n.timeout);!Number.isNaN(r)&&r>0&&(o=r)}return{format:e,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:o}}async function nt(){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 tt(n){let t="json";try{let e=On(n,Qn),o=Zn(e.options);if(t=o.format,o.version)return process.stdout.write(Xn()+`
12
+ `),0;if(e.positional.length===0)return process.stdout.write(yn()+`
13
+ `),0;if(e.positional[0]===kn)return o.help?(process.stdout.write(`stock-sdk mcp \u2014\u2014 \u542F\u52A8 MCP server (stdio transport)
14
14
 
15
15
  \u7528\u6CD5: stock-sdk mcp
16
16
  \u73AF\u5883\u53D8\u91CF: STOCK_SDK_MCP_TOOLS=core|full|<\u9017\u53F7\u5206\u9694\u5DE5\u5177\u540D>\uFF08\u9ED8\u8BA4 core\uFF09
17
- `),0):await Zn();let r=gn(o.positional);if(!r)throw new p(`\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(yn(r.spec)+`
18
- `),0;let s=new (0, _chunkUSK6JHLGcjs.t)(e.timeout!==void 0?{timeout:e.timeout}:{}),c={positional:r.rest,options:o.options},d=await W(s,r.spec,c);nn(d)&&!e.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
19
- `);let i=Z(d,e.format,e.pretty);return i.length>0&&process.stdout.write(i+`
20
- `),0}catch(o){let e=G(o,t);return process.stderr.write(e.text+`
21
- `),V(o)}}nt(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}
17
+ `),0):await nt();let r=Sn(e.positional);if(!r)throw new p(`\u672A\u77E5\u547D\u4EE4 "${e.positional.join(" ")}"`,"\u8FD0\u884C `stock-sdk --help` \u67E5\u770B\u53EF\u7528\u547D\u4EE4");if(o.help)return process.stdout.write(wn(r.spec)+`
18
+ `),0;let s=new (0, _chunk46ECBWOQcjs.t)(o.timeout!==void 0?{timeout:o.timeout}:{}),c={positional:r.rest,options:e.options},d=await Y(s,r.spec,c);tn(d)&&!o.quiet&&process.stderr.write(`stock-sdk: \u65E0\u6570\u636E
19
+ `);let i=nn(d,o.format,o.pretty);return i.length>0&&process.stdout.write(i+`
20
+ `),0}catch(e){let o=H(e,t);return process.stderr.write(o.text+`
21
+ `),G(e)}}tt(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}
22
22
  `),process.exitCode=1});