hive-intelligence 1.17.0 → 1.17.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/build/{chunk-DAYJPXIW.js → chunk-TLADUAUA.js} +1 -1
- package/build/{chunk-ZLLD7AXP.js → chunk-UP47NKED.js} +22 -13
- package/build/cli.js +5 -5
- package/build/{doctor-U5UEI7JX.js → doctor-PAVENKK7.js} +1 -1
- package/build/{mcpServer-SE5ESJZX.js → mcpServer-TJEF6MZ6.js} +1 -1
- package/build/monitor-worker.js +2 -2
- package/build/release.json +4 -4
- package/build/{serve-4YDJSCKE.js → serve-R6XBW6OK.js} +1 -1
- package/build/server.js +3 -3
- package/build/stdio.js +1 -1
- package/package.json +1 -1
|
@@ -53870,7 +53870,7 @@ function heroTools(endpoints, options = {}) {
|
|
|
53870
53870
|
'Chain name, for example "eth", "base", "arbitrum", or "solana". Defaults to eth for 0x addresses; Solana is auto-detected.'
|
|
53871
53871
|
),
|
|
53872
53872
|
include_spam: z.boolean().optional().describe(
|
|
53873
|
-
"Show likely spam airdrops (tokens with a URL or claim lure in the name, and on EVM chains tokens with no market price). Default false; the response says how many were hidden."
|
|
53873
|
+
"Show likely spam airdrops (tokens with a URL or claim lure in the name, and on EVM chains tokens with no market price or not listed on CoinGecko). Default false; the response says how many were hidden."
|
|
53874
53874
|
),
|
|
53875
53875
|
response_format: RESPONSE_FORMAT
|
|
53876
53876
|
});
|
|
@@ -53956,15 +53956,21 @@ function heroTools(endpoints, options = {}) {
|
|
|
53956
53956
|
address: tokenAddress,
|
|
53957
53957
|
balance,
|
|
53958
53958
|
usd_value: token.totalValueUsd ?? token.valueUsd ?? token.usd_value ?? (typeof token.totalValueUsdCents === "number" ? token.totalValueUsdCents / 100 : usdFromPrices(token, balance)),
|
|
53959
|
-
...token.h24_change_pct != null ? { h24_change_pct: token.h24_change_pct } : {}
|
|
53959
|
+
...token.h24_change_pct != null ? { h24_change_pct: token.h24_change_pct } : {},
|
|
53960
|
+
...token.coingecko_listed === false ? { coingecko_listed: false } : {}
|
|
53960
53961
|
};
|
|
53961
53962
|
});
|
|
53962
53963
|
const nonZero = summarized.filter(
|
|
53963
53964
|
(token) => !isRecord3(token) || token.balance !== "0"
|
|
53964
53965
|
);
|
|
53965
|
-
const isSpam = (token) => isRecord3(token) && token.address != null && (SPAM_LURE.test(`${token.name ?? ""} ${token.symbol ?? ""}`) || priced && token.usd_value == null);
|
|
53966
|
+
const isSpam = (token) => isRecord3(token) && token.address != null && (SPAM_LURE.test(`${token.name ?? ""} ${token.symbol ?? ""}`) || priced && token.usd_value == null || token.coingecko_listed === false);
|
|
53966
53967
|
const held = includeSpam ? nonZero : nonZero.filter((t) => !isSpam(t));
|
|
53967
53968
|
const hidden = nonZero.length - held.length;
|
|
53969
|
+
const total = payload.total_value_usd;
|
|
53970
|
+
const hiddenUsd = nonZero.filter((t) => !held.includes(t)).reduce(
|
|
53971
|
+
(sum, t) => sum + (isRecord3(t) && typeof t.usd_value === "number" ? t.usd_value : 0),
|
|
53972
|
+
0
|
|
53973
|
+
);
|
|
53968
53974
|
return {
|
|
53969
53975
|
address,
|
|
53970
53976
|
chain: chainLabel,
|
|
@@ -53972,7 +53978,7 @@ function heroTools(endpoints, options = {}) {
|
|
|
53972
53978
|
...hidden > 0 ? {
|
|
53973
53979
|
spam_hidden: {
|
|
53974
53980
|
count: hidden,
|
|
53975
|
-
reason: priced ? "no market price, or a URL/claim lure in the name" : "a URL/claim lure in the name",
|
|
53981
|
+
reason: priced ? "no market price, not listed on CoinGecko, or a URL/claim lure in the name" : "a URL/claim lure in the name",
|
|
53976
53982
|
note: "Likely spam airdrops; pass include_spam=true to show them."
|
|
53977
53983
|
}
|
|
53978
53984
|
} : {},
|
|
@@ -53981,7 +53987,8 @@ function heroTools(endpoints, options = {}) {
|
|
|
53981
53987
|
note: `Showing the first ${MAX_CONCISE_TOKENS} of ${held.length} held tokens (zero balances omitted). Use response_format=detailed for the full provider payload.`
|
|
53982
53988
|
} : summarized.length > nonZero.length ? {
|
|
53983
53989
|
note: `${summarized.length - nonZero.length} zero-balance tokens omitted. Use response_format=detailed for the full provider payload.`
|
|
53984
|
-
} : {}
|
|
53990
|
+
} : {},
|
|
53991
|
+
...typeof total === "number" ? { total_value_usd: Math.round((total - hiddenUsd) * 100) / 100 } : {}
|
|
53985
53992
|
};
|
|
53986
53993
|
};
|
|
53987
53994
|
const coingeckoBalances = (payload) => {
|
|
@@ -53997,7 +54004,9 @@ function heroTools(endpoints, options = {}) {
|
|
|
53997
54004
|
balance: row.balance ?? null,
|
|
53998
54005
|
decimals: 0,
|
|
53999
54006
|
usd_value: toNumber(row.value_usd),
|
|
54000
|
-
h24_change_pct: toNumber(row.h24_price_change_percentage)
|
|
54007
|
+
h24_change_pct: toNumber(row.h24_price_change_percentage),
|
|
54008
|
+
// Only an explicit null means unlisted; a missing field fails open.
|
|
54009
|
+
coingecko_listed: row.coingecko_coin_id !== null
|
|
54001
54010
|
}))
|
|
54002
54011
|
};
|
|
54003
54012
|
};
|
|
@@ -54050,13 +54059,13 @@ function heroTools(endpoints, options = {}) {
|
|
|
54050
54059
|
per_page: 100
|
|
54051
54060
|
}, "get_wallet_portfolio");
|
|
54052
54061
|
if (!network || "hive" in result3 && result3.ok) {
|
|
54053
|
-
return respond(
|
|
54054
|
-
|
|
54055
|
-
|
|
54056
|
-
|
|
54057
|
-
|
|
54058
|
-
|
|
54059
|
-
|
|
54062
|
+
return respond(
|
|
54063
|
+
result3,
|
|
54064
|
+
format,
|
|
54065
|
+
(payload) => trimWalletPortfolio(address, normalized, includeSpam, true)(
|
|
54066
|
+
coingeckoBalances(payload)
|
|
54067
|
+
)
|
|
54068
|
+
);
|
|
54060
54069
|
}
|
|
54061
54070
|
fallbackNote = "CoinGecko wallet balances failed for this call; served from Alchemy.";
|
|
54062
54071
|
}
|
package/build/cli.js
CHANGED
|
@@ -3455,7 +3455,7 @@ program2.hook("preAction", (thisCommand) => {
|
|
|
3455
3455
|
setCliFlags({ apiKey: opts.apiKey, noRetry: opts.retry === false });
|
|
3456
3456
|
});
|
|
3457
3457
|
program2.action(async () => {
|
|
3458
|
-
const { startStdio } = await import("./serve-
|
|
3458
|
+
const { startStdio } = await import("./serve-R6XBW6OK.js");
|
|
3459
3459
|
await startStdio(program2.opts().envFile);
|
|
3460
3460
|
});
|
|
3461
3461
|
program2.command("serve").description(
|
|
@@ -3473,10 +3473,10 @@ program2.command("serve").description(
|
|
|
3473
3473
|
);
|
|
3474
3474
|
process.exit(ExitCode.INVALID_ARGS);
|
|
3475
3475
|
}
|
|
3476
|
-
const { startHttp } = await import("./serve-
|
|
3476
|
+
const { startHttp } = await import("./serve-R6XBW6OK.js");
|
|
3477
3477
|
await startHttp(port, program2.opts().envFile);
|
|
3478
3478
|
} else {
|
|
3479
|
-
const { startStdio } = await import("./serve-
|
|
3479
|
+
const { startStdio } = await import("./serve-R6XBW6OK.js");
|
|
3480
3480
|
await startStdio(program2.opts().envFile, { local: opts.local });
|
|
3481
3481
|
}
|
|
3482
3482
|
});
|
|
@@ -3744,7 +3744,7 @@ program2.command("doctor").description("Diagnose environment and server connecti
|
|
|
3744
3744
|
"--fix",
|
|
3745
3745
|
"Rewrite stale Hive entries in MCP client configs (backs each file up first)"
|
|
3746
3746
|
).action(async (opts) => {
|
|
3747
|
-
const { runDoctor } = await import("./doctor-
|
|
3747
|
+
const { runDoctor } = await import("./doctor-PAVENKK7.js");
|
|
3748
3748
|
await runDoctor(opts);
|
|
3749
3749
|
});
|
|
3750
3750
|
program2.command("upgrade").description("Update Hive to the latest published version").action(async () => {
|
|
@@ -3792,7 +3792,7 @@ program2.command("usage").description("Show your API usage and plan limits").act
|
|
|
3792
3792
|
await runUsage();
|
|
3793
3793
|
});
|
|
3794
3794
|
program2.command("status").description("Quick health and version check").action(async () => {
|
|
3795
|
-
const { runStatus } = await import("./doctor-
|
|
3795
|
+
const { runStatus } = await import("./doctor-PAVENKK7.js");
|
|
3796
3796
|
await runStatus();
|
|
3797
3797
|
});
|
|
3798
3798
|
program2.command("open [target]").description("Open Hive dashboard, docs, status, or GitHub in browser").action(async (target) => {
|
|
@@ -296,7 +296,7 @@ ${fails === 0 ? "All checks passed" : `${fails} issues found`}${warns ? ` (${war
|
|
|
296
296
|
if (fails > 0) process.exit(1);
|
|
297
297
|
}
|
|
298
298
|
async function runStatus() {
|
|
299
|
-
const { SERVER_VERSION } = await import("./mcpServer-
|
|
299
|
+
const { SERVER_VERSION } = await import("./mcpServer-TJEF6MZ6.js");
|
|
300
300
|
const { resolveApiKey, resolveApiUrl } = await import("./config-dir-2QLA5PXD.js");
|
|
301
301
|
const { getActiveProfile, maskKey } = await import("./auth-TZQC54EJ.js");
|
|
302
302
|
const apiUrl = resolveApiUrl();
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
getToolsForScope,
|
|
10
10
|
memoizedJsonSchemaToZodInputSchema,
|
|
11
11
|
memoizedJsonSchemaToZodOutputSchema
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UP47NKED.js";
|
|
13
13
|
import "./chunk-QYK3EWTE.js";
|
|
14
14
|
import "./chunk-EPF36Q3Z.js";
|
|
15
15
|
import "./chunk-MYSS5SBE.js";
|
package/build/monitor-worker.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
executeToolByName,
|
|
5
5
|
refundCredits,
|
|
6
6
|
refundSettled
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TLADUAUA.js";
|
|
8
8
|
import {
|
|
9
9
|
MIN_MONITOR_CADENCE_MS,
|
|
10
10
|
closeRedisClient,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
monitorCadenceIntervalMs,
|
|
15
15
|
runScheduledHealthCanaries,
|
|
16
16
|
secureLogger
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-UP47NKED.js";
|
|
18
18
|
import "./chunk-QYK3EWTE.js";
|
|
19
19
|
import "./chunk-EPF36Q3Z.js";
|
|
20
20
|
import "./chunk-MYSS5SBE.js";
|
package/build/release.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "hive-intelligence",
|
|
3
|
-
"version": "1.17.
|
|
4
|
-
"buildSha": "
|
|
5
|
-
"imageDigest": "sha256:
|
|
3
|
+
"version": "1.17.2",
|
|
4
|
+
"buildSha": "422ec88243651e7ef92ffbbcdd36d346fc0432f9",
|
|
5
|
+
"imageDigest": "sha256:9d96dce1d21e4b93fbf69fded1de85ed183deb07e4014e83b1982bfffc4f24fd",
|
|
6
6
|
"deployedUrl": "https://mcp.hiveintelligence.xyz",
|
|
7
|
-
"manifest": "https://raw.githubusercontent.com/hive-intel/hive-sdk/v1.17.
|
|
7
|
+
"manifest": "https://raw.githubusercontent.com/hive-intel/hive-sdk/v1.17.2/releases/v1.17.2.json"
|
|
8
8
|
}
|
|
@@ -51,7 +51,7 @@ async function startStdio(envFile, opts = {}) {
|
|
|
51
51
|
console.log = (...args) => console.error("[LOG]", ...args);
|
|
52
52
|
if (resolveStdioMode(opts) === "proxy") return startStdioProxy();
|
|
53
53
|
const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
|
|
54
|
-
const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } = await import("./mcpServer-
|
|
54
|
+
const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } = await import("./mcpServer-TJEF6MZ6.js");
|
|
55
55
|
const { getPendingUpdateVersion } = await import("./update-check-36QU6PKA.js");
|
|
56
56
|
const transport = new StdioServerTransport();
|
|
57
57
|
const pendingUpdate = getPendingUpdateVersion();
|
package/build/server.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
getWalletStatus,
|
|
9
9
|
refundCredits,
|
|
10
10
|
refundSettled
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TLADUAUA.js";
|
|
12
12
|
import {
|
|
13
13
|
CategoryEndpoints,
|
|
14
14
|
HERO_TOOL_NAMES,
|
|
@@ -97,7 +97,7 @@ import {
|
|
|
97
97
|
validateEndpointArgs,
|
|
98
98
|
verifyApiKey,
|
|
99
99
|
waitForRedisAvailability
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-UP47NKED.js";
|
|
101
101
|
import {
|
|
102
102
|
HIVE_AGENT_SKILLS
|
|
103
103
|
} from "./chunk-QYK3EWTE.js";
|
|
@@ -747,7 +747,7 @@ var require_ipaddr = __commonJS({
|
|
|
747
747
|
});
|
|
748
748
|
|
|
749
749
|
// src/config/trustProxy.ts
|
|
750
|
-
var DEFAULT_TRUSTED_PROXY_ADDRESSES = "
|
|
750
|
+
var DEFAULT_TRUSTED_PROXY_ADDRESSES = "loopback";
|
|
751
751
|
function resolveTrustedProxies(raw = getEnvVar("TRUSTED_PROXY_ADDRESSES")) {
|
|
752
752
|
const addresses = (raw ?? DEFAULT_TRUSTED_PROXY_ADDRESSES).split(",").map((entry) => entry.trim()).filter(Boolean);
|
|
753
753
|
return [...addresses, "loopback", "uniquelocal", "169.254.0.0/16"];
|
package/build/stdio.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hive-intelligence",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.2",
|
|
4
4
|
"description": "Evidence-backed crypto due diligence for AI agents, with sources, freshness, and a runtime receipt on every call.",
|
|
5
5
|
"mcpName": "xyz.hiveintelligence/mcp",
|
|
6
6
|
"type": "module",
|