tpmjs/packages/tools/official/unsandbox/block.ts
Ajax Davis 48c41e8733 feat: add use cases marketing product with AI-generated content
Transform qualifying scenarios into marketing-ready use cases with:
- AI-generated titles, descriptions, ROI estimates, business value
- Persona/industry/category taxonomy for targeting
- Browseable feed with filtering and ranking
- SEO-optimized case study pages
- Daily cron job for generation and ranking

Database:
- Add Persona, Industry, Category lookup tables
- Add UseCase model with marketing content fields
- Add junction tables for personas/industries/categories
- Add SocialProof model for cached metrics

API:
- GET /api/use-cases - Global directory with filtering
- GET /api/use-cases/[id] - Individual use case details
- GET /api/public/users/[username]/collections/[slug]/use-cases
- POST /api/cron/use-cases - Nightly generation job

Frontend:
- /use-cases - Global feed with persona dropdown
- /use-cases/[slug] - SEO case study page
- /[username]/collections/[slug]/use-cases - Collection feed
- UseCasesFeed component - Sortable table component
- UseCaseCaseStudy component - Full case study layout
2026-01-20 16:17:35 +10:00

149 lines
2.7 KiB
TypeScript

/**
* Block metadata for unsandbox tools
* This file provides metadata for the blocks validator
*/
import {
cloneSnapshot,
// Service tools
createService,
createServiceSnapshot,
// Session tools
createSession,
createSessionSnapshot,
// Snapshot tools
createSnapshot,
deleteImage,
deleteJob,
deleteService,
deleteServiceEnv,
deleteSession,
deleteSnapshot,
execute,
// Execution tools
executeCodeAsync,
executeInService,
executeInSession,
freezeService,
freezeSession,
getClusterStatus,
getImage,
getImageTrustedKeys,
// Job tools
getJob,
// Languages tools
getLanguages,
getService,
getServiceEnv,
getServiceLogs,
getSession,
getShells,
getSnapshot,
getSystemStats,
grantImageAccess,
// System tools
healthCheck,
listImages,
listJobs,
listPools,
listServices,
listSessions,
listSnapshots,
lockImage,
lockService,
lockSession,
lockSnapshot,
// Image tools
publishImage,
redeployService,
restoreSession,
restoreSnapshot,
revokeImageAccess,
run,
runAsync,
setImageVisibility,
setServiceEnv,
spawnFromImage,
transferImage,
unfreezeService,
unfreezeSession,
unlockImage,
unlockService,
unlockSession,
unlockSnapshot,
} from './src/index.js';
export const block = {
name: 'unsandbox',
description: 'Execute code in a secure sandbox environment supporting 42+ languages',
tools: {
// Execution tools
executeCodeAsync,
execute,
run,
runAsync,
// Job tools
getJob,
listJobs,
deleteJob,
// Languages tools
getLanguages,
getShells,
// Session tools
createSession,
getSession,
listSessions,
executeInSession,
freezeSession,
unfreezeSession,
lockSession,
unlockSession,
createSessionSnapshot,
restoreSession,
deleteSession,
// Service tools
createService,
getService,
listServices,
executeInService,
freezeService,
unfreezeService,
lockService,
unlockService,
redeployService,
getServiceLogs,
createServiceSnapshot,
getServiceEnv,
setServiceEnv,
deleteServiceEnv,
deleteService,
// Snapshot tools
createSnapshot,
getSnapshot,
listSnapshots,
lockSnapshot,
unlockSnapshot,
restoreSnapshot,
cloneSnapshot,
deleteSnapshot,
// Image tools
publishImage,
getImage,
listImages,
lockImage,
unlockImage,
grantImageAccess,
revokeImageAccess,
transferImage,
setImageVisibility,
spawnFromImage,
getImageTrustedKeys,
deleteImage,
// System tools
healthCheck,
getClusterStatus,
getSystemStats,
listPools,
},
};
export default block;