hive-intelligence 1.14.0 → 1.15.0

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/cli.js CHANGED
@@ -3453,7 +3453,7 @@ program2.hook("preAction", (thisCommand) => {
3453
3453
  setCliFlags({ apiKey: opts.apiKey, noRetry: opts.retry === false });
3454
3454
  });
3455
3455
  program2.action(async () => {
3456
- const { startStdio } = await import("./serve-46DQ37YQ.js");
3456
+ const { startStdio } = await import("./serve-V2KPPJCD.js");
3457
3457
  await startStdio(program2.opts().envFile);
3458
3458
  });
3459
3459
  program2.command("serve").description(
@@ -3471,10 +3471,10 @@ program2.command("serve").description(
3471
3471
  );
3472
3472
  process.exit(ExitCode.INVALID_ARGS);
3473
3473
  }
3474
- const { startHttp } = await import("./serve-46DQ37YQ.js");
3474
+ const { startHttp } = await import("./serve-V2KPPJCD.js");
3475
3475
  await startHttp(port, program2.opts().envFile);
3476
3476
  } else {
3477
- const { startStdio } = await import("./serve-46DQ37YQ.js");
3477
+ const { startStdio } = await import("./serve-V2KPPJCD.js");
3478
3478
  await startStdio(program2.opts().envFile, { local: opts.local });
3479
3479
  }
3480
3480
  });
@@ -3742,7 +3742,7 @@ program2.command("doctor").description("Diagnose environment and server connecti
3742
3742
  "--fix",
3743
3743
  "Rewrite stale Hive entries in MCP client configs (backs each file up first)"
3744
3744
  ).action(async (opts) => {
3745
- const { runDoctor } = await import("./doctor-FPB5TEBU.js");
3745
+ const { runDoctor } = await import("./doctor-25WPHR4J.js");
3746
3746
  await runDoctor(opts);
3747
3747
  });
3748
3748
  program2.command("upgrade").description("Update Hive to the latest published version").action(async () => {
@@ -3790,7 +3790,7 @@ program2.command("usage").description("Show your API usage and plan limits").act
3790
3790
  await runUsage();
3791
3791
  });
3792
3792
  program2.command("status").description("Quick health and version check").action(async () => {
3793
- const { runStatus } = await import("./doctor-FPB5TEBU.js");
3793
+ const { runStatus } = await import("./doctor-25WPHR4J.js");
3794
3794
  await runStatus();
3795
3795
  });
3796
3796
  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-RGUKLIP2.js");
299
+ const { SERVER_VERSION } = await import("./mcpServer-O4KXRE62.js");
300
300
  const { resolveApiKey, resolveApiUrl } = await import("./config-dir-2QLA5PXD.js");
301
301
  const { getActiveProfile, maskKey } = await import("./auth-6XVL5CE3.js");
302
302
  const apiUrl = resolveApiUrl();
@@ -9,7 +9,7 @@ import {
9
9
  getToolsForScope,
10
10
  memoizedJsonSchemaToZodInputSchema,
11
11
  memoizedJsonSchemaToZodOutputSchema
12
- } from "./chunk-C4BFUIEB.js";
12
+ } from "./chunk-GNZGLVFE.js";
13
13
  import "./chunk-QYK3EWTE.js";
14
14
  import "./chunk-EPF36Q3Z.js";
15
15
  import {
@@ -4,20 +4,17 @@ import {
4
4
  executeToolByName,
5
5
  refundCredits,
6
6
  refundSettled
7
- } from "./chunk-SMVHHINA.js";
7
+ } from "./chunk-762ZUJ4Q.js";
8
8
  import {
9
- HyperliquidAPI,
10
9
  MIN_MONITOR_CADENCE_MS,
11
10
  closeRedisClient,
12
- collectRwaRows,
13
- getEnvVar,
14
11
  getSupabaseAdmin,
15
12
  isManualMonitorCadence,
16
13
  isSupabaseConfigured,
17
14
  monitorCadenceIntervalMs,
18
15
  runScheduledHealthCanaries,
19
16
  secureLogger
20
- } from "./chunk-C4BFUIEB.js";
17
+ } from "./chunk-GNZGLVFE.js";
21
18
  import "./chunk-QYK3EWTE.js";
22
19
  import "./chunk-EPF36Q3Z.js";
23
20
  import "./chunk-ZXKFJQDE.js";
@@ -1251,152 +1248,6 @@ async function runDueMonitors(options = {}) {
1251
1248
  };
1252
1249
  }
1253
1250
 
