agentskeptic 1.0.4 → 1.1.0

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.
Files changed (167) hide show
  1. package/README.md +15 -17
  2. package/config/marketing.json +186 -0
  3. package/dist/actionableFailure.d.ts.map +1 -1
  4. package/dist/actionableFailure.js +80 -0
  5. package/dist/actionableFailure.js.map +1 -1
  6. package/dist/assurance/buildAssuranceOutput.d.ts +29 -0
  7. package/dist/assurance/buildAssuranceOutput.d.ts.map +1 -0
  8. package/dist/assurance/buildAssuranceOutput.js +53 -0
  9. package/dist/assurance/buildAssuranceOutput.js.map +1 -0
  10. package/dist/assurance/checkStale.d.ts +7 -0
  11. package/dist/assurance/checkStale.d.ts.map +1 -1
  12. package/dist/assurance/checkStale.js +14 -3
  13. package/dist/assurance/checkStale.js.map +1 -1
  14. package/dist/assurance/runAssurance.d.ts.map +1 -1
  15. package/dist/assurance/runAssurance.js +26 -3
  16. package/dist/assurance/runAssurance.js.map +1 -1
  17. package/dist/bootstrap/executeBootstrapPack.d.ts.map +1 -1
  18. package/dist/bootstrap/executeBootstrapPack.js +3 -2
  19. package/dist/bootstrap/executeBootstrapPack.js.map +1 -1
  20. package/dist/cli/lockOrchestration.js +1 -1
  21. package/dist/cli/runFunnelAnonSet.js +1 -1
  22. package/dist/cli.js +37 -5
  23. package/dist/cli.js.map +1 -1
  24. package/dist/cliArgv.d.ts.map +1 -1
  25. package/dist/cliArgv.js +4 -2
  26. package/dist/cliArgv.js.map +1 -1
  27. package/dist/cliOperationalCodes.d.ts +1 -0
  28. package/dist/cliOperationalCodes.d.ts.map +1 -1
  29. package/dist/cliOperationalCodes.js +1 -0
  30. package/dist/cliOperationalCodes.js.map +1 -1
  31. package/dist/commercial/licensePreflight.d.ts.map +1 -1
  32. package/dist/commercial/licensePreflight.js.map +1 -1
  33. package/dist/commercial/verifyWorkloadClassify.d.ts +2 -7
  34. package/dist/commercial/verifyWorkloadClassify.d.ts.map +1 -1
  35. package/dist/commercial/verifyWorkloadClassify.js +1 -1
  36. package/dist/commercial/verifyWorkloadClassify.js.map +1 -1
  37. package/dist/commercial/verifyWorkloadClassify.test.js +7 -0
  38. package/dist/commercial/verifyWorkloadClassify.test.js.map +1 -1
  39. package/dist/crossing/crossingDecisionReadyFooter.d.ts +1 -1
  40. package/dist/crossing/crossingDecisionReadyFooter.d.ts.map +1 -1
  41. package/dist/crossing/crossingDecisionReadyFooter.js +1 -1
  42. package/dist/crossing/crossingDecisionReadyFooter.js.map +1 -1
  43. package/dist/decisionGate.d.ts.map +1 -1
  44. package/dist/decisionGate.js +2 -5
  45. package/dist/decisionGate.js.map +1 -1
  46. package/dist/discovery-payload-v1.json +23 -27
  47. package/dist/failureOriginCatalog.d.ts.map +1 -1
  48. package/dist/failureOriginCatalog.js +16 -0
  49. package/dist/failureOriginCatalog.js.map +1 -1
  50. package/dist/firstFiveMinutesChecklist.d.ts +11 -0
  51. package/dist/firstFiveMinutesChecklist.d.ts.map +1 -0
  52. package/dist/firstFiveMinutesChecklist.js +18 -0
  53. package/dist/firstFiveMinutesChecklist.js.map +1 -0
  54. package/dist/funnel/workflowLineageClassify.d.ts +1 -1
  55. package/dist/funnel/workflowLineageClassify.js +1 -1
  56. package/dist/langGraphCheckpointTrustGate.d.ts.map +1 -1
  57. package/dist/langGraphCheckpointTrustGate.js +2 -5
  58. package/dist/langGraphCheckpointTrustGate.js.map +1 -1
  59. package/dist/operationalDisposition.d.ts +8 -0
  60. package/dist/operationalDisposition.d.ts.map +1 -1
  61. package/dist/operationalDisposition.js +8 -0
  62. package/dist/operationalDisposition.js.map +1 -1
  63. package/dist/pipeline.d.ts +1 -0
  64. package/dist/pipeline.d.ts.map +1 -1
  65. package/dist/pipeline.js +18 -18
  66. package/dist/pipeline.js.map +1 -1
  67. package/dist/publicDistribution.generated.d.ts +2 -2
  68. package/dist/publicDistribution.generated.d.ts.map +1 -1
  69. package/dist/publicDistribution.generated.js +7 -8
  70. package/dist/publicDistribution.generated.js.map +1 -1
  71. package/dist/quickVerify/runQuickVerify.js +1 -1
  72. package/dist/quickVerify/runQuickVerify.js.map +1 -1
  73. package/dist/quickVerify/verifyExecution.d.ts +1 -1
  74. package/dist/quickVerify/verifyExecution.d.ts.map +1 -1
  75. package/dist/quickVerify/verifyExecution.js +3 -2
  76. package/dist/quickVerify/verifyExecution.js.map +1 -1
  77. package/dist/reconciler.d.ts +6 -2
  78. package/dist/reconciler.d.ts.map +1 -1
  79. package/dist/reconciler.js +17 -11
  80. package/dist/reconciler.js.map +1 -1
  81. package/dist/registryDraft/createRegistryDraftAjv.d.ts +1 -1
  82. package/dist/registryDraft/createRegistryDraftAjv.js +1 -1
  83. package/dist/relationalInvariant.d.ts +13 -3
  84. package/dist/relationalInvariant.d.ts.map +1 -1
  85. package/dist/relationalInvariant.existsSql.test.js +1 -1
  86. package/dist/relationalInvariant.existsSql.test.js.map +1 -1
  87. package/dist/relationalInvariant.js +59 -39
  88. package/dist/relationalInvariant.js.map +1 -1
  89. package/dist/relationalInvariant.test.js +2 -2
  90. package/dist/relationalInvariant.test.js.map +1 -1
  91. package/dist/resolveExpectation.d.ts +18 -2
  92. package/dist/resolveExpectation.d.ts.map +1 -1
  93. package/dist/resolveExpectation.js +332 -1
  94. package/dist/resolveExpectation.js.map +1 -1
  95. package/dist/resolveExpectation.test.js +25 -0
  96. package/dist/resolveExpectation.test.js.map +1 -1
  97. package/dist/runComparison.d.ts.map +1 -1
  98. package/dist/runComparison.js +18 -3
  99. package/dist/runComparison.js.map +1 -1
  100. package/dist/schema-validation.test.js +29 -0
  101. package/dist/schema-validation.test.js.map +1 -1
  102. package/dist/schemaLoad.d.ts +1 -1
  103. package/dist/schemaLoad.d.ts.map +1 -1
  104. package/dist/schemaLoad.js +2 -0
  105. package/dist/schemaLoad.js.map +1 -1
  106. package/dist/sqlDialect.d.ts +8 -0
  107. package/dist/sqlDialect.d.ts.map +1 -0
  108. package/dist/sqlDialect.js +37 -0
  109. package/dist/sqlDialect.js.map +1 -0
  110. package/dist/stateWitness.d.ts +4 -0
  111. package/dist/stateWitness.d.ts.map +1 -0
  112. package/dist/stateWitness.js +383 -0
  113. package/dist/stateWitness.js.map +1 -0
  114. package/dist/stateWitness.test.d.ts +2 -0
  115. package/dist/stateWitness.test.d.ts.map +1 -0
  116. package/dist/stateWitness.test.js +120 -0
  117. package/dist/stateWitness.test.js.map +1 -0
  118. package/dist/telemetry/ossClaimOrigin.d.ts +1 -1
  119. package/dist/telemetry/ossClaimOrigin.js +1 -1
  120. package/dist/telemetry/verificationHypothesisContract.d.ts +1 -1
  121. package/dist/telemetry/verificationHypothesisContract.js +1 -1
  122. package/dist/types.d.ts +105 -2
  123. package/dist/types.d.ts.map +1 -1
  124. package/dist/types.js.map +1 -1
  125. package/dist/verificationConnections.d.ts +10 -0
  126. package/dist/verificationConnections.d.ts.map +1 -0
  127. package/dist/verificationConnections.js +190 -0
  128. package/dist/verificationConnections.js.map +1 -0
  129. package/dist/verificationDatabaseUrl.d.ts +11 -0
  130. package/dist/verificationDatabaseUrl.d.ts.map +1 -0
  131. package/dist/verificationDatabaseUrl.js +41 -0
  132. package/dist/verificationDatabaseUrl.js.map +1 -0
  133. package/dist/verificationDatabaseUrl.test.d.ts +2 -0
  134. package/dist/verificationDatabaseUrl.test.d.ts.map +1 -0
  135. package/dist/verificationDatabaseUrl.test.js +66 -0
  136. package/dist/verificationDatabaseUrl.test.js.map +1 -0
  137. package/dist/verificationDiagnostics.d.ts.map +1 -1
  138. package/dist/verificationDiagnostics.js +29 -8
  139. package/dist/verificationDiagnostics.js.map +1 -1
  140. package/dist/verificationDiagnostics.test.js +15 -0
  141. package/dist/verificationDiagnostics.test.js.map +1 -1
  142. package/dist/verificationPolicy.d.ts +2 -1
  143. package/dist/verificationPolicy.d.ts.map +1 -1
  144. package/dist/verificationPolicy.js +84 -0
  145. package/dist/verificationPolicy.js.map +1 -1
  146. package/dist/verificationPolicy.test.js +7 -0
  147. package/dist/verificationPolicy.test.js.map +1 -1
  148. package/dist/verificationUserPhrases.d.ts.map +1 -1
  149. package/dist/verificationUserPhrases.js +18 -0
  150. package/dist/verificationUserPhrases.js.map +1 -1
  151. package/dist/wireReasonCodes.d.ts +18 -0
  152. package/dist/wireReasonCodes.d.ts.map +1 -1
  153. package/dist/wireReasonCodes.js +18 -0
  154. package/dist/wireReasonCodes.js.map +1 -1
  155. package/package.json +29 -34
  156. package/schemas/assurance-output-v1.schema.json +81 -0
  157. package/schemas/openapi-commercial-v1.in.yaml +36 -3
  158. package/schemas/openapi-commercial-v1.yaml +37 -4
  159. package/schemas/tools-registry.schema.json +103 -0
  160. package/schemas/workflow-engine-result.schema.json +69 -1
  161. package/schemas/workflow-truth-report.schema.json +12 -0
  162. package/scripts/discovery-acquisition.lib.cjs +6 -17
  163. package/scripts/discovery-payload.lib.cjs +5 -3
  164. package/scripts/emit-primary-marketing.cjs +326 -0
  165. package/scripts/origin.cjs +52 -0
  166. package/scripts/public-product-anchors.cjs +3 -0
  167. package/scripts/validate-marketing.cjs +156 -0
