hive-intelligence 1.0.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +332 -108
- package/build/{auth-PVT4GTAD.js → auth-77MKFFBQ.js} +3 -3
- package/build/{auth-PVT4GTAD.js.map → auth-77MKFFBQ.js.map} +1 -1
- package/build/{chunk-X7ETBCBP.js → chunk-CGXVV6WR.js} +2 -196
- package/build/chunk-CGXVV6WR.js.map +1 -0
- package/build/{chunk-FAFUYZQS.js → chunk-CP3FXEQA.js} +6 -5
- package/build/chunk-CP3FXEQA.js.map +1 -0
- package/build/{chunk-N43VRMVB.js → chunk-DTUDM6HX.js} +2 -2
- package/build/{chunk-IWBWPHYY.js → chunk-RRI526CJ.js} +3 -3
- package/build/{chunk-IWBWPHYY.js.map → chunk-RRI526CJ.js.map} +1 -1
- package/build/cli.js +27 -26
- package/build/cli.js.map +1 -1
- package/build/{completion-SBTSXTR3.js → completion-J6HFY6PS.js} +2 -2
- package/build/{config-2VDB2ZHE.js → config-ANFERP7A.js} +4 -5
- package/build/config-ANFERP7A.js.map +1 -0
- package/build/{doctor-A76Q4U4K.js → doctor-7WZMCQC7.js} +4 -4
- package/build/{errors-HRGXEUZR.js → errors-U6UZWVSD.js} +2 -2
- package/build/format-CVLLK6GD.js +75 -0
- package/build/format-CVLLK6GD.js.map +1 -0
- package/build/{init-YOJK6CH2.js → init-CAVIFVSH.js} +2 -2
- package/build/{init-YOJK6CH2.js.map → init-CAVIFVSH.js.map} +1 -1
- package/build/{namespace-7SBV4G7R.js → namespace-7JWWBWBL.js} +2 -2
- package/build/{output-6TJ3JTZ7.js → output-7PGQWJY2.js} +2 -2
- package/build/server.js +1 -209
- package/build/server.js.map +1 -1
- package/build/{tools-WYOZZHHG.js → tools-VRRMBCZQ.js} +12 -12
- package/build/tools-VRRMBCZQ.js.map +1 -0
- package/build/{watch-P2QWGFYV.js → watch-A75SVIQ6.js} +3 -3
- package/package.json +41 -7
- package/build/chunk-FAFUYZQS.js.map +0 -1
- package/build/chunk-X7ETBCBP.js.map +0 -1
- package/build/config-2VDB2ZHE.js.map +0 -1
- package/build/format-4OIUGZKY.js +0 -43
- package/build/format-4OIUGZKY.js.map +0 -1
- package/build/tools-WYOZZHHG.js.map +0 -1
- /package/build/{chunk-N43VRMVB.js.map → chunk-DTUDM6HX.js.map} +0 -0
- /package/build/{completion-SBTSXTR3.js.map → completion-J6HFY6PS.js.map} +0 -0
- /package/build/{doctor-A76Q4U4K.js.map → doctor-7WZMCQC7.js.map} +0 -0
- /package/build/{errors-HRGXEUZR.js.map → errors-U6UZWVSD.js.map} +0 -0
- /package/build/{namespace-7SBV4G7R.js.map → namespace-7JWWBWBL.js.map} +0 -0
- /package/build/{output-6TJ3JTZ7.js.map → output-7PGQWJY2.js.map} +0 -0
- /package/build/{watch-P2QWGFYV.js.map → watch-A75SVIQ6.js.map} +0 -0
|
@@ -308,137 +308,6 @@ var NAMESPACE = [
|
|
|
308
308
|
}
|
|
309
309
|
]
|
|
310
310
|
},
|
|
311
|
-
{
|
|
312
|
-
name: "stocks",
|
|
313
|
-
description: "Stock market data \u2014 quotes, candles, financials, analyst ratings",
|
|
314
|
-
commands: [
|
|
315
|
-
{
|
|
316
|
-
name: "quote",
|
|
317
|
-
description: "Real-time stock quote",
|
|
318
|
-
tool: "finnhub_get_stock_quote",
|
|
319
|
-
args: {
|
|
320
|
-
symbol: {
|
|
321
|
-
flag: "--symbol <ticker>",
|
|
322
|
-
description: "Stock ticker (e.g. AAPL)",
|
|
323
|
-
required: true
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
},
|
|
327
|
-
{
|
|
328
|
-
name: "candles",
|
|
329
|
-
description: "Historical OHLCV",
|
|
330
|
-
tool: "finnhub_get_stock_candles",
|
|
331
|
-
args: {
|
|
332
|
-
symbol: {
|
|
333
|
-
flag: "--symbol <ticker>",
|
|
334
|
-
description: "Stock ticker",
|
|
335
|
-
required: true
|
|
336
|
-
},
|
|
337
|
-
resolution: {
|
|
338
|
-
flag: "--resolution <r>",
|
|
339
|
-
description: "Timeframe (1,5,15,30,60,D,W,M)",
|
|
340
|
-
required: true
|
|
341
|
-
},
|
|
342
|
-
from: {
|
|
343
|
-
flag: "--from <timestamp>",
|
|
344
|
-
description: "Start UNIX timestamp",
|
|
345
|
-
required: true
|
|
346
|
-
},
|
|
347
|
-
to: {
|
|
348
|
-
flag: "--to <timestamp>",
|
|
349
|
-
description: "End UNIX timestamp",
|
|
350
|
-
required: true
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
},
|
|
354
|
-
{
|
|
355
|
-
name: "profile",
|
|
356
|
-
description: "Company profile",
|
|
357
|
-
tool: "finnhub_get_company_profile",
|
|
358
|
-
args: {
|
|
359
|
-
symbol: {
|
|
360
|
-
flag: "--symbol <ticker>",
|
|
361
|
-
description: "Stock ticker",
|
|
362
|
-
required: true
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
name: "financials",
|
|
368
|
-
description: "Key financial metrics",
|
|
369
|
-
tool: "finnhub_get_basic_financials",
|
|
370
|
-
args: {
|
|
371
|
-
symbol: {
|
|
372
|
-
flag: "--symbol <ticker>",
|
|
373
|
-
description: "Stock ticker",
|
|
374
|
-
required: true
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
name: "recommendations",
|
|
380
|
-
description: "Analyst recommendations",
|
|
381
|
-
tool: "finnhub_get_stock_recommendations",
|
|
382
|
-
args: {
|
|
383
|
-
symbol: {
|
|
384
|
-
flag: "--symbol <ticker>",
|
|
385
|
-
description: "Stock ticker",
|
|
386
|
-
required: true
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
},
|
|
390
|
-
{
|
|
391
|
-
name: "news",
|
|
392
|
-
description: "Company news",
|
|
393
|
-
tool: "finnhub_get_company_news",
|
|
394
|
-
args: {
|
|
395
|
-
symbol: {
|
|
396
|
-
flag: "--symbol <ticker>",
|
|
397
|
-
description: "Stock ticker",
|
|
398
|
-
required: true
|
|
399
|
-
},
|
|
400
|
-
from: {
|
|
401
|
-
flag: "--from <date>",
|
|
402
|
-
description: "From date (YYYY-MM-DD)",
|
|
403
|
-
required: true
|
|
404
|
-
},
|
|
405
|
-
to: {
|
|
406
|
-
flag: "--to <date>",
|
|
407
|
-
description: "To date (YYYY-MM-DD)",
|
|
408
|
-
required: true
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
]
|
|
413
|
-
},
|
|
414
|
-
{
|
|
415
|
-
name: "macro",
|
|
416
|
-
description: "Economic calendar, market status, and country data",
|
|
417
|
-
commands: [
|
|
418
|
-
{
|
|
419
|
-
name: "calendar",
|
|
420
|
-
description: "Economic event calendar",
|
|
421
|
-
tool: "finnhub_get_economic_calendar"
|
|
422
|
-
},
|
|
423
|
-
{
|
|
424
|
-
name: "market-status",
|
|
425
|
-
description: "Market open/close status",
|
|
426
|
-
tool: "finnhub_get_market_status",
|
|
427
|
-
args: {
|
|
428
|
-
exchange: {
|
|
429
|
-
flag: "--exchange <code>",
|
|
430
|
-
description: "Exchange code (e.g., US, L, T)",
|
|
431
|
-
required: true
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
name: "countries",
|
|
437
|
-
description: "Supported countries list",
|
|
438
|
-
tool: "finnhub_get_country_list"
|
|
439
|
-
}
|
|
440
|
-
]
|
|
441
|
-
},
|
|
442
311
|
{
|
|
443
312
|
name: "prediction",
|
|
444
313
|
description: "Prediction markets \u2014 events, traders, outcomes (Polymarket, Kalshi)",
|
|
@@ -687,21 +556,8 @@ var NAMESPACE = [
|
|
|
687
556
|
},
|
|
688
557
|
{
|
|
689
558
|
name: "nft",
|
|
690
|
-
description: "NFT analytics \u2014 collections, markets,
|
|
559
|
+
description: "NFT analytics \u2014 collections, markets, holders",
|
|
691
560
|
commands: [
|
|
692
|
-
{
|
|
693
|
-
name: "trending",
|
|
694
|
-
description: "Trending NFT collections",
|
|
695
|
-
tool: "get_nft_market_trends"
|
|
696
|
-
},
|
|
697
|
-
{
|
|
698
|
-
name: "collection",
|
|
699
|
-
description: "Collection details",
|
|
700
|
-
tool: "get_nft_collection",
|
|
701
|
-
args: {
|
|
702
|
-
slug: { flag: "--slug <name>", description: "Collection slug" }
|
|
703
|
-
}
|
|
704
|
-
},
|
|
705
561
|
{
|
|
706
562
|
name: "markets",
|
|
707
563
|
description: "NFT marketplace data",
|
|
@@ -807,56 +663,6 @@ var NAMESPACE = [
|
|
|
807
663
|
}
|
|
808
664
|
}
|
|
809
665
|
]
|
|
810
|
-
},
|
|
811
|
-
{
|
|
812
|
-
name: "altdata",
|
|
813
|
-
description: "Alternative data \u2014 insider trades, earnings, IPOs, sentiment",
|
|
814
|
-
commands: [
|
|
815
|
-
{
|
|
816
|
-
name: "insider",
|
|
817
|
-
description: "Insider trading transactions",
|
|
818
|
-
tool: "finnhub_get_insider_transactions",
|
|
819
|
-
args: {
|
|
820
|
-
symbol: {
|
|
821
|
-
flag: "--symbol <ticker>",
|
|
822
|
-
description: "Stock ticker",
|
|
823
|
-
required: true
|
|
824
|
-
}
|
|
825
|
-
}
|
|
826
|
-
},
|
|
827
|
-
{
|
|
828
|
-
name: "sentiment",
|
|
829
|
-
description: "Insider sentiment score",
|
|
830
|
-
tool: "finnhub_get_insider_sentiment",
|
|
831
|
-
args: {
|
|
832
|
-
symbol: {
|
|
833
|
-
flag: "--symbol <ticker>",
|
|
834
|
-
description: "Stock ticker",
|
|
835
|
-
required: true
|
|
836
|
-
},
|
|
837
|
-
from: {
|
|
838
|
-
flag: "--from <date>",
|
|
839
|
-
description: "From date (YYYY-MM-DD)",
|
|
840
|
-
required: true
|
|
841
|
-
},
|
|
842
|
-
to: {
|
|
843
|
-
flag: "--to <date>",
|
|
844
|
-
description: "To date (YYYY-MM-DD)",
|
|
845
|
-
required: true
|
|
846
|
-
}
|
|
847
|
-
}
|
|
848
|
-
},
|
|
849
|
-
{
|
|
850
|
-
name: "earnings",
|
|
851
|
-
description: "Earnings calendar",
|
|
852
|
-
tool: "finnhub_get_earnings_calendar"
|
|
853
|
-
},
|
|
854
|
-
{
|
|
855
|
-
name: "ipo",
|
|
856
|
-
description: "IPO calendar",
|
|
857
|
-
tool: "finnhub_get_ipo_calendar"
|
|
858
|
-
}
|
|
859
|
-
]
|
|
860
666
|
}
|
|
861
667
|
];
|
|
862
668
|
function resolveCommand(domain, subcommand) {
|
|
@@ -872,4 +678,4 @@ export {
|
|
|
872
678
|
resolveCommand,
|
|
873
679
|
getAllDomainCommands
|
|
874
680
|
};
|
|
875
|
-
//# sourceMappingURL=chunk-
|
|
681
|
+
//# sourceMappingURL=chunk-CGXVV6WR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/namespace.ts"],"sourcesContent":["interface SubCommand {\n name: string;\n description: string;\n tool: string;\n args?: Record<\n string,\n { flag: string; description: string; required?: boolean }\n >;\n}\n\ninterface DomainCommand {\n name: string;\n description: string;\n commands: SubCommand[];\n}\n\nexport type { SubCommand, DomainCommand };\n\nexport const NAMESPACE: DomainCommand[] = [\n {\n name: \"market\",\n description: \"Crypto market data — prices, charts, rankings, stablecoins\",\n commands: [\n {\n name: \"price\",\n description: \"Get token price\",\n tool: \"get_price\",\n args: {\n ids: {\n flag: \"--ids <tokens>\",\n description: \"Token IDs (comma-separated)\",\n required: true,\n },\n vs_currencies: {\n flag: \"--vs <currencies>\",\n description: \"Target currencies\",\n required: true,\n },\n },\n },\n {\n name: \"top\",\n description: \"Top coins by market cap\",\n tool: \"get_coins_market_data\",\n args: {\n vs_currency: {\n flag: \"--vs <currency>\",\n description: \"Quote currency\",\n required: true,\n },\n per_page: { flag: \"--limit <n>\", description: \"Number of results\" },\n },\n },\n { name: \"trending\", description: \"Trending coins\", tool: \"get_trending\" },\n {\n name: \"global\",\n description: \"Global market stats\",\n tool: \"get_global_stats\",\n },\n {\n name: \"ohlc\",\n description: \"OHLC candle data\",\n tool: \"get_coin_ohlc\",\n args: {\n id: { flag: \"--id <coin>\", description: \"Coin ID\", required: true },\n vs_currency: {\n flag: \"--vs <currency>\",\n description: \"Quote currency (default: usd)\",\n },\n days: { flag: \"--days <n>\", description: \"Number of days\" },\n },\n },\n {\n name: \"chart\",\n description: \"Price chart data\",\n tool: \"get_coin_market_chart_range\",\n args: {\n id: { flag: \"--id <coin>\", description: \"Coin ID\", required: true },\n vs_currency: {\n flag: \"--vs <currency>\",\n description: \"Quote currency (default: usd)\",\n },\n from: {\n flag: \"--from <timestamp>\",\n description: \"Start UNIX timestamp\",\n required: true,\n },\n to: {\n flag: \"--to <timestamp>\",\n description: \"End UNIX timestamp\",\n required: true,\n },\n },\n },\n {\n name: \"gainers\",\n description: \"Top gainers and losers\",\n tool: \"get_gainers_losers\",\n args: {\n vs_currency: {\n flag: \"--vs <currency>\",\n description: \"Quote currency (default: usd)\",\n },\n },\n },\n {\n name: \"gas\",\n description: \"Gas prices by chain\",\n tool: \"goldrush_get_gas_prices\",\n args: {\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n },\n },\n ],\n },\n {\n name: \"defi\",\n description: \"DeFi protocol analytics — TVL, fees, yields, bridges\",\n commands: [\n {\n name: \"tvl\",\n description: \"Protocol TVL\",\n tool: \"get_protocol_tvl\",\n args: {\n protocol: {\n flag: \"--protocol <name>\",\n description: \"Protocol slug\",\n required: true,\n },\n },\n },\n {\n name: \"protocols\",\n description: \"All DeFi protocols\",\n tool: \"get_defi_protocols\",\n },\n {\n name: \"fees\",\n description: \"Protocol fee data\",\n tool: \"get_protocol_fees\",\n args: {\n protocol: {\n flag: \"--protocol <name>\",\n description: \"Protocol slug\",\n required: true,\n },\n },\n },\n {\n name: \"yields\",\n description: \"Yield farming pools\",\n tool: \"get_yield_pools\",\n },\n { name: \"chains\", description: \"Chain TVL rankings\", tool: \"get_chains\" },\n {\n name: \"bridges\",\n description: \"Cross-chain bridges\",\n tool: \"defillama_get_bridges\",\n },\n ],\n },\n {\n name: \"portfolio\",\n description: \"Wallet portfolios — balances, DeFi positions, NFTs, history\",\n commands: [\n {\n name: \"balance\",\n description: \"Wallet total balance\",\n tool: \"get_wallet_balances\",\n args: {\n id: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n },\n },\n {\n name: \"tokens\",\n description: \"Token holdings\",\n tool: \"goldrush_get_token_balances\",\n args: {\n id: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n },\n },\n {\n name: \"positions\",\n description: \"DeFi positions\",\n tool: \"moralis_get_wallet_defi_positions\",\n args: {\n id: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n },\n },\n {\n name: \"nfts\",\n description: \"NFT holdings\",\n tool: \"get_wallet_nft_collections\",\n args: {\n id: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n },\n },\n {\n name: \"history\",\n description: \"Portfolio value history\",\n tool: \"goldrush_get_portfolio_history\",\n args: {\n walletAddress: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n },\n },\n ],\n },\n {\n name: \"security\",\n description: \"Token and contract security — scans, approvals, simulations\",\n commands: [\n {\n name: \"scan\",\n description: \"Token security analysis\",\n tool: \"get_token_security\",\n args: {\n chain_id: {\n flag: \"--chain <id>\",\n description: \"Chain ID (1=ETH, 56=BSC)\",\n required: true,\n },\n contract_addresses: {\n flag: \"--address <addr>\",\n description: \"Token contract\",\n required: true,\n },\n },\n },\n {\n name: \"approve\",\n description: \"Audit token approvals\",\n tool: \"check_approval_security\",\n args: {\n chain_id: {\n flag: \"--chain <id>\",\n description: \"Chain ID\",\n required: true,\n },\n contract_addresses: {\n flag: \"--address <addr>\",\n description: \"Contract address\",\n required: true,\n },\n },\n },\n {\n name: \"simulate\",\n description: \"Simulate a transaction\",\n tool: \"simulate_evm_transaction\",\n args: {\n chain_id: {\n flag: \"--chain <id>\",\n description: \"Chain ID (1=ETH)\",\n required: true,\n },\n from: {\n flag: \"--from <addr>\",\n description: \"Sender address\",\n required: true,\n },\n to: {\n flag: \"--to <addr>\",\n description: \"Contract/recipient address\",\n required: true,\n },\n data: {\n flag: \"--data <hex>\",\n description: \"Transaction calldata (hex)\",\n },\n value: { flag: \"--value <wei>\", description: \"Value in wei\" },\n },\n },\n {\n name: \"rugpull\",\n description: \"Detect rug pull indicators\",\n tool: \"detect_rugpull\",\n args: {\n chain_id: {\n flag: \"--chain <id>\",\n description: \"Chain ID\",\n required: true,\n },\n contract_addresses: {\n flag: \"--address <addr>\",\n description: \"Contract\",\n required: true,\n },\n },\n },\n {\n name: \"hacks\",\n description: \"Recent DeFi hacks\",\n tool: \"defillama_get_hacks\",\n },\n ],\n },\n {\n name: \"prediction\",\n description:\n \"Prediction markets — events, traders, outcomes (Polymarket, Kalshi)\",\n commands: [\n {\n name: \"categories\",\n description: \"Prediction market categories\",\n tool: \"codex_prediction_categories\",\n },\n {\n name: \"events\",\n description: \"Filter prediction events\",\n tool: \"codex_filter_prediction_events\",\n args: {\n phrase: {\n flag: \"--query <text>\",\n description: \"Search phrase\",\n required: false,\n },\n },\n },\n {\n name: \"markets\",\n description: \"Filter prediction markets\",\n tool: \"codex_filter_prediction_markets\",\n args: {\n phrase: {\n flag: \"--query <text>\",\n description: \"Search phrase\",\n required: false,\n },\n },\n },\n {\n name: \"traders\",\n description: \"Top prediction market traders\",\n tool: \"codex_filter_prediction_traders\",\n },\n ],\n },\n {\n name: \"exchange\",\n description:\n \"Centralized exchange data — tickers, orderbooks, trades, funding\",\n commands: [\n {\n name: \"ticker\",\n description: \"Exchange ticker\",\n tool: \"get_ticker\",\n args: {\n exchange: {\n flag: \"--exchange <name>\",\n description: \"Exchange (binance, coinbase)\",\n required: true,\n },\n symbol: {\n flag: \"--symbol <pair>\",\n description: \"Trading pair (BTC/USDT)\",\n required: true,\n },\n },\n },\n {\n name: \"orderbook\",\n description: \"Order book depth\",\n tool: \"get_orderbook\",\n args: {\n exchange: {\n flag: \"--exchange <name>\",\n description: \"Exchange\",\n required: true,\n },\n symbol: {\n flag: \"--symbol <pair>\",\n description: \"Trading pair\",\n required: true,\n },\n },\n },\n {\n name: \"trades\",\n description: \"Recent trades\",\n tool: \"get_recent_trades\",\n args: {\n exchange: {\n flag: \"--exchange <name>\",\n description: \"Exchange\",\n required: true,\n },\n symbol: {\n flag: \"--symbol <pair>\",\n description: \"Trading pair\",\n required: true,\n },\n },\n },\n {\n name: \"funding\",\n description: \"Perpetual funding rates\",\n tool: \"get_funding_rate\",\n args: {\n exchange: {\n flag: \"--exchange <name>\",\n description: \"Exchange (binance, bybit)\",\n required: true,\n },\n symbol: {\n flag: \"--symbol <pair>\",\n description: \"Futures pair (e.g. BTC/USDT:USDT)\",\n required: true,\n },\n },\n },\n {\n name: \"list\",\n description: \"List all exchanges\",\n tool: \"get_exchanges\",\n },\n ],\n },\n {\n name: \"dex\",\n description: \"DEX analytics — pools, trending pairs, trades, volume\",\n commands: [\n {\n name: \"trending\",\n description: \"Trending DEX pools\",\n tool: \"get_trending_pools\",\n },\n {\n name: \"pools\",\n description: \"Pool search and filter\",\n tool: \"get_pools\",\n args: {\n network: {\n flag: \"--network <name>\",\n description: \"Network (eth, bsc, solana)\",\n required: true,\n },\n page: { flag: \"--page <n>\", description: \"Page number\" },\n },\n },\n {\n name: \"trades\",\n description: \"Token trading activity\",\n tool: \"get_token_trades\",\n args: {\n network: {\n flag: \"--network <name>\",\n description: \"Network (eth, bsc, solana)\",\n },\n pool_address: { flag: \"--pool <addr>\", description: \"Pool address\" },\n },\n },\n {\n name: \"volume\",\n description: \"DEX volume rankings\",\n tool: \"get_dex_volumes\",\n },\n {\n name: \"pairs\",\n description: \"Token trading pairs\",\n tool: \"get_token_pools\",\n args: {\n network: {\n flag: \"--network <name>\",\n description: \"Network\",\n required: true,\n },\n token_address: {\n flag: \"--token <addr>\",\n description: \"Token address\",\n required: true,\n },\n },\n },\n ],\n },\n {\n name: \"wallet\",\n description:\n \"On-chain wallet data — balances, transfers, transactions, approvals\",\n commands: [\n {\n name: \"balances\",\n description: \"Token balances across chains\",\n tool: \"goldrush_get_multichain_balances\",\n args: {\n walletAddress: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n },\n },\n {\n name: \"transfers\",\n description: \"ERC-20 transfers\",\n tool: \"goldrush_get_erc20_transfers\",\n args: {\n walletAddress: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n },\n },\n {\n name: \"transactions\",\n description: \"Recent transactions\",\n tool: \"goldrush_get_transactions_latest\",\n args: {\n walletAddress: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n },\n },\n {\n name: \"approvals\",\n description: \"Token approval audit\",\n tool: \"goldrush_get_token_approvals\",\n args: {\n walletAddress: {\n flag: \"--address <addr>\",\n description: \"Wallet address\",\n required: true,\n },\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n },\n },\n ],\n },\n {\n name: \"nft\",\n description: \"NFT analytics — collections, markets, holders\",\n commands: [\n {\n name: \"markets\",\n description: \"NFT marketplace data\",\n tool: \"get_nft_markets\",\n },\n {\n name: \"search\",\n description: \"Search NFT collections\",\n tool: \"search_nfts\",\n args: {\n query: {\n flag: \"--query <text>\",\n description: \"Search term\",\n required: true,\n },\n },\n },\n ],\n },\n {\n name: \"network\",\n description:\n \"Blockchain infrastructure — chains, gas, blocks, transactions\",\n commands: [\n {\n name: \"chains\",\n description: \"List supported chains\",\n tool: \"goldrush_get_chains\",\n },\n {\n name: \"gas\",\n description: \"Gas prices\",\n tool: \"goldrush_get_gas_prices\",\n args: {\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n },\n },\n {\n name: \"block\",\n description: \"Block data\",\n tool: \"goldrush_get_block\",\n args: {\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n blockHeight: {\n flag: \"--height <n>\",\n description: \"Block height\",\n required: true,\n },\n },\n },\n {\n name: \"resolve\",\n description: \"Resolve ENS/DNS name\",\n tool: \"goldrush_resolve_address\",\n args: {\n chainName: {\n flag: \"--chain <name>\",\n description: \"Chain name\",\n required: true,\n },\n walletAddress: {\n flag: \"--address <addr>\",\n description: \"Address or ENS name\",\n required: true,\n },\n },\n },\n ],\n },\n {\n name: \"search\",\n description: \"Search across all data\",\n commands: [\n {\n name: \"tokens\",\n description: \"Search tokens\",\n tool: \"search_all\",\n args: {\n query: {\n flag: \"--query <text>\",\n description: \"Search term\",\n required: true,\n },\n },\n },\n {\n name: \"pools\",\n description: \"Search DEX pools\",\n tool: \"search_pools\",\n args: {\n query: {\n flag: \"--query <text>\",\n description: \"Search term\",\n required: true,\n },\n },\n },\n ],\n },\n];\n\nexport function resolveCommand(\n domain: string,\n subcommand: string,\n): SubCommand | undefined {\n const d = NAMESPACE.find((n) => n.name === domain);\n return d?.commands.find((c) => c.name === subcommand);\n}\n\nexport function getAllDomainCommands(): DomainCommand[] {\n return NAMESPACE;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -187,7 +187,7 @@ async function writeOutput(envelope) {
|
|
|
187
187
|
}
|
|
188
188
|
if (globalOpts.csv && envelope.ok && Array.isArray(envelope.data)) {
|
|
189
189
|
process.stdout.write(
|
|
190
|
-
formatCsv(envelope.data) + "\n"
|
|
190
|
+
await formatCsv(envelope.data) + "\n"
|
|
191
191
|
);
|
|
192
192
|
return;
|
|
193
193
|
}
|
|
@@ -206,7 +206,7 @@ async function writeOutput(envelope) {
|
|
|
206
206
|
}
|
|
207
207
|
if (envelope.ok && envelope.data != null) {
|
|
208
208
|
if (Array.isArray(envelope.data) && envelope.data.length > 0 && typeof envelope.data[0] === "object" && envelope.data[0] !== null) {
|
|
209
|
-
const { formatTable } = await import("./format-
|
|
209
|
+
const { formatTable } = await import("./format-CVLLK6GD.js");
|
|
210
210
|
process.stdout.write(
|
|
211
211
|
formatTable(envelope.data) + "\n"
|
|
212
212
|
);
|
|
@@ -246,11 +246,12 @@ function debug(msg) {
|
|
|
246
246
|
function isCI() {
|
|
247
247
|
return !!(process.env.CI || process.env.GITHUB_ACTIONS || process.env.GITLAB_CI || process.env.JENKINS_URL || process.env.HIVE_CI);
|
|
248
248
|
}
|
|
249
|
-
function formatCsv(data) {
|
|
249
|
+
async function formatCsv(data) {
|
|
250
250
|
if (data.length === 0) return "";
|
|
251
|
+
const { formatCell } = await import("./format-CVLLK6GD.js");
|
|
251
252
|
const keys = [...new Set(data.flatMap((row) => Object.keys(row)))];
|
|
252
253
|
const escape = (val) => {
|
|
253
|
-
const str =
|
|
254
|
+
const str = formatCell(val);
|
|
254
255
|
return str.includes(",") || str.includes('"') || str.includes("\n") ? `"${str.replace(/"/g, '""')}"` : str;
|
|
255
256
|
};
|
|
256
257
|
const header = keys.join(",");
|
|
@@ -277,4 +278,4 @@ export {
|
|
|
277
278
|
isCI,
|
|
278
279
|
formatCsv
|
|
279
280
|
};
|
|
280
|
-
//# sourceMappingURL=chunk-
|
|
281
|
+
//# sourceMappingURL=chunk-CP3FXEQA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/jq.ts","../src/cli/output.ts"],"sourcesContent":["/**\n * Minimal jq-like evaluator for CLI --jq flag.\n * Supports: .field, .a.b, .[N], .[] | .field, .[] | select(.field op val)\n */\nexport function jqEval(data: unknown, expr: string): unknown {\n const trimmed = expr.trim();\n if (trimmed === \".\") return data;\n\n // Handle pipe: split on \" | \" and chain\n if (trimmed.includes(\" | \")) {\n const parts = trimmed.split(\" | \");\n let result = data;\n for (const part of parts) {\n result = jqEval(result, part.trim());\n }\n return result;\n }\n\n // Handle select(.field op value)\n const selectMatch = trimmed.match(\n /^select\\(\\.(\\w[\\w.]*)\\s*(>|<|>=|<=|==|!=)\\s*(.+)\\)$/,\n );\n if (selectMatch) {\n const [, field, op, rawVal] = selectMatch;\n if (!Array.isArray(data)) return data;\n const val = parseValue(rawVal);\n return data.filter((item) => {\n const fieldVal = extractPath(item, field);\n return compare(fieldVal, op, val);\n });\n }\n\n // If data is an array and expression is a plain field access, map over elements.\n // Exclude bracket expressions like .[1] or .[] to avoid false-positive mapping.\n if (\n Array.isArray(data) &&\n trimmed.startsWith(\".\") &&\n !trimmed.includes(\"[\")\n ) {\n const path = trimmed.slice(1);\n if (path && !path.includes(\" \")) {\n return data.map((item) => extractPath(item, path));\n }\n }\n\n // Handle .[] (iterate array)\n if (trimmed === \".[]\") {\n if (Array.isArray(data)) return data;\n if (typeof data === \"object\" && data !== null) return Object.values(data);\n return data;\n }\n\n // Handle .[N] (array index)\n const indexMatch = trimmed.match(/^\\.\\[(\\d+)\\]$/);\n if (indexMatch) {\n const idx = parseInt(indexMatch[1], 10);\n if (Array.isArray(data)) return data[idx];\n return undefined;\n }\n\n // Handle .field or .a.b.c — may include .[] in path\n if (trimmed.startsWith(\".\")) {\n const path = trimmed.slice(1);\n return extractPath(data, path);\n }\n\n return extractPath(data, trimmed);\n}\n\nfunction extractPath(data: unknown, path: string): unknown {\n if (!path) return data;\n\n const parts: string[] = [];\n let current = \"\";\n for (let i = 0; i < path.length; i++) {\n if (path[i] === \".\" && path[i + 1] === \"[\" && path[i + 2] === \"]\") {\n if (current) parts.push(current);\n parts.push(\"[]\");\n current = \"\";\n i += 2;\n } else if (path[i] === \".\" && current) {\n parts.push(current);\n current = \"\";\n } else if (path[i] !== \".\" || current) {\n current += path[i];\n }\n }\n if (current) parts.push(current);\n\n let result: unknown = data;\n for (const part of parts) {\n if (result == null) return undefined;\n if (part === \"[]\") {\n if (Array.isArray(result)) return result;\n return undefined;\n }\n if (typeof result === \"object\" && result !== null) {\n result = (result as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return result;\n}\n\nfunction parseValue(raw: string): string | number | boolean {\n const trimmed = raw.trim();\n if (trimmed === \"true\") return true;\n if (trimmed === \"false\") return false;\n if (/^\".*\"$/.test(trimmed)) return trimmed.slice(1, -1);\n const num = Number(trimmed);\n if (!isNaN(num)) return num;\n return trimmed;\n}\n\nfunction compare(a: unknown, op: string, b: unknown): boolean {\n switch (op) {\n case \"==\":\n return a === b;\n case \"!=\":\n return a !== b;\n case \">\":\n return typeof a === \"number\" && typeof b === \"number\" && a > b;\n case \"<\":\n return typeof a === \"number\" && typeof b === \"number\" && a < b;\n case \">=\":\n return typeof a === \"number\" && typeof b === \"number\" && a >= b;\n case \"<=\":\n return typeof a === \"number\" && typeof b === \"number\" && a <= b;\n default:\n return false;\n }\n}\n","import { CliError, type ErrorCode } from \"./errors.js\";\nimport { jqEval } from \"./jq.js\";\n\n// SIGPIPE — clean exit when piping to `head`, `less`, etc.\nprocess.on(\"SIGPIPE\", () => process.exit(0));\n\n/** Global output options set from CLI flags. */\nexport interface OutputOptions {\n json?: boolean;\n pretty?: boolean;\n fields?: string;\n quiet?: boolean;\n verbose?: boolean;\n noColor?: boolean;\n jq?: string;\n csv?: boolean;\n}\n\nlet globalOpts: OutputOptions = {};\n\nexport function setOutputOptions(opts: OutputOptions): void {\n globalOpts = opts;\n}\n\n/** Whether to emit JSON (non-TTY default, or --json flag). */\nexport function shouldOutputJson(): boolean {\n if (globalOpts.json) return true;\n if (globalOpts.pretty) return false;\n return !process.stdout.isTTY;\n}\n\n/** Whether color is enabled. */\nexport function colorEnabled(): boolean {\n if (globalOpts.noColor) return false;\n if (process.env.NO_COLOR) return false;\n if (process.env.FORCE_COLOR) return true;\n return !!process.stdout.isTTY;\n}\n\n/** Apply ANSI color if enabled. */\nexport function red(s: string): string {\n return colorEnabled() ? `\\x1b[31m${s}\\x1b[0m` : s;\n}\nexport function green(s: string): string {\n return colorEnabled() ? `\\x1b[32m${s}\\x1b[0m` : s;\n}\nexport function yellow(s: string): string {\n return colorEnabled() ? `\\x1b[33m${s}\\x1b[0m` : s;\n}\nexport function dim(s: string): string {\n return colorEnabled() ? `\\x1b[2m${s}\\x1b[0m` : s;\n}\nexport function bold(s: string): string {\n return colorEnabled() ? `\\x1b[1m${s}\\x1b[0m` : s;\n}\n\n/** The standard envelope for all CLI output. */\nexport interface Envelope<T = unknown> {\n ok: boolean;\n data?: T;\n error?: {\n code: ErrorCode;\n message: string;\n suggestion?: string;\n };\n meta: {\n tool?: string;\n provider?: string;\n duration_ms?: number;\n };\n}\n\n/** Build a success envelope. */\nexport function successEnvelope<T>(\n data: T,\n meta: Envelope[\"meta\"],\n): Envelope<T> {\n return { ok: true, data, meta };\n}\n\n/** Build an error envelope. */\nexport function errorEnvelope(err: CliError, meta: Envelope[\"meta\"]): Envelope {\n return {\n ok: false,\n error: {\n code: err.code,\n message: err.message,\n ...(err.suggestion && { suggestion: err.suggestion }),\n },\n meta,\n };\n}\n\n/** Apply --fields filtering to data. */\nfunction applyFields<T>(data: T, fields: string | undefined): T {\n if (!fields) return data;\n const keys = fields.split(\",\").map((f) => f.trim());\n if (Array.isArray(data)) {\n return data.map((item) => pick(item, keys)) as T;\n }\n if (typeof data === \"object\" && data !== null) {\n return pick(data, keys) as T;\n }\n return data;\n}\n\nfunction pick(obj: unknown, keys: string[]): unknown {\n if (typeof obj !== \"object\" || obj === null) return obj;\n const result: Record<string, unknown> = {};\n for (const key of keys) {\n if (key in (obj as Record<string, unknown>)) {\n result[key] = (obj as Record<string, unknown>)[key];\n }\n }\n return result;\n}\n\n/** Write an envelope to stdout. Handles JSON vs human mode. */\nexport async function writeOutput(envelope: Envelope): Promise<void> {\n if (globalOpts.fields && envelope.data) {\n envelope = {\n ...envelope,\n data: applyFields(envelope.data, globalOpts.fields),\n };\n }\n\n // Apply --jq filter\n if (globalOpts.jq && envelope.data != null) {\n envelope = { ...envelope, data: jqEval(envelope.data, globalOpts.jq) };\n }\n\n // CSV output mode\n if (globalOpts.csv && envelope.ok && Array.isArray(envelope.data)) {\n process.stdout.write(\n (await formatCsv(envelope.data as Record<string, unknown>[])) + \"\\n\",\n );\n return;\n }\n\n if (shouldOutputJson()) {\n const output = JSON.stringify(envelope, null, 2);\n process.stdout.write(output + \"\\n\");\n return;\n }\n\n // Human-readable mode\n if (!globalOpts.quiet && envelope.meta.tool) {\n const status = envelope.ok\n ? green(`✓ ${envelope.meta.tool}`)\n : red(`✗ ${envelope.meta.tool}`);\n const provider = envelope.meta.provider\n ? dim(` (${envelope.meta.provider})`)\n : \"\";\n const timing =\n envelope.meta.duration_ms != null\n ? dim(` ${envelope.meta.duration_ms}ms`)\n : \"\";\n process.stderr.write(`${status}${provider}${timing}\\n\\n`);\n }\n\n if (envelope.ok && envelope.data != null) {\n // Auto-table: array of objects renders as a fixed-width table\n if (\n Array.isArray(envelope.data) &&\n envelope.data.length > 0 &&\n typeof envelope.data[0] === \"object\" &&\n envelope.data[0] !== null\n ) {\n const { formatTable } = await import(\"./format.js\");\n process.stdout.write(\n formatTable(envelope.data as Record<string, unknown>[]) + \"\\n\",\n );\n return;\n }\n\n const text =\n typeof envelope.data === \"string\"\n ? envelope.data\n : JSON.stringify(envelope.data, null, 2);\n process.stdout.write(text + \"\\n\");\n }\n\n if (!envelope.ok && envelope.error) {\n process.stderr.write(red(`Error: ${envelope.error.message}\\n`));\n if (envelope.error.suggestion) {\n process.stderr.write(\n yellow(` Suggestion: ${envelope.error.suggestion}\\n`),\n );\n }\n }\n}\n\n/** Write a data envelope and exit. */\nexport async function outputSuccess<T>(\n data: T,\n meta: Envelope[\"meta\"],\n): Promise<void> {\n await writeOutput(successEnvelope(data, meta));\n}\n\n/** Write an error envelope and exit with the appropriate code. */\nexport async function outputError(\n err: CliError,\n meta: Envelope[\"meta\"],\n): Promise<never> {\n await writeOutput(errorEnvelope(err, meta));\n process.exit(err.exitCode);\n}\n\n/** Log to stderr (only when not --quiet). */\nexport function info(msg: string): void {\n if (!globalOpts.quiet) {\n process.stderr.write(msg + \"\\n\");\n }\n}\n\n/** Log to stderr (only when --verbose). */\nexport function debug(msg: string): void {\n if (globalOpts.verbose) {\n process.stderr.write(dim(`[debug] ${msg}`) + \"\\n\");\n }\n}\n\n/** Detect CI environment. */\nexport function isCI(): boolean {\n return !!(\n process.env.CI ||\n process.env.GITHUB_ACTIONS ||\n process.env.GITLAB_CI ||\n process.env.JENKINS_URL ||\n process.env.HIVE_CI\n );\n}\n\n/** Format array of objects as RFC 4180 CSV. */\nexport async function formatCsv(\n data: Record<string, unknown>[],\n): Promise<string> {\n if (data.length === 0) return \"\";\n const { formatCell } = await import(\"./format.js\");\n const keys = [...new Set(data.flatMap((row) => Object.keys(row)))];\n const escape = (val: unknown): string => {\n const str = formatCell(val);\n return str.includes(\",\") || str.includes('\"') || str.includes(\"\\n\")\n ? `\"${str.replace(/\"/g, '\"\"')}\"`\n : str;\n };\n const header = keys.join(\",\");\n const rows = data.map((row) => keys.map((k) => escape(row[k])).join(\",\"));\n return [header, ...rows].join(\"\\n\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
debug,
|
|
10
10
|
shouldOutputJson,
|
|
11
11
|
writeOutput
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-CP3FXEQA.js";
|
|
13
13
|
import {
|
|
14
14
|
__commonJS,
|
|
15
15
|
__toESM
|
|
@@ -3105,4 +3105,4 @@ async function executeTool(toolName, args, timeoutMs = 3e4) {
|
|
|
3105
3105
|
export {
|
|
3106
3106
|
executeTool
|
|
3107
3107
|
};
|
|
3108
|
-
//# sourceMappingURL=chunk-
|
|
3108
|
+
//# sourceMappingURL=chunk-DTUDM6HX.js.map
|
|
@@ -186,14 +186,14 @@ function classifyError(error, toolName) {
|
|
|
186
186
|
return new CliError(
|
|
187
187
|
"PROVIDER_UNAVAILABLE",
|
|
188
188
|
msg,
|
|
189
|
-
"Run: hive
|
|
189
|
+
"Run: hive auth login"
|
|
190
190
|
);
|
|
191
191
|
}
|
|
192
192
|
if (lower.includes("not found") && toolName) {
|
|
193
193
|
return new CliError(
|
|
194
194
|
"TOOL_NOT_FOUND",
|
|
195
195
|
msg,
|
|
196
|
-
`Run: hive
|
|
196
|
+
`Run: hive tools search "${toolName}"`
|
|
197
197
|
);
|
|
198
198
|
}
|
|
199
199
|
return new CliError("API_ERROR", msg);
|
|
@@ -209,4 +209,4 @@ export {
|
|
|
209
209
|
classifyError,
|
|
210
210
|
suggestSimilarTools
|
|
211
211
|
};
|
|
212
|
-
//# sourceMappingURL=chunk-
|
|
212
|
+
//# sourceMappingURL=chunk-RRI526CJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/fastest-levenshtein/esm/mod.js","../src/cli/errors.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import { distance } from \"fastest-levenshtein\";\n\nexport const ExitCode = {\n SUCCESS: 0,\n GENERAL_ERROR: 1,\n INVALID_ARGS: 2,\n TOOL_NOT_FOUND: 3,\n API_ERROR: 4,\n AUTH_FAILURE: 5,\n RATE_LIMITED: 6,\n TIMEOUT: 124,\n} as const;\n\nexport type ExitCodeValue = (typeof ExitCode)[keyof typeof ExitCode];\n\nexport type ErrorCode =\n | \"GENERAL_ERROR\"\n | \"INVALID_ARGS\"\n | \"TOOL_NOT_FOUND\"\n | \"API_ERROR\"\n | \"PROVIDER_UNAVAILABLE\"\n | \"RATE_LIMITED\"\n | \"TIMEOUT\"\n | \"VALIDATION_ERROR\";\n\nconst ERROR_CODE_TO_EXIT: Record<ErrorCode, ExitCodeValue> = {\n GENERAL_ERROR: ExitCode.GENERAL_ERROR,\n INVALID_ARGS: ExitCode.INVALID_ARGS,\n TOOL_NOT_FOUND: ExitCode.TOOL_NOT_FOUND,\n API_ERROR: ExitCode.API_ERROR,\n PROVIDER_UNAVAILABLE: ExitCode.AUTH_FAILURE,\n RATE_LIMITED: ExitCode.RATE_LIMITED,\n TIMEOUT: ExitCode.TIMEOUT,\n VALIDATION_ERROR: ExitCode.INVALID_ARGS,\n};\n\nexport const ERROR_DOC_URLS: Partial<Record<ErrorCode, string>> = {\n RATE_LIMITED: \"https://docs.hiveintelligence.xyz/errors/rate-limited\",\n TIMEOUT: \"https://docs.hiveintelligence.xyz/errors/timeout\",\n PROVIDER_UNAVAILABLE:\n \"https://docs.hiveintelligence.xyz/errors/provider-unavailable\",\n TOOL_NOT_FOUND: \"https://docs.hiveintelligence.xyz/errors/tool-not-found\",\n};\n\nexport class CliError extends Error {\n public readonly code: ErrorCode;\n public readonly exitCode: ExitCodeValue;\n public readonly suggestion?: string;\n public readonly docUrl?: string;\n\n constructor(\n code: ErrorCode,\n message: string,\n suggestion?: string,\n docUrl?: string,\n ) {\n super(message);\n this.name = \"CliError\";\n this.code = code;\n this.exitCode = ERROR_CODE_TO_EXIT[code] ?? ExitCode.GENERAL_ERROR;\n this.suggestion = suggestion;\n this.docUrl = docUrl ?? ERROR_DOC_URLS[code];\n }\n}\n\nexport function classifyError(error: unknown, toolName?: string): CliError {\n if (error instanceof CliError) return error;\n\n const msg = error instanceof Error ? error.message : String(error);\n const lower = msg.toLowerCase();\n\n if (lower.includes(\"timed out\") || lower.includes(\"timeout\")) {\n return new CliError(\"TIMEOUT\", msg, \"Increase timeout with --timeout <ms>\");\n }\n if (lower.includes(\"rate limit\") || lower.includes(\"429\")) {\n return new CliError(\n \"RATE_LIMITED\",\n msg,\n \"Wait and retry, or reduce request frequency\",\n );\n }\n if (\n lower.includes(\"api key\") ||\n lower.includes(\"unauthorized\") ||\n lower.includes(\"not configured\") ||\n lower.includes(\"unavailable\")\n ) {\n return new CliError(\n \"PROVIDER_UNAVAILABLE\",\n msg,\n \"Run: hive-mcp auth login\",\n );\n }\n if (lower.includes(\"not found\") && toolName) {\n return new CliError(\n \"TOOL_NOT_FOUND\",\n msg,\n `Run: hive-mcp tools search \"${toolName}\"`,\n );\n }\n\n return new CliError(\"API_ERROR\", msg);\n}\n\nexport function suggestSimilarTools(\n input: string,\n toolNames: string[],\n maxDistance: number = 3,\n): string[] {\n return toolNames\n .map((name) => ({ name, dist: distance(input, name) }))\n .filter((entry) => entry.dist <= maxDistance)\n .sort((a, b) => a.dist - b.dist)\n .slice(0, 3)\n .map((entry) => entry.name);\n}\n"],"mappings":"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","names":["mv","pv","start","vlen"]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/fastest-levenshtein/esm/mod.js","../src/cli/errors.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import { distance } from \"fastest-levenshtein\";\n\nexport const ExitCode = {\n SUCCESS: 0,\n GENERAL_ERROR: 1,\n INVALID_ARGS: 2,\n TOOL_NOT_FOUND: 3,\n API_ERROR: 4,\n AUTH_FAILURE: 5,\n RATE_LIMITED: 6,\n TIMEOUT: 124,\n} as const;\n\nexport type ExitCodeValue = (typeof ExitCode)[keyof typeof ExitCode];\n\nexport type ErrorCode =\n | \"GENERAL_ERROR\"\n | \"INVALID_ARGS\"\n | \"TOOL_NOT_FOUND\"\n | \"API_ERROR\"\n | \"PROVIDER_UNAVAILABLE\"\n | \"RATE_LIMITED\"\n | \"TIMEOUT\"\n | \"VALIDATION_ERROR\";\n\nconst ERROR_CODE_TO_EXIT: Record<ErrorCode, ExitCodeValue> = {\n GENERAL_ERROR: ExitCode.GENERAL_ERROR,\n INVALID_ARGS: ExitCode.INVALID_ARGS,\n TOOL_NOT_FOUND: ExitCode.TOOL_NOT_FOUND,\n API_ERROR: ExitCode.API_ERROR,\n PROVIDER_UNAVAILABLE: ExitCode.AUTH_FAILURE,\n RATE_LIMITED: ExitCode.RATE_LIMITED,\n TIMEOUT: ExitCode.TIMEOUT,\n VALIDATION_ERROR: ExitCode.INVALID_ARGS,\n};\n\nexport const ERROR_DOC_URLS: Partial<Record<ErrorCode, string>> = {\n RATE_LIMITED: \"https://docs.hiveintelligence.xyz/errors/rate-limited\",\n TIMEOUT: \"https://docs.hiveintelligence.xyz/errors/timeout\",\n PROVIDER_UNAVAILABLE:\n \"https://docs.hiveintelligence.xyz/errors/provider-unavailable\",\n TOOL_NOT_FOUND: \"https://docs.hiveintelligence.xyz/errors/tool-not-found\",\n};\n\nexport class CliError extends Error {\n public readonly code: ErrorCode;\n public readonly exitCode: ExitCodeValue;\n public readonly suggestion?: string;\n public readonly docUrl?: string;\n\n constructor(\n code: ErrorCode,\n message: string,\n suggestion?: string,\n docUrl?: string,\n ) {\n super(message);\n this.name = \"CliError\";\n this.code = code;\n this.exitCode = ERROR_CODE_TO_EXIT[code] ?? ExitCode.GENERAL_ERROR;\n this.suggestion = suggestion;\n this.docUrl = docUrl ?? ERROR_DOC_URLS[code];\n }\n}\n\nexport function classifyError(error: unknown, toolName?: string): CliError {\n if (error instanceof CliError) return error;\n\n const msg = error instanceof Error ? error.message : String(error);\n const lower = msg.toLowerCase();\n\n if (lower.includes(\"timed out\") || lower.includes(\"timeout\")) {\n return new CliError(\"TIMEOUT\", msg, \"Increase timeout with --timeout <ms>\");\n }\n if (lower.includes(\"rate limit\") || lower.includes(\"429\")) {\n return new CliError(\n \"RATE_LIMITED\",\n msg,\n \"Wait and retry, or reduce request frequency\",\n );\n }\n if (\n lower.includes(\"api key\") ||\n lower.includes(\"unauthorized\") ||\n lower.includes(\"not configured\") ||\n lower.includes(\"unavailable\")\n ) {\n return new CliError(\n \"PROVIDER_UNAVAILABLE\",\n msg,\n \"Run: hive auth login\",\n );\n }\n if (lower.includes(\"not found\") && toolName) {\n return new CliError(\n \"TOOL_NOT_FOUND\",\n msg,\n `Run: hive tools search \"${toolName}\"`,\n );\n }\n\n return new CliError(\"API_ERROR\", msg);\n}\n\nexport function suggestSimilarTools(\n input: string,\n toolNames: string[],\n maxDistance: number = 3,\n): string[] {\n return toolNames\n .map((name) => ({ name, dist: distance(input, name) }))\n .filter((entry) => entry.dist <= maxDistance)\n .sort((a, b) => a.dist - b.dist)\n .slice(0, 3)\n .map((entry) => entry.name);\n}\n"],"mappings":"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","names":["mv","pv","start","vlen"]}
|
package/build/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
executeTool
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DTUDM6HX.js";
|
|
6
6
|
import "./chunk-WKVZVQTG.js";
|
|
7
7
|
import "./chunk-LBTLYTZS.js";
|
|
8
8
|
import {
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
red,
|
|
13
13
|
setOutputOptions
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-CP3FXEQA.js";
|
|
15
15
|
import {
|
|
16
16
|
ensureConfigDir,
|
|
17
17
|
getConfigDir,
|
|
@@ -21,10 +21,10 @@ import {
|
|
|
21
21
|
} from "./chunk-XQJ6PB2L.js";
|
|
22
22
|
import {
|
|
23
23
|
ExitCode
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-RRI526CJ.js";
|
|
25
25
|
import {
|
|
26
26
|
NAMESPACE
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-CGXVV6WR.js";
|
|
28
28
|
import {
|
|
29
29
|
__commonJS,
|
|
30
30
|
__require,
|
|
@@ -3568,7 +3568,7 @@ process.on("SIGINT", () => process.exit(130));
|
|
|
3568
3568
|
process.on("SIGTERM", () => process.exit(143));
|
|
3569
3569
|
var program2 = new Command();
|
|
3570
3570
|
program2.name("hive").version(CLI_VERSION).description(
|
|
3571
|
-
"Hive Intelligence CLI \u2014 crypto, DeFi,
|
|
3571
|
+
"Hive Intelligence CLI \u2014 institutional-grade crypto market data, DeFi, wallets, security, DEX, NFTs, and prediction markets for AI agents"
|
|
3572
3572
|
).exitOverride().configureOutput({
|
|
3573
3573
|
writeErr: (str) => process.stderr.write(str),
|
|
3574
3574
|
outputError: (str, write) => {
|
|
@@ -3664,15 +3664,15 @@ for (const domain of NAMESPACE) {
|
|
|
3664
3664
|
}
|
|
3665
3665
|
var toolsCmd = program2.command("tools").description("Discover and execute tools");
|
|
3666
3666
|
toolsCmd.command("list").description("List all registered tools").option("--category <name>", "Filter by category").option("--provider <name>", "Filter by provider prefix").option("--limit <n>", "Max tools to show", "50").option("--offset <n>", "Skip first N tools", "0").action(async (opts) => {
|
|
3667
|
-
const { listTools } = await import("./tools-
|
|
3667
|
+
const { listTools } = await import("./tools-VRRMBCZQ.js");
|
|
3668
3668
|
await listTools(opts);
|
|
3669
3669
|
});
|
|
3670
3670
|
toolsCmd.command("search <query>").description("Search tools by name or description").action(async (query) => {
|
|
3671
|
-
const { searchTools } = await import("./tools-
|
|
3671
|
+
const { searchTools } = await import("./tools-VRRMBCZQ.js");
|
|
3672
3672
|
await searchTools(query);
|
|
3673
3673
|
});
|
|
3674
3674
|
toolsCmd.command("info <name>").description("Show detailed tool schema and description").action(async (name) => {
|
|
3675
|
-
const { toolInfo } = await import("./tools-
|
|
3675
|
+
const { toolInfo } = await import("./tools-VRRMBCZQ.js");
|
|
3676
3676
|
await toolInfo(name);
|
|
3677
3677
|
});
|
|
3678
3678
|
toolsCmd.command("call <name>").description("Execute a tool by name").option("--args <json>", "Tool arguments as JSON (or pipe JSON via stdin)").action(async (name, opts) => {
|
|
@@ -3701,72 +3701,72 @@ toolsCmd.command("call <name>").description("Execute a tool by name").option("--
|
|
|
3701
3701
|
await executeTool(name, args, timeout);
|
|
3702
3702
|
});
|
|
3703
3703
|
toolsCmd.command("refresh").description("Force-refresh the tool catalog cache").action(async () => {
|
|
3704
|
-
const { refreshTools } = await import("./tools-
|
|
3704
|
+
const { refreshTools } = await import("./tools-VRRMBCZQ.js");
|
|
3705
3705
|
await refreshTools();
|
|
3706
3706
|
});
|
|
3707
3707
|
var configCmd = program2.command("config").description("Generate configuration for MCP clients");
|
|
3708
3708
|
configCmd.command("claude-desktop").description("Print Claude Desktop config JSON").action(async () => {
|
|
3709
|
-
const { configClaudeDesktop } = await import("./config-
|
|
3709
|
+
const { configClaudeDesktop } = await import("./config-ANFERP7A.js");
|
|
3710
3710
|
configClaudeDesktop();
|
|
3711
3711
|
});
|
|
3712
3712
|
configCmd.command("cursor").description("Print Cursor config JSON").action(async () => {
|
|
3713
|
-
const { configCursor } = await import("./config-
|
|
3713
|
+
const { configCursor } = await import("./config-ANFERP7A.js");
|
|
3714
3714
|
configCursor();
|
|
3715
3715
|
});
|
|
3716
3716
|
configCmd.command("vscode").description("Print VS Code mcp.json config").action(async () => {
|
|
3717
|
-
const { configVscode } = await import("./config-
|
|
3717
|
+
const { configVscode } = await import("./config-ANFERP7A.js");
|
|
3718
3718
|
configVscode();
|
|
3719
3719
|
});
|
|
3720
3720
|
configCmd.command("claude-code").description("Print claude mcp add command").action(async () => {
|
|
3721
|
-
const { configClaudeCode } = await import("./config-
|
|
3721
|
+
const { configClaudeCode } = await import("./config-ANFERP7A.js");
|
|
3722
3722
|
configClaudeCode();
|
|
3723
3723
|
});
|
|
3724
3724
|
configCmd.command("http [url]").description("Print remote HTTP connection instructions").action(async (url) => {
|
|
3725
|
-
const { configHttpUrl } = await import("./config-
|
|
3725
|
+
const { configHttpUrl } = await import("./config-ANFERP7A.js");
|
|
3726
3726
|
configHttpUrl(
|
|
3727
3727
|
url || process.env.HIVE_DEFAULT_URL || "https://mcp.hiveintelligence.xyz"
|
|
3728
3728
|
);
|
|
3729
3729
|
});
|
|
3730
3730
|
program2.command("init").description("Interactive setup wizard for Hive API key").option("--minimal", "Write defaults without interactive prompts").option("--dry-run", "Preview changes without writing").action(async (opts) => {
|
|
3731
|
-
const { runInit } = await import("./init-
|
|
3731
|
+
const { runInit } = await import("./init-CAVIFVSH.js");
|
|
3732
3732
|
await runInit(opts);
|
|
3733
3733
|
});
|
|
3734
3734
|
program2.command("doctor").description("Diagnose environment and server connectivity").option("--probe", "Run live API probes (slower)").action(async (opts) => {
|
|
3735
|
-
const { runDoctor } = await import("./doctor-
|
|
3735
|
+
const { runDoctor } = await import("./doctor-7WZMCQC7.js");
|
|
3736
3736
|
await runDoctor(opts);
|
|
3737
3737
|
});
|
|
3738
3738
|
program2.command("completion <shell>").description("Generate shell completion script (bash, zsh, fish, powershell)").option("--install", "Auto-install to shell rc file").action(async (shell, opts) => {
|
|
3739
3739
|
if (opts.install) {
|
|
3740
|
-
const { installCompletion } = await import("./completion-
|
|
3740
|
+
const { installCompletion } = await import("./completion-J6HFY6PS.js");
|
|
3741
3741
|
await installCompletion(shell);
|
|
3742
3742
|
} else {
|
|
3743
|
-
const { generateCompletion } = await import("./completion-
|
|
3743
|
+
const { generateCompletion } = await import("./completion-J6HFY6PS.js");
|
|
3744
3744
|
await generateCompletion(shell);
|
|
3745
3745
|
}
|
|
3746
3746
|
});
|
|
3747
3747
|
var authCmd = program2.command("auth").description("Manage authentication profiles");
|
|
3748
3748
|
authCmd.command("login").description("Log in with your Hive API key").option("--profile <name>", "Profile name", "default").action(async (opts) => {
|
|
3749
|
-
const { runLogin } = await import("./auth-
|
|
3749
|
+
const { runLogin } = await import("./auth-77MKFFBQ.js");
|
|
3750
3750
|
await runLogin(opts);
|
|
3751
3751
|
});
|
|
3752
3752
|
authCmd.command("logout").description("Remove stored credentials").action(async () => {
|
|
3753
|
-
const { runLogout } = await import("./auth-
|
|
3753
|
+
const { runLogout } = await import("./auth-77MKFFBQ.js");
|
|
3754
3754
|
await runLogout();
|
|
3755
3755
|
});
|
|
3756
3756
|
authCmd.command("whoami").description("Show current profile").action(async () => {
|
|
3757
|
-
const { runWhoami } = await import("./auth-
|
|
3757
|
+
const { runWhoami } = await import("./auth-77MKFFBQ.js");
|
|
3758
3758
|
await runWhoami();
|
|
3759
3759
|
});
|
|
3760
3760
|
authCmd.command("profiles").description("List all profiles").action(async () => {
|
|
3761
|
-
const { runProfiles } = await import("./auth-
|
|
3761
|
+
const { runProfiles } = await import("./auth-77MKFFBQ.js");
|
|
3762
3762
|
await runProfiles();
|
|
3763
3763
|
});
|
|
3764
3764
|
authCmd.command("switch <name>").description("Switch active profile").action(async (name) => {
|
|
3765
|
-
const { runSwitch } = await import("./auth-
|
|
3765
|
+
const { runSwitch } = await import("./auth-77MKFFBQ.js");
|
|
3766
3766
|
await runSwitch(name);
|
|
3767
3767
|
});
|
|
3768
3768
|
program2.command("status").description("Quick health and version check").action(async () => {
|
|
3769
|
-
const { runStatus } = await import("./doctor-
|
|
3769
|
+
const { runStatus } = await import("./doctor-7WZMCQC7.js");
|
|
3770
3770
|
await runStatus();
|
|
3771
3771
|
});
|
|
3772
3772
|
program2.command("open [target]").description("Open Hive dashboard, docs, status, or GitHub in browser").action(async (target) => {
|
|
@@ -3797,7 +3797,7 @@ program2.command("watch <domain> <command>").description("Poll a tool on interva
|
|
|
3797
3797
|
}
|
|
3798
3798
|
const interval = parseInt(opts.interval, 10);
|
|
3799
3799
|
const timeout = parseInt(program2.opts().timeout, 10);
|
|
3800
|
-
const { runWatch } = await import("./watch-
|
|
3800
|
+
const { runWatch } = await import("./watch-A75SVIQ6.js");
|
|
3801
3801
|
await runWatch(cmdDef.tool, args, interval, timeout);
|
|
3802
3802
|
});
|
|
3803
3803
|
var aliasCmd = program2.command("alias").description("Manage command aliases");
|
|
@@ -3847,7 +3847,8 @@ Examples:
|
|
|
3847
3847
|
$ hive auth login
|
|
3848
3848
|
$ hive market price --ids bitcoin --vs usd
|
|
3849
3849
|
$ hive defi tvl --protocol aave
|
|
3850
|
-
$ hive
|
|
3850
|
+
$ hive security scan --token 0x...
|
|
3851
|
+
$ hive portfolio balance --address 0x...
|
|
3851
3852
|
$ hive tools search "price" --jq ".[] | .name"
|
|
3852
3853
|
$ hive status
|
|
3853
3854
|
$ hive alias set btc 'market price --ids bitcoin --vs usd'
|