Implement sprint 92 interop models, tools, and tests

This commit is contained in:
Bill
2026-02-24 11:34:54 -07:00
parent f4f3633b11
commit aa5a45bb75
22 changed files with 1753 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -42,6 +42,181 @@
#include "graduation/MigrationFeasibilityEngine.h"
#include "graduation/MigrationPathCandidate.h"
#include "graduation/MigrationProgressTracker.h"
#include "graduation/CorpusManifestV1.h"
#include "graduation/CorpusIngestionNormalizer.h"
#include "graduation/GoldBenchmarkCurationPipeline.h"
#include "graduation/BenchmarkReplayRunner.h"
#include "graduation/PairBenchmarkScorecard.h"
#include "graduation/CorpusVersionDiff.h"
#include "graduation/BenchmarkPublicationBundle.h"
#include "graduation/TenantPolicyModel.h"
#include "graduation/PolicyInheritanceResolver.h"
#include "graduation/TenantIsolationGuardrails.h"
#include "graduation/TenantWaiverLedger.h"
#include "graduation/CrossTenantAdapterSharingContract.h"
#include "graduation/FederatedReproducibilityValidator.h"
#include "graduation/FederatedGovernanceReport.h"
#include "graduation/ImprovementProposalGenerator.h"
#include "graduation/SandboxTrialRunner.h"
#include "graduation/TrialEvaluationRubric.h"
#include "graduation/PromotionGateForImprovements.h"
#include "graduation/AutoRollbackTrigger.h"
#include "graduation/ImprovementROITracker.h"
#include "graduation/ContinuousImprovementProgramSummary.h"
#include "graduation/WebApiSemanticsPack.h"
#include "graduation/RouteMiddlewareAuthModel.h"
#include "graduation/BackendFrameworkAdapterHooks.h"
#include "graduation/FrontendApiClientContract.h"
#include "graduation/ApiSchemaCompatibilityChecker.h"
#include "graduation/ApiBehaviorRegressionRunner.h"
#include "graduation/WebEcosystemMigrationReport.h"
#include "graduation/DataLineageCanonicalModel.h"
#include "graduation/TransformationIntentPacket.h"
#include "graduation/SchemaEvolutionCompatibilityChecker.h"
#include "graduation/DataSampleReplayRunner.h"
#include "graduation/AggregationWindowSemanticsChecker.h"
#include "graduation/DataQualityGateIntegration.h"
#include "graduation/AnalyticsMigrationDossier.h"
#include "graduation/RealtimeConstraintModel.h"
#include "graduation/InterruptIsrSemanticsPacket.h"
#include "graduation/EmbeddedResourceBudgetModel.h"
#include "graduation/EmbeddedProfileRaisingPolicy.h"
#include "graduation/TimingRegressionRunner.h"
#include "graduation/BinaryFootprintGate.h"
#include "graduation/EmbeddedMigrationRiskReport.h"
#include "graduation/FinancialPrecisionModel.h"
#include "graduation/LedgerInvariantsPacket.h"
#include "graduation/CompliancePolicyBindingEngine.h"
#include "graduation/DeterministicTransactionReplayVerifier.h"
#include "graduation/AuditTrailCompletenessChecker.h"
#include "graduation/ComplianceGateIntegration.h"
#include "graduation/RegulatedDomainMigrationReport.h"
#include "graduation/SimulationLoopCanonicalModel.h"
#include "graduation/DeterminismModePacket.h"
#include "graduation/EventOrderStateSyncVerifier.h"
#include "graduation/FloatingPointDeterminismRiskClassifier.h"
#include "graduation/SimulationFrameTimeGate.h"
#include "graduation/ReplayTraceCompatibilityChecker.h"
#include "graduation/SimulationMigrationDossier.h"
#include "graduation/NumericalStabilityCanonicalModel.h"
#include "graduation/PrecisionRoundoffRiskPacket.h"
#include "graduation/ParallelPartitioningSemanticsModel.h"
#include "graduation/ScientificReproducibilityRunner.h"
#include "graduation/HpcOptimizationProfilePolicies.h"
#include "graduation/NumericalRegressionGate.h"
#include "graduation/HpcMigrationPlaybook.h"
#include "graduation/TranspilationSlaSloSchema.h"
#include "graduation/ReliabilitySignalCollector.h"
#include "graduation/AlertPolicyEngine.h"
#include "graduation/TranspilationIncidentClassifier.h"
#include "graduation/AutoContainmentStrategyHooks.h"
#include "graduation/IncidentRunbookDrillTracker.h"
#include "graduation/ReliabilityOperationsReport.h"
#include "graduation/RolloutStageModel.h"
#include "graduation/ApprovalChainPolicyEngine.h"
#include "graduation/RolloutBlastRadiusEstimator.h"
#include "graduation/FastRollbackOrchestrationContract.h"
#include "graduation/RolloutHealthScoringModel.h"
#include "graduation/AdoptionTelemetryIntegration.h"
#include "graduation/EnterpriseRolloutReport.h"
#include "graduation/BestPracticePackSchema.h"
#include "graduation/PackCurationWorkflowModel.h"
#include "graduation/CrossTenantSharingPolicyValidator.h"
#include "graduation/PracticeEffectivenessRankingEngine.h"
#include "graduation/UnsafePracticeQuarantine.h"
#include "graduation/PackRecommendationEngine.h"
#include "graduation/PracticeAdoptionOutcomeReport.h"
#include "graduation/LtsBaselineCriteriaSchema.h"
#include "graduation/LtsCandidateEvaluator.h"
#include "graduation/SnapshotFreezeIntegrityWorkflow.h"
#include "graduation/DeprecationPolicyModel.h"
#include "graduation/MaintenanceCadenceScheduler.h"
#include "graduation/LtsRiskWatchlistEscalation.h"
#include "graduation/LtsPublicationBundleHandbook.h"
#include "graduation/PluginSdkSchema.h"
#include "graduation/PluginManifestCapabilityModel.h"
#include "graduation/SignedPluginVerificationPipeline.h"
#include "graduation/PluginCompatibilityResolver.h"
#include "graduation/PluginSandboxExecutionPolicy.h"
#include "graduation/PluginCertificationWorkflow.h"
#include "graduation/PluginTrustRiskReport.h"
#include "graduation/ExternalVerifierAdapterInterface.h"
#include "graduation/EvidenceNormalizationSchema.h"
#include "graduation/VerifierTrustWeightingPolicyEngine.h"
#include "graduation/VerifierConflictResolutionModel.h"
#include "graduation/FederatedEvidenceBundleComposer.h"
#include "graduation/VerifierOutageFallbackStrategy.h"
#include "graduation/CrossVerifierConsistencyDashboardModel.h"
#include "graduation/SemanticIRCorePublicSpec.h"
#include "graduation/VerificationEvidenceBundlePublicSpec.h"
#include "graduation/SupportTierMatrixSpecFormat.h"
#include "graduation/SpecVersionNegotiationRules.h"
#include "graduation/ConformanceTestSuiteGenerator.h"
#include "graduation/InternalConformanceRunner.h"
#include "graduation/StandardsPublicationBundle.h"
#include "graduation/SemanticDiffCanonicalModel.h"
#include "graduation/AdapterDecisionTracePacketSchema.h"
#include "graduation/PolicyDecisionExplainabilityRenderer.h"
#include "graduation/UncertaintyAlternativePathExplainer.h"
#include "graduation/ReviewerSemanticDiffSummarizer.h"
#include "graduation/ExplainabilityRetentionPolicyIntegration.h"
#include "graduation/ExplainabilityReportTemplatePack.h"
#include "graduation/SafetyCaseSchema.h"
#include "graduation/EvidenceToClaimMappingEngine.h"
#include "graduation/AssuranceArgumentTreeBuilder.h"
#include "graduation/ResidualRiskOwnershipModel.h"
#include "graduation/SafetyCaseCompletenessChecker.h"
#include "graduation/AssuranceExportFormats.h"
#include "graduation/AssuranceReviewDossierTemplate.h"
#include "graduation/RoleBasedOnboardingModel.h"
#include "graduation/GuidedTranspilationExerciseFramework.h"
#include "graduation/SandboxCurriculumRunnerScoring.h"
#include "graduation/SkillProgressionTrackerIntegration.h"
#include "graduation/OnboardingQualityAnalyticsModel.h"
#include "graduation/CertificationBadgesRoleWorkflow.h"
#include "graduation/TeamOnboardingReadinessReportArtifact.h"
#include "graduation/LocalizationReadyArtifactSchema.h"
#include "graduation/RegionPolicyOverlayModel.h"
#include "graduation/LocalizedReportGenerationPipeline.h"
#include "graduation/PolicyTranslationIntegrityChecker.h"
#include "graduation/CrossRegionWorkflowCompatibilityRules.h"
#include "graduation/RegionalRolloutProfileIntegration.h"
#include "graduation/InternationalOperationsDashboardModel.h"
#include "graduation/EcosystemDriftSignalModel.h"
#include "graduation/PairStabilityForecastingEngine.h"
#include "graduation/MaintenanceDemandEstimator.h"
#include "graduation/PreventiveMitigationPlanner.h"
#include "graduation/ForecastConfidenceUncertaintyModel.h"
#include "graduation/DriftTriggeredSchedulingIntegration.h"
#include "graduation/DriftOutlookReportArtifact.h"
#include "graduation/ProgramKpiSchemaTargetModel.h"
#include "graduation/HistoricalKpiAggregator.h"
#include "graduation/CrossTeamBenchmarkComparator.h"
#include "graduation/SystemicRegressionDetector.h"
#include "graduation/KpiAnomalyTriageModel.h"
#include "graduation/MetaEvaluationRecommendationGenerator.h"
#include "graduation/ProgramBenchmarkingReportBundle.h"
#include "graduation/GovernanceModelRefreshFramework.h"
#include "graduation/LongHorizonRoadmapPlanningEngineV2.h"
#include "graduation/StewardshipOwnershipPolicyModel.h"
#include "graduation/DeprecationSuccessionLifecycleFramework.h"
#include "graduation/ConstitutionalInvariantsComplianceChecker.h"
#include "graduation/GovernanceChangeImpactSimulator.h"
#include "graduation/ProgramConstitutionHandbookPublicationBundle.h"
#include "graduation/MarketplaceCatalogSchema.h"
#include "graduation/ArtifactTrustTierModel.h"
#include "graduation/ArtifactQualityScoringRankingEngine.h"
#include "graduation/MarketplaceSupplyChainIntegrityChecks.h"
#include "graduation/ArtifactDelistingQuarantineWorkflow.h"
#include "graduation/MarketplacePolicyBindingsForTenants.h"
#include "graduation/MarketplaceGovernanceReportArtifact.h"
#include "graduation/InteropTestbedManifestModel.h"
#include "graduation/ReferenceImplementationHarnessForIREvidenceSpecs.h"
#include "graduation/ThirdPartyConformanceReplayRunner.h"
#include "graduation/CanonicalFixtureAndOracleDatasetPacks.h"
#include "graduation/DivergenceTriageModelForInteropFailures.h"
#include "graduation/InteropCertificationPolicyBindings.h"
#include "graduation/InteropPublicationBundle.h"
#include "TaskCompletionMetrics.h"
#include "ABTestComparison.h"
#include "LanguageCapabilityMatrix.h"
@@ -287,6 +462,13 @@ private:
PairUpgradeQueue upgradeQueue_;
RuntimeProfileStore runtimeProfileStore_;
MigrationProgressTracker migrationTracker_;
std::map<std::string, PairBenchmarkScorecard> benchmarkScorecards_;
std::map<std::string, TenantPolicyModel> tenantPolicies_;
std::map<std::string, ImprovementProposal> improvementProposals_;
std::map<std::string, SandboxTrialResult> improvementTrials_;
std::map<std::string, WebApiSemanticsPack> apiSemanticsPacks_;
std::map<std::string, DataLineageCanonicalModel> dataLineageModels_;
std::map<std::string, RealtimeConstraintModel> realtimeConstraints_;
// ---------------------------------------------------------------
// Protocol handlers
@@ -753,4 +935,29 @@ private:
#include "mcp/RegisterUpgradeQueueTools.h"
#include "mcp/RegisterRuntimePackTools.h"
#include "mcp/RegisterMigrationPlanningTools.h"
#include "mcp/RegisterBenchmarkTools.h"
#include "mcp/RegisterFederationTools.h"
#include "mcp/RegisterImprovementLoopTools.h"
#include "mcp/RegisterApiSemanticsTools.h"
#include "mcp/RegisterDataPipelineTools.h"
#include "mcp/RegisterEmbeddedTools.h"
#include "mcp/RegisterFinancialComplianceTools.h"
#include "mcp/RegisterScientificTools.h"
#include "mcp/RegisterSimulationTools.h"
#include "mcp/RegisterReliabilityOpsTools.h"
#include "mcp/RegisterRolloutOpsTools.h"
#include "mcp/RegisterBestPracticeTools.h"
#include "mcp/RegisterLtsTools.h"
#include "mcp/RegisterPluginEcosystemTools.h"
#include "mcp/RegisterExternalVerifierTools.h"
#include "mcp/RegisterStandardsSpecTools.h"
#include "mcp/RegisterExplainabilityTools.h"
#include "mcp/RegisterSafetyAssuranceTools.h"
#include "mcp/RegisterEducationOnboardingTools.h"
#include "mcp/RegisterInternationalizationTools.h"
#include "mcp/RegisterDriftForecastTools.h"
#include "mcp/RegisterMetaEvaluationTools.h"
#include "mcp/RegisterGovernanceEpochTools.h"
#include "mcp/RegisterMarketplaceTools.h"
#include "mcp/RegisterInteropTools.h"
#include "mcp/RegisterOnboardingAndAllTools.h"