@@ -1 +1 @@
1
- {"version":3,"file":"wireReasonCodes.js","sourceRoot":"","sources":["../src/wireReasonCodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2GAA2G;AAC3G,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,2BAA2B,EAAE,6BAA6B;IAC1D,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,yBAAyB,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAChD,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,+BAA+B,EAAE,iCAAiC;IAClE,0BAA0B,EAAE,4BAA4B;IACxD,+BAA+B,EAAE,iCAAiC;IAClE,gCAAgC,EAAE,kCAAkC;IACpE,6BAA6B,EAAE,+BAA+B;IAC9D,mBAAmB,EAAE,qBAAqB;IAC1C,+BAA+B,EAAE,iCAAiC;IAClE,8BAA8B,EAAE,gCAAgC;IAChE,yBAAyB,EAAE,2BAA2B;IACtD,2BAA2B,EAAE,6BAA6B;CAClD,CAAC;AAEX,+GAA+G;AAC/G,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,uBAAuB,EAAE,yBAAyB;IAClD,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAC5C,8BAA8B,EAAE,gCAAgC;IAChE,oCAAoC,EAAE,sCAAsC;IAC5E,YAAY,EAAE,cAAc;IAC5B,0BAA0B,EAAE,4BAA4B;IACxD,mBAAmB,EAAE,qBAAqB;IAC1C,+BAA+B,EAAE,iCAAiC;IAClE,0BAA0B,EAAE,4BAA4B;IACxD,0BAA0B,EAAE,4BAA4B;IACxD,mBAAmB,EAAE,qBAAqB;IAC1C,0CAA0C,EAAE,4CAA4C;CAChF,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,6BAA6B,CAAC,YAAY,CAAC;AAEvE,wFAAwF;AACxF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,qBAAqB,EAAE,uBAAuB;IAC9C,0BAA0B,EAAE,4BAA4B;IACxD,YAAY,EAAE,cAAc;CACpB,CAAC"}
1
+ {"version":3,"file":"wireReasonCodes.js","sourceRoot":"","sources":["../src/wireReasonCodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2GAA2G;AAC3G,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,2BAA2B,EAAE,6BAA6B;IAC1D,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,yBAAyB,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAChD,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,+BAA+B,EAAE,iCAAiC;IAClE,0BAA0B,EAAE,4BAA4B;IACxD,+BAA+B,EAAE,iCAAiC;IAClE,gCAAgC,EAAE,kCAAkC;IACpE,6BAA6B,EAAE,+BAA+B;IAC9D,mBAAmB,EAAE,qBAAqB;IAC1C,+BAA+B,EAAE,iCAAiC;IAClE,8BAA8B,EAAE,gCAAgC;IAChE,yBAAyB,EAAE,2BAA2B;IACtD,2BAA2B,EAAE,6BAA6B;IAC1D,8BAA8B,EAAE,gCAAgC;CACxD,CAAC;AAEX,+GAA+G;AAC/G,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,uBAAuB,EAAE,yBAAyB;IAClD,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAC5C,8BAA8B,EAAE,gCAAgC;IAChE,oCAAoC,EAAE,sCAAsC;IAC5E,YAAY,EAAE,cAAc;IAC5B,0BAA0B,EAAE,4BAA4B;IACxD,mBAAmB,EAAE,qBAAqB;IAC1C,+BAA+B,EAAE,iCAAiC;IAClE,0BAA0B,EAAE,4BAA4B;IACxD,0BAA0B,EAAE,4BAA4B;IACxD,mBAAmB,EAAE,qBAAqB;IAC1C,0CAA0C,EAAE,4CAA4C;IACxF,6CAA6C,EAAE,+CAA+C;IAC9F,yBAAyB,EAAE,2BAA2B;IACtD,gBAAgB,EAAE,kBAAkB;IACpC,wBAAwB,EAAE,0BAA0B;IACpD,uBAAuB,EAAE,yBAAyB;IAClD,qBAAqB,EAAE,uBAAuB;IAC9C,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,4BAA4B,EAAE,8BAA8B;IAC5D,+BAA+B,EAAE,iCAAiC;IAClE,0BAA0B,EAAE,4BAA4B;IACxD,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,8BAA8B,EAAE,gCAAgC;CACxD,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,6BAA6B,CAAC,YAAY,CAAC;AAEvE,wFAAwF;AACxF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,qBAAqB,EAAE,uBAAuB;IAC9C,0BAA0B,EAAE,4BAA4B;IACxD,YAAY,EAAE,cAAc;CACpB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentskeptic",
3
- "version": "1.0.4",
4
- "description": "Traces say success while rows are missing or wrong. AgentSkeptic runs read-only SQL at verification time on Postgres or SQLite—ground truth from structured tool activity, not trace color alone.",
3
+ "version": "1.1.0",
4
+ "description": "Read-only verification: what agents claim versus what your databases, warehouses, and APIs show.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "x-agentskeptic-decision-ready-contract": "1",
@@ -17,7 +17,8 @@
17
17
  "./schemaLoad": "./dist/schemaLoad.js",
18
18
  "./registryDraft": "./dist/registryDraft/index.js",
19
19
  "./bootstrapPackSynthesis": "./dist/bootstrap/bootstrapPackSynthesis.js",
20
- "./verificationHypothesisContract": "./dist/telemetry/verificationHypothesisContract.js"
20
+ "./verificationHypothesisContract": "./dist/telemetry/verificationHypothesisContract.js",
21
+ "./firstFiveMinutesChecklist": "./dist/firstFiveMinutesChecklist.js"
21
22
  },
22
23
  "scripts": {
23
24
  "prepublishOnly": "node scripts/build-commercial.mjs",
@@ -26,29 +27,31 @@
26
27
  "start": "npm run build && node scripts/demo.mjs",
27
28
  "dev": "npm run dev -w agentskeptic-web",
28
29
  "test:vitest": "vitest run",
29
- "verify:decision-readiness": "npm run test:vitest -w agentskeptic-web -- __tests__/githubHeadingSlug.contract.test.ts __tests__/integrateActivationNorthStar.contract.test.ts __tests__/integrate-page-completion-semantics.contract.test.tsx __tests__/growth-metrics-ssot.contract.test.ts __tests__/repo-reference-integrity.growth-observability.test.ts",
30
- "test:node:sqlite": "node scripts/assert-dependency-security-pins.mjs && node scripts/assert-no-legacy-verify-surface.mjs && node scripts/assert-no-withWorkflowVerification-surface.mjs && node --test --test-force-exit test/reconciler.sqlite.test.mjs test/pipeline.sqlite.test.mjs test/decisionGate.test.mjs test/workflowTruthReport.test.mjs test/cli.test.mjs test/post-product-activation-install-id.test.mjs test/workflow-lineage-classify.test.mjs test/resolve-telemetry-source.test.mjs test/github-workflows-agentskeptic-telemetry-env.test.mjs test/maybe-emit-oss-claim-telemetry-off.test.mjs test/first-run-verify-output.integration.test.mjs test/stable-failure-consistency.test.mjs test/workflow-result-consumer-contract.test.mjs test/workflow-result-stdout-version.test.mjs test/docs-relational-ssot.test.mjs test/tools-registry-relational-surface.test.mjs test/docs-contract.test.mjs test/docs-commercial-enforce-gate-normative.test.mjs test/docs-remediation-doctrine.test.mjs test/bundle-signature-fixture.test.mjs test/bundle-signature-codes-doc.test.mjs test/bundle-signature-cli-write.test.mjs test/quick-verify.sqlite.test.mjs test/bootstrap-pack.test.mjs test/crossing-cli.test.mjs test/quickVerifyPostbuildGate.test.mjs test/npm-scripts-contract.test.mjs test/langgraph-reference-emitter-before-cli-spawn.test.mjs test/langgraph-checkpoint-trust-terminal.contract.test.mjs test/langgraph-ineligible-certificate.import-guard.test.mjs test/removed-script-names-ban.test.mjs test/docs-workflow-result-normative-prose.test.mjs test/enforce-oss-forbidden.test.mjs test/oss-output-lock-batch.test.mjs test/lock-success-monetized-footer.integration.test.mjs test/docs-enforce-stream-contract.test.mjs test/docs-quick-enforce-link.test.mjs test/commercial-pricing-policy-parity.test.mjs test/discovery-payload.test.mjs test/redaction-rules.test.mjs test/indexable-guide-paths-fs.contract.test.mjs test/npm-pack-discovery-scripts.test.mjs test/registry-metadata-parity.test.mjs test/docs-related-exists-export-ssot-negative.mjs test/quick-param-pointer.gates.test.mjs test/dependency-security-pins.schema.contract.test.mjs test/drizzle-identifier-safety.contract.test.mjs test/assert-destructive-postgres-urls.test.mjs test/readme-wedge-inevitability.test.mjs test/adoption-complete-surface-parity.test.mjs test/adoption-epistemics-contract.test.mjs test/integrate-spine-contract.test.mjs test/integrate-spine-ssot-fixtures.test.mjs test/integrate-route-copy-absence.test.mjs test/adoption-validation-registry.test.mjs test/decision-ready-surfaces-manifest.test.mjs test/oss-legacy-handoff-ban.test.mjs test/sync-adoption-canonical-to-llms.test.mjs test/verify-agentskeptic-consumer.e2e.test.mjs",
30
+ "verify:decision-readiness": "npm run test:vitest -w agentskeptic-web -- __tests__/githubHeadingSlug.contract.test.ts __tests__/integrate-page-completion-semantics.contract.test.tsx __tests__/growth-metrics.contract.test.ts __tests__/repo-reference-integrity.growth-observability.test.ts",
31
+ "test:node:sqlite": "node scripts/assert-dependency-security-pins.mjs && node scripts/assert-no-legacy-verify-surface.mjs && node scripts/assert-no-withWorkflowVerification-surface.mjs && node --test --test-force-exit test/reconciler.sqlite.test.mjs test/pipeline.sqlite.test.mjs test/pipeline-state-stores-sqlite.test.mjs test/decisionGate.test.mjs test/workflowTruthReport.test.mjs test/cli.test.mjs test/post-product-activation-install-id.test.mjs test/workflow-lineage-classify.test.mjs test/resolve-telemetry-source.test.mjs test/github-workflows-agentskeptic-telemetry-env.test.mjs test/maybe-emit-oss-claim-telemetry-off.test.mjs test/first-run-verify-output.integration.test.mjs test/stable-failure-consistency.test.mjs test/workflow-result-consumer-contract.test.mjs test/workflow-result-stdout-version.test.mjs test/docs-relational.test.mjs test/tools-registry-relational-surface.test.mjs test/tools-registry-state-stores.contract.test.mjs test/docs-contract.test.mjs test/docs-commercial-enforce-gate-normative.test.mjs test/docs-remediation-doctrine.test.mjs test/bundle-signature-fixture.test.mjs test/bundle-signature-codes-doc.test.mjs test/bundle-signature-cli-write.test.mjs test/quick-verify.sqlite.test.mjs test/bootstrap-pack.test.mjs test/crossing-cli.test.mjs test/quickVerifyPostbuildGate.test.mjs test/npm-scripts-contract.test.mjs test/langgraph-reference-emitter-before-cli-spawn.test.mjs test/langgraph-checkpoint-trust-terminal.contract.test.mjs test/langgraph-ineligible-certificate.import-guard.test.mjs test/removed-script-names-ban.test.mjs test/docs-workflow-result-normative-prose.test.mjs test/enforce-oss-forbidden.test.mjs test/oss-output-lock-batch.test.mjs test/lock-success-monetized-footer.integration.test.mjs test/docs-enforce-stream-contract.test.mjs test/docs-quick-enforce-link.test.mjs test/discovery-payload.test.mjs test/redaction-rules.test.mjs test/indexable-guide-paths-fs.contract.test.mjs test/npm-pack-discovery-scripts.test.mjs test/registry-metadata-parity.test.mjs test/docs-related-exists-export-negative.mjs test/quick-param-pointer.gates.test.mjs test/dependency-security-pins.schema.contract.test.mjs test/drizzle-identifier-safety.contract.test.mjs test/assert-destructive-postgres-urls.test.mjs test/readme-wedge-inevitability.test.mjs test/adoption-complete-surface-parity.test.mjs test/adoption-epistemics-contract.test.mjs test/integrate-spine-contract.test.mjs test/integrate-spine-fixtures.test.mjs test/integrate-route-copy-absence.test.mjs test/adoption-validation-registry.test.mjs test/decision-ready-surfaces-manifest.test.mjs test/oss-legacy-handoff-ban.test.mjs test/sync-adoption-canonical-to-llms.test.mjs test/verify-agentskeptic-consumer.e2e.test.mjs test/docs-first-five-minutes-ssot.guard.mjs",
31
32
  "test:postgres": "node scripts/pg-ci-init.mjs && node --test --test-force-exit test/postgres-session-readonly.test.mjs test/postgres-privilege.test.mjs test/pipeline.postgres.test.mjs test/decisionGate.postgres.test.mjs test/ci-workflow-truth-postgres-contract.test.mjs test/quick-verify.postgres.test.mjs",
32
33
  "test:workflow-truth-contract": "node --test --test-force-exit test/ci-workflow-truth-postgres-contract.test.mjs",
33
34
  "validate-ttfv": "node scripts/validate-ttfv.mjs",
34
35
  "test:python": "node scripts/check-python-no-subprocess.mjs && node scripts/assert-python-langgraph-primacy.mjs && cd python && python -m pip install -e \".[dev]\" -q && python -m pytest tests/ -q",
35
- "test": "npm run build && npm run check:epistemic-contract-structure && npm run test:vitest && npm run test:vitest -w agentskeptic-web -- __tests__/langgraph-reference-primacy.dom.test.tsx __tests__/oss-claim-client-flow.dom.test.tsx __tests__/integrate-page-completion-semantics.contract.test.tsx && npm run test:node:sqlite && node scripts/first-run.mjs && node scripts/validate-adoption-complete.mjs && node --test test/validate-adoption-complete-failure.test.mjs && node scripts/validate-adoption-complete.mjs && npm run partner-quickstart && node scripts/validate-integrate-spine.mjs && node scripts/validate-integrator-onboarding-shape.mjs && node scripts/langgraph-reference-verify.mjs && node scripts/assert-no-langgraph-v1-product-path.mjs && npm run test:python && node test/partner-quickstart.adversarial.mjs && npm run check:partner-quickstart-ssot && node dist/cli.js assurance run --manifest examples/assurance/manifest.json && node scripts/commercial-enforce-test-harness.mjs && npm run build && npm run validate-ttfv && node scripts/related-exists-export-user-outcome.mjs",
36
+ "test": "npm run build && npm run check:epistemic-contract-structure && npm run test:vitest && npm run test:vitest -w agentskeptic-web -- __tests__/langgraph-reference-primacy.dom.test.tsx __tests__/oss-claim-client-flow.dom.test.tsx __tests__/integrate-page-completion-semantics.contract.test.tsx __tests__/funnel-surface-beacon-keepalive.contract.test.tsx && npm run test:node:sqlite && node scripts/first-run.mjs && node scripts/validate-adoption-complete.mjs && node --test test/validate-adoption-complete-failure.test.mjs && node scripts/validate-adoption-complete.mjs && npm run partner-quickstart && node scripts/validate-integrate-spine.mjs && node scripts/validate-integrator-onboarding-shape.mjs && node scripts/langgraph-reference-verify.mjs && node scripts/assert-no-langgraph-v1-product-path.mjs && npm run test:python && node test/partner-quickstart.adversarial.mjs && npm run check:partner-quickstart && node dist/cli.js assurance run --manifest examples/assurance/manifest.json && node scripts/commercial-enforce-test-harness.mjs && npm run build && npm run validate-ttfv && node scripts/related-exists-export-user-outcome.mjs",
36
37
  "test:debug-ui": "playwright test",
37
- "test:ci": "npm run build && npm run check:epistemic-contract-structure && npm run test:vitest && npm run test:vitest -w agentskeptic-web -- __tests__/langgraph-reference-primacy.dom.test.tsx __tests__/oss-claim-client-flow.dom.test.tsx __tests__/integrate-page-completion-semantics.contract.test.tsx && npm run test:node:sqlite && node scripts/first-run.mjs && node scripts/validate-adoption-complete.mjs && node --test test/validate-adoption-complete-failure.test.mjs && node scripts/validate-adoption-complete.mjs && npm run partner-quickstart && node scripts/validate-integrate-spine.mjs && node scripts/validate-integrator-onboarding-shape.mjs && node scripts/langgraph-reference-verify.mjs && node scripts/assert-no-langgraph-v1-product-path.mjs && npm run test:python && node test/partner-quickstart.adversarial.mjs && npm run check:partner-quickstart-ssot && node dist/cli.js assurance run --manifest examples/assurance/manifest.json && npm run test:postgres && node scripts/run-partner-quickstart-postgres-ci.mjs && node scripts/commercial-enforce-test-harness.mjs --require-postgres && npx playwright install chromium && npm run test:debug-ui && npm run build && npm run validate-ttfv && node scripts/related-exists-export-user-outcome.mjs",
38
+ "test:ci": "npm run build && npm run check:epistemic-contract-structure && npm run test:vitest && npm run test:vitest -w agentskeptic-web -- __tests__/langgraph-reference-primacy.dom.test.tsx __tests__/oss-claim-client-flow.dom.test.tsx __tests__/integrate-page-completion-semantics.contract.test.tsx __tests__/funnel-surface-beacon-keepalive.contract.test.tsx && npm run test:node:sqlite && node scripts/first-run.mjs && node scripts/validate-adoption-complete.mjs && node --test test/validate-adoption-complete-failure.test.mjs && node scripts/validate-adoption-complete.mjs && npm run partner-quickstart && node scripts/validate-integrate-spine.mjs && node scripts/validate-integrator-onboarding-shape.mjs && node scripts/langgraph-reference-verify.mjs && node scripts/assert-no-langgraph-v1-product-path.mjs && npm run test:python && node test/partner-quickstart.adversarial.mjs && npm run check:partner-quickstart && node dist/cli.js assurance run --manifest examples/assurance/manifest.json && npm run test:postgres && node scripts/run-partner-quickstart-postgres-ci.mjs && node scripts/commercial-enforce-test-harness.mjs --require-postgres && npx playwright install chromium && npm run test:debug-ui && npm run build && npm run validate-ttfv && node scripts/related-exists-export-user-outcome.mjs",
38
39
  "example:workflow-hook": "npm run build && node examples/workflow-runner.mjs",
39
40
  "agentskeptic": "node dist/cli.js",
40
41
  "migrate:workflow-result-v11": "npm run build && node scripts/migrate-workflow-result-v11.mjs",
41
42
  "migrate:workflow-result-v12": "node scripts/migrate-workflow-result-v12.mjs",
42
43
  "migrate:workflow-result-v13": "npm run build && node scripts/migrate-workflow-result-v13.mjs",
43
44
  "migrate:workflow-result-v15": "npm run build && node scripts/migrate-workflow-result-v15.mjs",
44
- "check:commercial-ssot": "node scripts/check-commercial-plans-ssot.mjs",
45
+ "check:commercial-plans": "node scripts/check-commercial-plans.mjs",
45
46
  "stripe-bootstrap": "node scripts/stripe-bootstrap.mjs",
46
47
  "validate-commercial": "node scripts/validate-commercial-funnel.mjs",
47
48
  "pack-smoke": "node scripts/pack-smoke-commercial.mjs",
48
- "sync:public-product-anchors": "node scripts/public-product-anchors.cjs && node scripts/sync-adoption-canonical-to-llms.mjs && node scripts/assert-discovery-public-files.mjs",
49
+ "emit-primary-marketing": "node scripts/emit-primary-marketing.cjs && node scripts/sync-adoption-canonical-to-llms.mjs && node scripts/assert-discovery-public-files.mjs",
50
+ "sync:public-product-anchors": "npm run emit-primary-marketing",
49
51
  "check:discovery-acquisition": "node scripts/validate-discovery-acquisition.mjs",
52
+ "check:primary-marketing": "node scripts/validate-marketing.cjs && node scripts/validate-discovery-acquisition.mjs",
50
53
  "verify:web-marketing-copy": "node scripts/run-verify-web-marketing-copy.mjs",
51
- "check:public-product-anchors": "node scripts/public-product-anchors.cjs --check && node scripts/sync-adoption-canonical-to-llms.mjs --check",
54
+ "check:public-product-anchors": "node scripts/emit-primary-marketing.cjs --check && node scripts/sync-adoption-canonical-to-llms.mjs --check",
52
55
  "generate:integrate-activation-shell": "node scripts/generate-integrate-activation-shell.mjs",
53
56
  "check:integrate-activation-shell": "node scripts/generate-integrate-activation-shell.mjs --check",
54
57
  "validate:activation-spine": "node scripts/validate-activation-spine.mjs",
@@ -60,7 +63,7 @@
60
63
  "sync-integrator-docs-embedded": "node scripts/sync-integrator-docs-embedded.mjs",
61
64
  "sync-epistemic-contract-website": "node scripts/sync-epistemic-contract-website.mjs",
62
65
  "check:epistemic-contract-structure": "node scripts/validate-epistemic-contract-structure.mjs",
63
- "check:partner-quickstart-ssot": "node scripts/check-partner-quickstart-ssot.mjs",
66
+ "check:partner-quickstart": "node scripts/check-partner-quickstart.mjs",
64
67
  "partner-quickstart": "node scripts/partner-quickstart-verify.mjs",
65
68
  "first-run-verify": "node scripts/partner-quickstart-verify.mjs",
66
69
  "generate:langgraph-guide-embed": "node scripts/embed/generate-langgraph-guide-embed.mjs"
@@ -79,13 +82,22 @@
79
82
  "vitest": "^4.1.4"
80
83
  },
81
84
  "dependencies": {
85
+ "@aws-sdk/client-s3": "^3.1034.0",
86
+ "@google-cloud/bigquery": "^8.1.1",
82
87
  "ajv": "^8.17.1",
83
88
  "ajv-formats": "^3.0.1",
89
+ "mongodb": "^6.12.0",
90
+ "mssql": "^11.0.1",
91
+ "mysql2": "^3.14.0",
84
92
  "pg": "^8.20.0",
85
93
  "picomatch": "^4.0.4",
86
94
  "yaml": "^2.8.3"
87
95
  },
88
96
  "overrides": {
97
+ "encoding-sniffer": "1.0.2",
98
+ "uuid": "14.0.0",
99
+ "fast-xml-parser": "5.7.1",
100
+ "basic-ftp": "5.3.0",
89
101
  "esbuild": "0.25.12",
90
102
  "tmp": "0.2.4",
91
103
  "cookie": "0.7.2",
@@ -106,36 +118,19 @@
106
118
  "schemas/",
107
119
  "scripts/discovery-payload.lib.cjs",
108
120
  "scripts/discovery-acquisition.lib.cjs",
121
+ "scripts/validate-marketing.cjs",
122
+ "scripts/emit-primary-marketing.cjs",
123
+ "scripts/origin.cjs",
124
+ "scripts/public-product-anchors.cjs",
125
+ "config/marketing.json",
109
126
  "scripts/render-discovery-ci.mjs"
110
127
  ],
111
128
  "keywords": [
112
129
  "agentskeptic",
113
- "agent-skeptic",
114
- "workflow",
115
130
  "verification",
116
131
  "database",
117
- "sql",
118
- "state",
119
132
  "read-only",
120
133
  "agent",
121
- "automation",
122
- "ndjson",
123
- "postgres",
124
- "sqlite",
125
- "tool-calls",
126
- "compliance",
127
- "crm",
128
- "ai-workflow",
129
- "langgraph",
130
- "ci-gate",
131
- "false-positive",
132
- "postgres-verification",
133
- "trace-vs-database",
134
- "silent-failure",
135
- "ai-agent-verification",
136
- "workflow-validation",
137
- "langgraph-observability",
138
- "tool-call-grounding",
139
- "database-state-checking"
134
+ "workflow"
140
135
  ]
141
136
  }
@@ -0,0 +1,81 @@
1
+ {
2
+ "$id": "https://agentskeptic.com/schemas/assurance-output-v1.schema.json",
3
+ "title": "AssuranceOutputV1",
4
+ "oneOf": [
5
+ {
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "firstFiveMinutesChecklist",
12
+ "operatorLine",
13
+ "fresh",
14
+ "issuedAt",
15
+ "ageMs",
16
+ "maxAgeHours"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": { "const": 1 },
20
+ "kind": { "const": "assurance_stale" },
21
+ "firstFiveMinutesChecklist": {
22
+ "type": "array",
23
+ "minItems": 1,
24
+ "items": { "type": "string", "minLength": 1 }
25
+ },
26
+ "operatorLine": { "type": "string", "minLength": 1 },
27
+ "fresh": { "type": "boolean" },
28
+ "issuedAt": { "type": "string", "minLength": 1 },
29
+ "ageMs": { "type": "integer" },
30
+ "maxAgeHours": { "type": "number", "minimum": 0 }
31
+ }
32
+ },
33
+ {
34
+ "type": "object",
35
+ "additionalProperties": false,
36
+ "required": [
37
+ "schemaVersion",
38
+ "kind",
39
+ "firstFiveMinutesChecklist",
40
+ "operatorLine",
41
+ "runReport"
42
+ ],
43
+ "properties": {
44
+ "schemaVersion": { "const": 1 },
45
+ "kind": { "const": "assurance_run" },
46
+ "firstFiveMinutesChecklist": {
47
+ "type": "array",
48
+ "minItems": 1,
49
+ "items": { "type": "string", "minLength": 1 }
50
+ },
51
+ "operatorLine": { "type": "string", "minLength": 1 },
52
+ "runReport": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["schemaVersion", "issuedAt", "scenarios"],
56
+ "properties": {
57
+ "schemaVersion": { "const": 1 },
58
+ "issuedAt": {
59
+ "type": "string",
60
+ "minLength": 1,
61
+ "description": "ISO-8601 timestamp in UTC when the report was finalized after all scenarios completed."
62
+ },
63
+ "scenarios": {
64
+ "type": "array",
65
+ "minItems": 1,
66
+ "items": {
67
+ "type": "object",
68
+ "additionalProperties": false,
69
+ "required": ["id", "exitCode"],
70
+ "properties": {
71
+ "id": { "type": "string", "minLength": 1 },
72
+ "exitCode": { "type": "integer" }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ ]
81
+ }
@@ -146,7 +146,10 @@ components:
146
146
  type: string
147
147
  enum: [verify, enforce]
148
148
  default: verify
149
- description: enforce requires paid plan with active subscription; verify requires active subscription on individual/team/business/enterprise
149
+ description: >
150
+ enforce requires a paid plan (not Starter) with active subscription; verify is allowed
151
+ for Starter (free included quota) and for paid plans with active subscription; overage
152
+ is permitted past included for paid plans with allowOverage in plan catalog
150
153
  ReserveAllowed:
151
154
  type: object
152
155
  required:
@@ -154,6 +157,8 @@ components:
154
157
  - plan
155
158
  - limit
156
159
  - used
160
+ - included_monthly
161
+ - overage_count
157
162
  properties:
158
163
  allowed:
159
164
  type: boolean
@@ -163,8 +168,18 @@ components:
163
168
  enum: [starter, individual, team, business, enterprise]
164
169
  limit:
165
170
  type: integer
171
+ description: Included verifications in the current billing month (not enterprise unlimited sentinel)
166
172
  used:
167
173
  type: integer
174
+ description: Total verifications counted this month for this API key
175
+ included_monthly:
176
+ oneOf:
177
+ - type: integer
178
+ - type: "null"
179
+ description: Same as limit for finite plans; null for enterprise unlimited
180
+ overage_count:
181
+ type: integer
182
+ description: max(0, used - included_monthly) when the plan has a finite cap
168
183
  ReserveError:
169
184
  type: object
170
185
  properties:
@@ -174,8 +189,8 @@ components:
174
189
  code:
175
190
  type: string
176
191
  description: >
177
- Examples BAD_REQUEST, INVALID_KEY, QUOTA_EXCEEDED, VERIFICATION_REQUIRES_SUBSCRIPTION,
178
- ENFORCEMENT_REQUIRES_PAID_PLAN, SUBSCRIPTION_INACTIVE, BILLING_PRICE_UNMAPPED, SERVER_ERROR
192
+ Examples BAD_REQUEST, INVALID_KEY, QUOTA_EXCEEDED, ENFORCEMENT_REQUIRES_PAID_PLAN,
193
+ SUBSCRIPTION_INACTIVE, BILLING_PRICE_UNMAPPED, SERVER_ERROR
179
194
  message:
180
195
  type: string
181
196
  upgrade_url:
@@ -205,8 +220,26 @@ components:
205
220
  oneOf:
206
221
  - type: integer
207
222
  - type: "null"
223
+ yearlyUsdCents:
224
+ oneOf:
225
+ - type: integer
226
+ - type: "null"
208
227
  displayPrice:
209
228
  type: string
229
+ displayPriceYearly:
230
+ oneOf:
231
+ - type: string
232
+ - type: "null"
233
+ overageMicrousdPerVerification:
234
+ oneOf:
235
+ - type: integer
236
+ - type: "null"
237
+ allowOverage:
238
+ type: boolean
239
+ overageDisplayLabel:
240
+ oneOf:
241
+ - type: string
242
+ - type: "null"
210
243
  marketingHeadline:
211
244
  type: string
212
245
  audience:
@@ -8,7 +8,7 @@ info:
8
8
  repository: https://github.com/jwekavanagh/agentskeptic
9
9
  npmPackage: https://www.npmjs.com/package/agentskeptic
10
10
  openApi: https://agentskeptic.com/openapi-commercial-v1.yaml
11
- description: "State verification engine: read-only SQL checks that database state matches expectations from structured tool activity (not arbitrary logs)—not proof of execution\n\nMachine-readable contract for license preflight used by the published npm CLI.\nBase URL is your deployed app origin (same as NEXT_PUBLIC_APP_URL).\n"
11
+ description: "Read-only checks at verify time—not color.\n\nMachine-readable contract for license preflight used by the published npm CLI.\nBase URL is your deployed app origin (same as NEXT_PUBLIC_APP_URL).\n"
12
12
  externalDocs:
13
13
  description: "First-run integration guide"
14
14
  url: https://agentskeptic.com/integrate
@@ -146,7 +146,10 @@ components:
146
146
  type: string
147
147
  enum: [verify, enforce]
148
148
  default: verify
149
- description: enforce requires paid plan with active subscription; verify requires active subscription on individual/team/business/enterprise
149
+ description: >
150
+ enforce requires a paid plan (not Starter) with active subscription; verify is allowed
151
+ for Starter (free included quota) and for paid plans with active subscription; overage
152
+ is permitted past included for paid plans with allowOverage in plan catalog
150
153
  ReserveAllowed:
151
154
  type: object
152
155
  required:
@@ -154,6 +157,8 @@ components:
154
157
  - plan
155
158
  - limit
156
159
  - used
160
+ - included_monthly
161
+ - overage_count
157
162
  properties:
158
163
  allowed:
159
164
  type: boolean
@@ -163,8 +168,18 @@ components:
163
168
  enum: [starter, individual, team, business, enterprise]
164
169
  limit:
165
170
  type: integer
171
+ description: Included verifications in the current billing month (not enterprise unlimited sentinel)
166
172
  used:
167
173
  type: integer
174
+ description: Total verifications counted this month for this API key
175
+ included_monthly:
176
+ oneOf:
177
+ - type: integer
178
+ - type: "null"
179
+ description: Same as limit for finite plans; null for enterprise unlimited
180
+ overage_count:
181
+ type: integer
182
+ description: max(0, used - included_monthly) when the plan has a finite cap
168
183
  ReserveError:
169
184
  type: object
170
185
  properties:
@@ -174,8 +189,8 @@ components:
174
189
  code:
175
190
  type: string
176
191
  description: >
177
- Examples BAD_REQUEST, INVALID_KEY, QUOTA_EXCEEDED, VERIFICATION_REQUIRES_SUBSCRIPTION,
178
- ENFORCEMENT_REQUIRES_PAID_PLAN, SUBSCRIPTION_INACTIVE, BILLING_PRICE_UNMAPPED, SERVER_ERROR
192
+ Examples BAD_REQUEST, INVALID_KEY, QUOTA_EXCEEDED, ENFORCEMENT_REQUIRES_PAID_PLAN,
193
+ SUBSCRIPTION_INACTIVE, BILLING_PRICE_UNMAPPED, SERVER_ERROR
179
194
  message:
180
195
  type: string
181
196
  upgrade_url:
@@ -205,8 +220,26 @@ components:
205
220
  oneOf:
206
221
  - type: integer
207
222
  - type: "null"
223
+ yearlyUsdCents:
224
+ oneOf:
225
+ - type: integer
226
+ - type: "null"
208
227
  displayPrice:
209
228
  type: string
229
+ displayPriceYearly:
230
+ oneOf:
231
+ - type: string
232
+ - type: "null"
233
+ overageMicrousdPerVerification:
234
+ oneOf:
235
+ - type: integer
236
+ - type: "null"
237
+ allowOverage:
238
+ type: boolean
239
+ overageDisplayLabel:
240
+ oneOf:
241
+ - type: string
242
+ - type: "null"
210
243
  marketingHeadline:
211
244
  type: string
212
245
  audience:
@@ -72,12 +72,115 @@
72
72
  "items": { "$ref": "#/$defs/sqlRelationalCheck" }
73
73
  }
74
74
  }
75
+ },
76
+ {
77
+ "type": "object",
78
+ "additionalProperties": false,
79
+ "required": ["kind", "provider", "documentId", "indexName"],
80
+ "properties": {
81
+ "kind": { "const": "vector_document" },
82
+ "provider": { "type": "string", "enum": ["pinecone", "weaviate", "chroma"] },
83
+ "documentId": { "$ref": "#/$defs/stringSpec" },
84
+ "indexName": { "$ref": "#/$defs/stringSpec" },
85
+ "namespace": { "$ref": "#/$defs/stringSpec" },
86
+ "host": { "$ref": "#/$defs/stringSpec" },
87
+ "metadataEq": { "$ref": "#/$defs/requiredFieldsPointer" },
88
+ "expectPayloadSha256": { "$ref": "#/$defs/stringSpec" }
89
+ }
90
+ },
91
+ {
92
+ "type": "object",
93
+ "additionalProperties": false,
94
+ "required": ["kind", "bucket", "key"],
95
+ "properties": {
96
+ "kind": { "const": "object_storage_object" },
97
+ "bucket": { "$ref": "#/$defs/stringSpec" },
98
+ "key": { "$ref": "#/$defs/stringSpec" },
99
+ "endpoint": { "$ref": "#/$defs/stringSpec" },
100
+ "expectSizeBytes": { "$ref": "#/$defs/numberOrPointerSpec" },
101
+ "expectSha256": { "$ref": "#/$defs/stringSpec" },
102
+ "expectEtag": { "$ref": "#/$defs/stringSpec" }
103
+ }
104
+ },
105
+ {
106
+ "type": "object",
107
+ "additionalProperties": false,
108
+ "required": ["kind", "url"],
109
+ "properties": {
110
+ "kind": { "const": "http_witness" },
111
+ "method": { "type": "string", "enum": ["GET", "POST"] },
112
+ "url": { "$ref": "#/$defs/stringSpec" },
113
+ "expectedStatus": { "$ref": "#/$defs/numberOrPointerSpec" },
114
+ "assertions": {
115
+ "type": "array",
116
+ "items": { "$ref": "#/$defs/httpWitnessAssertion" }
117
+ }
118
+ }
119
+ },
120
+ {
121
+ "type": "object",
122
+ "additionalProperties": false,
123
+ "required": ["kind", "collection", "filterPointer", "requiredFields"],
124
+ "properties": {
125
+ "kind": { "const": "mongo_document" },
126
+ "collection": { "$ref": "#/$defs/stringSpec" },
127
+ "filterPointer": {
128
+ "type": "object",
129
+ "additionalProperties": false,
130
+ "required": ["pointer"],
131
+ "properties": {
132
+ "pointer": { "type": "string", "pattern": "^/" }
133
+ }
134
+ },
135
+ "requiredFields": { "$ref": "#/$defs/requiredFieldsPointer" }
136
+ }
75
137
  }
76
138
  ]
77
139
  }
78
140
  }
