agentskeptic 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -44
- package/config/marketing.json +187 -0
- package/dist/actionableFailure.d.ts.map +1 -1
- package/dist/actionableFailure.js +95 -0
- package/dist/actionableFailure.js.map +1 -1
- package/dist/agentRunBundle.d.ts +2 -0
- package/dist/agentRunBundle.d.ts.map +1 -1
- package/dist/agentRunBundle.js +4 -0
- package/dist/agentRunBundle.js.map +1 -1
- package/dist/assurance/assurancePathArgs.d.ts.map +1 -1
- package/dist/assurance/assurancePathArgs.js +1 -0
- package/dist/assurance/assurancePathArgs.js.map +1 -1
- package/dist/assurance/buildAssuranceOutput.d.ts +29 -0
- package/dist/assurance/buildAssuranceOutput.d.ts.map +1 -0
- package/dist/assurance/buildAssuranceOutput.js +53 -0
- package/dist/assurance/buildAssuranceOutput.js.map +1 -0
- package/dist/assurance/checkStale.d.ts +7 -0
- package/dist/assurance/checkStale.d.ts.map +1 -1
- package/dist/assurance/checkStale.js +14 -3
- package/dist/assurance/checkStale.js.map +1 -1
- package/dist/assurance/runAssurance.d.ts.map +1 -1
- package/dist/assurance/runAssurance.js +26 -3
- package/dist/assurance/runAssurance.js.map +1 -1
- package/dist/bootstrap/executeBootstrapPack.d.ts.map +1 -1
- package/dist/bootstrap/executeBootstrapPack.js +3 -2
- package/dist/bootstrap/executeBootstrapPack.js.map +1 -1
- package/dist/certificateDigest.d.ts +4 -0
- package/dist/certificateDigest.d.ts.map +1 -0
- package/dist/certificateDigest.js +7 -0
- package/dist/certificateDigest.js.map +1 -0
- package/dist/certificateDigest.test.d.ts +2 -0
- package/dist/certificateDigest.test.d.ts.map +1 -0
- package/dist/certificateDigest.test.js +14 -0
- package/dist/certificateDigest.test.js.map +1 -0
- package/dist/cli/lockOrchestration.d.ts.map +1 -1
- package/dist/cli/lockOrchestration.js +42 -6
- package/dist/cli/lockOrchestration.js.map +1 -1
- package/dist/cli/lockOrchestration.test.js +1 -0
- package/dist/cli/lockOrchestration.test.js.map +1 -1
- package/dist/cli/runFunnelAnonSet.js +1 -1
- package/dist/cli.js +122 -114
- package/dist/cli.js.map +1 -1
- package/dist/cliArgv.d.ts +2 -0
- package/dist/cliArgv.d.ts.map +1 -1
- package/dist/cliArgv.js +6 -2
- package/dist/cliArgv.js.map +1 -1
- package/dist/cliArgv.test.d.ts +2 -0
- package/dist/cliArgv.test.d.ts.map +1 -0
- package/dist/cliArgv.test.js +34 -0
- package/dist/cliArgv.test.js.map +1 -0
- package/dist/cliOperationalCodes.d.ts +8 -0
- package/dist/cliOperationalCodes.d.ts.map +1 -1
- package/dist/cliOperationalCodes.js +8 -0
- package/dist/cliOperationalCodes.js.map +1 -1
- package/dist/commercial/activationCorrelation.d.ts +3 -0
- package/dist/commercial/activationCorrelation.d.ts.map +1 -0
- package/dist/commercial/activationCorrelation.js +6 -0
- package/dist/commercial/activationCorrelation.js.map +1 -0
- package/dist/commercial/getCurrentUsage.d.ts +16 -0
- package/dist/commercial/getCurrentUsage.d.ts.map +1 -0
- package/dist/commercial/getCurrentUsage.js +33 -0
- package/dist/commercial/getCurrentUsage.js.map +1 -0
- package/dist/commercial/licensePreflight.d.ts +1 -0
- package/dist/commercial/licensePreflight.d.ts.map +1 -1
- package/dist/commercial/licensePreflight.js +27 -8
- package/dist/commercial/licensePreflight.js.map +1 -1
- package/dist/commercial/postVerifyOutcomeBeacon.d.ts +5 -3
- package/dist/commercial/postVerifyOutcomeBeacon.d.ts.map +1 -1
- package/dist/commercial/postVerifyOutcomeBeacon.js +17 -10
- package/dist/commercial/postVerifyOutcomeBeacon.js.map +1 -1
- package/dist/commercial/verifyOutcomeBeaconBody.d.ts +12 -0
- package/dist/commercial/verifyOutcomeBeaconBody.d.ts.map +1 -0
- package/dist/commercial/verifyOutcomeBeaconBody.js +26 -0
- package/dist/commercial/verifyOutcomeBeaconBody.js.map +1 -0
- package/dist/commercial/verifyWorkloadClassify.d.ts +2 -7
- package/dist/commercial/verifyWorkloadClassify.d.ts.map +1 -1
- package/dist/commercial/verifyWorkloadClassify.js +1 -1
- package/dist/commercial/verifyWorkloadClassify.js.map +1 -1
- package/dist/commercial/verifyWorkloadClassify.test.js +7 -0
- package/dist/commercial/verifyWorkloadClassify.test.js.map +1 -1
- package/dist/compare.acceptance.test.js +25 -0
- package/dist/compare.acceptance.test.js.map +1 -1
- package/dist/compareRunManifest.d.ts +32 -0
- package/dist/compareRunManifest.d.ts.map +1 -0
- package/dist/compareRunManifest.js +60 -0
- package/dist/compareRunManifest.js.map +1 -0
- package/dist/crossing/crossingDecisionReadyFooter.d.ts +1 -1
- package/dist/crossing/crossingDecisionReadyFooter.d.ts.map +1 -1
- package/dist/crossing/crossingDecisionReadyFooter.js +1 -1
- package/dist/crossing/crossingDecisionReadyFooter.js.map +1 -1
- package/dist/debug-ui/app.css +42 -0
- package/dist/debug-ui/app.js +206 -15
- package/dist/debug-ui/index.html +11 -4
- package/dist/debug-ui/urlState.d.ts +15 -0
- package/dist/debug-ui/urlState.js +92 -0
- package/dist/debugCorpus.test.js +33 -7
- package/dist/debugCorpus.test.js.map +1 -1
- package/dist/debugPanels.d.ts +0 -3
- package/dist/debugPanels.d.ts.map +1 -1
- package/dist/debugPanels.js +0 -23
- package/dist/debugPanels.js.map +1 -1
- package/dist/debugPanels.test.js +16 -15
- package/dist/debugPanels.test.js.map +1 -1
- package/dist/debugServer.d.ts.map +1 -1
- package/dist/debugServer.js +19 -16
- package/dist/debugServer.js.map +1 -1
- package/dist/debugServer.test.js +18 -9
- package/dist/debugServer.test.js.map +1 -1
- package/dist/debugUiUrlState.test.d.ts +2 -0
- package/dist/debugUiUrlState.test.d.ts.map +1 -0
- package/dist/debugUiUrlState.test.js +49 -0
- package/dist/debugUiUrlState.test.js.map +1 -0
- package/dist/decisionBlocker.contract.test.d.ts +2 -0
- package/dist/decisionBlocker.contract.test.d.ts.map +1 -0
- package/dist/decisionBlocker.contract.test.js +51 -0
- package/dist/decisionBlocker.contract.test.js.map +1 -0
- package/dist/decisionBlocker.d.ts +10 -0
- package/dist/decisionBlocker.d.ts.map +1 -0
- package/dist/decisionBlocker.js +66 -0
- package/dist/decisionBlocker.js.map +1 -0
- package/dist/decisionGate.assertSafe.test.d.ts +2 -0
- package/dist/decisionGate.assertSafe.test.d.ts.map +1 -0
- package/dist/decisionGate.assertSafe.test.js +52 -0
- package/dist/decisionGate.assertSafe.test.js.map +1 -0
- package/dist/decisionGate.d.ts +23 -0
- package/dist/decisionGate.d.ts.map +1 -0
- package/dist/decisionGate.js +85 -0
- package/dist/decisionGate.js.map +1 -0
- package/dist/decisionGate.persistBundle.test.d.ts +2 -0
- package/dist/decisionGate.persistBundle.test.d.ts.map +1 -0
- package/dist/{withWorkflowVerification.persistBundle.test.js → decisionGate.persistBundle.test.js} +31 -19
- package/dist/decisionGate.persistBundle.test.js.map +1 -0
- package/dist/decisionUnsafeError.d.ts +8 -0
- package/dist/decisionUnsafeError.d.ts.map +1 -0
- package/dist/decisionUnsafeError.js +12 -0
- package/dist/decisionUnsafeError.js.map +1 -0
- package/dist/discovery-payload-v1.json +167 -59
- package/dist/enforceCli.d.ts.map +1 -1
- package/dist/enforceCli.js +15 -40
- package/dist/enforceCli.js.map +1 -1
- package/dist/enforceStateful.d.ts +2 -0
- package/dist/enforceStateful.d.ts.map +1 -0
- package/dist/enforceStateful.js +106 -0
- package/dist/enforceStateful.js.map +1 -0
- package/dist/enforcementProjection.d.ts +17 -0
- package/dist/enforcementProjection.d.ts.map +1 -0
- package/dist/enforcementProjection.js +20 -0
- package/dist/enforcementProjection.js.map +1 -0
- package/dist/executionPathFindings.d.ts +1 -1
- package/dist/executionPathFindings.d.ts.map +1 -1
- package/dist/executionPathFindings.js +2 -2
- package/dist/executionPathFindings.js.map +1 -1
- package/dist/executionTrace.js +2 -2
- package/dist/executionTrace.js.map +1 -1
- package/dist/executionTrace.test.js +35 -0
- package/dist/executionTrace.test.js.map +1 -1
- package/dist/executionTraceDiff.d.ts +36 -0
- package/dist/executionTraceDiff.d.ts.map +1 -0
- package/dist/executionTraceDiff.js +86 -0
- package/dist/executionTraceDiff.js.map +1 -0
- package/dist/executionTraceDiff.test.d.ts +2 -0
- package/dist/executionTraceDiff.test.d.ts.map +1 -0
- package/dist/executionTraceDiff.test.js +44 -0
- package/dist/executionTraceDiff.test.js.map +1 -0
- package/dist/failureCatalog.d.ts +1 -0
- package/dist/failureCatalog.d.ts.map +1 -1
- package/dist/failureCatalog.js +1 -0
- package/dist/failureCatalog.js.map +1 -1
- package/dist/failureOriginCatalog.d.ts.map +1 -1
- package/dist/failureOriginCatalog.js +20 -0
- package/dist/failureOriginCatalog.js.map +1 -1
- package/dist/firstFiveMinutesChecklist.d.ts +11 -0
- package/dist/firstFiveMinutesChecklist.d.ts.map +1 -0
- package/dist/firstFiveMinutesChecklist.js +18 -0
- package/dist/firstFiveMinutesChecklist.js.map +1 -0
- package/dist/funnel/workflowLineageClassify.d.ts +1 -1
- package/dist/funnel/workflowLineageClassify.js +1 -1
- package/dist/index.d.ts +20 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/langGraphCheckpointTrustGate.d.ts +38 -0
- package/dist/langGraphCheckpointTrustGate.d.ts.map +1 -0
- package/dist/langGraphCheckpointTrustGate.js +124 -0
- package/dist/langGraphCheckpointTrustGate.js.map +1 -0
- package/dist/langGraphCheckpointTrustIneligibleCertificate.d.ts +8 -0
- package/dist/langGraphCheckpointTrustIneligibleCertificate.d.ts.map +1 -0
- package/dist/langGraphCheckpointTrustIneligibleCertificate.js +17 -0
- package/dist/langGraphCheckpointTrustIneligibleCertificate.js.map +1 -0
- package/dist/langGraphCheckpointTrustUnsafeError.d.ts +8 -0
- package/dist/langGraphCheckpointTrustUnsafeError.d.ts.map +1 -0
- package/dist/langGraphCheckpointTrustUnsafeError.js +12 -0
- package/dist/langGraphCheckpointTrustUnsafeError.js.map +1 -0
- package/dist/loadEvents.d.ts +5 -0
- package/dist/loadEvents.d.ts.map +1 -1
- package/dist/loadEvents.js +32 -0
- package/dist/loadEvents.js.map +1 -1
- package/dist/operationalDisposition.d.ts +64 -0
- package/dist/operationalDisposition.d.ts.map +1 -1
- package/dist/operationalDisposition.js +64 -0
- package/dist/operationalDisposition.js.map +1 -1
- package/dist/outcomeCertificate.d.ts +14 -2
- package/dist/outcomeCertificate.d.ts.map +1 -1
- package/dist/outcomeCertificate.js +119 -0
- package/dist/outcomeCertificate.js.map +1 -1
- package/dist/outcomeCertificate.test.js +2 -0
- package/dist/outcomeCertificate.test.js.map +1 -1
- package/dist/pipeline.d.ts +19 -17
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +61 -167
- package/dist/pipeline.js.map +1 -1
- package/dist/publicDistribution.generated.d.ts +2 -2
- package/dist/publicDistribution.generated.d.ts.map +1 -1
- package/dist/publicDistribution.generated.js +7 -8
- package/dist/publicDistribution.generated.js.map +1 -1
- package/dist/quickVerify/quickVerifyScope.d.ts +1 -1
- package/dist/quickVerify/quickVerifyScope.js +1 -1
- package/dist/quickVerify/runQuickVerify.js +1 -1
- package/dist/quickVerify/runQuickVerify.js.map +1 -1
- package/dist/quickVerify/verifyExecution.d.ts +1 -1
- package/dist/quickVerify/verifyExecution.d.ts.map +1 -1
- package/dist/quickVerify/verifyExecution.js +3 -2
- package/dist/quickVerify/verifyExecution.js.map +1 -1
- package/dist/reconciler.d.ts +6 -2
- package/dist/reconciler.d.ts.map +1 -1
- package/dist/reconciler.js +17 -11
- package/dist/reconciler.js.map +1 -1
- package/dist/registryDraft/createRegistryDraftAjv.d.ts +1 -1
- package/dist/registryDraft/createRegistryDraftAjv.js +1 -1
- package/dist/regressionArtifact.d.ts +63 -0
- package/dist/regressionArtifact.d.ts.map +1 -0
- package/dist/regressionArtifact.js +290 -0
- package/dist/regressionArtifact.js.map +1 -0
- package/dist/relationalInvariant.d.ts +13 -3
- package/dist/relationalInvariant.d.ts.map +1 -1
- package/dist/relationalInvariant.existsSql.test.js +1 -1
- package/dist/relationalInvariant.existsSql.test.js.map +1 -1
- package/dist/relationalInvariant.js +59 -39
- package/dist/relationalInvariant.js.map +1 -1
- package/dist/relationalInvariant.test.js +2 -2
- package/dist/relationalInvariant.test.js.map +1 -1
- package/dist/resolveExpectation.d.ts +18 -2
- package/dist/resolveExpectation.d.ts.map +1 -1
- package/dist/resolveExpectation.js +332 -1
- package/dist/resolveExpectation.js.map +1 -1
- package/dist/resolveExpectation.test.js +25 -0
- package/dist/resolveExpectation.test.js.map +1 -1
- package/dist/runComparison.d.ts +0 -1
- package/dist/runComparison.d.ts.map +1 -1
- package/dist/runComparison.js +18 -86
- package/dist/runComparison.js.map +1 -1
- package/dist/runComparison.test.js +101 -57
- package/dist/runComparison.test.js.map +1 -1
- package/dist/schema-validation.test.js +29 -0
- package/dist/schema-validation.test.js.map +1 -1
- package/dist/schemaLoad.d.ts +1 -1
- package/dist/schemaLoad.d.ts.map +1 -1
- package/dist/schemaLoad.js +10 -0
- package/dist/schemaLoad.js.map +1 -1
- package/dist/sortedJsonStringify.d.ts +2 -0
- package/dist/sortedJsonStringify.d.ts.map +1 -0
- package/dist/sortedJsonStringify.js +23 -0
- package/dist/sortedJsonStringify.js.map +1 -0
- package/dist/sqlDialect.d.ts +8 -0
- package/dist/sqlDialect.d.ts.map +1 -0
- package/dist/sqlDialect.js +37 -0
- package/dist/sqlDialect.js.map +1 -0
- package/dist/standardVerifyWorkflowCli.d.ts +6 -1
- package/dist/standardVerifyWorkflowCli.d.ts.map +1 -1
- package/dist/standardVerifyWorkflowCli.js +24 -5
- package/dist/standardVerifyWorkflowCli.js.map +1 -1
- package/dist/stateWitness.d.ts +4 -0
- package/dist/stateWitness.d.ts.map +1 -0
- package/dist/stateWitness.js +383 -0
- package/dist/stateWitness.js.map +1 -0
- package/dist/stateWitness.test.d.ts +2 -0
- package/dist/stateWitness.test.d.ts.map +1 -0
- package/dist/stateWitness.test.js +120 -0
- package/dist/stateWitness.test.js.map +1 -0
- package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts +2 -0
- package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts.map +1 -1
- package/dist/telemetry/maybeEmitOssClaimTicketUrl.js +13 -2
- package/dist/telemetry/maybeEmitOssClaimTicketUrl.js.map +1 -1
- package/dist/telemetry/ossClaimOrigin.d.ts +1 -1
- package/dist/telemetry/ossClaimOrigin.js +1 -1
- package/dist/telemetry/postOssClaimContinuation.d.ts +1 -1
- package/dist/telemetry/postOssClaimContinuation.d.ts.map +1 -1
- package/dist/telemetry/postOssClaimContinuation.js +10 -6
- package/dist/telemetry/postOssClaimContinuation.js.map +1 -1
- package/dist/telemetry/postOssClaimTicket.d.ts +8 -0
- package/dist/telemetry/postOssClaimTicket.d.ts.map +1 -1
- package/dist/telemetry/postOssClaimTicket.js +31 -5
- package/dist/telemetry/postOssClaimTicket.js.map +1 -1
- package/dist/telemetry/verificationHypothesisContract.d.ts +1 -1
- package/dist/telemetry/verificationHypothesisContract.js +1 -1
- package/dist/trustDecision.d.ts +8 -0
- package/dist/trustDecision.d.ts.map +1 -0
- package/dist/trustDecision.js +13 -0
- package/dist/trustDecision.js.map +1 -0
- package/dist/types.d.ts +139 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/verificationConnections.d.ts +10 -0
- package/dist/verificationConnections.d.ts.map +1 -0
- package/dist/verificationConnections.js +190 -0
- package/dist/verificationConnections.js.map +1 -0
- package/dist/verificationDatabaseUrl.d.ts +11 -0
- package/dist/verificationDatabaseUrl.d.ts.map +1 -0
- package/dist/verificationDatabaseUrl.js +41 -0
- package/dist/verificationDatabaseUrl.js.map +1 -0
- package/dist/verificationDatabaseUrl.test.d.ts +2 -0
- package/dist/verificationDatabaseUrl.test.d.ts.map +1 -0
- package/dist/verificationDatabaseUrl.test.js +66 -0
- package/dist/verificationDatabaseUrl.test.js.map +1 -0
- package/dist/verificationDiagnostics.d.ts.map +1 -1
- package/dist/verificationDiagnostics.js +33 -9
- package/dist/verificationDiagnostics.js.map +1 -1
- package/dist/verificationDiagnostics.test.js +15 -0
- package/dist/verificationDiagnostics.test.js.map +1 -1
- package/dist/verificationPolicy.d.ts +2 -1
- package/dist/verificationPolicy.d.ts.map +1 -1
- package/dist/verificationPolicy.js +97 -0
- package/dist/verificationPolicy.js.map +1 -1
- package/dist/verificationPolicy.test.js +7 -0
- package/dist/verificationPolicy.test.js.map +1 -1
- package/dist/verificationRunContext.d.ts.map +1 -1
- package/dist/verificationRunContext.js +3 -0
- package/dist/verificationRunContext.js.map +1 -1
- package/dist/verificationUserPhrases.d.ts.map +1 -1
- package/dist/verificationUserPhrases.js +21 -0
- package/dist/verificationUserPhrases.js.map +1 -1
- package/dist/verify/batchVerifyTelemetrySubcommand.d.ts.map +1 -1
- package/dist/verify/batchVerifyTelemetrySubcommand.js +115 -20
- package/dist/verify/batchVerifyTelemetrySubcommand.js.map +1 -1
- package/dist/verifyAgentskeptic.d.ts +3 -4
- package/dist/verifyAgentskeptic.d.ts.map +1 -1
- package/dist/verifyAgentskeptic.js +15 -27
- package/dist/verifyAgentskeptic.js.map +1 -1
- package/dist/verifyRunStateFromBufferedRunEvents.d.ts +18 -0
- package/dist/verifyRunStateFromBufferedRunEvents.d.ts.map +1 -0
- package/dist/verifyRunStateFromBufferedRunEvents.js +65 -0
- package/dist/verifyRunStateFromBufferedRunEvents.js.map +1 -0
- package/dist/vitestMonorepoRoot.d.ts +10 -0
- package/dist/vitestMonorepoRoot.d.ts.map +1 -0
- package/dist/vitestMonorepoRoot.js +97 -0
- package/dist/vitestMonorepoRoot.js.map +1 -0
- package/dist/wireReasonCodes.d.ts +21 -0
- package/dist/wireReasonCodes.d.ts.map +1 -1
- package/dist/wireReasonCodes.js +21 -0
- package/dist/wireReasonCodes.js.map +1 -1
- package/package.json +62 -40
- package/schemas/assurance-output-v1.schema.json +81 -0
- package/schemas/compare-run-manifest-v1.schema.json +65 -0
- package/schemas/conformance-normalized-result.schema.json +73 -0
- package/schemas/connector-capabilities.schema.json +38 -0
- package/schemas/event.schema.json +35 -0
- package/schemas/execution-trace-view.schema.json +1 -1
- package/schemas/openapi-commercial-v1.in.yaml +613 -14
- package/schemas/openapi-commercial-v1.yaml +613 -14
- package/schemas/outcome-certificate-v1.schema.json +25 -2
- package/schemas/quick-verify-report.schema.json +1 -1
- package/schemas/regression-artifact-v1.schema.json +212 -0
- package/schemas/tools-registry.schema.json +103 -0
- package/schemas/workflow-engine-result.schema.json +71 -2
- package/schemas/workflow-truth-report.schema.json +12 -0
- package/scripts/discovery-acquisition.lib.cjs +60 -97
- package/scripts/discovery-payload.lib.cjs +41 -7
- package/scripts/emit-primary-marketing.cjs +326 -0
- package/scripts/origin.cjs +52 -0
- package/scripts/public-product-anchors.cjs +3 -0
- package/scripts/validate-marketing.cjs +156 -0
- package/dist/withWorkflowVerification.persistBundle.test.d.ts +0 -2
- package/dist/withWorkflowVerification.persistBundle.test.d.ts.map +0 -1
- package/dist/withWorkflowVerification.persistBundle.test.js.map +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const { readFileSync } = require("node:fs");
|
|
4
|
+
const { join } = require("node:path");
|
|
5
|
+
|
|
6
|
+
const ROOT = join(__dirname, "..");
|
|
7
|
+
const MARKETING_PATH = join(ROOT, "config", "marketing.json");
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @param {string} s
|
|
11
|
+
*/
|
|
12
|
+
function normalize(s) {
|
|
13
|
+
const t = String(s).trim();
|
|
14
|
+
if (!t) throw new Error("normalize: empty origin");
|
|
15
|
+
const u = new URL(t);
|
|
16
|
+
return u.origin;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function isLoopbackOrigin(raw) {
|
|
20
|
+
try {
|
|
21
|
+
const u = new URL(normalize(raw));
|
|
22
|
+
const h = u.hostname.toLowerCase();
|
|
23
|
+
return h === "localhost" || h === "127.0.0.1" || h === "::1" || h === "[::1]";
|
|
24
|
+
} catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function readProductionCanonicalOrigin() {
|
|
30
|
+
const pm = JSON.parse(readFileSync(MARKETING_PATH, "utf8"));
|
|
31
|
+
return String(pm.productionCanonicalOrigin);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function assertNextPublicOriginParity() {
|
|
35
|
+
const canonicalFromJson = readProductionCanonicalOrigin();
|
|
36
|
+
const skip = process.env.NODE_ENV !== "production" || process.env.VERCEL_ENV === "preview";
|
|
37
|
+
if (skip) return;
|
|
38
|
+
const url = String(process.env.NEXT_PUBLIC_APP_URL || "").trim();
|
|
39
|
+
if (!url) return;
|
|
40
|
+
if (normalize(url) !== normalize(canonicalFromJson)) {
|
|
41
|
+
if (process.env.VERCEL_ENV !== "production" && isLoopbackOrigin(url)) return;
|
|
42
|
+
throw new Error("NEXT_PUBLIC_APP_URL must equal productionCanonicalOrigin");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
module.exports = {
|
|
47
|
+
normalize,
|
|
48
|
+
assertNextPublicOriginParity,
|
|
49
|
+
MARKETING_PATH,
|
|
50
|
+
/** @deprecated use MARKETING_PATH */
|
|
51
|
+
PRIMARY_MARKETING_PATH: MARKETING_PATH,
|
|
52
|
+
};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const { readFileSync } = require("node:fs");
|
|
4
|
+
const { join } = require("node:path");
|
|
5
|
+
|
|
6
|
+
const BANNED = /\b(crossing success|PatternComplete|IntegrateSpine|Outcome Certificate|AC-)\b/i;
|
|
7
|
+
|
|
8
|
+
const URL_IN_TEXT = /https?:\/\/[^[\s<>"')]+/gi;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* True if the string contains a URL whose host is GitHub (github.com or a subdomain).
|
|
12
|
+
* Uses URL parsing so substrings like "evil.com/.../github.com" do not false-positive.
|
|
13
|
+
* @param {string} s
|
|
14
|
+
*/
|
|
15
|
+
function textContainsGithubHostUrl(s) {
|
|
16
|
+
for (const m of s.matchAll(URL_IN_TEXT)) {
|
|
17
|
+
try {
|
|
18
|
+
const { hostname } = new URL(m[0]);
|
|
19
|
+
if (hostname === "github.com" || hostname.endsWith(".github.com")) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
} catch {
|
|
23
|
+
// ignore invalid URL fragments
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @param {string} root
|
|
31
|
+
*/
|
|
32
|
+
function loadMarketing(root) {
|
|
33
|
+
const p = join(root, "config", "marketing.json");
|
|
34
|
+
return JSON.parse(readFileSync(p, "utf8"));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @param {string} s
|
|
39
|
+
*/
|
|
40
|
+
function wordCount(s) {
|
|
41
|
+
return String(s)
|
|
42
|
+
.trim()
|
|
43
|
+
.split(/\s+/)
|
|
44
|
+
.filter(Boolean).length;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @param {Record<string, unknown>} m
|
|
49
|
+
*/
|
|
50
|
+
function validateMarketingValue(m) {
|
|
51
|
+
if (m.schemaVersion !== 1) {
|
|
52
|
+
throw new Error("marketing: schemaVersion must be 1");
|
|
53
|
+
}
|
|
54
|
+
const required = [
|
|
55
|
+
"slug",
|
|
56
|
+
"identityOneLiner",
|
|
57
|
+
"productionCanonicalOrigin",
|
|
58
|
+
"gitRepositoryUrl",
|
|
59
|
+
"gitRepositoryGitUrl",
|
|
60
|
+
"npmPackageUrl",
|
|
61
|
+
"bugsUrl",
|
|
62
|
+
"keywords",
|
|
63
|
+
"heroTitle",
|
|
64
|
+
"heroSubtitle",
|
|
65
|
+
"visitorProblemAnswer",
|
|
66
|
+
"heroOutcome",
|
|
67
|
+
"heroMechanism",
|
|
68
|
+
"guaranteeFootnote",
|
|
69
|
+
"pageMetadata",
|
|
70
|
+
"readmeFold",
|
|
71
|
+
"shareableTerminalDemo",
|
|
72
|
+
"cliFollowupLines",
|
|
73
|
+
"r2",
|
|
74
|
+
"site",
|
|
75
|
+
"integratePage",
|
|
76
|
+
"problemIndex",
|
|
77
|
+
"llms",
|
|
78
|
+
];
|
|
79
|
+
for (const k of required) {
|
|
80
|
+
if (m[k] === undefined || m[k] === null) {
|
|
81
|
+
throw new Error(`marketing: missing required key ${k}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (!Array.isArray(m.keywords) || m.keywords.length === 0) {
|
|
85
|
+
throw new Error("marketing: keywords must be a non-empty array");
|
|
86
|
+
}
|
|
87
|
+
const ho = String(m.heroOutcome);
|
|
88
|
+
if (wordCount(ho) > 20) {
|
|
89
|
+
throw new Error(`marketing: heroOutcome must be at most 20 words (got ${wordCount(ho)})`);
|
|
90
|
+
}
|
|
91
|
+
if (String(m.heroMechanism).length > 200) {
|
|
92
|
+
throw new Error("marketing: heroMechanism must be at most 200 characters");
|
|
93
|
+
}
|
|
94
|
+
for (const field of [ho, String(m.heroMechanism)]) {
|
|
95
|
+
if (BANNED.test(field)) {
|
|
96
|
+
throw new Error(`marketing: banned term in home hero text: ${field.slice(0, 80)}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const g = String(m.guaranteeFootnote);
|
|
100
|
+
if (!g.toLowerCase().includes("read-only")) {
|
|
101
|
+
throw new Error("marketing: guaranteeFootnote must mention read-only");
|
|
102
|
+
}
|
|
103
|
+
if (textContainsGithubHostUrl(g)) {
|
|
104
|
+
throw new Error("marketing: guaranteeFootnote must not include a GitHub URL (site-local copy only)");
|
|
105
|
+
}
|
|
106
|
+
if (g.toLowerCase().includes("causality")) {
|
|
107
|
+
throw new Error("marketing: guaranteeFootnote must not contain the word causality");
|
|
108
|
+
}
|
|
109
|
+
const cmd = String(m.integratePage.packLedCommand);
|
|
110
|
+
if (!cmd.includes("agentskeptic crossing")) {
|
|
111
|
+
throw new Error("marketing: packLedCommand must include agentskeptic crossing");
|
|
112
|
+
}
|
|
113
|
+
if (!cmd.includes("--events")) {
|
|
114
|
+
throw new Error("marketing: packLedCommand must be pack-led (--events)");
|
|
115
|
+
}
|
|
116
|
+
if (!cmd.includes("tools.json")) {
|
|
117
|
+
throw new Error("marketing: packLedCommand must reference tools.json");
|
|
118
|
+
}
|
|
119
|
+
if (!Array.isArray(m.integratePage.requirements) || m.integratePage.requirements.length < 1) {
|
|
120
|
+
throw new Error("marketing: integratePage.requirements must be a non-empty array");
|
|
121
|
+
}
|
|
122
|
+
if (m.integratePage.requirements.length < 1 || m.integratePage.requirements.length > 5) {
|
|
123
|
+
throw new Error("marketing: integratePage.requirements must have 1–5 items");
|
|
124
|
+
}
|
|
125
|
+
const v = String(m.visitorProblemAnswer);
|
|
126
|
+
if (v.toLowerCase().includes("causality")) {
|
|
127
|
+
throw new Error("marketing: visitorProblemAnswer must not contain causality");
|
|
128
|
+
}
|
|
129
|
+
const demo = m.shareableTerminalDemo;
|
|
130
|
+
if (demo && String(demo.transcript).includes("```")) {
|
|
131
|
+
throw new Error("marketing: shareableTerminalDemo.transcript must not contain ```");
|
|
132
|
+
}
|
|
133
|
+
if (!m.readmeFold || !Array.isArray(m.readmeFold.templateLines)) {
|
|
134
|
+
throw new Error("marketing: readmeFold.templateLines required");
|
|
135
|
+
}
|
|
136
|
+
return m;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @param {string} root
|
|
141
|
+
*/
|
|
142
|
+
function validateMarketing(root) {
|
|
143
|
+
return validateMarketingValue(loadMarketing(root));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if (require.main === module) {
|
|
147
|
+
try {
|
|
148
|
+
validateMarketing(join(__dirname, ".."));
|
|
149
|
+
process.exit(0);
|
|
150
|
+
} catch (e) {
|
|
151
|
+
console.error(e instanceof Error ? e.message : e);
|
|
152
|
+
process.exit(1);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
module.exports = { validateMarketing, validateMarketingValue, loadMarketing };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"withWorkflowVerification.persistBundle.test.d.ts","sourceRoot":"","sources":["../src/withWorkflowVerification.persistBundle.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"withWorkflowVerification.persistBundle.test.js","sourceRoot":"","sources":["../src/withWorkflowVerification.persistBundle.test.ts"],"names":[],"mappings":"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"}
|