hive-intelligence 1.1.3 → 1.3.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.
Files changed (174) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +315 -85
  3. package/agent-skills/.claude-plugin/plugin.json +10 -4
  4. package/agent-skills/.mcp.json +8 -0
  5. package/agent-skills/AGENTS.md +37 -0
  6. package/agent-skills/README.md +28 -23
  7. package/agent-skills/SKILL.md +40 -10
  8. package/agent-skills/evals/trigger-queries.json +270 -0
  9. package/agent-skills/package.json +4 -4
  10. package/agent-skills/packs/hive-build/SKILL.md +54 -25
  11. package/agent-skills/packs/hive-build/evals/evals.json +16 -3
  12. package/agent-skills/packs/hive-build/evals/triggers.json +50 -0
  13. package/agent-skills/packs/hive-build-onboarding/SKILL.md +27 -34
  14. package/agent-skills/packs/hive-build-onboarding/evals/evals.json +1 -1
  15. package/agent-skills/packs/hive-build-onboarding/evals/triggers.json +50 -0
  16. package/agent-skills/packs/hive-cli/SKILL.md +33 -35
  17. package/agent-skills/packs/hive-cli/evals/evals.json +1 -1
  18. package/agent-skills/packs/hive-cli/evals/triggers.json +50 -0
  19. package/agent-skills/packs/hive-defi-research/SKILL.md +105 -19
  20. package/agent-skills/packs/hive-defi-research/evals/evals.json +6 -3
  21. package/agent-skills/packs/hive-defi-research/evals/triggers.json +50 -0
  22. package/agent-skills/packs/hive-dex-pool-analysis/SKILL.md +106 -16
  23. package/agent-skills/packs/hive-dex-pool-analysis/evals/evals.json +5 -3
  24. package/agent-skills/packs/hive-dex-pool-analysis/evals/triggers.json +50 -0
  25. package/agent-skills/packs/hive-market-research/SKILL.md +130 -21
  26. package/agent-skills/packs/hive-market-research/evals/evals.json +15 -2
  27. package/agent-skills/packs/hive-market-research/evals/triggers.json +50 -0
  28. package/agent-skills/packs/hive-mcp/SKILL.md +98 -153
  29. package/agent-skills/packs/hive-mcp/evals/evals.json +4 -3
  30. package/agent-skills/packs/hive-mcp/evals/triggers.json +50 -0
  31. package/agent-skills/packs/hive-mcp/references/client-install-matrix.md +62 -35
  32. package/agent-skills/packs/hive-mcp/references/clients.md +154 -0
  33. package/agent-skills/packs/hive-network-infrastructure/SKILL.md +105 -20
  34. package/agent-skills/packs/hive-network-infrastructure/evals/evals.json +4 -2
  35. package/agent-skills/packs/hive-network-infrastructure/evals/triggers.json +50 -0
  36. package/agent-skills/packs/hive-nft-research/SKILL.md +105 -18
  37. package/agent-skills/packs/hive-nft-research/evals/evals.json +4 -2
  38. package/agent-skills/packs/hive-nft-research/evals/triggers.json +50 -0
  39. package/agent-skills/packs/hive-prediction-markets/SKILL.md +108 -21
  40. package/agent-skills/packs/hive-prediction-markets/evals/evals.json +4 -2
  41. package/agent-skills/packs/hive-prediction-markets/evals/triggers.json +50 -0
  42. package/agent-skills/packs/hive-query/SKILL.md +80 -33
  43. package/agent-skills/packs/hive-query/evals/evals.json +7 -5
  44. package/agent-skills/packs/hive-query/evals/triggers.json +50 -0
  45. package/agent-skills/packs/hive-query/references/root-mcp-workflow.md +39 -18
  46. package/agent-skills/packs/hive-security-risk/SKILL.md +110 -19
  47. package/agent-skills/packs/hive-security-risk/evals/evals.json +4 -2
  48. package/agent-skills/packs/hive-security-risk/evals/triggers.json +50 -0
  49. package/agent-skills/packs/hive-solana-analysis/SKILL.md +115 -19
  50. package/agent-skills/packs/hive-solana-analysis/evals/evals.json +4 -2
  51. package/agent-skills/packs/hive-solana-analysis/evals/triggers.json +50 -0
  52. package/agent-skills/packs/hive-stateful-monitoring/SKILL.md +120 -0
  53. package/agent-skills/packs/hive-stateful-monitoring/evals/evals.json +54 -0
  54. package/agent-skills/packs/hive-stateful-monitoring/evals/triggers.json +50 -0
  55. package/agent-skills/packs/hive-stateful-monitoring/references/b2b-subject-context.md +53 -0
  56. package/agent-skills/packs/hive-token-diligence/SKILL.md +119 -21
  57. package/agent-skills/packs/hive-token-diligence/evals/evals.json +6 -4
  58. package/agent-skills/packs/hive-token-diligence/evals/triggers.json +50 -0
  59. package/agent-skills/packs/hive-tool-discovery/SKILL.md +48 -19
  60. package/agent-skills/packs/hive-tool-discovery/evals/evals.json +17 -3
  61. package/agent-skills/packs/hive-tool-discovery/evals/triggers.json +50 -0
  62. package/agent-skills/packs/hive-tool-discovery/references/discovery-surfaces.md +31 -6
  63. package/agent-skills/packs/hive-wallet-investigation/SKILL.md +111 -18
  64. package/agent-skills/packs/hive-wallet-investigation/evals/evals.json +5 -3
  65. package/agent-skills/packs/hive-wallet-investigation/evals/triggers.json +50 -0
  66. package/agent-skills/references/agents-routing.md +19 -7
  67. package/agent-skills/scripts/validate-agent-skills-package.mjs +116 -18
  68. package/agent-skills/skills.sh.json +3 -2
  69. package/bin/hive-mcp.js +5 -5
  70. package/build/{alias-CZ3DEYHF.js → alias-BKAVOYQV.js} +2 -3
  71. package/build/{api-client-I23XLSHU.js → api-client-FTVDFW5V.js} +4 -4
  72. package/build/{auth-KKINNBXT.js → auth-EZFJ5RYB.js} +3 -4
  73. package/build/{browser-auth-EEFGRHWY.js → browser-auth-OJSUNFBI.js} +2 -3
  74. package/build/{cache-EGNMENNA.js → cache-TBDQ7QBU.js} +2 -3
  75. package/build/{chunk-V77LO4RO.js → chunk-6PC3HUAK.js} +10 -4
  76. package/build/{chunk-XYBEFFZ3.js → chunk-725R3KLJ.js} +26 -4
  77. package/build/{chunk-PGBVNMNZ.js → chunk-7GD2MFYI.js} +57 -7
  78. package/build/{chunk-IDZD2NVG.js → chunk-AEU43ACS.js} +33 -10
  79. package/build/chunk-EPF36Q3Z.js +71 -0
  80. package/build/chunk-I5Z6FZRL.js +178 -0
  81. package/build/{chunk-KBVPIZS4.js → chunk-ILVPOLA7.js} +12 -4
  82. package/build/{chunk-B6G222LS.js → chunk-L326MQZP.js} +22 -6
  83. package/build/{chunk-QNCI4DEB.js → chunk-M6REON2I.js} +35 -21
  84. package/build/chunk-N32UIHBU.js +125 -0
  85. package/build/{chunk-IZTN7WFH.js → chunk-Q7VBYLX7.js} +12 -3
  86. package/build/chunk-QDZ7MAVN.js +447 -0
  87. package/build/{chunk-KGYBTXIN.js → chunk-R6YZTFQL.js} +2 -1
  88. package/build/{chunk-DYJBTKNR.js → chunk-RU6QOFHH.js} +9 -10
  89. package/build/{chunk-RKICZ6DZ.js → chunk-RUHO24SX.js} +16 -10
  90. package/build/{chunk-MPIUUE3T.js → chunk-TNQ7GJ6Q.js} +0 -60
  91. package/build/{chunk-2X3U4DFK.js → chunk-W2QL7LYI.js} +43586 -21498
  92. package/build/chunk-ZXKFJQDE.js +20 -0
  93. package/build/cli.js +3342 -3410
  94. package/build/{completion-BELZL7ND.js → completion-7KBW243H.js} +4 -5
  95. package/build/{config-TDX4VUGW.js → config-KAEUX6RM.js} +23 -4
  96. package/build/{config-dir-V43W2WIA.js → config-dir-5IH7MOOT.js} +2 -3
  97. package/build/{doctor-5K5UWHNX.js → doctor-ORDOCGLM.js} +34 -10
  98. package/build/{errors-E6MVUBNA.js → errors-HGHUF575.js} +2 -3
  99. package/build/{format-TSFSI2K7.js → format-H7FOQSYY.js} +1 -2
  100. package/build/{init-YQ5NBICF.js → init-UCTCUYFA.js} +52 -9
  101. package/build/init-all-BVWW3JVK.js +408 -0
  102. package/build/mcpServer-RUEOTTF7.js +34 -0
  103. package/build/monitor-worker.js +1396 -0
  104. package/build/{namespace-PVHBFDW2.js → namespace-L5DGCY7K.js} +2 -3
  105. package/build/{open-YUIJP37F.js → open-V2RNA3QT.js} +2 -3
  106. package/build/{output-IYJBFCYK.js → output-ITGLBKIG.js} +2 -3
  107. package/build/release.json +8 -0
  108. package/build/{serve-KWNJK6EY.js → serve-DKLR2WQH.js} +9 -4
  109. package/build/server.js +5399 -2945
  110. package/build/{setup-YTUKMPNP.js → setup-PTYFMTK5.js} +60 -56
  111. package/build/stdio.js +10 -8
  112. package/build/{telemetry-5IPRKZBL.js → telemetry-HPLDYR7U.js} +5 -4
  113. package/build/{tools-PJHWFCAG.js → tools-I7GLWTV6.js} +15 -15
  114. package/build/{uninstall-HWXEIP6K.js → uninstall-SAOIPL6K.js} +19 -11
  115. package/build/update-check-IEXPOYYR.js +18 -0
  116. package/build/upgrade-J4HIGCKE.js +171 -0
  117. package/build/version-Z4HJL4VV.js +16 -0
  118. package/build/{watch-KZ5EDZK3.js → watch-WVR4CGCD.js} +8 -7
  119. package/package.json +82 -41
  120. package/agent-skills/packs/hive-defi-research/references/workflow.md +0 -41
  121. package/agent-skills/packs/hive-dex-pool-analysis/references/workflow.md +0 -42
  122. package/agent-skills/packs/hive-market-research/references/workflow.md +0 -47
  123. package/agent-skills/packs/hive-network-infrastructure/references/workflow.md +0 -41
  124. package/agent-skills/packs/hive-nft-research/references/workflow.md +0 -42
  125. package/agent-skills/packs/hive-prediction-markets/references/workflow.md +0 -42
  126. package/agent-skills/packs/hive-security-risk/references/workflow.md +0 -46
  127. package/agent-skills/packs/hive-solana-analysis/references/workflow.md +0 -42
  128. package/agent-skills/packs/hive-token-diligence/references/workflow.md +0 -45
  129. package/agent-skills/packs/hive-wallet-investigation/references/workflow.md +0 -45
  130. package/build/alias-CZ3DEYHF.js.map +0 -1
  131. package/build/api-client-I23XLSHU.js.map +0 -1
  132. package/build/auth-KKINNBXT.js.map +0 -1
  133. package/build/browser-auth-EEFGRHWY.js.map +0 -1
  134. package/build/cache-EGNMENNA.js.map +0 -1
  135. package/build/chunk-2MYMHMBF.js +0 -340
  136. package/build/chunk-2MYMHMBF.js.map +0 -1
  137. package/build/chunk-2X3U4DFK.js.map +0 -1
  138. package/build/chunk-B6G222LS.js.map +0 -1
  139. package/build/chunk-DYJBTKNR.js.map +0 -1
  140. package/build/chunk-IDZD2NVG.js.map +0 -1
  141. package/build/chunk-IZTN7WFH.js.map +0 -1
  142. package/build/chunk-KBVPIZS4.js.map +0 -1
  143. package/build/chunk-KGYBTXIN.js.map +0 -1
  144. package/build/chunk-MPIUUE3T.js.map +0 -1
  145. package/build/chunk-PGBVNMNZ.js.map +0 -1
  146. package/build/chunk-QNCI4DEB.js.map +0 -1
  147. package/build/chunk-RKICZ6DZ.js.map +0 -1
  148. package/build/chunk-UKHZIVDT.js +0 -44
  149. package/build/chunk-UKHZIVDT.js.map +0 -1
  150. package/build/chunk-V77LO4RO.js.map +0 -1
  151. package/build/chunk-XYBEFFZ3.js.map +0 -1
  152. package/build/cli.js.map +0 -1
  153. package/build/completion-BELZL7ND.js.map +0 -1
  154. package/build/config-TDX4VUGW.js.map +0 -1
  155. package/build/config-dir-V43W2WIA.js.map +0 -1
  156. package/build/doctor-5K5UWHNX.js.map +0 -1
  157. package/build/errors-E6MVUBNA.js.map +0 -1
  158. package/build/format-TSFSI2K7.js.map +0 -1
  159. package/build/init-YQ5NBICF.js.map +0 -1
  160. package/build/init-all-6OWEQALB.js +0 -274
  161. package/build/init-all-6OWEQALB.js.map +0 -1
  162. package/build/mcpServer-AEX3RQ4U.js +0 -20
  163. package/build/mcpServer-AEX3RQ4U.js.map +0 -1
  164. package/build/namespace-PVHBFDW2.js.map +0 -1
  165. package/build/open-YUIJP37F.js.map +0 -1
  166. package/build/output-IYJBFCYK.js.map +0 -1
  167. package/build/serve-KWNJK6EY.js.map +0 -1
  168. package/build/server.js.map +0 -1
  169. package/build/setup-YTUKMPNP.js.map +0 -1
  170. package/build/stdio.js.map +0 -1
  171. package/build/telemetry-5IPRKZBL.js.map +0 -1
  172. package/build/tools-PJHWFCAG.js.map +0 -1
  173. package/build/uninstall-HWXEIP6K.js.map +0 -1
  174. package/build/watch-KZ5EDZK3.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2026 Hive Intelligence. All rights reserved.
