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,274 @@
1
+ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ saveProfile
4
+ } from "./chunk-RKICZ6DZ.js";
5
+ import {
6
+ detectClients,
7
+ installSkillsForClients
8
+ } from "./chunk-IDZD2NVG.js";
9
+ import {
10
+ printChatGptDesktopInstructions,
11
+ writeClaudeCodeUserConfig,
12
+ writeClaudeDesktopConfig,
13
+ writeCursorConfig,
14
+ writeGeminiCliConfig,
15
+ writeVscodeConfig,
16
+ writeWindsurfConfig
17
+ } from "./chunk-2MYMHMBF.js";
18
+ import {
19
+ browserLogin
20
+ } from "./chunk-PGBVNMNZ.js";
21
+ import "./chunk-B6G222LS.js";
22
+ import {
23
+ bold,
24
+ dim,
25
+ green,
26
+ red,
27
+ yellow
28
+ } from "./chunk-XYBEFFZ3.js";
29
+ import {
30
+ resolveApiKey,
31
+ resolveApiUrl
32
+ } from "./chunk-V77LO4RO.js";
33
+ import "./chunk-KBVPIZS4.js";
34
+
35
+ // src/cli/init-all.ts
36
+ function w(line) {
37
+ process.stderr.write(line + "\n");
38
+ }
39
+ function step(label) {
40
+ w(`
41
+ ${bold(label)}`);
42
+ }
43
+ function ok(line) {
44
+ w(` ${green("\u2713")} ${line}`);
45
+ }
46
+ function bad(line) {
47
+ w(` ${red("\u2717")} ${line}`);
48
+ }
49
+ function warn(line) {
50
+ w(` ${yellow("!")} ${line}`);
51
+ }
52
+ function info(line) {
53
+ w(` ${dim(line)}`);
54
+ }
55
+ function writeForClient(client) {
56
+ const base = {
57
+ client: client.id,
58
+ name: client.name
59
+ };
60
+ if (!client.programmable) {
61
+ if (client.id === "chatgpt-desktop") {
62
+ const inst = printChatGptDesktopInstructions();
63
+ return { ...base, ok: false, manual: true, steps: inst.steps };
64
+ }
65
+ return {
66
+ ...base,
67
+ ok: false,
68
+ manual: true,
69
+ error: client.hint || "Manual setup required"
70
+ };
71
+ }
72
+ try {
73
+ let result;
74
+ switch (client.id) {
75
+ case "claude-code":
76
+ result = writeClaudeCodeUserConfig();
77
+ break;
78
+ case "claude-desktop":
79
+ result = writeClaudeDesktopConfig();
80
+ break;
81
+ case "cursor":
82
+ result = writeCursorConfig();
83
+ break;
84
+ case "vscode":
85
+ result = writeVscodeConfig();
86
+ break;
87
+ case "windsurf":
88
+ result = writeWindsurfConfig();
89
+ break;
90
+ case "gemini-cli":
91
+ result = writeGeminiCliConfig();
92
+ break;
93
+ case "chatgpt-desktop":
94
+ return {
95
+ ...base,
96
+ ok: false,
97
+ manual: true,
98
+ steps: printChatGptDesktopInstructions().steps
99
+ };
100
+ }
101
+ return {
102
+ ...base,
103
+ ok: result.written,
104
+ path: result.path,
105
+ error: result.written ? void 0 : "No API key resolved \u2014 auth first or set HIVE_API_KEY"
106
+ };
107
+ } catch (err) {
108
+ return {
109
+ ...base,
110
+ ok: false,
111
+ error: err instanceof Error ? err.message : String(err)
112
+ };
113
+ }
114
+ }
115
+ async function verifyConnection() {
116
+ const apiKey = resolveApiKey();
117
+ const apiUrl = resolveApiUrl();
118
+ if (!apiKey) return false;
119
+ try {
120
+ const controller = new AbortController();
121
+ const timer = setTimeout(() => controller.abort(), 8e3);
122
+ const res = await fetch(`${apiUrl}/api/v1/tools?limit=1`, {
123
+ headers: { Authorization: `Bearer ${apiKey}` },
124
+ signal: controller.signal
125
+ });
126
+ clearTimeout(timer);
127
+ return res.ok;
128
+ } catch {
129
+ return false;
130
+ }
131
+ }
132
+ async function runInitAll(opts = {}) {
133
+ const summary = {
134
+ authenticated: false,
135
+ apiKeyPresent: Boolean(resolveApiKey()),
136
+ apiUrl: opts.apiUrl || resolveApiUrl(),
137
+ clients: [],
138
+ skills: [],
139
+ verified: null,
140
+ dryRun: Boolean(opts.dryRun)
141
+ };
142
+ if (!opts.json) {
143
+ w(bold("\nHive Intelligence \u2014 Init"));
144
+ if (summary.dryRun) info("(dry-run \u2014 nothing will be written)");
145
+ }
146
+ if (opts.browser) {
147
+ step("Authenticating via browser");
148
+ if (summary.dryRun) {
149
+ info("Would open browser for PKCE auth at /auth/cli");
150
+ summary.authenticated = false;
151
+ } else {
152
+ try {
153
+ const result = await browserLogin({
154
+ baseUrl: process.env.HIVE_AUTH_BASE_URL || "https://hiveintelligence.xyz",
155
+ timeout: 3e5
156
+ });
157
+ saveProfile("default", result.key, summary.apiUrl);
158
+ summary.authenticated = true;
159
+ summary.apiKeyPresent = true;
160
+ ok(`Signed in as ${result.email || "(email unavailable)"}`);
161
+ } catch (err) {
162
+ bad(`Browser auth failed: ${err instanceof Error ? err.message : err}`);
163
+ if (!summary.apiKeyPresent) {
164
+ warn("No saved key \u2014 clients will be configured with placeholder.");
165
+ warn("Run `hive auth login --manual` to paste a key by hand.");
166
+ }
167
+ }
168
+ }
169
+ } else if (!summary.apiKeyPresent) {
170
+ step("Authentication");
171
+ warn("No API key in env or saved profile.");
172
+ info("Run `hive init --browser` to authenticate via PKCE flow,");
173
+ info("or `hive auth login --manual` to paste a key by hand.");
174
+ } else {
175
+ step("Authentication");
176
+ ok("Existing API key resolved (env or saved profile)");
177
+ summary.authenticated = true;
178
+ }
179
+ step("Detecting MCP-capable clients");
180
+ const detected = detectClients();
181
+ for (const c of detected) {
182
+ if (c.detected) {
183
+ ok(`${c.name} ${dim("(" + c.configPath + ")")}`);
184
+ } else if (!opts.all) {
185
+ continue;
186
+ } else {
187
+ info(`${c.name} \u2014 not detected (${c.hint || "skipped"})`);
188
+ }
189
+ }
190
+ const targets = opts.all ? detected.filter((c) => c.detected && c.programmable) : detected.filter((c) => c.detected && c.programmable);
191
+ step("Writing client configs");
192
+ for (const client of targets) {
193
+ if (summary.dryRun) {
194
+ info(`Would write ${client.configPath}`);
195
+ summary.clients.push({
196
+ client: client.id,
197
+ name: client.name,
198
+ ok: true,
199
+ path: client.configPath
200
+ });
201
+ continue;
202
+ }
203
+ const result = writeForClient(client);
204
+ summary.clients.push(result);
205
+ if (result.ok && result.path) {
206
+ ok(`${result.name} ${dim("\u2192 " + result.path)}`);
207
+ } else if (result.manual && result.steps) {
208
+ warn(`${result.name} \u2014 manual setup required:`);
209
+ for (const stepText of result.steps) info(` \u2022 ${stepText}`);
210
+ } else {
211
+ bad(`${result.name} \u2014 ${result.error || "unknown error"}`);
212
+ }
213
+ }
214
+ const chatgpt = detected.find((c) => c.id === "chatgpt-desktop");
215
+ if (chatgpt && !summary.clients.some((c) => c.client === "chatgpt-desktop")) {
216
+ const inst = printChatGptDesktopInstructions();
217
+ summary.clients.push({
218
+ client: "chatgpt-desktop",
219
+ name: chatgpt.name,
220
+ ok: false,
221
+ manual: true,
222
+ steps: inst.steps
223
+ });
224
+ info(`${chatgpt.name} \u2014 manual setup (Settings \u2192 Connectors)`);
225
+ }
226
+ if (!opts.skipSkills) {
227
+ step("Installing skill packs");
228
+ if (summary.dryRun) {
229
+ info("Would copy agent-skills/packs/ into per-client skills dirs");
230
+ } else {
231
+ const skillTargets = targets.map((c) => c.id);
232
+ const skillResults = installSkillsForClients(skillTargets);
233
+ summary.skills = skillResults;
234
+ for (const r of skillResults) {
235
+ if (r.installed.length > 0) {
236
+ ok(
237
+ `${r.client}: ${r.installed.length} pack${r.installed.length === 1 ? "" : "s"} ${dim("\u2192 " + r.destination)}`
238
+ );
239
+ } else if (r.reason) {
240
+ info(`${r.client}: ${r.reason}`);
241
+ }
242
+ }
243
+ }
244
+ }
245
+ if (!opts.skipVerify && !summary.dryRun) {
246
+ step("Verifying connection");
247
+ const verified = await verifyConnection();
248
+ summary.verified = verified;
249
+ if (verified) ok("Connection to Hive verified");
250
+ else
251
+ warn(
252
+ "Could not verify \u2014 run `hive doctor` for details (this can be a transient network issue)"
253
+ );
254
+ }
255
+ if (opts.json) {
256
+ process.stdout.write(JSON.stringify(summary, null, 2) + "\n");
257
+ } else {
258
+ w("");
259
+ w(bold("Next steps"));
260
+ w(dim(" Try a query: ") + "hive market price --ids bitcoin --vs usd");
261
+ w(dim(" Open dashboard: ") + "hive open dashboard");
262
+ w(dim(" Health check: ") + "hive doctor");
263
+ w("");
264
+ }
265
+ const anyClientOk = summary.clients.some((c) => c.ok);
266
+ const browserOnly = opts.browser && !opts.all;
267
+ if (browserOnly && summary.authenticated) return 0;
268
+ if (!summary.dryRun && !anyClientOk) return 1;
269
+ return 0;
270
+ }
271
+ export {
272
+ runInitAll
273
+ };
274
+ //# sourceMappingURL=init-all-6OWEQALB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/init-all.ts"],"sourcesContent":["/**\n * `hive init` orchestrator — the one-command install path.\n *\n * Modes (driven by flags):\n *\n * hive init — interactive: walks through auth +\n * asks which clients to set up.\n * hive init --browser — runs PKCE browser auth, no client\n * install. Equivalent to\n * `hive auth login`.\n * hive init --all — registers Hive in every detected\n * client. Requires HIVE_API_KEY (or\n * a saved profile from a prior auth).\n * hive init --all --browser — the marketing path. Auth via\n * browser, then register every\n * detected client + copy skill packs.\n *\n * Always idempotent. Re-running just refreshes the configs.\n *\n * Output goes to stderr (status messages) or stdout (--json summary\n * for scripting). Exit code 0 on partial success — the caller sees\n * the per-client outcome in the summary.\n */\n\nimport { browserLogin } from \"./browser-auth.js\";\nimport {\n detectClients,\n type ClientId,\n type ClientInfo,\n} from \"./detect-clients.js\";\nimport {\n printChatGptDesktopInstructions,\n writeClaudeCodeUserConfig,\n writeClaudeDesktopConfig,\n writeCursorConfig,\n writeGeminiCliConfig,\n writeVscodeConfig,\n writeWindsurfConfig,\n} from \"./config.js\";\nimport { resolveApiKey, resolveApiUrl } from \"./config-dir.js\";\nimport { saveProfile } from \"./auth.js\";\nimport { installSkillsForClients, type SkillInstallResult } from \"./skills.js\";\nimport { bold, dim, green, red, yellow } from \"./output.js\";\n\nexport interface InitAllOptions {\n /** Run PKCE browser auth before installing. */\n browser?: boolean;\n /** Configure every detected client (vs. interactive picker). */\n all?: boolean;\n /** Skip skill-pack copy step. */\n skipSkills?: boolean;\n /** Don't run the verification call after install. */\n skipVerify?: boolean;\n /** Print the plan; don't write anything. */\n dryRun?: boolean;\n /** JSON output mode (for scripting). */\n json?: boolean;\n /** Override API URL (for staging / self-hosted). */\n apiUrl?: string;\n}\n\ninterface ConfigWriteResult {\n client: ClientId;\n name: string;\n ok: boolean;\n path?: string;\n manual?: boolean;\n steps?: string[];\n error?: string;\n}\n\ninterface InitSummary {\n authenticated: boolean;\n apiKeyPresent: boolean;\n apiUrl: string;\n clients: ConfigWriteResult[];\n skills: SkillInstallResult[];\n verified: boolean | null;\n dryRun: boolean;\n}\n\n// ─── Helpers ──────────────────────────────────────────────────────────\n\nfunction w(line: string): void {\n process.stderr.write(line + \"\\n\");\n}\n\nfunction step(label: string): void {\n w(`\\n${bold(label)}`);\n}\n\nfunction ok(line: string): void {\n w(` ${green(\"✓\")} ${line}`);\n}\n\nfunction bad(line: string): void {\n w(` ${red(\"✗\")} ${line}`);\n}\n\nfunction warn(line: string): void {\n w(` ${yellow(\"!\")} ${line}`);\n}\n\nfunction info(line: string): void {\n w(` ${dim(line)}`);\n}\n\n// ─── Per-client config write dispatch ─────────────────────────────────\n\nfunction writeForClient(client: ClientInfo): ConfigWriteResult {\n const base: Pick<ConfigWriteResult, \"client\" | \"name\"> = {\n client: client.id,\n name: client.name,\n };\n\n if (!client.programmable) {\n if (client.id === \"chatgpt-desktop\") {\n const inst = printChatGptDesktopInstructions();\n return { ...base, ok: false, manual: true, steps: inst.steps };\n }\n return {\n ...base,\n ok: false,\n manual: true,\n error: client.hint || \"Manual setup required\",\n };\n }\n\n try {\n let result: { path: string; written: boolean };\n switch (client.id) {\n case \"claude-code\":\n result = writeClaudeCodeUserConfig();\n break;\n case \"claude-desktop\":\n result = writeClaudeDesktopConfig();\n break;\n case \"cursor\":\n result = writeCursorConfig();\n break;\n case \"vscode\":\n result = writeVscodeConfig();\n break;\n case \"windsurf\":\n result = writeWindsurfConfig();\n break;\n case \"gemini-cli\":\n result = writeGeminiCliConfig();\n break;\n case \"chatgpt-desktop\":\n return {\n ...base,\n ok: false,\n manual: true,\n steps: printChatGptDesktopInstructions().steps,\n };\n }\n return {\n ...base,\n ok: result.written,\n path: result.path,\n error: result.written\n ? undefined\n : \"No API key resolved — auth first or set HIVE_API_KEY\",\n };\n } catch (err) {\n return {\n ...base,\n ok: false,\n error: err instanceof Error ? err.message : String(err),\n };\n }\n}\n\n// ─── Verification ─────────────────────────────────────────────────────\n\nasync function verifyConnection(): Promise<boolean> {\n const apiKey = resolveApiKey();\n const apiUrl = resolveApiUrl();\n if (!apiKey) return false;\n try {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 8000);\n const res = await fetch(`${apiUrl}/api/v1/tools?limit=1`, {\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: controller.signal,\n });\n clearTimeout(timer);\n return res.ok;\n } catch {\n return false;\n }\n}\n\n// ─── Main entrypoint ──────────────────────────────────────────────────\n\nexport async function runInitAll(opts: InitAllOptions = {}): Promise<number> {\n const summary: InitSummary = {\n authenticated: false,\n apiKeyPresent: Boolean(resolveApiKey()),\n apiUrl: opts.apiUrl || resolveApiUrl(),\n clients: [],\n skills: [],\n verified: null,\n dryRun: Boolean(opts.dryRun),\n };\n\n if (!opts.json) {\n w(bold(\"\\nHive Intelligence — Init\"));\n if (summary.dryRun) info(\"(dry-run — nothing will be written)\");\n }\n\n // ─── Step 1: authentication ─────────────────────────────────────────\n if (opts.browser) {\n step(\"Authenticating via browser\");\n if (summary.dryRun) {\n info(\"Would open browser for PKCE auth at /auth/cli\");\n summary.authenticated = false;\n } else {\n try {\n const result = await browserLogin({\n baseUrl:\n process.env.HIVE_AUTH_BASE_URL || \"https://hiveintelligence.xyz\",\n timeout: 300_000,\n });\n saveProfile(\"default\", result.key, summary.apiUrl);\n summary.authenticated = true;\n summary.apiKeyPresent = true;\n ok(`Signed in as ${result.email || \"(email unavailable)\"}`);\n } catch (err) {\n bad(`Browser auth failed: ${err instanceof Error ? err.message : err}`);\n if (!summary.apiKeyPresent) {\n warn(\"No saved key — clients will be configured with placeholder.\");\n warn(\"Run `hive auth login --manual` to paste a key by hand.\");\n }\n }\n }\n } else if (!summary.apiKeyPresent) {\n step(\"Authentication\");\n warn(\"No API key in env or saved profile.\");\n info(\"Run `hive init --browser` to authenticate via PKCE flow,\");\n info(\"or `hive auth login --manual` to paste a key by hand.\");\n } else {\n step(\"Authentication\");\n ok(\"Existing API key resolved (env or saved profile)\");\n summary.authenticated = true;\n }\n\n // ─── Step 2: detect clients ─────────────────────────────────────────\n step(\"Detecting MCP-capable clients\");\n const detected = detectClients();\n for (const c of detected) {\n if (c.detected) {\n ok(`${c.name} ${dim(\"(\" + c.configPath + \")\")}`);\n } else if (!opts.all) {\n // In non-`--all` mode we don't bother showing missing clients;\n // they'd just clutter the output.\n continue;\n } else {\n info(`${c.name} — not detected (${c.hint || \"skipped\"})`);\n }\n }\n\n // ─── Step 3: write client configs ───────────────────────────────────\n const targets: ClientInfo[] = opts.all\n ? detected.filter((c) => c.detected && c.programmable)\n : detected.filter((c) => c.detected && c.programmable); // interactive\n // mode would normally branch here; for the marketing path (`--all\n // --browser`) we just install everywhere we can.\n\n step(\"Writing client configs\");\n for (const client of targets) {\n if (summary.dryRun) {\n info(`Would write ${client.configPath}`);\n summary.clients.push({\n client: client.id,\n name: client.name,\n ok: true,\n path: client.configPath,\n });\n continue;\n }\n const result = writeForClient(client);\n summary.clients.push(result);\n if (result.ok && result.path) {\n ok(`${result.name} ${dim(\"→ \" + result.path)}`);\n } else if (result.manual && result.steps) {\n warn(`${result.name} — manual setup required:`);\n for (const stepText of result.steps) info(` • ${stepText}`);\n } else {\n bad(`${result.name} — ${result.error || \"unknown error\"}`);\n }\n }\n\n // ChatGPT instructions are always printed since it's never programmable.\n const chatgpt = detected.find((c) => c.id === \"chatgpt-desktop\");\n if (chatgpt && !summary.clients.some((c) => c.client === \"chatgpt-desktop\")) {\n const inst = printChatGptDesktopInstructions();\n summary.clients.push({\n client: \"chatgpt-desktop\",\n name: chatgpt.name,\n ok: false,\n manual: true,\n steps: inst.steps,\n });\n info(`${chatgpt.name} — manual setup (Settings → Connectors)`);\n }\n\n // ─── Step 4: skill packs ────────────────────────────────────────────\n if (!opts.skipSkills) {\n step(\"Installing skill packs\");\n if (summary.dryRun) {\n info(\"Would copy agent-skills/packs/ into per-client skills dirs\");\n } else {\n const skillTargets = targets.map((c) => c.id);\n const skillResults = installSkillsForClients(skillTargets);\n summary.skills = skillResults;\n for (const r of skillResults) {\n if (r.installed.length > 0) {\n ok(\n `${r.client}: ${r.installed.length} pack${\n r.installed.length === 1 ? \"\" : \"s\"\n } ${dim(\"→ \" + r.destination)}`,\n );\n } else if (r.reason) {\n info(`${r.client}: ${r.reason}`);\n }\n }\n }\n }\n\n // ─── Step 5: verify ─────────────────────────────────────────────────\n if (!opts.skipVerify && !summary.dryRun) {\n step(\"Verifying connection\");\n const verified = await verifyConnection();\n summary.verified = verified;\n if (verified) ok(\"Connection to Hive verified\");\n else\n warn(\n \"Could not verify — run `hive doctor` for details (this can be a transient network issue)\",\n );\n }\n\n // ─── Output ────────────────────────────────────────────────────────\n if (opts.json) {\n process.stdout.write(JSON.stringify(summary, null, 2) + \"\\n\");\n } else {\n w(\"\");\n w(bold(\"Next steps\"));\n w(dim(\" Try a query: \") + \"hive market price --ids bitcoin --vs usd\");\n w(dim(\" Open dashboard: \") + \"hive open dashboard\");\n w(dim(\" Health check: \") + \"hive doctor\");\n w(\"\");\n }\n\n // Exit code: 0 if at least one client wrote successfully OR the user\n // only asked for `--browser` auth and that succeeded. Otherwise 1.\n const anyClientOk = summary.clients.some((c) => c.ok);\n const browserOnly = opts.browser && !opts.all;\n if (browserOnly && summary.authenticated) return 0;\n if (!summary.dryRun && !anyClientOk) return 1;\n return 0;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,20 @@
1
+ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ HiveMCPServer,
4
+ SERVER_NAME,
5
+ SERVER_VERSION,
6
+ createHiveMcpServer,
7
+ getSharedClients,
8
+ getToolsForScope
9
+ } from "./chunk-2X3U4DFK.js";
10
+ import "./chunk-B6G222LS.js";
11
+ import "./chunk-KBVPIZS4.js";
12
+ export {
13
+ HiveMCPServer,
14
+ SERVER_NAME,
15
+ SERVER_VERSION,
16
+ createHiveMcpServer,
17
+ getSharedClients,
18
+ getToolsForScope
19
+ };
20
+ //# sourceMappingURL=mcpServer-AEX3RQ4U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -3,11 +3,11 @@ import {
3
3
  NAMESPACE,
