/**
 * 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;