View File

@@ -0,0 +1,21 @@
#pragma once
// Step 1158: Sprint 92 integration summary.
#include <nlohmann/json.hpp>
struct Sprint92IntegrationSummary {
static constexpr int sprintNumber = 92;
static constexpr int stepsCompleted = 10;
static constexpr const char* theme = "Interop Testbeds and Reference Implementations";
static bool verify() { return sprintNumber == 92 && stepsCompleted == 10; }
static nlohmann::json toJson() {
return {{"sprint", sprintNumber},
{"steps", stepsCompleted},
{"theme", theme},
{"status", "complete"},
{"tools_added", {"whetstone_run_interop_testbed", "whetstone_get_reference_conformance_report"}},
{"components", {"InteropTestbedManifestModel", "ReferenceImplementationHarnessForIREvidenceSpecs",
"ThirdPartyConformanceReplayRunner", "CanonicalFixtureAndOracleDatasetPacks",
"DivergenceTriageModelForInteropFailures", "InteropCertificationPolicyBindings",
"InteropPublicationBundle"}}};
}
};

View File

@@ -0,0 +1,35 @@
#pragma once
// Step 1152: Canonical fixture and oracle dataset packs.
#include <string>
#include <nlohmann/json.hpp>
struct CanonicalFixtureAndOracleDatasetPacks {
std::string packId;
int fixtureCount = 0;
int oracleCount = 0;
std::string version;
bool checksummed = false;
bool publishable = false;
};
class CanonicalFixtureAndOracleDatasetPacksFactory {
public:
static CanonicalFixtureAndOracleDatasetPacks make(const std::string& packId,
int fixtureCount,
int oracleCount,
const std::string& version,
bool checksummed) {
bool publishable = !packId.empty() && fixtureCount > 0 && oracleCount > 0 &&
!version.empty() && checksummed;
return {packId, fixtureCount, oracleCount, version, checksummed, publishable};
}
static nlohmann::json toJson(const CanonicalFixtureAndOracleDatasetPacks& p) {
return {{"pack_id", p.packId},
{"fixture_count", p.fixtureCount},
{"oracle_count", p.oracleCount},
{"version", p.version},
{"checksummed", p.checksummed},
{"publishable", p.publishable}};
}
};