1254
- // src/services/rwa-snapshot.ts
1255
- var INSERT_CHUNK_SIZE = 500;
1256
- var SNAPSHOT_MIN_GAP_MS = 55 * 60 * 1e3;
1257
- function snapshotRowFor(row, capturedAt) {
1258
- return {
1259
- venue: row.venue,
1260
- symbol: row.symbol,
1261
- underlying: row.underlying,
1262
- asset_class: row.asset_class,
1263
- funding_rate: row.funding_rate,
1264
- annualized: row.funding_annualized,
1265
- mark_price: row.mark_price,
1266
- oi: row.open_interest_usd,
1267
- mechanism: row.funding_mechanism,
1268
- flags: {
1269
- market: row.market,
1270
- funding_interval_hours: row.funding_interval_hours,
1271
- borrow_apr_annual: row.borrow_apr_annual,
1272
- is_delisted: row.is_delisted,
1273
- is_price_suspect: row.is_price_suspect,
1274
- price_suspect_basis: row.price_suspect_basis,
1275
- price_deviation_pct: row.price_deviation_pct,
1276
- volume_24h_usd: row.volume_24h_usd
1277
- },
1278
- captured_at: capturedAt
1279
- };
1280
- }
1281
- async function persistRwaSnapshot() {
1282
- if (!isSupabaseConfigured()) {
1283
- return {
1284
- ok: true,
1285
- skipped: true,
1286
- reason: "supabase_not_configured",
1287
- capturedRows: 0,
1288
- venueResults: [],
1289
- writeErrors: [],
1290
- capturedAt: null
1291
- };
1292
- }
1293
- const { results, rows } = await collectRwaRows({
1294
- hyperliquidApi: new HyperliquidAPI()
1295
- });
1296
- if (rows.length === 0) {
1297
- return {
1298
- ok: false,
1299
- skipped: false,
1300
- reason: "no_rows_from_any_venue",
1301
- capturedRows: 0,
1302
- venueResults: results,
1303
- writeErrors: [],
1304
- capturedAt: null
1305
- };
1306
- }
1307
- const supabase = getSupabaseAdmin();
1308
- const capturedAt = (/* @__PURE__ */ new Date()).toISOString();
1309
- const payload = rows.map((row) => snapshotRowFor(row, capturedAt));
1310
- const writeErrors = [];
1311
- let insertedCount = 0;
1312
- for (let i = 0; i < payload.length; i += INSERT_CHUNK_SIZE) {
1313
- const chunk = payload.slice(i, i + INSERT_CHUNK_SIZE);
1314
- const { error } = await supabase.from("rwa_funding_snapshots").insert(chunk);
1315
- if (error) {
1316
- writeErrors.push(`insert chunk ${i}: ${error.message}`);
1317
- } else {
1318
- insertedCount += chunk.length;
1319
- }
1320
- }
1321
- const ok = writeErrors.length === 0;
1322
- if (!ok) {
1323
- secureLogger.warn("RWA snapshot write errors", {
1324
- errorCount: writeErrors.length
1325
- });
1326
- }
1327
- return {
1328
- ok,
1329
- skipped: false,
1330
- capturedRows: insertedCount,
1331
- venueResults: results,
1332
- writeErrors,
1333
- capturedAt
1334
- };
1335
- }
1336
- async function runScheduledRwaSnapshot() {
1337
- try {
1338
- if ((getEnvVar("HIVE_RWA_SNAPSHOT_ENABLED") ?? "true") === "false") {
1339
- return {
1340
- ok: true,
1341
- skipped: true,
1342
- reason: "disabled_by_env",
1343
- capturedRows: 0,
1344
- venueResults: [],
1345
- writeErrors: [],
1346
- capturedAt: null
1347
- };
1348
- }
1349
- if (!isSupabaseConfigured()) {
1350
- return {
1351
- ok: true,
1352
- skipped: true,
1353
- reason: "supabase_not_configured",
1354
- capturedRows: 0,
1355
- venueResults: [],
1356
- writeErrors: [],
1357
- capturedAt: null
1358
- };
1359
- }
1360
- const supabase = getSupabaseAdmin();
1361
- const { data, error } = await supabase.from("rwa_funding_snapshots").select("captured_at").order("captured_at", { ascending: false }).limit(1);
1362
- if (error) {
1363
- return {
1364
- ok: false,
1365
- skipped: false,
1366
- reason: `cadence check failed: ${error.message}`,
1367
- capturedRows: 0,
1368
- venueResults: [],
1369
- writeErrors: [error.message],
1370
- capturedAt: null
1371
- };
1372
- }
1373
- const latest = data?.[0]?.captured_at ? Date.parse(String(data[0].captured_at)) : null;
1374
- if (latest != null && Number.isFinite(latest) && Date.now() - latest < SNAPSHOT_MIN_GAP_MS) {
1375
- return {
1376
- ok: true,
1377
- skipped: true,
1378
- reason: "within_cadence_gap",
1379
- capturedRows: 0,
1380
- venueResults: [],
1381
- writeErrors: [],
1382
- capturedAt: null
1383
- };
1384
- }
1385
- return await persistRwaSnapshot();
1386
- } catch (error) {
1387
- const message = error instanceof Error ? error.message : String(error);
1388
- return {
1389
- ok: false,
1390
- skipped: false,
1391
- reason: message,
1392
- capturedRows: 0,
1393
- venueResults: [],
1394
- writeErrors: [message],
1395
- capturedAt: null
1396
- };
1397
- }
1398
- }
1399
-
1400
1251
  // src/monitor-worker.ts
