feat(canvas): replace video chat with rMeets embed in toolbar

Replace folk-video-chat toolbar button with rMeets (Jitsi) rApp
embed in the Connect group. Add rmeets, rschedule, rsocials to
folk-rapp MODULE_META. Add rMeets entry to MI tool schema.

The old folk-video-chat shape remains available for direct use
but is no longer in the toolbar.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-03-09 20:01:37 -07:00
parent e76bc09151
commit 9aab4c6409
3 changed files with 8 additions and 3 deletions

View File

@ -38,6 +38,9 @@ const MODULE_META: Record<string, { badge: string; color: string; name: string;
rcal: { badge: "rC", color: "#7dd3fc", name: "rCal", icon: "📅" }, rcal: { badge: "rC", color: "#7dd3fc", name: "rCal", icon: "📅" },
rtrips: { badge: "rT", color: "#6ee7b7", name: "rTrips", icon: "✈️" }, rtrips: { badge: "rT", color: "#6ee7b7", name: "rTrips", icon: "✈️" },
rmaps: { badge: "rM", color: "#86efac", name: "rMaps", icon: "🗺️" }, rmaps: { badge: "rM", color: "#86efac", name: "rMaps", icon: "🗺️" },
rmeets: { badge: "rMe", color: "#6ee7b7", name: "rMeets", icon: "📹" },
rschedule: { badge: "rSc", color: "#93c5fd", name: "rSchedule", icon: "⏰" },
rsocials: { badge: "rSo", color: "#f9a8d4", name: "rSocials", icon: "📱" },
}; };
const styles = css` const styles = css`

View File

@ -22,7 +22,8 @@ const TOOL_HINTS: ToolHint[] = [
{ tagName: "folk-video-gen", label: "AI Video", icon: "🎬", keywords: ["video", "clip", "animate", "movie", "film"] }, { tagName: "folk-video-gen", label: "AI Video", icon: "🎬", keywords: ["video", "clip", "animate", "movie", "film"] },
{ tagName: "folk-prompt", label: "AI Chat", icon: "🤖", keywords: ["ai", "prompt", "llm", "assistant", "gpt"] }, { tagName: "folk-prompt", label: "AI Chat", icon: "🤖", keywords: ["ai", "prompt", "llm", "assistant", "gpt"] },
{ tagName: "folk-transcription", label: "Transcribe", icon: "🎙️", keywords: ["transcribe", "audio", "speech", "voice", "record"] }, { tagName: "folk-transcription", label: "Transcribe", icon: "🎙️", keywords: ["transcribe", "audio", "speech", "voice", "record"] },
{ tagName: "folk-video-chat", label: "Video Call", icon: "📹", keywords: ["video call", "webcam", "meeting"] }, { tagName: "folk-video-chat", label: "Video Call", icon: "📹", keywords: ["video call", "webcam", "peer to peer"] },
{ tagName: "folk-rapp", label: "rMeets", icon: "📹", keywords: ["meeting", "jitsi", "video", "meet", "conference", "rmeets"] },
{ tagName: "folk-workflow-block", label: "Workflow", icon: "⚙️", keywords: ["workflow", "automation", "block", "process"] }, { tagName: "folk-workflow-block", label: "Workflow", icon: "⚙️", keywords: ["workflow", "automation", "block", "process"] },
{ tagName: "folk-social-post", label: "Social Post", icon: "📣", keywords: ["social", "post", "twitter", "instagram", "campaign"] }, { tagName: "folk-social-post", label: "Social Post", icon: "📣", keywords: ["social", "post", "twitter", "instagram", "campaign"] },
{ tagName: "folk-splat", label: "3D Gaussian", icon: "💎", keywords: ["3d", "splat", "gaussian", "point cloud"] }, { tagName: "folk-splat", label: "3D Gaussian", icon: "💎", keywords: ["3d", "splat", "gaussian", "point cloud"] },

View File

@ -1885,7 +1885,7 @@
<div class="toolbar-dropdown"> <div class="toolbar-dropdown">
<div class="toolbar-dropdown-header">Connect</div> <div class="toolbar-dropdown-header">Connect</div>
<button id="new-chat" title="New Chat">💬 Chat</button> <button id="new-chat" title="New Chat">💬 Chat</button>
<button id="new-video-chat" title="Video Meet">📹 Video Meet</button> <button id="embed-meets" title="rMeets">📹 rMeets</button>
<button id="new-record" title="Record" class="toolbar-disabled">🔴 Record</button> <button id="new-record" title="Record" class="toolbar-disabled">🔴 Record</button>
</div> </div>
</div> </div>
@ -3794,7 +3794,7 @@
document.getElementById("new-zine-gen").addEventListener("click", () => setPendingTool("folk-zine-gen")); document.getElementById("new-zine-gen").addEventListener("click", () => setPendingTool("folk-zine-gen"));
document.getElementById("new-prompt").addEventListener("click", () => setPendingTool("folk-prompt")); document.getElementById("new-prompt").addEventListener("click", () => setPendingTool("folk-prompt"));
document.getElementById("new-transcription").addEventListener("click", () => setPendingTool("folk-transcription")); document.getElementById("new-transcription").addEventListener("click", () => setPendingTool("folk-transcription"));
document.getElementById("new-video-chat").addEventListener("click", () => setPendingTool("folk-video-chat")); // rMeets is now handled via rApp embed (embed-meets in rAppModules array)
document.getElementById("new-record").addEventListener("click", () => setPendingTool("folk-record")); document.getElementById("new-record").addEventListener("click", () => setPendingTool("folk-record"));
document.getElementById("new-stream").addEventListener("click", () => setPendingTool("folk-stream")); document.getElementById("new-stream").addEventListener("click", () => setPendingTool("folk-stream"));
document.getElementById("new-workflow").addEventListener("click", () => { document.getElementById("new-workflow").addEventListener("click", () => {
@ -4066,6 +4066,7 @@
{ btnId: "embed-data", moduleId: "rdata" }, { btnId: "embed-data", moduleId: "rdata" },
{ btnId: "embed-network", moduleId: "rnetwork" }, { btnId: "embed-network", moduleId: "rnetwork" },
{ btnId: "embed-swag", moduleId: "rswag" }, { btnId: "embed-swag", moduleId: "rswag" },
{ btnId: "embed-meets", moduleId: "rmeets" },
]; ];
for (const app of rAppModules) { for (const app of rAppModules) {