slashvibe-mcp 0.3.21 → 0.3.23
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/LICENSE +21 -0
- package/README.md +280 -47
- package/auto-update.js +10 -15
- package/config.js +36 -31
- package/crypto.js +1 -6
- package/debug.js +12 -0
- package/discord.js +19 -19
- package/eslint.config.js +54 -0
- package/index.js +217 -207
- package/intelligence/index.js +2 -9
- package/intelligence/infer.js +10 -16
- package/intelligence/patterns.js +23 -18
- package/intelligence/proactive.js +16 -15
- package/intelligence/serendipity.js +57 -20
- package/memory.js +13 -8
- package/migrate-v2.js +72 -0
- package/notification-emitter.js +2 -2
- package/notify.js +39 -14
- package/package.json +28 -29
- package/post-install.js +141 -0
- package/presence.js +2 -2
- package/prompts.js +5 -9
- package/protocol/index.js +123 -87
- package/protocol/telegram-commands.js +36 -37
- package/store/api.js +358 -529
- package/store/local.js +9 -10
- package/store/profiles.js +48 -192
- package/store/reservations.js +2 -9
- package/store/skills.js +69 -71
- package/store/sqlite.js +355 -0
- package/test-skills-bootstrap.js +20 -0
- package/test-v2-integration.js +385 -0
- package/tools/_actions.js +48 -387
- package/tools/_connection-queue.js +45 -56
- package/tools/_discovery-enhanced.js +52 -57
- package/tools/_discovery.js +87 -185
- package/tools/{l2-status.js → _experimental/l2-status.js} +68 -70
- package/tools/{shipback.js → _experimental/shipback.js} +4 -3
- package/tools/_proactive-discovery.js +60 -73
- package/tools/_shared/index.js +41 -64
- package/tools/admin-inbox.js +10 -15
- package/tools/agents.js +1 -1
- package/tools/artifact-create.js +13 -23
- package/tools/artifact-view.js +4 -4
- package/tools/{_deprecated/back.js → back.js} +1 -1
- package/tools/bye.js +3 -5
- package/tools/consent.js +2 -2
- package/tools/context.js +9 -10
- package/tools/crossword.js +3 -2
- package/tools/discover.js +94 -356
- package/tools/dm.js +27 -86
- package/tools/doctor.js +12 -41
- package/tools/drawing.js +34 -20
- package/tools/echo.js +11 -11
- package/tools/feed.js +30 -58
- package/tools/follow.js +64 -187
- package/tools/{_deprecated/forget.js → forget.js} +4 -7
- package/tools/game.js +144 -48
- package/tools/handoff.js +6 -8
- package/tools/help.js +3 -3
- package/tools/idea.js +15 -27
- package/tools/inbox.js +121 -293
- package/tools/init.js +54 -151
- package/tools/invite.js +8 -21
- package/tools/migrate.js +27 -24
- package/tools/multiplayer-game.js +50 -40
- package/tools/{_deprecated/mute.js → mute.js} +4 -3
- package/tools/notifications.js +58 -48
- package/tools/observe.js +12 -15
- package/tools/onboarding.js +8 -11
- package/tools/open.js +13 -144
- package/tools/party-game.js +23 -12
- package/tools/patterns.js +2 -1
- package/tools/ping.js +5 -7
- package/tools/react.js +28 -30
- package/tools/{_deprecated/recall.js → recall.js} +5 -10
- package/tools/release.js +4 -2
- package/tools/{_deprecated/remember.js → remember.js} +4 -6
- package/tools/report.js +2 -2
- package/tools/request.js +6 -26
- package/tools/reserve.js +1 -1
- package/tools/session-fork.js +97 -0
- package/tools/session-save.js +109 -0
- package/tools/settings.js +30 -99
- package/tools/ship.js +74 -56
- package/tools/{_deprecated/skills-exchange.js → skills-exchange.js} +38 -39
- package/tools/social-inbox.js +22 -28
- package/tools/social-post.js +24 -27
- package/tools/solo-game.js +54 -46
- package/tools/start.js +14 -148
- package/tools/status.js +21 -68
- package/tools/submit.js +4 -2
- package/tools/suggest-tags.js +36 -33
- package/tools/summarize.js +19 -16
- package/tools/tag-suggestions.js +72 -73
- package/tools/test.js +1 -1
- package/tools/{_deprecated/tictactoe.js → tictactoe.js} +26 -26
- package/tools/token.js +4 -4
- package/tools/update.js +1 -2
- package/tools/watch.js +132 -112
- package/tools/who.js +20 -40
- package/tools/{_deprecated/wordassociation.js → wordassociation.js} +23 -20
- package/tools/workshop-buddy.js +52 -53
- package/tools/x-mentions.js +0 -1
- package/tools/x-reply.js +0 -1
- package/twitter.js +14 -20
- package/version.json +8 -10
- package/webhook-runner.js +132 -0
- package/auth-store.js +0 -148
- package/bridges/bridge-monitor.js +0 -388
- package/bridges/discord-bot.js +0 -431
- package/bridges/farcaster.js +0 -299
- package/bridges/telegram.js +0 -261
- package/bridges/webhook-health.js +0 -420
- package/bridges/webhook-server.js +0 -437
- package/bridges/whatsapp.js +0 -441
- package/bridges/x-webhook.js +0 -423
- package/games/arcade.js +0 -406
- package/games/chess.js +0 -451
- package/games/colorguess.js +0 -343
- package/games/crossword-words.js +0 -171
- package/games/crossword.js +0 -461
- package/games/drawing.js +0 -347
- package/games/gameroulette.js +0 -300
- package/games/gamerouter.js +0 -336
- package/games/gamestatus.js +0 -337
- package/games/guessnumber.js +0 -209
- package/games/hangman.js +0 -279
- package/games/memory.js +0 -338
- package/games/multiplayer-tictactoe.js +0 -389
- package/games/pixelart.js +0 -399
- package/games/quickduel.js +0 -354
- package/games/riddle.js +0 -371
- package/games/rockpaperscissors.js +0 -291
- package/games/snake.js +0 -406
- package/games/storybuilder.js +0 -343
- package/games/tictactoe.js +0 -345
- package/games/twentyquestions.js +0 -286
- package/games/twotruths.js +0 -207
- package/games/werewolf.js +0 -508
- package/games/wordassociation.js +0 -247
- package/games/wordchain.js +0 -135
- package/intelligence/interests.js +0 -369
- package/setup.js +0 -480
- package/smart-inbox.js +0 -276
- package/tools/_deprecated/auto-suggest-connections.js +0 -304
- package/tools/_deprecated/bootstrap-skills.js +0 -231
- package/tools/_deprecated/bridge-dashboard.js +0 -342
- package/tools/_deprecated/bridge-health.js +0 -400
- package/tools/_deprecated/bridge-live.js +0 -384
- package/tools/_deprecated/bridges.js +0 -383
- package/tools/_deprecated/colorguess.js +0 -281
- package/tools/_deprecated/discover-insights.js +0 -379
- package/tools/_deprecated/discover-momentum.js +0 -256
- package/tools/_deprecated/discovery-analytics.js +0 -345
- package/tools/_deprecated/discovery-auto-suggest.js +0 -275
- package/tools/_deprecated/discovery-bootstrap.js +0 -267
- package/tools/_deprecated/discovery-daily.js +0 -375
- package/tools/_deprecated/discovery-dashboard.js +0 -385
- package/tools/_deprecated/discovery-digest.js +0 -314
- package/tools/_deprecated/discovery-hub.js +0 -357
- package/tools/_deprecated/discovery-insights.js +0 -384
- package/tools/_deprecated/discovery-momentum.js +0 -281
- package/tools/_deprecated/discovery-monitor.js +0 -319
- package/tools/_deprecated/discovery-proactive.js +0 -300
- package/tools/_deprecated/draw.js +0 -317
- package/tools/_deprecated/farcaster.js +0 -307
- package/tools/_deprecated/games-catalog.js +0 -376
- package/tools/_deprecated/games.js +0 -313
- package/tools/_deprecated/guessnumber.js +0 -194
- package/tools/_deprecated/hangman.js +0 -129
- package/tools/_deprecated/multiplayer-tictactoe.js +0 -303
- package/tools/_deprecated/riddle.js +0 -240
- package/tools/_deprecated/run-bootstrap.js +0 -69
- package/tools/_deprecated/skills-analytics.js +0 -349
- package/tools/_deprecated/skills-bootstrap.js +0 -301
- package/tools/_deprecated/skills-dashboard.js +0 -268
- package/tools/_deprecated/skills.js +0 -380
- package/tools/_deprecated/smart-intro.js +0 -353
- package/tools/_deprecated/storybuilder.js +0 -331
- package/tools/_deprecated/telegram-bot.js +0 -183
- package/tools/_deprecated/telegram-setup.js +0 -214
- package/tools/_deprecated/twentyquestions.js +0 -143
- package/tools/_shared.js +0 -234
- package/tools/_work-context.js +0 -338
- package/tools/_work-context.manual-test.js +0 -199
- package/tools/_work-context.test.js +0 -260
- package/tools/activity.js +0 -220
- package/tools/agent-treasury.js +0 -288
- package/tools/analytics.js +0 -191
- package/tools/approve.js +0 -197
- package/tools/arcade.js +0 -173
- package/tools/artifacts-price.js +0 -107
- package/tools/ask-expert.js +0 -160
- package/tools/available.js +0 -120
- package/tools/become-expert.js +0 -150
- package/tools/broadcast.js +0 -325
- package/tools/chat.js +0 -202
- package/tools/collaborative-drawing.js +0 -286
- package/tools/connection-status.js +0 -178
- package/tools/earnings.js +0 -126
- package/tools/friends.js +0 -207
- package/tools/genesis.js +0 -233
- package/tools/gig-browse.js +0 -206
- package/tools/gig-complete.js +0 -144
- package/tools/health.js +0 -87
- package/tools/leaderboard.js +0 -117
- package/tools/lib/git-apply.js +0 -206
- package/tools/lib/git-bundle.js +0 -407
- package/tools/mint.js +0 -377
- package/tools/plan.js +0 -225
- package/tools/profile.js +0 -219
- package/tools/proof-of-work.js +0 -144
- package/tools/pulse.js +0 -218
- package/tools/reply.js +0 -166
- package/tools/reputation.js +0 -175
- package/tools/schedule.js +0 -367
- package/tools/search-messages.js +0 -123
- package/tools/session.js +0 -467
- package/tools/session_price.js +0 -128
- package/tools/smart-check.js +0 -201
- package/tools/social-processor.js +0 -445
- package/tools/streak.js +0 -147
- package/tools/stuck.js +0 -297
- package/tools/subscribe.js +0 -148
- package/tools/subscriptions.js +0 -134
- package/tools/tip.js +0 -193
- package/tools/wallet.js +0 -269
- package/tools/webhook-test.js +0 -388
- package/tools/withdraw.js +0 -145
- package/tools/work-summary.js +0 -96
- package/tools/workshop.js +0 -327
- /package/tools/{l2-bridge.js → _experimental/l2-bridge.js} +0 -0
- /package/tools/{l2.js → _experimental/l2.js} +0 -0
- /package/tools/{_deprecated/away.js → away.js} +0 -0
package/discord.js
CHANGED
|
@@ -60,7 +60,7 @@ async function post(content, options = {}) {
|
|
|
60
60
|
*/
|
|
61
61
|
async function postJoin(handle, oneLiner) {
|
|
62
62
|
const embed = {
|
|
63
|
-
color:
|
|
63
|
+
color: 0x6b8fff, // Spirit blue
|
|
64
64
|
title: `@${handle} joined /vibe`,
|
|
65
65
|
description: oneLiner || 'Building something',
|
|
66
66
|
footer: { text: 'slashvibe.dev' },
|
|
@@ -74,7 +74,7 @@ async function postJoin(handle, oneLiner) {
|
|
|
74
74
|
*/
|
|
75
75
|
async function postActivity(handle, action) {
|
|
76
76
|
const embed = {
|
|
77
|
-
color:
|
|
77
|
+
color: 0x2ecc71, // Green
|
|
78
78
|
description: `**@${handle}** ${action}`,
|
|
79
79
|
timestamp: new Date().toISOString()
|
|
80
80
|
};
|
|
@@ -86,17 +86,17 @@ async function postActivity(handle, action) {
|
|
|
86
86
|
*/
|
|
87
87
|
async function postStatus(handle, mood, note) {
|
|
88
88
|
const moodEmoji = {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
shipping: '🔥',
|
|
90
|
+
debugging: '🐛',
|
|
91
|
+
deep: '🧠',
|
|
92
|
+
afk: '☕',
|
|
93
|
+
celebrating: '🎉',
|
|
94
|
+
pairing: '👯'
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
const emoji = moodEmoji[mood] || '●';
|
|
98
98
|
const embed = {
|
|
99
|
-
color:
|
|
99
|
+
color: 0x9b59b6, // Purple
|
|
100
100
|
description: `${emoji} **@${handle}** is ${mood}${note ? `: "${note}"` : ''}`,
|
|
101
101
|
timestamp: new Date().toISOString()
|
|
102
102
|
};
|
|
@@ -108,7 +108,7 @@ async function postStatus(handle, mood, note) {
|
|
|
108
108
|
*/
|
|
109
109
|
async function postAnnouncement(message) {
|
|
110
110
|
const embed = {
|
|
111
|
-
color:
|
|
111
|
+
color: 0x6b8fff,
|
|
112
112
|
title: '/vibe',
|
|
113
113
|
description: message,
|
|
114
114
|
timestamp: new Date().toISOString()
|
|
@@ -120,12 +120,10 @@ async function postAnnouncement(message) {
|
|
|
120
120
|
* Post a conversation highlight
|
|
121
121
|
*/
|
|
122
122
|
async function postHighlight(handle, title, summary, threads = []) {
|
|
123
|
-
const threadList = threads.length > 0
|
|
124
|
-
? '\n\n**Open threads:**\n' + threads.map(t => `• ${t}`).join('\n')
|
|
125
|
-
: '';
|
|
123
|
+
const threadList = threads.length > 0 ? '\n\n**Open threads:**\n' + threads.map(t => `• ${t}`).join('\n') : '';
|
|
126
124
|
|
|
127
125
|
const embed = {
|
|
128
|
-
color:
|
|
126
|
+
color: 0xf39c12, // Gold/amber for highlights
|
|
129
127
|
title: `💬 ${title}`,
|
|
130
128
|
description: summary + threadList,
|
|
131
129
|
footer: { text: `shared by @${handle} · slashvibe.dev` },
|
|
@@ -142,13 +140,15 @@ async function postOnlineList(users) {
|
|
|
142
140
|
return post('_Room is quiet..._');
|
|
143
141
|
}
|
|
144
142
|
|
|
145
|
-
const list = users
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
143
|
+
const list = users
|
|
144
|
+
.map(u => {
|
|
145
|
+
const mood = u.mood ? ` ${u.mood}` : '';
|
|
146
|
+
return `• **@${u.handle}**${mood} — ${u.one_liner || 'building'}`;
|
|
147
|
+
})
|
|
148
|
+
.join('\n');
|
|
149
149
|
|
|
150
150
|
const embed = {
|
|
151
|
-
color:
|
|
151
|
+
color: 0x6b8fff,
|
|
152
152
|
title: `${users.length} online in /vibe`,
|
|
153
153
|
description: list,
|
|
154
154
|
footer: { text: 'slashvibe.dev' },
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const js = require('@eslint/js');
|
|
2
|
+
|
|
3
|
+
module.exports = [
|
|
4
|
+
js.configs.recommended,
|
|
5
|
+
{
|
|
6
|
+
languageOptions: {
|
|
7
|
+
ecmaVersion: 2022,
|
|
8
|
+
sourceType: 'commonjs',
|
|
9
|
+
globals: {
|
|
10
|
+
// Node.js globals
|
|
11
|
+
require: 'readonly',
|
|
12
|
+
module: 'readonly',
|
|
13
|
+
exports: 'readonly',
|
|
14
|
+
__dirname: 'readonly',
|
|
15
|
+
__filename: 'readonly',
|
|
16
|
+
process: 'readonly',
|
|
17
|
+
console: 'readonly',
|
|
18
|
+
Buffer: 'readonly',
|
|
19
|
+
setTimeout: 'readonly',
|
|
20
|
+
setInterval: 'readonly',
|
|
21
|
+
clearTimeout: 'readonly',
|
|
22
|
+
clearInterval: 'readonly',
|
|
23
|
+
URL: 'readonly',
|
|
24
|
+
URLSearchParams: 'readonly',
|
|
25
|
+
fetch: 'readonly',
|
|
26
|
+
global: 'readonly',
|
|
27
|
+
AbortController: 'readonly',
|
|
28
|
+
AbortSignal: 'readonly'
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
rules: {
|
|
32
|
+
'no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],
|
|
33
|
+
eqeqeq: ['error', 'smart'],
|
|
34
|
+
'no-var': 'error',
|
|
35
|
+
'prefer-const': 'warn',
|
|
36
|
+
'no-throw-literal': 'error',
|
|
37
|
+
'no-empty': ['warn', { allowEmptyCatch: true }],
|
|
38
|
+
'no-case-declarations': 'warn',
|
|
39
|
+
'no-prototype-builtins': 'warn',
|
|
40
|
+
'no-shadow-restricted-names': 'warn',
|
|
41
|
+
'no-useless-escape': 'warn'
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
// ESM files (use import/export)
|
|
45
|
+
{
|
|
46
|
+
files: ['auto-update.js', 'post-install.js'],
|
|
47
|
+
languageOptions: {
|
|
48
|
+
sourceType: 'module'
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
ignores: ['node_modules/', 'coverage/', 'dist/']
|
|
53
|
+
}
|
|
54
|
+
];
|