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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
NAMESPACE
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CGXVV6WR.js";
|
|
5
5
|
import "./chunk-QMRVH5ZP.js";
|
|
6
6
|
|
|
7
7
|
// src/cli/completion.ts
|
|
@@ -271,4 +271,4 @@ export {
|
|
|
271
271
|
generateCompletion,
|
|
272
272
|
installCompletion
|
|
273
273
|
};
|
|
274
|
-
//# sourceMappingURL=completion-
|
|
274
|
+
//# sourceMappingURL=completion-J6HFY6PS.js.map
|
|
@@ -9,14 +9,13 @@ function getEnvBlock() {
|
|
|
9
9
|
const keys = [
|
|
10
10
|
"COINGECKO_PRO_API_KEY",
|
|
11
11
|
"COINGECKO_DEMO_API_KEY",
|
|
12
|
-
"DEBANK_API_KEY",
|
|
13
12
|
"GOPLUS_APP_KEY",
|
|
14
13
|
"GOPLUS_APP_SECRET",
|
|
15
|
-
"LUNARCRUSH_API_KEY",
|
|
16
14
|
"CODEX_API_KEY",
|
|
17
15
|
"GOLDRUSH_API_KEY",
|
|
18
|
-
"
|
|
19
|
-
"
|
|
16
|
+
"MORALIS_API_KEY",
|
|
17
|
+
"HELIUS_API_KEY",
|
|
18
|
+
"TENDERLY_ACCESS_KEY"
|
|
20
19
|
];
|
|
21
20
|
for (const key of keys) {
|
|
22
21
|
if (process.env[key]) envs[key] = process.env[key];
|
|
@@ -97,4 +96,4 @@ export {
|
|
|
97
96
|
configHttpUrl,
|
|
98
97
|
configVscode
|
|
99
98
|
};
|
|
100
|
-
//# sourceMappingURL=config-
|
|
99
|
+
//# sourceMappingURL=config-ANFERP7A.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/config.ts"],"sourcesContent":["import { homedir, platform } from \"node:os\";\nimport { join } from \"node:path\";\n\nfunction getEnvBlock(): Record<string, string> {\n const envs: Record<string, string> = {};\n const keys = [\n \"COINGECKO_PRO_API_KEY\",\n \"COINGECKO_DEMO_API_KEY\",\n \"GOPLUS_APP_KEY\",\n \"GOPLUS_APP_SECRET\",\n \"CODEX_API_KEY\",\n \"GOLDRUSH_API_KEY\",\n \"MORALIS_API_KEY\",\n \"HELIUS_API_KEY\",\n \"TENDERLY_ACCESS_KEY\",\n ];\n for (const key of keys) {\n if (process.env[key]) envs[key] = process.env[key]!;\n }\n return envs;\n}\n\nexport function configClaudeDesktop(): void {\n const env = getEnvBlock();\n const config = {\n \"hive-mcp\": {\n command: \"npx\",\n args: [\"-y\", \"hive-mcp\"],\n env,\n },\n };\n const p =\n platform() === \"darwin\"\n ? join(\n homedir(),\n \"Library\",\n \"Application Support\",\n \"Claude\",\n \"claude_desktop_config.json\",\n )\n : platform() === \"win32\"\n ? join(\n homedir(),\n \"AppData\",\n \"Roaming\",\n \"Claude\",\n \"claude_desktop_config.json\",\n )\n : join(homedir(), \".config\", \"claude\", \"claude_desktop_config.json\");\n console.log(\n '\\nAdd this to your claude_desktop_config.json under \"mcpServers\":\\n',\n );\n console.log(`Config file: ${p}\\n`);\n console.log(JSON.stringify(config, null, 2));\n}\n\nexport function configCursor(): void {\n const env = getEnvBlock();\n const config = {\n mcpServers: {\n \"hive-mcp\": { command: \"npx\", args: [\"-y\", \"hive-mcp\"], env },\n },\n };\n console.log(\"\\nAdd to .cursor/mcp.json:\\n\");\n console.log(JSON.stringify(config, null, 2));\n}\n\nexport function configVscode(): void {\n const env = getEnvBlock();\n const config = {\n servers: {\n \"hive-mcp\": {\n type: \"stdio\",\n command: \"npx\",\n args: [\"-y\", \"hive-mcp\"],\n env,\n },\n },\n };\n console.log(\"\\nAdd to .vscode/mcp.json:\\n\");\n console.log(JSON.stringify(config, null, 2));\n}\n\nexport function configClaudeCode(): void {\n const envFlags = Object.entries(getEnvBlock())\n .map(([k, v]) => `-e ${k}=${v}`)\n .join(\" \");\n console.log(\"\\nRun this command:\\n\");\n console.log(`claude mcp add ${envFlags} hive-mcp -- npx -y hive-mcp`);\n}\n\nexport function configHttpUrl(url: string): void {\n console.log(`\\nRemote MCP server URL: ${url}/mcp`);\n console.log(\"\\nFor Claude Code:\");\n console.log(` claude mcp add --transport http hive-mcp ${url}/mcp`);\n console.log(\"\\nFor clients without HTTP support:\");\n console.log(` npx mcp-remote ${url}/mcp`);\n}\n"],"mappings":";;;;AAAA,SAAS,SAAS,gBAAgB;AAClC,SAAS,YAAY;AAErB,SAAS,cAAsC;AAC7C,QAAM,OAA+B,CAAC;AACtC,QAAM,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,aAAW,OAAO,MAAM;AACtB,QAAI,QAAQ,IAAI,GAAG,EAAG,MAAK,GAAG,IAAI,QAAQ,IAAI,GAAG;AAAA,EACnD;AACA,SAAO;AACT;AAEO,SAAS,sBAA4B;AAC1C,QAAM,MAAM,YAAY;AACxB,QAAM,SAAS;AAAA,IACb,YAAY;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC,MAAM,UAAU;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACA,QAAM,IACJ,SAAS,MAAM,WACX;AAAA,IACE,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IACA,SAAS,MAAM,UACb;AAAA,IACE,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IACA,KAAK,QAAQ,GAAG,WAAW,UAAU,4BAA4B;AACzE,UAAQ;AAAA,IACN;AAAA,EACF;AACA,UAAQ,IAAI,gBAAgB,CAAC;AAAA,CAAI;AACjC,UAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC7C;AAEO,SAAS,eAAqB;AACnC,QAAM,MAAM,YAAY;AACxB,QAAM,SAAS;AAAA,IACb,YAAY;AAAA,MACV,YAAY,EAAE,SAAS,OAAO,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI;AAAA,IAC9D;AAAA,EACF;AACA,UAAQ,IAAI,8BAA8B;AAC1C,UAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC7C;AAEO,SAAS,eAAqB;AACnC,QAAM,MAAM,YAAY;AACxB,QAAM,SAAS;AAAA,IACb,SAAS;AAAA,MACP,YAAY;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM,CAAC,MAAM,UAAU;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,UAAQ,IAAI,8BAA8B;AAC1C,UAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC7C;AAEO,SAAS,mBAAyB;AACvC,QAAM,WAAW,OAAO,QAAQ,YAAY,CAAC,EAC1C,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,EAC9B,KAAK,GAAG;AACX,UAAQ,IAAI,uBAAuB;AACnC,UAAQ,IAAI,kBAAkB,QAAQ,8BAA8B;AACtE;AAEO,SAAS,cAAc,KAAmB;AAC/C,UAAQ,IAAI;AAAA,yBAA4B,GAAG,MAAM;AACjD,UAAQ,IAAI,oBAAoB;AAChC,UAAQ,IAAI,8CAA8C,GAAG,MAAM;AACnE,UAAQ,IAAI,qCAAqC;AACjD,UAAQ,IAAI,oBAAoB,GAAG,MAAM;AAC3C;","names":[]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
shouldOutputJson,
|
|
9
9
|
successEnvelope,
|
|
10
10
|
writeOutput
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CP3FXEQA.js";
|
|
12
12
|
import "./chunk-XQJ6PB2L.js";
|
|
13
13
|
import "./chunk-QMRVH5ZP.js";
|
|
14
14
|
|
|
@@ -163,7 +163,7 @@ async function runDoctor(opts) {
|
|
|
163
163
|
if (fails > 0) process.exit(1);
|
|
164
164
|
return;
|
|
165
165
|
}
|
|
166
|
-
const { table } = await import("./format-
|
|
166
|
+
const { table } = await import("./format-CVLLK6GD.js");
|
|
167
167
|
info("\nHive MCP Doctor\n");
|
|
168
168
|
info(
|
|
169
169
|
table(
|
|
@@ -181,7 +181,7 @@ ${fails === 0 ? "All checks passed" : `${fails} issues found`}${warns ? ` (${war
|
|
|
181
181
|
async function runStatus() {
|
|
182
182
|
const { CLI_VERSION: SERVER_VERSION } = await import("./version-3TZ3U4IR.js");
|
|
183
183
|
const { resolveApiKey, resolveApiUrl } = await import("./config-dir-IEOID7Q6.js");
|
|
184
|
-
const { getActiveProfile, maskKey } = await import("./auth-
|
|
184
|
+
const { getActiveProfile, maskKey } = await import("./auth-77MKFFBQ.js");
|
|
185
185
|
const apiUrl = resolveApiUrl();
|
|
186
186
|
const apiKey = resolveApiKey();
|
|
187
187
|
const profile = getActiveProfile();
|
|
@@ -228,4 +228,4 @@ export {
|
|
|
228
228
|
runDoctor,
|
|
229
229
|
runStatus
|
|
230
230
|
};
|
|
231
|
-
//# sourceMappingURL=doctor-
|
|
231
|
+
//# sourceMappingURL=doctor-7WZMCQC7.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
ExitCode,
|
|
6
6
|
classifyError,
|
|
7
7
|
suggestSimilarTools
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RRI526CJ.js";
|
|
9
9
|
import "./chunk-QMRVH5ZP.js";
|
|
10
10
|
export {
|
|
11
11
|
CliError,
|
|
@@ -14,4 +14,4 @@ export {
|
|
|
14
14
|
classifyError,
|
|
15
15
|
suggestSimilarTools
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=errors-
|
|
17
|
+
//# sourceMappingURL=errors-U6UZWVSD.js.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import "./chunk-QMRVH5ZP.js";
|
|
3
|
+
|
|
4
|
+
// src/cli/format.ts
|
|
5
|
+
function pad(str, width) {
|
|
6
|
+
return str.length >= width ? str.slice(0, width) : str + " ".repeat(width - str.length);
|
|
7
|
+
}
|
|
8
|
+
function table(headers, rows) {
|
|
9
|
+
const widths = headers.map(
|
|
10
|
+
(h, i) => Math.max(h.length, ...rows.map((r) => (r[i] || "").length)) + 2
|
|
11
|
+
);
|
|
12
|
+
const headerLine = headers.map((h, i) => pad(h, widths[i])).join("");
|
|
13
|
+
const separator = widths.map((w) => "-".repeat(w)).join("");
|
|
14
|
+
const dataLines = rows.map(
|
|
15
|
+
(row) => row.map((cell, i) => pad(cell, widths[i])).join("")
|
|
16
|
+
);
|
|
17
|
+
return [headerLine, separator, ...dataLines].join("\n");
|
|
18
|
+
}
|
|
19
|
+
var LABEL_KEYS = ["name", "title", "slug", "symbol", "label", "id"];
|
|
20
|
+
function pickLabel(obj) {
|
|
21
|
+
for (const k of LABEL_KEYS) {
|
|
22
|
+
const v = obj[k];
|
|
23
|
+
if (typeof v === "string" && v) return v;
|
|
24
|
+
if (typeof v === "number" || typeof v === "boolean") return String(v);
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
function formatCell(v) {
|
|
29
|
+
if (v == null) return "";
|
|
30
|
+
if (typeof v === "string") return v;
|
|
31
|
+
if (typeof v === "number" || typeof v === "boolean") return String(v);
|
|
32
|
+
if (Array.isArray(v)) {
|
|
33
|
+
if (v.length === 0) return "";
|
|
34
|
+
if (v.every((x) => x == null || typeof x !== "object")) {
|
|
35
|
+
return v.map((x) => x == null ? "" : String(x)).join(", ");
|
|
36
|
+
}
|
|
37
|
+
const labels = v.map(
|
|
38
|
+
(x) => x && typeof x === "object" ? pickLabel(x) : null
|
|
39
|
+
).filter((x) => x !== null);
|
|
40
|
+
if (labels.length === v.length) return labels.join(", ");
|
|
41
|
+
return `[${v.length} items]`;
|
|
42
|
+
}
|
|
43
|
+
if (typeof v === "object") {
|
|
44
|
+
const label = pickLabel(v);
|
|
45
|
+
if (label) return label;
|
|
46
|
+
return `{${Object.keys(v).length} keys}`;
|
|
47
|
+
}
|
|
48
|
+
return String(v);
|
|
49
|
+
}
|
|
50
|
+
function formatTable(data) {
|
|
51
|
+
if (data.length === 0) return "(empty result)";
|
|
52
|
+
const maxCols = 8;
|
|
53
|
+
const maxWidth = 40;
|
|
54
|
+
const allKeys = [...new Set(data.flatMap(Object.keys))];
|
|
55
|
+
const cols = allKeys.slice(0, maxCols);
|
|
56
|
+
const cells = data.map(
|
|
57
|
+
(row) => cols.map((col) => formatCell(row[col]).slice(0, maxWidth))
|
|
58
|
+
);
|
|
59
|
+
const widths = cols.map(
|
|
60
|
+
(col, i) => Math.max(col.length, ...cells.map((r) => r[i].length))
|
|
61
|
+
);
|
|
62
|
+
const header = cols.map((col, i) => col.padEnd(widths[i])).join(" ");
|
|
63
|
+
const separator = widths.map((w) => "-".repeat(w)).join(" ");
|
|
64
|
+
const rows = cells.map(
|
|
65
|
+
(row) => row.map((cell, i) => cell.padEnd(widths[i])).join(" ")
|
|
66
|
+
);
|
|
67
|
+
return [header, separator, ...rows].join("\n");
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
formatCell,
|
|
71
|
+
formatTable,
|
|
72
|
+
pad,
|
|
73
|
+
table
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=format-CVLLK6GD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/format.ts"],"sourcesContent":["export function pad(str: string, width: number): string {\n return str.length >= width\n ? str.slice(0, width)\n : str + \" \".repeat(width - str.length);\n}\n\nexport function table(headers: string[], rows: string[][]): string {\n const widths = headers.map(\n (h, i) => Math.max(h.length, ...rows.map((r) => (r[i] || \"\").length)) + 2,\n );\n const headerLine = headers.map((h, i) => pad(h, widths[i])).join(\"\");\n const separator = widths.map((w) => \"-\".repeat(w)).join(\"\");\n const dataLines = rows.map((row) =>\n row.map((cell, i) => pad(cell, widths[i])).join(\"\"),\n );\n return [headerLine, separator, ...dataLines].join(\"\\n\");\n}\n\nconst LABEL_KEYS = [\"name\", \"title\", \"slug\", \"symbol\", \"label\", \"id\"];\n\nfunction pickLabel(obj: Record<string, unknown>): string | null {\n for (const k of LABEL_KEYS) {\n const v = obj[k];\n if (typeof v === \"string\" && v) return v;\n if (typeof v === \"number\" || typeof v === \"boolean\") return String(v);\n }\n return null;\n}\n\n/** Render any value to a compact cell string — avoids \"[object Object]\". */\nexport function formatCell(v: unknown): string {\n if (v == null) return \"\";\n if (typeof v === \"string\") return v;\n if (typeof v === \"number\" || typeof v === \"boolean\") return String(v);\n if (Array.isArray(v)) {\n if (v.length === 0) return \"\";\n if (v.every((x) => x == null || typeof x !== \"object\")) {\n return v.map((x) => (x == null ? \"\" : String(x))).join(\", \");\n }\n const labels = v\n .map((x) =>\n x && typeof x === \"object\"\n ? pickLabel(x as Record<string, unknown>)\n : null,\n )\n .filter((x): x is string => x !== null);\n if (labels.length === v.length) return labels.join(\", \");\n return `[${v.length} items]`;\n }\n if (typeof v === \"object\") {\n const label = pickLabel(v as Record<string, unknown>);\n if (label) return label;\n return `{${Object.keys(v as object).length} keys}`;\n }\n return String(v);\n}\n\n/** Auto-format an array of objects as a fixed-width table. */\nexport function formatTable(data: Record<string, unknown>[]): string {\n if (data.length === 0) return \"(empty result)\";\n\n const maxCols = 8;\n const maxWidth = 40;\n\n const allKeys = [...new Set(data.flatMap(Object.keys))];\n const cols = allKeys.slice(0, maxCols);\n\n const cells = data.map((row) =>\n cols.map((col) => formatCell(row[col]).slice(0, maxWidth)),\n );\n\n const widths = cols.map((col, i) =>\n Math.max(col.length, ...cells.map((r) => r[i].length)),\n );\n\n const header = cols.map((col, i) => col.padEnd(widths[i])).join(\" \");\n const separator = widths.map((w) => \"-\".repeat(w)).join(\" \");\n const rows = cells.map((row) =>\n row.map((cell, i) => cell.padEnd(widths[i])).join(\" \"),\n );\n\n return [header, separator, ...rows].join(\"\\n\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -94,9 +94,9 @@ Validating API key against ${baseUrl}...`);
|
|
|
94
94
|
}
|
|
95
95
|
writeFileSync(envPath, lines + "\n", "utf-8");
|
|
96
96
|
console.log(`.env written to ${envPath}`);
|
|
97
|
-
console.log("Run: hive
|
|
97
|
+
console.log("Run: hive doctor to verify connectivity\n");
|
|
98
98
|
}
|
|
99
99
|
export {
|
|
100
100
|
runInit
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=init-
|
|
102
|
+
//# sourceMappingURL=init-CAVIFVSH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/init.ts"],"sourcesContent":["import { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\n\nconst DEFAULT_API_URL =\n \"https://mcp.hiveintelligence.xyz\";\n\nconst rl = createInterface({ input: process.stdin, output: process.stdout });\nconst ask = (q: string): Promise<string> =>\n new Promise((resolve) => rl.question(q, resolve));\n\nexport async function runInit(opts: {\n minimal?: boolean;\n dryRun?: boolean;\n}): Promise<void> {\n console.log(\"\\nHive MCP Setup\\n\");\n\n const envPath = join(process.cwd(), \".env\");\n const existing: Record<string, string> = {};\n\n if (existsSync(envPath)) {\n const content = readFileSync(envPath, \"utf-8\");\n for (const line of content.split(\"\\n\")) {\n const match = line.match(/^([A-Z_][A-Z0-9_]*)=(.+)$/);\n if (match) existing[match[1]] = match[2];\n }\n console.log(\n `Found existing .env with ${Object.keys(existing).length} keys.\\n`,\n );\n }\n\n let apiKey = existing.HIVE_API_KEY || process.env.HIVE_API_KEY || \"\";\n let apiUrl = existing.HIVE_API_URL || process.env.HIVE_API_URL || \"\";\n\n if (opts.minimal) {\n // Minimal mode: just write defaults without prompts\n if (!apiKey) {\n console.log(\n \"Warning: HIVE_API_KEY not set. Set it manually or re-run without --minimal.\\n\",\n );\n }\n } else {\n // Interactive: ask for API key\n const currentKeyTag = apiKey ? ` [current: ${apiKey.slice(0, 6)}...]` : \"\";\n const keyInput = await ask(\n `HIVE_API_KEY${currentKeyTag}\\n Your Hive Intelligence API key: `,\n );\n if (keyInput.trim()) {\n apiKey = keyInput.trim();\n }\n\n // Ask for API URL (optional)\n const currentUrlTag = apiUrl\n ? ` [current: ${apiUrl}]`\n : ` [default: ${DEFAULT_API_URL}]`;\n const urlInput = await ask(\n `\\nHIVE_API_URL${currentUrlTag}\\n Server URL (press Enter for default): `,\n );\n if (urlInput.trim()) {\n apiUrl = urlInput.trim();\n }\n }\n\n rl.close();\n\n // Update env vars\n if (apiKey) existing.HIVE_API_KEY = apiKey;\n if (apiUrl) existing.HIVE_API_URL = apiUrl;\n\n // Validate the key by hitting the server health endpoint\n if (apiKey) {\n const baseUrl = apiUrl || DEFAULT_API_URL;\n console.log(`\\nValidating API key against ${baseUrl}...`);\n try {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 10000);\n const resp = await fetch(`${baseUrl}/health`, {\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.ok) {\n console.log(\"API key validated successfully.\\n\");\n } else if (resp.status === 401 || resp.status === 403) {\n console.log(\n `Warning: Server returned ${resp.status} — key may be invalid.\\n`,\n );\n } else {\n console.log(\n `Warning: Server returned ${resp.status} ${resp.statusText}.\\n`,\n );\n }\n } catch {\n console.log(\n `Warning: Could not reach ${baseUrl} — check the URL and try again.\\n`,\n );\n }\n }\n\n // Build env content\n const lines = Object.entries(existing)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"\\n\");\n\n if (opts.dryRun) {\n console.log(\"Dry run — would write to .env:\\n\");\n console.log(lines);\n console.log(\"\");\n return;\n }\n\n writeFileSync(envPath, lines + \"\\n\", \"utf-8\");\n console.log(`.env written to ${envPath}`);\n console.log(\"Run: hive
|
|
1
|
+
{"version":3,"sources":["../src/cli/init.ts"],"sourcesContent":["import { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\n\nconst DEFAULT_API_URL =\n \"https://mcp.hiveintelligence.xyz\";\n\nconst rl = createInterface({ input: process.stdin, output: process.stdout });\nconst ask = (q: string): Promise<string> =>\n new Promise((resolve) => rl.question(q, resolve));\n\nexport async function runInit(opts: {\n minimal?: boolean;\n dryRun?: boolean;\n}): Promise<void> {\n console.log(\"\\nHive MCP Setup\\n\");\n\n const envPath = join(process.cwd(), \".env\");\n const existing: Record<string, string> = {};\n\n if (existsSync(envPath)) {\n const content = readFileSync(envPath, \"utf-8\");\n for (const line of content.split(\"\\n\")) {\n const match = line.match(/^([A-Z_][A-Z0-9_]*)=(.+)$/);\n if (match) existing[match[1]] = match[2];\n }\n console.log(\n `Found existing .env with ${Object.keys(existing).length} keys.\\n`,\n );\n }\n\n let apiKey = existing.HIVE_API_KEY || process.env.HIVE_API_KEY || \"\";\n let apiUrl = existing.HIVE_API_URL || process.env.HIVE_API_URL || \"\";\n\n if (opts.minimal) {\n // Minimal mode: just write defaults without prompts\n if (!apiKey) {\n console.log(\n \"Warning: HIVE_API_KEY not set. Set it manually or re-run without --minimal.\\n\",\n );\n }\n } else {\n // Interactive: ask for API key\n const currentKeyTag = apiKey ? ` [current: ${apiKey.slice(0, 6)}...]` : \"\";\n const keyInput = await ask(\n `HIVE_API_KEY${currentKeyTag}\\n Your Hive Intelligence API key: `,\n );\n if (keyInput.trim()) {\n apiKey = keyInput.trim();\n }\n\n // Ask for API URL (optional)\n const currentUrlTag = apiUrl\n ? ` [current: ${apiUrl}]`\n : ` [default: ${DEFAULT_API_URL}]`;\n const urlInput = await ask(\n `\\nHIVE_API_URL${currentUrlTag}\\n Server URL (press Enter for default): `,\n );\n if (urlInput.trim()) {\n apiUrl = urlInput.trim();\n }\n }\n\n rl.close();\n\n // Update env vars\n if (apiKey) existing.HIVE_API_KEY = apiKey;\n if (apiUrl) existing.HIVE_API_URL = apiUrl;\n\n // Validate the key by hitting the server health endpoint\n if (apiKey) {\n const baseUrl = apiUrl || DEFAULT_API_URL;\n console.log(`\\nValidating API key against ${baseUrl}...`);\n try {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 10000);\n const resp = await fetch(`${baseUrl}/health`, {\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.ok) {\n console.log(\"API key validated successfully.\\n\");\n } else if (resp.status === 401 || resp.status === 403) {\n console.log(\n `Warning: Server returned ${resp.status} — key may be invalid.\\n`,\n );\n } else {\n console.log(\n `Warning: Server returned ${resp.status} ${resp.statusText}.\\n`,\n );\n }\n } catch {\n console.log(\n `Warning: Could not reach ${baseUrl} — check the URL and try again.\\n`,\n );\n }\n }\n\n // Build env content\n const lines = Object.entries(existing)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"\\n\");\n\n if (opts.dryRun) {\n console.log(\"Dry run — would write to .env:\\n\");\n console.log(lines);\n console.log(\"\");\n return;\n }\n\n writeFileSync(envPath, lines + \"\\n\", \"utf-8\");\n console.log(`.env written to ${envPath}`);\n console.log(\"Run: hive doctor to verify connectivity\\n\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
NAMESPACE,
|
|
4
4
|
getAllDomainCommands,
|
|
5
5
|
resolveCommand
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CGXVV6WR.js";
|
|
7
7
|
import "./chunk-QMRVH5ZP.js";
|
|
8
8
|
export {
|
|
9
9
|
NAMESPACE,
|
|
10
10
|
getAllDomainCommands,
|
|
11
11
|
resolveCommand
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=namespace-
|
|
13
|
+
//# sourceMappingURL=namespace-7JWWBWBL.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
successEnvelope,
|
|
18
18
|
writeOutput,
|
|
19
19
|
yellow
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-CP3FXEQA.js";
|
|
21
21
|
import "./chunk-QMRVH5ZP.js";
|
|
22
22
|
export {
|
|
23
23
|
bold,
|
|
@@ -38,4 +38,4 @@ export {
|
|
|
38
38
|
writeOutput,
|
|
39
39
|
yellow
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=output-
|
|
41
|
+
//# sourceMappingURL=output-7PGQWJY2.js.map
|
package/build/server.js
CHANGED
|
@@ -12664,166 +12664,6 @@ var supportedTools = [
|
|
|
12664
12664
|
"properties": {}
|
|
12665
12665
|
}
|
|
12666
12666
|
},
|
|
12667
|
-
{
|
|
12668
|
-
"name": "finnhub_get_stock_quote",
|
|
12669
|
-
"description": "Execute the finnhub_get_stock_quote tool",
|
|
12670
|
-
"inputSchema": {
|
|
12671
|
-
"type": "object",
|
|
12672
|
-
"properties": {}
|
|
12673
|
-
}
|
|
12674
|
-
},
|
|
12675
|
-
{
|
|
12676
|
-
"name": "finnhub_get_stock_candles",
|
|
12677
|
-
"description": "Execute the finnhub_get_stock_candles tool",
|
|
12678
|
-
"inputSchema": {
|
|
12679
|
-
"type": "object",
|
|
12680
|
-
"properties": {}
|
|
12681
|
-
}
|
|
12682
|
-
},
|
|
12683
|
-
{
|
|
12684
|
-
"name": "finnhub_get_company_profile",
|
|
12685
|
-
"description": "Execute the finnhub_get_company_profile tool",
|
|
12686
|
-
"inputSchema": {
|
|
12687
|
-
"type": "object",
|
|
12688
|
-
"properties": {}
|
|
12689
|
-
}
|
|
12690
|
-
},
|
|
12691
|
-
{
|
|
12692
|
-
"name": "finnhub_get_basic_financials",
|
|
12693
|
-
"description": "Execute the finnhub_get_basic_financials tool",
|
|
12694
|
-
"inputSchema": {
|
|
12695
|
-
"type": "object",
|
|
12696
|
-
"properties": {}
|
|
12697
|
-
}
|
|
12698
|
-
},
|
|
12699
|
-
{
|
|
12700
|
-
"name": "finnhub_get_stock_recommendations",
|
|
12701
|
-
"description": "Execute the finnhub_get_stock_recommendations tool",
|
|
12702
|
-
"inputSchema": {
|
|
12703
|
-
"type": "object",
|
|
12704
|
-
"properties": {}
|
|
12705
|
-
}
|
|
12706
|
-
},
|
|
12707
|
-
{
|
|
12708
|
-
"name": "finnhub_get_price_target",
|
|
12709
|
-
"description": "Execute the finnhub_get_price_target tool",
|
|
12710
|
-
"inputSchema": {
|
|
12711
|
-
"type": "object",
|
|
12712
|
-
"properties": {}
|
|
12713
|
-
}
|
|
12714
|
-
},
|
|
12715
|
-
{
|
|
12716
|
-
"name": "finnhub_search_symbol",
|
|
12717
|
-
"description": "Execute the finnhub_search_symbol tool",
|
|
12718
|
-
"inputSchema": {
|
|
12719
|
-
"type": "object",
|
|
12720
|
-
"properties": {}
|
|
12721
|
-
}
|
|
12722
|
-
},
|
|
12723
|
-
{
|
|
12724
|
-
"name": "finnhub_get_market_news",
|
|
12725
|
-
"description": "Execute the finnhub_get_market_news tool",
|
|
12726
|
-
"inputSchema": {
|
|
12727
|
-
"type": "object",
|
|
12728
|
-
"properties": {}
|
|
12729
|
-
}
|
|
12730
|
-
},
|
|
12731
|
-
{
|
|
12732
|
-
"name": "finnhub_get_forex_candles",
|
|
12733
|
-
"description": "Execute the finnhub_get_forex_candles tool",
|
|
12734
|
-
"inputSchema": {
|
|
12735
|
-
"type": "object",
|
|
12736
|
-
"properties": {}
|
|
12737
|
-
}
|
|
12738
|
-
},
|
|
12739
|
-
{
|
|
12740
|
-
"name": "finnhub_get_forex_symbols",
|
|
12741
|
-
"description": "Execute the finnhub_get_forex_symbols tool",
|
|
12742
|
-
"inputSchema": {
|
|
12743
|
-
"type": "object",
|
|
12744
|
-
"properties": {}
|
|
12745
|
-
}
|
|
12746
|
-
},
|
|
12747
|
-
{
|
|
12748
|
-
"name": "finnhub_get_forex_rates",
|
|
12749
|
-
"description": "Execute the finnhub_get_forex_rates tool",
|
|
12750
|
-
"inputSchema": {
|
|
12751
|
-
"type": "object",
|
|
12752
|
-
"properties": {}
|
|
12753
|
-
}
|
|
12754
|
-
},
|
|
12755
|
-
{
|
|
12756
|
-
"name": "finnhub_get_commodity_candles",
|
|
12757
|
-
"description": "Execute the finnhub_get_commodity_candles tool",
|
|
12758
|
-
"inputSchema": {
|
|
12759
|
-
"type": "object",
|
|
12760
|
-
"properties": {}
|
|
12761
|
-
}
|
|
12762
|
-
},
|
|
12763
|
-
{
|
|
12764
|
-
"name": "finnhub_get_insider_transactions",
|
|
12765
|
-
"description": "Execute the finnhub_get_insider_transactions tool",
|
|
12766
|
-
"inputSchema": {
|
|
12767
|
-
"type": "object",
|
|
12768
|
-
"properties": {}
|
|
12769
|
-
}
|
|
12770
|
-
},
|
|
12771
|
-
{
|
|
12772
|
-
"name": "finnhub_get_insider_sentiment",
|
|
12773
|
-
"description": "Execute the finnhub_get_insider_sentiment tool",
|
|
12774
|
-
"inputSchema": {
|
|
12775
|
-
"type": "object",
|
|
12776
|
-
"properties": {}
|
|
12777
|
-
}
|
|
12778
|
-
},
|
|
12779
|
-
{
|
|
12780
|
-
"name": "finnhub_get_company_news",
|
|
12781
|
-
"description": "Execute the finnhub_get_company_news tool",
|
|
12782
|
-
"inputSchema": {
|
|
12783
|
-
"type": "object",
|
|
12784
|
-
"properties": {}
|
|
12785
|
-
}
|
|
12786
|
-
},
|
|
12787
|
-
{
|
|
12788
|
-
"name": "finnhub_get_earnings_calendar",
|
|
12789
|
-
"description": "Execute the finnhub_get_earnings_calendar tool",
|
|
12790
|
-
"inputSchema": {
|
|
12791
|
-
"type": "object",
|
|
12792
|
-
"properties": {}
|
|
12793
|
-
}
|
|
12794
|
-
},
|
|
12795
|
-
{
|
|
12796
|
-
"name": "finnhub_get_ipo_calendar",
|
|
12797
|
-
"description": "Execute the finnhub_get_ipo_calendar tool",
|
|
12798
|
-
"inputSchema": {
|
|
12799
|
-
"type": "object",
|
|
12800
|
-
"properties": {}
|
|
12801
|
-
}
|
|
12802
|
-
},
|
|
12803
|
-
{
|
|
12804
|
-
"name": "finnhub_get_economic_calendar",
|
|
12805
|
-
"description": "Execute the finnhub_get_economic_calendar tool",
|
|
12806
|
-
"inputSchema": {
|
|
12807
|
-
"type": "object",
|
|
12808
|
-
"properties": {}
|
|
12809
|
-
}
|
|
12810
|
-
},
|
|
12811
|
-
{
|
|
12812
|
-
"name": "finnhub_get_market_status",
|
|
12813
|
-
"description": "Execute the finnhub_get_market_status tool",
|
|
12814
|
-
"inputSchema": {
|
|
12815
|
-
"type": "object",
|
|
12816
|
-
"properties": {}
|
|
12817
|
-
}
|
|
12818
|
-
},
|
|
12819
|
-
{
|
|
12820
|
-
"name": "finnhub_get_country_list",
|
|
12821
|
-
"description": "Execute the finnhub_get_country_list tool",
|
|
12822
|
-
"inputSchema": {
|
|
12823
|
-
"type": "object",
|
|
12824
|
-
"properties": {}
|
|
12825
|
-
}
|
|
12826
|
-
},
|
|
12827
12667
|
{
|
|
12828
12668
|
"name": "goldrush_get_xyk_pools",
|
|
12829
12669
|
"description": "Get all XY=K (AMM DEX) pools for a chain using GoldRush (Covalent). Returns pool addresses, token pairs, reserves, and liquidity data.",
|
|
@@ -14128,58 +13968,10 @@ var ToolRegistry = [
|
|
|
14128
13968
|
"search_tokens"
|
|
14129
13969
|
]
|
|
14130
13970
|
},
|
|
14131
|
-
{
|
|
14132
|
-
"category": "Stocks & Equities",
|
|
14133
|
-
"name": "get_stocks_equities_endpoints",
|
|
14134
|
-
"description": "Endpoints for stock market data including real-time quotes, historical OHLCV candles, company profiles, basic financial metrics (P/E, EPS, market cap), analyst recommendations and price targets, symbol search, and market news. Provider guide: Use finnhub_ tools for real-time US stock quotes, historical price data, analyst consensus, company profiles, and financial news.",
|
|
14135
|
-
"tools": [
|
|
14136
|
-
"finnhub_get_stock_quote",
|
|
14137
|
-
"finnhub_get_stock_candles",
|
|
14138
|
-
"finnhub_get_company_profile",
|
|
14139
|
-
"finnhub_get_basic_financials",
|
|
14140
|
-
"finnhub_get_stock_recommendations",
|
|
14141
|
-
"finnhub_get_price_target",
|
|
14142
|
-
"finnhub_search_symbol",
|
|
14143
|
-
"finnhub_get_market_news"
|
|
14144
|
-
]
|
|
14145
|
-
},
|
|
14146
|
-
{
|
|
14147
|
-
"category": "Forex & Commodities",
|
|
14148
|
-
"name": "get_forex_commodities_endpoints",
|
|
14149
|
-
"description": "Endpoints for foreign exchange rates, currency pair historical candles, available forex symbols, and commodity price data (gold, silver, platinum). Provider guide: Use finnhub_ tools for real-time forex rates, currency pair OHLCV data, and commodity prices via XAU/XAG/XPT pairs.",
|
|
14150
|
-
"tools": [
|
|
14151
|
-
"finnhub_get_forex_candles",
|
|
14152
|
-
"finnhub_get_forex_symbols",
|
|
14153
|
-
"finnhub_get_forex_rates",
|
|
14154
|
-
"finnhub_get_commodity_candles"
|
|
14155
|
-
]
|
|
14156
|
-
},
|
|
14157
|
-
{
|
|
14158
|
-
"category": "Economic Indicators",
|
|
14159
|
-
"name": "get_economic_indicators_endpoints",
|
|
14160
|
-
"description": "Endpoints for economic event calendars, market open/close status, and country data. Provider guide: Use finnhub_ tools for upcoming economic events, market status, and country listings.",
|
|
14161
|
-
"tools": [
|
|
14162
|
-
"finnhub_get_economic_calendar",
|
|
14163
|
-
"finnhub_get_market_status",
|
|
14164
|
-
"finnhub_get_country_list"
|
|
14165
|
-
]
|
|
14166
|
-
},
|
|
14167
|
-
{
|
|
14168
|
-
"category": "Alternative Data",
|
|
14169
|
-
"name": "get_alternative_data_endpoints",
|
|
14170
|
-
"description": "Endpoints for alternative financial data including insider (executive) trading transactions, insider sentiment scores, company-specific news, earnings calendar, and IPO calendar. Provider guide: Use finnhub_ tools for SEC-filed insider buy/sell data, insider sentiment (MSPR), upcoming earnings reports, IPO schedules, and company news.",
|
|
14171
|
-
"tools": [
|
|
14172
|
-
"finnhub_get_insider_transactions",
|
|
14173
|
-
"finnhub_get_insider_sentiment",
|
|
14174
|
-
"finnhub_get_company_news",
|
|
14175
|
-
"finnhub_get_earnings_calendar",
|
|
14176
|
-
"finnhub_get_ipo_calendar"
|
|
14177
|
-
]
|
|
14178
|
-
},
|
|
14179
13971
|
{
|
|
14180
13972
|
"category": "Prediction Markets",
|
|
14181
13973
|
"name": "get_prediction_markets_endpoints",
|
|
14182
|
-
"description": "Endpoints for prediction market data including event/market/trader stats, outcome prices, trade history, bar charts, token holders, and filtering. Provider: Codex
|
|
13974
|
+
"description": "Endpoints for prediction market data including event/market/trader stats, outcome prices, trade history, bar charts, token holders, and filtering. Provider: Codex covering Polymarket and Kalshi.",
|
|
14183
13975
|
"tools": [
|
|
14184
13976
|
"codex_prediction_market_stats",
|
|
14185
13977
|
"codex_prediction_event_stats",
|