4
4
  getAllDomainCommands,
5
5
  resolveCommand
6
- } from "./chunk-X7ETBCBP.js";
7
- import "./chunk-QMRVH5ZP.js";
6
+ } from "./chunk-MPIUUE3T.js";
7
+ import "./chunk-KBVPIZS4.js";
8
8
  export {
9
9
  NAMESPACE,
10
10
  getAllDomainCommands,
11
11
  resolveCommand
12
12
  };
13
- //# sourceMappingURL=namespace-7SBV4G7R.js.map
13
+ //# sourceMappingURL=namespace-PVHBFDW2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,14 +1,14 @@
1
1
  import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
- import "./chunk-QMRVH5ZP.js";
2
+ import "./chunk-KBVPIZS4.js";
3
3
 
4
4
  // src/cli/open.ts
5
5
  import { exec } from "child_process";
6
6
  import { platform } from "os";
7
7
  var URLS = {
8
- dashboard: "https://hiveintelligence.xyz",
9
- docs: "https://docs.hiveintelligence.xyz",
10
- status: "https://status.hiveintelligence.xyz",
11
- github: "https://github.com/hive-intelligence/hive-mcp"
8
+ dashboard: "https://www.hiveintelligence.xyz/dashboard",
9
+ docs: "https://www.hiveintelligence.xyz/quick-start",
10
+ status: "https://mcp.hiveintelligence.xyz/status",
11
+ github: "https://github.com/sharpe-labs/hive-mcp2"
12
12
  };
