slashvibe-mcp 0.5.21 → 0.5.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/index.js +3 -1
- package/package.json +1 -1
- package/store/api.js +1 -0
- package/tools/dm.js +8 -1
- package/tools/intro.js +1 -1
- package/tools/weave.js +3 -3
package/index.js
CHANGED
|
@@ -217,7 +217,9 @@ async function getPresenceFooter() {
|
|
|
217
217
|
// when it will actually resolve. See ROOM-PRESENCE-BRIDGE.md.
|
|
218
218
|
const liveRooms = others.filter(u => u.isLive && u.broadcastRoom);
|
|
219
219
|
if (liveRooms.length > 0) {
|
|
220
|
-
|
|
220
|
+
// Confirmed room-join format (coltrane lane, Jul 9): /room/<slug> serves
|
|
221
|
+
// 200; env override kept for other room backends.
|
|
222
|
+
const base = process.env.VIBE_ROOM_URL_BASE || 'https://vibeconferencing.com/room/';
|
|
221
223
|
footer += '\n';
|
|
222
224
|
footer += liveRooms.slice(0, 3).map(u => {
|
|
223
225
|
const where = `🔴 @${u.handle} live in the ${u.broadcastRoom}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "slashvibe-mcp",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.23",
|
|
4
4
|
"mcpName": "io.github.vibecodinginc/vibe",
|
|
5
5
|
"description": "Social layer for Claude Code - DMs, presence, Matrix multiplayer rooms, and connection between AI-assisted developers",
|
|
6
6
|
"main": "index.js",
|
package/store/api.js
CHANGED
|
@@ -439,6 +439,7 @@ async function sendMessage(from, to, body, type = 'dm', payload = null, options
|
|
|
439
439
|
body: body || '',
|
|
440
440
|
payload: payload || undefined,
|
|
441
441
|
reply_to: options.replyTo || undefined, // Threaded reply support
|
|
442
|
+
origin: options.origin || undefined, // work-object lifecycle state
|
|
442
443
|
};
|
|
443
444
|
console.error('[vibe] Sending message via v2 API (Postgres-backed) to:', to, 'body length:', (body || '').length);
|
|
444
445
|
}
|
package/tools/dm.js
CHANGED
|
@@ -40,6 +40,10 @@ const definition = {
|
|
|
40
40
|
tip_amount_cents: {
|
|
41
41
|
type: 'number',
|
|
42
42
|
description: 'Optional: Attach an instant USDC tip (100 = $1, 500 = $5, 1000 = $10)'
|
|
43
|
+
},
|
|
44
|
+
origin: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: "How this message came to be. Omit for a normal message you're composing. Pass the value the drafting tool told you to use when sending a draft it produced: 'intro' (vibe_intro), 'stuck_solver' (vibe_weave solve), 'held_half' (a Fable-held reply), 'fable'."
|
|
43
47
|
}
|
|
44
48
|
},
|
|
45
49
|
required: ['handle']
|
|
@@ -50,7 +54,7 @@ async function handler(args) {
|
|
|
50
54
|
const initCheck = requireInit();
|
|
51
55
|
if (initCheck) return initCheck;
|
|
52
56
|
|
|
53
|
-
const { handle, message, artifact_slug, payload, reply_to, tip_amount_cents } = args;
|
|
57
|
+
const { handle, message, artifact_slug, payload, reply_to, tip_amount_cents, origin } = args;
|
|
54
58
|
const myHandle = config.getHandle();
|
|
55
59
|
const them = normalizeHandle(handle);
|
|
56
60
|
|
|
@@ -101,6 +105,9 @@ async function handler(args) {
|
|
|
101
105
|
|
|
102
106
|
const result = await store.sendMessage(myHandle, them, finalMessage || null, 'dm', finalPayload, {
|
|
103
107
|
replyTo: reply_to || null,
|
|
108
|
+
// Default to 'composed' (a human wrote it); drafting tools pass their own
|
|
109
|
+
// origin so the network's derived messages are distinguishable in the funnel.
|
|
110
|
+
origin: origin || 'composed',
|
|
104
111
|
});
|
|
105
112
|
|
|
106
113
|
// Check for errors
|
package/tools/intro.js
CHANGED
|
@@ -92,7 +92,7 @@ async function handler(args = {}) {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
const dm = require('./dm');
|
|
95
|
-
const result = await dm.handler({ handle: target, message });
|
|
95
|
+
const result = await dm.handler({ handle: target, message, origin: 'intro' });
|
|
96
96
|
// dm.handler already returns a display + marks firstDmSent on success.
|
|
97
97
|
if (result && result.display && /failed/i.test(result.display)) return result;
|
|
98
98
|
|
package/tools/weave.js
CHANGED
|
@@ -189,7 +189,7 @@ async function weaveMoment(myHandle) {
|
|
|
189
189
|
`\n> ${inbound}` +
|
|
190
190
|
`\n\n_Fable can hold your half here — draft the reply in your voice from what you were building, ` +
|
|
191
191
|
`show it, and send it with one word. Draft it now, then: **send it (y) · edit · let it sit**. ` +
|
|
192
|
-
`On yes, deliver with \`vibe_dm @${held.handle}
|
|
192
|
+
`On yes, deliver with \`vibe_dm @${held.handle}\` (origin: "held_half")._`;
|
|
193
193
|
if (held.otherWaiting > 0) {
|
|
194
194
|
block += `\n_(+${held.otherWaiting} more thread${held.otherWaiting > 1 ? 's' : ''} waiting on you.)_`;
|
|
195
195
|
}
|
|
@@ -218,7 +218,7 @@ async function handler(args = {}) {
|
|
|
218
218
|
`🧵 **@${held.handle} replied ${held.inboundAgo} — you haven't answered:**\n` +
|
|
219
219
|
`> ${truncate(held.inbound, 280)}\n\n` +
|
|
220
220
|
`Draft @${myHandle}'s reply in their voice from what they were building, show it, then ask: ` +
|
|
221
|
-
`**send it (y) · edit · let it sit**. On yes, send with \`vibe_dm @${held.handle}
|
|
221
|
+
`**send it (y) · edit · let it sit**. On yes, send with \`vibe_dm @${held.handle}\` (origin: "held_half").`,
|
|
222
222
|
_heldHalf: held,
|
|
223
223
|
};
|
|
224
224
|
}
|
|
@@ -278,7 +278,7 @@ async function handler(args = {}) {
|
|
|
278
278
|
` 1. Name the shape of what worked for them (from their text above), so the user gets ` +
|
|
279
279
|
`unstuck even without talking.\n` +
|
|
280
280
|
` 2. Offer a warm thread: "@${'{handle}'} hit this and shipped a fix — want me to open a ` +
|
|
281
|
-
`thread so you can ask? (y)". On yes, send with \`vibe_dm @{handle}\` in the user's voice.\n` +
|
|
281
|
+
`thread so you can ask? (y)". On yes, send with \`vibe_dm @{handle}\` (origin: "stuck_solver") in the user's voice.\n` +
|
|
282
282
|
`If NONE is truly the same problem, say so plainly — never fabricate a match or a fix.`,
|
|
283
283
|
_solvers: candidates,
|
|
284
284
|
};
|