From 67c1dfe09fe810efb507c60a6fd535bd1984f8ff Mon Sep 17 00:00:00 2001 From: Paul Carleton Date: Thu, 20 Nov 2025 13:25:53 +0000 Subject: [PATCH 1/2] [auth] Add metadata suite for running metadata discovery tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a new 'metadata' suite that runs just the auth/metadata-* scenarios for faster iteration when testing metadata discovery specifically. Usage: node dist/index.mjs client --suite metadata --command "..." 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/index.ts | 8 +++++--- src/scenarios/client/auth/discovery-metadata.ts | 5 +++++ src/scenarios/index.ts | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 1cb6b38..21145d5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -14,7 +14,8 @@ import { listScenarios, listClientScenarios, listActiveClientScenarios, - listAuthScenarios + listAuthScenarios, + listMetadataScenarios } from './scenarios'; import { ConformanceCheck } from './types'; import { ClientOptionsSchema, ServerOptionsSchema } from './schemas'; @@ -51,7 +52,8 @@ program } const suites: Record string[]> = { - auth: listAuthScenarios + auth: listAuthScenarios, + metadata: listMetadataScenarios }; const suiteName = options.suite.toLowerCase(); @@ -147,7 +149,7 @@ program console.error('Either --scenario or --suite is required'); console.error('\nAvailable client scenarios:'); listScenarios().forEach((s) => console.error(` - ${s}`)); - console.error('\nAvailable suites: auth'); + console.error('\nAvailable suites: auth, metadata'); process.exit(1); } diff --git a/src/scenarios/client/auth/discovery-metadata.ts b/src/scenarios/client/auth/discovery-metadata.ts index 56a9694..86f1d00 100644 --- a/src/scenarios/client/auth/discovery-metadata.ts +++ b/src/scenarios/client/auth/discovery-metadata.ts @@ -217,3 +217,8 @@ export const AuthMetadataVar3Scenario = createMetadataScenario( // Export all scenarios as an array for convenience export const metadataScenarios = SCENARIO_CONFIGS.map(createMetadataScenario); + +// Export function to list metadata scenario names (for suite support) +export function listMetadataScenarios(): string[] { + return metadataScenarios.map((s) => s.name); +} diff --git a/src/scenarios/index.ts b/src/scenarios/index.ts index 16e01ce..3180c26 100644 --- a/src/scenarios/index.ts +++ b/src/scenarios/index.ts @@ -46,6 +46,7 @@ import { } from './server/prompts.js'; import { authScenariosList } from './client/auth/index.js'; +import { listMetadataScenarios } from './client/auth/discovery-metadata.js'; // Pending client scenarios (not yet fully tested/implemented) const pendingClientScenariosList: ClientScenario[] = [ @@ -151,3 +152,5 @@ export function listActiveClientScenarios(): string[] { export function listAuthScenarios(): string[] { return authScenariosList.map((scenario) => scenario.name); } + +export { listMetadataScenarios }; From f559fe59ee847eb82865d0f3c8fd1ec98b65bab3 Mon Sep 17 00:00:00 2001 From: Paul Carleton Date: Thu, 20 Nov 2025 13:26:12 +0000 Subject: [PATCH 2/2] Don't require lefthook to be installed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Set assert_lefthook_installed to false so the hooks gracefully skip if lefthook is not installed on the system. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- lefthook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lefthook.yml b/lefthook.yml index 3399e5f..445ba02 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -1,7 +1,7 @@ # lefthook.yml # Configuration reference: https://lefthook.dev/configuration/ -assert_lefthook_installed: true +assert_lefthook_installed: false output: - meta # Print lefthook version