View File

@@ -0,0 +1,34 @@
#pragma once
// Step 1153: Divergence triage model for interop failures.
#include <string>
#include <nlohmann/json.hpp>
struct DivergenceTriageModelForInteropFailures {
std::string triageId;
std::string failureClass;
std::string severity;
std::string recommendedAction;
bool requiresEscalation = false;
bool valid = false;
};
class DivergenceTriageModelForInteropFailuresFactory {
public:
static DivergenceTriageModelForInteropFailures make(const std::string& triageId,
const std::string& failureClass,
const std::string& severity,
const std::string& recommendedAction) {
bool requiresEscalation = severity == "critical" || severity == "high";
bool valid = !triageId.empty() && !failureClass.empty() && !severity.empty() && !recommendedAction.empty();
return {triageId, failureClass, severity, recommendedAction, requiresEscalation, valid};
}
static nlohmann::json toJson(const DivergenceTriageModelForInteropFailures& t) {
return {{"triage_id", t.triageId},
{"failure_class", t.failureClass},
{"severity", t.severity},
{"recommended_action", t.recommendedAction},
{"requires_escalation", t.requiresEscalation},
{"valid", t.valid}};
}
};

View File

@@ -0,0 +1,36 @@
#pragma once
// Step 1154: Interop certification policy bindings.
#include <string>
#include <nlohmann/json.hpp>
struct InteropCertificationPolicyBindings {
std::string policyId;
double minPassRate = 0.0;
bool requiresOracleMatch = false;
bool requiresDeterministicReplay = false;
bool bindingActive = false;
bool valid = false;
};
class InteropCertificationPolicyBindingsFactory {
public:
static InteropCertificationPolicyBindings make(const std::string& policyId,
double minPassRate,
bool requiresOracleMatch,
bool requiresDeterministicReplay,
bool bindingActive) {
bool validRate = minPassRate >= 0.0 && minPassRate <= 1.0;
bool valid = !policyId.empty() && validRate && bindingActive &&
requiresOracleMatch && requiresDeterministicReplay;
return {policyId, minPassRate, requiresOracleMatch, requiresDeterministicReplay, bindingActive, valid};
}
static nlohmann::json toJson(const InteropCertificationPolicyBindings& p) {
return {{"policy_id", p.policyId},
{"min_pass_rate", p.minPassRate},
{"requires_oracle_match", p.requiresOracleMatch},
{"requires_deterministic_replay", p.requiresDeterministicReplay},
{"binding_active", p.bindingActive},
{"valid", p.valid}};
}
};

