code: def get_dev_env_run_plan_dict(
      project_name: str = "test_project",
      username: str = "test_user",
      run_name: str = "dry-run",
      repo_id: str = "test_repo",
      offers: List[InstanceOfferWithAvailability] = [],
  ) -> Dict:
      return {
          "project_name": project_name,
          "user": username,
          "run_spec": {
              "configuration": {
                  "entrypoint": None,
                  "env": {},
                  "home_dir": "/root",
                  "ide": "vscode",
                  "version": None,
                  "image": None,
                  "init": [],
                  "ports": [],
                  "python": "3.8",
                  "registry_auth": None,
                  "setup": [],
                  "type": "dev-environment",
              },
              "configuration_path": "dstack.yaml",
              "profile": {
                  "backends": [
                      "local",
                      "aws",
                      "azure",
                      "gcp",
                      "lambda",
                  ],
                  "default": False,
                  "max_duration": "off",
                  "max_price": None,
                  "name": "string",
                  "resources": {
                      "cpu": 2,
                      "disk": None,
                      "gpu": None,
                      "memory": 8192,
                      "shm_size": None,
                  },
                  "retry_policy": {"limit": None, "retry": False},
                  "spot_policy": "spot",
              },
              "repo_code_hash": None,
              "repo_data": {"repo_dir": "/repo", "repo_type": "local"},
              "repo_id": repo_id,
              "run_name": run_name,
              "ssh_key_pub": "ssh_key",
              "working_dir": ".",
          },
          "job_plans": [
              {
                  "job_spec": {
                      "app_specs": [],
                      "commands": [
                          "/bin/bash",
                          "-i",
                          "-c",
                          "(echo pip install ipykernel... && "
                          "pip install -q --no-cache-dir "
                          'ipykernel 2> /dev/null) || echo "no '
                          'pip, ipykernel was not installed" '
                          "&& echo '' && echo To open in VS "
                          "Code Desktop, use link below: && "
                          "echo '' && echo '  "
                          "vscode://vscode-remote/ssh-remote+dry-run/workflow' "
                          "&& echo '' && echo 'To connect via "
                          "SSH, use: `ssh dry-run`' && echo '' "
                          "&& echo -n 'To exit, press Ctrl+C.' "
                          "&& tail -f /dev/null",
                      ],
                      "env": {},
                      "gateway": None,
                      "home_dir": "/root",
                      "image_name": "dstackai/base:py3.8-0.4rc4-cuda-12.1",
                      "job_name": f"{run_name}-0",
                      "job_num": 0,
                      "max_duration": None,
                      "registry_auth": None,
                      "requirements": {
                          "cpus": 2,
                          "gpus": None,
                          "max_price": None,
                          "memory_mib": 8192,
                          "shm_size_mib": None,
                          "disk": None,
                          "spot": True,
                      },
                      "retry_policy": {"limit": None, "retry": False},
                      "working_dir": ".",
                  },
                  "offers": [json.loads(o.json()) for o in offers],
              }
          ],
      }
  
imports: import json
  from datetime import datetime, timezone
  from typing import Dict, List
  from unittest.mock import Mock, patch
  from uuid import UUID
  import pytest
  from fastapi.testclient import TestClient
  from sqlalchemy import select
  from sqlalchemy.ext.asyncio import AsyncSession
  from dstack._internal.core.models.backends.base import BackendType
  from dstack._internal.core.models.instances import InstanceAvailability, InstanceOfferWithAvailability, InstanceType, Resources
  from dstack._internal.core.models.runs import JobSpec, JobStatus, RunSpec
  from dstack._internal.core.models.users import GlobalRole, ProjectRole
  from dstack._internal.server.main import app
  from dstack._internal.server.models import JobModel, RunModel
  from dstack._internal.server.services.projects import add_project_member
  from dstack._internal.server.testing.common import create_job, create_project, create_repo, create_run, create_user, get_auth_headers
label_desc: Use image node_id 1 for calling a global function with example usage: get_dev_env_run_plan_dict(project_name, username, run_name, repo_id, offers) and returns: dict