---
name: runpod-jobs
description: >
  Use this skill when the user wants to run, monitor, or cancel RunPod serverless
  jobs: "run a job on my endpoint", "check job status", "what's the output of job X",
  "cancel job", "is my endpoint healthy", "list my serverless endpoints".
---

# RunPod Serverless Jobs

## Available tools (via MCP)

- `list_endpoints` — tous les endpoints serverless configurés
- `run_serverless_job` — soumettre un job à un endpoint
- `get_job_status` — vérifier statut + output d'un job
- `cancel_job` — annuler un job en attente ou en cours
- `get_endpoint_health` — état de l'endpoint (workers actifs, queue, throttled)

## Workflow standard

### Soumettre un job
1. Si l'utilisateur ne connaît pas l'endpoint ID, appeler `list_endpoints`
2. Appeler `run_serverless_job` avec `endpoint_id` et `input` (payload JSON)
3. Retourner le `job_id` à l'utilisateur pour suivi

### Polling de statut
Statuts possibles : `IN_QUEUE`, `IN_PROGRESS`, `COMPLETED`, `FAILED`, `CANCELLED`, `TIMED_OUT`
- `COMPLETED` : afficher `output` du résultat
- `FAILED` : afficher `error` et suggestions de debug
- Sinon : proposer de re-vérifier dans quelques secondes

### Santé de l'endpoint
`get_endpoint_health` retourne :
- `workers` : `{idle, running, throttled}`
- `jobs` : `{inQueue, inProgress, completed, failed}`

Si `throttled > 0` ou queue longue → informer l'utilisateur que l'endpoint est sous charge.

## Format de réponse
Jobs : tableau avec job_id, statut, délai, output tronqué si trop long.
Proposer d'afficher l'output complet si tronqué.