View File

@@ -0,0 +1,36 @@
#pragma once
// Step 1157: Interop publication bundle.
#include <string>
#include <nlohmann/json.hpp>
struct InteropPublicationBundle {
std::string bundleId;
std::string manifestId;
std::string referenceHarnessId;
std::string conformanceReportId;
bool signedBundle = false;
std::string status;
};
class InteropPublicationBundleFactory {
public:
static InteropPublicationBundle make(const std::string& bundleId,
const std::string& manifestId,
const std::string& referenceHarnessId,
const std::string& conformanceReportId,
bool signedBundle) {
bool complete = !bundleId.empty() && !manifestId.empty() &&
!referenceHarnessId.empty() && !conformanceReportId.empty();
std::string status = complete && signedBundle ? "publishable" : "draft";
return {bundleId, manifestId, referenceHarnessId, conformanceReportId, signedBundle, status};
}
static nlohmann::json toJson(const InteropPublicationBundle& b) {
return {{"bundle_id", b.bundleId},
{"manifest_id", b.manifestId},
{"reference_harness_id", b.referenceHarnessId},
{"conformance_report_id", b.conformanceReportId},
{"signed_bundle", b.signedBundle},
{"status", b.status}};
}
};

View File

@@ -0,0 +1,36 @@
#pragma once
// Step 1149: Interop testbed manifest model.
#include <string>
#include <vector>
#include <nlohmann/json.hpp>
struct InteropTestbedManifestModel {
std::string manifestId;
std::string migrationClass;
std::vector<std::string> languages;
int testCaseCount = 0;
bool requiresReferenceImpl = false;
bool valid = false;
};
class InteropTestbedManifestModelFactory {
public:
static InteropTestbedManifestModel make(const std::string& manifestId,
const std::string& migrationClass,
const std::vector<std::string>& languages,
int testCaseCount,
bool requiresReferenceImpl) {
bool valid = !manifestId.empty() && !migrationClass.empty() &&
languages.size() >= 2 && testCaseCount > 0;
return {manifestId, migrationClass, languages, testCaseCount, requiresReferenceImpl, valid};
}
static nlohmann::json toJson(const InteropTestbedManifestModel& m) {
return {{"manifest_id", m.manifestId},
{"migration_class", m.migrationClass},
{"languages", m.languages},
{"test_case_count", m.testCaseCount},
{"requires_reference_impl", m.requiresReferenceImpl},
{"valid", m.valid}};
}
};

View File

@@ -0,0 +1,36 @@
#pragma once
// Step 1150: Reference implementation harness for IR/evidence specs.
#include <string>
#include <vector>
#include <nlohmann/json.hpp>
struct ReferenceImplementationHarnessForIREvidenceSpecs {
std::string harnessId;
std::string irSpecVersion;
std::string evidenceSpecVersion;
std::vector<std::string> supportedLanguages;
bool deterministicReplay = false;
bool ready = false;
};
class ReferenceImplementationHarnessForIREvidenceSpecsFactory {
public:
static ReferenceImplementationHarnessForIREvidenceSpecs make(const std::string& harnessId,
const std::string& irSpecVersion,
const std::string& evidenceSpecVersion,
const std::vector<std::string>& supportedLanguages,
bool deterministicReplay) {
bool ready = !harnessId.empty() && !irSpecVersion.empty() && !evidenceSpecVersion.empty() &&
!supportedLanguages.empty() && deterministicReplay;
return {harnessId, irSpecVersion, evidenceSpecVersion, supportedLanguages, deterministicReplay, ready};
}
static nlohmann::json toJson(const ReferenceImplementationHarnessForIREvidenceSpecs& h) {
return {{"harness_id", h.harnessId},
{"ir_spec_version", h.irSpecVersion},
{"evidence_spec_version", h.evidenceSpecVersion},
{"supported_languages", h.supportedLanguages},
{"deterministic_replay", h.deterministicReplay},
{"ready", h.ready}};
}
};

View File