13
13
  function openUrl(url) {
14
14
  const cmd = platform() === "darwin" ? "open" : platform() === "win32" ? "start" : "xdg-open";
@@ -34,4 +34,4 @@ function runOpen(target) {
34
34
  export {
35
35
  runOpen
36
36
  };
37
- //# sourceMappingURL=open-FUXYIHFO.js.map
37
+ //# sourceMappingURL=open-YUIJP37F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/open.ts"],"sourcesContent":["import { exec } from \"node:child_process\";\nimport { platform } from \"node:os\";\n\nconst URLS: Record<string, string> = {\n dashboard: \"https://www.hiveintelligence.xyz/dashboard\",\n docs: \"https://www.hiveintelligence.xyz/quick-start\",\n status: \"https://mcp.hiveintelligence.xyz/status\",\n github: \"https://github.com/sharpe-labs/hive-mcp2\",\n};\n\nfunction openUrl(url: string): void {\n const cmd =\n platform() === \"darwin\"\n ? \"open\"\n : platform() === \"win32\"\n ? \"start\"\n : \"xdg-open\";\n exec(`${cmd} ${url}`, (err) => {\n if (err) process.stderr.write(`Open this URL manually: ${url}\\n`);\n });\n}\n\nexport function runOpen(target?: string): void {\n const key = target ?? \"dashboard\";\n const url = URLS[key];\n if (!url) {\n process.stderr.write(\n `Unknown target: \"${key}\". Available: ${Object.keys(URLS).join(\", \")}\\n`,\n );\n process.exit(2);\n }\n process.stderr.write(`Opening ${url}...\\n`);\n openUrl(url);\n}\n"],"mappings":";;;;AAAA,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAEzB,IAAM,OAA+B;AAAA,EACnC,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AACV;AAEA,SAAS,QAAQ,KAAmB;AAClC,QAAM,MACJ,SAAS,MAAM,WACX,SACA,SAAS,MAAM,UACb,UACA;AACR,OAAK,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAI,IAAK,SAAQ,OAAO,MAAM,2BAA2B,GAAG;AAAA,CAAI;AAAA,EAClE,CAAC;AACH;AAEO,SAAS,QAAQ,QAAuB;AAC7C,QAAM,MAAM,UAAU;AACtB,QAAM,MAAM,KAAK,GAAG;AACpB,MAAI,CAAC,KAAK;AACR,YAAQ,OAAO;AAAA,MACb,oBAAoB,GAAG,iBAAiB,OAAO,KAAK,IAAI,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA,IACtE;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,UAAQ,OAAO,MAAM,WAAW,GAAG;AAAA,CAAO;AAC1C,UAAQ,GAAG;AACb;","names":[]}
@@ -17,8 +17,8 @@ import {
17
17
  successEnvelope,
18
18
  writeOutput,
19
19
  yellow
20
- } from "./chunk-CP3FXEQA.js";
21
- import "./chunk-QMRVH5ZP.js";
20
+ } from "./chunk-XYBEFFZ3.js";
21
+ import "./chunk-KBVPIZS4.js";
22
22
  export {
23
23
  bold,
24
24
  colorEnabled,
@@ -38,4 +38,4 @@ export {
38
38
  writeOutput,
39
39
  yellow
40
40
  };
41
- //# sourceMappingURL=output-7PGQWJY2.js.map
41
+ //# sourceMappingURL=output-IYJBFCYK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,44 @@
1
+ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
+ import "./chunk-KBVPIZS4.js";
3
+
4
+ // src/cli/serve.ts
5
+ import dotenv from "dotenv";
6
+ async function startStdio(envFile) {
7
+ dotenv.config({ path: envFile || ".env", quiet: true });
8
+ console.log = (...args) => console.error("[LOG]", ...args);
9
+ const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
10
+ const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } = await import("./mcpServer-AEX3RQ4U.js");
11
+ const transport = new StdioServerTransport();
12
+ const mcpServer = createHiveMcpServer({ kind: "root" });
13
+ const server = mcpServer.getServer();
14
+ let isShuttingDown = false;
15
+ const shutdown = async () => {
16
+ if (isShuttingDown) return;
17
+ isShuttingDown = true;
18
+ const forceTimer = setTimeout(() => process.exit(1), 3e3);
19
+ forceTimer.unref();
20
+ try {
21
+ await server.close();
22
+ } catch {
23
+ }
24
+ process.exit(0);
25
+ };
26
+ process.on("SIGINT", shutdown);
27
+ process.on("SIGTERM", shutdown);
28
+ process.stdin.on("end", shutdown);
29
+ await server.connect(transport);
30
+ console.error(
31
+ `Hive MCP stdio server connected (${SERVER_NAME} v${SERVER_VERSION})`
32
+ );
33
+ }
34
+ async function startHttp(port, envFile) {
35
+ dotenv.config({ path: envFile || ".env", quiet: true });
36
+ process.env.PORT = String(port);
37
+ const { startHttpServer } = await import("./server.js");
38
+ await startHttpServer();
39
+ }
40
+ export {
41
+ startHttp,
42
+ startStdio
43
+ };
44
+ //# sourceMappingURL=serve-KWNJK6EY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/serve.ts"],"sourcesContent":["import dotenv from \"dotenv\";\n\nexport async function startStdio(envFile?: string): Promise<void> {\n dotenv.config({ path: envFile || \".env\", quiet: true });\n // stdout is the JSON-RPC transport channel — redirect console.log to stderr\n console.log = (...args: unknown[]) => console.error(\"[LOG]\", ...args);\n\n const { StdioServerTransport } =\n await import(\"@modelcontextprotocol/sdk/server/stdio.js\");\n const { createHiveMcpServer, SERVER_NAME, SERVER_VERSION } =\n await import(\"../mcpServer.js\");\n\n const transport = new StdioServerTransport();\n const mcpServer = createHiveMcpServer({ kind: \"root\" });\n const server = mcpServer.getServer();\n\n let isShuttingDown = false;\n const shutdown = async () => {\n if (isShuttingDown) return;\n isShuttingDown = true;\n const forceTimer = setTimeout(() => process.exit(1), 3_000);\n forceTimer.unref();\n try {\n await server.close();\n } catch {\n // swallow — exiting anyway\n }\n process.exit(0);\n };\n\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n process.stdin.on(\"end\", shutdown);\n\n await server.connect(transport);\n console.error(\n `Hive MCP stdio server connected (${SERVER_NAME} v${SERVER_VERSION})`,\n );\n}\n\nexport async function startHttp(port: number, envFile?: string): Promise<void> {\n dotenv.config({ path: envFile || \".env\", quiet: true });\n process.env.PORT = String(port);\n const { startHttpServer } = await import(\"../server.js\");\n await startHttpServer();\n}\n"],"mappings":";;;;AAAA,OAAO,YAAY;AAEnB,eAAsB,WAAW,SAAiC;AAChE,SAAO,OAAO,EAAE,MAAM,WAAW,QAAQ,OAAO,KAAK,CAAC;AAEtD,UAAQ,MAAM,IAAI,SAAoB,QAAQ,MAAM,SAAS,GAAG,IAAI;AAEpE,QAAM,EAAE,qBAAqB,IAC3B,MAAM,OAAO,2CAA2C;AAC1D,QAAM,EAAE,qBAAqB,aAAa,eAAe,IACvD,MAAM,OAAO,yBAAiB;AAEhC,QAAM,YAAY,IAAI,qBAAqB;AAC3C,QAAM,YAAY,oBAAoB,EAAE,MAAM,OAAO,CAAC;AACtD,QAAM,SAAS,UAAU,UAAU;AAEnC,MAAI,iBAAiB;AACrB,QAAM,WAAW,YAAY;AAC3B,QAAI,eAAgB;AACpB,qBAAiB;AACjB,UAAM,aAAa,WAAW,MAAM,QAAQ,KAAK,CAAC,GAAG,GAAK;AAC1D,eAAW,MAAM;AACjB,QAAI;AACF,YAAM,OAAO,MAAM;AAAA,IACrB,QAAQ;AAAA,IAER;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,UAAQ,GAAG,UAAU,QAAQ;AAC7B,UAAQ,GAAG,WAAW,QAAQ;AAC9B,UAAQ,MAAM,GAAG,OAAO,QAAQ;AAEhC,QAAM,OAAO,QAAQ,SAAS;AAC9B,UAAQ;AAAA,IACN,oCAAoC,WAAW,KAAK,cAAc;AAAA,EACpE;AACF;AAEA,eAAsB,UAAU,MAAc,SAAiC;AAC7E,SAAO,OAAO,EAAE,MAAM,WAAW,QAAQ,OAAO,KAAK,CAAC;AACtD,UAAQ,IAAI,OAAO,OAAO,IAAI;AAC9B,QAAM,EAAE,gBAAgB,IAAI,MAAM,OAAO,aAAc;AACvD,QAAM,gBAAgB;AACxB;","names":[]}