agentskeptic 0.1.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.
Files changed (661) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +342 -0
  3. package/dist/actionableFailure.d.ts +53 -0
  4. package/dist/actionableFailure.d.ts.map +1 -0
  5. package/dist/actionableFailure.js +424 -0
  6. package/dist/actionableFailure.js.map +1 -0
  7. package/dist/actionableFailure.partitionExhaustive.test.d.ts +2 -0
  8. package/dist/actionableFailure.partitionExhaustive.test.d.ts.map +1 -0
  9. package/dist/actionableFailure.partitionExhaustive.test.js +20 -0
  10. package/dist/actionableFailure.partitionExhaustive.test.js.map +1 -0
  11. package/dist/actionableFailure.remediationExhaustive.test.d.ts +2 -0
  12. package/dist/actionableFailure.remediationExhaustive.test.d.ts.map +1 -0
  13. package/dist/actionableFailure.remediationExhaustive.test.js +297 -0
  14. package/dist/actionableFailure.remediationExhaustive.test.js.map +1 -0
  15. package/dist/actionableFailure.test.d.ts +2 -0
  16. package/dist/actionableFailure.test.d.ts.map +1 -0
  17. package/dist/actionableFailure.test.js +211 -0
  18. package/dist/actionableFailure.test.js.map +1 -0
  19. package/dist/agentRunBundle.d.ts +24 -0
  20. package/dist/agentRunBundle.d.ts.map +1 -0
  21. package/dist/agentRunBundle.js +114 -0
  22. package/dist/agentRunBundle.js.map +1 -0
  23. package/dist/agentRunBundle.rollback.test.d.ts +2 -0
  24. package/dist/agentRunBundle.rollback.test.d.ts.map +1 -0
  25. package/dist/agentRunBundle.rollback.test.js +65 -0
  26. package/dist/agentRunBundle.rollback.test.js.map +1 -0
  27. package/dist/agentRunBundle.test.d.ts +2 -0
  28. package/dist/agentRunBundle.test.d.ts.map +1 -0
  29. package/dist/agentRunBundle.test.js +126 -0
  30. package/dist/agentRunBundle.test.js.map +1 -0
  31. package/dist/agentRunRecord.d.ts +82 -0
  32. package/dist/agentRunRecord.d.ts.map +1 -0
  33. package/dist/agentRunRecord.js +51 -0
  34. package/dist/agentRunRecord.js.map +1 -0
  35. package/dist/agentRunRecord.test.d.ts +2 -0
  36. package/dist/agentRunRecord.test.d.ts.map +1 -0
  37. package/dist/agentRunRecord.test.js +49 -0
  38. package/dist/agentRunRecord.test.js.map +1 -0
  39. package/dist/aggregate.d.ts +3 -0
  40. package/dist/aggregate.d.ts.map +1 -0
  41. package/dist/aggregate.js +36 -0
  42. package/dist/aggregate.js.map +1 -0
  43. package/dist/assurance/assurancePathArgs.d.ts +10 -0
  44. package/dist/assurance/assurancePathArgs.d.ts.map +1 -0
  45. package/dist/assurance/assurancePathArgs.js +54 -0
  46. package/dist/assurance/assurancePathArgs.js.map +1 -0
  47. package/dist/assurance/checkStale.d.ts +14 -0
  48. package/dist/assurance/checkStale.d.ts.map +1 -0
  49. package/dist/assurance/checkStale.js +48 -0
  50. package/dist/assurance/checkStale.js.map +1 -0
  51. package/dist/assurance/findRepoRoot.d.ts +6 -0
  52. package/dist/assurance/findRepoRoot.d.ts.map +1 -0
  53. package/dist/assurance/findRepoRoot.js +27 -0
  54. package/dist/assurance/findRepoRoot.js.map +1 -0
  55. package/dist/assurance/runAssurance.d.ts +24 -0
  56. package/dist/assurance/runAssurance.d.ts.map +1 -0
  57. package/dist/assurance/runAssurance.js +105 -0
  58. package/dist/assurance/runAssurance.js.map +1 -0
  59. package/dist/bundleSignatureCodes.d.ts +13 -0
  60. package/dist/bundleSignatureCodes.d.ts.map +1 -0
  61. package/dist/bundleSignatureCodes.js +12 -0
  62. package/dist/bundleSignatureCodes.js.map +1 -0
  63. package/dist/canonicalParams.d.ts +3 -0
  64. package/dist/canonicalParams.d.ts.map +1 -0
  65. package/dist/canonicalParams.js +16 -0
  66. package/dist/canonicalParams.js.map +1 -0
  67. package/dist/ciLock.d.ts +52 -0
  68. package/dist/ciLock.d.ts.map +1 -0
  69. package/dist/ciLock.js +117 -0
  70. package/dist/ciLock.js.map +1 -0
  71. package/dist/ciLockWorkflow.d.ts +4 -0
  72. package/dist/ciLockWorkflow.d.ts.map +1 -0
  73. package/dist/ciLockWorkflow.js +278 -0
  74. package/dist/ciLockWorkflow.js.map +1 -0
  75. package/dist/cli.d.ts +3 -0
  76. package/dist/cli.d.ts.map +1 -0
  77. package/dist/cli.failureExplanationInvariant.test.d.ts +2 -0
  78. package/dist/cli.failureExplanationInvariant.test.d.ts.map +1 -0
  79. package/dist/cli.failureExplanationInvariant.test.js +40 -0
  80. package/dist/cli.failureExplanationInvariant.test.js.map +1 -0
  81. package/dist/cli.js +998 -0
  82. package/dist/cli.js.map +1 -0
  83. package/dist/cliArgv.d.ts +40 -0
  84. package/dist/cliArgv.d.ts.map +1 -0
  85. package/dist/cliArgv.js +149 -0
  86. package/dist/cliArgv.js.map +1 -0
  87. package/dist/cliOperationalCodes.d.ts +65 -0
  88. package/dist/cliOperationalCodes.d.ts.map +1 -0
  89. package/dist/cliOperationalCodes.js +64 -0
  90. package/dist/cliOperationalCodes.js.map +1 -0
  91. package/dist/commercial/licensePreflight.d.ts +7 -0
  92. package/dist/commercial/licensePreflight.d.ts.map +1 -0
  93. package/dist/commercial/licensePreflight.js +95 -0
  94. package/dist/commercial/licensePreflight.js.map +1 -0
  95. package/dist/commercial/licensePreflight.test.d.ts +2 -0
  96. package/dist/commercial/licensePreflight.test.d.ts.map +1 -0
  97. package/dist/commercial/licensePreflight.test.js +123 -0
  98. package/dist/commercial/licensePreflight.test.js.map +1 -0
  99. package/dist/compare.acceptance.test.d.ts +2 -0
  100. package/dist/compare.acceptance.test.d.ts.map +1 -0
  101. package/dist/compare.acceptance.test.js +80 -0
  102. package/dist/compare.acceptance.test.js.map +1 -0
  103. package/dist/correctnessDefinition.d.ts +23 -0
  104. package/dist/correctnessDefinition.d.ts.map +1 -0
  105. package/dist/correctnessDefinition.docParity.test.d.ts +2 -0
  106. package/dist/correctnessDefinition.docParity.test.d.ts.map +1 -0
  107. package/dist/correctnessDefinition.docParity.test.js +22 -0
  108. package/dist/correctnessDefinition.docParity.test.js.map +1 -0
  109. package/dist/correctnessDefinition.js +283 -0
  110. package/dist/correctnessDefinition.js.map +1 -0
  111. package/dist/correctnessDefinitionTemplates.d.ts +70 -0
  112. package/dist/correctnessDefinitionTemplates.d.ts.map +1 -0
  113. package/dist/correctnessDefinitionTemplates.js +121 -0
  114. package/dist/correctnessDefinitionTemplates.js.map +1 -0
  115. package/dist/debug-ui/app.css +188 -0
  116. package/dist/debug-ui/app.js +245 -0
  117. package/dist/debug-ui/index.html +79 -0
  118. package/dist/debugCorpus.d.ts +68 -0
  119. package/dist/debugCorpus.d.ts.map +1 -0
  120. package/dist/debugCorpus.js +544 -0
  121. package/dist/debugCorpus.js.map +1 -0
  122. package/dist/debugCorpus.test.d.ts +2 -0
  123. package/dist/debugCorpus.test.d.ts.map +1 -0
  124. package/dist/debugCorpus.test.js +159 -0
  125. package/dist/debugCorpus.test.js.map +1 -0
  126. package/dist/debugFocus.d.ts +16 -0
  127. package/dist/debugFocus.d.ts.map +1 -0
  128. package/dist/debugFocus.js +51 -0
  129. package/dist/debugFocus.js.map +1 -0
  130. package/dist/debugFocus.test.d.ts +2 -0
  131. package/dist/debugFocus.test.d.ts.map +1 -0
  132. package/dist/debugFocus.test.js +43 -0
  133. package/dist/debugFocus.test.js.map +1 -0
  134. package/dist/debugPanels.d.ts +13 -0
  135. package/dist/debugPanels.d.ts.map +1 -0
  136. package/dist/debugPanels.js +113 -0
  137. package/dist/debugPanels.js.map +1 -0
  138. package/dist/debugPanels.test.d.ts +2 -0
  139. package/dist/debugPanels.test.d.ts.map +1 -0
  140. package/dist/debugPanels.test.js +204 -0
  141. package/dist/debugPanels.test.js.map +1 -0
  142. package/dist/debugPatterns.d.ts +47 -0
  143. package/dist/debugPatterns.d.ts.map +1 -0
  144. package/dist/debugPatterns.js +113 -0
  145. package/dist/debugPatterns.js.map +1 -0
  146. package/dist/debugPatterns.test.d.ts +2 -0
  147. package/dist/debugPatterns.test.d.ts.map +1 -0
  148. package/dist/debugPatterns.test.js +48 -0
  149. package/dist/debugPatterns.test.js.map +1 -0
  150. package/dist/debugRunFilters.d.ts +31 -0
  151. package/dist/debugRunFilters.d.ts.map +1 -0
  152. package/dist/debugRunFilters.js +118 -0
  153. package/dist/debugRunFilters.js.map +1 -0
  154. package/dist/debugRunFilters.test.d.ts +2 -0
  155. package/dist/debugRunFilters.test.d.ts.map +1 -0
  156. package/dist/debugRunFilters.test.js +78 -0
  157. package/dist/debugRunFilters.test.js.map +1 -0
  158. package/dist/debugRunIndex.d.ts +27 -0
  159. package/dist/debugRunIndex.d.ts.map +1 -0
  160. package/dist/debugRunIndex.js +58 -0
  161. package/dist/debugRunIndex.js.map +1 -0
  162. package/dist/debugServer.d.ts +19 -0
  163. package/dist/debugServer.d.ts.map +1 -0
  164. package/dist/debugServer.js +315 -0
  165. package/dist/debugServer.js.map +1 -0
  166. package/dist/debugServer.test.d.ts +2 -0
  167. package/dist/debugServer.test.d.ts.map +1 -0
  168. package/dist/debugServer.test.js +207 -0
  169. package/dist/debugServer.test.js.map +1 -0
  170. package/dist/discovery-payload-v1.json +75 -0
  171. package/dist/distributionFooter.d.ts +3 -0
  172. package/dist/distributionFooter.d.ts.map +1 -0
  173. package/dist/distributionFooter.js +3 -0
  174. package/dist/distributionFooter.js.map +1 -0
  175. package/dist/documentationCopyConsistency.test.d.ts +2 -0
  176. package/dist/documentationCopyConsistency.test.d.ts.map +1 -0
  177. package/dist/documentationCopyConsistency.test.js +94 -0
  178. package/dist/documentationCopyConsistency.test.js.map +1 -0
  179. package/dist/enforceCli.d.ts +4 -0
  180. package/dist/enforceCli.d.ts.map +1 -0
  181. package/dist/enforceCli.js +93 -0
  182. package/dist/enforceCli.js.map +1 -0
  183. package/dist/eventSequenceIntegrity.d.ts +7 -0
  184. package/dist/eventSequenceIntegrity.d.ts.map +1 -0
  185. package/dist/eventSequenceIntegrity.js +47 -0
  186. package/dist/eventSequenceIntegrity.js.map +1 -0
  187. package/dist/eventSequenceIntegrity.test.d.ts +2 -0
  188. package/dist/eventSequenceIntegrity.test.d.ts.map +1 -0
  189. package/dist/eventSequenceIntegrity.test.js +65 -0
  190. package/dist/eventSequenceIntegrity.test.js.map +1 -0
  191. package/dist/executionPathFindings.d.ts +15 -0
  192. package/dist/executionPathFindings.d.ts.map +1 -0
  193. package/dist/executionPathFindings.js +299 -0
  194. package/dist/executionPathFindings.js.map +1 -0
  195. package/dist/executionPathFindings.requirements.test.d.ts +2 -0
  196. package/dist/executionPathFindings.requirements.test.d.ts.map +1 -0
  197. package/dist/executionPathFindings.requirements.test.js +332 -0
  198. package/dist/executionPathFindings.requirements.test.js.map +1 -0
  199. package/dist/executionTrace.d.ts +13 -0
  200. package/dist/executionTrace.d.ts.map +1 -0
  201. package/dist/executionTrace.js +272 -0
  202. package/dist/executionTrace.js.map +1 -0
  203. package/dist/executionTrace.test.d.ts +2 -0
  204. package/dist/executionTrace.test.d.ts.map +1 -0
  205. package/dist/executionTrace.test.js +200 -0
  206. package/dist/executionTrace.test.js.map +1 -0
  207. package/dist/failureAnalysis.d.ts +8 -0
  208. package/dist/failureAnalysis.d.ts.map +1 -0
  209. package/dist/failureAnalysis.js +337 -0
  210. package/dist/failureAnalysis.js.map +1 -0
  211. package/dist/failureAnalysis.test.d.ts +2 -0
  212. package/dist/failureAnalysis.test.d.ts.map +1 -0
  213. package/dist/failureAnalysis.test.js +196 -0
  214. package/dist/failureAnalysis.test.js.map +1 -0
  215. package/dist/failureCatalog.d.ts +26 -0
  216. package/dist/failureCatalog.d.ts.map +1 -0
  217. package/dist/failureCatalog.js +51 -0
  218. package/dist/failureCatalog.js.map +1 -0
  219. package/dist/failureCatalog.test.d.ts +2 -0
  220. package/dist/failureCatalog.test.d.ts.map +1 -0
  221. package/dist/failureCatalog.test.js +25 -0
  222. package/dist/failureCatalog.test.js.map +1 -0
  223. package/dist/failureExplanation.d.ts +52 -0
  224. package/dist/failureExplanation.d.ts.map +1 -0
  225. package/dist/failureExplanation.failureAnalysisMock.test.d.ts +2 -0
  226. package/dist/failureExplanation.failureAnalysisMock.test.d.ts.map +1 -0
  227. package/dist/failureExplanation.failureAnalysisMock.test.js +200 -0
  228. package/dist/failureExplanation.failureAnalysisMock.test.js.map +1 -0
  229. package/dist/failureExplanation.golden.test.d.ts +2 -0
  230. package/dist/failureExplanation.golden.test.d.ts.map +1 -0
  231. package/dist/failureExplanation.golden.test.js +530 -0
  232. package/dist/failureExplanation.golden.test.js.map +1 -0
  233. package/dist/failureExplanation.js +389 -0
  234. package/dist/failureExplanation.js.map +1 -0
  235. package/dist/failureExplanationDocumentationParity.test.d.ts +2 -0
  236. package/dist/failureExplanationDocumentationParity.test.d.ts.map +1 -0
  237. package/dist/failureExplanationDocumentationParity.test.js +56 -0
  238. package/dist/failureExplanationDocumentationParity.test.js.map +1 -0
  239. package/dist/failureOriginCatalog.d.ts +30 -0
  240. package/dist/failureOriginCatalog.d.ts.map +1 -0
  241. package/dist/failureOriginCatalog.js +106 -0
  242. package/dist/failureOriginCatalog.js.map +1 -0
  243. package/dist/failureOriginCatalog.test.d.ts +2 -0
  244. package/dist/failureOriginCatalog.test.d.ts.map +1 -0
  245. package/dist/failureOriginCatalog.test.js +17 -0
  246. package/dist/failureOriginCatalog.test.js.map +1 -0
  247. package/dist/failureOriginSchemaEnum.test.d.ts +2 -0
  248. package/dist/failureOriginSchemaEnum.test.d.ts.map +1 -0
  249. package/dist/failureOriginSchemaEnum.test.js +21 -0
  250. package/dist/failureOriginSchemaEnum.test.js.map +1 -0
  251. package/dist/failureOriginSchemaParity.test.d.ts +2 -0
  252. package/dist/failureOriginSchemaParity.test.d.ts.map +1 -0
  253. package/dist/failureOriginSchemaParity.test.js +33 -0
  254. package/dist/failureOriginSchemaParity.test.js.map +1 -0
  255. package/dist/failureOriginTypes.d.ts +4 -0
  256. package/dist/failureOriginTypes.d.ts.map +1 -0
  257. package/dist/failureOriginTypes.generated.d.ts +4 -0
  258. package/dist/failureOriginTypes.generated.d.ts.map +1 -0
  259. package/dist/failureOriginTypes.generated.js +10 -0
  260. package/dist/failureOriginTypes.generated.js.map +1 -0
  261. package/dist/failureOriginTypes.js +3 -0
  262. package/dist/failureOriginTypes.js.map +1 -0
  263. package/dist/generated/commercialBuildFlags.d.ts +4 -0
  264. package/dist/generated/commercialBuildFlags.d.ts.map +1 -0
  265. package/dist/generated/commercialBuildFlags.js +5 -0
  266. package/dist/generated/commercialBuildFlags.js.map +1 -0
  267. package/dist/index.d.ts +50 -0
  268. package/dist/index.d.ts.map +1 -0
  269. package/dist/index.js +34 -0
  270. package/dist/index.js.map +1 -0
  271. package/dist/jsonPointer.d.ts +3 -0
  272. package/dist/jsonPointer.d.ts.map +1 -0
  273. package/dist/jsonPointer.js +28 -0
  274. package/dist/jsonPointer.js.map +1 -0
  275. package/dist/jsonStableStringify.d.ts +3 -0
  276. package/dist/jsonStableStringify.d.ts.map +1 -0
  277. package/dist/jsonStableStringify.js +3 -0
  278. package/dist/jsonStableStringify.js.map +1 -0
  279. package/dist/loadEvents.d.ts +3 -0
  280. package/dist/loadEvents.d.ts.map +1 -0
  281. package/dist/loadEvents.eventFileAggregateCounts.test.d.ts +2 -0
  282. package/dist/loadEvents.eventFileAggregateCounts.test.d.ts.map +1 -0
  283. package/dist/loadEvents.eventFileAggregateCounts.test.js +18 -0
  284. package/dist/loadEvents.eventFileAggregateCounts.test.js.map +1 -0
  285. package/dist/loadEvents.js +85 -0
  286. package/dist/loadEvents.js.map +1 -0
  287. package/dist/multiEffectRollup.d.ts +43 -0
  288. package/dist/multiEffectRollup.d.ts.map +1 -0
  289. package/dist/multiEffectRollup.js +164 -0
  290. package/dist/multiEffectRollup.js.map +1 -0
  291. package/dist/multiEffectRollup.test.d.ts +2 -0
  292. package/dist/multiEffectRollup.test.d.ts.map +1 -0
  293. package/dist/multiEffectRollup.test.js +128 -0
  294. package/dist/multiEffectRollup.test.js.map +1 -0
  295. package/dist/noStepsMessage.d.ts +7 -0
  296. package/dist/noStepsMessage.d.ts.map +1 -0
  297. package/dist/noStepsMessage.js +12 -0
  298. package/dist/noStepsMessage.js.map +1 -0
  299. package/dist/noStepsMessage.test.d.ts +2 -0
  300. package/dist/noStepsMessage.test.d.ts.map +1 -0
  301. package/dist/noStepsMessage.test.js +15 -0
  302. package/dist/noStepsMessage.test.js.map +1 -0
  303. package/dist/operationalDisposition.d.ts +498 -0
  304. package/dist/operationalDisposition.d.ts.map +1 -0
  305. package/dist/operationalDisposition.js +490 -0
  306. package/dist/operationalDisposition.js.map +1 -0
  307. package/dist/operationalDispositionDerivation.test.d.ts +2 -0
  308. package/dist/operationalDispositionDerivation.test.d.ts.map +1 -0
  309. package/dist/operationalDispositionDerivation.test.js +19 -0
  310. package/dist/operationalDispositionDerivation.test.js.map +1 -0
  311. package/dist/operationalFailureDiagnosis.d.ts +3 -0
  312. package/dist/operationalFailureDiagnosis.d.ts.map +1 -0
  313. package/dist/operationalFailureDiagnosis.js +25 -0
  314. package/dist/operationalFailureDiagnosis.js.map +1 -0
  315. package/dist/pipeline.d.ts +38 -0
  316. package/dist/pipeline.d.ts.map +1 -0
  317. package/dist/pipeline.js +457 -0
  318. package/dist/pipeline.js.map +1 -0
  319. package/dist/planLogicalSteps.d.ts +16 -0
  320. package/dist/planLogicalSteps.d.ts.map +1 -0
  321. package/dist/planLogicalSteps.js +51 -0
  322. package/dist/planLogicalSteps.js.map +1 -0
  323. package/dist/planLogicalSteps.test.d.ts +2 -0
  324. package/dist/planLogicalSteps.test.d.ts.map +1 -0
  325. package/dist/planLogicalSteps.test.js +88 -0
  326. package/dist/planLogicalSteps.test.js.map +1 -0
  327. package/dist/planTransition.d.ts +88 -0
  328. package/dist/planTransition.d.ts.map +1 -0
  329. package/dist/planTransition.js +490 -0
  330. package/dist/planTransition.js.map +1 -0
  331. package/dist/planTransition.test.d.ts +2 -0
  332. package/dist/planTransition.test.d.ts.map +1 -0
  333. package/dist/planTransition.test.js +956 -0
  334. package/dist/planTransition.test.js.map +1 -0
  335. package/dist/planTransitionConstants.d.ts +3 -0
  336. package/dist/planTransitionConstants.d.ts.map +1 -0
  337. package/dist/planTransitionConstants.js +3 -0
  338. package/dist/planTransitionConstants.js.map +1 -0
  339. package/dist/planTransitionPathHarvest.d.ts +24 -0
  340. package/dist/planTransitionPathHarvest.d.ts.map +1 -0
  341. package/dist/planTransitionPathHarvest.js +273 -0
  342. package/dist/planTransitionPathHarvest.js.map +1 -0
  343. package/dist/planTransitionPathHarvest.test.d.ts +2 -0
  344. package/dist/planTransitionPathHarvest.test.d.ts.map +1 -0
  345. package/dist/planTransitionPathHarvest.test.js +232 -0
  346. package/dist/planTransitionPathHarvest.test.js.map +1 -0
  347. package/dist/prepareWorkflowEvents.d.ts +6 -0
  348. package/dist/prepareWorkflowEvents.d.ts.map +1 -0
  349. package/dist/prepareWorkflowEvents.js +8 -0
  350. package/dist/prepareWorkflowEvents.js.map +1 -0
  351. package/dist/publicDistribution.generated.d.ts +3 -0
  352. package/dist/publicDistribution.generated.d.ts.map +1 -0
  353. package/dist/publicDistribution.generated.js +9 -0
  354. package/dist/publicDistribution.generated.js.map +1 -0
  355. package/dist/quickVerify/atomicWrite.d.ts +6 -0
  356. package/dist/quickVerify/atomicWrite.d.ts.map +1 -0
  357. package/dist/quickVerify/atomicWrite.js +33 -0
  358. package/dist/quickVerify/atomicWrite.js.map +1 -0
  359. package/dist/quickVerify/buildQuickContractEventsNdjson.d.ts +14 -0
  360. package/dist/quickVerify/buildQuickContractEventsNdjson.d.ts.map +1 -0
  361. package/dist/quickVerify/buildQuickContractEventsNdjson.js +28 -0
  362. package/dist/quickVerify/buildQuickContractEventsNdjson.js.map +1 -0
  363. package/dist/quickVerify/canonicalJson.d.ts +5 -0
  364. package/dist/quickVerify/canonicalJson.d.ts.map +1 -0
  365. package/dist/quickVerify/canonicalJson.js +23 -0
  366. package/dist/quickVerify/canonicalJson.js.map +1 -0
  367. package/dist/quickVerify/decomposeUnits.d.ts +15 -0
  368. package/dist/quickVerify/decomposeUnits.d.ts.map +1 -0
  369. package/dist/quickVerify/decomposeUnits.js +50 -0
  370. package/dist/quickVerify/decomposeUnits.js.map +1 -0
  371. package/dist/quickVerify/exportTool.d.ts +6 -0
  372. package/dist/quickVerify/exportTool.d.ts.map +1 -0
  373. package/dist/quickVerify/exportTool.js +20 -0
  374. package/dist/quickVerify/exportTool.js.map +1 -0
  375. package/dist/quickVerify/forbiddenMutatingSql.d.ts +4 -0
  376. package/dist/quickVerify/forbiddenMutatingSql.d.ts.map +1 -0
  377. package/dist/quickVerify/forbiddenMutatingSql.js +6 -0
  378. package/dist/quickVerify/forbiddenMutatingSql.js.map +1 -0
  379. package/dist/quickVerify/formatQuickVerifyHumanReport.d.ts +17 -0
  380. package/dist/quickVerify/formatQuickVerifyHumanReport.d.ts.map +1 -0
  381. package/dist/quickVerify/formatQuickVerifyHumanReport.js +65 -0
  382. package/dist/quickVerify/formatQuickVerifyHumanReport.js.map +1 -0
  383. package/dist/quickVerify/formatQuickVerifyHumanReport.test.d.ts +2 -0
  384. package/dist/quickVerify/formatQuickVerifyHumanReport.test.d.ts.map +1 -0
  385. package/dist/quickVerify/formatQuickVerifyHumanReport.test.js +41 -0
  386. package/dist/quickVerify/formatQuickVerifyHumanReport.test.js.map +1 -0
  387. package/dist/quickVerify/ingest.d.ts +34 -0
  388. package/dist/quickVerify/ingest.d.ts.map +1 -0
  389. package/dist/quickVerify/ingest.js +327 -0
  390. package/dist/quickVerify/ingest.js.map +1 -0
  391. package/dist/quickVerify/noMutatingSqlInSources.test.d.ts +2 -0
  392. package/dist/quickVerify/noMutatingSqlInSources.test.d.ts.map +1 -0
  393. package/dist/quickVerify/noMutatingSqlInSources.test.js +34 -0
  394. package/dist/quickVerify/noMutatingSqlInSources.test.js.map +1 -0
  395. package/dist/quickVerify/postgresCatalog.d.ts +19 -0
  396. package/dist/quickVerify/postgresCatalog.d.ts.map +1 -0
  397. package/dist/quickVerify/postgresCatalog.js +107 -0
  398. package/dist/quickVerify/postgresCatalog.js.map +1 -0
  399. package/dist/quickVerify/quickVerifyHumanCopy.d.ts +9 -0
  400. package/dist/quickVerify/quickVerifyHumanCopy.d.ts.map +1 -0
  401. package/dist/quickVerify/quickVerifyHumanCopy.js +24 -0
  402. package/dist/quickVerify/quickVerifyHumanCopy.js.map +1 -0
  403. package/dist/quickVerify/quickVerifyProductTruth.d.ts +16 -0
  404. package/dist/quickVerify/quickVerifyProductTruth.d.ts.map +1 -0
  405. package/dist/quickVerify/quickVerifyProductTruth.js +19 -0
  406. package/dist/quickVerify/quickVerifyProductTruth.js.map +1 -0
  407. package/dist/quickVerify/quickVerifyScope.d.ts +12 -0
  408. package/dist/quickVerify/quickVerifyScope.d.ts.map +1 -0
  409. package/dist/quickVerify/quickVerifyScope.js +16 -0
  410. package/dist/quickVerify/quickVerifyScope.js.map +1 -0
  411. package/dist/quickVerify/relationalPlan.d.ts +10 -0
  412. package/dist/quickVerify/relationalPlan.d.ts.map +1 -0
  413. package/dist/quickVerify/relationalPlan.js +37 -0
  414. package/dist/quickVerify/relationalPlan.js.map +1 -0
  415. package/dist/quickVerify/rowUnit.d.ts +15 -0
  416. package/dist/quickVerify/rowUnit.d.ts.map +1 -0
  417. package/dist/quickVerify/rowUnit.js +132 -0
  418. package/dist/quickVerify/rowUnit.js.map +1 -0
  419. package/dist/quickVerify/runQuickVerify.d.ts +65 -0
  420. package/dist/quickVerify/runQuickVerify.d.ts.map +1 -0
  421. package/dist/quickVerify/runQuickVerify.js +320 -0
  422. package/dist/quickVerify/runQuickVerify.js.map +1 -0
  423. package/dist/quickVerify/schemaCatalogTypes.d.ts +22 -0
  424. package/dist/quickVerify/schemaCatalogTypes.d.ts.map +1 -0
  425. package/dist/quickVerify/schemaCatalogTypes.js +2 -0
  426. package/dist/quickVerify/schemaCatalogTypes.js.map +1 -0
  427. package/dist/quickVerify/sqliteCatalog.d.ts +13 -0
  428. package/dist/quickVerify/sqliteCatalog.d.ts.map +1 -0
  429. package/dist/quickVerify/sqliteCatalog.js +48 -0
  430. package/dist/quickVerify/sqliteCatalog.js.map +1 -0
  431. package/dist/quickVerify/tableScoring.d.ts +24 -0
  432. package/dist/quickVerify/tableScoring.d.ts.map +1 -0
  433. package/dist/quickVerify/tableScoring.js +156 -0
  434. package/dist/quickVerify/tableScoring.js.map +1 -0
  435. package/dist/quickVerify/thresholds.d.ts +11 -0
  436. package/dist/quickVerify/thresholds.d.ts.map +1 -0
  437. package/dist/quickVerify/thresholds.js +11 -0
  438. package/dist/quickVerify/thresholds.js.map +1 -0
  439. package/dist/quickVerify/verifyExecution.d.ts +15 -0
  440. package/dist/quickVerify/verifyExecution.d.ts.map +1 -0
  441. package/dist/quickVerify/verifyExecution.js +153 -0
  442. package/dist/quickVerify/verifyExecution.js.map +1 -0
  443. package/dist/reconciler.d.ts +25 -0
  444. package/dist/reconciler.d.ts.map +1 -0
  445. package/dist/reconciler.js +266 -0
  446. package/dist/reconciler.js.map +1 -0
  447. package/dist/reconciliationPresentation.d.ts +83 -0
  448. package/dist/reconciliationPresentation.d.ts.map +1 -0
  449. package/dist/reconciliationPresentation.js +195 -0
  450. package/dist/reconciliationPresentation.js.map +1 -0
  451. package/dist/registryValidation.d.ts +48 -0
  452. package/dist/registryValidation.d.ts.map +1 -0
  453. package/dist/registryValidation.js +254 -0
  454. package/dist/registryValidation.js.map +1 -0
  455. package/dist/registryValidation.test.d.ts +2 -0
  456. package/dist/registryValidation.test.d.ts.map +1 -0
  457. package/dist/registryValidation.test.js +186 -0
  458. package/dist/registryValidation.test.js.map +1 -0
  459. package/dist/relationalInvariant.d.ts +28 -0
  460. package/dist/relationalInvariant.d.ts.map +1 -0
  461. package/dist/relationalInvariant.existsSql.test.d.ts +2 -0
  462. package/dist/relationalInvariant.existsSql.test.d.ts.map +1 -0
  463. package/dist/relationalInvariant.existsSql.test.js +12 -0
  464. package/dist/relationalInvariant.existsSql.test.js.map +1 -0
  465. package/dist/relationalInvariant.js +347 -0
  466. package/dist/relationalInvariant.js.map +1 -0
  467. package/dist/relationalInvariant.test.d.ts +2 -0
  468. package/dist/relationalInvariant.test.d.ts.map +1 -0
  469. package/dist/relationalInvariant.test.js +32 -0
  470. package/dist/relationalInvariant.test.js.map +1 -0
  471. package/dist/remediationConsumptionGuard.test.d.ts +2 -0
  472. package/dist/remediationConsumptionGuard.test.d.ts.map +1 -0
  473. package/dist/remediationConsumptionGuard.test.js +80 -0
  474. package/dist/remediationConsumptionGuard.test.js.map +1 -0
  475. package/dist/remediationWireSurfaceGuard.test.d.ts +2 -0
  476. package/dist/remediationWireSurfaceGuard.test.d.ts.map +1 -0
  477. package/dist/remediationWireSurfaceGuard.test.js +39 -0
  478. package/dist/remediationWireSurfaceGuard.test.js.map +1 -0
  479. package/dist/resolveExpectation.d.ts +28 -0
  480. package/dist/resolveExpectation.d.ts.map +1 -0
  481. package/dist/resolveExpectation.js +654 -0
  482. package/dist/resolveExpectation.js.map +1 -0
  483. package/dist/resolveExpectation.test.d.ts +2 -0
  484. package/dist/resolveExpectation.test.d.ts.map +1 -0
  485. package/dist/resolveExpectation.test.js +434 -0
  486. package/dist/resolveExpectation.test.js.map +1 -0
  487. package/dist/resolveFailureCodes.d.ts +2 -0
  488. package/dist/resolveFailureCodes.d.ts.map +1 -0
  489. package/dist/resolveFailureCodes.js +7 -0
  490. package/dist/resolveFailureCodes.js.map +1 -0
  491. package/dist/runComparison.d.ts +168 -0
  492. package/dist/runComparison.d.ts.map +1 -0
  493. package/dist/runComparison.js +675 -0
  494. package/dist/runComparison.js.map +1 -0
  495. package/dist/runComparison.test.d.ts +2 -0
  496. package/dist/runComparison.test.d.ts.map +1 -0
  497. package/dist/runComparison.test.js +507 -0
  498. package/dist/runComparison.test.js.map +1 -0
  499. package/dist/runLevelDriftMessages.d.ts +4 -0
  500. package/dist/runLevelDriftMessages.d.ts.map +1 -0
  501. package/dist/runLevelDriftMessages.js +4 -0
  502. package/dist/runLevelDriftMessages.js.map +1 -0
  503. package/dist/schema-validation.test.d.ts +2 -0
  504. package/dist/schema-validation.test.d.ts.map +1 -0
  505. package/dist/schema-validation.test.js +531 -0
  506. package/dist/schema-validation.test.js.map +1 -0
  507. package/dist/schemaLoad.d.ts +5 -0
  508. package/dist/schemaLoad.d.ts.map +1 -0
  509. package/dist/schemaLoad.js +152 -0
  510. package/dist/schemaLoad.js.map +1 -0
  511. package/dist/shareReport/postPublicVerificationReport.d.ts +26 -0
  512. package/dist/shareReport/postPublicVerificationReport.d.ts.map +1 -0
  513. package/dist/shareReport/postPublicVerificationReport.js +38 -0
  514. package/dist/shareReport/postPublicVerificationReport.js.map +1 -0
  515. package/dist/slice6.compare.ac.test.d.ts +2 -0
  516. package/dist/slice6.compare.ac.test.d.ts.map +1 -0
  517. package/dist/slice6.compare.ac.test.js +81 -0
  518. package/dist/slice6.compare.ac.test.js.map +1 -0
  519. package/dist/sqlConnector.d.ts +15 -0
  520. package/dist/sqlConnector.d.ts.map +1 -0
  521. package/dist/sqlConnector.js +36 -0
  522. package/dist/sqlConnector.js.map +1 -0
  523. package/dist/sqlReadBackend.d.ts +19 -0
  524. package/dist/sqlReadBackend.d.ts.map +1 -0
  525. package/dist/sqlReadBackend.js +67 -0
  526. package/dist/sqlReadBackend.js.map +1 -0
  527. package/dist/standardVerifyWorkflowCli.d.ts +24 -0
  528. package/dist/standardVerifyWorkflowCli.d.ts.map +1 -0
  529. package/dist/standardVerifyWorkflowCli.js +95 -0
  530. package/dist/standardVerifyWorkflowCli.js.map +1 -0
  531. package/dist/taxonomyAuthority.test.d.ts +2 -0
  532. package/dist/taxonomyAuthority.test.d.ts.map +1 -0
  533. package/dist/taxonomyAuthority.test.js +44 -0
  534. package/dist/taxonomyAuthority.test.js.map +1 -0
  535. package/dist/toolsRegistryLoad.d.ts +7 -0
  536. package/dist/toolsRegistryLoad.d.ts.map +1 -0
  537. package/dist/toolsRegistryLoad.js +32 -0
  538. package/dist/toolsRegistryLoad.js.map +1 -0
  539. package/dist/truthLayerError.d.ts +8 -0
  540. package/dist/truthLayerError.d.ts.map +1 -0
  541. package/dist/truthLayerError.js +9 -0
  542. package/dist/truthLayerError.js.map +1 -0
  543. package/dist/types.d.ts +706 -0
  544. package/dist/types.d.ts.map +1 -0
  545. package/dist/types.js +24 -0
  546. package/dist/types.js.map +1 -0
  547. package/dist/valueVerification.d.ts +12 -0
  548. package/dist/valueVerification.d.ts.map +1 -0
  549. package/dist/valueVerification.js +112 -0
  550. package/dist/valueVerification.js.map +1 -0
  551. package/dist/valueVerification.test.d.ts +2 -0
  552. package/dist/valueVerification.test.d.ts.map +1 -0
  553. package/dist/valueVerification.test.js +112 -0
  554. package/dist/valueVerification.test.js.map +1 -0
  555. package/dist/verificationAgainstSystemState.requirements.test.d.ts +2 -0
  556. package/dist/verificationAgainstSystemState.requirements.test.d.ts.map +1 -0
  557. package/dist/verificationAgainstSystemState.requirements.test.js +326 -0
  558. package/dist/verificationAgainstSystemState.requirements.test.js.map +1 -0
  559. package/dist/verificationDiagnostics.d.ts +21 -0
  560. package/dist/verificationDiagnostics.d.ts.map +1 -0
  561. package/dist/verificationDiagnostics.js +141 -0
  562. package/dist/verificationDiagnostics.js.map +1 -0
  563. package/dist/verificationDiagnostics.test.d.ts +2 -0
  564. package/dist/verificationDiagnostics.test.d.ts.map +1 -0
  565. package/dist/verificationDiagnostics.test.js +228 -0
  566. package/dist/verificationDiagnostics.test.js.map +1 -0
  567. package/dist/verificationPolicy.d.ts +33 -0
  568. package/dist/verificationPolicy.d.ts.map +1 -0
  569. package/dist/verificationPolicy.js +495 -0
  570. package/dist/verificationPolicy.js.map +1 -0
  571. package/dist/verificationPolicy.test.d.ts +2 -0
  572. package/dist/verificationPolicy.test.d.ts.map +1 -0
  573. package/dist/verificationPolicy.test.js +252 -0
  574. package/dist/verificationPolicy.test.js.map +1 -0
  575. package/dist/verificationRunContext.d.ts +10 -0
  576. package/dist/verificationRunContext.d.ts.map +1 -0
  577. package/dist/verificationRunContext.js +111 -0
  578. package/dist/verificationRunContext.js.map +1 -0
  579. package/dist/verificationUserPhrases.d.ts +22 -0
  580. package/dist/verificationUserPhrases.d.ts.map +1 -0
  581. package/dist/verificationUserPhrases.js +99 -0
  582. package/dist/verificationUserPhrases.js.map +1 -0
  583. package/dist/verificationUserPhrases.test.d.ts +2 -0
  584. package/dist/verificationUserPhrases.test.d.ts.map +1 -0
  585. package/dist/verificationUserPhrases.test.js +47 -0
  586. package/dist/verificationUserPhrases.test.js.map +1 -0
  587. package/dist/verifyRunBundleSignature.d.ts +14 -0
  588. package/dist/verifyRunBundleSignature.d.ts.map +1 -0
  589. package/dist/verifyRunBundleSignature.js +139 -0
  590. package/dist/verifyRunBundleSignature.js.map +1 -0
  591. package/dist/verifyRunBundleSignature.test.d.ts +2 -0
  592. package/dist/verifyRunBundleSignature.test.d.ts.map +1 -0
  593. package/dist/verifyRunBundleSignature.test.js +169 -0
  594. package/dist/verifyRunBundleSignature.test.js.map +1 -0
  595. package/dist/wireReasonCodes.d.ts +57 -0
  596. package/dist/wireReasonCodes.d.ts.map +1 -0
  597. package/dist/wireReasonCodes.js +57 -0
  598. package/dist/wireReasonCodes.js.map +1 -0
  599. package/dist/wireReasonEmittersGuard.test.d.ts +2 -0
  600. package/dist/wireReasonEmittersGuard.test.d.ts.map +1 -0
  601. package/dist/wireReasonEmittersGuard.test.js +36 -0
  602. package/dist/wireReasonEmittersGuard.test.js.map +1 -0
  603. package/dist/withWorkflowVerification.persistBundle.test.d.ts +2 -0
  604. package/dist/withWorkflowVerification.persistBundle.test.d.ts.map +1 -0
  605. package/dist/withWorkflowVerification.persistBundle.test.js +104 -0
  606. package/dist/withWorkflowVerification.persistBundle.test.js.map +1 -0
  607. package/dist/workflowResultNormalize.d.ts +9 -0
  608. package/dist/workflowResultNormalize.d.ts.map +1 -0
  609. package/dist/workflowResultNormalize.js +40 -0
  610. package/dist/workflowResultNormalize.js.map +1 -0
  611. package/dist/workflowResultSignature.d.ts +8 -0
  612. package/dist/workflowResultSignature.d.ts.map +1 -0
  613. package/dist/workflowResultSignature.js +44 -0
  614. package/dist/workflowResultSignature.js.map +1 -0
  615. package/dist/workflowRunLevelConsistency.d.ts +5 -0
  616. package/dist/workflowRunLevelConsistency.d.ts.map +1 -0
  617. package/dist/workflowRunLevelConsistency.js +30 -0
  618. package/dist/workflowRunLevelConsistency.js.map +1 -0
  619. package/dist/workflowTruthReport.d.ts +24 -0
  620. package/dist/workflowTruthReport.d.ts.map +1 -0
  621. package/dist/workflowTruthReport.js +395 -0
  622. package/dist/workflowTruthReport.js.map +1 -0
  623. package/dist/workflowTruthReport.semantics.test.d.ts +2 -0
  624. package/dist/workflowTruthReport.semantics.test.d.ts.map +1 -0
  625. package/dist/workflowTruthReport.semantics.test.js +182 -0
  626. package/dist/workflowTruthReport.semantics.test.js.map +1 -0
  627. package/dist/workflowVerdictSurface.test.d.ts +2 -0
  628. package/dist/workflowVerdictSurface.test.d.ts.map +1 -0
  629. package/dist/workflowVerdictSurface.test.js +68 -0
  630. package/dist/workflowVerdictSurface.test.js.map +1 -0
  631. package/dist/writeRunBundleCli.d.ts +9 -0
  632. package/dist/writeRunBundleCli.d.ts.map +1 -0
  633. package/dist/writeRunBundleCli.js +28 -0
  634. package/dist/writeRunBundleCli.js.map +1 -0
  635. package/package.json +115 -0
  636. package/schemas/agent-run-record-v1.schema.json +51 -0
  637. package/schemas/agent-run-record-v2.schema.json +61 -0
  638. package/schemas/assurance-manifest-v1.schema.json +28 -0
  639. package/schemas/assurance-run-report-v1.schema.json +28 -0
  640. package/schemas/ci-lock-v1.schema.json +163 -0
  641. package/schemas/cli-error-envelope.schema.json +48 -0
  642. package/schemas/event.schema.json +111 -0
  643. package/schemas/execution-trace-view.schema.json +122 -0
  644. package/schemas/openapi-commercial-v1.in.yaml +215 -0
  645. package/schemas/openapi-commercial-v1.yaml +215 -0
  646. package/schemas/plan-validation-core.schema.json +95 -0
  647. package/schemas/public-verification-report-v1.schema.json +51 -0
  648. package/schemas/quick-verify-report.schema.json +251 -0
  649. package/schemas/registry-validation-result.schema.json +99 -0
  650. package/schemas/run-comparison-report.schema.json +513 -0
  651. package/schemas/tools-registry-export.schema.json +9 -0
  652. package/schemas/tools-registry.schema.json +284 -0
  653. package/schemas/workflow-engine-result.schema.json +591 -0
  654. package/schemas/workflow-result-compare-input.schema.json +15 -0
  655. package/schemas/workflow-result-signature.schema.json +20 -0
  656. package/schemas/workflow-result-v9.schema.json +85 -0
  657. package/schemas/workflow-result.schema.json +80 -0
  658. package/schemas/workflow-truth-report.schema.json +761 -0
  659. package/scripts/discovery-acquisition.lib.cjs +195 -0
  660. package/scripts/discovery-payload.lib.cjs +346 -0
  661. package/scripts/render-discovery-ci.mjs +103 -0