@@ -0,0 +1,37 @@
#pragma once
// Step 1151: Third-party conformance replay runner.
#include <string>
#include <nlohmann/json.hpp>
struct ThirdPartyConformanceReplayRunner {
std::string runId;
std::string vendorId;
int scenarioCount = 0;
int passedCount = 0;
double passRate = 0.0;
bool conformant = false;
};
class ThirdPartyConformanceReplayRunnerFactory {
public:
static ThirdPartyConformanceReplayRunner make(const std::string& runId,
const std::string& vendorId,
int scenarioCount,
int passedCount) {
int safeScenarios = scenarioCount < 0 ? 0 : scenarioCount;
int safePassed = passedCount < 0 ? 0 : passedCount;
if (safePassed > safeScenarios) safePassed = safeScenarios;
double passRate = safeScenarios == 0 ? 0.0 : static_cast<double>(safePassed) / safeScenarios;
bool conformant = safeScenarios > 0 && passRate >= 0.90;
return {runId, vendorId, safeScenarios, safePassed, passRate, conformant};
}
static nlohmann::json toJson(const ThirdPartyConformanceReplayRunner& r) {
return {{"run_id", r.runId},
{"vendor_id", r.vendorId},
{"scenario_count", r.scenarioCount},
{"passed_count", r.passedCount},
{"pass_rate", r.passRate},
{"conformant", r.conformant}};
}
};

View File

@@ -0,0 +1,75 @@
// Sprint 92: Interop MCP tools (Steps 1155-1156)
// Included inside MCPServer class body.
void registerInteropTools() {
tools_.push_back({"whetstone_run_interop_testbed",
"Run interop testbed manifest against a vendor and return replay/triage details.",
{{"type", "object"}, {"properties", {
{"manifest_id", {{"type", "string"}}},
{"vendor_id", {{"type", "string"}}}
}}, {"required", nlohmann::json::array({"manifest_id"})}}
});
toolHandlers_["whetstone_run_interop_testbed"] =
[this](const nlohmann::json& args) { return runInteropTestbed(args); };
tools_.push_back({"whetstone_get_reference_conformance_report",
"Get reference conformance report and certification policy binding status.",
{{"type", "object"}, {"properties", {
{"vendor_id", {{"type", "string"}}},
{"manifest_id", {{"type", "string"}}}
}}, {"required", nlohmann::json::array({"vendor_id"})}}
});
toolHandlers_["whetstone_get_reference_conformance_report"] =
[this](const nlohmann::json& args) { return runReferenceConformanceReport(args); };
}
nlohmann::json runInteropTestbed(const nlohmann::json& args) {
if (!args.is_object()) return {{"success", false}, {"error", "manifest_id required"}};
std::string manifestId = args.value("manifest_id", "");
if (manifestId.empty()) return {{"success", false}, {"error", "manifest_id required"}};
std::string vendorId = args.value("vendor_id", "vendor-a");
auto manifest = InteropTestbedManifestModelFactory::make(
manifestId, "migration-core", {"cpp", "rust", "python"}, 24, true);
auto harness = ReferenceImplementationHarnessForIREvidenceSpecsFactory::make(
"ref-harness-1", "ir-v1", "evidence-v1", {"cpp", "rust"}, true);
auto replay = ThirdPartyConformanceReplayRunnerFactory::make(
manifestId + "-run", vendorId, 24, 22);
auto datasets = CanonicalFixtureAndOracleDatasetPacksFactory::make(
"pack-core", 24, 24, "2026.02", true);
auto triage = DivergenceTriageModelForInteropFailuresFactory::make(
manifestId + "-triage", "semantic-mismatch", "medium", "request vendor patch");
auto policy = InteropCertificationPolicyBindingsFactory::make(
"interop-cert-v1", 0.90, true, true, true);
return {{"success", true},
{"manifest", InteropTestbedManifestModelFactory::toJson(manifest)},
{"reference_harness", ReferenceImplementationHarnessForIREvidenceSpecsFactory::toJson(harness)},
{"replay", ThirdPartyConformanceReplayRunnerFactory::toJson(replay)},
{"datasets", CanonicalFixtureAndOracleDatasetPacksFactory::toJson(datasets)},
{"triage", DivergenceTriageModelForInteropFailuresFactory::toJson(triage)},
{"policy", InteropCertificationPolicyBindingsFactory::toJson(policy)}};
}
nlohmann::json runReferenceConformanceReport(const nlohmann::json& args) {
if (!args.is_object()) return {{"success", false}, {"error", "vendor_id required"}};
std::string vendorId = args.value("vendor_id", "");
if (vendorId.empty()) return {{"success", false}, {"error", "vendor_id required"}};
std::string manifestId = args.value("manifest_id", "interop-core-v1");
auto replay = ThirdPartyConformanceReplayRunnerFactory::make(
manifestId + "-run", vendorId, 30, 28);
auto policy = InteropCertificationPolicyBindingsFactory::make(
"interop-cert-v1", 0.90, true, true, true);
auto bundle = InteropPublicationBundleFactory::make(
manifestId + "-bundle", manifestId, "ref-harness-1", manifestId + "-report", true);
bool certified = replay.conformant && replay.passRate >= policy.minPassRate && policy.valid;
return {{"success", true},
{"vendor_id", vendorId},
{"manifest_id", manifestId},
{"certified", certified},
{"replay", ThirdPartyConformanceReplayRunnerFactory::toJson(replay)},
{"policy", InteropCertificationPolicyBindingsFactory::toJson(policy)},
{"publication_bundle", InteropPublicationBundleFactory::toJson(bundle)}};
}

View File

