hive-intelligence 1.1.0 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/README.md +243 -166
  2. package/agent-skills/.claude-plugin/plugin.json +105 -0
  3. package/{LICENSE → agent-skills/LICENSE} +1 -1
  4. package/agent-skills/README.md +146 -0
  5. package/agent-skills/SKILL.md +68 -0
  6. package/agent-skills/evals/README.md +20 -0
  7. package/agent-skills/evals/trigger-queries.json +194 -0
  8. package/agent-skills/package.json +49 -0
  9. package/agent-skills/packs/hive-build/SKILL.md +327 -0
  10. package/agent-skills/packs/hive-build/evals/evals.json +28 -0
  11. package/agent-skills/packs/hive-build-onboarding/SKILL.md +137 -0
  12. package/agent-skills/packs/hive-build-onboarding/evals/evals.json +27 -0
  13. package/agent-skills/packs/hive-cli/SKILL.md +141 -0
  14. package/agent-skills/packs/hive-cli/evals/evals.json +27 -0
  15. package/agent-skills/packs/hive-defi-research/SKILL.md +42 -0
  16. package/agent-skills/packs/hive-defi-research/evals/evals.json +27 -0
  17. package/agent-skills/packs/hive-defi-research/references/workflow.md +41 -0
  18. package/agent-skills/packs/hive-dex-pool-analysis/SKILL.md +41 -0
  19. package/agent-skills/packs/hive-dex-pool-analysis/evals/evals.json +27 -0
  20. package/agent-skills/packs/hive-dex-pool-analysis/references/workflow.md +42 -0
  21. package/agent-skills/packs/hive-market-research/SKILL.md +45 -0
  22. package/agent-skills/packs/hive-market-research/evals/evals.json +27 -0
  23. package/agent-skills/packs/hive-market-research/references/workflow.md +47 -0
  24. package/agent-skills/packs/hive-mcp/SKILL.md +224 -0
  25. package/agent-skills/packs/hive-mcp/evals/evals.json +38 -0
  26. package/agent-skills/packs/hive-mcp/references/client-install-matrix.md +83 -0
  27. package/agent-skills/packs/hive-network-infrastructure/SKILL.md +44 -0
  28. package/agent-skills/packs/hive-network-infrastructure/evals/evals.json +27 -0
  29. package/agent-skills/packs/hive-network-infrastructure/references/workflow.md +41 -0
  30. package/agent-skills/packs/hive-nft-research/SKILL.md +41 -0
  31. package/agent-skills/packs/hive-nft-research/evals/evals.json +27 -0
  32. package/agent-skills/packs/hive-nft-research/references/workflow.md +42 -0
  33. package/agent-skills/packs/hive-prediction-markets/SKILL.md +44 -0
  34. package/agent-skills/packs/hive-prediction-markets/evals/evals.json +27 -0
  35. package/agent-skills/packs/hive-prediction-markets/references/workflow.md +42 -0
  36. package/agent-skills/packs/hive-query/SKILL.md +98 -0
  37. package/agent-skills/packs/hive-query/evals/evals.json +38 -0
  38. package/agent-skills/packs/hive-query/references/root-mcp-workflow.md +54 -0
  39. package/agent-skills/packs/hive-security-risk/SKILL.md +42 -0
  40. package/agent-skills/packs/hive-security-risk/evals/evals.json +27 -0
  41. package/agent-skills/packs/hive-security-risk/references/workflow.md +46 -0
  42. package/agent-skills/packs/hive-solana-analysis/SKILL.md +42 -0
  43. package/agent-skills/packs/hive-solana-analysis/evals/evals.json +27 -0
  44. package/agent-skills/packs/hive-solana-analysis/references/workflow.md +42 -0
  45. package/agent-skills/packs/hive-token-diligence/SKILL.md +44 -0
  46. package/agent-skills/packs/hive-token-diligence/evals/evals.json +27 -0
  47. package/agent-skills/packs/hive-token-diligence/references/workflow.md +45 -0
  48. package/agent-skills/packs/hive-tool-discovery/SKILL.md +49 -0
  49. package/agent-skills/packs/hive-tool-discovery/evals/evals.json +38 -0
  50. package/agent-skills/packs/hive-tool-discovery/references/discovery-surfaces.md +62 -0
  51. package/agent-skills/packs/hive-wallet-investigation/SKILL.md +42 -0
  52. package/agent-skills/packs/hive-wallet-investigation/evals/evals.json +27 -0
  53. package/agent-skills/packs/hive-wallet-investigation/references/workflow.md +45 -0
  54. package/agent-skills/references/agents-routing.md +49 -0
  55. package/agent-skills/scripts/validate-agent-skills-package.mjs +178 -0
  56. package/agent-skills/skills.sh.json +40 -0
  57. package/bin/hive-mcp.js +33 -0
  58. package/build/{alias-INGXWFCG.js → alias-CZ3DEYHF.js} +3 -3
  59. package/build/api-client-I23XLSHU.js +28 -0
  60. package/build/auth-KKINNBXT.js +40 -0
  61. package/build/browser-auth-EEFGRHWY.js +9 -0
  62. package/build/{cache-US4LSZPI.js → cache-EGNMENNA.js} +3 -3
  63. package/build/chunk-2MYMHMBF.js +340 -0
  64. package/build/chunk-2MYMHMBF.js.map +1 -0
  65. package/build/chunk-2X3U4DFK.js +77369 -0
  66. package/build/chunk-2X3U4DFK.js.map +1 -0
  67. package/build/chunk-B6G222LS.js +265 -0
  68. package/build/chunk-B6G222LS.js.map +1 -0
  69. package/build/{chunk-WKVZVQTG.js → chunk-DYJBTKNR.js} +4 -4
  70. package/build/chunk-DYJBTKNR.js.map +1 -0
  71. package/build/chunk-IDZD2NVG.js +247 -0
  72. package/build/chunk-IDZD2NVG.js.map +1 -0
  73. package/build/chunk-IZTN7WFH.js +250 -0
  74. package/build/chunk-IZTN7WFH.js.map +1 -0
  75. package/build/{chunk-QMRVH5ZP.js → chunk-KBVPIZS4.js} +10 -2
  76. package/build/chunk-KGYBTXIN.js +86 -0
  77. package/build/chunk-KGYBTXIN.js.map +1 -0
  78. package/build/{chunk-X7ETBCBP.js → chunk-MPIUUE3T.js} +60 -272
  79. package/build/chunk-MPIUUE3T.js.map +1 -0
  80. package/build/chunk-PGBVNMNZ.js +127 -0
  81. package/build/chunk-PGBVNMNZ.js.map +1 -0
  82. package/build/chunk-QNCI4DEB.js +88 -0
  83. package/build/chunk-QNCI4DEB.js.map +1 -0
  84. package/build/chunk-RKICZ6DZ.js +497 -0
  85. package/build/chunk-RKICZ6DZ.js.map +1 -0
  86. package/build/chunk-UKHZIVDT.js +44 -0
  87. package/build/chunk-UKHZIVDT.js.map +1 -0
  88. package/build/{chunk-XQJ6PB2L.js → chunk-V77LO4RO.js} +1 -1
  89. package/build/chunk-V77LO4RO.js.map +1 -0
  90. package/build/{chunk-CP3FXEQA.js → chunk-XYBEFFZ3.js} +5 -6
  91. package/build/chunk-XYBEFFZ3.js.map +1 -0
  92. package/build/cli.js +134 -122
  93. package/build/cli.js.map +1 -1
  94. package/build/{completion-SBTSXTR3.js → completion-BELZL7ND.js} +55 -50
  95. package/build/completion-BELZL7ND.js.map +1 -0
  96. package/build/config-TDX4VUGW.js +58 -0
  97. package/build/{config-dir-IEOID7Q6.js → config-dir-V43W2WIA.js} +3 -3
  98. package/build/{doctor-7WZMCQC7.js → doctor-5K5UWHNX.js} +13 -13
  99. package/build/doctor-5K5UWHNX.js.map +1 -0
  100. package/build/{errors-U6UZWVSD.js → errors-E6MVUBNA.js} +3 -3
  101. package/build/format-TSFSI2K7.js +43 -0
  102. package/build/format-TSFSI2K7.js.map +1 -0
  103. package/build/{init-CAVIFVSH.js → init-YQ5NBICF.js} +2 -2
  104. package/build/init-all-6OWEQALB.js +274 -0
  105. package/build/init-all-6OWEQALB.js.map +1 -0
  106. package/build/mcpServer-AEX3RQ4U.js +20 -0
  107. package/build/mcpServer-AEX3RQ4U.js.map +1 -0
  108. package/build/{namespace-7SBV4G7R.js → namespace-PVHBFDW2.js} +3 -3
  109. package/build/namespace-PVHBFDW2.js.map +1 -0
  110. package/build/{open-FUXYIHFO.js → open-YUIJP37F.js} +6 -6
  111. package/build/open-YUIJP37F.js.map +1 -0
  112. package/build/{output-7PGQWJY2.js → output-IYJBFCYK.js} +3 -3
  113. package/build/output-IYJBFCYK.js.map +1 -0
  114. package/build/serve-KWNJK6EY.js +44 -0
  115. package/build/serve-KWNJK6EY.js.map +1 -0
  116. package/build/server.js +4749 -14332
  117. package/build/server.js.map +1 -1
  118. package/build/setup-YTUKMPNP.js +136 -0
  119. package/build/setup-YTUKMPNP.js.map +1 -0
  120. package/build/stdio.js +31 -0
  121. package/build/stdio.js.map +1 -0
  122. package/build/{telemetry-KNWMQURH.js → telemetry-5IPRKZBL.js} +4 -4
  123. package/build/telemetry-5IPRKZBL.js.map +1 -0
  124. package/build/{tools-XEGCLA4I.js → tools-PJHWFCAG.js} +15 -15
  125. package/build/uninstall-HWXEIP6K.js +115 -0
  126. package/build/uninstall-HWXEIP6K.js.map +1 -0
  127. package/build/{watch-A75SVIQ6.js → watch-KZ5EDZK3.js} +7 -7
  128. package/package.json +124 -24
  129. package/bin/hive.js +0 -25
  130. package/build/auth-77MKFFBQ.js +0 -233
  131. package/build/auth-77MKFFBQ.js.map +0 -1
  132. package/build/chunk-CP3FXEQA.js.map +0 -1
  133. package/build/chunk-DTUDM6HX.js +0 -3108
  134. package/build/chunk-DTUDM6HX.js.map +0 -1
  135. package/build/chunk-LBTLYTZS.js +0 -115
  136. package/build/chunk-LBTLYTZS.js.map +0 -1
  137. package/build/chunk-OK3LSM73.js +0 -22
  138. package/build/chunk-OK3LSM73.js.map +0 -1
  139. package/build/chunk-RRI526CJ.js +0 -212
  140. package/build/chunk-RRI526CJ.js.map +0 -1
  141. package/build/chunk-WKVZVQTG.js.map +0 -1
  142. package/build/chunk-X7ETBCBP.js.map +0 -1
  143. package/build/chunk-XQJ6PB2L.js.map +0 -1
  144. package/build/completion-SBTSXTR3.js.map +0 -1
  145. package/build/config-2VDB2ZHE.js +0 -100
  146. package/build/config-2VDB2ZHE.js.map +0 -1
  147. package/build/doctor-7WZMCQC7.js.map +0 -1
  148. package/build/format-CVLLK6GD.js +0 -75
  149. package/build/format-CVLLK6GD.js.map +0 -1
  150. package/build/open-FUXYIHFO.js.map +0 -1
  151. package/build/version-3TZ3U4IR.js +0 -9
  152. /package/build/{alias-INGXWFCG.js.map → alias-CZ3DEYHF.js.map} +0 -0
  153. /package/build/{chunk-QMRVH5ZP.js.map → api-client-I23XLSHU.js.map} +0 -0
  154. /package/build/{config-dir-IEOID7Q6.js.map → auth-KKINNBXT.js.map} +0 -0
  155. /package/build/{errors-U6UZWVSD.js.map → browser-auth-EEFGRHWY.js.map} +0 -0
  156. /package/build/{cache-US4LSZPI.js.map → cache-EGNMENNA.js.map} +0 -0
  157. /package/build/{namespace-7SBV4G7R.js.map → chunk-KBVPIZS4.js.map} +0 -0
  158. /package/build/{output-7PGQWJY2.js.map → config-TDX4VUGW.js.map} +0 -0
  159. /package/build/{telemetry-KNWMQURH.js.map → config-dir-V43W2WIA.js.map} +0 -0
  160. /package/build/{version-3TZ3U4IR.js.map → errors-E6MVUBNA.js.map} +0 -0
  161. /package/build/{init-CAVIFVSH.js.map → init-YQ5NBICF.js.map} +0 -0
  162. /package/build/{tools-XEGCLA4I.js.map → tools-PJHWFCAG.js.map} +0 -0
  163. /package/build/{watch-A75SVIQ6.js.map → watch-KZ5EDZK3.js.map} +0 -0
