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/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}${identity}` -> {msgs, bytes, writes, writeBytes, refused, files:Set, sessions, lastAt}
354
- const UKEY = (room, who) => `${room}${who}`
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.12.4",
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://github.com/Ganesh-Kute/HiveCode",
8
- "bugs": {
9
- "url": "https://github.com/Ganesh-Kute/HiveCode/issues"
10
- },
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/Ganesh-Kute/HiveCode.git"
14
- },
15
- "keywords": [
16
- "mcp",
17
- "model-context-protocol",
18
- "ai-agents",
19
- "multi-agent",
20
- "claude",
21
- "collaboration",
22
- "realtime",
23
- "yjs"
24
- ],
25
- "bin": {
26
- "hivecode-mcp": "hive-mcp.js",
27
- "hivecode-hook": "hive-hook-install.js",
28
- "hivecode-await": "hive-await.js"
29
- },
30
- "files": [
31
- "hive-mcp.js",
32
- "hive-await.js",
33
- "hive-listen.js",
34
- "hive-mux.js",
35
- "hive-mux-proto.js",
36
- "hive-version.js",
37
- "hive-pr-staleness.js",
38
- "hive-pr.js",
39
- "hive-branch.js",
40
- "hive-mailbox.js",
41
- "hive-obligations.js",
42
- "hive-receipts.js",
43
- "hive-throttle.js",
44
- "hive-instructions.js",
45
- "hive-activity.js",
46
- "hive-relay-health.js",
47
- "hive-privacy.js", "hive-secrets.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
- ],
77
- "publishConfig": {
78
- "access": "public"
79
- },
80
- "scripts": {
81
- "prepare": "node scripts/install-hooks.mjs || exit 0",
82
- "start": "node server.js",
83
- "relay": "node server.js",
84
- "sync:engine": "node sync-engine.mjs",
85
- "check:engine": "node sync-engine.mjs --check",
86
- "pretest": "node scripts/sync-engine.mjs --check && node scripts/check-files.mjs && node scripts/check-deploy.mjs",
87
- "test": "node tests/test.js",
88
- "test:features": "node tests/features-test.mjs",
89
- "test:features:shape": "node tests/features-test.mjs --shape",
90
- "test:learnings": "node tests/learnings-test.mjs",
91
- "test:docs": "node tests/readme-promises-test.mjs",
92
- "test:setup": "node tests/setup-test.mjs --package",
93
- "test:mcp": "node tests/mcp-conformance-test.mjs",
94
- "test:recreate": "node tests/blind-recreate-test.mjs",
95
- "test:liveness": "node tests/presence-listener-test.mjs && node tests/agent-liveness-test.mjs && node tests/unreachable-recipient-test.mjs",
96
- "test:attest": "node tests/attest-stale-test.mjs && node tests/hive-smp-test.js",
97
- "build:ext": "node scripts/build-icr-cjs.cjs && node scripts/build-privacy-cjs.cjs",
98
- "test:selfhost": "node tests/relay-pin-test.mjs && node tests/self-host-test.mjs && node tests/extension-privacy-parity-test.mjs",
99
- "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/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",
100
- "test:extension": "node tests/extension-parity-test.mjs && node tests/extension-privacy-parity-test.mjs",
101
- "test:ceiling": "node tests/refused-visible-test.mjs && node tests/ceiling-no-data-loss-test.mjs",
102
- "test:mux": "node tests/mux-test.mjs && node tests/mux-open-turns-test.mjs",
103
- "test:live": "node scripts/live-stranger.mjs",
104
- "test:tokens": "node tests/token-budget-test.mjs && node tests/status-cost-test.mjs",
105
- "test:identity": "node tests/identity-audit-test.mjs",
106
- "test:billing": "node tests/billing-test.mjs",
107
- "test:license": "node tests/hive-license-test.js",
108
- "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",
109
- "check:web": "tsc --noEmit",
110
- "build:web": "esbuild web/src/main.ts --bundle --minify --format=iife --target=es2019 --outfile=public/app.js",
111
- "build:crdt": "esbuild web/crdt.js --bundle --minify --format=esm --target=es2019 --outfile=public/hive-crdt.js",
112
- "test:substrate": "node substrate-test.js",
113
- "test:substrate:live": "node substrate-live-test.js",
114
- "test:substrate:enforce": "node substrate-enforce-test.js",
115
- "test:substrate:authority": "node substrate-authority-test.js",
116
- "test:substrate:all": "node substrate-test.js && node substrate-live-test.js && node substrate-enforce-test.js && node substrate-authority-test.js",
117
- "test:recover": "node tests/recover-test.mjs",
118
- "test:mailbox": "node tests/mailbox-test.mjs && node tests/mcp-wait-test.mjs && node tests/mailbox-noise-test.mjs",
119
- "test:stophook": "node tests/stop-hook-test.mjs",
120
- "test:limits": "node tests/limits-test.mjs && node tests/rate-hold-test.mjs && node tests/persist-batch-test.mjs",
121
- "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",
122
- "test:rejoin": "node tests/rejoin-clobber-test.mjs",
123
- "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",
124
- "test:meter": "node tests/usage-meter-test.mjs",
125
- "test:subscribe": "node tests/subscribe-test.mjs",
126
- "test:cred": "node tests/credential-split-test.mjs",
127
- "test:firstrun": "node tests/firstrun-test.mjs",
128
- "test:lifecycle": "node tests/lifecycle-test.mjs",
129
- "test:payment": "node tests/payment-e2e-test.mjs",
130
- "scorecard": "node scorecard.mjs",
131
- "demo:video": "node demo/record.mjs",
132
- "test:wrap": "node demo/wrap-test.mjs",
133
- "demo:panel": "node demo/record-panel.mjs",
134
- "demo:all": "node demo/record.mjs && node demo/record-panel.mjs",
135
- "check:files": "node scripts/check-files.mjs",
136
- "prepublishOnly": "node scripts/check-files.mjs",
137
- "demo:cast": "node demo/cast.mjs --dry-run",
138
- "check:deploy": "node scripts/check-deploy.mjs",
139
- "test:coordination": "node tests/coordination-test.mjs",
140
- "test:panel": "node tests/control-panel-test.mjs && node tests/control-room-walk.mjs",
141
- "test:map": "node tests/hive-map-test.mjs",
142
- "test:gate": "node tests/hive-gate-test.mjs",
143
- "bench:ab": "node bench/coordination-ab.mjs",
144
- "test:branch": "node tests/branch-test.mjs"
145
- },
146
- "engines": {
147
- "node": ">=18"
148
- },
149
- "dependencies": {
150
- "acorn": "^8.17.0",
151
- "ignore": "^7.0.5",
152
- "lib0": "^0.2.117",
153
- "lodash.debounce": "^4.0.8",
154
- "ws": "^8.18.0",
155
- "y-protocols": "^1.0.6",
156
- "y-websocket": "^3.1.0",
157
- "yjs": "^13.6.18"
158
- },
159
- "devDependencies": {
160
- "@anthropic-ai/sdk": "^0.104.2",
161
- "@modelcontextprotocol/sdk": "^1.30.0",
162
- "@types/node": "^26.1.2",
163
- "esbuild": "^0.28.1",
164
- "typescript": "^7.0.2"
165
- },
166
- "main": "core.js",
167
- "directories": {
168
- "doc": "docs",
169
- "test": "tests"
170
- },
171
- "author": "Ganesh Shivlal Kute <support@getgrm.tech>"
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
+ }