hivecode-mcp 0.12.4 → 0.13.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/HIVE_RULES.md +11 -40
- package/README.md +421 -346
- package/docs/ALWAYS_ON.md +310 -0
- package/docs/GITHUB_WORKFLOW.md +334 -0
- package/docs/MCP.md +157 -118
- package/docs/QUICKSTART.md +266 -0
- package/docs/SELF_HOSTING.md +2 -2
- package/docs/SLACK_SETUP.md +450 -0
- package/docs/TROUBLESHOOTING.md +87 -0
- package/hive-await.js +25 -5
- package/hive-branch.js +55 -25
- package/hive-github.js +1904 -0
- package/hive-listen.js +81 -81
- package/hive-mailbox.js +5 -2
- package/hive-mcp-http.js +580 -0
- package/hive-mcp.js +109 -24
- package/hive-notify.js +233 -0
- package/hive-pr.js +17 -4
- package/hive-relay-health.js +230 -230
- package/hive-room-key.js +209 -0
- package/hive-session.js +114 -0
- package/hive-setup.js +14 -4
- package/hive-slack-agent.js +396 -0
- package/hive-slack.js +1809 -0
- package/hive-stop-hook.js +7 -4
- package/hive-time.js +71 -0
- package/hive-webhook.js +54 -0
- package/icr.js +851 -851
- package/limits.js +3 -3
- package/package.json +189 -172
- package/slack-app-manifest-agent.json +61 -0
- package/slack-app-manifest-inbound.json +36 -0
- package/slack-app-manifest.json +27 -0
- package/sync.js +4790 -4691
package/limits.js
CHANGED
|
@@ -350,8 +350,8 @@ export function attachRateLimit(conn, tier = null) {
|
|
|
350
350
|
//
|
|
351
351
|
// Keyed by room+identity and kept in memory only. It is operational telemetry, not billing:
|
|
352
352
|
// billing is seats, which the licence record already decides.
|
|
353
|
-
const usage = new Map() // `${room}
|
|
354
|
-
const UKEY = (room, who) => `${room}
|
|
353
|
+
const usage = new Map() // `${room}\0${identity}` -> {msgs, bytes, writes, writeBytes, refused, files:Set, sessions, lastAt}
|
|
354
|
+
const UKEY = (room, who) => `${room}\0${who}`
|
|
355
355
|
|
|
356
356
|
export function recordUsage(room, who, u, file = null) {
|
|
357
357
|
if (!room || !who || !u) return
|
|
@@ -374,7 +374,7 @@ export function recordUsage(room, who, u, file = null) {
|
|
|
374
374
|
export function usageFor(room = null) {
|
|
375
375
|
const out = []
|
|
376
376
|
for (const [k, e] of usage) {
|
|
377
|
-
const [r, who] = k.split('
|
|
377
|
+
const [r, who] = k.split('\0')
|
|
378
378
|
if (room && r !== room) continue
|
|
379
379
|
out.push({
|
|
380
380
|
room: r, agent: who,
|
package/package.json
CHANGED
|
@@ -1,172 +1,189 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "hivecode-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server that lets any AI coding agent join a Hivecode room — humans and multiple AI agents edit one live codebase with folder-scoped permissions and approval gates.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"homepage": "https://
|
|
8
|
-
"bugs": {
|
|
9
|
-
"url": "https://
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"hive-
|
|
32
|
-
"hive-
|
|
33
|
-
"hive-
|
|
34
|
-
"hive-
|
|
35
|
-
"hive-
|
|
36
|
-
"hive-
|
|
37
|
-
"hive-
|
|
38
|
-
"hive-
|
|
39
|
-
"hive-
|
|
40
|
-
"hive-
|
|
41
|
-
"hive-
|
|
42
|
-
"hive-
|
|
43
|
-
"hive-
|
|
44
|
-
"hive-
|
|
45
|
-
"hive-
|
|
46
|
-
"hive-
|
|
47
|
-
"hive-
|
|
48
|
-
"hive-setup.js",
|
|
49
|
-
"hive-stdio.js",
|
|
50
|
-
"hive-update.js",
|
|
51
|
-
"docs/SELF_HOSTING.md",
|
|
52
|
-
"reconcile.cjs",
|
|
53
|
-
"hive-busy.js",
|
|
54
|
-
"hive-stop-hook.js",
|
|
55
|
-
"hive-hook-install.js",
|
|
56
|
-
"sync.js",
|
|
57
|
-
"core.js",
|
|
58
|
-
"limits.js",
|
|
59
|
-
"token.js",
|
|
60
|
-
"icr.js",
|
|
61
|
-
"lang-js.js",
|
|
62
|
-
"lang-brace.js",
|
|
63
|
-
"lang-python.js",
|
|
64
|
-
"lang-ruby.js",
|
|
65
|
-
"lang-json.js",
|
|
66
|
-
"lang-yaml.js",
|
|
67
|
-
"lang-toml.js",
|
|
68
|
-
"icr-merge.js",
|
|
69
|
-
"hive-coord.js",
|
|
70
|
-
"hive-gate.js",
|
|
71
|
-
"substrate.js",
|
|
72
|
-
"HIVE_RULES.md",
|
|
73
|
-
"docs/MCP.md",
|
|
74
|
-
"README.md",
|
|
75
|
-
"LICENSE"
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"test
|
|
104
|
-
"test:
|
|
105
|
-
"test:
|
|
106
|
-
"test:
|
|
107
|
-
"test:
|
|
108
|
-
"test:
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"test:
|
|
113
|
-
"
|
|
114
|
-
"test:
|
|
115
|
-
"test:
|
|
116
|
-
"test:
|
|
117
|
-
"test:
|
|
118
|
-
"test:
|
|
119
|
-
"test:
|
|
120
|
-
"test:
|
|
121
|
-
"test:
|
|
122
|
-
"test:
|
|
123
|
-
"test:
|
|
124
|
-
"test:
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"test:
|
|
129
|
-
"test:
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"test:
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
-
"test:
|
|
140
|
-
"test:
|
|
141
|
-
"test:
|
|
142
|
-
"test:
|
|
143
|
-
"
|
|
144
|
-
"test:
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
"
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"
|
|
165
|
-
},
|
|
166
|
-
"
|
|
167
|
-
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "hivecode-mcp",
|
|
3
|
+
"version": "0.13.0",
|
|
4
|
+
"description": "MCP server that lets any AI coding agent join a Hivecode room — humans and multiple AI agents edit one live codebase with folder-scoped permissions and approval gates.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"homepage": "https://hivecode.getgrm.tech",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://hivecode.getgrm.tech/contact",
|
|
10
|
+
"email": "support@getgrm.tech"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"mcp",
|
|
14
|
+
"model-context-protocol",
|
|
15
|
+
"ai-agents",
|
|
16
|
+
"multi-agent",
|
|
17
|
+
"claude",
|
|
18
|
+
"collaboration",
|
|
19
|
+
"realtime",
|
|
20
|
+
"yjs"
|
|
21
|
+
],
|
|
22
|
+
"bin": {
|
|
23
|
+
"hivecode-mcp": "hive-mcp.js",
|
|
24
|
+
"hivecode-hook": "hive-hook-install.js",
|
|
25
|
+
"hivecode-await": "hive-await.js"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"hive-mcp.js",
|
|
29
|
+
"hive-await.js",
|
|
30
|
+
"hive-listen.js",
|
|
31
|
+
"hive-session.js",
|
|
32
|
+
"hive-mux.js",
|
|
33
|
+
"hive-mux-proto.js",
|
|
34
|
+
"hive-version.js",
|
|
35
|
+
"hive-pr-staleness.js",
|
|
36
|
+
"hive-pr.js",
|
|
37
|
+
"hive-branch.js",
|
|
38
|
+
"hive-mailbox.js",
|
|
39
|
+
"hive-obligations.js",
|
|
40
|
+
"hive-receipts.js",
|
|
41
|
+
"hive-throttle.js",
|
|
42
|
+
"hive-instructions.js",
|
|
43
|
+
"hive-activity.js",
|
|
44
|
+
"hive-relay-health.js",
|
|
45
|
+
"hive-privacy.js",
|
|
46
|
+
"hive-secrets.js",
|
|
47
|
+
"hive-room-key.js",
|
|
48
|
+
"hive-setup.js",
|
|
49
|
+
"hive-stdio.js",
|
|
50
|
+
"hive-update.js",
|
|
51
|
+
"docs/SELF_HOSTING.md",
|
|
52
|
+
"reconcile.cjs",
|
|
53
|
+
"hive-busy.js",
|
|
54
|
+
"hive-stop-hook.js",
|
|
55
|
+
"hive-hook-install.js",
|
|
56
|
+
"sync.js",
|
|
57
|
+
"core.js",
|
|
58
|
+
"limits.js",
|
|
59
|
+
"token.js",
|
|
60
|
+
"icr.js",
|
|
61
|
+
"lang-js.js",
|
|
62
|
+
"lang-brace.js",
|
|
63
|
+
"lang-python.js",
|
|
64
|
+
"lang-ruby.js",
|
|
65
|
+
"lang-json.js",
|
|
66
|
+
"lang-yaml.js",
|
|
67
|
+
"lang-toml.js",
|
|
68
|
+
"icr-merge.js",
|
|
69
|
+
"hive-coord.js",
|
|
70
|
+
"hive-gate.js",
|
|
71
|
+
"substrate.js",
|
|
72
|
+
"HIVE_RULES.md",
|
|
73
|
+
"docs/MCP.md",
|
|
74
|
+
"README.md",
|
|
75
|
+
"LICENSE",
|
|
76
|
+
"hive-github.js",
|
|
77
|
+
"hive-notify.js",
|
|
78
|
+
"hive-webhook.js",
|
|
79
|
+
"hive-slack.js",
|
|
80
|
+
"hive-slack-agent.js",
|
|
81
|
+
"hive-mcp-http.js",
|
|
82
|
+
"slack-app-manifest.json",
|
|
83
|
+
"slack-app-manifest-inbound.json",
|
|
84
|
+
"slack-app-manifest-agent.json",
|
|
85
|
+
"hive-time.js",
|
|
86
|
+
"docs/GITHUB_WORKFLOW.md",
|
|
87
|
+
"docs/QUICKSTART.md",
|
|
88
|
+
"docs/TROUBLESHOOTING.md",
|
|
89
|
+
"docs/SLACK_SETUP.md",
|
|
90
|
+
"docs/ALWAYS_ON.md"
|
|
91
|
+
],
|
|
92
|
+
"publishConfig": {
|
|
93
|
+
"access": "public"
|
|
94
|
+
},
|
|
95
|
+
"scripts": {
|
|
96
|
+
"prepare": "node scripts/install-hooks.mjs || exit 0",
|
|
97
|
+
"start": "node server.js",
|
|
98
|
+
"relay": "node server.js",
|
|
99
|
+
"sync:engine": "node sync-engine.mjs",
|
|
100
|
+
"check:engine": "node sync-engine.mjs --check",
|
|
101
|
+
"check:deps": "node scripts/check-deps.mjs",
|
|
102
|
+
"pretest": "node scripts/check-deps.mjs && node scripts/sync-engine.mjs --check && node scripts/check-files.mjs && node scripts/check-deploy.mjs",
|
|
103
|
+
"test": "node tests/test.js",
|
|
104
|
+
"test:features": "node tests/features-test.mjs",
|
|
105
|
+
"test:features:shape": "node tests/features-test.mjs --shape",
|
|
106
|
+
"test:learnings": "node tests/learnings-test.mjs",
|
|
107
|
+
"test:docs": "node tests/readme-promises-test.mjs && node tests/rules-promises-test.mjs && node tests/site-cli-usage-test.mjs",
|
|
108
|
+
"test:setup": "node tests/setup-test.mjs --package",
|
|
109
|
+
"test:mcp": "node tests/mcp-conformance-test.mjs",
|
|
110
|
+
"test:recreate": "node tests/blind-recreate-test.mjs",
|
|
111
|
+
"test:liveness": "node tests/presence-listener-test.mjs && node tests/agent-liveness-test.mjs && node tests/unreachable-recipient-test.mjs",
|
|
112
|
+
"test:attest": "node tests/attest-stale-test.mjs && node tests/hive-smp-test.js",
|
|
113
|
+
"build:ext": "node scripts/build-icr-cjs.cjs && node scripts/build-privacy-cjs.cjs",
|
|
114
|
+
"test:selfhost": "node tests/relay-pin-test.mjs && node tests/self-host-test.mjs && node tests/extension-privacy-parity-test.mjs",
|
|
115
|
+
"test:hardening": "node tests/genesis-claim-test.mjs && node tests/bare-root-write-test.mjs && node tests/version-truth-test.mjs && node tests/room-repo-drift-test.mjs && node tests/first-contact-refusal-test.mjs && node tests/first-contact-summary-test.mjs && node tests/open-file-cap-test.mjs && node tests/learnings-test.mjs && node tests/presence-listener-test.mjs && node tests/agent-liveness-test.mjs && node tests/unreachable-recipient-test.mjs && node tests/join-honesty-test.mjs && node tests/relay-diagnosis-test.mjs && node tests/blind-recreate-test.mjs && node tests/relay-pin-test.mjs && node tests/self-host-test.mjs && node tests/extension-privacy-parity-test.mjs && node tests/readme-promises-test.mjs && node tests/setup-test.mjs && node tests/mcp-conformance-test.mjs && node tests/update-notice-test.mjs && node tests/mux-test.mjs && node tests/own-files-quiet-test.mjs && node tests/wiped-relay-rejoin-test.mjs && node tests/token-budget-test.mjs && node tests/relay-presence-sweep-test.mjs && node tests/join-scale-test.mjs && node tests/join-queue-delete-test.mjs && node tests/delete-safety-test.mjs && node tests/relay-no-echo-test.mjs && node tests/genesis-collision-test.mjs && node tests/dead-heat-verdict-test.mjs && node tests/dead-heat-forced-test.mjs && node tests/deleted-dir-write-test.mjs && node tests/hive-await-test.mjs && node tests/listener-mail-once-test.mjs && node tests/build-identity-test.mjs && node tests/task-authority-test.mjs && node tests/grm-private-test.mjs && node tests/mixed-build-test.mjs && node tests/duplicate-name-test.mjs && node tests/unwritable-file-test.mjs && node tests/relay-claim-delete-test.mjs && node tests/secret-gate-test.mjs && node tests/package-closure-test.mjs && node tests/guessable-room-test.mjs && node tests/case-collision-test.mjs && node tests/case-rename-test.mjs && node tests/collided-notice-test.mjs && node tests/secured-invite-test.mjs && node tests/personal-room-test.mjs &&node tests/attest-stale-test.mjs && node tests/hive-smp-test.js && node tests/branch-test.mjs && node tests/unshared-binary-notice-test.mjs && node tests/binary-sync-test.mjs && node tests/doc-cap-remeasure-test.mjs && node tests/session-resume-test.mjs && node tests/shared-launch-folder-test.mjs && node tests/portable-agent-config-test.mjs",
|
|
116
|
+
"test:extension": "node tests/extension-parity-test.mjs && node tests/extension-privacy-parity-test.mjs",
|
|
117
|
+
"test:ceiling": "node tests/refused-visible-test.mjs && node tests/ceiling-no-data-loss-test.mjs",
|
|
118
|
+
"test:mux": "node tests/mux-test.mjs && node tests/mux-open-turns-test.mjs",
|
|
119
|
+
"test:live": "node scripts/live-stranger.mjs",
|
|
120
|
+
"test:tokens": "node tests/token-budget-test.mjs && node tests/status-cost-test.mjs",
|
|
121
|
+
"test:identity": "node tests/identity-audit-test.mjs",
|
|
122
|
+
"test:billing": "node tests/billing-test.mjs",
|
|
123
|
+
"test:license": "node tests/hive-license-test.js",
|
|
124
|
+
"test:money": "node tests/payment-e2e-test.mjs && node tests/subscribe-test.mjs && node tests/lifecycle-test.mjs && node tests/billing-test.mjs && node tests/hive-license-test.js && node tests/recover-test.mjs",
|
|
125
|
+
"check:web": "tsc --noEmit",
|
|
126
|
+
"build:web": "esbuild web/src/main.ts --bundle --minify --format=iife --target=es2019 --outfile=public/app.js",
|
|
127
|
+
"build:crdt": "esbuild web/crdt.js --bundle --minify --format=esm --target=es2019 --outfile=public/hive-crdt.js",
|
|
128
|
+
"test:substrate": "node substrate-test.js",
|
|
129
|
+
"test:substrate:live": "node substrate-live-test.js",
|
|
130
|
+
"test:substrate:enforce": "node substrate-enforce-test.js",
|
|
131
|
+
"test:substrate:authority": "node substrate-authority-test.js",
|
|
132
|
+
"test:substrate:all": "node substrate-test.js && node substrate-live-test.js && node substrate-enforce-test.js && node substrate-authority-test.js",
|
|
133
|
+
"test:recover": "node tests/recover-test.mjs",
|
|
134
|
+
"test:mailbox": "node tests/mailbox-test.mjs && node tests/mcp-wait-test.mjs && node tests/mailbox-noise-test.mjs",
|
|
135
|
+
"test:stophook": "node tests/stop-hook-test.mjs",
|
|
136
|
+
"test:limits": "node tests/limits-test.mjs && node tests/rate-hold-test.mjs && node tests/persist-batch-test.mjs",
|
|
137
|
+
"test:merge": "node tests/diff3-test.mjs && node tests/merge-balloon-test.mjs && node tests/icr-merge-test.js && node tests/icr-gap-comments-test.mjs && node tests/icr-comment-fuzz-test.mjs",
|
|
138
|
+
"test:rejoin": "node tests/rejoin-clobber-test.mjs",
|
|
139
|
+
"test:prod": "node tests/test.js && node tests/firstrun-test.mjs && node tests/credential-split-test.mjs && node tests/limits-test.mjs && node tests/usage-meter-test.mjs && node tests/rejoin-clobber-test.mjs && node tests/stop-hook-test.mjs && node tests/coordination-test.mjs && node tests/control-panel-test.mjs && node tests/hive-map-test.mjs && node tests/hive-gate-test.mjs && node tests/durability-test.mjs && node tests/payment-e2e-test.mjs && node tests/subscribe-test.mjs && node tests/lifecycle-test.mjs && node tests/billing-test.mjs && node tests/hive-license-test.js && node tests/recover-test.mjs && node demo/wrap-test.mjs",
|
|
140
|
+
"test:meter": "node tests/usage-meter-test.mjs",
|
|
141
|
+
"test:subscribe": "node tests/subscribe-test.mjs",
|
|
142
|
+
"test:cred": "node tests/credential-split-test.mjs",
|
|
143
|
+
"test:firstrun": "node tests/firstrun-test.mjs",
|
|
144
|
+
"test:lifecycle": "node tests/lifecycle-test.mjs",
|
|
145
|
+
"test:payment": "node tests/payment-e2e-test.mjs",
|
|
146
|
+
"scorecard": "node scorecard.mjs",
|
|
147
|
+
"demo:video": "node demo/record.mjs",
|
|
148
|
+
"test:wrap": "node demo/wrap-test.mjs",
|
|
149
|
+
"demo:panel": "node demo/record-panel.mjs",
|
|
150
|
+
"demo:all": "node demo/record.mjs && node demo/record-panel.mjs",
|
|
151
|
+
"check:files": "node scripts/check-files.mjs",
|
|
152
|
+
"prepublishOnly": "node scripts/check-files.mjs",
|
|
153
|
+
"demo:cast": "node demo/cast.mjs --dry-run",
|
|
154
|
+
"check:deploy": "node scripts/check-deploy.mjs",
|
|
155
|
+
"test:coordination": "node tests/coordination-test.mjs",
|
|
156
|
+
"test:panel": "node tests/control-panel-test.mjs && node tests/control-room-walk.mjs",
|
|
157
|
+
"test:map": "node tests/hive-map-test.mjs",
|
|
158
|
+
"test:gate": "node tests/hive-gate-test.mjs",
|
|
159
|
+
"bench:ab": "node bench/coordination-ab.mjs",
|
|
160
|
+
"test:branch": "node tests/branch-test.mjs",
|
|
161
|
+
"test:github": "node tests/github-cli-test.mjs && node tests/notify-test.mjs && node tests/github-watcher-test.mjs"
|
|
162
|
+
},
|
|
163
|
+
"engines": {
|
|
164
|
+
"node": ">=18"
|
|
165
|
+
},
|
|
166
|
+
"dependencies": {
|
|
167
|
+
"acorn": "^8.17.0",
|
|
168
|
+
"ignore": "^7.0.5",
|
|
169
|
+
"lib0": "^0.2.117",
|
|
170
|
+
"lodash.debounce": "^4.0.8",
|
|
171
|
+
"ws": "^8.18.0",
|
|
172
|
+
"y-protocols": "^1.0.6",
|
|
173
|
+
"y-websocket": "^3.1.0",
|
|
174
|
+
"yjs": "^13.6.18"
|
|
175
|
+
},
|
|
176
|
+
"devDependencies": {
|
|
177
|
+
"@anthropic-ai/sdk": "^0.104.2",
|
|
178
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
179
|
+
"@types/node": "^26.1.2",
|
|
180
|
+
"esbuild": "^0.28.1",
|
|
181
|
+
"typescript": "^7.0.2"
|
|
182
|
+
},
|
|
183
|
+
"main": "core.js",
|
|
184
|
+
"directories": {
|
|
185
|
+
"doc": "docs",
|
|
186
|
+
"test": "tests"
|
|
187
|
+
},
|
|
188
|
+
"author": "Ganesh Shivlal Kute <support@getgrm.tech>"
|
|
189
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"display_information": {
|
|
3
|
+
"name": "Hivecode",
|
|
4
|
+
"description": "AI agent panel, native stop button, and one Slack thread per task or GitHub issue.",
|
|
5
|
+
"background_color": "#111318"
|
|
6
|
+
},
|
|
7
|
+
"features": {
|
|
8
|
+
"bot_user": {
|
|
9
|
+
"display_name": "Hivecode",
|
|
10
|
+
"always_online": true
|
|
11
|
+
},
|
|
12
|
+
"assistant_view": {
|
|
13
|
+
"assistant_description": "Inspect live Hivecode rooms, stream task plans, and halt or resume AI agents from Slack.",
|
|
14
|
+
"suggested_prompts": [
|
|
15
|
+
{
|
|
16
|
+
"title": "What is running?",
|
|
17
|
+
"message": "status"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"title": "Stop everything",
|
|
21
|
+
"message": "stop all"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"title": "What happened overnight?",
|
|
25
|
+
"message": "what happened overnight"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"oauth_config": {
|
|
31
|
+
"scopes": {
|
|
32
|
+
"bot": [
|
|
33
|
+
"chat:write",
|
|
34
|
+
"assistant:write",
|
|
35
|
+
"im:history",
|
|
36
|
+
"im:read",
|
|
37
|
+
"im:write",
|
|
38
|
+
"channels:read",
|
|
39
|
+
"groups:read",
|
|
40
|
+
"channels:history",
|
|
41
|
+
"groups:history",
|
|
42
|
+
"users:read"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"settings": {
|
|
47
|
+
"event_subscriptions": {
|
|
48
|
+
"bot_events": [
|
|
49
|
+
"agent_session_stopped",
|
|
50
|
+
"assistant_thread_started",
|
|
51
|
+
"assistant_thread_context_changed",
|
|
52
|
+
"message.im",
|
|
53
|
+
"message.channels",
|
|
54
|
+
"message.groups"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"org_deploy_enabled": false,
|
|
58
|
+
"socket_mode_enabled": true,
|
|
59
|
+
"token_rotation_enabled": false
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"display_information": {
|
|
3
|
+
"name": "Hivecode",
|
|
4
|
+
"description": "One Slack thread per task or GitHub issue, with inbound stop and thread replies.",
|
|
5
|
+
"background_color": "#111318"
|
|
6
|
+
},
|
|
7
|
+
"features": {
|
|
8
|
+
"bot_user": {
|
|
9
|
+
"display_name": "Hivecode",
|
|
10
|
+
"always_online": true
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"oauth_config": {
|
|
14
|
+
"scopes": {
|
|
15
|
+
"bot": [
|
|
16
|
+
"chat:write",
|
|
17
|
+
"channels:read",
|
|
18
|
+
"groups:read",
|
|
19
|
+
"channels:history",
|
|
20
|
+
"groups:history",
|
|
21
|
+
"users:read"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"settings": {
|
|
26
|
+
"event_subscriptions": {
|
|
27
|
+
"bot_events": [
|
|
28
|
+
"message.channels",
|
|
29
|
+
"message.groups"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"org_deploy_enabled": false,
|
|
33
|
+
"socket_mode_enabled": true,
|
|
34
|
+
"token_rotation_enabled": false
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"display_information": {
|
|
3
|
+
"name": "Hivecode",
|
|
4
|
+
"description": "One Slack thread per task or GitHub issue for Hivecode rooms.",
|
|
5
|
+
"background_color": "#111318"
|
|
6
|
+
},
|
|
7
|
+
"features": {
|
|
8
|
+
"bot_user": {
|
|
9
|
+
"display_name": "Hivecode",
|
|
10
|
+
"always_online": true
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"oauth_config": {
|
|
14
|
+
"scopes": {
|
|
15
|
+
"bot": [
|
|
16
|
+
"chat:write",
|
|
17
|
+
"channels:read",
|
|
18
|
+
"groups:read"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"settings": {
|
|
23
|
+
"org_deploy_enabled": false,
|
|
24
|
+
"socket_mode_enabled": false,
|
|
25
|
+
"token_rotation_enabled": false
|
|
26
|
+
}
|
|
27
|
+
}
|