/**
 * Block metadata for unsandbox tools
 * This file provides metadata for the blocks validator
 */
import {
  addContact,
  boostSession,
  checkServicePort,
  cloneImage,
  cloneSnapshot,
  // Service tools
  createService,
  createServiceSnapshot,
  // Session tools
  createSession,
  createSessionSnapshot,
  // Snapshot tools
  createSnapshot,
  deleteImage,
  deleteJob,
  deleteService,
  deleteServiceEnv,
  deleteSession,
  deleteSnapshot,
  execute,
  // Execution tools
  executeCodeAsync,
  executeInService,
  executeInSession,
  exportServiceEnv,
  extendSession,
  freezeService,
  freezeSession,
  getAuditLog,
  getClusterStatus,
  getImage,
  getImageTrustedKeys,
  // Job tools
  getJob,
  getKeyInfo,
  // Languages tools
  getLanguages,
  getPoolStats,
  getService,
  getServiceEnv,
  getServiceLogs,
  getSession,
  getShells,
  getSnapshot,
  getSystemStats,
  getUpgradeLogs,
  getUpgradeProgress,
  grantImageAccess,
  // System tools
  healthCheck,
  listContacts,
  listImages,
  listJobs,
  listOwnedImages,
  listPools,
  listPublicImages,
  listServices,
  listSessions,
  listSharedImages,
  listSnapshots,
  listTokens,
  lockImage,
  lockService,
  lockSession,
  lockSnapshot,
  mintToken,
  // Image tools
  publishImage,
  redeployService,
  removeContact,
  restoreService,
  restoreSession,
  restoreSnapshot,
  revokeImageAccess,
  revokeToken,
  run,
  runAsync,
  setImageVisibility,
  setServiceEnv,
  spawnFromImage,
  transferImage,
  unboostSession,
  unfreezeService,
  unfreezeSession,
  unlockImage,
  unlockService,
  unlockSession,
  unlockSnapshot,
  updateContact,
  updateKeySettings,
  updateService,
  updateServiceDomains,
  // API Key tools
  validateKey,
} 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,
    extendSession,
    boostSession,
    unboostSession,
    // Service tools
    createService,
    getService,
    listServices,
    executeInService,
    freezeService,
    unfreezeService,
    lockService,
    unlockService,
    redeployService,
    getServiceLogs,
    createServiceSnapshot,
    getServiceEnv,
    setServiceEnv,
    deleteServiceEnv,
    deleteService,
    updateService,
    checkServicePort,
    getUpgradeProgress,
    getUpgradeLogs,
    updateServiceDomains,
    exportServiceEnv,
    restoreService,
    // Snapshot tools
    createSnapshot,
    getSnapshot,
    listSnapshots,
    lockSnapshot,
    unlockSnapshot,
    restoreSnapshot,
    cloneSnapshot,
    deleteSnapshot,
    // Image tools
    publishImage,
    getImage,
    listImages,
    lockImage,
    unlockImage,
    grantImageAccess,
    revokeImageAccess,
    transferImage,
    setImageVisibility,
    spawnFromImage,
    getImageTrustedKeys,
    deleteImage,
    listOwnedImages,
    listSharedImages,
    listPublicImages,
    cloneImage,
    // System tools
    healthCheck,
    getClusterStatus,
    getSystemStats,
    listPools,
    getPoolStats,
    // API Key tools
    validateKey,
    getKeyInfo,
    updateKeySettings,
    listContacts,
    addContact,
    updateContact,
    removeContact,
    getAuditLog,
    // Live Token tools
    mintToken,
    revokeToken,
    listTokens,
  },
};

export default block;
