# VBIDEApi

**Kind:** Service

**Source:** `Pams/API/Pams.API/Pams.API.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`VBIDEApi` is a NuGet package dependency declared by `Pams.API.csproj`. The Pams API project restores this package during build and references its exposed .NET types where VBIDE integration is required.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Build Process
    participant Project as Pams.API.csproj
    participant NuGet as NuGet Restore
    participant VBIDE as VBIDEApi Package
    participant API as Pams API

    Build->>Project: Load package references
    Project->>NuGet: Restore VBIDEApi
    NuGet->>VBIDE: Download package assets
    VBIDE-->>NuGet: Return assemblies
    NuGet-->>API: Add package references
    API->>VBIDE: Call referenced .NET types
```

## Usage

```ts
import { readFileSync } from "node:fs";

const projectFile = "Pams/API/Pams.API/Pams.API.csproj";
const projectXml = readFileSync(projectFile, "utf8");

const hasVBIDEApi = /<PackageReference\s+Include="VBIDEApi"/.test(projectXml);

if (!hasVBIDEApi) {
  throw new Error("VBIDEApi package reference is missing from Pams.API.csproj");
}

console.log("VBIDEApi is configured as a Pams API dependency.");
```

## AI Coding Instructions

- Keep the `VBIDEApi` package reference in `Pams/API/Pams.API/Pams.API.csproj`.
- Restore NuGet packages before building code that references types supplied by `VBIDEApi`.
- Check the package's available assemblies and namespaces before adding integration code; do not invent API members.
- Update package version metadata only with compatibility validation for the Pams API project.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (1)

- `Pams.API` — `Pams/API/Pams.API/Pams.API.csproj`:1