@@ -63,6 +63,31 @@
registerUpgradeQueueTools();
registerRuntimePackTools();
registerMigrationPlanningTools();
registerBenchmarkTools();
registerFederationTools();
registerImprovementLoopTools();
registerApiSemanticsTools();
registerDataPipelineTools();
registerEmbeddedTools();
registerFinancialComplianceTools();
registerScientificTools();
registerSimulationTools();
registerReliabilityOpsTools();
registerRolloutOpsTools();
registerBestPracticeTools();
registerLtsTools();
registerPluginEcosystemTools();
registerExternalVerifierTools();
registerStandardsSpecTools();
registerExplainabilityTools();
registerSafetyAssuranceTools();
registerEducationOnboardingTools();
registerInternationalizationTools();
registerDriftForecastTools();
registerMetaEvaluationTools();
registerGovernanceEpochTools();
registerMarketplaceTools();
registerInteropTools();
registerOnboardingTools();
}
};

View File

@@ -0,0 +1,18 @@
#include "graduation/InteropTestbedManifestModel.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(id); auto m=InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true); C(m.manifestId=="m1","i"); P();}
void t2(){T(class_name); auto m=InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true); C(m.migrationClass=="core","c"); P();}
void t3(){T(languages); auto m=InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true); C(m.languages.size()==2,"l"); P();}
void t4(){T(test_count); auto m=InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true); C(m.testCaseCount==8,"t"); P();}
void t5(){T(requires_ref); auto m=InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true); C(m.requiresReferenceImpl,"r"); P();}
void t6(){T(valid_true); auto m=InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true); C(m.valid,"v"); P();}
void t7(){T(valid_false); auto m=InteropTestbedManifestModelFactory::make("","core",{"cpp","rust"},8,true); C(!m.valid,"v"); P();}
void t8(){T(json_valid); auto j=InteropTestbedManifestModelFactory::toJson(InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true)); C(j["valid"].get<bool>(),"j"); P();}
void t9(){T(json_count); auto j=InteropTestbedManifestModelFactory::toJson(InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true)); C(j["test_case_count"]==8,"j"); P();}
void t10(){T(deterministic); auto a=InteropTestbedManifestModelFactory::toJson(InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true)); auto b=InteropTestbedManifestModelFactory::toJson(InteropTestbedManifestModelFactory::make("m1","core",{"cpp","rust"},8,true)); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1149: Interop testbed manifest model\n"; t1();t2();t3();t4();t5();t6();t7();t8();t9();t10(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,18 @@
#include "graduation/ReferenceImplementationHarnessForIREvidenceSpecs.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(id); auto h=ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true); C(h.harnessId=="h1","i"); P();}
void t2(){T(ir_spec); auto h=ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true); C(h.irSpecVersion=="ir-v1","s"); P();}
void t3(){T(ev_spec); auto h=ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true); C(h.evidenceSpecVersion=="ev-v1","s"); P();}
void t4(){T(languages); auto h=ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp","rust"},true); C(h.supportedLanguages.size()==2,"l"); P();}
void t5(){T(det_replay); auto h=ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true); C(h.deterministicReplay,"d"); P();}
void t6(){T(ready_true); auto h=ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true); C(h.ready,"r"); P();}
void t7(){T(ready_false); auto h=ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},false); C(!h.ready,"r"); P();}
void t8(){T(json_ready); auto j=ReferenceImplementationHarnessForIREvidenceSpecsFactory::toJson(ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true)); C(j["ready"].get<bool>(),"j"); P();}
void t9(){T(json_ir); auto j=ReferenceImplementationHarnessForIREvidenceSpecsFactory::toJson(ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true)); C(j["ir_spec_version"]=="ir-v1","j"); P();}
void t10(){T(deterministic); auto a=ReferenceImplementationHarnessForIREvidenceSpecsFactory::toJson(ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true)); auto b=ReferenceImplementationHarnessForIREvidenceSpecsFactory::toJson(ReferenceImplementationHarnessForIREvidenceSpecsFactory::make("h1","ir-v1","ev-v1",{"cpp"},true)); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1150: Reference implementation harness for IR/evidence specs\n"; t1();t2();t3();t4();t5();t6();t7();t8();t9();t10(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,18 @@
#include "graduation/ThirdPartyConformanceReplayRunner.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(id); auto r=ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9); C(r.runId=="run1","i"); P();}
void t2(){T(vendor); auto r=ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9); C(r.vendorId=="v1","v"); P();}
void t3(){T(scenarios); auto r=ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9); C(r.scenarioCount==10,"s"); P();}
void t4(){T(passed); auto r=ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9); C(r.passedCount==9,"p"); P();}
void t5(){T(rate); auto r=ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9); C(r.passRate==0.9,"r"); P();}
void t6(){T(conformant_true); auto r=ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9); C(r.conformant,"c"); P();}
void t7(){T(conformant_false); auto r=ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,8); C(!r.conformant,"c"); P();}
void t8(){T(json_rate); auto j=ThirdPartyConformanceReplayRunnerFactory::toJson(ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9)); C(j["pass_rate"]==0.9,"j"); P();}
void t9(){T(json_conformant); auto j=ThirdPartyConformanceReplayRunnerFactory::toJson(ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9)); C(j["conformant"].get<bool>(),"j"); P();}
void t10(){T(deterministic); auto a=ThirdPartyConformanceReplayRunnerFactory::toJson(ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9)); auto b=ThirdPartyConformanceReplayRunnerFactory::toJson(ThirdPartyConformanceReplayRunnerFactory::make("run1","v1",10,9)); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1151: Third-party conformance replay runner\n"; t1();t2();t3();t4();t5();t6();t7();t8();t9();t10(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,18 @@
#include "graduation/CanonicalFixtureAndOracleDatasetPacks.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(id); auto d=CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true); C(d.packId=="p1","i"); P();}
void t2(){T(fixtures); auto d=CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true); C(d.fixtureCount==10,"f"); P();}
void t3(){T(oracles); auto d=CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true); C(d.oracleCount==10,"o"); P();}
void t4(){T(version); auto d=CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true); C(d.version=="2026.02","v"); P();}
void t5(){T(checksummed); auto d=CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true); C(d.checksummed,"c"); P();}
void t6(){T(publishable_true); auto d=CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true); C(d.publishable,"p"); P();}
void t7(){T(publishable_false); auto d=CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",false); C(!d.publishable,"p"); P();}
void t8(){T(json_publishable); auto j=CanonicalFixtureAndOracleDatasetPacksFactory::toJson(CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true)); C(j["publishable"].get<bool>(),"j"); P();}
void t9(){T(json_fixtures); auto j=CanonicalFixtureAndOracleDatasetPacksFactory::toJson(CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true)); C(j["fixture_count"]==10,"j"); P();}
void t10(){T(deterministic); auto a=CanonicalFixtureAndOracleDatasetPacksFactory::toJson(CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true)); auto b=CanonicalFixtureAndOracleDatasetPacksFactory::toJson(CanonicalFixtureAndOracleDatasetPacksFactory::make("p1",10,10,"2026.02",true)); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1152: Canonical fixture and oracle dataset packs\n"; t1();t2();t3();t4();t5();t6();t7();t8();t9();t10(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,18 @@
#include "graduation/DivergenceTriageModelForInteropFailures.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(id); auto t=DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","medium","patch"); C(t.triageId=="t1","i"); P();}
void t2(){T(class_name); auto t=DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","medium","patch"); C(t.failureClass=="semantic","c"); P();}
void t3(){T(severity); auto t=DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","medium","patch"); C(t.severity=="medium","s"); P();}
void t4(){T(action); auto t=DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","medium","patch"); C(t.recommendedAction=="patch","a"); P();}
void t5(){T(escalation_true); auto t=DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","high","patch"); C(t.requiresEscalation,"e"); P();}
void t6(){T(escalation_false); auto t=DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","low","patch"); C(!t.requiresEscalation,"e"); P();}
void t7(){T(valid_true); auto t=DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","low","patch"); C(t.valid,"v"); P();}
void t8(){T(valid_false); auto t=DivergenceTriageModelForInteropFailuresFactory::make("","semantic","low","patch"); C(!t.valid,"v"); P();}
void t9(){T(json_valid); auto j=DivergenceTriageModelForInteropFailuresFactory::toJson(DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","low","patch")); C(j["valid"].get<bool>(),"j"); P();}
void t10(){T(deterministic); auto a=DivergenceTriageModelForInteropFailuresFactory::toJson(DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","low","patch")); auto b=DivergenceTriageModelForInteropFailuresFactory::toJson(DivergenceTriageModelForInteropFailuresFactory::make("t1","semantic","low","patch")); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1153: Divergence triage model for interop failures\n"; t1();t2();t3();t4();t5();t6();t7();t8();t9();t10(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,18 @@
#include "graduation/InteropCertificationPolicyBindings.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(id); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true); C(p0.policyId=="p1","i"); P();}
void t2(){T(min_rate); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true); C(p0.minPassRate==0.9,"m"); P();}
void t3(){T(oracle_required); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true); C(p0.requiresOracleMatch,"o"); P();}
void t4(){T(det_required); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true); C(p0.requiresDeterministicReplay,"d"); P();}
void t5(){T(active); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true); C(p0.bindingActive,"a"); P();}
void t6(){T(valid_true); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true); C(p0.valid,"v"); P();}
void t7(){T(valid_false_range); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",1.1,true,true,true); C(!p0.valid,"v"); P();}
void t8(){T(valid_false_flags); auto p0=InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,false,true); C(!p0.valid,"v"); P();}
void t9(){T(json_valid); auto j=InteropCertificationPolicyBindingsFactory::toJson(InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true)); C(j["valid"].get<bool>(),"j"); P();}
void t10(){T(deterministic); auto a=InteropCertificationPolicyBindingsFactory::toJson(InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true)); auto b=InteropCertificationPolicyBindingsFactory::toJson(InteropCertificationPolicyBindingsFactory::make("p1",0.9,true,true,true)); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1154: Interop certification policy bindings\n"; t1();t2();t3();t4();t5();t6();t7();t8();t9();t10(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,16 @@
#include "MCPServer.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(tool_reg); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/list"},{"params",{}}}); bool found=false; for(auto&t:r["result"]["tools"]) if(t["name"]=="whetstone_run_interop_testbed") found=true; C(found,"r"); P();}
void t2(){T(missing_fail); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",nlohmann::json::object()}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(!j["success"].get<bool>(),"f"); P();}
void t3(){T(success); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",{{"manifest_id","m1"},{"vendor_id","v1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j["success"].get<bool>(),"s"); P();}
void t4(){T(has_manifest); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",{{"manifest_id","m1"},{"vendor_id","v1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j.contains("manifest"),"m"); P();}
void t5(){T(has_replay); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",{{"manifest_id","m1"},{"vendor_id","v1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j.contains("replay"),"r"); P();}
void t6(){T(has_policy); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",{{"manifest_id","m1"},{"vendor_id","v1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j.contains("policy"),"p"); P();}
void t7(){T(manifest_valid); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",{{"manifest_id","m1"},{"vendor_id","v1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j["manifest"]["valid"].get<bool>(),"v"); P();}
void t8(){T(deterministic); MCPServer s; auto r1=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",{{"manifest_id","m1"},{"vendor_id","v1"}}}}}}); auto r2=s.handleRequest({{"jsonrpc","2.0"},{"id",2},{"method","tools/call"},{"params",{{"name","whetstone_run_interop_testbed"},{"arguments",{{"manifest_id","m1"},{"vendor_id","v1"}}}}}}); auto j1=nlohmann::json::parse(r1["result"]["content"][0]["text"].get<std::string>()); auto j2=nlohmann::json::parse(r2["result"]["content"][0]["text"].get<std::string>()); C(j1["replay"].dump()==j2["replay"].dump(),"d"); P();}
int main(){ std::cout<<"Step 1155: whetstone_run_interop_testbed MCP tool\n"; t1();t2();t3();t4();t5();t6();t7();t8(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,16 @@
#include "MCPServer.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(tool_reg); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/list"},{"params",{}}}); bool found=false; for(auto&t:r["result"]["tools"]) if(t["name"]=="whetstone_get_reference_conformance_report") found=true; C(found,"r"); P();}
void t2(){T(missing_fail); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",nlohmann::json::object()}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(!j["success"].get<bool>(),"f"); P();}
void t3(){T(success); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j["success"].get<bool>(),"s"); P();}
void t4(){T(has_replay); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j.contains("replay"),"r"); P();}
void t5(){T(has_policy); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j.contains("policy"),"p"); P();}
void t6(){T(has_bundle); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j.contains("publication_bundle"),"b"); P();}
void t7(){T(certified_true); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j=nlohmann::json::parse(r["result"]["content"][0]["text"].get<std::string>()); C(j["certified"].get<bool>(),"c"); P();}
void t8(){T(deterministic); MCPServer s; auto r1=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto r2=s.handleRequest({{"jsonrpc","2.0"},{"id",2},{"method","tools/call"},{"params",{{"name","whetstone_get_reference_conformance_report"},{"arguments",{{"vendor_id","v1"},{"manifest_id","m1"}}}}}}); auto j1=nlohmann::json::parse(r1["result"]["content"][0]["text"].get<std::string>()); auto j2=nlohmann::json::parse(r2["result"]["content"][0]["text"].get<std::string>()); C(j1["publication_bundle"].dump()==j2["publication_bundle"].dump(),"d"); P();}
int main(){ std::cout<<"Step 1156: whetstone_get_reference_conformance_report MCP tool\n"; t1();t2();t3();t4();t5();t6();t7();t8(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,18 @@
#include "graduation/InteropPublicationBundle.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(id); auto b=InteropPublicationBundleFactory::make("b1","m1","h1","r1",true); C(b.bundleId=="b1","i"); P();}
void t2(){T(manifest); auto b=InteropPublicationBundleFactory::make("b1","m1","h1","r1",true); C(b.manifestId=="m1","m"); P();}
void t3(){T(harness); auto b=InteropPublicationBundleFactory::make("b1","m1","h1","r1",true); C(b.referenceHarnessId=="h1","h"); P();}
void t4(){T(report); auto b=InteropPublicationBundleFactory::make("b1","m1","h1","r1",true); C(b.conformanceReportId=="r1","r"); P();}
void t5(){T(signed_true); auto b=InteropPublicationBundleFactory::make("b1","m1","h1","r1",true); C(b.signedBundle,"s"); P();}
void t6(){T(status_publishable); auto b=InteropPublicationBundleFactory::make("b1","m1","h1","r1",true); C(b.status=="publishable","p"); P();}
void t7(){T(status_draft); auto b=InteropPublicationBundleFactory::make("b1","m1","h1","r1",false); C(b.status=="draft","d"); P();}
void t8(){T(json_status); auto j=InteropPublicationBundleFactory::toJson(InteropPublicationBundleFactory::make("b1","m1","h1","r1",true)); C(j["status"]=="publishable","j"); P();}
void t9(){T(json_bundle); auto j=InteropPublicationBundleFactory::toJson(InteropPublicationBundleFactory::make("b1","m1","h1","r1",true)); C(j["bundle_id"]=="b1","j"); P();}
void t10(){T(deterministic); auto a=InteropPublicationBundleFactory::toJson(InteropPublicationBundleFactory::make("b1","m1","h1","r1",true)); auto b=InteropPublicationBundleFactory::toJson(InteropPublicationBundleFactory::make("b1","m1","h1","r1",true)); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1157: Interop publication bundle\n"; t1();t2();t3();t4();t5();t6();t7();t8();t9();t10(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }

View File

@@ -0,0 +1,17 @@
#include "Sprint92IntegrationSummary.h"
#include "MCPServer.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(verify); C(Sprint92IntegrationSummary::verify(),"v"); P();}
void t2(){T(sprint); auto j=Sprint92IntegrationSummary::toJson(); C(j["sprint"]==92,"s"); P();}
void t3(){T(steps); auto j=Sprint92IntegrationSummary::toJson(); C(j["steps"]==10,"s"); P();}
void t4(){T(theme); auto j=Sprint92IntegrationSummary::toJson(); C(j.contains("theme"),"t"); P();}
void t5(){T(tools); auto j=Sprint92IntegrationSummary::toJson(); C(j.contains("tools_added"),"t"); P();}
void t6(){T(reg_tool_1); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/list"},{"params",{}}}); bool found=false; for(auto&t:r["result"]["tools"]) if(t["name"]=="whetstone_run_interop_testbed") found=true; C(found,"r"); P();}
void t7(){T(reg_tool_2); MCPServer s; auto r=s.handleRequest({{"jsonrpc","2.0"},{"id",1},{"method","tools/list"},{"params",{}}}); bool found=false; for(auto&t:r["result"]["tools"]) if(t["name"]=="whetstone_get_reference_conformance_report") found=true; C(found,"r"); P();}
void t8(){T(deterministic); auto a=Sprint92IntegrationSummary::toJson(); auto b=Sprint92IntegrationSummary::toJson(); C(a.dump()==b.dump(),"d"); P();}
int main(){ std::cout<<"Step 1158: Sprint 92 integration summary + full-program regression\n"; t1();t2();t3();t4();t5();t6();t7();t8(); std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n"; return f?1:0; }