{"_id":"@babamba2/mcp-abap-adt-header-validator","name":"@babamba2/mcp-abap-adt-header-validator","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.8":{"name":"@babamba2/mcp-abap-adt-header-validator","version":"0.1.8","description":"Header validator for MCP ABAP ADT - validates and prioritizes authentication headers (fork of @mcp-abap-adt/header-validator by fr0ster)","main":"dist/index.js","types":"dist/index.d.ts","keywords":["abap","sap","adt","mcp","header","validator","authentication","abap-adt"],"author":{"name":"babamba2","email":"psspss1122@gmail.com"},"contributors":[{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com","url":"original author"}],"license":"MIT","homepage":"https://github.com/babamba2/mcp-abap-adt-header-validator#readme","bugs":{"url":"https://github.com/babamba2/mcp-abap-adt-header-validator/issues"},"repository":{"type":"git","url":"git+https://github.com/babamba2/mcp-abap-adt-header-validator.git"},"publishConfig":{"access":"public"},"scripts":{"clean":"rm -rf dist tsconfig.tsbuildinfo","build":"npm run clean --silent && npx tsc -p tsconfig.json","build:fast":"npx tsc -p tsconfig.json","test":"NODE_OPTIONS=--experimental-vm-modules jest","test:check":"npx tsc --noEmit","prepublishOnly":"npm run build:fast"},"engines":{"node":">=18.0.0"},"dependencies":{"@babamba2/mcp-abap-adt-interfaces":"^3.1.0"},"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^24.2.1","jest":"^30.2.0","jest-util":"^30.2.0","ts-jest":"^29.2.5","typescript":"^5.9.2"},"gitHead":"bde6bd4aa294c3f8d05b4e9fa885f428c836ab39","_id":"@babamba2/mcp-abap-adt-header-validator@0.1.8","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-4cjo7LZc9NSmGF1lCh+HqtGpjqFFDlmiHEgIfEjiMzuh6y32m5xDjuFdG6k1pVwgBw9xxWeug1DF773B1TaglQ==","shasum":"c6a1af4e21c88fbfadca30efe91a70ad3f08371c","tarball":"https://registry.npmjs.org/@babamba2/mcp-abap-adt-header-validator/-/mcp-abap-adt-header-validator-0.1.8.tgz","fileCount":10,"unpackedSize":56823,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDhiQmY5Z3n08CPa7gHkVgbyGUV6RNeKvR7OXEtWMBZ+QIgKCIYkErICh85mRKmCfeFOKEw5DiJohn8bonPcP+uHCQ="}]},"_npmUser":{"name":"psspss1122","email":"psspss1122@gmail.com"},"directories":{},"maintainers":[{"name":"psspss1122","email":"psspss1122@gmail.com"},{"name":"s2hoon326","email":"s2hoon326@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-abap-adt-header-validator_0.1.8_1776490912407_0.34185580027150997"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-18T05:41:52.227Z","0.1.8":"2026-04-18T05:41:52.554Z","modified":"2026-04-18T05:41:52.893Z"},"maintainers":[{"name":"psspss1122","email":"psspss1122@gmail.com"},{"name":"s2hoon326","email":"s2hoon326@gmail.com"}],"description":"Header validator for MCP ABAP ADT - validates and prioritizes authentication headers (fork of @mcp-abap-adt/header-validator by fr0ster)","homepage":"https://github.com/babamba2/mcp-abap-adt-header-validator#readme","keywords":["abap","sap","adt","mcp","header","validator","authentication","abap-adt"],"repository":{"type":"git","url":"git+https://github.com/babamba2/mcp-abap-adt-header-validator.git"},"contributors":[{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com","url":"original author"}],"author":{"name":"babamba2","email":"psspss1122@gmail.com"},"bugs":{"url":"https://github.com/babamba2/mcp-abap-adt-header-validator/issues"},"license":"MIT","readme":"# @mcp-abap-adt/header-validator\r\n\r\nHeader validator for MCP ABAP ADT - validates and prioritizes authentication headers.\r\n\r\n## Features\r\n\r\n- ✅ **Header Validation**: Validates authentication headers for MCP ABAP ADT servers\r\n- ✅ **Priority System**: Automatically prioritizes authentication methods\r\n- ✅ **Error Reporting**: Detailed error messages and warnings\r\n- ✅ **Type Safety**: Full TypeScript support with type definitions\r\n\r\n## Responsibilities and Design Principles\r\n\r\n### Core Development Principle\r\n\r\n**Interface-Only Communication**: This package follows a fundamental development principle: **all interactions with external dependencies happen ONLY through interfaces**. The code knows **NOTHING beyond what is defined in the interfaces**.\r\n\r\nThis means:\r\n- Does not know about concrete implementation classes from other packages\r\n- Does not know about internal data structures or methods not defined in interfaces\r\n- Does not make assumptions about implementation behavior beyond interface contracts\r\n- Does not access properties or methods not explicitly defined in interfaces\r\n\r\nThis principle ensures:\r\n- **Loose coupling**: Validator is decoupled from concrete implementations in other packages\r\n- **Flexibility**: New implementations can be added without modifying validator\r\n- **Testability**: Easy to mock dependencies for testing\r\n- **Maintainability**: Changes to implementations don't affect validator\r\n\r\n### Package Responsibilities\r\n\r\nThis package is responsible for:\r\n\r\n1. **Header validation**: Validates authentication headers from HTTP requests\r\n2. **Priority resolution**: Determines which authentication method to use based on header presence and priority rules\r\n3. **Configuration extraction**: Extracts authentication configuration from headers\r\n4. **Error reporting**: Provides detailed validation errors and warnings\r\n\r\n#### What This Package Does\r\n\r\n- **Validates headers**: Checks authentication headers for validity and completeness\r\n- **Prioritizes methods**: Determines authentication method priority (SAP destination > MCP destination > JWT token > Basic auth)\r\n- **Extracts config**: Extracts `SapConfig` from validated headers\r\n- **Reports errors**: Provides detailed error messages and warnings for invalid configurations\r\n- **Type safety**: Returns typed validation results with configuration objects\r\n\r\n#### What This Package Does NOT Do\r\n\r\n- **Does NOT handle authentication**: Authentication is handled by `@mcp-abap-adt/connection` and `@mcp-abap-adt/auth-broker`\r\n- **Does NOT manage tokens**: Token management is handled by `@mcp-abap-adt/auth-broker`\r\n- **Does NOT make HTTP requests**: HTTP requests are handled by `@mcp-abap-adt/connection`\r\n- **Does NOT store configuration**: Configuration storage is handled by consumers\r\n- **Does NOT know about destinations**: Destination resolution is handled by `@mcp-abap-adt/auth-broker`\r\n\r\n### External Dependencies\r\n\r\nThis package interacts with external packages **ONLY through interfaces**:\r\n\r\n- **`@mcp-abap-adt/connection`**: Uses `SapConfig` type for configuration - does not know about concrete connection implementation\r\n- **No direct dependencies on other packages**: All interactions happen through well-defined types and interfaces\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @mcp-abap-adt/header-validator\r\n```\r\n\r\n## Usage\r\n\r\n```typescript\r\nimport { validateAuthHeaders } from '@mcp-abap-adt/header-validator';\r\nimport { IncomingHttpHeaders } from 'http';\r\n\r\nconst headers: IncomingHttpHeaders = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-mcp-destination': 'TRIAL',\r\n  // Note: x-sap-auth-type not needed - always uses JWT\r\n};\r\n\r\nconst result = validateAuthHeaders(headers);\r\n\r\nif (result.isValid && result.config) {\r\n  console.log('Auth method:', result.config.priority);\r\n  console.log('Destination:', result.config.destination);\r\n} else {\r\n  console.error('Validation errors:', result.errors);\r\n}\r\n```\r\n\r\n## Authentication Methods and Priorities\r\n\r\nThe validator supports four authentication methods, ordered by priority (highest to lowest):\r\n\r\n### 1. SAP Destination-Based Authentication (Highest Priority)\r\n\r\n**Priority**: `AuthMethodPriority.SAP_DESTINATION` (4)\r\n\r\n**Required Headers**:\r\n- `x-sap-url` - SAP system URL\r\n- `x-sap-destination` - Destination name (e.g., \"S4HANA_E19\")\r\n\r\n**Optional Headers**:\r\n- `x-sap-client` - SAP client number\r\n- `x-sap-login` / `x-sap-password` - Username/password (edge cases)\r\n\r\n**Description**: Simplest configuration - uses AuthBroker to manage tokens. Always uses JWT authentication. No `x-sap-auth-type` header needed.\r\n\r\n**Example**:\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': 'S4HANA_E19',\r\n};\r\n```\r\n\r\n**Notes**:\r\n- Does NOT require `x-sap-auth-type` (always JWT)\r\n- If `x-sap-auth-type` is provided, it will be ignored (warning issued)\r\n- If `x-sap-jwt-token` is also provided, it will be ignored (warning issued)\r\n- Requires AuthBroker to be initialized in the server\r\n- Automatically handles token refresh and validation\r\n\r\n### 2. MCP Destination-Based Authentication\r\n\r\n**Priority**: `AuthMethodPriority.MCP_DESTINATION` (3)\r\n\r\n**Required Headers**:\r\n- `x-sap-url` - SAP system URL\r\n- `x-mcp-destination` - Destination name (e.g., \"TRIAL\", \"PRODUCTION\")\r\n\r\n**Optional Headers**:\r\n- `x-sap-client` - SAP client number\r\n\r\n**Description**: Uses AuthBroker to manage tokens based on destination. Tokens are loaded from `{destination}.env` files, validated, and automatically refreshed when needed. Always uses JWT authentication.\r\n\r\n**Example**:\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-mcp-destination': 'TRIAL',\r\n  // Note: x-sap-auth-type not needed - always uses JWT\r\n};\r\n```\r\n\r\n**Notes**:\r\n- Does NOT require `x-sap-auth-type` (always JWT)\r\n- If `x-sap-auth-type` is provided, it will be ignored (warning issued)\r\n- If `x-sap-jwt-token` is also provided, it will be ignored (warning issued)\r\n- Requires AuthBroker to be initialized in the server\r\n- Automatically handles token refresh and validation\r\n\r\n### 3. Direct JWT Authentication (Medium Priority)\r\n\r\n**Priority**: `AuthMethodPriority.DIRECT_JWT` (2)\r\n\r\n**Required Headers**:\r\n- `x-sap-url` - SAP system URL\r\n- `x-sap-auth-type` - Must be `jwt` or `xsuaa`\r\n- `x-sap-jwt-token` - JWT access token\r\n\r\n**Optional Headers**:\r\n- `x-sap-refresh-token` - Refresh token for automatic token renewal\r\n- `x-sap-uaa-url` / `uaa-url` - UAA URL\r\n- `x-sap-uaa-client-id` / `uaa-client-id` - UAA Client ID\r\n- `x-sap-uaa-client-secret` / `uaa-client-secret` - UAA Client Secret\r\n- `x-sap-client` - SAP client number\r\n\r\n**Description**: Direct JWT token authentication. Token is provided directly in headers.\r\n\r\n**Example**:\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'jwt',\r\n  'x-sap-jwt-token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...',\r\n  'x-sap-refresh-token': 'refresh_token_here', // optional\r\n};\r\n```\r\n\r\n**Notes**:\r\n- Token must be at least 10 characters long\r\n- Refresh token is optional but recommended for automatic token renewal\r\n\r\n### 4. Basic Authentication (Lowest Priority)\r\n\r\n**Priority**: `AuthMethodPriority.BASIC` (1)\r\n\r\n**Required Headers**:\r\n- `x-sap-url` - SAP system URL\r\n- `x-sap-auth-type` - Must be `basic`\r\n- `x-sap-login` - Username\r\n- `x-sap-password` - Password\r\n\r\n**Description**: Basic HTTP authentication with username and password.\r\n\r\n**Example**:\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'basic',\r\n  'x-sap-login': 'username',\r\n  'x-sap-password': 'password',\r\n};\r\n```\r\n\r\n**Notes**:\r\n- Used primarily for on-premise SAP systems\r\n- Credentials are sent in plain text (use HTTPS in production)\r\n\r\n## Valid Header Combinations\r\n\r\n### ✅ Valid Combinations\r\n\r\n#### 1. SAP Destination Only (Simplest - Recommended)\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': 'S4HANA_E19',\r\n}\r\n// No x-sap-auth-type needed - always JWT\r\n```\r\n\r\n#### 2. MCP Destination Only\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-mcp-destination': 'TRIAL',\r\n  // Note: x-sap-auth-type not needed - always uses JWT\r\n}\r\n```\r\n\r\n#### 3. Direct JWT Only\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'jwt',\r\n  'x-sap-jwt-token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...',\r\n  'x-sap-refresh-token': 'refresh_token', // optional\r\n}\r\n```\r\n\r\n#### 4. Basic Auth Only\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'basic',\r\n  'x-sap-login': 'username',\r\n  'x-sap-password': 'password',\r\n}\r\n```\r\n\r\n#### 5. SAP Destination + Auth Type (Warning Issued)\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': 'S4HANA_E19',\r\n  'x-sap-auth-type': 'jwt', // ignored (warning)\r\n}\r\n```\r\n**Result**: SAP Destination auth is used, auth-type is ignored (warning issued)\r\n\r\n#### 6. Destination + Direct JWT (Warning Issued)\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': 'S4HANA_E19',\r\n  'x-sap-jwt-token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...', // ignored\r\n}\r\n```\r\n**Result**: SAP Destination auth is used (Priority 4), direct JWT token is ignored (warning issued)\r\n\r\n#### 7. Multiple Destinations (SAP Takes Priority)\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': 'S4HANA_E19', // Priority 4\r\n  'x-mcp-destination': 'TRIAL',      // Priority 3 - ignored\r\n}\r\n```\r\n**Result**: SAP Destination auth is used, MCP destination is ignored\r\n\r\n### ❌ Invalid Combinations\r\n\r\n#### 1. Missing Required Headers\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  // Missing x-sap-auth-type\r\n}\r\n```\r\n**Error**: `x-sap-auth-type header is required`\r\n\r\n#### 2. Invalid Auth Type\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'invalid',\r\n}\r\n```\r\n**Error**: `x-sap-auth-type must be one of: jwt, xsuaa, basic`\r\n\r\n#### 3. JWT Auth Without Token or Destination\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'jwt',\r\n  // Missing x-sap-destination, x-mcp-destination, and x-sap-jwt-token\r\n}\r\n```\r\n**Error**: `JWT authentication requires either x-sap-destination, x-mcp-destination, or x-sap-jwt-token header`\r\n\r\n#### 4. Basic Auth Without Credentials\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'basic',\r\n  // Missing x-sap-login and/or x-sap-password\r\n}\r\n```\r\n**Error**: `Basic authentication requires x-sap-login and x-sap-password headers`\r\n\r\n#### 5. Empty Values\r\n```typescript\r\n{\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': '   ', // empty after trim\r\n}\r\n```\r\n**Error**: `x-sap-destination header is empty`\r\n\r\n#### 6. Invalid URL\r\n```typescript\r\n{\r\n  'x-sap-url': 'not-a-valid-url',\r\n  'x-sap-auth-type': 'jwt',\r\n  'x-sap-jwt-token': 'token',\r\n}\r\n```\r\n**Error**: `x-sap-url is not a valid URL`\r\n\r\n## Priority Resolution\r\n\r\nWhen multiple authentication methods are detected, the validator automatically selects the highest priority method:\r\n\r\n1. **SAP Destination** (Priority 4) - Always selected if `x-sap-destination` is present\r\n2. **MCP Destination** (Priority 3) - Selected if `x-mcp-destination` is present (always uses JWT, no `x-sap-auth-type` needed)\r\n3. **Direct JWT** (Priority 2) - Selected if JWT token is provided (requires `x-sap-auth-type: jwt`)\r\n4. **Basic** (Priority 1) - Selected only if basic auth headers are present (requires `x-sap-auth-type: basic`)\r\n\r\n### Example: Priority Resolution\r\n\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': 'S4HANA_E19',  // Priority 4 (selected)\r\n  'x-sap-auth-type': 'jwt',           // Ignored (warning)\r\n  'x-mcp-destination': 'TRIAL',       // Priority 3 (ignored)\r\n  'x-sap-jwt-token': 'token',         // Priority 2 (ignored)\r\n  'x-sap-login': 'user',              // Priority 1 (ignored)\r\n  'x-sap-password': 'pass',           // Priority 1 (ignored)\r\n};\r\n\r\nconst result = validateAuthHeaders(headers);\r\n// result.config.priority === AuthMethodPriority.SAP_DESTINATION (4)\r\n// result.warnings includes: \"x-sap-auth-type is ignored when x-sap-destination is present\"\r\n// result.warnings includes: \"x-sap-jwt-token is ignored when x-sap-destination is present\"\r\n```\r\n\r\n## API Reference\r\n\r\n### `validateAuthHeaders(headers?: IncomingHttpHeaders): HeaderValidationResult`\r\n\r\nValidates and prioritizes authentication headers.\r\n\r\n**Parameters**:\r\n- `headers` - HTTP headers object (optional)\r\n\r\n**Returns**: `HeaderValidationResult` object with:\r\n- `isValid: boolean` - Whether the configuration is valid\r\n- `config?: ValidatedAuthConfig` - Validated authentication configuration (if valid)\r\n- `errors: string[]` - List of validation errors\r\n- `warnings: string[]` - List of warnings (e.g., ignored headers)\r\n\r\n### `ValidatedAuthConfig`\r\n\r\n```typescript\r\ninterface ValidatedAuthConfig {\r\n  priority: AuthMethodPriority;  // Authentication method priority\r\n  authType: AuthType;            // 'jwt' | 'xsuaa' | 'basic'\r\n  sapUrl: string;                // SAP system URL\r\n  destination?: string;          // Destination name (for destination-based auth)\r\n  jwtToken?: string;             // JWT token (for direct JWT auth)\r\n  refreshToken?: string;         // Refresh token (optional, for JWT auth)\r\n  username?: string;             // Username (for basic auth)\r\n  password?: string;             // Password (for basic auth)\r\n  errors: string[];              // Validation errors\r\n  warnings: string[];            // Warnings\r\n}\r\n```\r\n\r\n### `AuthMethodPriority`\r\n\r\nEnumeration of authentication method priorities:\r\n\r\n```typescript\r\nenum AuthMethodPriority {\r\n  DESTINATION_BASED = 3,  // Highest priority\r\n  DIRECT_JWT = 2,         // Medium priority\r\n  BASIC = 1,              // Lowest priority\r\n  NONE = 0                // Invalid/No auth\r\n}\r\n```\r\n\r\n## Error Handling\r\n\r\nThe validator provides detailed error messages for common issues:\r\n\r\n- Missing required headers\r\n- Invalid header values\r\n- Empty header values (after trimming whitespace)\r\n- Invalid URL format\r\n- Invalid authentication type\r\n- Missing authentication credentials\r\n\r\nAll errors are collected in the `errors` array, and the validation result includes `isValid: false` if any errors are present.\r\n\r\n## Warnings\r\n\r\nThe validator issues warnings for:\r\n\r\n- Conflicting headers (e.g., destination and direct JWT token both present)\r\n- Multiple authentication methods with the same priority (should not happen in practice)\r\n\r\nWarnings do not prevent validation from succeeding but indicate potential configuration issues.\r\n\r\n## Examples\r\n\r\n### Example 1: SAP Destination Auth (Simplest)\r\n\r\n```typescript\r\nimport { validateAuthHeaders } from '@mcp-abap-adt/header-validator';\r\n\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-destination': 'S4HANA_E19',\r\n};\r\n\r\nconst result = validateAuthHeaders(headers);\r\n\r\nif (result.isValid && result.config) {\r\n  console.log('Using SAP destination-based auth');\r\n  console.log('Destination:', result.config.destination);\r\n  console.log('Priority:', result.config.priority);\r\n  console.log('Auth Type:', result.config.authType); // Always 'jwt'\r\n}\r\n```\r\n\r\n### Example 2: MCP Destination Auth\r\n\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-mcp-destination': 'TRIAL',\r\n  // Note: x-sap-auth-type not needed - always uses JWT\r\n};\r\n\r\nconst result = validateAuthHeaders(headers);\r\n\r\nif (result.isValid && result.config) {\r\n  console.log('Using MCP destination-based auth');\r\n  console.log('Destination:', result.config.destination);\r\n}\r\n```\r\n\r\n### Example 3: Direct JWT Auth\r\n\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'jwt',\r\n  'x-sap-jwt-token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...',\r\n  'x-sap-refresh-token': 'refresh_token',\r\n};\r\n\r\nconst result = validateAuthHeaders(headers);\r\n\r\nif (result.isValid && result.config) {\r\n  console.log('Using direct JWT auth');\r\n  console.log('Token:', result.config.jwtToken);\r\n}\r\n```\r\n\r\n### Example 4: Error Handling\r\n\r\n```typescript\r\nconst headers = {\r\n  'x-sap-url': 'https://test.sap.com',\r\n  'x-sap-auth-type': 'jwt',\r\n  // Missing required headers\r\n};\r\n\r\nconst result = validateAuthHeaders(headers);\r\n\r\nif (!result.isValid) {\r\n  console.error('Validation failed:');\r\n  result.errors.forEach(error => console.error(`  - ${error}`));\r\n}\r\n```\r\n\r\n## Documentation\r\n\r\nComplete documentation is available in the [`docs/`](docs/) directory:\r\n\r\n- **[Architecture](docs/architecture/ARCHITECTURE.md)** - System architecture, priority system, and valid header combinations\r\n- **[Development](docs/development/DEVELOPMENT.md)** - Development guide and testing\r\n- **[Usage](docs/using/USAGE.md)** - API reference and usage examples\r\n\r\nSee [docs/README.md](docs/README.md) for the complete documentation index.\r\n\r\n## License\r\n\r\nMIT\r\n\r\n","readmeFilename":"README.md","_rev":"1-2a53efb8bd3c9c25648fbf54d6ed2d8b"}