@@ -0,0 +1,136 @@
1
+ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ resolveApiKey
4
+ } from "./chunk-V77LO4RO.js";
5
+ import "./chunk-KBVPIZS4.js";
6
+
7
+ // src/cli/setup.ts
8
+ import { createInterface } from "readline";
9
+ var CLIENTS = [
10
+ { name: "Claude Desktop", value: "claude-desktop" },
11
+ { name: "Claude Code", value: "claude-code" },
12
+ { name: "Cursor", value: "cursor" },
13
+ { name: "VS Code", value: "vscode" }
14
+ ];
15
+ async function runSetup(client) {
16
+ const apiKey = resolveApiKey();
17
+ if (!apiKey) {
18
+ process.stderr.write("\nNo API key found. Let's log in first.\n");
19
+ const { runLogin } = await import("./auth-KKINNBXT.js");
20
+ await runLogin({ manual: false });
21
+ }
22
+ let selectedClient;
23
+ if (client && CLIENTS.some((c) => c.value === client)) {
24
+ selectedClient = client;
25
+ } else {
26
+ if (!process.stdin.isTTY) {
27
+ process.stderr.write(
28
+ "Error: specify a client (claude-desktop, claude-code, cursor, vscode)\n"
29
+ );
30
+ process.exit(1);
31
+ }
32
+ process.stderr.write("\nWhich client do you want to configure?\n\n");
33
+ for (let i = 0; i < CLIENTS.length; i++) {
34
+ process.stderr.write(` ${i + 1}. ${CLIENTS[i].name}
35
+ `);
36
+ }
37
+ const rl = createInterface({
38
+ input: process.stdin,
39
+ output: process.stderr
40
+ });
41
+ const answer = await new Promise(
42
+ (resolve) => rl.question("\nChoice (1-4): ", resolve)
43
+ );
44
+ rl.close();
45
+ const idx = parseInt(answer.trim(), 10) - 1;
46
+ if (isNaN(idx) || idx < 0 || idx >= CLIENTS.length) {
47
+ process.stderr.write("Invalid choice.\n");
48
+ process.exit(1);
49
+ }
50
+ selectedClient = CLIENTS[idx].value;
51
+ }
52
+ const {
53
+ writeClaudeDesktopConfig,
54
+ writeCursorConfig,
55
+ writeVscodeConfig,
56
+ writeClaudeCodeConfig
57
+ } = await import("./config-TDX4VUGW.js");
58
+ switch (selectedClient) {
59
+ case "claude-desktop": {
60
+ const result = writeClaudeDesktopConfig();
61
+ if (result.written) {
62
+ process.stderr.write(`
63
+ Config written to ${result.path}
64
+ `);
65
+ process.stderr.write(` Restart Claude Desktop to connect.
66
+
67
+ `);
68
+ } else {
69
+ process.stderr.write(
70
+ `
71
+ No API key available. Run 'hive auth login' first.
72
+ `
73
+ );
74
+ }
75
+ break;
76
+ }
77
+ case "cursor": {
78
+ const result = writeCursorConfig();
79
+ if (result.written) {
80
+ process.stderr.write(`
81
+ Config written to ${result.path}
82
+ `);
83
+ process.stderr.write(` Restart Cursor to connect.
84
+
85
+ `);
86
+ } else {
87
+ process.stderr.write(
88
+ `
89
+ No API key available. Run 'hive auth login' first.
90
+ `
91
+ );
92
+ }
93
+ break;
94
+ }
95
+ case "vscode": {
96
+ const result = writeVscodeConfig();
97
+ if (result.written) {
98
+ process.stderr.write(`
99
+ Config written to ${result.path}
100
+ `);
101
+ process.stderr.write(` Reload VS Code to connect.
102
+
103
+ `);
104
+ } else {
105
+ process.stderr.write(
106
+ `
107
+ No API key available. Run 'hive auth login' first.
108
+ `
109
+ );
110
+ }
111
+ break;
112
+ }
113
+ case "claude-code": {
114
+ const currentKey = resolveApiKey();
115
+ if (!currentKey) {
116
+ process.stderr.write(
117
+ `
118
+ No API key available. Run 'hive auth login' first.
119
+ `
120
+ );
121
+ } else {
122
+ const result = writeClaudeCodeConfig();
123
+ process.stderr.write(`
124
+ Run this command:
125
+ ${result.command}
126
+
127
+ `);
128
+ }
129
+ break;
130
+ }
131
+ }
132
+ }
133
+ export {
134
+ runSetup
135
+ };
136
+ //# sourceMappingURL=setup-YTUKMPNP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/setup.ts"],"sourcesContent":["import { createInterface } from \"node:readline\";\nimport { resolveApiKey } from \"./config-dir.js\";\n\nconst CLIENTS = [\n { name: \"Claude Desktop\", value: \"claude-desktop\" },\n { name: \"Claude Code\", value: \"claude-code\" },\n { name: \"Cursor\", value: \"cursor\" },\n { name: \"VS Code\", value: \"vscode\" },\n] as const;\n\ntype ClientValue = (typeof CLIENTS)[number][\"value\"];\n\nexport async function runSetup(client?: string): Promise<void> {\n // Step 1: Check if logged in\n const apiKey = resolveApiKey();\n if (!apiKey) {\n process.stderr.write(\"\\nNo API key found. Let's log in first.\\n\");\n const { runLogin } = await import(\"./auth.js\");\n await runLogin({ manual: false });\n }\n\n // Step 2: Determine which client to configure\n let selectedClient: ClientValue;\n\n if (client && CLIENTS.some((c) => c.value === client)) {\n selectedClient = client as ClientValue;\n } else {\n if (!process.stdin.isTTY) {\n process.stderr.write(\n \"Error: specify a client (claude-desktop, claude-code, cursor, vscode)\\n\",\n );\n process.exit(1);\n }\n\n process.stderr.write(\"\\nWhich client do you want to configure?\\n\\n\");\n for (let i = 0; i < CLIENTS.length; i++) {\n process.stderr.write(` ${i + 1}. ${CLIENTS[i].name}\\n`);\n }\n\n const rl = createInterface({\n input: process.stdin,\n output: process.stderr,\n });\n const answer = await new Promise<string>((resolve) =>\n rl.question(\"\\nChoice (1-4): \", resolve),\n );\n rl.close();\n\n const idx = parseInt(answer.trim(), 10) - 1;\n if (isNaN(idx) || idx < 0 || idx >= CLIENTS.length) {\n process.stderr.write(\"Invalid choice.\\n\");\n process.exit(1);\n }\n selectedClient = CLIENTS[idx].value;\n }\n\n // Step 3: Write config for the selected client\n const {\n writeClaudeDesktopConfig,\n writeCursorConfig,\n writeVscodeConfig,\n writeClaudeCodeConfig,\n } = await import(\"./config.js\");\n\n switch (selectedClient) {\n case \"claude-desktop\": {\n const result = writeClaudeDesktopConfig();\n if (result.written) {\n process.stderr.write(`\\n Config written to ${result.path}\\n`);\n process.stderr.write(` Restart Claude Desktop to connect.\\n\\n`);\n } else {\n process.stderr.write(\n `\\n No API key available. Run 'hive auth login' first.\\n`,\n );\n }\n break;\n }\n case \"cursor\": {\n const result = writeCursorConfig();\n if (result.written) {\n process.stderr.write(`\\n Config written to ${result.path}\\n`);\n process.stderr.write(` Restart Cursor to connect.\\n\\n`);\n } else {\n process.stderr.write(\n `\\n No API key available. Run 'hive auth login' first.\\n`,\n );\n }\n break;\n }\n case \"vscode\": {\n const result = writeVscodeConfig();\n if (result.written) {\n process.stderr.write(`\\n Config written to ${result.path}\\n`);\n process.stderr.write(` Reload VS Code to connect.\\n\\n`);\n } else {\n process.stderr.write(\n `\\n No API key available. Run 'hive auth login' first.\\n`,\n );\n }\n break;\n }\n case \"claude-code\": {\n const currentKey = resolveApiKey();\n if (!currentKey) {\n process.stderr.write(\n `\\n No API key available. Run 'hive auth login' first.\\n`,\n );\n } else {\n const result = writeClaudeCodeConfig();\n process.stderr.write(`\\n Run this command:\\n ${result.command}\\n\\n`);\n }\n break;\n }\n }\n}\n"],"mappings":"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","names":[]}
package/build/stdio.js ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
3
+ import {
4
+ checkForUpdates
5
+ } from "./chunk-QNCI4DEB.js";
6
+ import {
7
+ SERVER_NAME,
8
+ SERVER_VERSION,
9
+ createHiveMcpServer,
10
+ secureLogger
11
+ } from "./chunk-2X3U4DFK.js";
12
+ import "./chunk-B6G222LS.js";
13
+ import "./chunk-V77LO4RO.js";
14
+ import "./chunk-KBVPIZS4.js";
15
+
16
+ // src/stdio.ts
17
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
18
+ async function main() {
19
+ const transport = new StdioServerTransport();
20
+ const server = createHiveMcpServer({ kind: "root" }).getServer();
21
+ await server.connect(transport);
22
+ console.error(
23
+ `Hive MCP stdio server connected: ${SERVER_NAME} v${SERVER_VERSION}`
24
+ );
25
+ checkForUpdates();
26
+ }
27
+ main().catch((error) => {
28
+ secureLogger.error("Failed to start Hive MCP stdio server", error);
29
+ process.exit(1);
30
+ });
31
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/stdio.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } from \"./mcpServer\";\nimport { secureLogger } from \"./utils/secureLogger\";\nimport { checkForUpdates } from \"./cli/update-check.js\";\n\nasync function main() {\n const transport = new StdioServerTransport();\n const server = createHiveMcpServer({ kind: \"root\" }).getServer();\n\n await server.connect(transport);\n // Use stderr to avoid corrupting the JSON-RPC stream on stdout\n console.error(\n `Hive MCP stdio server connected: ${SERVER_NAME} v${SERVER_VERSION}`,\n );\n\n // Non-blocking update check — logs to stderr (visible in MCP client logs)\n checkForUpdates();\n}\n\nmain().catch((error) => {\n secureLogger.error(\"Failed to start Hive MCP stdio server\", error);\n process.exit(1);\n});\n"],"mappings":";;;;;;;;;;;;;;;;AACA,SAAS,4BAA4B;AAKrC,eAAe,OAAO;AACpB,QAAM,YAAY,IAAI,qBAAqB;AAC3C,QAAM,SAAS,oBAAoB,EAAE,MAAM,OAAO,CAAC,EAAE,UAAU;AAE/D,QAAM,OAAO,QAAQ,SAAS;AAE9B,UAAQ;AAAA,IACN,oCAAoC,WAAW,KAAK,cAAc;AAAA,EACpE;AAGA,kBAAgB;AAClB;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,eAAa,MAAM,yCAAyC,KAAK;AACjE,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
@@ -5,9 +5,9 @@ import {
5
5
  isTelemetryEnabled,
6
6
  telemetryStatus,
7
7
  trackCommand
8
- } from "./chunk-WKVZVQTG.js";
9
- import "./chunk-XQJ6PB2L.js";
10
- import "./chunk-QMRVH5ZP.js";
8
+ } from "./chunk-DYJBTKNR.js";
9
+ import "./chunk-V77LO4RO.js";
10
+ import "./chunk-KBVPIZS4.js";
11
11
  export {
12
12
  disableTelemetry,
13
13
  enableTelemetry,
@@ -15,4 +15,4 @@ export {
15
15
  telemetryStatus,
16
16
  trackCommand
17
17
  };
18
- //# sourceMappingURL=telemetry-KNWMQURH.js.map
18
+ //# sourceMappingURL=telemetry-5IPRKZBL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,26 +1,26 @@
1
1
  import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  fetchToolCatalog
4
- } from "./chunk-LBTLYTZS.js";
4
+ } from "./chunk-IZTN7WFH.js";
5
5
  import {
6
6
  info,
7
7
  shouldOutputJson,
8
8
  successEnvelope,
9
9
  writeOutput
10
- } from "./chunk-CP3FXEQA.js";
11
- import "./chunk-XQJ6PB2L.js";
12
- import "./chunk-QMRVH5ZP.js";
10
+ } from "./chunk-XYBEFFZ3.js";
11
+ import "./chunk-V77LO4RO.js";
12
+ import "./chunk-KBVPIZS4.js";
13
13
 