@@ -0,0 +1,252 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { CLI_OPERATIONAL_CODES } from "./failureCatalog.js";
3
+ import { TruthLayerError } from "./truthLayerError.js";
4
+ import { assertValidVerificationPolicy, DEFAULT_VERIFICATION_POLICY, executeVerificationWithPolicyAsync, executeVerificationWithPolicySync, normalizeVerificationPolicy, resolveVerificationPolicyInput, } from "./verificationPolicy.js";
5
+ const baseReq = {
6
+ kind: "sql_row",
7
+ table: "t",
8
+ identityEq: [{ column: "id", value: "1" }],
9
+ requiredFields: {},
10
+ };
11
+ const unusedRelationalOk = async () => ({
12
+ status: "verified",
13
+ reasons: [],
14
+ evidenceSummary: {},
15
+ });
16
+ const unusedReconcileRowAbsent = async () => ({
17
+ status: "verified",
18
+ reasons: [],
19
+ evidenceSummary: {},
20
+ });
21
+ describe("verificationPolicy", () => {
22
+ it("normalizeVerificationPolicy forces zeros for strong", () => {
23
+ expect(normalizeVerificationPolicy({
24
+ consistencyMode: "strong",
25
+ verificationWindowMs: 99,
26
+ pollIntervalMs: 5,
27
+ })).toEqual({
28
+ consistencyMode: "strong",
29
+ verificationWindowMs: 0,
30
+ pollIntervalMs: 0,
31
+ });
32
+ });
33
+ it("assertValidVerificationPolicy rejects eventual with invalid numbers", () => {
34
+ expect(() => assertValidVerificationPolicy({
35
+ consistencyMode: "eventual",
36
+ verificationWindowMs: 0,
37
+ pollIntervalMs: 1,
38
+ })).toThrow(TruthLayerError);
39
+ expect(() => assertValidVerificationPolicy({
40
+ consistencyMode: "eventual",
41
+ verificationWindowMs: 1,
42
+ pollIntervalMs: 0,
43
+ })).toThrow(TruthLayerError);
44
+ expect(() => assertValidVerificationPolicy({
45
+ consistencyMode: "eventual",
46
+ verificationWindowMs: 10,
47
+ pollIntervalMs: 20,
48
+ })).toThrow(TruthLayerError);
49
+ expect(() => assertValidVerificationPolicy({
50
+ consistencyMode: "eventual",
51
+ verificationWindowMs: 10.5,
52
+ pollIntervalMs: 5,
53
+ })).toThrow(TruthLayerError);
54
+ });
55
+ it("resolveVerificationPolicyInput accepts DEFAULT", () => {
56
+ expect(resolveVerificationPolicyInput(undefined)).toEqual(DEFAULT_VERIFICATION_POLICY);
57
+ });
58
+ it("executeVerificationWithPolicyAsync strong sql_row calls reconcile once", async () => {
59
+ let calls = 0;
60
+ const ctx = {
61
+ reconcileRow: async () => {
62
+ calls++;
63
+ return {
64
+ status: "verified",
65
+ reasons: [],
66
+ evidenceSummary: { rowCount: 1 },
67
+ };
68
+ },
69
+ reconcileRowAbsent: unusedReconcileRowAbsent,
70
+ reconcileRelationalCheck: unusedRelationalOk,
71
+ };
72
+ const out = await executeVerificationWithPolicyAsync({ ok: true, verificationKind: "sql_row", request: baseReq }, DEFAULT_VERIFICATION_POLICY, ctx);
73
+ expect(calls).toBe(1);
74
+ expect(out.status).toBe("verified");
75
+ });
76
+ it("eventual sql_row: missing then verified after one sleep", async () => {
77
+ let calls = 0;
78
+ let t = 0;
79
+ const policy = {
80
+ consistencyMode: "eventual",
81
+ verificationWindowMs: 100,
82
+ pollIntervalMs: 40,
83
+ };
84
+ const ctx = {
85
+ reconcileRow: async () => {
86
+ calls++;
87
+ if (calls === 1) {
88
+ return {
89
+ status: "missing",
90
+ reasons: [{ code: "ROW_ABSENT", message: "No row matched key" }],
91
+ evidenceSummary: { rowCount: 0 },
92
+ };
93
+ }
94
+ return {
95
+ status: "verified",
96
+ reasons: [],
97
+ evidenceSummary: { rowCount: 1 },
98
+ };
99
+ },
100
+ reconcileRowAbsent: unusedReconcileRowAbsent,
101
+ reconcileRelationalCheck: unusedRelationalOk,
102
+ };
103
+ const timing = {
104
+ now: () => t,
105
+ sleep: async (ms) => {
106
+ t += ms;
107
+ },
108
+ };
109
+ const out = await executeVerificationWithPolicyAsync({ ok: true, verificationKind: "sql_row", request: baseReq }, policy, ctx, timing);
110
+ expect(calls).toBe(2);
111
+ expect(out.status).toBe("verified");
112
+ });
113
+ it("eventual sql_row: always missing until window yields uncertain with evidence", async () => {
114
+ let calls = 0;
115
+ let t = 0;
116
+ const policy = {
117
+ consistencyMode: "eventual",
118
+ verificationWindowMs: 100,
119
+ pollIntervalMs: 50,
120
+ };
121
+ const ctx = {
122
+ reconcileRow: async () => {
123
+ calls++;
124
+ return {
125
+ status: "missing",
126
+ reasons: [{ code: "ROW_ABSENT", message: "No row matched key" }],
127
+ evidenceSummary: { rowCount: 0 },
128
+ };
129
+ },
130
+ reconcileRowAbsent: unusedReconcileRowAbsent,
131
+ reconcileRelationalCheck: unusedRelationalOk,
132
+ };
133
+ const timing = {
134
+ now: () => t,
135
+ sleep: async (ms) => {
136
+ t += ms;
137
+ },
138
+ };
139
+ const out = await executeVerificationWithPolicyAsync({ ok: true, verificationKind: "sql_row", request: baseReq }, policy, ctx, timing);
140
+ expect(out.status).toBe("uncertain");
141
+ expect(out.reasons[0]?.code).toBe("ROW_NOT_OBSERVED_WITHIN_WINDOW");
142
+ expect(out.evidenceSummary.attempts).toBe(3);
143
+ expect(out.evidenceSummary.verificationWindowMs).toBe(100);
144
+ expect(out.evidenceSummary.pollIntervalMs).toBe(50);
145
+ });
146
+ it("eventual sql_row: inconsistent on first tick does not poll again", async () => {
147
+ let calls = 0;
148
+ const policy = {
149
+ consistencyMode: "eventual",
150
+ verificationWindowMs: 500,
151
+ pollIntervalMs: 50,
152
+ };
153
+ const ctx = {
154
+ reconcileRow: async () => {
155
+ calls++;
156
+ return {
157
+ status: "inconsistent",
158
+ reasons: [{ code: "VALUE_MISMATCH", message: "m" }],
159
+ evidenceSummary: {},
160
+ };
161
+ },
162
+ reconcileRowAbsent: unusedReconcileRowAbsent,
163
+ reconcileRelationalCheck: unusedRelationalOk,
164
+ };
165
+ const timing = {
166
+ now: () => 0,
167
+ sleep: async () => {
168
+ throw new Error("sleep should not be called");
169
+ },
170
+ };
171
+ const out = await executeVerificationWithPolicyAsync({ ok: true, verificationKind: "sql_row", request: baseReq }, policy, ctx, timing);
172
+ expect(calls).toBe(1);
173
+ expect(out.status).toBe("inconsistent");
174
+ });
175
+ it("eventual sql_row: incomplete_verification stops immediately", async () => {
176
+ let calls = 0;
177
+ const policy = {
178
+ consistencyMode: "eventual",
179
+ verificationWindowMs: 500,
180
+ pollIntervalMs: 50,
181
+ };
182
+ const ctx = {
183
+ reconcileRow: async () => {
184
+ calls++;
185
+ return {
186
+ status: "incomplete_verification",
187
+ reasons: [{ code: "CONNECTOR_ERROR", message: "x" }],
188
+ evidenceSummary: {},
189
+ };
190
+ },
191
+ reconcileRowAbsent: unusedReconcileRowAbsent,
192
+ reconcileRelationalCheck: unusedRelationalOk,
193
+ };
194
+ const out = await executeVerificationWithPolicyAsync({ ok: true, verificationKind: "sql_row", request: baseReq }, policy, ctx);
195
+ expect(calls).toBe(1);
196
+ expect(out.status).toBe("incomplete_verification");
197
+ });
198
+ it("eventual sql_effects: all missing until window yields MULTI_EFFECT_UNCERTAIN_WITHIN_WINDOW", async () => {
199
+ const effects = [
200
+ { id: "a", request: { ...baseReq, identityEq: [{ column: "id", value: "a" }] } },
201
+ { id: "b", request: { ...baseReq, identityEq: [{ column: "id", value: "b" }] } },
202
+ ];
203
+ let calls = 0;
204
+ let t = 0;
205
+ const policy = {
206
+ consistencyMode: "eventual",
207
+ verificationWindowMs: 80,
208
+ pollIntervalMs: 40,
209
+ };
210
+ const ctx = {
211
+ reconcileRow: async () => {
212
+ calls++;
213
+ return {
214
+ status: "missing",
215
+ reasons: [{ code: "ROW_ABSENT", message: "No row matched key" }],
216
+ evidenceSummary: { rowCount: 0 },
217
+ };
218
+ },
219
+ reconcileRowAbsent: unusedReconcileRowAbsent,
220
+ reconcileRelationalCheck: unusedRelationalOk,
221
+ };
222
+ const timing = {
223
+ now: () => t,
224
+ sleep: async (ms) => {
225
+ t += ms;
226
+ },
227
+ };
228
+ const out = await executeVerificationWithPolicyAsync({ ok: true, verificationKind: "sql_effects", effects }, policy, ctx, timing);
229
+ expect(out.status).toBe("uncertain");
230
+ expect(out.reasons[0]?.code).toBe("MULTI_EFFECT_UNCERTAIN_WITHIN_WINDOW");
231
+ expect(out.evidenceSummary.effectCount).toBe(2);
232
+ expect(Array.isArray(out.evidenceSummary.effects)).toBe(true);
233
+ });
234
+ it("executeVerificationWithPolicySync rejects eventual mode", () => {
235
+ expect(() => executeVerificationWithPolicySync(null, { ok: true, verificationKind: "sql_row", request: baseReq }, { consistencyMode: "eventual", verificationWindowMs: 10, pollIntervalMs: 5 })).toThrow(TruthLayerError);
236
+ });
237
+ it("resolveVerificationPolicyInput throws VERIFICATION_POLICY_INVALID for bad eventual policy", () => {
238
+ try {
239
+ resolveVerificationPolicyInput({
240
+ consistencyMode: "eventual",
241
+ verificationWindowMs: 5,
242
+ pollIntervalMs: 10,
243
+ });
244
+ expect.fail("expected throw");
245
+ }
246
+ catch (e) {
247
+ expect(e).toBeInstanceOf(TruthLayerError);
248
+ expect(e.code).toBe(CLI_OPERATIONAL_CODES.VERIFICATION_POLICY_INVALID);
249
+ }
250
+ });
251
+ });
252
+ //# sourceMappingURL=verificationPolicy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verificationPolicy.test.js","sourceRoot":"","sources":["../src/verificationPolicy.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { RunEvent, VerificationRunContext } from "./types.js";
2
+ /** Fill missing fields (for tests and manual partials). */
3
+ export declare function mergeVerificationRunContext(partial: Partial<VerificationRunContext> & Pick<VerificationRunContext, "maxWireSchemaVersion">): VerificationRunContext;
4
+ /** Canonical empty digest for v1-only / legacy inputs. */
5
+ export declare function createEmptyVerificationRunContext(): VerificationRunContext;
6
+ /**
7
+ * Deterministic digest of run events for one workflow (capture order = array index).
8
+ */
9
+ export declare function buildVerificationRunContext(runEvents: RunEvent[]): VerificationRunContext;
10
+ //# sourceMappingURL=verificationRunContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verificationRunContext.d.ts","sourceRoot":"","sources":["../src/verificationRunContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAqB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMtF,2DAA2D;AAC3D,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACtC,IAAI,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,GACrD,sBAAsB,CAExB;AAED,0DAA0D;AAC1D,wBAAgB,iCAAiC,IAAI,sBAAsB,CAY1E;AAkBD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAsEzF"}
@@ -0,0 +1,111 @@
1
+ function isToolObserved(ev) {
2
+ return ev.type === "tool_observed";
3
+ }
4
+ /** Fill missing fields (for tests and manual partials). */
5
+ export function mergeVerificationRunContext(partial) {
6
+ return { ...createEmptyVerificationRunContext(), ...partial };
7
+ }
8
+ /** Canonical empty digest for v1-only / legacy inputs. */
9
+ export function createEmptyVerificationRunContext() {
10
+ return {
11
+ maxWireSchemaVersion: 1,
12
+ retrievalEvents: [],
13
+ controlEvents: [],
14
+ modelTurnEvents: [],
15
+ toolSkippedEvents: [],
16
+ toolObservedIngestIndexBySeq: {},
17
+ firstToolObservedIngestIndex: null,
18
+ hasRunCompletedControl: false,
19
+ lastRunEvent: null,
20
+ };
21
+ }
22
+ function lastEventSummary(runEvents) {
23
+ if (runEvents.length === 0)
24
+ return null;
25
+ const last = runEvents[runEvents.length - 1];
26
+ const ingestIndex = runEvents.length - 1;
27
+ if (last.type === "model_turn" && last.schemaVersion === 2) {
28
+ return {
29
+ ingestIndex,
30
+ type: last.type,
31
+ modelTurnStatus: last.status,
32
+ };
33
+ }
34
+ return { ingestIndex, type: last.type };
35
+ }
36
+ /**
37
+ * Deterministic digest of run events for one workflow (capture order = array index).
38
+ */
39
+ export function buildVerificationRunContext(runEvents) {
40
+ let maxWire = 1;
41
+ const retrievalEvents = [];
42
+ const controlEvents = [];
43
+ const modelTurnEvents = [];
44
+ const toolSkippedEvents = [];
45
+ const toolObservedIngestIndexBySeq = {};
46
+ let firstToolObservedIngestIndex = null;
47
+ let hasRunCompletedControl = false;
48
+ for (let ingestIndex = 0; ingestIndex < runEvents.length; ingestIndex++) {
49
+ const ev = runEvents[ingestIndex];
50
+ const sv = ev.schemaVersion;
51
+ if (sv === 2) {
52
+ maxWire = 2;
53
+ }
54
+ if (ev.type === "retrieval" && ev.schemaVersion === 2) {
55
+ const row = {
56
+ ingestIndex,
57
+ runEventId: ev.runEventId,
58
+ source: ev.source,
59
+ status: ev.status,
60
+ };
61
+ if (ev.hitCount !== undefined) {
62
+ row.hitCount = ev.hitCount;
63
+ }
64
+ retrievalEvents.push(row);
65
+ }
66
+ else if (ev.type === "control" && ev.schemaVersion === 2) {
67
+ if (ev.controlKind === "run_completed") {
68
+ hasRunCompletedControl = true;
69
+ }
70
+ controlEvents.push({
71
+ ingestIndex,
72
+ runEventId: ev.runEventId,
73
+ controlKind: ev.controlKind,
74
+ ...(ev.decision !== undefined ? { decision: ev.decision } : {}),
75
+ ...(ev.label !== undefined ? { label: ev.label } : {}),
76
+ });
77
+ }
78
+ else if (ev.type === "model_turn" && ev.schemaVersion === 2) {
79
+ modelTurnEvents.push({
80
+ ingestIndex,
81
+ runEventId: ev.runEventId,
82
+ status: ev.status,
83
+ });
84
+ }
85
+ else if (ev.type === "tool_skipped" && ev.schemaVersion === 2) {
86
+ toolSkippedEvents.push({
87
+ ingestIndex,
88
+ toolId: ev.toolId,
89
+ reason: ev.reason,
90
+ });
91
+ }
92
+ else if (isToolObserved(ev)) {
93
+ toolObservedIngestIndexBySeq[String(ev.seq)] = ingestIndex;
94
+ if (firstToolObservedIngestIndex === null || ingestIndex < firstToolObservedIngestIndex) {
95
+ firstToolObservedIngestIndex = ingestIndex;
96
+ }
97
+ }
98
+ }
99
+ return {
100
+ maxWireSchemaVersion: maxWire,
101
+ retrievalEvents,
102
+ controlEvents,
103
+ modelTurnEvents,
104
+ toolSkippedEvents,
105
+ toolObservedIngestIndexBySeq,
106
+ firstToolObservedIngestIndex,
107
+ hasRunCompletedControl,
108
+ lastRunEvent: lastEventSummary(runEvents),
109
+ };
110
+ }
111
+ //# sourceMappingURL=verificationRunContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verificationRunContext.js","sourceRoot":"","sources":["../src/verificationRunContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * User-facing phrases for stable machine reason codes (Quick human output + workflow truth report user_meaning).
3
+ * Ingest banner strings remain in quickVerifyHumanCopy.ts per normative Appendix H.
4
+ */
5
+ import { REGISTRY_RESOLVER_CODE, SQL_VERIFICATION_OUTCOME_CODE } from "./wireReasonCodes.js";
6
+ /** Reconciler / SQL outcome codes — user-oriented wording. */
7
+ export declare const SQL_VERIFICATION_PHRASES: Record<(typeof SQL_VERIFICATION_OUTCOME_CODE)[keyof typeof SQL_VERIFICATION_OUTCOME_CODE], string>;
8
+ /** Registry resolver failures — short explanations for operators. */
9
+ export declare const REGISTRY_RESOLVER_PHRASES: Record<(typeof REGISTRY_RESOLVER_CODE)[keyof typeof REGISTRY_RESOLVER_CODE], string>;
10
+ /** Ingest / quick misc (not SQL or registry resolver). */
11
+ export declare const INGEST_AND_QUICK_MISC_PHRASES: {
12
+ readonly INGEST_NO_ACTIONS: "No tool calls detected in input. This tool only ingests structured tool activity (JSON with tool names and parameters)—not arbitrary logs.";
13
+ readonly INGEST_NO_STRUCTURED_TOOL_ACTIVITY: "No structured tool activity was found. Input must be JSON/NDJSON describing tool calls and parameters that match the ingest model (see docs)—not generic log lines.";
14
+ readonly INGEST_INPUT_TOO_LARGE: "Input exceeded the maximum allowed size.";
15
+ readonly INGEST_ACTION_CAP: "Action limit reached; extra tool calls were ignored.";
16
+ readonly MALFORMED_LINE: "One or more lines could not be parsed as JSON.";
17
+ };
18
+ /** Run-context codes referenced by `failureAnalysis` P1–P3 (failure explanation divergence lines). */
19
+ export declare const RUN_CONTEXT_FAILURE_PHRASES: Record<string, string>;
20
+ export declare function userPhraseForReasonCode(code: string): string;
21
+ export declare function isFallbackUserPhrase(phrase: string): boolean;
22
+ //# sourceMappingURL=verificationUserPhrases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verificationUserPhrases.d.ts","sourceRoot":"","sources":["../src/verificationUserPhrases.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAI9B,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAC3C,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,EAClF,MAAM,CAsBP,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,EACpE,MAAM,CAsBP,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,6BAA6B;;;;;;CAQhC,CAAC;AAEX,sGAAsG;AACtG,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS9D,CAAC;AAYF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiB5D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5D"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * User-facing phrases for stable machine reason codes (Quick human output + workflow truth report user_meaning).
3
+ * Ingest banner strings remain in quickVerifyHumanCopy.ts per normative Appendix H.
4
+ */
5
+ import { EVENT_SEQUENCE_MESSAGES, RUN_LEVEL_MESSAGES } from "./failureCatalog.js";
6
+ const TIMESTAMP_NOT_MONOTONIC_CODE = "TIMESTAMP_NOT_MONOTONIC_WITH_SEQ_SORT_ORDER";
7
+ /** Reconciler / SQL outcome codes — user-oriented wording. */
8
+ export const SQL_VERIFICATION_PHRASES = {
9
+ ROW_ABSENT: "Success was implied, but no matching row was found in the database.",
10
+ DUPLICATE_ROWS: "Duplicate or conflicting rows matched the same key.",
11
+ ROW_SHAPE_MISMATCH: "The row’s shape or columns did not match what verification expected.",
12
+ UNREADABLE_VALUE: "A stored value could not be read or compared reliably.",
13
+ VALUE_MISMATCH: "Wrong value in the database for a required field.",
14
+ CONNECTOR_ERROR: "Database query failed during verification.",
15
+ MULTI_EFFECT_INCOMPLETE: "Not all intended effects for this step could be verified.",
16
+ MULTI_EFFECT_ALL_FAILED: "All intended effects for this step failed verification.",
17
+ MULTI_EFFECT_PARTIAL: "Some intended effects matched; others did not.",
18
+ ROW_NOT_OBSERVED_WITHIN_WINDOW: "The expected row did not show up within the verification window.",
19
+ MULTI_EFFECT_UNCERTAIN_WITHIN_WINDOW: "Effects could not be fully confirmed within the verification window.",
20
+ UNKNOWN_TOOL: "The tool is not defined in the registry (or could not be resolved).",
21
+ RETRY_OBSERVATIONS_DIVERGE: "Multiple observations for this sequence do not agree.",
22
+ RELATED_ROWS_ABSENT: "A related row required by the check is missing.",
23
+ RELATIONAL_EXPECTATION_MISMATCH: "A relational check did not match the database.",
24
+ RELATIONAL_SCALAR_UNUSABLE: "A relational scalar value could not be used for comparison.",
25
+ ROW_PRESENT_WHEN_FORBIDDEN: "A row is still present when verification expected it to be gone.",
26
+ ORPHAN_ROW_DETECTED: "An orphan or unexpected related row was detected.",
27
+ FORBIDDEN_ROWS_STILL_PRESENT_WITHIN_WINDOW: "Rows that should have been removed were still present within the verification window.",
28
+ };
29
+ /** Registry resolver failures — short explanations for operators. */
30
+ export const REGISTRY_RESOLVER_PHRASES = {
31
+ CONST_STRING_EMPTY: "Registry constant string is empty.",
32
+ STRING_SPEC_POINTER_MISSING: "Registry string spec is missing a JSON Pointer path.",
33
+ STRING_SPEC_TYPE: "Registry string spec has an invalid type.",
34
+ STRING_SPEC_EMPTY: "Registry string spec resolved to an empty value.",
35
+ KEY_VALUE_POINTER_MISSING: "Registry key/value spec is missing a pointer.",
36
+ KEY_VALUE_NOT_SCALAR: "Registry key/value pointer did not resolve to a scalar.",
37
+ KEY_VALUE_SPEC_INVALID: "Registry key/value spec is invalid.",
38
+ TABLE_POINTER_INVALID: "Registry table pointer is invalid.",
39
+ TABLE_SPEC_INVALID: "Registry table spec is invalid.",
40
+ INVALID_IDENTIFIER: "Registry contains an invalid SQL identifier.",
41
+ REQUIRED_FIELDS_POINTER_MISSING: "Registry required-fields pointer is missing.",
42
+ REQUIRED_FIELDS_NOT_OBJECT: "Registry required-fields did not resolve to an object.",
43
+ REQUIRED_FIELDS_VALUE_UNDEFINED: "A required field value is undefined in the registry.",
44
+ REQUIRED_FIELDS_VALUE_NOT_SCALAR: "A required field value is not a scalar.",
45
+ UNSUPPORTED_VERIFICATION_KIND: "This verification kind is not supported for the tool.",
46
+ DUPLICATE_EFFECT_ID: "Duplicate effect id in the registry.",
47
+ RELATIONAL_EXPECT_VALUE_INVALID: "Relational expectation value in the registry is invalid.",
48
+ RELATIONAL_SUM_COLUMN_REQUIRED: "Relational sum check requires a column in the registry.",
49
+ EQUALITY_DUPLICATE_COLUMN: "Duplicate column in an equality spec.",
50
+ FILTER_EQ_OVERLAPS_IDENTITY: "Filter equality overlaps identity columns.",
51
+ };
52
+ /** Ingest / quick misc (not SQL or registry resolver). */
53
+ export const INGEST_AND_QUICK_MISC_PHRASES = {
54
+ INGEST_NO_ACTIONS: "No tool calls detected in input. This tool only ingests structured tool activity (JSON with tool names and parameters)—not arbitrary logs.",
55
+ INGEST_NO_STRUCTURED_TOOL_ACTIVITY: "No structured tool activity was found. Input must be JSON/NDJSON describing tool calls and parameters that match the ingest model (see docs)—not generic log lines.",
56
+ INGEST_INPUT_TOO_LARGE: "Input exceeded the maximum allowed size.",
57
+ INGEST_ACTION_CAP: "Action limit reached; extra tool calls were ignored.",
58
+ MALFORMED_LINE: "One or more lines could not be parsed as JSON.",
59
+ };
60
+ /** Run-context codes referenced by `failureAnalysis` P1–P3 (failure explanation divergence lines). */
61
+ export const RUN_CONTEXT_FAILURE_PHRASES = {
62
+ RETRIEVAL_ERROR: "A retrieval step failed before the failing tool observation.",
63
+ MODEL_TURN_ERROR: "A model turn reported an error before the failing tool observation.",
64
+ MODEL_TURN_ABORTED: "A model turn was aborted before the failing tool observation.",
65
+ MODEL_TURN_INCOMPLETE: "A model turn was incomplete before the failing tool observation.",
66
+ CONTROL_INTERRUPT: "An interrupt control event occurred before the failing tool observation.",
67
+ CONTROL_BRANCH_SKIPPED: "A branch was skipped before the failing tool observation.",
68
+ CONTROL_GATE_SKIPPED: "A gate was skipped before the failing tool observation.",
69
+ TOOL_SKIPPED: "A tool was skipped before the failing tool observation.",
70
+ };
71
+ const RUN_AND_EVENT_PHRASES = {
72
+ ...RUN_LEVEL_MESSAGES,
73
+ ...EVENT_SEQUENCE_MESSAGES,
74
+ ...RUN_CONTEXT_FAILURE_PHRASES,
75
+ [TIMESTAMP_NOT_MONOTONIC_CODE]: "Timestamps decreased between steps in sequence order (ordering may be unreliable).",
76
+ };
77
+ const FALLBACK_PREFIX = "Verification issue (code ";
78
+ export function userPhraseForReasonCode(code) {
79
+ if (Object.prototype.hasOwnProperty.call(SQL_VERIFICATION_PHRASES, code)) {
80
+ return SQL_VERIFICATION_PHRASES[code];
81
+ }
82
+ if (Object.prototype.hasOwnProperty.call(REGISTRY_RESOLVER_PHRASES, code)) {
83
+ return REGISTRY_RESOLVER_PHRASES[code];
84
+ }
85
+ if (Object.prototype.hasOwnProperty.call(INGEST_AND_QUICK_MISC_PHRASES, code)) {
86
+ return INGEST_AND_QUICK_MISC_PHRASES[code];
87
+ }
88
+ if (Object.prototype.hasOwnProperty.call(RUN_AND_EVENT_PHRASES, code)) {
89
+ return RUN_AND_EVENT_PHRASES[code];
90
+ }
91
+ if (code.startsWith("MAPPING_")) {
92
+ return `Mapping: ${code.slice("MAPPING_".length).toLowerCase().replace(/_/g, " ")}.`;
93
+ }
94
+ return `${FALLBACK_PREFIX}${code}).`;
95
+ }
96
+ export function isFallbackUserPhrase(phrase) {
97
+ return phrase.startsWith(FALLBACK_PREFIX);
98
+ }
99
+ //# sourceMappingURL=verificationUserPhrases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verificationUserPhrases.js","sourceRoot":"","sources":["../src/verificationUserPhrases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=verificationUserPhrases.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verificationUserPhrases.test.d.ts","sourceRoot":"","sources":["../src/verificationUserPhrases.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { ACTION_INPUT_REASON_CODES, RECONCILER_STEP_REASON_CODES } from "./executionPathFindings.js";
3
+ import { EVENT_SEQUENCE_MESSAGES, RUN_LEVEL_MESSAGES } from "./failureCatalog.js";
4
+ import { INGEST_AND_QUICK_MISC_PHRASES, isFallbackUserPhrase, REGISTRY_RESOLVER_PHRASES, SQL_VERIFICATION_PHRASES, userPhraseForReasonCode, } from "./verificationUserPhrases.js";
5
+ import { REGISTRY_RESOLVER_CODE, SQL_VERIFICATION_OUTCOME_CODE } from "./wireReasonCodes.js";
6
+ describe("verificationUserPhrases", () => {
7
+ it("defines a phrase for every SQL_VERIFICATION_OUTCOME_CODE", () => {
8
+ for (const c of Object.values(SQL_VERIFICATION_OUTCOME_CODE)) {
9
+ expect(SQL_VERIFICATION_PHRASES[c].length).toBeGreaterThan(0);
10
+ expect(isFallbackUserPhrase(userPhraseForReasonCode(c))).toBe(false);
11
+ }
12
+ });
13
+ it("defines a phrase for every REGISTRY_RESOLVER_CODE", () => {
14
+ for (const c of Object.values(REGISTRY_RESOLVER_CODE)) {
15
+ expect(REGISTRY_RESOLVER_PHRASES[c].length).toBeGreaterThan(0);
16
+ expect(isFallbackUserPhrase(userPhraseForReasonCode(c))).toBe(false);
17
+ }
18
+ });
19
+ it("defines ingest/misc phrases", () => {
20
+ for (const c of Object.keys(INGEST_AND_QUICK_MISC_PHRASES)) {
21
+ expect(isFallbackUserPhrase(userPhraseForReasonCode(c))).toBe(false);
22
+ }
23
+ });
24
+ it("covers run-level and event-sequence codes used in truth report", () => {
25
+ for (const c of Object.keys(RUN_LEVEL_MESSAGES)) {
26
+ expect(isFallbackUserPhrase(userPhraseForReasonCode(c))).toBe(false);
27
+ }
28
+ for (const c of Object.keys(EVENT_SEQUENCE_MESSAGES)) {
29
+ expect(isFallbackUserPhrase(userPhraseForReasonCode(c))).toBe(false);
30
+ }
31
+ expect(isFallbackUserPhrase(userPhraseForReasonCode("TIMESTAMP_NOT_MONOTONIC_WITH_SEQ_SORT_ORDER"))).toBe(false);
32
+ });
33
+ it("reconciler and action-input step codes never use fallback", () => {
34
+ for (const c of RECONCILER_STEP_REASON_CODES) {
35
+ expect(isFallbackUserPhrase(userPhraseForReasonCode(c))).toBe(false);
36
+ }
37
+ for (const c of ACTION_INPUT_REASON_CODES) {
38
+ expect(isFallbackUserPhrase(userPhraseForReasonCode(c))).toBe(false);
39
+ }
40
+ });
41
+ it("MAPPING_* uses template without fallback", () => {
42
+ expect(userPhraseForReasonCode("MAPPING_LOW_CONFIDENCE")).toBe("Mapping: low confidence.");
43
+ expect(userPhraseForReasonCode("MAPPING_FAILED")).toBe("Mapping: failed.");
44
+ expect(isFallbackUserPhrase(userPhraseForReasonCode("MAPPING_FOO"))).toBe(false);
45
+ });
46
+ });
47
+ //# sourceMappingURL=verificationUserPhrases.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verificationUserPhrases.test.js","sourceRoot":"","sources":["../src/verificationUserPhrases.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type BundleSignatureCode } from "./bundleSignatureCodes.js";
2
+ export type RunBundleSignatureResult = {
3
+ ok: true;
4
+ } | {
5
+ ok: false;
6
+ code: BundleSignatureCode;
7
+ message: string;
8
+ };
9
+ /**
10
+ * Normative verify order (1–9): manifest parse + dispatch; events hash; wr hash; sig hash; sidecar parse+schema;
11
+ * signedContentSha256Hex vs manifest; PEM equality; crypto.verify.
12
+ */
13
+ export declare function verifyRunBundleSignature(runDir: string, ed25519PublicKeyPemPath: string): RunBundleSignatureResult;
14
+ //# sourceMappingURL=verifyRunBundleSignature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyRunBundleSignature.d.ts","sourceRoot":"","sources":["../src/verifyRunBundleSignature.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAWnC,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAS9D;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,MAAM,GAC9B,wBAAwB,CAgJ1B"}