2
+
3
+ This software, including its source code and compiled artifacts, is the
4
+ proprietary and confidential property of Hive Intelligence. It is published
5
+ solely to enable authorized installation and use of the Hive command-line
6
+ interface and Hive MCP server.
7
+
8
+ No license or right is granted to any person to copy, modify, merge, publish,
9
+ redistribute, sublicense, sell, reverse engineer, decompile, or create
10
+ derivative works of this software, in whole or in part, in source or compiled
11
+ form, except as expressly authorized in writing by Hive Intelligence.
12
+
13
+ Bundled third-party components retain their own licenses. The Hive agent skills
14
+ distributed under agent-skills/ are licensed separately under the MIT License
15
+ (see agent-skills/LICENSE).
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -1,66 +1,143 @@
1
1
  # Hive Intelligence
2
2
 
3
- Crypto intelligence for AI agents, shipped as an MCP server and CLI.
3
+ [![npm version](https://img.shields.io/npm/v/hive-intelligence.svg)](https://www.npmjs.com/package/hive-intelligence)
4
+ [![Node.js 22.12+](https://img.shields.io/badge/node-%3E%3D22.12-339933.svg)](https://nodejs.org/)
5
+ [![License: Proprietary](https://img.shields.io/badge/license-Proprietary-red.svg)](./LICENSE)
6
+ [![MCP compatible](https://img.shields.io/badge/MCP-compatible-111827.svg)](https://modelcontextprotocol.io/)
4
7
 
5
- `hive-intelligence` gives Claude Code, Cursor, VS Code, ChatGPT Desktop,
6
- Gemini CLI, Codex, and custom agents one way to discover and call live crypto
7
- data. Agents get a compact MCP surface, schema lookup, bounded execution,
8
- provider provenance, and runtime status instead of a wall of raw endpoints.
8
+ One connection for evidence-backed crypto due diligence. Every Hive-backed
9
+ answer carries sources, freshness, and a runtime receipt.
10
+
11
+ Hive gives Claude Code, Cursor, VS Code, OpenAI Responses API, Gemini CLI,
12
+ Codex, and supported custom agents one compact way to discover and call live
13
+ crypto data. Agents route through task toolsets, inspect schemas before
14
+ execution, keep calls bounded, and return provider provenance plus runtime
15
+ status instead of browsing a wall of raw endpoints. Hive is shipped as a
16
+ hosted MCP server, local `stdio` runtime, CLI, and REST API.
9
17
 
10
18
  ```bash
11
- npx -y -p hive-intelligence@latest hive init --all --browser
19
+ npx -y -p hive-intelligence@latest hive init --all
12
20
  ```
13
21
 
14
- Use the hosted MCP when you want Hive to run the server, auth, rate limits, and
15
- provider infrastructure. Use local `stdio` when you want a desktop/self-hosted
16
- MCP process or provider-key experiments.
22
+ Use the hosted MCP when you want Hive to run auth, rate limits, provider
23
+ infrastructure, and runtime status. Use local `stdio` when you want desktop
24
+ client setup, self-hosting, or provider-key experiments.
17
25
 
18
26
  ## What You Get
19
27
 
20
- - 351 provider tools across market data, wallets, DeFi, DEX, NFTs, token and
21
- contract data, security risk, network infrastructure, search, Solana, and
22
- prediction markets.
23
- - A compact root MCP endpoint with 13 discovery and execution tools, so agents
24
- can route before they call.
28
+ - Evidence-backed workflows for token diligence, wallet investigation,
29
+ security checks, market research, DeFi, DEX pools, NFTs, Solana, prediction
30
+ markets, and durable monitoring.
31
+ - A compact eight-tool root MCP workflow surface three direct hero tools
32
+ (`get_token_price`, `check_token_safety`, `get_wallet_portfolio`) plus the
33
+ five-tool discovery loop, so agents can route before they call.
25
34
  - Task toolsets for market research, token diligence, wallet investigation,
26
35
  security checks, DEX pool analysis, DeFi research, NFT research, Solana
27
- analysis, network infrastructure, and prediction markets.
28
- - A CLI for auth, client setup, tool discovery, schema inspection, direct tool
29
- calls, diagnostics, aliases, and polling.
36
+ analysis, network infrastructure, prediction markets, and stateful monitoring.
37
+ - CLI commands for auth, client setup, tool discovery, schema inspection,
38
+ direct execution, diagnostics, aliases, polling, and config generation.
30
39
  - Runtime resources for providers, categories, full tool catalog, task
31
40
  toolsets, canaries, skills, and status metadata.
32
- - Shipped agent skills that teach assistants how to use Hive through discovery,
33
- schema lookup, bounded execution, and provenance-aware reporting.
41
+ - Bundled agent skills that teach assistants the right Hive workflow:
42
+ discovery -> schema lookup -> bounded execution -> evidence receipt.
43
+ - A broad provider catalog remains available behind discovery for agents that
44
+ need a long-tail endpoint. The current catalog contains 615 tools, but that
45
+ coverage is not the primary product contract.
34
46
 
35
- ## Install Fast
47
+ ## Quickstart
36
48
 
37
49
  Requirements:
38
50
 
39
- - Node.js 20+
51
+ - Node.js 22.12+ (Node.js 24 LTS recommended)
40
52
  - npm
41
- - A Hive API key for the hosted MCP or hosted REST API
53
+ - Browser authorization for interactive hosted MCP after OAuth activation, or
54
+ a Hive API key for direct CLI, REST, and headless agents
42
55
 
43
- Create a key in the Hive dashboard:
56
+ For the fastest proof before setup, run the fixed, read-only public demo. It
57
+ requires no account and returns the same source/freshness/runtime-receipt shape
58
+ used by authenticated calls:
59
+
60
+ ```text
61
+ https://www.hiveintelligence.xyz/playground
62
+ ```
63
+
64
+ For direct CLI or headless REST access, create a key:
44
65
 
45
66
  ```text
46
67
  https://www.hiveintelligence.xyz/login?next=/dashboard/keys
47
68
  ```
48
69
 
49
- Then configure your client:
70
+ After hosted OAuth activation, configure OAuth-capable AI clients without
71
+ putting a secret in their config:
72
+
73
+ ```bash
74
+ npx -y -p hive-intelligence@latest hive init --all
75
+ ```
76
+
77
+ For automation, exit code `0` means every detected programmable client,
78
+ requested skill install, and enabled readiness check completed; partial setup
79
+ returns non-zero and is detailed in `--json` output.
80
+
81
+ For direct CLI or headless REST use, sign in separately:
50
82
 
51
83
  ```bash
52
84
  npx -y -p hive-intelligence@latest hive auth login
53
- npx -y -p hive-intelligence@latest hive config claude-code
54
85
  ```
55
86
 
56
- For one-command setup across detected local clients:
87
+ Make a first successful call:
57
88
 
58
89
  ```bash
59
- npx -y -p hive-intelligence@latest hive init --all --browser
90
+ npx -y -p hive-intelligence@latest hive market price --ids bitcoin --vs usd --json
60
91
  ```
61
92
 
93
+ Expected output shape:
94
+
95
+ ```json
96
+ {
97
+ "ok": true,
98
+ "data": {
99
+ "bitcoin": {
100
+ "usd": 0
101
+ }
102
+ },
103
+ "meta": {
104
+ "provider": "CoinGecko",
105
+ "runtime_status": "ok",
106
+ "fetched_at": "2026-07-11T12:00:00.000Z",
107
+ "observed_at": "2026-07-11T11:59:59.900Z",
108
+ "cache_age_ms": 100,
109
+ "source": "live",
110
+ "receipt_id": "00000000-0000-4000-8000-000000000000",
111
+ "receipt_version": "1.0",
112
+ "server_version": "1.3.0",
113
+ "build_sha": null,
114
+ "digest_algorithm": "sha256",
115
+ "input_digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
116
+ "result_digest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
117
+ "duration_ms": 0
118
+ }
119
+ }
120
+ ```
121
+
122
+ Use `--json` for scripts and agents. Use `--pretty` for human-readable output.
123
+
62
124
  ## Connect Hosted MCP
63
125
 
126
+ After hosted OAuth activation, use secret-free config prefill for OAuth-capable
127
+ clients. Review the public URL in the client, approve it, and complete Hive
128
+ authorization in the browser. These links never contain an API key:
129
+
130
+ Use these native OAuth paths only after the hosted protected-resource metadata
131
+ reports OAuth enabled. Until that deployment gate is open, use the API-key
132
+ fallback from a trusted client/backend; do not paste a key into an install URL.
133
+
134
+ [![Cursor setup](https://img.shields.io/badge/Cursor-Setup-000000.svg?logo=cursor)](https://www.hiveintelligence.xyz/install/cursor)
135
+ [![VS Code setup](https://img.shields.io/badge/VS_Code-Setup-0098FF?logo=visualstudiocode&logoColor=white)](https://www.hiveintelligence.xyz/install/vs-code)
136
+
137
+ The setup pages check the live OAuth and release contract before exposing a
138
+ native install action, so a stale deployment cannot masquerade as a successful
139
+ one-click install.
140
+
64
141
  Hosted MCP URL:
65
142
 
66
143
  ```text
@@ -70,28 +147,59 @@ https://mcp.hiveintelligence.xyz/mcp
70
147
  Claude Code:
71
148
 
72
149
  ```bash
73
- claude mcp add --transport http --header "Authorization: Bearer YOUR_HIVE_API_KEY" hive https://mcp.hiveintelligence.xyz/mcp
150
+ claude mcp add --transport http --scope user hive https://mcp.hiveintelligence.xyz/mcp
151
+ ```
152
+
153
+ OpenAI Codex:
154
+
155
+ ```bash
156
+ codex mcp add hive --url https://mcp.hiveintelligence.xyz/mcp
157
+ codex mcp login hive
74
158
  ```
75
159
 
76
- Generic MCP JSON for clients that support remote HTTP and custom headers:
160
+ Generic OAuth-capable Streamable HTTP config:
77
161
 
78
162
  ```json
79
163
  {
80
164
  "mcpServers": {
81
165
  "hive": {
82
- "url": "https://mcp.hiveintelligence.xyz/mcp",
83
- "headers": {
84
- "Authorization": "Bearer YOUR_HIVE_API_KEY"
85
- }
166
+ "url": "https://mcp.hiveintelligence.xyz/mcp"
86
167
  }
87
168
  }
88
169
  }
89
170
  ```
90
171
 
91
- Header-based API key auth works for MCP clients that support custom headers,
92
- including Claude Code, Cursor, VS Code, Windsurf, Gemini CLI, Codex, and
93
- ChatGPT Desktop. Claude.ai custom connectors and directory submissions require
94
- OAuth-compatible auth; Hive does not implement OAuth/CIMD yet.
172
+ For headless automation that cannot open a browser, add
173
+ `Authorization: Bearer $HIVE_API_KEY` from secret storage instead.
174
+
175
+ ## Client Compatibility
176
+
177
+ | Client | Hosted HTTP MCP | Hosted auth | Local stdio | Recommended setup |
178
+ | ------------------------------------- | ---------------- | ----------------------------------- | ----------- | ---------------------------------------------------------------------------- |
179
+ | Claude Code | Yes | OAuth or API-key fallback | Yes | `claude mcp add --transport http --scope user hive https://mcp.hiveintelligence.xyz/mcp` |
180
+ | Cursor | Yes | OAuth or API-key fallback | Yes | Secret-free config prefill above |
181
+ | VS Code | Yes | OAuth or API-key fallback | Yes | Secret-free config prefill above |
182
+ | Windsurf / Devin Desktop | Yes | OAuth or API-key fallback | Yes | Add the hosted URL in MCP settings |
183
+ | Gemini CLI | Yes | OAuth or API-key fallback | Yes | `gemini mcp add hive https://mcp.hiveintelligence.xyz/mcp --transport http --scope user` |
184
+ | Codex | Yes | OAuth or API-key fallback | Yes | `codex mcp add hive --url https://mcp.hiveintelligence.xyz/mcp`, then `codex mcp login hive` |
185
+ | OpenAI Responses API | Yes | API-key authorization token | No | Use a server-side remote MCP `tools` entry |
186
+ | ChatGPT custom apps | Deployment-gated | OAuth 2.1 | No | Direct after hosted OAuth + consent activation; use Responses API until then |
187
+ | Claude custom connectors/directory | Deployment-gated | OAuth 2.1 | No | Direct after hosted OAuth + consent activation |
188
+ | Grok custom connectors | Deployment-gated | OAuth 2.1 | No | Add the hosted URL at `grok.com/connectors` |
189
+
190
+ Header-based API key auth works today for clients or API surfaces that support
191
+ custom headers or authorization tokens. The server also includes a fail-closed
192
+ OAuth 2.1 foundation with PKCE, protected-resource discovery, CIMD/DCR, rotating
193
+ refresh tokens, and revocation. It is disabled until the hosted deployment and
194
+ the Hive consent page are configured. See [MCP OAuth 2.1 operations](docs/OAUTH.md).
195
+
196
+ Codex versions that do not show `--url` in `codex mcp add --help` must be
197
+ updated before the remote-MCP command will work. Run `codex update` when the
198
+ installed release supports self-update; otherwise update it through the
199
+ installer or package manager you originally used. Public OpenAI/Codex and Cursor
200
+ plugin artifacts are staged in the public SDK, but marketplace installs are not
201
+ advertised as live until external approval and clean-profile verification. See
202
+ [the distribution runbook](docs/DISTRIBUTION.md).
95
203
 
96
204
  ## Run Local stdio MCP
97
205
 
@@ -118,6 +226,24 @@ or your own upstream provider keys.
118
226
  Running `hive` with no subcommand starts the `stdio` MCP server. `hive-mcp`
119
227
  remains available as a backward-compatible binary alias.
120
228
 
229
+ ## Staying Current
230
+
231
+ The hosted MCP (`https://mcp.hiveintelligence.xyz/mcp`) is managed by Hive.
232
+ Local `stdio` installs are pinned to whatever your client last fetched, so:
233
+
234
+ - Keep `hive-intelligence@latest` in your client config (as shown above) so each
235
+ host restart re-resolves the newest version.
236
+ - Run `hive upgrade` to update a global install and clear the npx cache, then
237
+ restart your MCP client to load it:
238
+
239
+ ```bash
240
+ npx -y -p hive-intelligence@latest hive upgrade
241
+ ```
242
+
243
+ `hive` checks npm for newer versions once a day and surfaces the result through
244
+ `hive doctor` and the MCP server instructions, so your agent can prompt you when
245
+ an update is available. Set `HIVE_NO_UPDATE_CHECK=1` to disable the check.
246
+
121
247
  ## Use The CLI
122
248
 
123
249
  Search the catalog:
@@ -145,28 +271,60 @@ npx -y -p hive-intelligence@latest hive doctor
145
271
  npx -y -p hive-intelligence@latest hive status
146
272
  ```
147
273
 
148
- Useful setup commands:
274
+ Generate client config:
149
275
 
150
276
  ```bash
151
- npx -y -p hive-intelligence@latest hive config claude-desktop
277
+ npx -y -p hive-intelligence@latest hive config claude-code
278
+ npx -y -p hive-intelligence@latest hive config codex
152
279
  npx -y -p hive-intelligence@latest hive config cursor
153
280
  npx -y -p hive-intelligence@latest hive config vscode
281
+ npx -y -p hive-intelligence@latest hive config grok
154
282
  ```
155
283
 
156
- Use `--json` for scripts and agents. Use `--pretty` for human-readable output.
157
-
158
284
  ## How Agents Should Use Hive
159
285
 
160
286
  Hive is designed for retrieval-led agent work:
161
287
 
162
- 1. Discover the task surface with `search_tools`, `hive://toolsets`, or
163
- `hive tools search`.
164
- 2. Inspect exact parameters with `get_api_endpoint_schema` or
165
- `hive tools info`.
166
- 3. Execute through `invoke_api_endpoint`, category tools, REST, or the CLI.
167
- 4. Preserve provider, freshness, cache, `_hive`, `meta`, and runtime status in
168
- the final answer.
169
- 5. Keep reads bounded with `limit`, `page`, `per_page`, or `offset`.
288
+ 1. Call `search_tools` or read the compact `hive://toolsets` index. Search
289
+ returns at most three compact workflow matches by default; use its cursors
290
+ instead of loading the entire catalog.
291
+ 2. Load one exact workflow with `hive://toolsets/{id}` or select the compact
292
+ matching `routes[]` entry returned by `search_tools`. Choose the route whose
293
+ trigger/question matches the user's decision, preserve its `route_id`, and
294
+ follow its ordered primary calls, per-call fallback conditions, four-call
295
+ budget, and stop condition. The broad `coverageCatalog` is capability
296
+ coverage, not an execution plan.
297
+ 3. Inspect exact parameters and the endpoint's `operation` for every selected
298
+ route step with `get_api_endpoint_schema` or `hive tools info`.
299
+ 4. Execute reads through `invoke_api_endpoint`. For a Hive-native state change,
300
+ obtain explicit user approval and use `invoke_stateful_endpoint`; clients
301
+ must not auto-approve that conservatively destructive router.
302
+ 5. Copy each material call's server-returned `_hive` block into the workflow
303
+ receipt, map each material `claims[]` entry to exact receipt IDs, account
304
+ for each canonical `coverage[]` phase, include the selected `route_id`, then
305
+ call `validate_task_result` before presenting a structured result.
306
+ Validation checks route membership and order, conditional fallback use,
307
+ call budget, structure, and consistency; it does not make an invented
308
+ receipt authentic.
309
+ 6. Stop when the decision is answerable, a material gap cannot be resolved, or
310
+ the workflow budget is reached. Report partial evidence instead of silently
311
+ expanding scope.
312
+
313
+ `search_tools`, `get_api_endpoint_schema`, `validate_task_result`, MCP
314
+ `tools/list`, and resource reads cost zero Hive credits.
315
+ Material endpoint executions cost one credit each.
316
+
317
+ Freshness has two layers. `_hive.observed_at` is when Hive first observed the
318
+ response, or the original cache-population time on a cache hit;
319
+ `cache_age_ms: 0` means newly retrieved by Hive, not necessarily that the
320
+ upstream datum is current. Use a provider timestamp, block, slot, transaction,
321
+ or candle close for source recency. If the provider supplies none, report
322
+ upstream recency as unknown.
323
+
324
+ The runtime receipt also includes server/build version plus SHA-256
325
+ `input_digest` and `result_digest` self-checks. The result check covers the
326
+ canonical normalized returned payload with the top-level `_hive` block
327
+ removed. They are not signatures and do not imply a retained receipt lookup.
170
328
 
171
329
  This flow lets an agent answer questions like:
172
330
 
@@ -175,6 +333,7 @@ This flow lets an agent answer questions like:
175
333
  - "Compare Aave and Curve by TVL, fees, chains, and risk."
176
334
  - "Find active prediction markets for the next Fed decision."
177
335
  - "Show the best pools for this token and explain liquidity risk."
336
+ - "Remember this wallet monitor and report when important activity changes."
178
337
 
179
338
  ## MCP Contract
180
339
 
@@ -193,9 +352,72 @@ http://localhost:8080/mcp
193
352
  Root MCP tools:
194
353
 
195
354
  - `search_tools`
196
- - 10 category listing tools, one per crypto domain
197
355
  - `get_api_endpoint_schema`
198
- - `invoke_api_endpoint`
356
+ - `invoke_api_endpoint` for read-only endpoints
357
+ - `invoke_stateful_endpoint` for explicitly approved Hive state changes
358
+ - `validate_task_result` for structural workflow-output validation
359
+
360
+ ## Stateful Monitoring And B2B State
361
+
362
+ Hive's stateful monitor tools let authenticated agents store durable crypto
363
+ intelligence intent in Hive instead of relying on chat memory. Direct users get
364
+ one default state subject per Hive account. B2B partners can use one Hive API
365
+ key from a trusted backend adapter while isolating downstream customers by
366
+ signed tenant/end-user subject headers.
367
+
368
+ The stateful surface includes monitor CRUD, stored run reads, observations,
369
+ alerts, latest snapshots, memory facts, generated reports, and B2B subject admin
370
+ tools. The scheduled worker runs wallet, token, protocol, market,
371
+ prediction-market, watchlist digest, token discovery risk, and risk watch
372
+ workflows. Inspect the exact endpoint schema first. Reads use
373
+ `invoke_api_endpoint`; creates, updates, archives, remembers, forgets, and alert
374
+ status changes require explicit user approval and use
375
+ `invoke_stateful_endpoint`. See
376
+ [`docs/DOCUMENTATION.md`](docs/DOCUMENTATION.md#stateful-monitoring) for the
377
+ full monitor, subject-signing, worker, table, and smoke-test contract.
378
+ The same 10-minute worker also persists current-build provider, MCP protocol,
379
+ task, and workflow canary evidence in Redis for `/api/health` and `/status`;
380
+ missing or stale evidence remains `unknown`.
381
+ For partner products, use
382
+ [`docs/B2B_PARTNER_ADOPTION.md`](docs/B2B_PARTNER_ADOPTION.md) as the
383
+ implementation checklist.
384
+
385
+ TypeScript B2B adapters should use `hive-mcp-client/b2b` instead
386
+ of hand-building subject headers or raw monitor calls. If npm returns 404,
387
+ publish the client package with
388
+ [`docs/MCP_CLIENT_RELEASE.md`](docs/MCP_CLIENT_RELEASE.md) before partners
389
+ depend on it:
390
+
391
+ ```ts
392
+ import { createHiveB2BAdapter } from "hive-mcp-client/b2b";
393
+
394
+ const hive = await createHiveB2BAdapter({
395
+ apiKey: process.env.HIVE_API_KEY!,
396
+ subjectSigningSecret: process.env.HIVE_SUBJECT_SIGNING_SECRET!,
397
+ });
398
+
399
+ await hive.createWatchlistDigestMonitor(
400
+ { tenantId: workspaceId, endUserId: userId },
401
+ {
402
+ name: "Daily portfolio brief",
403
+ target: { wallets, tokens },
404
+ cadence: "daily",
405
+ },
406
+ );
407
+ ```
408
+
409
+ Verify a B2B key and signed-subject isolation with:
410
+
411
+ ```bash
412
+ curl https://mcp.hiveintelligence.xyz/api/v1/b2b/readiness \
413
+ -H "Authorization: Bearer $HIVE_API_KEY"
414
+ ```
415
+
416
+ ```bash
417
+ HIVE_API_KEY="hive_live_..." \
418
+ HIVE_SUBJECT_SIGNING_SECRET="hive_subject_..." \
419
+ npm run smoke:b2b-partner
420
+ ```
199
421
 
200
422
  Discovery resources:
201
423
 
@@ -203,8 +425,10 @@ Discovery resources:
203
425
  - `hive://categories`
204
426
  - `hive://tools`
205
427
  - `hive://toolsets`
428
+ - `hive://toolsets/{id}` for one exact workflow, output schema, and execution policy
206
429
  - `hive://task-canaries`
207
430
  - `hive://skills`
431
+ - `hive://skills/{name}` for one complete procedural skill
208
432
  - `hive://status`
209
433
 
210
434
  Reusable prompts:
@@ -229,17 +453,20 @@ tool lists:
229
453
 
230
454
  ## Providers
231
455
 
232
- | Provider | Coverage | Env var |
233
- | --- | --- | --- |
234
- | Alchemy | EVM wallet, token, NFT, transfer, simulation, gas, and RPC data | `ALCHEMY_API_KEY` |
235
- | CoinGecko | Prices, OHLC, trending, news | `COINGECKO_PRO_API_KEY` |
236
- | DeFiLlama | TVL, yields, fees, bridges | Free |
237
- | CCXT | CEX data, funding rates, perpetuals | Free |
238
- | GoPlus | Token, wallet, and dApp security | `GOPLUS_APP_KEY` + `GOPLUS_APP_SECRET` |
239
- | Codex | DEX analytics and Polymarket prediction markets | `CODEX_API_KEY` |
240
- | Helius | Solana RPC, DAS, priority fees, wallet history | `HELIUS_API_KEY` |
241
- | Moralis | Wallet, token, NFT, PnL, DeFi positions | `MORALIS_API_KEY` |
242
- | Tenderly | EVM simulation, tracing, gas estimation | `TENDERLY_API_KEY` |
456
+ | Provider | Coverage | Env var |
457
+ | --------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
458
+ | Alchemy | EVM wallet, token, NFT, transfer, simulation, gas, Solana DAS/Photon, and RPC data | `ALCHEMY_API_KEY` |
459
+ | CoinGecko | Prices, OHLC, trending, news | Optional `COINGECKO_PRO_API_KEY` or `COINGECKO_DEMO_API_KEY` |
460
+ | DeFiLlama | TVL, yields, fees, bridges | Free |
461
+ | CCXT | CEX data, funding rates, perpetuals | Free |
462
+ | GoPlus | Token, wallet, NFT, approval, phishing, and dApp security | `GOPLUS_APP_KEY` or `GOPLUS_API_KEY`, plus `GOPLUS_APP_SECRET` |
463
+ | Codex | DEX analytics and Polymarket prediction markets | `CODEX_API_KEY` |
464
+ | Helius | Solana RPC, DAS, priority fees, wallet history | `HELIUS_API_KEY` |
465
+ | Moralis | Wallet, token, NFT, PnL, DeFi positions | `MORALIS_API_KEY` |
466
+ | Tenderly | EVM simulation, tracing, gas estimation, and read-only Node RPC | REST: `TENDERLY_API_KEY` + `TENDERLY_ACCOUNT_SLUG` + `TENDERLY_PROJECT_SLUG`; Node: `TENDERLY_NODE_ACCESS_KEY` or `TENDERLY_GATEWAY_ACCESS_KEY` |
467
+ | Hyperliquid | Full /info surface: perp/spot markets, order books, user state, vaults, staking, borrow/lend, HIP-4 outcome markets | Free |
468
+ | Open Data Fetch | Allowlisted, size-capped access to long-tail public crypto APIs | Free |
469
+ | FRED | US macro indicators (CPI, fed funds, Treasury curve, GDP, unemployment) — government-sourced series allowlist only | `FRED_API_KEY` (free from the St. Louis Fed) |
243
470
 
244
471
  Providers without configured keys remain discoverable and return classified
245
472
  runtime status such as `missing_key`, `plan_required`, `rate_limited`,
@@ -271,6 +498,17 @@ curl -X POST https://mcp.hiveintelligence.xyz/api/v1/execute \
271
498
  }'
272
499
  ```
273
500
 
501
+ ## Troubleshooting
502
+
503
+ | Symptom | What to check |
504
+ | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
505
+ | `API key required` | Run `hive auth login`, pass `--api-key`, or set the hosted MCP `Authorization: Bearer ...` header. |
506
+ | `Unsupported engine` or install failure | Use Node.js 22.12 or newer; Node.js 24 LTS is recommended. |
507
+ | Hosted MCP works in one client but not another | Confirm whether the client uses custom API-key headers or native OAuth. Native connectors require the hosted OAuth deployment and consent page to be enabled. |
508
+ | A provider tool returns `missing_key` | The tool is discoverable, but that provider needs an env var such as `ALCHEMY_API_KEY`, `HELIUS_API_KEY`, or `MORALIS_API_KEY`. |
509
+ | A provider returns `rate_limited`, `degraded`, or `failing` | Check `hive status`, `hive doctor`, or `hive://status` for runtime status and retry guidance. |
510
+ | `npx` install/cache errors | Retry with a clean cache: `NPM_CONFIG_CACHE=$(mktemp -d) npx -y -p hive-intelligence@latest hive --help`. |
511
+
274
512
  ## Develop Locally
275
513
 
276
514
  Install:
@@ -303,10 +541,6 @@ npm run verify:agent-skills
303
541
  npm run env:render:check
304
542
  ```
305
543
 
306
- Use focused checks while iterating. Run `npm run check` before releases and
307
- after changes to shared MCP behavior, auth, middleware, provider routing, task
308
- toolsets, generated metadata, or CLI setup paths.
309
-
310
544
  ## Package Contents
311
545
 
312
546
  The `hive-intelligence` npm package includes:
@@ -316,31 +550,27 @@ The `hive-intelligence` npm package includes:
316
550
  - Bundled Hive agent skills in `agent-skills/`.
317
551
  - Local `stdio` MCP runtime for desktop clients and self-hosting.
318
552
 
319
- ## Architecture Map
553
+ ## Contributor Context
554
+
555
+ Core implementation areas:
320
556
 
321
- - `src/mcpServer.ts` builds root/category MCP servers, tools, resources,
322
- prompts, and runtime instructions.
323
- - `src/server.ts` runs Express, Streamable HTTP MCP, REST routes, auth, rate
324
- limits, CORS, security headers, discovery descriptors, and shutdown.
325
- - `src/toolRegistry.ts` defines the 10 category surfaces.
326
- - `src/wrapper/allEndpoints.ts` maps provider tools into the public Hive tool
327
- catalog.
557
+ - `src/mcpServer.ts` builds the MCP servers, tools, resources, prompts, and
558
+ runtime instructions.
559
+ - `src/server.ts` runs Express, Streamable HTTP MCP, REST routes, auth,
560
+ middleware, discovery descriptors, and shutdown.
328
561
  - `src/taskToolsets.ts` defines the workflow surface agents should prefer over
329
- raw endpoint browsing.
330
- - `src/agentSkills.ts` and `agent-skills/` ship agent-installable Hive skills.
562
+ raw endpoint browsing. See the [workflow design contract](docs/WORKFLOW_DESIGN.md)
563
+ for composition and receipt requirements.
331
564
  - `src/cli.ts` and `src/cli/` expose auth, setup, discovery, execution,
332
565
  diagnostics, config generation, aliases, and watch mode.
333
- - `packages/mcp-client/` contains the typed client adapter.
334
- - `tests/` covers unit, integration, E2E, MCP compliance, live, security, and
335
- Docker readiness paths.
566
+ - `agent-skills/` ships agent-installable Hive skills.
336
567
 
337
568
  ## Links
338
569
 
339
570
  - Website: https://www.hiveintelligence.xyz
340
571
  - Hosted MCP: https://mcp.hiveintelligence.xyz/mcp
341
- - Docs overview: https://github.com/sharpe-labs/hive-mcp2/blob/master/docs/DOCUMENTATION.md
342
- - Tool reference: https://github.com/sharpe-labs/hive-mcp2/blob/master/docs/TOOLS_REFERENCE.md
343
- - Agent instructions: https://github.com/sharpe-labs/hive-mcp2/blob/master/AGENTS.md
344
- - Contributing: https://github.com/sharpe-labs/hive-mcp2/blob/master/CONTRIBUTING.md
345
- - Security: https://github.com/sharpe-labs/hive-mcp2/blob/master/SECURITY.md
346
- - Changelog: https://github.com/sharpe-labs/hive-mcp2/blob/master/CHANGELOG.md
572
+ - Public SDK and issues: https://github.com/hive-intel/hive-sdk
573
+ - Authenticated REST tool catalog: https://mcp.hiveintelligence.xyz/api/v1/tools
574
+ - Public live catalog overview: https://www.hiveintelligence.xyz/tools/live-catalog
575
+ - Install guides: https://www.hiveintelligence.xyz/install
576
+ - Quick start: https://www.hiveintelligence.xyz/quick-start
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "hive-agent-skills",
3
- "version": "1.0.0",
4
- "description": "Hive Intelligence skills for Claude Code, Cursor, Codex, and other agents. Covers Hive MCP setup, tool discovery, crypto workflows, CLI flows, and PKCE-based authentication. Install via `npx -y -p hive-intelligence@latest hive init --all --browser` or copy the packs into the target agent skills directory.",
3
+ "version": "0.2.0",
4
+ "description": "Hive Intelligence skills for Claude Code, Cursor, Codex, and other agents. Covers OAuth-first Hive MCP setup, tool discovery, evidence-backed crypto workflows, CLI flows, and runtime receipts. Install via `npx -y -p hive-intelligence@latest hive init --all` or copy the packs into the target agent skills directory.",
5
5
  "author": {
6
6
  "name": "Hive Intelligence",
7
7
  "url": "https://www.hiveintelligence.xyz",
8
8
  "email": "support@hiveintelligence.xyz"
9
9
  },
10
10
  "homepage": "https://www.hiveintelligence.xyz",
11
- "repository": "https://github.com/sharpe-labs/hive-mcp2",
11
+ "repository": "https://github.com/hive-intel/hive-skills",
12
12
  "license": "MIT",
13
+ "mcpServers": "./.mcp.json",
13
14
  "skills": [
14
15
  {
15
16
  "name": "hive-cli",
@@ -24,7 +25,7 @@
24
25
  {
25
26
  "name": "hive-build-onboarding",
26
27
  "path": "../packs/hive-build-onboarding/SKILL.md",
27
- "description": "Walk the user through PKCE-based browser auth. Use when the user has no API key or cannot find theirs."
28
+ "description": "Walk the user through browser-based sign-in. Use when the user has no API key or cannot find theirs."
28
29
  },
29
30
  {
30
31
  "name": "hive-build",
@@ -90,6 +91,11 @@
90
91
  "name": "hive-prediction-markets",
91
92
  "path": "../packs/hive-prediction-markets/SKILL.md",
92
93
  "description": "Research prediction markets, events, outcomes, market stats, traders, holders, and trades."
94
+ },
95
+ {
96
+ "name": "hive-stateful-monitoring",
97
+ "path": "../packs/hive-stateful-monitoring/SKILL.md",
98
+ "description": "Create, list, update, and archive durable crypto monitors, alerts, scheduled reports, and agent memory."
93
99
  }
94
100
  ],
95
101
  "tags": [
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "hive": {
4
+ "type": "http",
5
+ "url": "https://mcp.hiveintelligence.xyz/mcp"
6
+ }
7
+ }
8
+ }