hive-intelligence 1.5.0 → 1.5.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 +1 -1
- package/build/{chunk-GWZIAAQ2.js → chunk-7VSK46QO.js} +16 -5
- package/build/{chunk-AGM2CIRL.js → chunk-LFNLT3YW.js} +167 -10
- package/build/{chunk-XQPEFCSY.js → chunk-MWYPLBIN.js} +1 -1
- package/build/cli.js +28 -14
- package/build/{completion-C57PDJMY.js → completion-L3TDZ7ZK.js} +1 -1
- package/build/{doctor-XG5IQCXK.js → doctor-NLSZB27R.js} +1 -1
- package/build/{mcpServer-XHIN5JER.js → mcpServer-IWKTX2ZQ.js} +1 -1
- package/build/monitor-worker.js +2 -2
- package/build/{namespace-YLCGHVRT.js → namespace-XLMRFH5E.js} +1 -1
- package/build/release.json +4 -4
- package/build/{serve-PWMT5IRU.js → serve-YFFG2432.js} +1 -1
- package/build/server.js +2 -2
- package/build/stdio.js +1 -1
- package/build/{tools-XNFJBN7Q.js → tools-SIOAOXW6.js} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -109,7 +109,7 @@ Expected output shape:
|
|
|
109
109
|
"source": "live",
|
|
110
110
|
"receipt_id": "00000000-0000-4000-8000-000000000000",
|
|
111
111
|
"receipt_version": "1.0",
|
|
112
|
-
"server_version": "1.5.
|
|
112
|
+
"server_version": "1.5.1",
|
|
113
113
|
"build_sha": null,
|
|
114
114
|
"digest_algorithm": "sha256",
|
|
115
115
|
"input_digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
@@ -33,7 +33,11 @@ var NAMESPACE = [
|
|
|
33
33
|
description: "Quote currency",
|
|
34
34
|
required: true
|
|
35
35
|
},
|
|
36
|
-
per_page: {
|
|
36
|
+
per_page: {
|
|
37
|
+
flag: "--limit <n>",
|
|
38
|
+
description: "Number of results",
|
|
39
|
+
type: "number"
|
|
40
|
+
}
|
|
37
41
|
}
|
|
38
42
|
},
|
|
39
43
|
{ name: "trending", description: "Trending coins", tool: "get_trending" },
|
|
@@ -68,12 +72,14 @@ var NAMESPACE = [
|
|
|
68
72
|
from: {
|
|
69
73
|
flag: "--from <timestamp>",
|
|
70
74
|
description: "Start UNIX timestamp",
|
|
71
|
-
required: true
|
|
75
|
+
required: true,
|
|
76
|
+
type: "number"
|
|
72
77
|
},
|
|
73
78
|
to: {
|
|
74
79
|
flag: "--to <timestamp>",
|
|
75
80
|
description: "End UNIX timestamp",
|
|
76
|
-
required: true
|
|
81
|
+
required: true,
|
|
82
|
+
type: "number"
|
|
77
83
|
}
|
|
78
84
|
}
|
|
79
85
|
},
|
|
@@ -153,7 +159,8 @@ var NAMESPACE = [
|
|
|
153
159
|
networkId: {
|
|
154
160
|
flag: "--network-id <id>",
|
|
155
161
|
description: "EVM chain ID",
|
|
156
|
-
required: true
|
|
162
|
+
required: true,
|
|
163
|
+
type: "number"
|
|
157
164
|
}
|
|
158
165
|
}
|
|
159
166
|
},
|
|
@@ -392,7 +399,11 @@ var NAMESPACE = [
|
|
|
392
399
|
description: "Network (eth, bsc, solana)",
|
|
393
400
|
required: true
|
|
394
401
|
},
|
|
395
|
-
page: {
|
|
402
|
+
page: {
|
|
403
|
+
flag: "--page <n>",
|
|
404
|
+
description: "Page number",
|
|
405
|
+
type: "number"
|
|
406
|
+
}
|
|
396
407
|
}
|
|
397
408
|
},
|
|
398
409
|
{
|
|
@@ -20827,7 +20827,7 @@ var require_websocket = __commonJS({
|
|
|
20827
20827
|
var http = __require("http");
|
|
20828
20828
|
var net2 = __require("net");
|
|
20829
20829
|
var tls = __require("tls");
|
|
20830
|
-
var { randomBytes: randomBytes4, createHash:
|
|
20830
|
+
var { randomBytes: randomBytes4, createHash: createHash9 } = __require("crypto");
|
|
20831
20831
|
var { Duplex, Readable } = __require("stream");
|
|
20832
20832
|
var { URL: URL2 } = __require("url");
|
|
20833
20833
|
var PerMessageDeflate = require_permessage_deflate();
|
|
@@ -21495,7 +21495,7 @@ var require_websocket = __commonJS({
|
|
|
21495
21495
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
21496
21496
|
return;
|
|
21497
21497
|
}
|
|
21498
|
-
const digest2 =
|
|
21498
|
+
const digest2 = createHash9("sha1").update(key + GUID).digest("base64");
|
|
21499
21499
|
if (res.headers["sec-websocket-accept"] !== digest2) {
|
|
21500
21500
|
abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
|
|
21501
21501
|
return;
|
|
@@ -21864,7 +21864,7 @@ var require_websocket_server = __commonJS({
|
|
|
21864
21864
|
var EventEmitter = __require("events");
|
|
21865
21865
|
var http = __require("http");
|
|
21866
21866
|
var { Duplex } = __require("stream");
|
|
21867
|
-
var { createHash:
|
|
21867
|
+
var { createHash: createHash9 } = __require("crypto");
|
|
21868
21868
|
var extension = require_extension();
|
|
21869
21869
|
var PerMessageDeflate = require_permessage_deflate();
|
|
21870
21870
|
var subprotocol = require_subprotocol();
|
|
@@ -22171,7 +22171,7 @@ var require_websocket_server = __commonJS({
|
|
|
22171
22171
|
);
|
|
22172
22172
|
}
|
|
22173
22173
|
if (this._state > RUNNING) return abortHandshake(socket, 503);
|
|
22174
|
-
const digest2 =
|
|
22174
|
+
const digest2 = createHash9("sha1").update(key + GUID).digest("base64");
|
|
22175
22175
|
const headers = [
|
|
22176
22176
|
"HTTP/1.1 101 Switching Protocols",
|
|
22177
22177
|
"Upgrade: websocket",
|
|
@@ -85678,6 +85678,147 @@ function getAnalyticsWriter() {
|
|
|
85678
85678
|
return defaultWriter;
|
|
85679
85679
|
}
|
|
85680
85680
|
|
|
85681
|
+
// src/services/posthog-sink.ts
|
|
85682
|
+
import { createHash as createHash5 } from "crypto";
|
|
85683
|
+
var POSTHOG_DISTINCT_ID_DOMAIN = "hive-posthog-principal-v1";
|
|
85684
|
+
var MAX_QUEUE_SIZE2 = 500;
|
|
85685
|
+
var FLUSH_INTERVAL_MS2 = 5e3;
|
|
85686
|
+
var FLUSH_BATCH_SIZE2 = 50;
|
|
85687
|
+
var DROP_LOG_INTERVAL_MS2 = 6e4;
|
|
85688
|
+
var CAPTURE_TIMEOUT_MS = 1e4;
|
|
85689
|
+
function posthogDistinctId(raw) {
|
|
85690
|
+
return createHash5("sha256").update(`${POSTHOG_DISTINCT_ID_DOMAIN}\0${raw}`).digest("hex");
|
|
85691
|
+
}
|
|
85692
|
+
async function defaultPostBatch(url, body) {
|
|
85693
|
+
const response = await fetch(url, {
|
|
85694
|
+
method: "POST",
|
|
85695
|
+
headers: { "Content-Type": "application/json" },
|
|
85696
|
+
body: JSON.stringify(body),
|
|
85697
|
+
signal: AbortSignal.timeout(CAPTURE_TIMEOUT_MS)
|
|
85698
|
+
});
|
|
85699
|
+
return { ok: response.ok, status: response.status };
|
|
85700
|
+
}
|
|
85701
|
+
function defaultDependencies2() {
|
|
85702
|
+
return {
|
|
85703
|
+
projectToken: () => getEnvVar("POSTHOG_PROJECT_TOKEN"),
|
|
85704
|
+
host: () => getEnvVar("POSTHOG_HOST"),
|
|
85705
|
+
postBatch: defaultPostBatch,
|
|
85706
|
+
maxQueueSize: MAX_QUEUE_SIZE2,
|
|
85707
|
+
flushIntervalMs: FLUSH_INTERVAL_MS2,
|
|
85708
|
+
flushBatchSize: FLUSH_BATCH_SIZE2
|
|
85709
|
+
};
|
|
85710
|
+
}
|
|
85711
|
+
function createPosthogSink(overrides = {}) {
|
|
85712
|
+
const deps = {
|
|
85713
|
+
...defaultDependencies2(),
|
|
85714
|
+
...overrides
|
|
85715
|
+
};
|
|
85716
|
+
const queue = [];
|
|
85717
|
+
let dropped = 0;
|
|
85718
|
+
let lastDropLoggedAt = 0;
|
|
85719
|
+
let timer = null;
|
|
85720
|
+
let flushing = null;
|
|
85721
|
+
function ensureTimer() {
|
|
85722
|
+
if (timer) return;
|
|
85723
|
+
timer = setInterval(() => {
|
|
85724
|
+
void flush();
|
|
85725
|
+
}, deps.flushIntervalMs);
|
|
85726
|
+
timer.unref?.();
|
|
85727
|
+
}
|
|
85728
|
+
async function drain() {
|
|
85729
|
+
const token = deps.projectToken();
|
|
85730
|
+
const host = deps.host();
|
|
85731
|
+
if (!token || !host) return;
|
|
85732
|
+
const batch = queue.splice(0, queue.length);
|
|
85733
|
+
if (batch.length === 0) return;
|
|
85734
|
+
try {
|
|
85735
|
+
const { ok, status } = await deps.postBatch(
|
|
85736
|
+
`${host.replace(/\/$/, "")}/batch/`,
|
|
85737
|
+
{ api_key: token, batch }
|
|
85738
|
+
);
|
|
85739
|
+
if (!ok) {
|
|
85740
|
+
dropped += batch.length;
|
|
85741
|
+
secureLogger.warn("PostHog batch capture failed", {
|
|
85742
|
+
status,
|
|
85743
|
+
eventCount: batch.length,
|
|
85744
|
+
droppedTotal: dropped
|
|
85745
|
+
});
|
|
85746
|
+
}
|
|
85747
|
+
} catch (error) {
|
|
85748
|
+
dropped += batch.length;
|
|
85749
|
+
secureLogger.warn("PostHog batch capture threw", {
|
|
85750
|
+
eventCount: batch.length,
|
|
85751
|
+
droppedTotal: dropped,
|
|
85752
|
+
errorMessage: error instanceof Error ? error.message : "unknown"
|
|
85753
|
+
});
|
|
85754
|
+
}
|
|
85755
|
+
}
|
|
85756
|
+
function flush() {
|
|
85757
|
+
if (flushing) return flushing;
|
|
85758
|
+
flushing = drain().catch(() => void 0).finally(() => {
|
|
85759
|
+
flushing = null;
|
|
85760
|
+
});
|
|
85761
|
+
return flushing;
|
|
85762
|
+
}
|
|
85763
|
+
return {
|
|
85764
|
+
enqueueToolCall(event) {
|
|
85765
|
+
try {
|
|
85766
|
+
if (!deps.projectToken() || !deps.host()) return false;
|
|
85767
|
+
if (!event.isMaterial || event.isInternal) return false;
|
|
85768
|
+
if (!event.principalRaw || event.authLane === "anonymous") return false;
|
|
85769
|
+
if (queue.length >= deps.maxQueueSize) {
|
|
85770
|
+
dropped += 1;
|
|
85771
|
+
const now = Date.now();
|
|
85772
|
+
if (now - lastDropLoggedAt >= DROP_LOG_INTERVAL_MS2) {
|
|
85773
|
+
lastDropLoggedAt = now;
|
|
85774
|
+
secureLogger.warn(
|
|
85775
|
+
"PostHog queue is full \u2014 mirror events are being dropped",
|
|
85776
|
+
{ queueSize: queue.length, droppedTotal: dropped }
|
|
85777
|
+
);
|
|
85778
|
+
}
|
|
85779
|
+
return false;
|
|
85780
|
+
}
|
|
85781
|
+
queue.push({
|
|
85782
|
+
event: "mcp_tool_call",
|
|
85783
|
+
distinct_id: posthogDistinctId(event.principalRaw),
|
|
85784
|
+
timestamp: event.ts ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
85785
|
+
properties: {
|
|
85786
|
+
source: "mcp",
|
|
85787
|
+
tool_name: event.toolName,
|
|
85788
|
+
success: event.success,
|
|
85789
|
+
duration_ms: Math.max(0, Math.round(event.durationMs)),
|
|
85790
|
+
transport: event.transport,
|
|
85791
|
+
provider: event.provider ?? null,
|
|
85792
|
+
category: event.category ?? null,
|
|
85793
|
+
auth_lane: event.authLane ?? null,
|
|
85794
|
+
client: event.clientProfile ?? null
|
|
85795
|
+
}
|
|
85796
|
+
});
|
|
85797
|
+
ensureTimer();
|
|
85798
|
+
if (queue.length >= deps.flushBatchSize) void flush();
|
|
85799
|
+
return true;
|
|
85800
|
+
} catch {
|
|
85801
|
+
return false;
|
|
85802
|
+
}
|
|
85803
|
+
},
|
|
85804
|
+
flush,
|
|
85805
|
+
stop() {
|
|
85806
|
+
if (timer) {
|
|
85807
|
+
clearInterval(timer);
|
|
85808
|
+
timer = null;
|
|
85809
|
+
}
|
|
85810
|
+
},
|
|
85811
|
+
getStats() {
|
|
85812
|
+
return { queued: queue.length, dropped };
|
|
85813
|
+
}
|
|
85814
|
+
};
|
|
85815
|
+
}
|
|
85816
|
+
var defaultSink = null;
|
|
85817
|
+
function getPosthogSink() {
|
|
85818
|
+
if (!defaultSink) defaultSink = createPosthogSink();
|
|
85819
|
+
return defaultSink;
|
|
85820
|
+
}
|
|
85821
|
+
|
|
85681
85822
|
// src/services/client-profile.ts
|
|
85682
85823
|
var MCP_REMOTE_PATTERN = /^(.*?) \(via mcp-remote ([\d.]+)\)$/;
|
|
85683
85824
|
var MAX_NAME_LENGTH = 256;
|
|
@@ -86081,6 +86222,22 @@ function logToolCall(endpoint, context, hive, success, durationMs, args, extra =
|
|
|
86081
86222
|
});
|
|
86082
86223
|
} catch {
|
|
86083
86224
|
}
|
|
86225
|
+
try {
|
|
86226
|
+
getPosthogSink().enqueueToolCall({
|
|
86227
|
+
toolName: endpoint.tool.name,
|
|
86228
|
+
success,
|
|
86229
|
+
durationMs,
|
|
86230
|
+
transport: context.transport,
|
|
86231
|
+
provider: getProviderNameForTool(endpoint),
|
|
86232
|
+
category: getCategoryNameForTool(endpoint.tool.name),
|
|
86233
|
+
principalRaw: context.analytics?.principalRaw ?? null,
|
|
86234
|
+
authLane: context.analytics?.authLane ?? null,
|
|
86235
|
+
clientProfile: clientProfileFromName(context.analytics?.clientName),
|
|
86236
|
+
isMaterial: getMcpCreditCost(endpoint.tool.name) > 0,
|
|
86237
|
+
isInternal: context.analytics?.isInternal === true || context.transport === "health"
|
|
86238
|
+
});
|
|
86239
|
+
} catch {
|
|
86240
|
+
}
|
|
86084
86241
|
}
|
|
86085
86242
|
function validationErrorResult(endpoint, validationErrors, durationMs, args) {
|
|
86086
86243
|
const errorCopy = agentErrorCopy("invalid_input", {
|
|
@@ -91138,7 +91295,7 @@ async function runMcpProtocolHealth(options = {}) {
|
|
|
91138
91295
|
}
|
|
91139
91296
|
|
|
91140
91297
|
// src/health/oauthLifecycle.ts
|
|
91141
|
-
import { createHash as
|
|
91298
|
+
import { createHash as createHash7, randomBytes as randomBytes3 } from "crypto";
|
|
91142
91299
|
|
|
91143
91300
|
// src/auth/oauth/provider.ts
|
|
91144
91301
|
import { randomBytes as randomBytes2 } from "crypto";
|
|
@@ -91514,10 +91671,10 @@ function isHiveOAuthAccessToken(token) {
|
|
|
91514
91671
|
}
|
|
91515
91672
|
|
|
91516
91673
|
// src/auth/oauth/store.ts
|
|
91517
|
-
import { createHash as
|
|
91674
|
+
import { createHash as createHash6 } from "crypto";
|
|
91518
91675
|
var REVOKED_FAMILY_TTL_SECONDS = 7776e3;
|
|
91519
91676
|
function digest(value) {
|
|
91520
|
-
return
|
|
91677
|
+
return createHash6("sha256").update(value).digest("hex");
|
|
91521
91678
|
}
|
|
91522
91679
|
function parseJson(raw) {
|
|
91523
91680
|
if (!raw) return void 0;
|
|
@@ -91969,7 +92126,7 @@ async function operationRejects(operation) {
|
|
|
91969
92126
|
}
|
|
91970
92127
|
async function issueCanaryFamily(args) {
|
|
91971
92128
|
const verifier = randomBytes3(48).toString("base64url");
|
|
91972
|
-
const challenge =
|
|
92129
|
+
const challenge = createHash7("sha256").update(verifier).digest("base64url");
|
|
91973
92130
|
let consentLocation;
|
|
91974
92131
|
const response = {
|
|
91975
92132
|
redirect(status, location) {
|
|
@@ -92281,7 +92438,7 @@ async function runOAuthLifecycleHealth(overrides = {}) {
|
|
|
92281
92438
|
import Coingecko2 from "@coingecko/coingecko-typescript";
|
|
92282
92439
|
|
|
92283
92440
|
// src/tools/goplus/goplusClient.ts
|
|
92284
|
-
import { createHash as
|
|
92441
|
+
import { createHash as createHash8 } from "crypto";
|
|
92285
92442
|
function parsePositiveInteger(value, fallback) {
|
|
92286
92443
|
const parsed = Number.parseInt(value || "", 10);
|
|
92287
92444
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
@@ -92375,7 +92532,7 @@ var GoPlusClient = class {
|
|
|
92375
92532
|
const time = Math.floor(Date.now() / 1e3);
|
|
92376
92533
|
const timeStr = time.toString();
|
|
92377
92534
|
const signInput = this.appKey + timeStr + this.appSecret;
|
|
92378
|
-
const sign =
|
|
92535
|
+
const sign = createHash8("sha1").update(signInput).digest("hex");
|
|
92379
92536
|
secureLogger.info("GoPlus: requesting access token", {
|
|
92380
92537
|
appKeyLength: this.appKey.length,
|
|
92381
92538
|
appSecretLength: this.appSecret.length,
|
package/build/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-R6YZTFQL.js";
|
|
9
9
|
import {
|
|
10
10
|
NAMESPACE
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7VSK46QO.js";
|
|
12
12
|
import "./chunk-P7NLFSZQ.js";
|
|
13
13
|
import "./chunk-RU6QOFHH.js";
|
|
14
14
|
import {
|
|
@@ -3440,7 +3440,7 @@ program2.hook("preAction", (thisCommand) => {
|
|
|
3440
3440
|
setCliFlags({ apiKey: opts.apiKey, noRetry: opts.retry === false });
|
|
3441
3441
|
});
|
|
3442
3442
|
program2.action(async () => {
|
|
3443
|
-
const { startStdio } = await import("./serve-
|
|
3443
|
+
const { startStdio } = await import("./serve-YFFG2432.js");
|
|
3444
3444
|
await startStdio(program2.opts().envFile);
|
|
3445
3445
|
});
|
|
3446
3446
|
program2.command("serve").description("Start the MCP server").option("--http", "Start HTTP server instead of stdio").option("--port <number>", "HTTP server port", "8080").action(async (opts) => {
|
|
@@ -3453,10 +3453,10 @@ program2.command("serve").description("Start the MCP server").option("--http", "
|
|
|
3453
3453
|
);
|
|
3454
3454
|
process.exit(ExitCode.INVALID_ARGS);
|
|
3455
3455
|
}
|
|
3456
|
-
const { startHttp } = await import("./serve-
|
|
3456
|
+
const { startHttp } = await import("./serve-YFFG2432.js");
|
|
3457
3457
|
await startHttp(port, program2.opts().envFile);
|
|
3458
3458
|
} else {
|
|
3459
|
-
const { startStdio } = await import("./serve-
|
|
3459
|
+
const { startStdio } = await import("./serve-YFFG2432.js");
|
|
3460
3460
|
await startStdio(program2.opts().envFile);
|
|
3461
3461
|
}
|
|
3462
3462
|
});
|
|
@@ -3487,7 +3487,19 @@ for (const domain of NAMESPACE) {
|
|
|
3487
3487
|
for (const [paramName, argDef] of Object.entries(sub.args)) {
|
|
3488
3488
|
const optKey = argDef.flag.replace(/^--/, "").split(/[\s<]/)[0].replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
3489
3489
|
if (opts[optKey] !== void 0) {
|
|
3490
|
-
|
|
3490
|
+
if (argDef.type === "number") {
|
|
3491
|
+
const numeric = Number(opts[optKey]);
|
|
3492
|
+
if (Number.isNaN(numeric)) {
|
|
3493
|
+
process.stderr.write(
|
|
3494
|
+
`Error: ${argDef.flag.split(/[\s<]/)[0]} expects a number, got '${opts[optKey]}'
|
|
3495
|
+
`
|
|
3496
|
+
);
|
|
3497
|
+
process.exit(ExitCode.INVALID_ARGS);
|
|
3498
|
+
}
|
|
3499
|
+
args[paramName] = numeric;
|
|
3500
|
+
} else {
|
|
3501
|
+
args[paramName] = opts[optKey];
|
|
3502
|
+
}
|
|
3491
3503
|
}
|
|
3492
3504
|
}
|
|
3493
3505
|
}
|
|
@@ -3505,7 +3517,9 @@ for (const domain of NAMESPACE) {
|
|
|
3505
3517
|
const ask = (q) => new Promise((resolve) => rl.question(q, resolve));
|
|
3506
3518
|
for (const [paramName, argDef] of missingRequired) {
|
|
3507
3519
|
const answer = await ask(`${argDef.description || paramName}: `);
|
|
3508
|
-
if (answer.trim())
|
|
3520
|
+
if (answer.trim()) {
|
|
3521
|
+
args[paramName] = argDef.type === "number" && !Number.isNaN(Number(answer)) ? Number(answer) : answer.trim();
|
|
3522
|
+
}
|
|
3509
3523
|
}
|
|
3510
3524
|
rl.close();
|
|
3511
3525
|
}
|
|
@@ -3529,15 +3543,15 @@ for (const domain of NAMESPACE) {
|
|
|
3529
3543
|
}
|
|
3530
3544
|
var toolsCmd = program2.command("tools").description("Discover and execute tools");
|
|
3531
3545
|
toolsCmd.command("list").description("List all registered tools").option("--category <name>", "Filter by category").option("--provider <name>", "Filter by provider prefix").option("--limit <n>", "Max tools to show", "50").option("--offset <n>", "Skip first N tools", "0").action(async (opts) => {
|
|
3532
|
-
const { listTools } = await import("./tools-
|
|
3546
|
+
const { listTools } = await import("./tools-SIOAOXW6.js");
|
|
3533
3547
|
await listTools(opts);
|
|
3534
3548
|
});
|
|
3535
3549
|
toolsCmd.command("search <query>").description("Search tools by name or description").action(async (query) => {
|
|
3536
|
-
const { searchTools } = await import("./tools-
|
|
3550
|
+
const { searchTools } = await import("./tools-SIOAOXW6.js");
|
|
3537
3551
|
await searchTools(query);
|
|
3538
3552
|
});
|
|
3539
3553
|
toolsCmd.command("info <name>").description("Show detailed tool schema and description").action(async (name) => {
|
|
3540
|
-
const { toolInfo } = await import("./tools-
|
|
3554
|
+
const { toolInfo } = await import("./tools-SIOAOXW6.js");
|
|
3541
3555
|
await toolInfo(name);
|
|
3542
3556
|
});
|
|
3543
3557
|
toolsCmd.command("call <name>").description("Execute a tool by name").option("--args <json>", "Tool arguments as JSON (or pipe JSON via stdin)").action(async (name, opts) => {
|
|
@@ -3566,7 +3580,7 @@ toolsCmd.command("call <name>").description("Execute a tool by name").option("--
|
|
|
3566
3580
|
await executeTool(name, args, timeout);
|
|
3567
3581
|
});
|
|
3568
3582
|
toolsCmd.command("refresh").description("Force-refresh the tool catalog cache").action(async () => {
|
|
3569
|
-
const { refreshTools } = await import("./tools-
|
|
3583
|
+
const { refreshTools } = await import("./tools-SIOAOXW6.js");
|
|
3570
3584
|
await refreshTools();
|
|
3571
3585
|
});
|
|
3572
3586
|
var configCmd = program2.command("config").description("Generate configuration for MCP clients");
|
|
@@ -3652,7 +3666,7 @@ program2.command("uninstall").description(
|
|
|
3652
3666
|
if (exitCode !== 0) process.exit(exitCode);
|
|
3653
3667
|
});
|
|
3654
3668
|
program2.command("doctor").description("Diagnose environment and server connectivity").option("--probe", "Run live API probes (slower)").action(async (opts) => {
|
|
3655
|
-
const { runDoctor } = await import("./doctor-
|
|
3669
|
+
const { runDoctor } = await import("./doctor-NLSZB27R.js");
|
|
3656
3670
|
await runDoctor(opts);
|
|
3657
3671
|
});
|
|
3658
3672
|
program2.command("upgrade").description("Update Hive to the latest published version").action(async () => {
|
|
@@ -3661,10 +3675,10 @@ program2.command("upgrade").description("Update Hive to the latest published ver
|
|
|
3661
3675
|
});
|
|
3662
3676
|
program2.command("completion <shell>").description("Generate shell completion script (bash, zsh, fish, powershell)").option("--install", "Auto-install to shell rc file").action(async (shell, opts) => {
|
|
3663
3677
|
if (opts.install) {
|
|
3664
|
-
const { installCompletion } = await import("./completion-
|
|
3678
|
+
const { installCompletion } = await import("./completion-L3TDZ7ZK.js");
|
|
3665
3679
|
await installCompletion(shell);
|
|
3666
3680
|
} else {
|
|
3667
|
-
const { generateCompletion } = await import("./completion-
|
|
3681
|
+
const { generateCompletion } = await import("./completion-L3TDZ7ZK.js");
|
|
3668
3682
|
await generateCompletion(shell);
|
|
3669
3683
|
}
|
|
3670
3684
|
});
|
|
@@ -3700,7 +3714,7 @@ program2.command("usage").description("Show your API usage and plan limits").act
|
|
|
3700
3714
|
await runUsage();
|
|
3701
3715
|
});
|
|
3702
3716
|
program2.command("status").description("Quick health and version check").action(async () => {
|
|
3703
|
-
const { runStatus } = await import("./doctor-
|
|
3717
|
+
const { runStatus } = await import("./doctor-NLSZB27R.js");
|
|
3704
3718
|
await runStatus();
|
|
3705
3719
|
});
|
|
3706
3720
|
program2.command("open [target]").description("Open Hive dashboard, docs, status, or GitHub in browser").action(async (target) => {
|
|
@@ -204,7 +204,7 @@ ${fails === 0 ? "All checks passed" : `${fails} issues found`}${warns ? ` (${war
|
|
|
204
204
|
if (fails > 0) process.exit(1);
|
|
205
205
|
}
|
|
206
206
|
async function runStatus() {
|
|
207
|
-
const { SERVER_VERSION } = await import("./mcpServer-
|
|
207
|
+
const { SERVER_VERSION } = await import("./mcpServer-IWKTX2ZQ.js");
|
|
208
208
|
const { resolveApiKey, resolveApiUrl } = await import("./config-dir-5IH7MOOT.js");
|
|
209
209
|
const { getActiveProfile, maskKey } = await import("./auth-Y4GXW376.js");
|
|
210
210
|
const apiUrl = resolveApiUrl();
|
package/build/monitor-worker.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module'; const require = createRequire(impor
|
|
|
2
2
|
import {
|
|
3
3
|
consumeCredits,
|
|
4
4
|
executeToolByName
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MWYPLBIN.js";
|
|
6
6
|
import {
|
|
7
7
|
HyperliquidAPI,
|
|
8
8
|
MIN_MONITOR_CADENCE_MS,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
monitorCadenceIntervalMs,
|
|
16
16
|
runScheduledHealthCanaries,
|
|
17
17
|
secureLogger
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LFNLT3YW.js";
|
|
19
19
|
import "./chunk-L326MQZP.js";
|
|
20
20
|
import "./chunk-EPF36Q3Z.js";
|
|
21
21
|
import "./chunk-ZXKFJQDE.js";
|
package/build/release.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "hive-intelligence",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"buildSha": "
|
|
5
|
-
"imageDigest": "sha256:
|
|
3
|
+
"version": "1.5.2",
|
|
4
|
+
"buildSha": "d978faa93aff11daff471ee34773a8354535bb32",
|
|
5
|
+
"imageDigest": "sha256:89a2aef7b9ac0a804f08f46c264c4487d2c3a02c9cce27613afb478a24fc81a1",
|
|
6
6
|
"deployedUrl": "https://mcp.hiveintelligence.xyz",
|
|
7
|
-
"manifest": "https://raw.githubusercontent.com/hive-intel/hive-sdk/v1.5.
|
|
7
|
+
"manifest": "https://raw.githubusercontent.com/hive-intel/hive-sdk/v1.5.2/releases/v1.5.2.json"
|
|
8
8
|
}
|
|
@@ -7,7 +7,7 @@ async function startStdio(envFile) {
|
|
|
7
7
|
dotenv.config({ path: envFile || ".env", quiet: true });
|
|
8
8
|
console.log = (...args) => console.error("[LOG]", ...args);
|
|
9
9
|
const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
|
|
10
|
-
const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } = await import("./mcpServer-
|
|
10
|
+
const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } = await import("./mcpServer-IWKTX2ZQ.js");
|
|
11
11
|
const { getPendingUpdateVersion } = await import("./update-check-IEXPOYYR.js");
|
|
12
12
|
const transport = new StdioServerTransport();
|
|
13
13
|
const pendingUpdate = getPendingUpdateVersion();
|
package/build/server.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
ensureWallet,
|
|
7
7
|
executeToolByName,
|
|
8
8
|
getWalletStatus
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MWYPLBIN.js";
|
|
10
10
|
import {
|
|
11
11
|
CategoryEndpoints,
|
|
12
12
|
HERO_TOOL_NAMES,
|
|
@@ -95,7 +95,7 @@ import {
|
|
|
95
95
|
validateEndpointArgs,
|
|
96
96
|
verifyApiKey,
|
|
97
97
|
waitForRedisAvailability
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-LFNLT3YW.js";
|
|
99
99
|
import {
|
|
100
100
|
HIVE_AGENT_SKILLS
|
|
101
101
|
} from "./chunk-L326MQZP.js";
|
package/build/stdio.js
CHANGED
|
@@ -40,7 +40,7 @@ async function listTools(opts) {
|
|
|
40
40
|
tools = tools.filter((t) => t.name.toLowerCase().startsWith(prefix + "_"));
|
|
41
41
|
}
|
|
42
42
|
if (opts.category) {
|
|
43
|
-
const { NAMESPACE } = await import("./namespace-
|
|
43
|
+
const { NAMESPACE } = await import("./namespace-XLMRFH5E.js");
|
|
44
44
|
const cat = opts.category.toLowerCase();
|
|
45
45
|
const ns = NAMESPACE.find(
|
|
46
46
|
(d) => d.name === cat || d.description.toLowerCase().includes(cat)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hive-intelligence",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.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",
|