HoloScript Plugin Ecosystem - Hololand Integration TODOs
Purpose: Extend all HoloScript plugins (Core, VS Code, IntelliJ, Neovim) to support Hololand's 3-layer architecture (AR → VRR → VR), x402 payments, AI agents, and creator monetization.
Status: Plugin ecosystem has basic VR/AR support. This document outlines expansion to full Hololand business features.
📋 Plugin Inventory
1. Core Plugin System
Location: packages/core/src/plugins/
- ✅ PluginAPI.ts - Sandboxed plugin API with permissions
- ✅ PluginLoader.ts - Dynamic plugin loading
- ✅ ModRegistry.ts - Mod/extension registry
Current Capabilities:
- Event system (on/off/emit)
- Asset registration (mesh, texture, audio, script, shader, data)
- Command registration
- Isolated state store per plugin
- Permission-based scene access
Missing Hololand Features: VRR sync hooks, x402 payment events, AgentKit wallet access, Zora NFT minting, AR entry point triggers
2. Core Extension System
Location: packages/core/src/extensions/
- ✅ ExtensionRegistry.ts - Extension loading/unloading
- ✅ ExtensionInterface.ts - Extension interface definition
- ✅ AgentExtensionTypes.ts - AI agent extension types
Current Capabilities:
- Trait registration
- Function registration
- Extension lifecycle (onLoad/onUnload)
Missing Hololand Features: VRR compiler extensions, AR compiler extensions, x402 payment provider extensions, Zora marketplace extensions
3. VS Code Extension
Location: packages/vscode-extension/
- ✅ extension.ts - Main extension entry point
- ✅ services/ - Language services, LSP client
- ✅ collaboration/ - Real-time collaboration
- ✅ git/ - Semantic diff, 3D diff preview
- ✅ previewPanel.ts - 3D live preview
- ✅ holohubView.ts - Marketplace integration
- ✅ agentApi.ts - AI agent commands
Current Capabilities:
- MCP orchestrator integration
- AI auto-suggestions
- Live 3D preview
- Collaboration (cursors, selections, real-time editing)
- Semantic diff for VR scenes
- Smart asset viewer
Missing Hololand Features: VRR twin preview, AR QR scanner preview, x402 payment simulation, business quest builder UI, StoryWeaver AI narrative generation
4. IntelliJ Plugin
Location: packages/intellij/
- ✅ build.gradle.kts - Gradle build configuration
- ✅ src/ - IntelliJ plugin source (Java/Kotlin)
Current Capabilities: Syntax highlighting, basic IDE support
Missing Hololand Features: Full feature parity with VS Code extension (VRR preview, quest builder, etc.)
5. Neovim Plugin
Location: packages/neovim/plugin/
- ✅ holoscript.vim - Neovim plugin
Current Capabilities: Syntax highlighting, basic Vim integration
Missing Hololand Features: LSP integration, VRR preview (via terminal graphics), inline quest editing
🎯 Hololand Integration Goals
Phase 1: Core Plugin API Extensions (Week 1-2)
File: packages/core/src/plugins/PluginAPI.ts
Add New Asset Types:
export interface PluginAsset {
id: string;
type:
| 'mesh'
| 'texture'
| 'audio'
| 'script'
| 'shader'
| 'data'
| 'vrr_twin' // NEW: VRR twin asset
| 'ar_marker' // NEW: AR QR code/marker
| 'quest_pack' // NEW: Business quest bundle
| 'nft_metadata'; // NEW: Zora NFT metadata
path: string;
pluginId: string;
metadata?: Record<string, unknown>;
}Add New Events:
// VRR Real-Time Sync Events
on('vrr:weather_update', (data: WeatherData) => void);
on('vrr:event_sync', (events: EventData[]) => void);
on('vrr:inventory_sync', (inventory: InventoryData) => void);
// x402 Payment Events
on('x402:payment_required', (details: PaymentDetails) => void);
on('x402:payment_received', (receipt: PaymentReceipt) => void);
on('x402:payment_failed', (error: PaymentError) => void);
// AR Entry Events
on('ar:qr_scanned', (qrData: QRScanData) => void);
on('ar:portal_opened', (portalInfo: ARPortalInfo) => void);
on('ar:layer_transition', (transition: LayerTransition) => void);
// AgentKit Wallet Events
on('agentkit:wallet_created', (wallet: AgentWallet) => void);
on('agentkit:nft_minted', (nft: NFTData) => void);
on('agentkit:royalty_received', (royalty: RoyaltyEvent) => void);
// StoryWeaver AI Events
on('storyweaver:narrative_generated', (narrative: AIGeneratedNarrative) => void);
on('storyweaver:quest_created', (quest: AIGeneratedQuest) => void);
// Business Quest Events
on('quest:created', (quest: QuestDefinition) => void);
on('quest:progress_updated', (progress: QuestProgress) => void);
on('quest:completed', (completion: QuestCompletion) => void);
on('quest:reward_claimed', (reward: QuestReward) => void);Add New Permissions:
export type PluginPermission =
| 'filesystem:read'
| 'filesystem:write'
| 'scene:read'
| 'scene:write'
| 'network'
// NEW: Hololand-specific permissions
| 'vrr:sync' // Access VRR real-time sync APIs
| 'x402:payment' // Trigger x402 payments
| 'ar:camera' // Access device camera for AR
| 'agentkit:wallet' // Access AI agent wallet
| 'zora:nft_mint' // Mint NFTs via Zora
| 'storyweaver:ai' // Access StoryWeaver AI services
| 'quest:create' // Create business quests
| 'quest:manage'; // Manage quest stateAdd Hololand API Methods:
// VRR Sync
syncVRRWeather(callback: (weather: WeatherData) => void): void;
syncVRREvents(callback: (events: EventData[]) => void): void;
syncVRRInventory(businessId: string, callback: (inventory: InventoryData) => void): void;
// x402 Payments
requirePayment(price: number, asset: 'USDC' | 'ETH'): Promise<PaymentReceipt>;
verifyPayment(receiptId: string): Promise<boolean>;
// AR Entry Points
startQRScanner(trigger: string, callback: (data: QRScanData) => void): void;
createARPortal(destination: string, price?: number): ARPortal;
// AgentKit Wallet
createAgentWallet(agentId: string): Promise<AgentWallet>;
mintNFT(metadata: NFTMetadata): Promise<{ tokenId: string }>;
payX402(endpoint: string, price: number): Promise<{ txHash: string }>;
// StoryWeaver AI
generateNarrative(prompt: string, theme: string): Promise<string>;
generateQuest(businessId: string, theme: string): Promise<QuestDefinition>;
// Business Quests
createQuest(config: QuestConfig): Promise<string>;
updateQuestProgress(questId: string, playerId: string, progress: number): Promise<void>;
completeQuest(questId: string, playerId: string): Promise<QuestReward>;Phase 2: VS Code Extension Enhancements (Week 2-4)
File: packages/vscode-extension/src/extension.ts
New Commands:
// VRR Twin Commands
'holoscript.vrr.createTwin' - Create new VRR twin from HoloScript
'holoscript.vrr.syncWeather' - Manually trigger weather sync
'holoscript.vrr.previewTwin' - Preview VRR twin in 3D viewer
// AR Entry Point Commands
'holoscript.ar.createEntry' - Create AR entry point
'holoscript.ar.testQRScanner' - Test QR scanner in preview
'holoscript.ar.previewOverlay' - Preview camera overlay
// x402 Payment Commands
'holoscript.x402.simulate' - Simulate x402 payment flow
'holoscript.x402.configurePaywall' - Configure paywall for VRR/VR
// AgentKit Commands
'holoscript.agentkit.createWallet' - Create AI agent wallet
'holoscript.agentkit.mintNFT' - Mint VRR twin as NFT
'holoscript.agentkit.viewBalance' - View agent wallet balance
// Zora Creator Commands
'holoscript.zora.mintNFT' - Mint content as NFT on Zora
'holoscript.zora.uploadIPFS' - Upload metadata to IPFS
'holoscript.zora.viewRoyalties' - View creator royalty earnings
// StoryWeaver AI Commands
'holoscript.storyweaver.generateQuest' - AI-generate quest narrative
'holoscript.storyweaver.generateWorld' - AI-generate VR world
'holoscript.storyweaver.synthesizeVoice' - TTS for AI narrator
// Business Quest Builder Commands
'holoscript.quest.openBuilder' - Open no-code quest builder UI
'holoscript.quest.preview' - Preview quest flow
'holoscript.quest.publish' - Publish quest to productionNew Configuration (package.json):
"holoscript.vrr.weatherProvider": {
"type": "string",
"enum": ["weather.gov", "openweathermap", "weatherapi"],
"default": "weather.gov",
"description": "Weather API provider for VRR twins"
},
"holoscript.vrr.syncInterval": {
"type": "number",
"default": 300000,
"description": "VRR sync interval in milliseconds (default 5 min)"
},
"holoscript.x402.enabled": {
"type": "boolean",
"default": true,
"description": "Enable x402 payment protocol simulation"
},
"holoscript.agentkit.network": {
"type": "string",
"enum": ["base", "ethereum", "base-sepolia"],
"default": "base-sepolia",
"description": "Blockchain network for AgentKit wallets"
},
"holoscript.storyweaver.provider": {
"type": "string",
"enum": ["openai", "anthropic", "gemini"],
"default": "openai",
"description": "LLM provider for StoryWeaver AI"
},
"holoscript.quest.autoSave": {
"type": "boolean",
"default": true,
"description": "Auto-save quest builder state"
}New Views (package.json contributes.views):
{
"id": "holoscript.vrrTwins",
"name": "VRR Twins",
"icon": "icons/vrr-twin.svg"
},
{
"id": "holoscript.businessQuests",
"name": "Business Quests",
"icon": "icons/quest.svg"
},
{
"id": "holoscript.agentWallets",
"name": "AI Agent Wallets",
"icon": "icons/wallet.svg"
},
{
"id": "holoscript.creatorNFTs",
"name": "Creator NFTs",
"icon": "icons/nft.svg"
}New Services:
services/
├── VRRSyncService.ts // Real-time VRR synchronization
├── X402PaymentService.ts // Payment protocol simulation
├── AgentKitService.ts // AI agent wallet management
├── ZoraMarketplaceService.ts // NFT minting via Zora
├── StoryWeaverAIService.ts // AI narrative generation
├── QuestBuilderService.ts // No-code quest builder backend
└── ARPreviewService.ts // AR entry point previewPhase 3: Extension System Enhancements (Week 3-4)
File: packages/core/src/extensions/ExtensionRegistry.ts
New Extension Types:
export interface HololandExtension extends HoloExtension {
// VRR Compiler Extension
compileVRRTwin?: (composition: HoloComposition) => VRRTwinOutput;
// AR Compiler Extension
compileAREntry?: (composition: HoloComposition) => AREntryOutput;
// x402 Payment Provider Extension
handleX402Payment?: (payment: PaymentRequest) => Promise<PaymentReceipt>;
// Zora Marketplace Extension
mintNFT?: (metadata: NFTMetadata) => Promise<ZoraNFTResult>;
// StoryWeaver AI Provider Extension
generateNarrative?: (prompt: string) => Promise<string>;
// Quest Builder Extension
createQuest?: (config: QuestConfig) => Promise<QuestDefinition>;
}Example Extension (VRR Weather Sync):
// packages/core/src/extensions/VRRWeatherExtension.ts
export const VRRWeatherExtension: HololandExtension = {
id: 'vrr-weather-sync',
name: 'VRR Weather Synchronization',
version: '1.0.0',
onLoad(context) {
context.logger.info('VRR Weather Sync Extension loaded');
// Register VRR weather sync trait
context.registerTrait('weather_sync', (node, params) => {
const { provider, refresh } = params;
// Fetch weather data every 'refresh' interval
const syncWeather = async () => {
try {
const response = await fetch(`https://api.weather.gov/...`);
const weather = await response.json();
// Update scene lighting based on weather
node.skyColor = weather.sky_color;
node.sunIntensity = weather.sun_intensity;
context.logger.info(`Weather updated: ${weather.condition}`);
} catch (error) {
context.logger.error('Weather sync failed:', error);
}
};
// Initial sync
syncWeather();
// Periodic sync
setInterval(syncWeather, refresh);
});
},
onUnload(context) {
context.logger.info('VRR Weather Sync Extension unloaded');
},
};Phase 4: Webview Components (Week 4-6)
File: packages/vscode-extension/src/webview/
New Webview Panels:
VRR Twin Preview Panel (
webview/VRRTwinPreview.tsx):- Live Three.js preview with real-time weather/events/inventory sync
- Side-by-side comparison with real-world location (Google Maps)
- Sync status indicators
- Manual refresh buttons
Business Quest Builder Panel (
webview/QuestBuilder.tsx):- No-code quest flow builder (drag-and-drop nodes)
- AR/VRR/VR step configuration
- Reward management (coupons, discounts)
- AI quest generation (StoryWeaver integration)
- Quest preview mode
AR Entry Point Simulator (
webview/ARSimulator.tsx):- QR code generator
- Camera feed simulation
- AR overlay preview
- Portal visualization
- State persistence test
Agent Wallet Dashboard (
webview/AgentWalletDashboard.tsx):- Wallet balance (USDC, ETH)
- Transaction history
- NFT minting interface
- Royalty earnings tracker
- Revenue reinvestment settings
Creator NFT Studio (
webview/CreatorNFTStudio.tsx):- VRR twin → NFT metadata generator
- IPFS upload interface
- Zora marketplace listing
- Royalty configuration (10-15%)
- Revenue analytics
StoryWeaver AI Composer (
webview/StoryWeaverComposer.tsx):- AI narrative prompt input
- Theme/genre selection
- Generated narrative output
- Quest objective generator
- NPC dialogue generator
- Voice synthesis preview
Phase 5: IntelliJ & Neovim Parity (Week 5-6)
IntelliJ Plugin (packages/intellij/src/):
- Port VS Code extension features to IntelliJ IDEA
- Implement webview equivalents using Swing/JavaFX
- Add Kotlin-based LSP client for Hololand features
- Integrate with IntelliJ's HTTP Client for x402 simulation
Neovim Plugin (packages/neovim/plugin/holoscript.vim):
- Implement LSP client for Hololand features
- Add terminal-based quest builder (ncurses/TUI)
- VRR preview via terminal graphics (Kitty/iTerm2)
- AR QR code generation (ASCII art)
- Wallet balance display in status line
🧪 Testing Requirements
Unit Tests
- [ ] Core Plugin API new events
- [ ] Core Plugin API new permissions
- [ ] Core Plugin API Hololand methods
- [ ] Extension system VRR/AR extensions
- [ ] VS Code command handlers
- [ ] Webview component rendering
Integration Tests
- [ ] VRR twin preview with live weather sync
- [ ] AR QR scanner simulation
- [ ] x402 payment flow end-to-end
- [ ] Quest builder → HoloScript compiler
- [ ] AgentKit wallet → NFT minting
- [ ] StoryWeaver AI → quest generation
E2E Tests
- [ ] Business owner creates VRR twin with quest
- [ ] AI agent mints VRR twin as NFT
- [ ] Player scans QR → AR → VRR → VR funnel
- [ ] Creator mints VR world on Zora, earns royalties
📊 Success Metrics
Developer Experience:
- Time to create VRR twin: <5 minutes (vs 30 minutes manual)
- Quest creation time: <10 minutes (no-code builder vs 2 hours coding)
- NFT minting friction: 1-click vs multi-step process
Business Impact:
- AR entry points: 10x increase in VRR engagement
- Quest creation: 50+ businesses create quests (vs 0 today)
- Creator NFTs: 100+ VRR twins/VR worlds minted in first month
Technical Metrics:
- Plugin install rate: 80%+ of HoloScript developers
- VRR preview usage: 90%+ of VRR twin projects use live preview
- Quest builder adoption: 70%+ of business owners use no-code builder
🚀 Implementation Priorities
Critical Path (blocks other features):
- ✅ Core Plugin API event system (Week 1)
- ✅ Core Plugin API permission system (Week 1)
- ⏳ VS Code VRR preview panel (Week 2)
- ⏳ VS Code quest builder panel (Week 3)
- ⏳ Extension system VRR compiler hooks (Week 3)
High Priority (business value):
- Business quest builder UI (no-code)
- VRR twin live preview with sync
- AR entry point simulator
- Creator NFT studio
Medium Priority (nice-to-have):
- StoryWeaver AI composer
- Agent wallet dashboard
- IntelliJ plugin parity
- Neovim TUI features
Low Priority (future):
- Advanced quest analytics
- Multi-language i18n for plugins
- Plugin marketplace
🔗 Integration with Other TODOs
HoloScript Compiler TODOs (HOLOLAND_INTEGRATION_TODOS.md):
- VRRCompiler.ts → VS Code VRR preview service
- ARCompiler.ts → VS Code AR simulator service
- x402PaymentService.ts → VS Code payment simulation
TrainingMonkey TODOs (HOLOLAND_TRAINING_DATA_TODOS.md):
- Generate training data for plugin development
- Quest builder prompt templates
- VRR twin configuration examples
📝 Definition of Done
Per Plugin:
- [ ] Hololand events/permissions implemented
- [ ] Hololand API methods functional
- [ ] UI/webview panels complete
- [ ] Unit tests passing
- [ ] Integration tests passing
- [ ] Documentation updated
Overall:
- [ ] All 5 plugins support Hololand features
- [ ] Feature parity across VS Code, IntelliJ, Neovim
- [ ] E2E user journey tests pass
- [ ] Developer onboarding guide updated
- [ ] Video tutorials created
Document Version: 1.0 Last Updated: 2026-02-20 Author: Claude Sonnet 4.5 (AI Agent) Related Documents:
- HOLOLAND_INTEGRATION_TODOS.md (HoloScript compilers/runtime)
- HOLOLAND_TRAINING_DATA_TODOS.md (TrainingMonkey data generation)