@dsh-ft/dsh-fft-ftshare 0.0.0-stage → 0.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 (61) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +82 -2
  3. package/catalog.json +9762 -0
  4. package/catalog.meta.json +7 -0
  5. package/catalog.txt +250 -0
  6. package/cordis.patch.yml +27 -0
  7. package/lib/capabilities.d.ts +47 -0
  8. package/lib/capabilities.d.ts.map +1 -0
  9. package/lib/capabilities.js +145 -0
  10. package/lib/capabilities.js.map +1 -0
  11. package/lib/catalog-host.d.ts +19 -0
  12. package/lib/catalog-host.d.ts.map +1 -0
  13. package/lib/catalog-host.js +31 -0
  14. package/lib/catalog-host.js.map +1 -0
  15. package/lib/catalog.d.ts +51 -0
  16. package/lib/catalog.d.ts.map +1 -0
  17. package/lib/catalog.js +60 -0
  18. package/lib/catalog.js.map +1 -0
  19. package/lib/client.d.ts +55 -0
  20. package/lib/client.d.ts.map +1 -0
  21. package/lib/client.js +184 -0
  22. package/lib/client.js.map +1 -0
  23. package/lib/contract.d.ts +143 -0
  24. package/lib/contract.d.ts.map +1 -0
  25. package/lib/contract.js +26 -0
  26. package/lib/contract.js.map +1 -0
  27. package/lib/errors.d.ts +87 -0
  28. package/lib/errors.d.ts.map +1 -0
  29. package/lib/errors.js +271 -0
  30. package/lib/errors.js.map +1 -0
  31. package/lib/index.d.ts +89 -0
  32. package/lib/index.d.ts.map +1 -0
  33. package/lib/index.js +271 -0
  34. package/lib/index.js.map +1 -0
  35. package/lib/mask.d.ts +66 -0
  36. package/lib/mask.d.ts.map +1 -0
  37. package/lib/mask.js +106 -0
  38. package/lib/mask.js.map +1 -0
  39. package/lib/project.d.ts +101 -0
  40. package/lib/project.d.ts.map +1 -0
  41. package/lib/project.js +335 -0
  42. package/lib/project.js.map +1 -0
  43. package/lib/route.d.ts +48 -0
  44. package/lib/route.d.ts.map +1 -0
  45. package/lib/route.js +90 -0
  46. package/lib/route.js.map +1 -0
  47. package/lib/status.d.ts +103 -0
  48. package/lib/status.d.ts.map +1 -0
  49. package/lib/status.js +134 -0
  50. package/lib/status.js.map +1 -0
  51. package/lib/tools.d.ts +38 -0
  52. package/lib/tools.d.ts.map +1 -0
  53. package/lib/tools.js +178 -0
  54. package/lib/tools.js.map +1 -0
  55. package/lib/transport.d.ts +65 -0
  56. package/lib/transport.d.ts.map +1 -0
  57. package/lib/transport.js +161 -0
  58. package/lib/transport.js.map +1 -0
  59. package/locale/en.json +6 -0
  60. package/locale/zh.json +6 -0
  61. package/package.json +93 -4
