{
  "repository": "emcie-co/parlant",
  "ref": "da388e6c1356e8e3aff37a1443c238c41f9c486a",
  "methods": [
    {
      "slug": "formal",
      "title": "Formal verification and model checking"
    },
    {
      "slug": "static_analysis",
      "title": "Static analysis"
    },
    {
      "slug": "testing",
      "title": "Testing"
    },
    {
      "slug": "formatting",
      "title": "Formatting and hygiene"
    },
    {
      "slug": "supply_chain",
      "title": "Supply chain"
    },
    {
      "slug": "unclassified",
      "title": "Unclassified"
    }
  ],
  "verifications": [
    {
      "tool": "mypy",
      "method": "static_analysis",
      "commands": [
        "mypy --follow-imports=silent src/parlant/bin/dashboard",
        "mypy --follow-imports=silent src/parlant/bin/docs.py src/parlant/bin/docs_attribution.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/dashboard-cli.yml",
          "locator": "jobs.dashboard-cli.steps[4] (Dashboard strict type checks)"
        },
        {
          "path": ".github/workflows/lighthouse-cli.yml",
          "locator": "jobs.lighthouse-cli.steps[4]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] dev: mypy"
        },
        {
          "path": "mypy.ini",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/python/mypy",
      "docs": "https://mypy.readthedocs.io/en/stable/command_line.html",
      "exit_codes": {
        "0": "no type errors",
        "1": "type errors found",
        "2": "crash or invalid invocation"
      },
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ruff-check",
      "method": "static_analysis",
      "commands": [
        "ruff check src/parlant/bin/dashboard tests/bin/test_dashboard_commands.py tests/bin/test_dashboard_auth_preselection.py tests/bin/test_dashboard_local_projects.py tests/bin/test_dashboard_project_creation.py tests/bin/test_dashboard_quotas.py",
        "ruff check",
        "ruff check src/parlant/bin/docs.py src/parlant/bin/docs_attribution.py tests/bin/test_docs.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/dashboard-cli.yml",
          "locator": "jobs.dashboard-cli.steps[5] (Dashboard lint)"
        },
        {
          "path": ".github/workflows/gemini-assistant-replay.yml",
          "locator": "jobs.protocol.steps[3] (Check formatting and lint)"
        },
        {
          "path": ".github/workflows/lighthouse-cli.yml",
          "locator": "jobs.lighthouse-cli.steps[5]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] dev: ruff"
        },
        {
          "path": "ruff.toml",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/astral-sh/ruff",
      "docs": "https://docs.astral.sh/ruff/linter/#exit-codes",
      "exit_codes": {
        "0": "no violations",
        "1": "violations found",
        "2": "invalid configuration, CLI options or internal error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [
        "tsc --noEmit"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "widget/package.json",
          "locator": "scripts.build"
        },
        {
          "path": "widget/package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "widget/package.json",
          "locator": "devDependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "eslint",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "src/parlant/api/chat/eslint.config.js",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/eslint/eslint",
      "docs": "https://eslint.org/docs/latest/use/command-line-interface#exit-codes",
      "exit_codes": {
        "0": "no errors",
        "1": "linting errors found",
        "2": "configuration problem or internal error"
      },
      "autofix": true,
      "declared_only": true
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "tool-costs (python: 2)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/tool-costs.yml",
          "locator": "jobs.tool-costs.strategy.matrix"
        }
      ],
      "upstream": "https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pytest",
      "method": "testing",
      "commands": [
        "pytest --noconftest tests/bin/test_dashboard_commands.py tests/bin/test_dashboard_auth_preselection.py tests/bin/test_dashboard_local_projects.py tests/bin/test_dashboard_project_creation.py tests/bin/test_dashboard_quotas.py tests/bin/test_dashboard_deployments.py tests/bin/test_packaging.py",
        "pytest --noconftest tests/sdk/test_pricing_health.py tests/core/stable/test_pricing.py tests/core/stable/test_health_reporter.py -q",
        "pytest -q tests/adapters/nlp/test_gemini_interactions.py tests/core/stable/engines/compass/loop/test_streaming_loop.py tests/core/stable/engines/compass/loop/test_blocking_loop.py tests/sdk/test_gemini_assistant_replay.py",
        "pytest --noconftest tests/bin/test_docs.py tests/bin/test_cli.py",
        "pytest tests/core/stable/test_pricing.py tests/core/test_tracer.py tests/core/stable/test_diagnostic_reports.py tests/core/stable/engines/compass/test_tracing.py tests/adapters/modules/test_parlant_dashboard_tracer.py tests/core/stable/engines/test_session_metadata_workspace.py tests/core/stable/services/tools/test_plugin_client.py tests/core/stable/engines/compass/test_tool_runner.py tests/sdk/test_tool_costs.py -q"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/dashboard-cli.yml",
          "locator": "jobs.dashboard-cli.steps[3] (Dashboard command, quota and packaging tests)"
        },
        {
          "path": ".github/workflows/dashboard-cli.yml",
          "locator": "jobs.pricing-coverage.steps[3] (Real SDK pricing coverage and health isolation)"
        },
        {
          "path": ".github/workflows/gemini-assistant-replay.yml",
          "locator": "jobs.protocol.steps[4] (Check real-client protocols and message loops without provider credentials)"
        },
        {
          "path": ".github/workflows/lighthouse-cli.yml",
          "locator": "jobs.lighthouse-cli.steps[3] (Real HTTP docs command and CLI registration tests)"
        },
        {
          "path": ".github/workflows/tool-costs.yml",
          "locator": "jobs.tool-costs.steps[4] (Cost accounting, plugin transport and background completion)"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] dev: pytest"
        },
        {
          "path": "pytest.ini",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/pytest-dev/pytest",
      "docs": "https://docs.pytest.org/en/stable/reference/exit-codes.html",
      "exit_codes": {
        "0": "all tests passed",
        "1": "some tests failed",
        "2": "interrupted by the user",
        "3": "internal error",
        "4": "command line usage error",
        "5": "no tests were collected"
      },
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "vitest",
      "method": "testing",
      "commands": [
        "vitest run"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "widget/package.json",
          "locator": "scripts.test"
        },
        {
          "path": "widget/package.json",
          "locator": "devDependencies: vitest"
        },
        {
          "path": "widget/vitest.config.ts",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/vitest-dev/vitest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ruff-format",
      "method": "formatting",
      "commands": [
        "ruff format --check src/parlant/bin/dashboard/client.py src/parlant/bin/dashboard/errors.py src/parlant/bin/dashboard/quota.py src/parlant/bin/dashboard/auth.py tests/bin/test_dashboard_auth_preselection.py tests/bin/test_dashboard_quotas.py",
        "ruff format --check",
        "ruff format --check src/parlant/bin/docs.py src/parlant/bin/docs_attribution.py tests/bin/test_docs.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/dashboard-cli.yml",
          "locator": "jobs.dashboard-cli.steps[6] (Quota formatting)"
        },
        {
          "path": ".github/workflows/gemini-assistant-replay.yml",
          "locator": "jobs.protocol.steps[3] (Check formatting and lint)"
        },
        {
          "path": ".github/workflows/lighthouse-cli.yml",
          "locator": "jobs.lighthouse-cli.steps[6]"
        }
      ],
      "upstream": "https://github.com/astral-sh/ruff",
      "docs": "https://docs.astral.sh/ruff/formatter/#exit-codes",
      "exit_codes": {
        "0": "already formatted",
        "1": "files would be reformatted (--check)",
        "2": "error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "prettier",
      "method": "formatting",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "src/parlant/api/chat/.prettierrc",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/prettier/prettier",
      "docs": "https://prettier.io/docs/cli#exit-codes",
      "exit_codes": {
        "0": "everything formatted",
        "1": "something was not formatted (--check)",
        "2": "prettier error"
      },
      "autofix": true,
      "declared_only": true
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/lint.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.build.steps[5] (Lint packages)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/lint.py --mypy --ruff"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/tool-costs.yml",
          "locator": "jobs.tool-costs.steps[3]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