14
14
  // src/cli/tools.ts
15
15
  async function loadToolCatalog() {
16
- const { getCachedTools, setCachedTools } = await import("./cache-US4LSZPI.js");
16
+ const { getCachedTools, setCachedTools } = await import("./cache-EGNMENNA.js");
17
17
  const cached = getCachedTools();
18
18
  if (cached) return cached;
19
19
  const response = await fetchToolCatalog();
20
20
  if (!response.ok) {
21
21
  const msg = response.error && typeof response.error === "object" && "message" in response.error ? String(response.error.message) : "Failed to fetch tool catalog";
22
- const { CliError } = await import("./errors-U6UZWVSD.js");
23
- const { outputError } = await import("./output-7PGQWJY2.js");
22
+ const { CliError } = await import("./errors-E6MVUBNA.js");
23
+ const { outputError } = await import("./output-IYJBFCYK.js");
24
24
  await outputError(
25
25
  new CliError("API_ERROR", msg, "Check: hive doctor"),
26
26
  {}
@@ -39,7 +39,7 @@ async function listTools(opts) {
39
39
  tools = tools.filter((t) => t.name.toLowerCase().startsWith(prefix + "_"));
40
40
  }
41
41
  if (opts.category) {
42
- const { NAMESPACE } = await import("./namespace-7SBV4G7R.js");
42
+ const { NAMESPACE } = await import("./namespace-PVHBFDW2.js");
43
43
  const cat = opts.category.toLowerCase();
44
44
  const ns = NAMESPACE.find(
45
45
  (d) => d.name === cat || d.description.toLowerCase().includes(cat)
@@ -73,7 +73,7 @@ async function listTools(opts) {
73
73
  await writeOutput(successEnvelope(data, {}));
74
74
  return;
75
75
  }
76
- const { table } = await import("./format-CVLLK6GD.js");
76
+ const { table } = await import("./format-TSFSI2K7.js");
77
77
  const rangeStart = totalFiltered === 0 ? 0 : offset + 1;
78
78
  const rangeEnd = offset + items.length;
79
79
  info(`
@@ -102,7 +102,7 @@ async function searchTools(query) {
102
102
  await writeOutput(successEnvelope(data, {}));
103
103
  return;
104
104
  }
105
- const { table } = await import("./format-CVLLK6GD.js");
105
+ const { table } = await import("./format-TSFSI2K7.js");
106
106
  info(`
107
107
  ${matches.length} matches for "${query}"
108
108
  `);
@@ -121,8 +121,8 @@ async function toolInfo(name) {
121
121
  const allTools = await loadToolCatalog();
122
122
  const tool = allTools.find((t2) => t2.name === name);
123
123
  if (!tool) {
124
- const { CliError, suggestSimilarTools } = await import("./errors-U6UZWVSD.js");
125
- const { outputError } = await import("./output-7PGQWJY2.js");
124
+ const { CliError, suggestSimilarTools } = await import("./errors-E6MVUBNA.js");
125
+ const { outputError } = await import("./output-IYJBFCYK.js");
126
126
  const similar = suggestSimilarTools(
127
127
  name,
128
128
  allTools.map((t2) => t2.name)
@@ -161,8 +161,8 @@ ${t.description}
161
161
  }
162
162
  }
163
163
  async function refreshTools() {
164
- const { clearCache } = await import("./cache-US4LSZPI.js");
165
- const { info: printInfo } = await import("./output-7PGQWJY2.js");
164
+ const { clearCache } = await import("./cache-EGNMENNA.js");
165
+ const { info: printInfo } = await import("./output-IYJBFCYK.js");
166
166
  clearCache();
167
167
  printInfo("Cache cleared. Fetching fresh tool catalog...\n");
168
168
  const tools = await loadToolCatalog();
@@ -175,4 +175,4 @@ export {
175
175
  searchTools,
176
176
  toolInfo
177
177
  };
178
- //# sourceMappingURL=tools-XEGCLA4I.js.map
178
+ //# sourceMappingURL=tools-PJHWFCAG.js.map
@@ -0,0 +1,115 @@
1
+ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ detectClients,
4
+ removeSkillsForClients
5
+ } from "./chunk-IDZD2NVG.js";
6
+ import {
7
+ removeClaudeCodeUserConfig,
8
+ removeClaudeDesktopConfig,
9
+ removeCursorConfig,
10
+ removeGeminiCliConfig,
11
+ removeVscodeConfig,
12
+ removeWindsurfConfig
13
+ } from "./chunk-2MYMHMBF.js";
14
+ import "./chunk-B6G222LS.js";
15
+ import {
16
+ bold,
17
+ dim,
18
+ green,
19
+ yellow
20
+ } from "./chunk-XYBEFFZ3.js";
21
+ import "./chunk-V77LO4RO.js";
22
+ import "./chunk-KBVPIZS4.js";
23
+
24
+ // src/cli/uninstall.ts
25
+ function w(line) {
26
+ process.stderr.write(line + "\n");
27
+ }
28
+ function ok(line) {
29
+ w(` ${green("\u2713")} ${line}`);
30
+ }
31
+ function info(line) {
32
+ w(` ${dim(line)}`);
33
+ }
34
+ function warn(line) {
35
+ w(` ${yellow("!")} ${line}`);
36
+ }
37
+ var REMOVERS = {
38
+ "claude-code": removeClaudeCodeUserConfig,
39
+ "claude-desktop": removeClaudeDesktopConfig,
40
+ cursor: removeCursorConfig,
41
+ vscode: removeVscodeConfig,
42
+ windsurf: removeWindsurfConfig,
43
+ "gemini-cli": removeGeminiCliConfig
44
+ };
45
+ async function runUninstall(opts = {}) {
46
+ const summary = {
47
+ cleaned: [],
48
+ skills: [],
49
+ dryRun: Boolean(opts.dryRun)
50
+ };
51
+ if (!opts.json) {
52
+ w(bold("\nHive Intelligence \u2014 Uninstall"));
53
+ if (summary.dryRun) info("(dry-run \u2014 nothing will be changed)");
54
+ }
55
+ const clients = detectClients();
56
+ if (!opts.json) w(bold("\nRemoving from client configs"));
57
+ const clientIds = [];
58
+ for (const c of clients) {
59
+ if (c.id === "chatgpt-desktop") {
60
+ info("ChatGPT Desktop \u2014 remove manually via Settings \u2192 Connectors");
61
+ continue;
62
+ }
63
+ if (summary.dryRun) {
64
+ info(`Would clean ${c.configPath}`);
65
+ summary.cleaned.push({ client: c.id, path: c.configPath, removed: false });
66
+ clientIds.push(c.id);
67
+ continue;
68
+ }
69
+ const remove = REMOVERS[c.id];
70
+ try {
71
+ const result = remove();
72
+ summary.cleaned.push({
73
+ client: c.id,
74
+ path: result.path,
75
+ removed: result.removed
76
+ });
77
+ if (result.removed) ok(`${c.name} ${dim("(" + result.path + ")")}`);
78
+ else info(`${c.name} \u2014 no Hive entry to remove`);
79
+ clientIds.push(c.id);
80
+ } catch (err) {
81
+ warn(
82
+ `${c.name} \u2014 failed: ${err instanceof Error ? err.message : err}`
83
+ );
84
+ }
85
+ }
86
+ if (!opts.json) w(bold("\nRemoving skill packs"));
87
+ if (summary.dryRun) {
88
+ info("Would remove Hive packs from per-client skills dirs");
89
+ } else {
90
+ summary.skills = removeSkillsForClients(clientIds);
91
+ for (const r of summary.skills) {
92
+ if (r.removed.length > 0) {
93
+ ok(
94
+ `${r.client}: ${r.removed.length} pack${r.removed.length === 1 ? "" : "s"} removed`
95
+ );
96
+ }
97
+ }
98
+ }
99
+ if (opts.json) {
100
+ process.stdout.write(JSON.stringify(summary, null, 2) + "\n");
101
+ } else {
102
+ w("");
103
+ w(bold("Done"));
104
+ info(
105
+ "Saved credentials at ~/.config/hive/ are kept. To remove, delete that directory or run `hive auth logout`."
106
+ );
107
+ info("To remove the CLI itself: npm uninstall -g hive-intelligence");
108
+ w("");
109
+ }
110
+ return 0;
111
+ }
112
+ export {
113
+ runUninstall
114
+ };
115
+ //# sourceMappingURL=uninstall-HWXEIP6K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/uninstall.ts"],"sourcesContent":["/**\n * `hive uninstall` — reverse the install. Strip Hive's MCP entry from\n * every client config we know about, remove skill packs, optionally\n * revoke the active key. Safe and idempotent.\n *\n * Doesn't uninstall the npm package itself — that's `npm uninstall -g\n * hive-intelligence`. We just clean up everything the CLI wrote into\n * external client configs and the user's home directory.\n */\n\nimport {\n removeClaudeCodeUserConfig,\n removeClaudeDesktopConfig,\n removeCursorConfig,\n removeGeminiCliConfig,\n removeVscodeConfig,\n removeWindsurfConfig,\n} from \"./config.js\";\nimport { detectClients, type ClientId } from \"./detect-clients.js\";\nimport { removeSkillsForClients } from \"./skills.js\";\nimport { bold, dim, green, yellow } from \"./output.js\";\n\nexport interface UninstallOptions {\n /** Clean every client config Hive knows about. */\n all?: boolean;\n /** Print plan; don't change anything. */\n dryRun?: boolean;\n /** JSON output for scripting. */\n json?: boolean;\n}\n\ninterface UninstallSummary {\n cleaned: { client: ClientId; path: string; removed: boolean }[];\n skills: { client: ClientId; removed: string[]; destination: string | null }[];\n dryRun: boolean;\n}\n\nfunction w(line: string): void {\n process.stderr.write(line + \"\\n\");\n}\n\nfunction ok(line: string): void {\n w(` ${green(\"✓\")} ${line}`);\n}\n\nfunction info(line: string): void {\n w(` ${dim(line)}`);\n}\n\nfunction warn(line: string): void {\n w(` ${yellow(\"!\")} ${line}`);\n}\n\nconst REMOVERS: Record<\n Exclude<ClientId, \"chatgpt-desktop\">,\n () => { removed: boolean; path: string }\n> = {\n \"claude-code\": removeClaudeCodeUserConfig,\n \"claude-desktop\": removeClaudeDesktopConfig,\n cursor: removeCursorConfig,\n vscode: removeVscodeConfig,\n windsurf: removeWindsurfConfig,\n \"gemini-cli\": removeGeminiCliConfig,\n};\n\nexport async function runUninstall(\n opts: UninstallOptions = {},\n): Promise<number> {\n const summary: UninstallSummary = {\n cleaned: [],\n skills: [],\n dryRun: Boolean(opts.dryRun),\n };\n\n if (!opts.json) {\n w(bold(\"\\nHive Intelligence — Uninstall\"));\n if (summary.dryRun) info(\"(dry-run — nothing will be changed)\");\n }\n\n const clients = detectClients();\n\n // Strip Hive entry from every config we manage. We try every client\n // even if not \"detected\" — the config could still have a stale Hive\n // entry from a prior install on a different machine config.\n if (!opts.json) w(bold(\"\\nRemoving from client configs\"));\n const clientIds: ClientId[] = [];\n for (const c of clients) {\n if (c.id === \"chatgpt-desktop\") {\n info(\"ChatGPT Desktop — remove manually via Settings → Connectors\");\n continue;\n }\n if (summary.dryRun) {\n info(`Would clean ${c.configPath}`);\n summary.cleaned.push({ client: c.id, path: c.configPath, removed: false });\n clientIds.push(c.id);\n continue;\n }\n const remove = REMOVERS[c.id as Exclude<ClientId, \"chatgpt-desktop\">];\n try {\n const result = remove();\n summary.cleaned.push({\n client: c.id,\n path: result.path,\n removed: result.removed,\n });\n if (result.removed) ok(`${c.name} ${dim(\"(\" + result.path + \")\")}`);\n else info(`${c.name} — no Hive entry to remove`);\n clientIds.push(c.id);\n } catch (err) {\n warn(\n `${c.name} — failed: ${err instanceof Error ? err.message : err}`,\n );\n }\n }\n\n // Remove skill packs.\n if (!opts.json) w(bold(\"\\nRemoving skill packs\"));\n if (summary.dryRun) {\n info(\"Would remove Hive packs from per-client skills dirs\");\n } else {\n summary.skills = removeSkillsForClients(clientIds);\n for (const r of summary.skills) {\n if (r.removed.length > 0) {\n ok(\n `${r.client}: ${r.removed.length} pack${\n r.removed.length === 1 ? \"\" : \"s\"\n } removed`,\n );\n }\n }\n }\n\n if (opts.json) {\n process.stdout.write(JSON.stringify(summary, null, 2) + \"\\n\");\n } else {\n w(\"\");\n w(bold(\"Done\"));\n info(\n \"Saved credentials at ~/.config/hive/ are kept. To remove, delete that directory or run `hive auth logout`.\",\n );\n info(\"To remove the CLI itself: npm uninstall -g hive-intelligence\");\n w(\"\");\n }\n\n return 0;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAS,EAAE,MAAoB;AAC7B,UAAQ,OAAO,MAAM,OAAO,IAAI;AAClC;AAEA,SAAS,GAAG,MAAoB;AAC9B,IAAE,KAAK,MAAM,QAAG,CAAC,IAAI,IAAI,EAAE;AAC7B;AAEA,SAAS,KAAK,MAAoB;AAChC,IAAE,KAAK,IAAI,IAAI,CAAC,EAAE;AACpB;AAEA,SAAS,KAAK,MAAoB;AAChC,IAAE,KAAK,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE;AAC9B;AAEA,IAAM,WAGF;AAAA,EACF,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,eAAsB,aACpB,OAAyB,CAAC,GACT;AACjB,QAAM,UAA4B;AAAA,IAChC,SAAS,CAAC;AAAA,IACV,QAAQ,CAAC;AAAA,IACT,QAAQ,QAAQ,KAAK,MAAM;AAAA,EAC7B;AAEA,MAAI,CAAC,KAAK,MAAM;AACd,MAAE,KAAK,sCAAiC,CAAC;AACzC,QAAI,QAAQ,OAAQ,MAAK,0CAAqC;AAAA,EAChE;AAEA,QAAM,UAAU,cAAc;AAK9B,MAAI,CAAC,KAAK,KAAM,GAAE,KAAK,gCAAgC,CAAC;AACxD,QAAM,YAAwB,CAAC;AAC/B,aAAW,KAAK,SAAS;AACvB,QAAI,EAAE,OAAO,mBAAmB;AAC9B,WAAK,uEAA6D;AAClE;AAAA,IACF;AACA,QAAI,QAAQ,QAAQ;AAClB,WAAK,eAAe,EAAE,UAAU,EAAE;AAClC,cAAQ,QAAQ,KAAK,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,YAAY,SAAS,MAAM,CAAC;AACzE,gBAAU,KAAK,EAAE,EAAE;AACnB;AAAA,IACF;AACA,UAAM,SAAS,SAAS,EAAE,EAA0C;AACpE,QAAI;AACF,YAAM,SAAS,OAAO;AACtB,cAAQ,QAAQ,KAAK;AAAA,QACnB,QAAQ,EAAE;AAAA,QACV,MAAM,OAAO;AAAA,QACb,SAAS,OAAO;AAAA,MAClB,CAAC;AACD,UAAI,OAAO,QAAS,IAAG,GAAG,EAAE,IAAI,IAAI,IAAI,MAAM,OAAO,OAAO,GAAG,CAAC,EAAE;AAAA,UAC7D,MAAK,GAAG,EAAE,IAAI,iCAA4B;AAC/C,gBAAU,KAAK,EAAE,EAAE;AAAA,IACrB,SAAS,KAAK;AACZ;AAAA,QACE,GAAG,EAAE,IAAI,mBAAc,eAAe,QAAQ,IAAI,UAAU,GAAG;AAAA,MACjE;AAAA,IACF;AAAA,EACF;AAGA,MAAI,CAAC,KAAK,KAAM,GAAE,KAAK,wBAAwB,CAAC;AAChD,MAAI,QAAQ,QAAQ;AAClB,SAAK,qDAAqD;AAAA,EAC5D,OAAO;AACL,YAAQ,SAAS,uBAAuB,SAAS;AACjD,eAAW,KAAK,QAAQ,QAAQ;AAC9B,UAAI,EAAE,QAAQ,SAAS,GAAG;AACxB;AAAA,UACE,GAAG,EAAE,MAAM,KAAK,EAAE,QAAQ,MAAM,QAC9B,EAAE,QAAQ,WAAW,IAAI,KAAK,GAChC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,KAAK,MAAM;AACb,YAAQ,OAAO,MAAM,KAAK,UAAU,SAAS,MAAM,CAAC,IAAI,IAAI;AAAA,EAC9D,OAAO;AACL,MAAE,EAAE;AACJ,MAAE,KAAK,MAAM,CAAC;AACd;AAAA,MACE;AAAA,IACF;AACA,SAAK,8DAA8D;AACnE,MAAE,EAAE;AAAA,EACN;AAEA,SAAO;AACT;","names":[]}
@@ -1,12 +1,12 @@
1
1
  import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  executeTool
4
- } from "./chunk-DTUDM6HX.js";
5
- import "./chunk-WKVZVQTG.js";
6
- import "./chunk-LBTLYTZS.js";
7
- import "./chunk-CP3FXEQA.js";
8
- import "./chunk-XQJ6PB2L.js";
9
- import "./chunk-QMRVH5ZP.js";
4
+ } from "./chunk-UKHZIVDT.js";
5
+ import "./chunk-DYJBTKNR.js";
6
+ import "./chunk-IZTN7WFH.js";
7
+ import "./chunk-XYBEFFZ3.js";
8
+ import "./chunk-V77LO4RO.js";
9
+ import "./chunk-KBVPIZS4.js";
10
10
 
11
11
  // src/cli/watch.ts
12
12
  var MAX_CONSECUTIVE_FAILURES = 10;
@@ -64,4 +64,4 @@ Aborting watch: ${MAX_CONSECUTIVE_FAILURES} consecutive failures.
64
64
  export {
65
65
  runWatch
66
66
  };
67
- //# sourceMappingURL=watch-A75SVIQ6.js.map
67
+ //# sourceMappingURL=watch-KZ5EDZK3.js.map
package/package.json CHANGED
@@ -1,63 +1,163 @@
1
1
  {
2
2
  "name": "hive-intelligence",
3
- "version": "1.1.0",
4
- "description": "MCP server and CLI for Hive Intelligence crypto, DeFi, stocks, forex, and macro data",
3
+ "version": "1.1.3",
4
+ "description": "Crypto MCP server and CLI for AI agents: 351 tools for market data, wallets, DeFi, DEX, NFTs, token risk, Solana, and prediction markets.",
5
+ "mcpName": "io.github.sharpe-labs/hive-mcp",
5
6
  "type": "module",
7
+ "workspaces": [
8
+ "agent-skills",
9
+ "packages/*"
10
+ ],
6
11
  "scripts": {
7
- "build": "tsup && chmod 755 build/server.js build/cli.js",
12
+ "build": "tsup && chmod 755 build/server.js build/stdio.js build/cli.js",
13
+ "build:client": "npm --workspace @hiveintelligence/mcp-client run build",
14
+ "check": "npm run build && npm run typecheck && npm run env:render:check && npx tsx scripts/verify-tools.ts && npm run verify:toolsets && npm run verify:agent-skills && npm run measure-tokens -- --threshold=10000 && npm run test:unit && npm run test:mcp-compliance && npm run test:audit",
15
+ "typecheck": "tsc --noEmit",
8
16
  "prepare": "npm run build",
9
- "prepublishOnly": "npm run build",
10
- "inspector": "npx @modelcontextprotocol/inspector node build/server.js",
11
- "start": "node build/server.js"
17
+ "prepublishOnly": "npm run check",
18
+ "inspector": "npx @modelcontextprotocol/inspector --cli --config '{\"mcpServers\":{\"hive\":{\"url\":\"http://localhost:8080/mcp\"}}}'",
19
+ "start:http": "tsx src/server.ts",
20
+ "dev:http": "tsx src/server.ts",
21
+ "start": "cross-env SERVER_MODE=MCP tsx src/stdio.ts",
22
+ "dev": "cross-env SERVER_MODE=MCP tsx src/stdio.ts",
23
+ "test": "vitest run",
24
+ "test:client": "npm --workspace @hiveintelligence/mcp-client run test",
25
+ "test:watch": "vitest",
26
+ "test:coverage": "vitest run --coverage",
27
+ "test:unit": "vitest run tests/unit",
28
+ "test:all": "vitest run",
29
+ "test:api": "vitest run tests/api",
30
+ "test:mcp": "vitest run tests/mcp",
31
+ "test:audit": "vitest run tests/audit",
32
+ "test:e2e": "vitest run tests/e2e",
33
+ "test:e2e:defillama": "vitest run tests/e2e/defillama-e2e.test.ts",
34
+ "test:integration": "vitest run tests/integration",
35
+ "test:live": "vitest run tests/live",
36
+ "test:production": "npm run test:audit && npm run test:e2e && npm run test:integration",
37
+ "test:mcp-compliance": "vitest run tests/mcp-compliance",
38
+ "test:docker": "npm run test:docker:production",
39
+ "test:docker:unit": "docker compose -f tests/docker/docker-compose.test.yml run --rm hive-test npm run test:unit",
40
+ "test:docker:e2e": "docker compose -f tests/docker/docker-compose.e2e.yml up --build --abort-on-container-exit",
41
+ "test:production-readiness": "vitest run tests/docker/production-readiness.test.ts",
42
+ "test:full-e2e": "vitest run tests/docker/full-e2e.test.ts",
43
+ "test:docker:production": "sh tests/docker/run-production-readiness.sh",
44
+ "test:docker:full-e2e": "docker compose -f tests/docker/docker-compose.production.yml run --rm -e HIVE_SERVER_URL=http://hive-server:8080 hive-production-test npm run test:full-e2e",
45
+ "test:docker:live": "docker compose -f tests/docker/docker-compose.test.yml run --rm hive-test npm run test:live",
46
+ "test:docker:compliance": "docker compose -f tests/docker/docker-compose.test.yml run --rm hive-test npm run test:mcp-compliance",
47
+ "test:docker:down": "docker compose -f tests/docker/docker-compose.test.yml down -v && docker compose -f tests/docker/docker-compose.e2e.yml down -v",
48
+ "measure-tokens": "tsx scripts/measure-token-cost.ts",
49
+ "env:render": "tsx scripts/env-render.ts",
50
+ "env:render:check": "tsx scripts/env-render.ts --check",
51
+ "env:sync": "tsx scripts/env-sync.ts",
52
+ "env:flags": "tsx scripts/env-deploy-flags.ts",
53
+ "env:drift": "tsx scripts/env-drift-check.ts",
54
+ "env:migrate": "tsx scripts/env-migrate.ts",
55
+ "verify:toolsets": "tsx scripts/verify-toolsets.ts",
56
+ "verify:agent-skills": "tsx scripts/verify-agent-skills.ts && npm --workspace @hiveintelligence/agent-skills run validate",
57
+ "export:toolsets": "tsx scripts/export-task-toolsets.ts",
58
+ "canary:toolsets": "tsx scripts/run-task-canaries.ts",
59
+ "canary:discovery": "tsx scripts/check-public-discovery.ts"
12
60
  },
13
61
  "keywords": [
14
62
  "mcp",
63
+ "mcp-server",
15
64
  "model-context-protocol",
16
65
  "crypto",
66
+ "crypto-mcp",
17
67
  "defi",
18
68
  "blockchain",
19
- "stocks",
20
- "forex",
21
- "financial-data",
69
+ "ethereum",
70
+ "evm",
71
+ "solana",
72
+ "coingecko",
73
+ "defillama",
74
+ "moralis",
75
+ "helius",
76
+ "goplus",
77
+ "tenderly",
78
+ "wallet",
79
+ "security",
80
+ "dex",
81
+ "nft",
82
+ "prediction-markets",
22
83
  "ai-tools",
23
- "cli"
84
+ "ai-agents",
85
+ "llm",
86
+ "claude",
87
+ "cursor",
88
+ "chatgpt",
89
+ "codex",
90
+ "stdio",
91
+ "streamable-http",
92
+ "rest-api"
24
93
  ],
25
94
  "author": "Hive Intelligence",
26
95
  "license": "MIT",
27
96
  "repository": {
28
97
  "type": "git",
29
- "url": "https://github.com/hive-intel/hive-crypto-mcp"
98
+ "url": "git+https://github.com/sharpe-labs/hive-mcp2.git"
30
99
  },
31
100
  "homepage": "https://hiveintelligence.xyz",
101
+ "bugs": {
102
+ "url": "https://github.com/sharpe-labs/hive-mcp2/issues"
103
+ },
32
104
  "engines": {
33
105
  "node": ">=20.0.0"
34
106
  },
35
107
  "dependencies": {
36
108
  "@cloudflare/cabidela": "^0.2.4",
37
- "@modelcontextprotocol/sdk": "1.13.0",
109
+ "@codex-data/sdk": "2.3.2",
110
+ "@coingecko/coingecko-typescript": "3.1.6",
111
+ "@modelcontextprotocol/sdk": "1.29.0",
112
+ "@supabase/supabase-js": "^2.104.1",
113
+ "@types/compression": "^1.8.1",
114
+ "@unkey/api": "2.3.3",
115
+ "axios": "^1.15.2",
116
+ "ccxt": "4.5.50",
38
117
  "commander": "^14.0.3",
39
- "cors": "^2.8.5",
40
- "dotenv": "^16.5.0",
41
- "express": "^5.1.0",
118
+ "compression": "^1.8.1",
119
+ "cors": "2.8.6",
120
+ "dotenv": "17.4.2",
121
+ "express": "4.22.1",
122
+ "express-rate-limit": "7.5.1",
42
123
  "fastest-levenshtein": "^1.0.16",
43
- "ora": "8"
124
+ "graphql": "16.13.2",
125
+ "helmet": "^8.1.0",
126
+ "ioredis": "5.10.1",
127
+ "ora": "9.4.0",
128
+ "rate-limit-redis": "4.3.1",
129
+ "tsx": "4.21.0",
130
+ "winston": "3.19.0",
131
+ "zod": "^4.3.6"
132
+ },
133
+ "overrides": {
134
+ "@modelcontextprotocol/sdk": {
135
+ "express-rate-limit": "8.5.1"
136
+ },
137
+ "fast-uri": "3.1.2",
138
+ "hono": "4.12.18",
139
+ "ip-address": "10.2.0"
44
140
  },
45
141
  "devDependencies": {
46
142
  "@types/cors": "^2.8.17",
47
- "@types/express": "^5.0.3",
48
- "@types/node": "^20.0.0",
49
- "tsup": "^8.5.0",
50
- "tsx": "^4.0.0",
51
- "typescript": "^5.8.3",
52
- "winston": "^3.11.0"
143
+ "@types/express": "4.17.25",
144
+ "@types/node": "^22.0.0",
145
+ "@vitest/coverage-v8": "4.1.5",
146
+ "cross-env": "10.1.0",
147
+ "tsup": "8.5.1",
148
+ "typescript": "^5.9.3",
149
+ "vitest": "^4.1.5"
53
150
  },
54
151
  "bin": {
55
- "hive-intelligence": "./build/server.js",
56
- "hive": "./bin/hive.js"
152
+ "hive": "bin/hive-mcp.js",
153
+ "hive-intelligence": "bin/hive-mcp.js",
154
+ "hive-mcp": "bin/hive-mcp.js",
155
+ "hive-mcp-server": "bin/hive-mcp.js"
57
156
  },
58
157
  "files": [
59
158
  "bin/**/*",
60
159
  "build/**/*",
160
+ "agent-skills/**/*",
61
161
  "README.md",
62
162
  "LICENSE"
63
163
  ]