hive-intelligence 1.1.2 → 1.1.4
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/LICENSE +12 -10
- package/README.md +325 -351
- package/agent-skills/.claude-plugin/plugin.json +111 -0
- package/agent-skills/.mcp.json +11 -0
- package/agent-skills/AGENTS.md +37 -0
- package/agent-skills/LICENSE +21 -0
- package/agent-skills/README.md +145 -0
- package/agent-skills/SKILL.md +80 -0
- package/agent-skills/evals/README.md +20 -0
- package/agent-skills/evals/trigger-queries.json +464 -0
- package/agent-skills/package.json +49 -0
- package/agent-skills/packs/hive-build/SKILL.md +328 -0
- package/agent-skills/packs/hive-build/evals/evals.json +28 -0
- package/agent-skills/packs/hive-build-onboarding/SKILL.md +137 -0
- package/agent-skills/packs/hive-build-onboarding/evals/evals.json +27 -0
- package/agent-skills/packs/hive-cli/SKILL.md +141 -0
- package/agent-skills/packs/hive-cli/evals/evals.json +27 -0
- package/agent-skills/packs/hive-defi-research/SKILL.md +42 -0
- package/agent-skills/packs/hive-defi-research/evals/evals.json +27 -0
- package/agent-skills/packs/hive-defi-research/references/workflow.md +41 -0
- package/agent-skills/packs/hive-dex-pool-analysis/SKILL.md +41 -0
- package/agent-skills/packs/hive-dex-pool-analysis/evals/evals.json +27 -0
- package/agent-skills/packs/hive-dex-pool-analysis/references/workflow.md +42 -0
- package/agent-skills/packs/hive-market-research/SKILL.md +45 -0
- package/agent-skills/packs/hive-market-research/evals/evals.json +27 -0
- package/agent-skills/packs/hive-market-research/references/workflow.md +47 -0
- package/agent-skills/packs/hive-mcp/SKILL.md +147 -0
- package/agent-skills/packs/hive-mcp/evals/evals.json +38 -0
- package/agent-skills/packs/hive-mcp/references/client-install-matrix.md +83 -0
- package/agent-skills/packs/hive-mcp/references/clients.md +141 -0
- package/agent-skills/packs/hive-network-infrastructure/SKILL.md +44 -0
- package/agent-skills/packs/hive-network-infrastructure/evals/evals.json +27 -0
- package/agent-skills/packs/hive-network-infrastructure/references/workflow.md +41 -0
- package/agent-skills/packs/hive-nft-research/SKILL.md +41 -0
- package/agent-skills/packs/hive-nft-research/evals/evals.json +27 -0
- package/agent-skills/packs/hive-nft-research/references/workflow.md +42 -0
- package/agent-skills/packs/hive-prediction-markets/SKILL.md +44 -0
- package/agent-skills/packs/hive-prediction-markets/evals/evals.json +27 -0
- package/agent-skills/packs/hive-prediction-markets/references/workflow.md +42 -0
- package/agent-skills/packs/hive-query/SKILL.md +99 -0
- package/agent-skills/packs/hive-query/evals/evals.json +38 -0
- package/agent-skills/packs/hive-query/references/root-mcp-workflow.md +54 -0
- package/agent-skills/packs/hive-security-risk/SKILL.md +42 -0
- package/agent-skills/packs/hive-security-risk/evals/evals.json +27 -0
- package/agent-skills/packs/hive-security-risk/references/workflow.md +46 -0
- package/agent-skills/packs/hive-solana-analysis/SKILL.md +42 -0
- package/agent-skills/packs/hive-solana-analysis/evals/evals.json +27 -0
- package/agent-skills/packs/hive-solana-analysis/references/workflow.md +42 -0
- package/agent-skills/packs/hive-stateful-monitoring/SKILL.md +75 -0
- package/agent-skills/packs/hive-stateful-monitoring/evals/evals.json +49 -0
- package/agent-skills/packs/hive-token-diligence/SKILL.md +44 -0
- package/agent-skills/packs/hive-token-diligence/evals/evals.json +27 -0
- package/agent-skills/packs/hive-token-diligence/references/workflow.md +45 -0
- package/agent-skills/packs/hive-tool-discovery/SKILL.md +49 -0
- package/agent-skills/packs/hive-tool-discovery/evals/evals.json +38 -0
- package/agent-skills/packs/hive-tool-discovery/references/discovery-surfaces.md +62 -0
- package/agent-skills/packs/hive-wallet-investigation/SKILL.md +42 -0
- package/agent-skills/packs/hive-wallet-investigation/evals/evals.json +27 -0
- package/agent-skills/packs/hive-wallet-investigation/references/workflow.md +45 -0
- package/agent-skills/references/agents-routing.md +51 -0
- package/agent-skills/scripts/validate-agent-skills-package.mjs +216 -0
- package/agent-skills/skills.sh.json +41 -0
- package/bin/hive-mcp.js +33 -0
- package/build/{alias-INGXWFCG.js → alias-3OPMQF4X.js} +2 -3
- package/build/api-client-EPF6FD7A.js +28 -0
- package/build/auth-Q5Q24IRI.js +39 -0
- package/build/browser-auth-VPF5LZMZ.js +8 -0
- package/build/{cache-US4LSZPI.js → cache-T6KC5YEY.js} +2 -3
- package/build/{chunk-QMRVH5ZP.js → chunk-3WYWXTNN.js} +9 -2
- package/build/chunk-4F5CI6LX.js +340 -0
- package/build/chunk-5XXI25JE.js +496 -0
- package/build/chunk-7JWXBKEJ.js +252 -0
- package/build/chunk-CEWCB5YS.js +71 -0
- package/build/{chunk-CGXVV6WR.js → chunk-FH3YGSY5.js} +86 -105
- package/build/chunk-FRXMGRZQ.js +102 -0
- package/build/chunk-GZPDEXO4.js +126 -0
- package/build/chunk-IZPAMRHP.js +43 -0
- package/build/chunk-JTUKQWIO.js +79720 -0
- package/build/{chunk-CP3FXEQA.js → chunk-NP6NSOG2.js} +4 -6
- package/build/{chunk-XQJ6PB2L.js → chunk-POT2MBEK.js} +0 -1
- package/build/chunk-VBOKVQ74.js +280 -0
- package/build/{chunk-WKVZVQTG.js → chunk-YZ2PXBJK.js} +6 -4
- package/build/chunk-ZCU7XQKF.js +14 -0
- package/build/chunk-ZTJVOWDQ.js +85 -0
- package/build/chunk-ZXB53E7H.js +246 -0
- package/build/cli.js +138 -125
- package/build/{completion-J6HFY6PS.js → completion-46K674EL.js} +54 -50
- package/build/config-XE6Q5P4I.js +57 -0
- package/build/{config-dir-IEOID7Q6.js → config-dir-MAWX5AUF.js} +2 -3
- package/build/{doctor-7WZMCQC7.js → doctor-HGMQE6IN.js} +37 -13
- package/build/{errors-U6UZWVSD.js → errors-J2PH3NLJ.js} +2 -3
- package/build/format-5X2HIVDT.js +42 -0
- package/build/{init-CAVIFVSH.js → init-JMDNM7ZZ.js} +1 -2
- package/build/init-all-5SKNV75X.js +273 -0
- package/build/mcpServer-5TKKSKJM.js +21 -0
- package/build/monitor-worker.js +1140 -0
- package/build/{namespace-7JWWBWBL.js → namespace-FSX2G3NM.js} +2 -3
- package/build/{open-FUXYIHFO.js → open-5A6ZQMGC.js} +5 -6
- package/build/{output-7PGQWJY2.js → output-V3D4YZ6U.js} +2 -3
- package/build/serve-AGCOXXFM.js +49 -0
- package/build/server.js +5042 -14125
- package/build/setup-RMETGJWK.js +135 -0
- package/build/stdio.js +32 -0
- package/build/{telemetry-KNWMQURH.js → telemetry-WCME5XEU.js} +4 -4
- package/build/{tools-VRRMBCZQ.js → tools-KAB6QBZC.js} +15 -15
- package/build/uninstall-FLJMBBSC.js +114 -0
- package/build/update-check-LNZQK3XA.js +18 -0
- package/build/upgrade-DTUIHVPS.js +171 -0
- package/build/version-I6HDAF4L.js +14 -0
- package/build/{watch-A75SVIQ6.js → watch-YNN255QX.js} +7 -7
- package/package.json +124 -53
- package/bin/hive.js +0 -25
- package/build/alias-INGXWFCG.js.map +0 -1
- package/build/auth-77MKFFBQ.js +0 -233
- package/build/auth-77MKFFBQ.js.map +0 -1
- package/build/cache-US4LSZPI.js.map +0 -1
- package/build/chunk-CGXVV6WR.js.map +0 -1
- package/build/chunk-CP3FXEQA.js.map +0 -1
- package/build/chunk-DTUDM6HX.js +0 -3108
- package/build/chunk-DTUDM6HX.js.map +0 -1
- package/build/chunk-LBTLYTZS.js +0 -115
- package/build/chunk-LBTLYTZS.js.map +0 -1
- package/build/chunk-OK3LSM73.js +0 -22
- package/build/chunk-OK3LSM73.js.map +0 -1
- package/build/chunk-QMRVH5ZP.js.map +0 -1
- package/build/chunk-RRI526CJ.js +0 -212
- package/build/chunk-RRI526CJ.js.map +0 -1
- package/build/chunk-WKVZVQTG.js.map +0 -1
- package/build/chunk-XQJ6PB2L.js.map +0 -1
- package/build/cli.js.map +0 -1
- package/build/completion-J6HFY6PS.js.map +0 -1
- package/build/config-ANFERP7A.js +0 -99
- package/build/config-ANFERP7A.js.map +0 -1
- package/build/config-dir-IEOID7Q6.js.map +0 -1
- package/build/doctor-7WZMCQC7.js.map +0 -1
- package/build/errors-U6UZWVSD.js.map +0 -1
- package/build/format-CVLLK6GD.js +0 -75
- package/build/format-CVLLK6GD.js.map +0 -1
- package/build/init-CAVIFVSH.js.map +0 -1
- package/build/namespace-7JWWBWBL.js.map +0 -1
- package/build/open-FUXYIHFO.js.map +0 -1
- package/build/output-7PGQWJY2.js.map +0 -1
- package/build/server.js.map +0 -1
- package/build/telemetry-KNWMQURH.js.map +0 -1
- package/build/tools-VRRMBCZQ.js.map +0 -1
- package/build/version-3TZ3U4IR.js +0 -9
- package/build/version-3TZ3U4IR.js.map +0 -1
- package/build/watch-A75SVIQ6.js.map +0 -1
|
@@ -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
|
-
|
|
190
|
+
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-5X2HIVDT.js");
|
|
210
210
|
process.stdout.write(
|
|
211
211
|
formatTable(envelope.data) + "\n"
|
|
212
212
|
);
|
|
@@ -246,12 +246,11 @@ 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
|
-
|
|
249
|
+
function formatCsv(data) {
|
|
250
250
|
if (data.length === 0) return "";
|
|
251
|
-
const { formatCell } = await import("./format-CVLLK6GD.js");
|
|
252
251
|
const keys = [...new Set(data.flatMap((row) => Object.keys(row)))];
|
|
253
252
|
const escape = (val) => {
|
|
254
|
-
const str =
|
|
253
|
+
const str = val == null ? "" : String(val);
|
|
255
254
|
return str.includes(",") || str.includes('"') || str.includes("\n") ? `"${str.replace(/"/g, '""')}"` : str;
|
|
256
255
|
};
|
|
257
256
|
const header = keys.join(",");
|
|
@@ -278,4 +277,3 @@ export {
|
|
|
278
277
|
isCI,
|
|
279
278
|
formatCsv
|
|
280
279
|
};
|
|
281
|
-
//# sourceMappingURL=chunk-CP3FXEQA.js.map
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/agentSkills.ts
|
|
4
|
+
var HIVE_AGENT_SKILLS = [
|
|
5
|
+
{
|
|
6
|
+
name: "hive-mcp",
|
|
7
|
+
label: "Install Hive MCP",
|
|
8
|
+
description: "Connect Hive's hosted remote MCP endpoint to Claude, Cursor, VS Code, OpenAI Responses API, Codex, Gemini, and supported MCP clients.",
|
|
9
|
+
path: "agent-skills/packs/hive-mcp/SKILL.md",
|
|
10
|
+
toolsetIds: ["search_discovery"],
|
|
11
|
+
useWhen: ["install hive", "connect mcp", "configure client"]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: "hive-build-onboarding",
|
|
15
|
+
label: "Get a Hive API Key",
|
|
16
|
+
description: "Guide agents through browser auth, dashboard key creation, and headless environment setup.",
|
|
17
|
+
path: "agent-skills/packs/hive-build-onboarding/SKILL.md",
|
|
18
|
+
toolsetIds: ["search_discovery"],
|
|
19
|
+
useWhen: ["no api key", "sign up", "lost key"]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "hive-build",
|
|
23
|
+
label: "Build With Hive",
|
|
24
|
+
description: "Use Hive from application code through REST, MCP clients, or the source-only TypeScript adapter.",
|
|
25
|
+
path: "agent-skills/packs/hive-build/SKILL.md",
|
|
26
|
+
toolsetIds: ["search_discovery"],
|
|
27
|
+
useWhen: ["integrate api", "backend", "sdk", "production app"]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "hive-cli",
|
|
31
|
+
label: "Use Hive CLI",
|
|
32
|
+
description: "Run Hive from shell scripts, cron jobs, and terminal research workflows.",
|
|
33
|
+
path: "agent-skills/packs/hive-cli/SKILL.md",
|
|
34
|
+
toolsetIds: ["search_discovery"],
|
|
35
|
+
useWhen: ["terminal", "cli", "jq", "cron"]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "hive-query",
|
|
39
|
+
label: "Route A Crypto Query",
|
|
40
|
+
description: "Start from the user's intent, choose the canonical task toolset, inspect schemas, and call exact Hive tools.",
|
|
41
|
+
path: "agent-skills/packs/hive-query/SKILL.md",
|
|
42
|
+
toolsetIds: [
|
|
43
|
+
"market_research",
|
|
44
|
+
"token_diligence",
|
|
45
|
+
"wallet_investigation",
|
|
46
|
+
"security_risk",
|
|
47
|
+
"onchain_dex_pool_analysis",
|
|
48
|
+
"defi_protocol_analysis",
|
|
49
|
+
"nft_research",
|
|
50
|
+
"network_infrastructure",
|
|
51
|
+
"solana_analysis",
|
|
52
|
+
"prediction_markets",
|
|
53
|
+
"stateful_monitoring",
|
|
54
|
+
"search_discovery"
|
|
55
|
+
],
|
|
56
|
+
useWhen: [
|
|
57
|
+
"crypto question",
|
|
58
|
+
"pick a tool",
|
|
59
|
+
"tool routing",
|
|
60
|
+
"unknown crypto data",
|
|
61
|
+
"which hive endpoint"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "hive-stateful-monitoring",
|
|
66
|
+
label: "Stateful Monitoring",
|
|
67
|
+
description: "Create, list, update, and archive durable crypto intelligence monitors that agents can schedule, remember, and report from.",
|
|
68
|
+
path: "agent-skills/packs/hive-stateful-monitoring/SKILL.md",
|
|
69
|
+
toolsetIds: ["stateful_monitoring"],
|
|
70
|
+
useWhen: [
|
|
71
|
+
"remember this",
|
|
72
|
+
"monitor wallet",
|
|
73
|
+
"watch token",
|
|
74
|
+
"schedule crypto report",
|
|
75
|
+
"alert me",
|
|
76
|
+
"persistent crypto memory"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "hive-tool-discovery",
|
|
81
|
+
label: "Tool Discovery",
|
|
82
|
+
description: "Use search_tools, hive://toolsets, schema lookup, and invoke_api_endpoint correctly.",
|
|
83
|
+
path: "agent-skills/packs/hive-tool-discovery/SKILL.md",
|
|
84
|
+
toolsetIds: ["search_discovery"],
|
|
85
|
+
useWhen: [
|
|
86
|
+
"unknown tool",
|
|
87
|
+
"schema",
|
|
88
|
+
"discovery",
|
|
89
|
+
"search tools",
|
|
90
|
+
"invoke endpoint",
|
|
91
|
+
"category tool"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "hive-market-research",
|
|
96
|
+
label: "Market Research",
|
|
97
|
+
description: "Research prices, liquidity, exchanges, OHLC, order books, and derivatives context.",
|
|
98
|
+
path: "agent-skills/packs/hive-market-research/SKILL.md",
|
|
99
|
+
toolsetIds: ["market_research"],
|
|
100
|
+
useWhen: [
|
|
101
|
+
"price",
|
|
102
|
+
"market",
|
|
103
|
+
"spot",
|
|
104
|
+
"exchange",
|
|
105
|
+
"order book",
|
|
106
|
+
"ohlc",
|
|
107
|
+
"volume",
|
|
108
|
+
"funding",
|
|
109
|
+
"open interest",
|
|
110
|
+
"liquidations",
|
|
111
|
+
"derivatives",
|
|
112
|
+
"options"
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: "hive-token-diligence",
|
|
117
|
+
label: "Token Diligence",
|
|
118
|
+
description: "Investigate token metadata, market context, liquidity, holders, enrichment, and risk.",
|
|
119
|
+
path: "agent-skills/packs/hive-token-diligence/SKILL.md",
|
|
120
|
+
toolsetIds: ["token_diligence"],
|
|
121
|
+
useWhen: [
|
|
122
|
+
"token",
|
|
123
|
+
"contract",
|
|
124
|
+
"holders",
|
|
125
|
+
"top traders",
|
|
126
|
+
"metadata",
|
|
127
|
+
"socials",
|
|
128
|
+
"liquidity",
|
|
129
|
+
"safe to buy",
|
|
130
|
+
"token diligence"
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: "hive-wallet-investigation",
|
|
135
|
+
label: "Wallet Investigation",
|
|
136
|
+
description: "Inspect wallet balances, transfers, NFTs, PnL, DeFi positions, and notable activity.",
|
|
137
|
+
path: "agent-skills/packs/hive-wallet-investigation/SKILL.md",
|
|
138
|
+
toolsetIds: ["wallet_investigation"],
|
|
139
|
+
useWhen: [
|
|
140
|
+
"wallet",
|
|
141
|
+
"portfolio",
|
|
142
|
+
"balances",
|
|
143
|
+
"holdings",
|
|
144
|
+
"pnl",
|
|
145
|
+
"profitability",
|
|
146
|
+
"transfers",
|
|
147
|
+
"swaps",
|
|
148
|
+
"defi positions",
|
|
149
|
+
"chain activity"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: "hive-security-risk",
|
|
154
|
+
label: "Security Risk",
|
|
155
|
+
description: "Check token, approval, address, phishing, contract, and simulation risk signals.",
|
|
156
|
+
path: "agent-skills/packs/hive-security-risk/SKILL.md",
|
|
157
|
+
toolsetIds: ["security_risk"],
|
|
158
|
+
useWhen: [
|
|
159
|
+
"security",
|
|
160
|
+
"risk",
|
|
161
|
+
"safe",
|
|
162
|
+
"scam",
|
|
163
|
+
"rugpull",
|
|
164
|
+
"honeypot",
|
|
165
|
+
"malicious",
|
|
166
|
+
"phishing",
|
|
167
|
+
"dapp",
|
|
168
|
+
"approval",
|
|
169
|
+
"calldata",
|
|
170
|
+
"simulate"
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "hive-dex-pool-analysis",
|
|
175
|
+
label: "DEX And Pool Analysis",
|
|
176
|
+
description: "Analyze on-chain pools, pairs, liquidity, trades, OHLCV, and DEX flow.",
|
|
177
|
+
path: "agent-skills/packs/hive-dex-pool-analysis/SKILL.md",
|
|
178
|
+
toolsetIds: ["onchain_dex_pool_analysis"],
|
|
179
|
+
useWhen: [
|
|
180
|
+
"dex",
|
|
181
|
+
"pool",
|
|
182
|
+
"pair",
|
|
183
|
+
"liquidity",
|
|
184
|
+
"trades",
|
|
185
|
+
"ohlcv",
|
|
186
|
+
"trending pools",
|
|
187
|
+
"uniswap"
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "hive-defi-research",
|
|
192
|
+
label: "DeFi Research",
|
|
193
|
+
description: "Analyze protocols, TVL, fees, revenue, stablecoins, bridges, and yield pools.",
|
|
194
|
+
path: "agent-skills/packs/hive-defi-research/SKILL.md",
|
|
195
|
+
toolsetIds: ["defi_protocol_analysis"],
|
|
196
|
+
useWhen: [
|
|
197
|
+
"defi",
|
|
198
|
+
"protocol",
|
|
199
|
+
"tvl",
|
|
200
|
+
"fees",
|
|
201
|
+
"revenue",
|
|
202
|
+
"stablecoin",
|
|
203
|
+
"bridge",
|
|
204
|
+
"yield",
|
|
205
|
+
"apy"
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: "hive-nft-research",
|
|
210
|
+
label: "NFT Research",
|
|
211
|
+
description: "Research NFT collections, ownership, metadata, floor price, sales, rarity, and spam checks.",
|
|
212
|
+
path: "agent-skills/packs/hive-nft-research/SKILL.md",
|
|
213
|
+
toolsetIds: ["nft_research"],
|
|
214
|
+
useWhen: [
|
|
215
|
+
"nft",
|
|
216
|
+
"collection",
|
|
217
|
+
"floor",
|
|
218
|
+
"sales",
|
|
219
|
+
"owner",
|
|
220
|
+
"metadata",
|
|
221
|
+
"rarity",
|
|
222
|
+
"spam"
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: "hive-solana-analysis",
|
|
227
|
+
label: "Solana Analysis",
|
|
228
|
+
description: "Analyze Solana wallets, SPL token accounts, DAS assets, parsed transactions, and priority fees.",
|
|
229
|
+
path: "agent-skills/packs/hive-solana-analysis/SKILL.md",
|
|
230
|
+
toolsetIds: ["solana_analysis"],
|
|
231
|
+
useWhen: [
|
|
232
|
+
"solana",
|
|
233
|
+
"spl",
|
|
234
|
+
"das",
|
|
235
|
+
"priority fee",
|
|
236
|
+
"pumpfun",
|
|
237
|
+
"token accounts",
|
|
238
|
+
"parsed transaction"
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
name: "hive-network-infrastructure",
|
|
243
|
+
label: "Network Infrastructure",
|
|
244
|
+
description: "Read chain state, gas, blocks, receipts, logs, transaction status, and RPC diagnostics.",
|
|
245
|
+
path: "agent-skills/packs/hive-network-infrastructure/SKILL.md",
|
|
246
|
+
toolsetIds: ["network_infrastructure"],
|
|
247
|
+
useWhen: [
|
|
248
|
+
"gas",
|
|
249
|
+
"block",
|
|
250
|
+
"receipt",
|
|
251
|
+
"logs",
|
|
252
|
+
"rpc",
|
|
253
|
+
"transaction status",
|
|
254
|
+
"chain state",
|
|
255
|
+
"tenderly networks"
|
|
256
|
+
]
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: "hive-prediction-markets",
|
|
260
|
+
label: "Prediction Markets",
|
|
261
|
+
description: "Research prediction markets, events, outcomes, market stats, traders, holders, and trades.",
|
|
262
|
+
path: "agent-skills/packs/hive-prediction-markets/SKILL.md",
|
|
263
|
+
toolsetIds: ["prediction_markets"],
|
|
264
|
+
useWhen: [
|
|
265
|
+
"prediction market",
|
|
266
|
+
"polymarket",
|
|
267
|
+
"kalshi",
|
|
268
|
+
"odds",
|
|
269
|
+
"election odds",
|
|
270
|
+
"sports odds",
|
|
271
|
+
"event",
|
|
272
|
+
"outcome",
|
|
273
|
+
"prediction traders"
|
|
274
|
+
]
|
|
275
|
+
}
|
|
276
|
+
];
|
|
277
|
+
|
|
278
|
+
export {
|
|
279
|
+
HIVE_AGENT_SKILLS
|
|
280
|
+
};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
SERVER_VERSION
|
|
4
|
+
} from "./chunk-ZCU7XQKF.js";
|
|
2
5
|
import {
|
|
3
6
|
ensureConfigDir,
|
|
4
7
|
getConfig,
|
|
5
8
|
saveConfig
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-POT2MBEK.js";
|
|
7
10
|
|
|
8
11
|
// src/cli/telemetry.ts
|
|
9
12
|
import { platform, release } from "os";
|
|
10
|
-
var TELEMETRY_URL = "https://
|
|
13
|
+
var TELEMETRY_URL = process.env.HIVE_CLI_TELEMETRY_URL ?? "https://mcp.hiveintelligence.xyz/api/v1/telemetry";
|
|
11
14
|
function isTelemetryEnabled() {
|
|
12
15
|
return getConfig().telemetry === true;
|
|
13
16
|
}
|
|
@@ -43,7 +46,7 @@ function trackCommand(command, durationMs, errorCode) {
|
|
|
43
46
|
command,
|
|
44
47
|
durationMs,
|
|
45
48
|
errorCode,
|
|
46
|
-
cliVersion: process.env.npm_package_version ??
|
|
49
|
+
cliVersion: process.env.npm_package_version ?? SERVER_VERSION,
|
|
47
50
|
os: `${platform()} ${release()}`,
|
|
48
51
|
nodeVersion: process.version
|
|
49
52
|
};
|
|
@@ -63,4 +66,3 @@ export {
|
|
|
63
66
|
telemetryStatus,
|
|
64
67
|
trackCommand
|
|
65
68
|
};
|
|
66
|
-
//# sourceMappingURL=chunk-WKVZVQTG.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/version.ts
|
|
4
|
+
var SERVER_NAME = "hive-mcp-server";
|
|
5
|
+
var SERVER_VERSION = "1.1.4";
|
|
6
|
+
var REGISTRY_PACKAGE = "hive-intelligence";
|
|
7
|
+
var CLI_BINARY = "hive";
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
SERVER_NAME,
|
|
11
|
+
SERVER_VERSION,
|
|
12
|
+
REGISTRY_PACKAGE,
|
|
13
|
+
CLI_BINARY
|
|
14
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/cli/errors.ts
|
|
4
|
+
import { distance } from "fastest-levenshtein";
|
|
5
|
+
var ExitCode = {
|
|
6
|
+
SUCCESS: 0,
|
|
7
|
+
GENERAL_ERROR: 1,
|
|
8
|
+
INVALID_ARGS: 2,
|
|
9
|
+
TOOL_NOT_FOUND: 3,
|
|
10
|
+
API_ERROR: 4,
|
|
11
|
+
AUTH_FAILURE: 5,
|
|
12
|
+
RATE_LIMITED: 6,
|
|
13
|
+
TIMEOUT: 124
|
|
14
|
+
};
|
|
15
|
+
var ERROR_CODE_TO_EXIT = {
|
|
16
|
+
GENERAL_ERROR: ExitCode.GENERAL_ERROR,
|
|
17
|
+
INVALID_ARGS: ExitCode.INVALID_ARGS,
|
|
18
|
+
TOOL_NOT_FOUND: ExitCode.TOOL_NOT_FOUND,
|
|
19
|
+
API_ERROR: ExitCode.API_ERROR,
|
|
20
|
+
PROVIDER_UNAVAILABLE: ExitCode.AUTH_FAILURE,
|
|
21
|
+
RATE_LIMITED: ExitCode.RATE_LIMITED,
|
|
22
|
+
TIMEOUT: ExitCode.TIMEOUT,
|
|
23
|
+
VALIDATION_ERROR: ExitCode.INVALID_ARGS
|
|
24
|
+
};
|
|
25
|
+
var ERROR_DOC_URLS = {
|
|
26
|
+
RATE_LIMITED: "https://www.hiveintelligence.xyz/errors#rate-limited",
|
|
27
|
+
TIMEOUT: "https://www.hiveintelligence.xyz/errors#timeout",
|
|
28
|
+
PROVIDER_UNAVAILABLE: "https://www.hiveintelligence.xyz/errors#provider-unavailable",
|
|
29
|
+
TOOL_NOT_FOUND: "https://www.hiveintelligence.xyz/errors#tool-not-found"
|
|
30
|
+
};
|
|
31
|
+
var CliError = class extends Error {
|
|
32
|
+
code;
|
|
33
|
+
exitCode;
|
|
34
|
+
suggestion;
|
|
35
|
+
docUrl;
|
|
36
|
+
constructor(code, message, suggestion, docUrl) {
|
|
37
|
+
super(message);
|
|
38
|
+
this.name = "CliError";
|
|
39
|
+
this.code = code;
|
|
40
|
+
this.exitCode = ERROR_CODE_TO_EXIT[code] ?? ExitCode.GENERAL_ERROR;
|
|
41
|
+
this.suggestion = suggestion;
|
|
42
|
+
this.docUrl = docUrl ?? ERROR_DOC_URLS[code];
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
function classifyError(error, toolName) {
|
|
46
|
+
if (error instanceof CliError) return error;
|
|
47
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
48
|
+
const lower = msg.toLowerCase();
|
|
49
|
+
if (lower.includes("timed out") || lower.includes("timeout")) {
|
|
50
|
+
return new CliError("TIMEOUT", msg, "Increase timeout with --timeout <ms>");
|
|
51
|
+
}
|
|
52
|
+
if (lower.includes("rate limit") || lower.includes("429")) {
|
|
53
|
+
return new CliError(
|
|
54
|
+
"RATE_LIMITED",
|
|
55
|
+
msg,
|
|
56
|
+
"Wait and retry, or reduce request frequency"
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
if (lower.includes("api key") || lower.includes("unauthorized") || lower.includes("not configured") || lower.includes("unavailable")) {
|
|
60
|
+
return new CliError(
|
|
61
|
+
"PROVIDER_UNAVAILABLE",
|
|
62
|
+
msg,
|
|
63
|
+
"Run: hive auth login"
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
if (lower.includes("not found") && toolName) {
|
|
67
|
+
return new CliError(
|
|
68
|
+
"TOOL_NOT_FOUND",
|
|
69
|
+
msg,
|
|
70
|
+
`Run: hive tools search "${toolName}"`
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
return new CliError("API_ERROR", msg);
|
|
74
|
+
}
|
|
75
|
+
function suggestSimilarTools(input, toolNames, maxDistance = 3) {
|
|
76
|
+
return toolNames.map((name) => ({ name, dist: distance(input, name) })).filter((entry) => entry.dist <= maxDistance).sort((a, b) => a.dist - b.dist).slice(0, 3).map((entry) => entry.name);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
ExitCode,
|
|
81
|
+
ERROR_DOC_URLS,
|
|
82
|
+
CliError,
|
|
83
|
+
classifyError,
|
|
84
|
+
suggestSimilarTools
|
|
85
|
+
};
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getClaudeDesktopConfigPath,
|
|
4
|
+
getCursorConfigPath,
|
|
5
|
+
getVscodeConfigPath
|
|
6
|
+
} from "./chunk-4F5CI6LX.js";
|
|
7
|
+
import {
|
|
8
|
+
HIVE_AGENT_SKILLS
|
|
9
|
+
} from "./chunk-VBOKVQ74.js";
|
|
10
|
+
|
|
11
|
+
// src/cli/detect-clients.ts
|
|
12
|
+
import { existsSync } from "fs";
|
|
13
|
+
import { join } from "path";
|
|
14
|
+
import { homedir, platform } from "os";
|
|
15
|
+
function getClaudeCodeConfigPath() {
|
|
16
|
+
return join(homedir(), ".claude.json");
|
|
17
|
+
}
|
|
18
|
+
function getWindsurfConfigPath() {
|
|
19
|
+
return join(homedir(), ".codeium", "windsurf", "mcp_config.json");
|
|
20
|
+
}
|
|
21
|
+
function getGeminiCliConfigPath() {
|
|
22
|
+
return join(homedir(), ".gemini", "settings.json");
|
|
23
|
+
}
|
|
24
|
+
function detectClaudeCode() {
|
|
25
|
+
return existsSync(getClaudeCodeConfigPath()) || existsSync(join(homedir(), ".claude"));
|
|
26
|
+
}
|
|
27
|
+
function detectClaudeDesktop() {
|
|
28
|
+
const configPath = getClaudeDesktopConfigPath();
|
|
29
|
+
if (existsSync(configPath)) return true;
|
|
30
|
+
if (platform() === "darwin") {
|
|
31
|
+
return existsSync(
|
|
32
|
+
join(homedir(), "Library", "Application Support", "Claude")
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
if (platform() === "win32") {
|
|
36
|
+
return existsSync(join(homedir(), "AppData", "Roaming", "Claude"));
|
|
37
|
+
}
|
|
38
|
+
return existsSync(join(homedir(), ".config", "Claude"));
|
|
39
|
+
}
|
|
40
|
+
function detectCursor() {
|
|
41
|
+
return existsSync(join(homedir(), ".cursor"));
|
|
42
|
+
}
|
|
43
|
+
function detectVscode() {
|
|
44
|
+
if (existsSync(join(homedir(), ".vscode"))) return true;
|
|
45
|
+
if (platform() === "darwin") {
|
|
46
|
+
return existsSync(
|
|
47
|
+
join(homedir(), "Library", "Application Support", "Code")
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
if (platform() === "win32") {
|
|
51
|
+
return existsSync(join(homedir(), "AppData", "Roaming", "Code"));
|
|
52
|
+
}
|
|
53
|
+
return existsSync(join(homedir(), ".config", "Code"));
|
|
54
|
+
}
|
|
55
|
+
function detectWindsurf() {
|
|
56
|
+
return existsSync(join(homedir(), ".codeium", "windsurf"));
|
|
57
|
+
}
|
|
58
|
+
function detectGeminiCli() {
|
|
59
|
+
return existsSync(join(homedir(), ".gemini"));
|
|
60
|
+
}
|
|
61
|
+
function detectClients() {
|
|
62
|
+
const claudeCode = detectClaudeCode();
|
|
63
|
+
const claudeDesktop = detectClaudeDesktop();
|
|
64
|
+
const cursor = detectCursor();
|
|
65
|
+
const vscode = detectVscode();
|
|
66
|
+
const windsurf = detectWindsurf();
|
|
67
|
+
const geminiCli = detectGeminiCli();
|
|
68
|
+
return [
|
|
69
|
+
{
|
|
70
|
+
id: "claude-code",
|
|
71
|
+
name: "Claude Code",
|
|
72
|
+
configPath: getClaudeCodeConfigPath(),
|
|
73
|
+
detected: claudeCode,
|
|
74
|
+
programmable: true,
|
|
75
|
+
hint: claudeCode ? void 0 : "~/.claude or ~/.claude.json not found"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: "claude-desktop",
|
|
79
|
+
name: "Claude Desktop",
|
|
80
|
+
configPath: getClaudeDesktopConfigPath(),
|
|
81
|
+
detected: claudeDesktop,
|
|
82
|
+
programmable: true,
|
|
83
|
+
hint: claudeDesktop ? void 0 : "Claude Desktop application directory not found"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: "cursor",
|
|
87
|
+
name: "Cursor",
|
|
88
|
+
configPath: getCursorConfigPath(),
|
|
89
|
+
detected: cursor,
|
|
90
|
+
programmable: true,
|
|
91
|
+
hint: cursor ? void 0 : "~/.cursor not found"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: "vscode",
|
|
95
|
+
name: "VS Code",
|
|
96
|
+
configPath: getVscodeConfigPath(),
|
|
97
|
+
detected: vscode,
|
|
98
|
+
programmable: true,
|
|
99
|
+
hint: vscode ? void 0 : "VS Code user data dir not found"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: "windsurf",
|
|
103
|
+
name: "Windsurf",
|
|
104
|
+
configPath: getWindsurfConfigPath(),
|
|
105
|
+
detected: windsurf,
|
|
106
|
+
programmable: true,
|
|
107
|
+
hint: windsurf ? void 0 : "~/.codeium/windsurf not found"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: "gemini-cli",
|
|
111
|
+
name: "Gemini CLI",
|
|
112
|
+
configPath: getGeminiCliConfigPath(),
|
|
113
|
+
detected: geminiCli,
|
|
114
|
+
programmable: true,
|
|
115
|
+
hint: geminiCli ? void 0 : "~/.gemini not found"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: "chatgpt-desktop",
|
|
119
|
+
name: "OpenAI / ChatGPT apps",
|
|
120
|
+
configPath: "(app or API setup)",
|
|
121
|
+
detected: false,
|
|
122
|
+
// No reliable filesystem signal — always print instructions
|
|
123
|
+
programmable: false,
|
|
124
|
+
hint: "Direct ChatGPT app connectors are auth-dependent; use OpenAI Responses API or an OAuth-compatible proxy."
|
|
125
|
+
}
|
|
126
|
+
];
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// src/cli/skills.ts
|
|
130
|
+
import {
|
|
131
|
+
cpSync,
|
|
132
|
+
existsSync as existsSync2,
|
|
133
|
+
mkdirSync,
|
|
134
|
+
readdirSync,
|
|
135
|
+
rmSync,
|
|
136
|
+
statSync
|
|
137
|
+
} from "fs";
|
|
138
|
+
import { homedir as homedir2 } from "os";
|
|
139
|
+
import { dirname, join as join2, resolve } from "path";
|
|
140
|
+
import { fileURLToPath } from "url";
|
|
141
|
+
var SKILL_PACK_NAMES = HIVE_AGENT_SKILLS.map((skill) => skill.name);
|
|
142
|
+
function getClientSkillsDir(client) {
|
|
143
|
+
switch (client) {
|
|
144
|
+
case "claude-code":
|
|
145
|
+
return join2(homedir2(), ".claude", "skills");
|
|
146
|
+
case "cursor":
|
|
147
|
+
return join2(homedir2(), ".cursor", "skills");
|
|
148
|
+
case "vscode":
|
|
149
|
+
return null;
|
|
150
|
+
case "windsurf":
|
|
151
|
+
return null;
|
|
152
|
+
case "gemini-cli":
|
|
153
|
+
return null;
|
|
154
|
+
case "claude-desktop":
|
|
155
|
+
return join2(homedir2(), ".claude", "skills");
|
|
156
|
+
case "chatgpt-desktop":
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function findBundledPacksDir() {
|
|
161
|
+
const override = process.env.HIVE_SKILLS_PACKS_DIR;
|
|
162
|
+
if (override && existsSync2(override) && statSync(override).isDirectory()) {
|
|
163
|
+
return override;
|
|
164
|
+
}
|
|
165
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
166
|
+
const candidates = [
|
|
167
|
+
// Compiled (bin/hive-mcp.js -> build/cli/skills.js)
|
|
168
|
+
resolve(here, "..", "..", "agent-skills", "packs"),
|
|
169
|
+
// Source tree (tests / dev mode)
|
|
170
|
+
resolve(here, "..", "..", "agent-skills", "packs"),
|
|
171
|
+
// Single-level dev (when CLI is run from source)
|
|
172
|
+
resolve(here, "..", "agent-skills", "packs"),
|
|
173
|
+
// Process-relative as a last resort
|
|
174
|
+
resolve(process.cwd(), "agent-skills", "packs")
|
|
175
|
+
];
|
|
176
|
+
for (const candidate of candidates) {
|
|
177
|
+
if (existsSync2(candidate) && statSync(candidate).isDirectory()) {
|
|
178
|
+
return candidate;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
function installSkillsForClient(client) {
|
|
184
|
+
const dest = getClientSkillsDir(client);
|
|
185
|
+
if (!dest) {
|
|
186
|
+
return {
|
|
187
|
+
client,
|
|
188
|
+
installed: [],
|
|
189
|
+
skipped: [...SKILL_PACK_NAMES],
|
|
190
|
+
destination: null,
|
|
191
|
+
reason: "Client has no native skills directory \u2014 tools come over MCP"
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
const packsRoot = findBundledPacksDir();
|
|
195
|
+
if (!packsRoot) {
|
|
196
|
+
return {
|
|
197
|
+
client,
|
|
198
|
+
installed: [],
|
|
199
|
+
skipped: [...SKILL_PACK_NAMES],
|
|
200
|
+
destination: dest,
|
|
201
|
+
reason: "Bundled skill packs not found \u2014 package install may be incomplete"
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
if (!existsSync2(dest)) mkdirSync(dest, { recursive: true });
|
|
205
|
+
const installed = [];
|
|
206
|
+
const skipped = [];
|
|
207
|
+
for (const pack of SKILL_PACK_NAMES) {
|
|
208
|
+
const src = join2(packsRoot, pack);
|
|
209
|
+
if (!existsSync2(src)) {
|
|
210
|
+
skipped.push(pack);
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
const target = join2(dest, pack);
|
|
214
|
+
if (existsSync2(target)) rmSync(target, { recursive: true, force: true });
|
|
215
|
+
cpSync(src, target, { recursive: true });
|
|
216
|
+
installed.push(pack);
|
|
217
|
+
}
|
|
218
|
+
return { client, installed, skipped, destination: dest };
|
|
219
|
+
}
|
|
220
|
+
function installSkillsForClients(clients) {
|
|
221
|
+
return clients.map(installSkillsForClient);
|
|
222
|
+
}
|
|
223
|
+
function removeSkillsForClient(client) {
|
|
224
|
+
const dest = getClientSkillsDir(client);
|
|
225
|
+
if (!dest || !existsSync2(dest)) {
|
|
226
|
+
return { client, removed: [], destination: dest };
|
|
227
|
+
}
|
|
228
|
+
const removed = [];
|
|
229
|
+
for (const pack of SKILL_PACK_NAMES) {
|
|
230
|
+
const target = join2(dest, pack);
|
|
231
|
+
if (existsSync2(target)) {
|
|
232
|
+
rmSync(target, { recursive: true, force: true });
|
|
233
|
+
removed.push(pack);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return { client, removed, destination: dest };
|
|
237
|
+
}
|
|
238
|
+
function removeSkillsForClients(clients) {
|
|
239
|
+
return clients.map(removeSkillsForClient);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export {
|
|
243
|
+
detectClients,
|
|
244
|
+
installSkillsForClients,
|
|
245
|
+
removeSkillsForClients
|
|
246
|
+
};
|