open-index/open-npm huggingface dataset:
npm package: @rdcp.dev/client
Description: Typed RDCP client SDK for Node 18+ and modern browsers. Uses native fetch; no polyfills.
Latest version: 1.1.0

# @rdcp.dev/client

Typed RDCP client SDK for Node 18+ and modern browsers. Uses native fetch; no polyfills.

- Node.js 18+ (native fetch)
- Browsers (native fetch)

## Install

```
npm install @rdcp.dev/client @rdcp.dev/core zod
```

## Quick start

```ts
import { createRDCPClient } from '@rdcp.dev/client'

const rdcp = createRDCPClient({ baseUrl: 'http://localhost:3000' })

const discovery = await rdcp.getDiscovery()
const status = await rdcp.getStatus()
// Modern key/value control (PUT)
await rdcp.putControl('DATABASE', true)
// Legacy format (POST)
await rdcp.postControl({ action: 'enable', categories: ['DATABASE'] })
```

## API

- createRDCPClient(options)
  - options.baseUrl: string
  - options.headers?: Record<string, string>
  - options.fetch?: typeof fetch (optional override)

Methods:
- getDiscovery(): Promise<DiscoveryResponse>
- getStatus(): Promise<StatusResponse>
- putControl(key: string, value: boolean | number | string, options?): Promise<ControlResponse>
- postControl(body: ControlRequest): Promise<ControlResponse>

## Errors

Errors are thrown as RDCPClientError with fields:
- code?: RDCP error code (string)
- status?: HTTP status
- details?: unknown
npm package: @rdcp.dev/conformance
Description: RDCP Conformance CLI: discovery, reports (JUnit/Badges)
Latest version: 0.1.0

# RDCP Conformance CLI

Lightweight CLI tools for RDCP conformance:
- rdcp-conformance: discovery and tag gating config
- rdcp-conformance-junit: generate JUnit XML from results
- rdcp-conformance-badges: generate Shields JSON + SVG badges

Usage:
```
npx rdcp-conformance --base-url=http://localhost:3000
npx rdcp-conformance-junit
npx rdcp-conformance-badges
```
npm package: @rdcp.dev/core
Description: Protocol definitions for RDCP shared across server, client, and tooling packages.
Latest version: 1.1.0

# @rdcp.dev/core

Protocol definitions for RDCP shared across server, client, and tooling packages.

What this package contains
- Protocol constants: `PROTOCOL_VERSION`, `RDCP_HEADERS`, `RDCP_PATHS`
- Protocol error codes and type: `RDCP_ERROR_CODES`, `RDCPErrorCode`
- Protocol Zod schemas for endpoints: `controlRequestSchema`, `controlResponseSchema`, `discoveryResponseSchema`, `statusResponseSchema`, `healthResponseSchema`, `protocolDiscoverySchema`, `errorResponseSchema`
- Stable protocol-facing TypeScript types (no any types)
- Zero server/framework coupling; minimal runtime dependency (`zod`) for schemas
- Import-only: no side effects

Design boundaries
- Protocol-only: no business logic, no framework-specific code
- No Node.js built-ins, no fetch/http usage, no file I/O
- No dependency on `@rdcp.dev/server` or any adapter packages

Usage

Import protocol primitives directly from core (recommended):

```ts
import { RDCP_HEADERS, RDCP_PATHS, PROTOCOL_VERSION } from '@rdcp.dev/core'
import { controlRequestSchema, RDCP_ERROR_CODES } from '@rdcp.dev/core'
import { z } from 'zod'

type ControlRequest = z.infer<typeof controlRequestSchema>

export function validateControl(body: unknown): ControlRequest {
  const parsed = controlRequestSchema.parse(body)
  return parsed
}
```

Compatibility note
- `@rdcp.dev/server` re-exports these schemas and error codes to avoid breaking existing imports. New code should prefer importing from `@rdcp.dev/core`.

Versioning
- Additive protocol changes (new fields/values) follow semver minor
- Breaking protocol changes follow semver major
- Avoid removing/renaming existing fields; prefer deprecation comments first

Contributing
- Keep the surface minimal and focused on protocol representations
- Follow strict TypeScript: no any types; prefer precise string unions and readonly where appropriate
- Align with the RDCP protocol docs (docs/rdcp-protocol-specification.md)