1401
1252
  function intEnv(name, fallback) {
1402
1253
  const parsed = Number.parseInt(process.env[name] ?? "", 10);
@@ -1428,15 +1279,13 @@ async function runMonitorWorkerFromEnv() {
1428
1279
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
1429
1280
  })
1430
1281
  );
1431
- const rwaSnapshot = await runScheduledRwaSnapshot();
1432
1282
  console.log(
1433
1283
  JSON.stringify(
1434
1284
  {
1435
1285
  service: "hive-monitor-worker",
1436
1286
  worker_id: process.env.HIVE_MONITOR_WORKER_ID ?? null,
1437
1287
  ...result,
1438
- scheduled_health_canaries: scheduledHealthCanaries,
1439
- rwa_snapshot: rwaSnapshot
1288
+ scheduled_health_canaries: scheduledHealthCanaries
1440
1289
  },
1441
1290
  null,
1442
1291
  2
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "package": "hive-intelligence",
3
- "version": "1.14.0",
4
- "buildSha": "f1bbc52b5c28fce13118ca3fa4ad492c09b8b900",
5
- "imageDigest": "sha256:b58f4ab6b9c0b3b8bc9c7bc049ba0f2c7943ad22f6e13f127aaaee4d588fbfc6",
3
+ "version": "1.15.0",
4
+ "buildSha": "c4b93ccfe31b90d86d3b51ee24cb137624ba12b1",
5
+ "imageDigest": "sha256:31eee6b9b85495c0d351a24ab189b9523cc0d95286fb8c66c28c5f530d545b6a",
6
6
  "deployedUrl": "https://mcp.hiveintelligence.xyz",
7
- "manifest": "https://raw.githubusercontent.com/hive-intel/hive-sdk/v1.14.0/releases/v1.14.0.json"
7
+ "manifest": "https://raw.githubusercontent.com/hive-intel/hive-sdk/v1.15.0/releases/v1.15.0.json"
8
8
  }
@@ -49,7 +49,7 @@ async function startStdio(envFile, opts = {}) {
49
49
  console.log = (...args) => console.error("[LOG]", ...args);
50
50
  if (resolveStdioMode(opts) === "proxy") return startStdioProxy();
51
51
  const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
52
- const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } = await import("./mcpServer-RGUKLIP2.js");
52
+ const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } = await import("./mcpServer-O4KXRE62.js");
53
53
  const { getPendingUpdateVersion } = await import("./update-check-36QU6PKA.js");
54
54
  const transport = new StdioServerTransport();
55
55
  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-SMVHHINA.js";
11
+ } from "./chunk-762ZUJ4Q.js";
12
12
  import {
13
13
  CategoryEndpoints,
14
14
  HERO_TOOL_NAMES,
@@ -105,7 +105,7 @@ import {
105
105
  validateEndpointArgs,
106
106
  verifyApiKey,
107
107
  waitForRedisAvailability
108
- } from "./chunk-C4BFUIEB.js";
108
+ } from "./chunk-GNZGLVFE.js";
109
109
  import {
110
110
  HIVE_AGENT_SKILLS
111
111
  } from "./chunk-QYK3EWTE.js";
@@ -6628,6 +6628,10 @@ function createHttpApp() {
6628
6628
  }
6629
6629
  app.set("trust proxy", resolveTrustedProxies());
6630
6630
  app.use(requestIdMiddleware);
6631
+ app.use((_req, res, next) => {
6632
+ res.setHeader("X-Robots-Tag", "noindex, nofollow");
6633
+ next();
6634
+ });
6631
6635
  app.use((_req, res, next) => {
6632
6636
  if (isShuttingDown) {
6633
6637
  res.setHeader("Connection", "close");
package/build/stdio.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  createHiveMcpServer,
8
8
  secureLogger
9
- } from "./chunk-C4BFUIEB.js";
9
+ } from "./chunk-GNZGLVFE.js";
10
10
  import "./chunk-QYK3EWTE.js";
11
11
  import "./chunk-EPF36Q3Z.js";
12
12
  import {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hive-intelligence",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
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",