← back to Designer Wallcoverings

DW-Agents/dw-agents/ecosystem.config.cjs

478 lines

/**
 * PM2 Ecosystem Configuration for DW-Agents
 *
 * Start all agents: pm2 start ecosystem.config.js
 * View status: pm2 list
 * View logs: pm2 logs
 * Stop all: pm2 stop all
 * Restart all: pm2 restart all
 */

module.exports = {
  apps: [
    {
      name: 'dw-master-hub',
      script: 'npx',
      args: 'tsx master-hub.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9893,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/hub-error.log',
      out_file: '/root/DW-Agents/logs/hub-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-digital-samples',
      script: 'npx',
      args: 'tsx digital-samples-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9879,
        NODE_OPTIONS: '--import tsx',
        SLACK_BOT_TOKEN: 'xoxb-3958182050256-9814366234406-HiR1ybK6HT8JViWDEpjXpmsq',
        SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
        SHOPIFY_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || '')
      },
      error_file: '/root/DW-Agents/logs/digital-samples-error.log',
      out_file: '/root/DW-Agents/logs/digital-samples-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-legal-team',
      script: 'npx',
      args: 'tsx legal-agent.ts',
      cwd: '/root/DW-Agents/DWLegalTeam',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      min_uptime: '10s',
      max_restarts: 50,
      restart_delay: 4000,
      exp_backoff_restart_delay: 100,
      env: {
        NODE_ENV: 'production',
        PORT: 9878,
        NODE_OPTIONS: '--import tsx',
        SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
        SHOPIFY_ADMIN_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || '')
      },
      error_file: '/root/DW-Agents/logs/legal-error.log',
      out_file: '/root/DW-Agents/logs/legal-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-purchasing-office',
      script: 'npx',
      args: 'tsx purchasing-office-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9880,
        NODE_OPTIONS: '--import tsx',
        ANTHROPIC_API_KEY: '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'
      },
      error_file: '/root/DW-Agents/logs/purchasing-error.log',
      out_file: '/root/DW-Agents/logs/purchasing-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-marketing',
      script: 'npx',
      args: 'tsx agent-marketing/marketing-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9881,
        NODE_OPTIONS: '--import tsx',
        SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
        SHOPIFY_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || ''),
        ANTHROPIC_API_KEY: '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'
      },
      error_file: '/root/DW-Agents/logs/marketing-error.log',
      out_file: '/root/DW-Agents/logs/marketing-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-accounting',
      script: 'npx',
      args: 'tsx accounting-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9882,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/accounting-error.log',
      out_file: '/root/DW-Agents/logs/accounting-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-trend-research',
      script: 'npx',
      args: 'tsx trend-research-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9883,
        NODE_OPTIONS: '--import tsx',
        ANTHROPIC_API_KEY: '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'
      },
      error_file: '/root/DW-Agents/logs/trend-research-error.log',
      out_file: '/root/DW-Agents/logs/trend-research-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-zendesk-chat',
      script: 'npx',
      args: 'tsx zendesk-chat-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9884,
        NODE_OPTIONS: '--import tsx',
        ZENDESK_DOMAIN: 'designerwallcoverings.zendesk.com',
        ZENDESK_EMAIL: 'info@designerwallcoverings.com',
        ZENDESK_PASSWORD: '*Zopimaccess911*'
      },
      error_file: '/root/DW-Agents/logs/zendesk-error.log',
      out_file: '/root/DW-Agents/logs/zendesk-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-shopify-store',
      script: 'npx',
      args: 'tsx agent-shopify-store/shopify-store-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7238,
        NODE_OPTIONS: '--import tsx',
        SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
        SHOPIFY_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || ''),
        SHOPIFY_PRODUCTS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || '')
      },
      error_file: '/root/DW-Agents/logs/shopify-store-error.log',
      out_file: '/root/DW-Agents/logs/shopify-store-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true,
      min_uptime: '10s',
      max_restarts: 10
    },
    {
      name: 'dw-log-monitor',
      script: 'npx',
      args: 'tsx agent-log-monitor/log-monitor-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7239,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/log-monitor-error.log',
      out_file: '/root/DW-Agents/logs/log-monitor-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true,
      min_uptime: '10s',
      max_restarts: 10
    },
    {
      name: 'dw-ui-manager',
      script: 'npx',
      args: 'tsx agent-ui-manager/ui-manager-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7240,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/ui-manager-error.log',
      out_file: '/root/DW-Agents/logs/ui-manager-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true,
      min_uptime: '10s',
      max_restarts: 10
    },
    {
      name: 'dw-crash-loop-resolver',
      script: 'npx',
      args: 'tsx agent-crash-loop-resolver/crash-loop-resolver.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9895,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/crash-loop-resolver-error.log',
      out_file: '/root/DW-Agents/logs/crash-loop-resolver-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-bigquery-gov',
      script: 'npx',
      args: 'tsx agent-bigquery-gov/bigquery-gov-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7677,
        NODE_OPTIONS: '--import tsx',
        GOOGLE_CLOUD_PROJECT: 'bigquery-public-data'
      },
      error_file: '/root/DW-Agents/logs/bigquery-gov-error.log',
      out_file: '/root/DW-Agents/logs/bigquery-gov-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-needs-attention',
      script: 'npx',
      args: 'tsx agent-needs-attention/needs-attention-agent.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9886,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/needs-attention-error.log',
      out_file: '/root/DW-Agents/logs/needs-attention-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-executive-ceo',
      script: 'npx',
      args: 'tsx agent-executive-ceo/ceo-dashboard-agent.ts',
      cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7120,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/executive-ceo-error.log',
      out_file: '/root/DW-Agents/logs/executive-ceo-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-executive-cfo',
      script: 'npx',
      args: 'tsx agent-executive-cfo/cfo-dashboard-agent.ts',
      cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7121,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/executive-cfo-error.log',
      out_file: '/root/DW-Agents/logs/executive-cfo-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-executive-coo',
      script: 'npx',
      args: 'tsx agent-executive-coo/coo-dashboard-agent.ts',
      cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7122,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/executive-coo-error.log',
      out_file: '/root/DW-Agents/logs/executive-coo-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-executive-vp-ops',
      script: 'npx',
      args: 'tsx agent-executive-vp-ops/vp-ops-dashboard-agent.ts',
      cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7125,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/executive-vp-ops-error.log',
      out_file: '/root/DW-Agents/logs/executive-vp-ops-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-executive-cto',
      script: 'npx',
      args: 'tsx agent-executive-cto/cto-dashboard-agent.ts',
      cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7124,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/executive-cto-error.log',
      out_file: '/root/DW-Agents/logs/executive-cto-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-dashboard-monitor',
      script: 'npx',
      args: 'tsx agent-dashboard-monitor/dashboard-monitor.ts',
      cwd: '/root/DW-Agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9990,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/dashboard-monitor-error.log',
      out_file: '/root/DW-Agents/logs/dashboard-monitor-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'bubbe-lang-service',
      script: 'python3',
      args: 'main.py',
      cwd: '/root/apps/bubbe-lang-service',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 8001
      },
      error_file: '/root/DW-Agents/logs/bubbe-lang-error.log',
      out_file: '/root/DW-Agents/logs/bubbe-lang-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'project-portfolio-viewer',
      script: 'npx',
      args: 'tsx portfolio-viewer.ts',
      cwd: '/root/Projects/project-portfolio-viewer',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 7899,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/portfolio-viewer-error.log',
      out_file: '/root/DW-Agents/logs/portfolio-viewer-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    },
    {
      name: 'dw-skills-manager',
      script: 'npx',
      args: 'tsx agent-skills-manager/skills-manager-agent.ts',
      cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '500M',
      env: {
        NODE_ENV: 'production',
        PORT: 9894,
        NODE_OPTIONS: '--import tsx'
      },
      error_file: '/root/DW-Agents/logs/skills-manager-error.log',
      out_file: '/root/DW-Agents/logs/skills-manager-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      merge_logs: true
    }
  ]
};