Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions client/src/components/app-store/moduleConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ import {
UserCircle,
Building2,
PoundSterling,
Globe,
Film,
CheckSquare,
type LucideIcon,
} from "lucide-react";

Expand Down Expand Up @@ -319,6 +322,54 @@ export const MODULE_CONFIG: Record<string, ModuleVisualConfig> = {
route: "/finance-director",
illustrationId: "app-illustrations/finance-director_hero_ij9k1l",
},
taskmaker: {
color: "#10b981",
icon: CheckSquare,
fullDescription:
"Project management boards for any purpose. Drag-and-drop kanban cards with priorities, checklists, due dates, and calendar sync — everything you need to organise work across teams.",
features: [
"Multi-board kanban layout",
"Drag-and-drop task cards",
"Priority levels & checklists",
"Calendar sync & due dates",
],
tagline: "Boards for every project",
heroGradient: "linear-gradient(135deg, #10b981, #059669, #064e3b)",
route: "/taskmaker",
illustrationId: "app-illustrations/taskmaker_hero_kl0m2n",
},
videohub: {
color: "#ef4444",
icon: Film,
fullDescription:
"Video feedback, embedding, and hosting in one place. Upload videos, review with timestamped comments, embed anywhere with a single link, or create instant landing pages for your content.",
features: [
"Video upload & hosting",
"Timestamped review comments",
"One-click embed codes",
"Instant video landing pages",
],
tagline: "Upload, review, embed, share",
heroGradient: "linear-gradient(135deg, #ef4444, #dc2626, #991b1b)",
route: "/videohub",
illustrationId: "app-illustrations/videohub_hero_mn1o3p",
},
"community-amplifier": {
color: "#3b82f6",
icon: Globe,
fullDescription:
"Discover where your audience gathers. Find groups, forums, and communities across 10+ platforms with AI-powered engagement playbooks that help you show up authentically and grow your reach.",
features: [
"Cross-platform community discovery",
"AI-powered engagement playbooks",
"Audience gathering analysis",
"10+ platform coverage",
],
tagline: "Find your audience where they already are",
heroGradient: "linear-gradient(135deg, #3b82f6, #2563eb, #1e3a5f)",
route: "/community-amplifier",
illustrationId: "app-illustrations/community-amplifier_hero_op2q4r",
},
};

/** Icon lookup by iconName string (fallback for modules not in config) */
Expand All @@ -341,6 +392,9 @@ export const ICON_MAP: Record<string, LucideIcon> = {
UserCircle,
Building2,
PoundSterling,
Globe,
Film,
CheckSquare,
};

/** Fallback: get module config with sensible defaults */
Expand Down
54 changes: 53 additions & 1 deletion client/src/lib/suite/tool-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* to determine available tools and their access requirements.
*/

import { Sparkles, Send, Bot, Users, Users2, Search, MessageCircle, FileEdit, Share2, Calendar, CalendarDays, BarChart3, LucideIcon, Layers, Film, Gamepad2, FileText, Eye, Mail, CheckSquare } from "lucide-react";
import { Sparkles, Send, Bot, Users, Users2, Search, MessageCircle, FileEdit, Share2, Calendar, CalendarDays, BarChart3, LucideIcon, Layers, Film, Gamepad2, FileText, Eye, Mail, CheckSquare, Video, PoundSterling, Globe } from "lucide-react";