@@ -0,0 +1,7 @@
1
+ {
2
+ "count": 250,
3
+ "generatedAt": "2026-10-16T04:35:07.554Z",
4
+ "endpoint": "https://market.ft.tech/gateway/mcp",
5
+ "catalogBytes": 362156,
6
+ "indexBytes": 22819
7
+ }
package/catalog.txt ADDED
@@ -0,0 +1,250 @@
1
+ ft_v1_abnormal_trading_details | 龙虎榜明细 | date,page,page_size
2
+ ft_v1_abnormal_trading_overview | 龙虎榜总览 | date,page,page_size
3
+ ft_v1_block_trades | 大宗交易 | date,page,page_size
4
+ ft_v1_bse_mapping | 北交所映射 | n_code,new_code,o_code,old_code,page,page_size
5
+ ft_v1_bullion_price | 贵金属价格 | end_date*,page*,page_size*,start_date*,symbol*
6
+ ft_v1_cb_cb_lists | 可转债列表 |
7
+ ft_v1_chinabond_yield_daily | 中债收益率日数据 | curve_name,end_date*,page,page_size,start_date*
8
+ ft_v1_company_list | 公司列表 | page,page_size,stock_code,stock_name
9
+ ft_v1_convertible_bond_candlesticks | 可转债历史K线 | adjust_kind,interval_unit*,interval_value,limit,since_ts_millis*,symbol*,until_ts_millis*
10
+ ft_v1_convertible_bond_szse_directed_trades | 深交所可转债定向交易 | end_date,page,page_size,security_code,start_date,trade_date
11
+ ft_v1_convertible_bond_szse_matching_trades | 深交所可转债匹配成交 | end_date,page,page_size,security_code,start_date,trade_date
12
+ ft_v1_convertible_bond_szse_negotiated_trades | 深交所可转债协商成交 | end_date,page,page_size,security_code,start_date,trade_date
13
+ ft_v1_corporate_contract | 重大合同 | end_date*,start_date*
14
+ ft_v1_corporate_contract_by_symbol | 重大合同按标的 | page,page_size,symbol*
15
+ ft_v1_corporate_contract_summary | 重大合同汇总 | page,page_size
16
+ ft_v1_corporate_meeting | 股东大会 | page,page_size
17
+ ft_v1_daec_history_prev_closes | 标的昨收价 | since*,symbol*,until*
18
+ ft_v1_daec_market_snapshot | 市场行情快照 | scope
19
+ ft_v1_daec_stocks | A股行情列表 | filter,order_by,page,page_size
20
+ ft_v1_eastmoney_all_board_daily_ohlc | 东方财富全板块日线 OHLC | end_date,page,page_size,start_date
21
+ ft_v1_eastmoney_board_constituents | 东方财富板块成分股 | board_code*,date,page,page_size
22
+ ft_v1_eastmoney_board_daily_ohlc | 东方财富板块日线OHLC | board_code*,end_date,page,page_size,start_date
23
+ ft_v1_eastmoney_concept_boards | 东方财富概念板块 |
24
+ ft_v1_eastmoney_dapan_flow | 东方财富大盘资金流 | end_date,page,page_size,start_date,trade_date
25
+ ft_v1_eastmoney_etf_flow | 东方财富 ETF 资金流 | end_date,page,page_size,start_date,symbol,trade_date
26
+ ft_v1_eastmoney_futures_position | 东方财富期货持仓 | contract_code,end_date,exchange,member_name_abbr,page,page_size,start_date,trade_date,variety_code
27
+ ft_v1_eastmoney_futures_strange | 东方财富期货龙虎榜 | contract*,exchange*,trade_date*,variety*
28
+ ft_v1_eastmoney_market_valuation | 东方财富市场估值 | end_date,market_code,page,page_size,start_date,trade_date
29
+ ft_v1_eastmoney_rank | 东方财富股票排名 | market,rank_group,trade_date
30
+ ft_v1_eastmoney_sector_flow | 东方财富板块资金流 | board_code,board_level,board_type,end_date,page,page_size,start_date,trade_date
31
+ ft_v1_eastmoney_stock_flow | 东方财富个股资金流 | end_date,page,page_size,start_date,symbol,trade_date
32
+ ft_v1_eastmoney_stock_valuation | 东方财富个股估值 | end_date,page,page_size,start_date,symbol,trade_date
33
+ ft_v1_eastmoney_us_stock_daily_ohlc | 东方财富美股日OHLC | end_date,page,page_size,start_date,stock_code
34
+ ft_v1_eastmoney_us_stock_list | 东方财富美股列表 | page,page_size,refresh
35
+ ft_v1_economic_china_cpi | CPI | page,page_size
36
+ ft_v1_economic_china_credit_loans | 社融信贷 | page,page_size
37
+ ft_v1_economic_china_customs_trade | 进出口 | page,page_size
38
+ ft_v1_economic_china_fiscal_revenue | 财政收入 | page,page_size
39
+ ft_v1_economic_china_fixed_asset_investment | 固定资产投资 | page,page_size
40
+ ft_v1_economic_china_gdp | GDP | file_ids,page,page_size
41
+ ft_v1_economic_china_industrial_added_value | 工业增加值 | file_ids,page,page_size
42
+ ft_v1_economic_china_lpr | LPR | page,page_size
43
+ ft_v1_economic_china_money_supply | 货币供应 | page,page_size
44
+ ft_v1_economic_china_pmi | PMI | page,page_size
45
+ ft_v1_economic_china_ppi | PPI | file_ids,page,page_size
46
+ ft_v1_economic_china_reserve_ratio | 存款准备金率 | file_ids,page,page_size
47
+ ft_v1_economic_china_retail_sales | 社零 | page,page_size
48
+ ft_v1_economic_china_tax_revenue | 税收 | page,page_size
49
+ ft_v1_economic_us_economic | 美国经济指标 | page,page_size,type*
50
+ ft_v1_etf_adjust_factor | ETF复权因子 | end_date,page,page_size,start_date,symbol,trade_date
51
+ ft_v1_etf_candlesticks | ETFK线 | adjust_kind,interval_unit*,interval_value,limit,since_ts_millis*,symbol*,until_ts_millis*
52
+ ft_v1_etf_pcf_etf_pcf_download | ETF PCF清单文件下载信息 | filename*
53
+ ft_v1_exchange_margin_summaries | 交易所融资融券汇总日度 | end_date*,exchange,page,page_size,start_date*
54
+ ft_v1_finance_balance | A股资产负债表 | page,page_size,report_type,stock_code,year
55
+ ft_v1_finance_cashflow | A股现金流量表 | page,page_size,report_type,stock_code,year
56
+ ft_v1_finance_financial_calendar_baidu | 百度财经日历 | category,end_date*,page,page_size,start_date*
57
+ ft_v1_finance_financial_calendar_wallstreetcn | 华尔街见闻财经日历 | end_date*,page,page_size,start_date*
58
+ ft_v1_finance_income | A股利润表 | page,page_size,report_type,stock_code,year
59
+ ft_v1_finance_stock_performance_express | 业绩快报 | page,page_size,report_type,stock_code,year
60
+ ft_v1_finance_stock_performance_forecast | 业绩预告 | page,page_size,report_type,stock_code,year
61
+ ft_v1_fund_fund_asset_allocation | 基金资产配置 | end_date,fund_code*,page,page_size,publish_date,report_date,start_date
62
+ ft_v1_fund_fund_basicinfo | 基金基础信息 | fund_code,page,page_size
63
+ ft_v1_fund_fund_cal_return | 基金收益 | cal-type*,fund_code*
64
+ ft_v1_fund_fund_classification | 基金分类 | classify_std,fund_code*
65
+ ft_v1_fund_fund_company | 基金公司 | fund_company,page,page_size
66
+ ft_v1_fund_fund_fee | 基金费率 | charge_type,client_type,fund_code*,page,page_size
67
+ ft_v1_fund_fund_holder_structure | 基金持有人结构 | end_date,fund_code*,report_type,start_date
68
+ ft_v1_fund_fund_list | 基金列表 | fund_code,fund_type,page,page_size
69
+ ft_v1_fund_fund_manager | 基金经理任职关系 | fund_code,fund_manager,is_inoffice,page,page_size
70
+ ft_v1_fund_fund_net_value | 基金净值明细 | end_date,fund_code*,nav_date,page,page_size,start_date
71
+ ft_v1_fund_fund_net_value_performance | 基金净值收益表现 | end_date,fund_code*,page,page_size,start_date,stat_date
72
+ ft_v1_fund_fund_new_found | 基金新发 | end_date,fund_type,page,page_size,start_date
73
+ ft_v1_fund_fund_overview | 基金总览 | page*,page_size*
74
+ ft_v1_fund_fund_portfolio | 基金持仓明细 | end_date,fund_code*,page,page_size,publish_date,report_date,start_date
75
+ ft_v1_fund_fund_risk_level | 基金风险等级 | fund_code*,history
76
+ ft_v1_fund_fund_share | 基金份额 | end_date,fund_code*,page,page_size,start_date,stati_perd
77
+ ft_v1_fund_fund_support_symbols | 基金支持标的 | page*,page_size*
78
+ ft_v1_futures_ft_limit | 期货涨跌停价格 | cont,end_date,exchange*,page,page_size,start_date,trade_date,ts_code
79
+ ft_v1_futures_fut_settle | 期货每日结算参数 | end_date,exchange*,page,page_size,start_date,trade_date,ts_code
80
+ ft_v1_futures_fut_weekly_detail | 期货周度持仓明细 | end_week,exchange,page,page_size,prd,start_week,week
81
+ ft_v1_futures_fut_wsr | 期货周度报告 | end_date,exchange,page,page_size,start_date,symbol,trade_date
82
+ ft_v1_futures_futures_base_data | 中国期货基础数据 | page,page_size,symbol,trade_date
83
+ ft_v1_futures_futures_lists | 中国期货列表 | trade_date
84
+ ft_v1_futures_kline | 期货合约历史K线 | end,interval,limit,start,symbol*
85
+ ft_v1_futures_nanhua_index_kline | 南华期货指数日 K 线 | code,end_date,page,page_size,start_date,trade_date
86
+ ft_v1_global_index_daily_kline | 全球指数日K线 | end_date,limit,secid*,start_date
87
+ ft_v1_goodwill_industry | 商誉行业 | date*,page,page_size
88
+ ft_v1_goodwill_market_overview | 商誉市场总览 |
89
+ ft_v1_goodwill_predict | 商誉预测 | date*,page,page_size
90
+ ft_v1_goodwill_stock_detail | 商誉个股明细 | date*,page,page_size
91
+ ft_v1_goodwill_stock_impairment | 商誉减值 | date*,page,page_size
92
+ ft_v1_hibor_daily | 香港银行同业拆息日数据 | end_date*,page,page_size,start_date*
93
+ ft_v1_hk_hsi_daily_weight | 恒生指数每日权重 | index_slug,page,page_size,stock_code,trade_date*
94
+ ft_v1_hk_stk_ah_comparison | AH股对比 | end_date,hk_code,page,page_size,start_date,trade_date,ts_code
95
+ ft_v1_holder_stock_ggcg_em | 东方财富股东增减持 | page,page_size,symbol*
96
+ ft_v1_holder_stock_ggmx | 董监高持股变动 | change_direction,end_date,page,page_size,start_date,stock_code
97
+ ft_v1_holder_stock_holder_ften | 十大流通股东 | is_last,page,page_size,stock_code
98
+ ft_v1_holder_stock_holder_nums | 股东人数 | is_last,page,page_size,stock_code
99
+ ft_v1_holder_stock_holder_ten | 十大股东 | is_last,page,page_size,stock_code
100
+ ft_v1_holder_stock_share_chg | 股东增减持 | is_last,page,page_size,stock_code
101
+ ft_v1_index_candlesticks | 指数K线 | adjust_kind,interval_unit*,interval_value,limit,since_ts_millis*,symbol*,until_ts_millis*
102
+ ft_v1_index_description_all | 指数基础信息 | page,page_size
103
+ ft_v1_index_index_description | 中证指数描述列表 | page,page_size
104
+ ft_v1_index_index_description_download | 指数说明文件下载信息 | url_hash*
105
+ ft_v1_index_index_weight | 指数权重列表 | date,index_code*,page,page_size
106
+ ft_v1_index_index_weight_download | 指数权重文件下载信息 | url_hash*
107
+ ft_v1_index_index_weight_summary | 指数权重汇总 | index_code*,page,page_size
108
+ ft_v1_intraday_auction_volume_symbol | 单标的连续竞价成交量 | page,page_size,symbol*,trade_date
109
+ ft_v1_libor_daily | 伦敦银行同业拆息日数据 | currency,end_date*,page,page_size,start_date*,tenor
110
+ ft_v1_limit_list | 涨跌停股票池 | limit_type*,page,page_size,trade_date
111
+ ft_v1_margin_trading_details | 融资融券明细 | date,page,page_size,stock
112
+ ft_v1_namechange | 股票曾用名 | end_date,start_date,trade_code*
113
+ ft_v1_northbound | 北向资金交易 | date*
114
+ ft_v1_pledge_pledge_detail | 股权质押明细 | is_last,page,page_size,stock_code
115
+ ft_v1_pledge_pledge_summary | 股权质押汇总 | page,page_size
116
+ ft_v1_report_announcements_list | 市场数据 v1:report-announcements/list | date*,page,page_size,sec_code
117
+ ft_v1_risk_warning_stocks | 风险警示股 | date*,page,page_size
118
+ ft_v1_search | 标的搜索 | limit,query*
119
+ ft_v1_shibor_daily | 上海银行同业拆放利率日数据 | end_date*,page,page_size,start_date*
120
+ ft_v1_shibor_quote_daily | SHIBOR 报价行日数据 | bank,end_date*,page,page_size,start_date*
121
+ ft_v1_southbound | 南向资金交易 | date*
122
+ ft_v1_stk_code_change | A股代码变更 | end_date,start_date,trade_code*
123
+ ft_v1_stk_code_change_timeline | A股代码变更时间线 |
124
+ ft_v1_stk_limit | 涨跌停价 | end_date,instrument_type,market_id,page,page_size,start_date,symbol*,symbol_id,trade_date
125
+ ft_v1_stk_manager_hold | 上市公司管理层持股 | end_date,trade_code*
126
+ ft_v1_stk_manager_pay | 上市公司管理层薪酬 | end_date,trade_code*
127
+ ft_v1_stk_managers | 上市公司管理层 | begin_date,candi_date,end_date,trade_code*
128
+ ft_v1_stk_status_change | A股状态变更 | change_date,change_type,trade_code
129
+ ft_v1_stock_adjust_factor | 股票复权因子 | end_date,page,page_size,start_date,symbol,trade_date
130
+ ft_v1_stock_candlesticks | 股票K线 | adjust_kind,interval_unit*,interval_value,limit,since_ts_millis,symbol*,until_ts_millis*
131
+ ft_v1_stock_candlesticks_daily | 股票日K快照 | page,page_size,trade_date*
132
+ ft_v1_stock_capital_flows | 股票资金流向 | date,page,page_size,symbol,time
133
+ ft_v1_stock_comment_desire | 千股千评意愿度 | symbol*
134
+ ft_v1_stock_comment_focus | 千股千评关注度 | symbol*
135
+ ft_v1_stock_comment_index | 千股千评 | page,page_size
136
+ ft_v1_stock_comment_org_participate | 机构参与度 | symbol*
137
+ ft_v1_stock_comment_score | 千股千评评分 | symbol*
138
+ ft_v1_stock_connect_members | 市场数据 v1:stock-connect-members | channel*,direction*,page,page_size
139
+ ft_v1_stock_description | 市场数据 v1:stock-description | page,page_size,symbol_id
140
+ ft_v1_stock_dividends | 市场数据 v1:stock-dividends | page,page_size,since_date,symbol,until_date
141
+ ft_v1_stock_history_list | 市场数据 v1:stock-history-list | board,code,fields,full,order,page,page_size,rank,trade_date*
142
+ ft_v1_stock_ipos | 股票IPO | page,page_size
143
+ ft_v1_stock_list | 股票列表 | page,page_size
144
+ ft_v1_stock_st_history | 股票历史风险警示区间 | st_type,symbol*
145
+ ft_v1_suspension_list | 停牌列表 | page,page_size,trade_date
146
+ ft_v1_sw_index_history_minutes | 市场数据 v1:sw-index/history-minutes | end_date*,index_code*,page,page_size,start_date*
147
+ ft_v1_sw_industry_constituent_history | 申万行业成份股历史 | industry_code*
148
+ ft_v1_sw_industry_daily_metrics | 申万行业日度指标 | end_date*,industry_code*,level,page,page_size,start_date*
149
+ ft_v1_sw_industry_overview | 申万行业总览 | date*,level,page,page_size
150
+ ft_v1_tdx_board_daily | 通达信板块日行情 | board_name,board_type,board_type_code,end_date*,market,page,page_size,start_date*,ts_code
151
+ ft_v1_tdx_board_index | 通达信板块指数快照 | board_name,board_type,board_type_code,market,page,page_size,ts_code
152
+ ft_v1_tdx_board_members | 通达信板块成分快照 | board_name,board_type,board_type_code,con_code,con_name,market,page,page_size,ts_code
153
+ ft_v1_ths_all_board_kline | 同花顺全板块K线 | end_date,page,page_size,start_date
154
+ ft_v1_ths_board_constituents | 同花顺板块成分股 | board_code,board_name,board_type,date,page,page_size
155
+ ft_v1_ths_board_kline | 同花顺板块K线 | board_code*,end_date,page,page_size,start_date
156
+ ft_v1_ths_board_list | 同花顺板块列表 |
157
+ ft_v1_ths_concept_daily_flow | 同花顺概念板块日资金流 | board_name,end_date*,page,page_size,start_date*
158
+ ft_v1_ths_hot_list | 同花顺热榜 | list_type*,page,page_size,trade_date
159
+ ft_v1_ths_industry_constituents | 同花顺行业成分股 | industry_code,industry_name,page,page_size,stock_code,stock_name
160
+ ft_v1_ths_industry_daily_flow | 同花顺行业板块日资金流 | board_name,end_date*,page,page_size,start_date*
161
+ ft_v1_ths_stock_daily_flow | 同花顺个股日资金流 | code,end_date*,name,page,page_size,start_date*
162
+ ft_v1_time_get_nth_trade_date | 第N个交易日 | n*
163
+ ft_v1_time_trading_calendar | 市场数据 v1:time/trading-calendar | end_date*,market*,start_date*
164
+ ft_v1_unlock_stock_unlock | 市场数据 v1:unlock/stock_unlock | end_date,page,page_size,start_date,stock_code
165
+ ft_v1_wz_index_daily | 市场数据 v1:wz-index-daily | end_date*,page,page_size,start_date*
166
+ ft_v1_xueqiu_rank | 雪球股票排名 | page,page_size,period,rank_group,trade_date
167
+ ft_v1_yzxdr_detail | 一致行动人明细 | page,page_size,quarter*,stock_code,year*
168
+ ft_v2_announcements_etf_announcement_download | ETF公告文件下载信息 | url_hash*
169
+ ft_v2_announcements_etf_announcements | ETF公告列表 | end_date,etf_code,page*,page_size*,start_date
170
+ ft_v2_announcements_stock_announcement_download | 公告文件下载信息 | url_hash*
171
+ ft_v2_announcements_stock_announcements | 公告列表 | page*,page_size*,start_date,stock_code,type*
172
+ ft_v2_announcements_stock_prospectus_download | 招股书文件下载信息 | url_hash*
173
+ ft_v2_announcements_stock_prospectuses | 招股书列表 | end_date,page*,page_size*,start_date,stock_code
174
+ ft_v2_ashare_interactions | 市场数据 v2:ashare-interactions | company_name,data_source,end_date*,industry_code,industry_name,page,page_size,start_date*,trade_code
175
+ ft_v2_auction_results | 集合竞价结果 | end_date,page,page_size,start_date,trade_date,ts_code
176
+ ft_v2_convertible_bond_candlesticks_batch | 批量可转债历史K线 | adjust_kind,interval_unit*,interval_value,limit,since_ts_millis*,symbols*,until_ts_millis*
177
+ ft_v2_convertible_bond_minute_candlesticks | 可转债历史分钟K线 | interval_value,limit,since_ts_millis*,symbol,symbols,until_ts_millis*
178
+ ft_v2_etf_candlesticks_batch | 批量ETF K线 | adjust_kind,interval_unit*,limit,since_ts_millis,symbols*,until_ts_millis*
179
+ ft_v2_etf_component_details | ETF成分证券明细 | symbol*,trade_date
180
+ ft_v2_etf_components_all | ETF成份列表 | page,page_size
181
+ ft_v2_etf_description_all | ETF基础信息 | page,page_size
182
+ ft_v2_etf_minutes | 市场数据 v2:etf_minutes | adjust_kind,interval_value,limit,since_ts_millis*,symbol*,until_ts_millis*
183
+ ft_v2_etf_minutes_batch | 市场数据 v2:etf_minutes/batch | adjust_kind,interval_value,limit,since_ts_millis*,symbols*,until_ts_millis*
184
+ ft_v2_etf_net_value | ETF净值 | end_date,etf_code*,nav_date,page,page_size,start_date
185
+ ft_v2_etf_pcf_etf_pcf_infos | ETF申赎清单 | end_date,page,page_size,start_date,symbol,trade_date
186
+ ft_v2_etf_pcf_etf_pcfs | ETF-PCF清单列表 | date*,page,page_size
187
+ ft_v2_etf_pre_data | ETF盘前数据 | date,page,page_size
188
+ ft_v2_etf_pre_single | 单只ETF盘前数据 | date,symbol*
189
+ ft_v2_etf_share | ETF份额 | end_date,etf_code*,page,page_size,start_date,stati_perd
190
+ ft_v2_finance_cashflow_stock_code | 现金流支持股票代码 | page,page_size
191
+ ft_v2_fund_index_fund | 指数跟踪基金 | index_code*,scope
192
+ ft_v2_futures_kline_batch | 批量期货合约历史K线 | end,interval,limit,start,symbols*
193
+ ft_v2_futures_minutes | 期货历史分钟K线 | end*,interval,limit,start*,symbol,symbols
194
+ ft_v2_hk_hk_candlesticks | 港股K线 | adjust_kind,interval_unit*,interval_value,limit,since_date,trade_code*,until_date*
195
+ ft_v2_holder_stock_ggmx_buy_ranking | 董监高增持排名 | page,page_size,time_range*
196
+ ft_v2_holder_stock_ggmx_sell_ranking | 董监高减持排名 | page,page_size,time_range*
197
+ ft_v2_index_candlesticks_batch | 批量指数K线 | adjust_kind,interval_unit*,limit,since_ts_millis,symbols*,until_ts_millis*
198
+ ft_v2_index_minutes | 市场数据 v2:index_minutes | adjust_kind,interval_value,limit,since_ts_millis*,symbol*,until_ts_millis*
199
+ ft_v2_index_minutes_batch | 市场数据 v2:index_minutes/batch | adjust_kind,interval_value,limit,since_ts_millis*,symbols*,until_ts_millis*
200
+ ft_v2_institution_institution_share_holdings | 机构股本持股 | institution_id*,invest_type*,report_type*,year*
201
+ ft_v2_intraday_auction_volume | 连续竞价成交量 | page,page_size,symbol,trade_date
202
+ ft_v2_limit_event_timeline_3s | 涨跌停事件时间线 | page,page_size,symbol,trade_date
203
+ ft_v2_market_distribution_intraday | 市场数据 v2:market-distribution-intraday |
204
+ ft_v2_member_build_process | 会员建仓过程 | contract_multiplier,end_date,exchange*,instrument_id*,member_name*,page,page_size,start_date
205
+ ft_v2_member_position_ranking | 会员持仓排名 | direction*,exchange*,instrument_id*,page,page_size,trade_date*
206
+ ft_v2_price_get_price_change | 价格变动 | base_date*,direction*,n*,stock_code*
207
+ ft_v2_report_announcements_summary | 市场数据 v2:report-announcements/summary | announcement_id*
208
+ ft_v2_report_stock_report_download | 研报文件下载信息 | url_hash*
209
+ ft_v2_report_stock_reports | 研报列表 | end_date,page*,page_size*,start_date,stock_code,type
210
+ ft_v2_share_get_stock_share | 股本 | date*,date_type,page,page_size,stock_code
211
+ ft_v2_share_stock_institution_holdings | 机构持股 | institution_type*,page,page_size,report_type*,year*
212
+ ft_v2_share_stock_institution_holdings_detail | 机构持股明细 | institution_type*,page,page_size,report_type*,stock_code*,year*
213
+ ft_v2_stk_alert_broker | 市场数据 v2:stk-alert-broker | end_date,page,page_size,start_date,ts_code
214
+ ft_v2_stk_premarket | 盘前数据 | end_date,page,page_size,start_date,trade_date,ts_code
215
+ ft_v2_stk_shock | 市场数据 v2:stk-shock | end_date,page,page_size,start_date,trade_date,ts_code
216
+ ft_v2_stk_surv | 市场数据 v2:stk-surv | end_date,page,page_size,start_date,trade_date,ts_code
217
+ ft_v2_stock_candlesticks_batch | 批量股票K线 | adjust_kind,interval_unit*,interval_value,limit,since_ts_millis,symbols*,until_ts_millis*
218
+ ft_v2_stock_dividends_effective | 股票有效分红记录 | page,page_size,since_date,symbol,until_date
219
+ ft_v2_stock_factor | 股票技术面因子 | category,symbol*,trade_date
220
+ ft_v2_stock_list_filter | 股票筛选 | board,listing_date_since,page,page_size,symbol
221
+ ft_v2_stock_minute_seal | 股票分钟封单金额 | page,page_size,symbol,trade_date*
222
+ ft_v2_stock_minutes | 市场数据 v2:stock_minutes | adjust_kind,interval_value,limit,since_ts_millis*,symbol*,until_ts_millis*
223
+ ft_v2_stock_minutes_batch | 市场数据 v2:stock_minutes/batch | adjust_kind,interval_value,limit,since_ts_millis*,symbols*,until_ts_millis*
224
+ ft_v3_ashare_news_sentiment_factors | A股新闻情绪因子 | end_date,page,page_size,start_date,trade_code*
225
+ ft_v3_ashare_rating_factor_snapshot | A股相关性 Top-K | date,top_k,trade_code*
226
+ ft_v3_kline_pattern_annotations | K线形态标注 | date,page,page_size,pattern,symbol,version
227
+ ft_v3_kline_pattern_image | 分K形态标注图 | image_hash*
228
+ ft_v3_limit_up_reports_briefs | 涨停简报 | date*
229
+ ft_v3_limit_up_reports_public_report | 涨停对外归因报告 | date*,security_code*
230
+ ft_v3_news_reaction_snapshot | 新闻市场反应快照 | end_date*,lookback_hours,page,page_size,start_date*,symbol*
231
+ ft_v3_semantic_search_news | 新闻语义搜索 | end_time,limit,query*,start_time,year
232
+ ft_v3_stock_signal_latest_snapshot | 信号最新快照 | page,page_size,signal_type
233
+ ft_v3_supply_chain_company_supply_chain_companies | 市场数据 v3:supply-chain/company-supply-chain-companies | direction*,page,page_size,trade_code*
234
+ ft_v3_supply_chain_industry_names | 供应链行业名称 |
235
+ ft_v3_supply_chain_subindustry_subsubindustries | 市场数据 v3:supply-chain/subindustry-subsubindustries | industry_name*
236
+ ft_v3_supply_chain_subindustry_supply_chain | 市场数据 v3:supply-chain/subindustry-supply-chain | direction*,industry_name*
237
+ ft_v3_supply_chain_subsubindustry_companies | 市场数据 v3:supply-chain/subsubindustry-companies | subindustry_name*
238
+ ft_v3_supply_chain_subsubindustry_parent_subindustries | 市场数据 v3:supply-chain/subsubindustry-parent-subindustries | subindustry_name*
239
+ ft_v4_convertible_bond_realtime_day_kline | 可转债实时日K线 | symbols*
240
+ ft_v4_convertible_bond_realtime_minute_kline | 可转债实时分钟K线 | symbols*
241
+ ft_v4_daec_history_prices | 标的分时数据 | compat,days,range,since,since_ts_ms,symbol*,ts_ms
242
+ ft_v4_etf_realtime_day_kline | ETF实时日K线 | symbols*
243
+ ft_v4_etf_realtime_minute_kline | ETF实时分钟K线 | symbols*
244
+ ft_v4_futures_minutes_realtime | 期货实时分钟K线 | symbols*
245
+ ft_v4_futures_realtime_day_kline | 期货实时日K线 | symbols*
246
+ ft_v4_index_realtime_day_kline | 指数实时日K线 | symbols*
247
+ ft_v4_index_realtime_minute_kline | 指数实时分钟K线 | symbols*
248
+ ft_v4_stock_intraday | 股票跨日分时行情 | days,range,symbol*,ts_ms
249
+ ft_v4_stock_realtime_day_kline | 股票实时日K线 | symbols*
250
+ ft_v4_stock_realtime_minute_kline | 股票实时分钟K线 | symbols*
@@ -0,0 +1,27 @@
1
+ # dsh-fft-ftshare bundle patch
2
+ #
3
+ # `dsh.bundle.patch` layer of the published package. It carries four rows on
4
+ # purpose, because the two installation paths need different planes:
5
+ #
6
+ # * through the composition bundle `@ft/dsh-fft-bundle` — that patch inserts
7
+ # the bare-name provider row globally (a `provide` cannot live in a preset)
8
+ # and mounts this package's `/tools`, `/mask` and `/project` entries from
9
+ # `preset-ft-finance`; DO NOT add this package separately, or every row
10
+ # lands twice (see README).
11
+ # * standalone (`dsh plugin --profile <name> add @dsh-ft/dsh-fft-ftshare`) —
12
+ # there is no preset, so all four rows go on the global plane: the tools and
13
+ # the mask apply to every agent, and the projection hook covers every MCP
14
+ # result.
15
+ #
16
+ # The bare package name is the only row that provides the service. This package
17
+ # declares no `dsh.client`, so a bare-name row never composes a browser module
18
+ # source and the client half-plane question does not arise.
19
+ - insert:
20
+ - id: dsh-fft-ftshare
21
+ name: '@dsh-ft/dsh-fft-ftshare'
22
+ - id: ft-ftshare-tools
23
+ name: '@dsh-ft/dsh-fft-ftshare/tools'
24
+ - id: ft-ftshare-mask
25
+ name: '@dsh-ft/dsh-fft-ftshare/mask'
26
+ - id: ft-ftshare-project
27
+ name: '@dsh-ft/dsh-fft-ftshare/project'
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 接口表(capability table):本底座承接并对外提供的上游接口,人工策展。
3
+ *
4
+ * 与**目录**(`catalog.json`,上游全量快照)不是一回事:目录回答「上游有什么」,
5
+ * 接口表回答「我们承接什么」。两条准入判据:
6
+ *
7
+ * 1. **有本仓调用点**,记在 {@link Capability.provenance};
8
+ * 2. **不与 `dsh_kline` 的保留工具面重复** —— 行情、K 线、指标、板块联动、市场
9
+ * 脉搏、自选仍归 kline,这里只放它没有的能力。
10
+ *
11
+ * 上游接口名必须能在目录里找到(守护测试断言),不在目录就当不可调:不猜别名,
12
+ * 也不按版本前缀推断订阅档位(见 {@link ./errors.ts} 与设计文档附录 B)。
13
+ * @module @dsh-ft/dsh-fft-ftshare/capabilities
14
+ */
15
+ import type { ParameterSchemaSpec } from '@deepseek-ai/dsh-tools';
16
+ /** 接口表里的一条:一个上游接口,外加我们给它的本地身份与暴露方式。 */
17
+ export interface Capability {
18
+ /** 内部能力名,例如 `finance_income`;本仓引用时用它,避免散落上游接口名。 */
19
+ id: string;
20
+ /** 中文短标题,模型工具描述的首行。 */
21
+ title: string;
22
+ /** 上游接口名,1:1,且必须在 `catalog.json` 内。 */
23
+ interface: string;
24
+ /** 入参:抄自上游 `inputSchema` 并做一次人工收敛(去掉本仓用不到的字段)。 */
25
+ args: ParameterSchemaSpec;
26
+ /** 有则注册成模型工具;没有则只供本仓程序调用。 */
27
+ expose?: {
28
+ /** 模型工具名,形如 `ftshare_*`。 */
29
+ name: string;
30
+ /** 模型可见描述。 */
31
+ description: string;
32
+ };
33
+ /**
34
+ * 本仓调用点。记的是**文件与符号**而不是行号:行号每次重构即失效,也没有任何
35
+ * 守护测试能核实它,`path#symbol` 才是能被复核的定位。
36
+ */
37
+ provenance: string;
38
+ }
39
+ /**
40
+ * 接口表本体。顺序即模型看到的顺序:先用得上的排前面。
41
+ */
42
+ export declare const FTSHARE_CAPABILITIES: readonly Capability[];
43
+ /** 按模型工具名反查接口表条目(只有带 `expose` 的条目才在表内)。 */
44
+ export declare const FTSHARE_CAPABILITY_BY_TOOL: ReadonlyMap<string, Capability>;
45
+ /** 按上游接口名反查接口表条目。 */
46
+ export declare const FTSHARE_CAPABILITY_BY_INTERFACE: ReadonlyMap<string, Capability>;
47
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;IACV,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,IAAI,EAAE,mBAAmB,CAAA;IACzB,6BAA6B;IAC7B,MAAM,CAAC,EAAE;QACP,4BAA4B;QAC5B,IAAI,EAAE,MAAM,CAAA;QACZ,cAAc;QACd,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAYD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,UAAU,EAkHrD,CAAA;AAED,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAEtE,CAAA;AAED,qBAAqB;AACrB,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAE3E,CAAA"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * 接口表(capability table):本底座承接并对外提供的上游接口,人工策展。
3
+ *
4
+ * 与**目录**(`catalog.json`,上游全量快照)不是一回事:目录回答「上游有什么」,
5
+ * 接口表回答「我们承接什么」。两条准入判据:
6
+ *
7
+ * 1. **有本仓调用点**,记在 {@link Capability.provenance};
8
+ * 2. **不与 `dsh_kline` 的保留工具面重复** —— 行情、K 线、指标、板块联动、市场
9
+ * 脉搏、自选仍归 kline,这里只放它没有的能力。
10
+ *
11
+ * 上游接口名必须能在目录里找到(守护测试断言),不在目录就当不可调:不猜别名,
12
+ * 也不按版本前缀推断订阅档位(见 {@link ./errors.ts} 与设计文档附录 B)。
13
+ * @module @dsh-ft/dsh-fft-ftshare/capabilities
14
+ */
15
+ /** 常用入参文案。 */
16
+ const STOCK_CODE = 'A 股代码,支持 6 位纯代码、.SH/.SZ/.BJ 短后缀或 .XSHG/.XSHE/.BJSE 长后缀';
17
+ const DATE_COMPACT = '交易日,格式 YYYYMMDD';
18
+ const SYMBOL = '带市场后缀的证券代码,如 600519.SH';
19
+ /** 投研舱的取数模块;接口表里绝大多数条目由它调用。 */
20
+ const COCKPIT_DATA = 'packages/dsh-fft-research-cockpit/src/ftshare-data.ts';
21
+ /** 投研舱的研报/公告取数模块。 */
22
+ const COCKPIT_REPORT = 'packages/dsh-fft-research-cockpit/src/report-data.ts';
23
+ /**
24
+ * 接口表本体。顺序即模型看到的顺序:先用得上的排前面。
25
+ */
26
+ export const FTSHARE_CAPABILITIES = [
27
+ {
28
+ id: 'finance_income',
29
+ title: '利润表',
30
+ interface: 'ft_v1_finance_income',
31
+ args: { stock_code: { type: 'string', description: STOCK_CODE, required: true } },
32
+ expose: {
33
+ name: 'ftshare_finance_income',
34
+ description: '读取个股利润表(营收、净利等)历史期数。用于基本面与盈利质量分析。',
35
+ },
36
+ provenance: `${COCKPIT_DATA}#loadSnapshot`,
37
+ },
38
+ {
39
+ id: 'finance_balance',
40
+ title: '资产负债表',
41
+ interface: 'ft_v1_finance_balance',
42
+ args: { stock_code: { type: 'string', description: STOCK_CODE, required: true } },
43
+ expose: {
44
+ name: 'ftshare_finance_balance',
45
+ description: '读取个股资产负债表历史期数。用于资产结构与偿债能力分析。',
46
+ },
47
+ provenance: `${COCKPIT_DATA}#loadSnapshot`,
48
+ },
49
+ {
50
+ id: 'finance_cashflow',
51
+ title: '现金流量表',
52
+ interface: 'ft_v1_finance_cashflow',
53
+ args: { stock_code: { type: 'string', description: STOCK_CODE, required: true } },
54
+ expose: {
55
+ name: 'ftshare_finance_cashflow',
56
+ description: '读取个股现金流量表历史期数。用于现金流与经营质量分析。',
57
+ },
58
+ provenance: `${COCKPIT_DATA}#loadSnapshot`,
59
+ },
60
+ {
61
+ id: 'stock_valuation',
62
+ title: '个股估值',
63
+ interface: 'ft_v1_eastmoney_stock_valuation',
64
+ args: {
65
+ symbol: { type: 'string', description: SYMBOL, required: true },
66
+ start_date: { type: 'string', description: `区间起(${DATE_COMPACT})` },
67
+ end_date: { type: 'string', description: `区间止(${DATE_COMPACT})` },
68
+ page: { type: 'number', description: '页码,默认 1' },
69
+ page_size: { type: 'number', description: '每页条数,默认 30' },
70
+ },
71
+ expose: {
72
+ name: 'ftshare_stock_valuation',
73
+ description: '读取个股估值时间序列(PE、PB 等)。区间按交易日给,单次最多一页。',
74
+ },
75
+ provenance: `${COCKPIT_DATA}#loadSnapshot`,
76
+ },
77
+ {
78
+ id: 'margin_trading',
79
+ title: '融资融券明细',
80
+ interface: 'ft_v1_margin_trading_details',
81
+ args: {
82
+ stock: { type: 'string', description: SYMBOL, required: true },
83
+ date: { type: 'string', description: `交易日(${DATE_COMPACT})`, required: true },
84
+ },
85
+ expose: {
86
+ name: 'ftshare_margin_trading',
87
+ description: '读取全市场某交易日的两融明细,可按标的筛选。用于杠杆资金观察。',
88
+ },
89
+ provenance: `${COCKPIT_DATA}#loadSnapshot`,
90
+ },
91
+ {
92
+ id: 'stock_reports',
93
+ title: '券商研报',
94
+ interface: 'ft_v2_report_stock_reports',
95
+ args: {
96
+ stock_code: { type: 'string', description: STOCK_CODE, required: true },
97
+ type: { type: 'string', description: '研报类型;按代码查只能用 StockReport', enum: ['StockReport'] },
98
+ page: { type: 'integer', description: '页码,上游必填,从 1 开始', required: true },
99
+ page_size: { type: 'integer', description: '每页条数,上游必填,1 到 500', required: true },
100
+ },
101
+ expose: {
102
+ name: 'ftshare_stock_reports',
103
+ description: '读取个股研报列表(标题、机构、观点摘要)。日期区间最多 3 天,页码必填。',
104
+ },
105
+ provenance: `${COCKPIT_DATA}#loadSnapshot, ${COCKPIT_REPORT}#announcementCallSpecs`,
106
+ },
107
+ {
108
+ id: 'stock_announcements',
109
+ title: '个股公告',
110
+ interface: 'ft_v2_announcements_stock_announcements',
111
+ args: {
112
+ stock_code: { type: 'string', description: STOCK_CODE, required: true },
113
+ type: { type: 'string', description: '查询类型,当前只支持 stock', enum: ['stock'], required: true },
114
+ start_date: { type: 'string', description: `${DATE_COMPACT},仅支持单日` },
115
+ page: { type: 'integer', description: '页码,上游必填,从 1 开始', required: true },
116
+ page_size: { type: 'integer', description: '每页条数,上游必填,1 到 500', required: true },
117
+ },
118
+ expose: {
119
+ name: 'ftshare_stock_announcements',
120
+ description: '按标的代码读取最新公告历史(标题、时间、链接)。',
121
+ },
122
+ provenance: `${COCKPIT_REPORT}#announcementCallSpecs`,
123
+ },
124
+ {
125
+ id: 'announcements_by_date',
126
+ title: '公告(按日期)',
127
+ interface: 'ft_v1_report_announcements_list',
128
+ args: {
129
+ date: { type: 'string', description: `公告日期(${DATE_COMPACT})`, required: true },
130
+ sec_code: { type: 'string', description: STOCK_CODE },
131
+ page: { type: 'integer', description: '页码,缺省 1' },
132
+ page_size: { type: 'integer', description: '每页条数,缺省 200,上限 500' },
133
+ },
134
+ expose: {
135
+ name: 'ftshare_announcements_by_date',
136
+ description: '按交易日读取全市场公告列表,可按证券代码筛选。',
137
+ },
138
+ provenance: `${COCKPIT_DATA}#loadRecentAnnouncements, ${COCKPIT_REPORT}#announcementCallSpecs`,
139
+ },
140
+ ];
141
+ /** 按模型工具名反查接口表条目(只有带 `expose` 的条目才在表内)。 */
142
+ export const FTSHARE_CAPABILITY_BY_TOOL = new Map(FTSHARE_CAPABILITIES.flatMap(entry => entry.expose === undefined ? [] : [[entry.expose.name, entry]]));
143
+ /** 按上游接口名反查接口表条目。 */
144
+ export const FTSHARE_CAPABILITY_BY_INTERFACE = new Map(FTSHARE_CAPABILITIES.map(entry => [entry.interface, entry]));
145
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 宿主侧的目录读取:把随包的 `catalog.json` 读进内存,供 `ftshare_call` 的准入
3
+ * 校验、`./route` 的接口名校验使用。
4
+ *
5
+ * 单独一个模块,是为了让浏览器侧只引 `./catalog`(纯函数),不把 `node:fs` 拖进
6
+ * 打包图里。
7
+ * @module @dsh-ft/dsh-fft-ftshare/catalog-host
8
+ */
9
+ import { type Catalog } from './catalog.js';
10
+ /** 随包目录产物的路径;`lib/` 的上一层就是包根。 */
11
+ export declare const FTSHARE_CATALOG_PATH: URL;
12
+ /**
13
+ * 读取随包目录(首次调用读盘,之后走缓存)。
14
+ * @returns 目录;文件缺失或损坏时为空目录(调用方据此一律判「不在目录里」)。
15
+ */
16
+ export declare function loadCatalog(): Catalog;
17
+ /** 目录索引文件的绝对路径,给模型 `grep` 用。 */
18
+ export declare const FTSHARE_CATALOG_INDEX_PATH: string;
19
+ //# sourceMappingURL=catalog-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-host.d.ts","sourceRoot":"","sources":["../src/catalog-host.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtD,iCAAiC;AACjC,eAAO,MAAM,oBAAoB,KAA8C,CAAA;AAI/E;;;GAGG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAQrC;AAED,gCAAgC;AAChC,eAAO,MAAM,0BAA0B,QAAsD,CAAA"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 宿主侧的目录读取:把随包的 `catalog.json` 读进内存,供 `ftshare_call` 的准入
3
+ * 校验、`./route` 的接口名校验使用。
4
+ *
5
+ * 单独一个模块,是为了让浏览器侧只引 `./catalog`(纯函数),不把 `node:fs` 拖进
6
+ * 打包图里。
7
+ * @module @dsh-ft/dsh-fft-ftshare/catalog-host
8
+ */
9
+ import { readFileSync } from 'node:fs';
10
+ import { asCatalog } from './catalog.js';
11
+ /** 随包目录产物的路径;`lib/` 的上一层就是包根。 */
12
+ export const FTSHARE_CATALOG_PATH = new URL('../catalog.json', import.meta.url);
13
+ let cached;
14
+ /**
15
+ * 读取随包目录(首次调用读盘,之后走缓存)。
16
+ * @returns 目录;文件缺失或损坏时为空目录(调用方据此一律判「不在目录里」)。
17
+ */
18
+ export function loadCatalog() {
19
+ if (cached !== undefined)
20
+ return cached;
21
+ try {
22
+ cached = asCatalog(JSON.parse(readFileSync(FTSHARE_CATALOG_PATH, 'utf8')));
23
+ }
24
+ catch {
25
+ cached = { entries: [] };
26
+ }
27
+ return cached;
28
+ }
29
+ /** 目录索引文件的绝对路径,给模型 `grep` 用。 */
30
+ export const FTSHARE_CATALOG_INDEX_PATH = new URL('../catalog.txt', import.meta.url).pathname;
31
+ //# sourceMappingURL=catalog-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-host.js","sourceRoot":"","sources":["../src/catalog-host.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAA;AAEtD,iCAAiC;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE/E,IAAI,MAA2B,CAAA;AAE/B;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAC1B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * 目录(catalog):上游接口的**全量快照**,回答「上游有什么」。
3
+ *
4
+ * 与接口表(`capabilities.ts`,回答「我们承接什么」)不是一回事。目录由
5
+ * `scripts/build-catalog.mjs` 从 `tools/list` 生成,随包发布两份产物:
6
+ * `catalog.json`(完整,含 `description` 与 `inputSchema`)与 `catalog.txt`
7
+ * (一线索引,供模型 `grep`)。本模块只做纯函数——查名字、读必填入参——因此宿主
8
+ * 与浏览器两侧都能用;读文件的那一半在 `catalog-host.ts`。
9
+ * @module @dsh-ft/dsh-fft-ftshare/catalog
10
+ */
11
+ /** 目录里的一条:接口名、标题、上游说明与入参 JSON Schema。 */
12
+ export interface CatalogEntry {
13
+ /** 上游接口名,例如 `ft_v1_finance_income`。 */
14
+ name: string;
15
+ /** 上游标题。 */
16
+ title: string;
17
+ /** 上游说明原文。 */
18
+ description?: string;
19
+ /** 上游入参 JSON Schema 原文,未做任何改写。 */
20
+ inputSchema?: unknown;
21
+ }
22
+ /** 随包的完整目录产物。 */
23
+ export interface Catalog {
24
+ /** 全部条目,按接口名排序。 */
25
+ entries: readonly CatalogEntry[];
26
+ }
27
+ /**
28
+ * 把任意解析结果收敛成目录。字段缺失的条目直接丢掉而不是留半条:目录是准入判据,
29
+ * 半条会让「在目录里」这个断言变得没有意义。
30
+ * @param value - `catalog.json` 的解析结果。
31
+ * @returns 目录;形状不对时为空目录。
32
+ */
33
+ export declare function asCatalog(value: unknown): Catalog;
34
+ /**
35
+ * 按接口名查目录。
36
+ * @param catalog - 目录。
37
+ * @param name - 上游接口名。
38
+ * @returns 条目;不在目录里时 undefined。
39
+ */
40
+ export declare function catalogEntryOf(catalog: Catalog, name: string): CatalogEntry | undefined;
41
+ /**
42
+ * 读出上游 `inputSchema.required` 里、这次调用没有给的入参名。
43
+ *
44
+ * 只查「有没有给」,不查类型与取值:本地能确定说出口的只有缺席,类型判断留给上游,
45
+ * 免得把「上游其实能容忍的写法」判成错误。
46
+ * @param entry - 目录条目。
47
+ * @param args - 本次调用入参。
48
+ * @returns 缺席的必填入参名,按 schema 顺序。
49
+ */
50
+ export declare function missingRequiredArgs(entry: CatalogEntry, args: Record<string, unknown> | undefined): string[];
51
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,iBAAiB;AACjB,MAAM,WAAW,OAAO;IACtB,mBAAmB;IACnB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;CACjC;AAOD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAajD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,CAK5G"}