79
141
  },
80
142
  "$defs": {
143
+ "stringSpec": {
144
+ "oneOf": [
145
+ {
146
+ "type": "object",
147
+ "additionalProperties": false,
148
+ "required": ["const"],
149
+ "properties": { "const": { "type": "string", "minLength": 1 } }
150
+ },
151
+ {
152
+ "type": "object",
153
+ "additionalProperties": false,
154
+ "required": ["pointer"],
155
+ "properties": { "pointer": { "type": "string", "pattern": "^/" } }
156
+ }
157
+ ]
158
+ },
159
+ "numberOrPointerSpec": {
160
+ "oneOf": [
161
+ {
162
+ "type": "object",
163
+ "additionalProperties": false,
164
+ "required": ["const"],
165
+ "properties": { "const": { "type": "number" } }
166
+ },
167
+ {
168
+ "type": "object",
169
+ "additionalProperties": false,
170
+ "required": ["pointer"],
171
+ "properties": { "pointer": { "type": "string", "pattern": "^/" } }
172
+ }
173
+ ]
174
+ },
175
+ "httpWitnessAssertion": {
176
+ "type": "object",
177
+ "additionalProperties": false,
178
+ "required": ["jsonPointer", "value"],
179
+ "properties": {
180
+ "jsonPointer": { "type": "string", "minLength": 1 },
181
+ "value": { "$ref": "#/$defs/scalarOrPointer" }
182
+ }
183
+ },
81
184
  "tableSpec": {
82
185
  "oneOf": [
83
186
  {
@@ -414,6 +414,70 @@
414
414
  }
415
415
  }
416
416
  },
417
+ "verificationRequestVectorDocument": {
418
+ "type": "object",
419
+ "additionalProperties": false,
420
+ "required": ["kind", "provider", "documentId", "indexName"],
421
+ "properties": {
422
+ "kind": { "const": "vector_document" },
423
+ "provider": { "type": "string", "enum": ["pinecone", "weaviate", "chroma"] },
424
+ "documentId": { "type": "string", "minLength": 1 },
425
+ "indexName": { "type": "string", "minLength": 1 },
426
+ "namespace": { "type": "string" },
427
+ "host": { "type": "string", "minLength": 1 },
428
+ "metadataSubset": { "type": "object", "additionalProperties": true },
429
+ "expectPayloadSha256": { "type": "string", "minLength": 1 }
430
+ }
431
+ },
432
+ "verificationRequestObjectStorageObject": {
433
+ "type": "object",
434
+ "additionalProperties": false,
435
+ "required": ["kind", "bucket", "key"],
436
+ "properties": {
437
+ "kind": { "const": "object_storage_object" },
438
+ "bucket": { "type": "string", "minLength": 1 },
439
+ "key": { "type": "string", "minLength": 1 },
440
+ "endpoint": { "type": "string", "minLength": 1 },
441
+ "expectSizeBytes": { "type": "number", "minimum": 0 },
442
+ "expectSha256": { "type": "string", "minLength": 1 },
443
+ "expectEtag": { "type": "string", "minLength": 1 }
444
+ }
445
+ },
446
+ "httpWitnessResolvedAssertion": {
447
+ "type": "object",
448
+ "additionalProperties": false,
449
+ "required": ["jsonPointer", "value"],
450
+ "properties": {
451
+ "jsonPointer": { "type": "string", "minLength": 1 },
452
+ "value": { "type": ["string", "number", "boolean", "null"] }
453
+ }
454
+ },
455
+ "verificationRequestHttpWitness": {
456
+ "type": "object",
457
+ "additionalProperties": false,
458
+ "required": ["kind", "method", "url"],
459
+ "properties": {
460
+ "kind": { "const": "http_witness" },
461
+ "method": { "type": "string", "enum": ["GET", "POST"] },
462
+ "url": { "type": "string", "minLength": 1 },
463
+ "expectedStatus": { "type": "integer", "minimum": 100, "maximum": 599 },
464
+ "assertions": {
465
+ "type": "array",
466
+ "items": { "$ref": "#/$defs/httpWitnessResolvedAssertion" }
467
+ }
468
+ }
469
+ },
470
+ "verificationRequestMongoDocument": {
471
+ "type": "object",
472
+ "additionalProperties": false,
473
+ "required": ["kind", "collection", "filter", "requiredFields"],
474
+ "properties": {
475
+ "kind": { "const": "mongo_document" },
476
+ "collection": { "type": "string", "minLength": 1 },
477
+ "filter": { "type": "object", "additionalProperties": true },
478
+ "requiredFields": { "$ref": "#/$defs/requiredFieldsMap" }
479
+ }
480
+ },
417
481
  "effectOutcome": {
418
482
  "type": "object",
419
483
  "additionalProperties": false,
@@ -478,7 +542,11 @@
478
542
  { "$ref": "#/$defs/verificationRequestSqlRow" },
479
543
  { "$ref": "#/$defs/verificationRequestSqlRowAbsent" },
480
544
  { "$ref": "#/$defs/verificationRequestSqlEffects" },
481
- { "$ref": "#/$defs/verificationRequestSqlRelational" }
545
+ { "$ref": "#/$defs/verificationRequestSqlRelational" },
546
+ { "$ref": "#/$defs/verificationRequestVectorDocument" },
547
+ { "$ref": "#/$defs/verificationRequestObjectStorageObject" },
548
+ { "$ref": "#/$defs/verificationRequestHttpWitness" },
549
+ { "$ref": "#/$defs/verificationRequestMongoDocument" }
482
550
  ]
483
551
  },
484
552
  "status": {
@@ -624,6 +624,18 @@
624
624
  },
625
625
  {
626
626
  "$ref": "https://agentskeptic.com/schemas/workflow-engine-result.schema.json#/$defs/verificationRequestSqlRelational"
627
+ },
628
+ {
629
+ "$ref": "https://agentskeptic.com/schemas/workflow-engine-result.schema.json#/$defs/verificationRequestVectorDocument"
630
+ },
631
+ {
632
+ "$ref": "https://agentskeptic.com/schemas/workflow-engine-result.schema.json#/$defs/verificationRequestObjectStorageObject"
633
+ },
634
+ {
635
+ "$ref": "https://agentskeptic.com/schemas/workflow-engine-result.schema.json#/$defs/verificationRequestHttpWitness"
636
+ },
637
+ {
638
+ "$ref": "https://agentskeptic.com/schemas/workflow-engine-result.schema.json#/$defs/verificationRequestMongoDocument"
627
639
  }
628
640
  ]
629
641
  }