/**
* Tool status determines visibility and accessibility:
Expand Down Expand Up @@ -323,6 +323,58 @@ export const TOOL_REGISTRY: ToolDefinition[] = [
matchPaths: ['/taskmaker'],
defaultRoute: '/taskmaker',
},
{
id: 'sceneforge',
label: 'SceneForge',
baseRoute: '/sceneforge',
navType: 'internal',
status: 'live',
entitlementKey: 'canAccessSceneForge',
icon: Video,
order: 20,
description: 'Avatar video creation with webcam motion capture',
matchPaths: ['/sceneforge'],
defaultRoute: '/sceneforge',
},
{
id: 'finance-director',
label: 'Finance Director',
baseRoute: '/finance-director',
navType: 'internal',
status: 'live',
entitlementKey: 'canAccessFinanceDirector',
icon: PoundSterling,
order: 21,
description: 'Bookkeeping, tax, and financial overview',
matchPaths: ['/finance-director'],
defaultRoute: '/finance-director',
},
{
id: 'videohub',
label: 'VideoHub',
baseRoute: '/videohub',
navType: 'internal',
status: 'live',
entitlementKey: null, // Available to all authenticated users
icon: Film,
order: 22,
description: 'Video feedback, embedding, and hosting',
matchPaths: ['/videohub'],
defaultRoute: '/videohub',
},
{
id: 'community-amplifier',
label: 'Community Amplifier',
baseRoute: '/community-amplifier',
navType: 'internal',
status: 'live',
entitlementKey: null, // Available to all authenticated users
icon: Globe,
order: 23,
description: 'Community discovery and engagement engine',
matchPaths: ['/community-amplifier'],
defaultRoute: '/community-amplifier',
},
];

/**
Expand Down
7 changes: 5 additions & 2 deletions scripts/seed-modules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,26 @@ const modulesSeed = [
{ slug: "social", name: "Social Studio", description: "Generate platform-specific social posts", category: "create", iconName: "Share2", tier: "core", routePath: "/social", sortOrder: 3 },
{ slug: "pitchpage", name: "PitchPage", description: "Deliver and track pitches", category: "create", iconName: "Send", tier: "core", routePath: "/pitchpage", sortOrder: 4 },
{ slug: "assembly", name: "Assembly", description: "Production collaboration — from social videos to feature films", category: "create", iconName: "Clapperboard", tier: "premium", routePath: "/assembly", sortOrder: 5 },
{ slug: "sceneforge", name: "SceneForge", description: "Create avatar videos using your webcam. Drive 3D characters in real-time with AI motion capture — no green screen, no cloud rendering, no downloads.", category: "create", iconName: "Video", tier: "premium", routePath: "/sceneforge", sortOrder: 6 },
{ slug: "sceneforge", name: "SceneForge", description: "Create avatar videos using your webcammotion capture, virtual backgrounds, and instant export", category: "create", iconName: "Video", tier: "premium", routePath: "/sceneforge", sortOrder: 8 },
{ slug: "scriptmaker", name: "ScriptMaker", description: "Professional scriptwriting for stage, screen, and TV. Industry-standard formatting with smart auto-complete and export to PDF and Final Draft.", category: "create", iconName: "Clapperboard", tier: "free", routePath: "/scriptmaker", sortOrder: 7 },
{ slug: "videohub", name: "VideoHub", description: "Video feedback, embedding, and hosting — upload, review with timestamped comments, embed anywhere, or create instant landing pages", category: "create", iconName: "Film", tier: "premium", routePath: "/videohub", sortOrder: 9 },

// GROW category (accent: #3B82F6)
{ slug: "prospecting", name: "Prospecting", description: "Discover and enrich business prospects", category: "grow", iconName: "Search", tier: "core", routePath: "/prospecting", sortOrder: 1 },
{ slug: "outreach", name: "Outreach Agent", description: "Judgment-based outreach automation", category: "grow", iconName: "MessageCircle", tier: "premium", routePath: "/outreach", sortOrder: 2 },
{ slug: "scorecards", name: "Scorecards", description: "Create assessments with lead capture", category: "grow", iconName: "BarChart3", tier: "core", routePath: "/scorecards", sortOrder: 3 },
{ slug: "crm", name: "CRM", description: "Manage contacts and relationships", category: "grow", iconName: "Users", tier: "core", routePath: "/crm", sortOrder: 4 },
{ slug: "mailstream", name: "MailStream", description: "Smart email intelligence layer", category: "grow", iconName: "Mail", tier: "core", routePath: "/mailstream", sortOrder: 5 },
{ slug: "community-amplifier", name: "Community Amplifier", description: "Find and engage communities where your target audience gathers", category: "grow", iconName: "Users", tier: "premium", routePath: "/community-amplifier", sortOrder: 8 },
{ slug: "community-amplifier", name: "Community Amplifier", description: "Discover where your audience gathers — find groups, forums, and communities across 10+ platforms with AI-powered engagement playbooks", category: "grow", iconName: "Globe", tier: "premium", routePath: "/community-amplifier", sortOrder: 8 },

// PLAN category (accent: #A855F7)
{ slug: "characterx", name: "Character X", description: "Create customer protagonists", category: "plan", iconName: "Bot", tier: "premium", routePath: "/characterx", sortOrder: 1 },
{ slug: "planner", name: "90-Day Planner", description: "Plan your quarter, execute weekly", category: "plan", iconName: "Calendar", tier: "core", routePath: "/planner", sortOrder: 2 },
{ slug: "continuity", name: "Continuity Engine", description: "Manage characters, scenes and worlds", category: "plan", iconName: "Layers", tier: "premium", routePath: "/continuity", sortOrder: 3 },
{ slug: "funding-radar", name: "Funding Radar", description: "Discover grants, loans, and investment matched to your business", category: "plan", iconName: "Radar", tier: "free", routePath: "/funding-radar", sortOrder: 4 },
{ slug: "calendar", name: "Smart Calendar", description: "Platform-native calendar with scheduling links and external sync", category: "plan", iconName: "CalendarDays", tier: "core", routePath: "/calendar", sortOrder: 5 },
{ slug: "taskmaker", name: "TaskMaker", description: "Project management boards for any purpose — drag-and-drop kanban cards, priorities, checklists, and calendar sync", category: "plan", iconName: "CheckSquare", tier: "core", routePath: "/taskmaker", sortOrder: 6 },
{ slug: "finance-director", name: "Finance Director", description: "Your bookkeeping, tax, and financial overview — upload bank statements, categorise transactions, and track tax obligations", category: "plan", iconName: "PoundSterling", tier: "core", routePath: "/finance-director", sortOrder: 7 },
];

const planTiersSeed = [
Expand Down