vaspera 2.13.0 → 2.15.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 (300) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +15 -2
  3. package/dist/__tests__/antagonist-integration.test.d.ts +6 -0
  4. package/dist/__tests__/antagonist-integration.test.d.ts.map +1 -0
  5. package/dist/__tests__/antagonist-integration.test.js +239 -0
  6. package/dist/__tests__/antagonist-integration.test.js.map +1 -0
  7. package/dist/__tests__/certification/agent-certificate-e2e.test.d.ts +2 -0
  8. package/dist/__tests__/certification/agent-certificate-e2e.test.d.ts.map +1 -0
  9. package/dist/__tests__/certification/agent-certificate-e2e.test.js +90 -0
  10. package/dist/__tests__/certification/agent-certificate-e2e.test.js.map +1 -0
  11. package/dist/__tests__/certification/agent-certificate-map.test.d.ts +2 -0
  12. package/dist/__tests__/certification/agent-certificate-map.test.d.ts.map +1 -0
  13. package/dist/__tests__/certification/agent-certificate-map.test.js +107 -0
  14. package/dist/__tests__/certification/agent-certificate-map.test.js.map +1 -0
  15. package/dist/__tests__/certification/agent-certificate.test.d.ts +2 -0
  16. package/dist/__tests__/certification/agent-certificate.test.d.ts.map +1 -0
  17. package/dist/__tests__/certification/agent-certificate.test.js +78 -0
  18. package/dist/__tests__/certification/agent-certificate.test.js.map +1 -0
  19. package/dist/__tests__/certification/verify-endpoint.test.d.ts +2 -0
  20. package/dist/__tests__/certification/verify-endpoint.test.d.ts.map +1 -0
  21. package/dist/__tests__/certification/verify-endpoint.test.js +81 -0
  22. package/dist/__tests__/certification/verify-endpoint.test.js.map +1 -0
  23. package/dist/__tests__/compliance/ai-frameworks.test.d.ts +2 -0
  24. package/dist/__tests__/compliance/ai-frameworks.test.d.ts.map +1 -0
  25. package/dist/__tests__/compliance/ai-frameworks.test.js +87 -0
  26. package/dist/__tests__/compliance/ai-frameworks.test.js.map +1 -0
  27. package/dist/__tests__/eval/llm-analyzer.test.d.ts +2 -0
  28. package/dist/__tests__/eval/llm-analyzer.test.d.ts.map +1 -0
  29. package/dist/__tests__/eval/llm-analyzer.test.js +93 -0
  30. package/dist/__tests__/eval/llm-analyzer.test.js.map +1 -0
  31. package/dist/__tests__/eval/redteam-harness.test.d.ts +2 -0
  32. package/dist/__tests__/eval/redteam-harness.test.d.ts.map +1 -0
  33. package/dist/__tests__/eval/redteam-harness.test.js +136 -0
  34. package/dist/__tests__/eval/redteam-harness.test.js.map +1 -0
  35. package/dist/__tests__/evidence/evidence.test.d.ts +2 -0
  36. package/dist/__tests__/evidence/evidence.test.d.ts.map +1 -0
  37. package/dist/__tests__/evidence/evidence.test.js +240 -0
  38. package/dist/__tests__/evidence/evidence.test.js.map +1 -0
  39. package/dist/__tests__/history/decisions.test.d.ts +2 -0
  40. package/dist/__tests__/history/decisions.test.d.ts.map +1 -0
  41. package/dist/__tests__/history/decisions.test.js +54 -0
  42. package/dist/__tests__/history/decisions.test.js.map +1 -0
  43. package/dist/__tests__/http-auth.test.d.ts +2 -0
  44. package/dist/__tests__/http-auth.test.d.ts.map +1 -0
  45. package/dist/__tests__/http-auth.test.js +55 -0
  46. package/dist/__tests__/http-auth.test.js.map +1 -0
  47. package/dist/__tests__/http-policy.test.d.ts +2 -0
  48. package/dist/__tests__/http-policy.test.d.ts.map +1 -0
  49. package/dist/__tests__/http-policy.test.js +69 -0
  50. package/dist/__tests__/http-policy.test.js.map +1 -0
  51. package/dist/__tests__/http-server-transport.test.d.ts +2 -0
  52. package/dist/__tests__/http-server-transport.test.d.ts.map +1 -0
  53. package/dist/__tests__/http-server-transport.test.js +132 -0
  54. package/dist/__tests__/http-server-transport.test.js.map +1 -0
  55. package/dist/__tests__/integration/destructive-guards.test.d.ts +2 -0
  56. package/dist/__tests__/integration/destructive-guards.test.d.ts.map +1 -0
  57. package/dist/__tests__/integration/destructive-guards.test.js +49 -0
  58. package/dist/__tests__/integration/destructive-guards.test.js.map +1 -0
  59. package/dist/__tests__/logger-redaction.test.d.ts +2 -0
  60. package/dist/__tests__/logger-redaction.test.d.ts.map +1 -0
  61. package/dist/__tests__/logger-redaction.test.js +74 -0
  62. package/dist/__tests__/logger-redaction.test.js.map +1 -0
  63. package/dist/__tests__/manifest-schema.test.d.ts +2 -0
  64. package/dist/__tests__/manifest-schema.test.d.ts.map +1 -0
  65. package/dist/__tests__/manifest-schema.test.js +43 -0
  66. package/dist/__tests__/manifest-schema.test.js.map +1 -0
  67. package/dist/__tests__/scanners/builtin-rules.test.d.ts +2 -0
  68. package/dist/__tests__/scanners/builtin-rules.test.d.ts.map +1 -0
  69. package/dist/__tests__/scanners/builtin-rules.test.js +51 -0
  70. package/dist/__tests__/scanners/builtin-rules.test.js.map +1 -0
  71. package/dist/__tests__/scanners/runtime/golden-path-runner.test.js +13 -1
  72. package/dist/__tests__/scanners/runtime/golden-path-runner.test.js.map +1 -1
  73. package/dist/__tests__/tool-guard.test.d.ts +2 -0
  74. package/dist/__tests__/tool-guard.test.d.ts.map +1 -0
  75. package/dist/__tests__/tool-guard.test.js +97 -0
  76. package/dist/__tests__/tool-guard.test.js.map +1 -0
  77. package/dist/__tests__/util/contained-file.test.d.ts +2 -0
  78. package/dist/__tests__/util/contained-file.test.d.ts.map +1 -0
  79. package/dist/__tests__/util/contained-file.test.js +78 -0
  80. package/dist/__tests__/util/contained-file.test.js.map +1 -0
  81. package/dist/__tests__/util/subprocess.test.d.ts +2 -0
  82. package/dist/__tests__/util/subprocess.test.d.ts.map +1 -0
  83. package/dist/__tests__/util/subprocess.test.js +48 -0
  84. package/dist/__tests__/util/subprocess.test.js.map +1 -0
  85. package/dist/action/diff-mode.d.ts.map +1 -1
  86. package/dist/action/diff-mode.js +31 -12
  87. package/dist/action/diff-mode.js.map +1 -1
  88. package/dist/agents/antagonist/challenger.d.ts +46 -0
  89. package/dist/agents/antagonist/challenger.d.ts.map +1 -0
  90. package/dist/agents/antagonist/challenger.js +257 -0
  91. package/dist/agents/antagonist/challenger.js.map +1 -0
  92. package/dist/agents/antagonist/index.d.ts +31 -0
  93. package/dist/agents/antagonist/index.d.ts.map +1 -0
  94. package/dist/agents/antagonist/index.js +175 -0
  95. package/dist/agents/antagonist/index.js.map +1 -0
  96. package/dist/agents/antagonist/prioritizer.d.ts +27 -0
  97. package/dist/agents/antagonist/prioritizer.d.ts.map +1 -0
  98. package/dist/agents/antagonist/prioritizer.js +181 -0
  99. package/dist/agents/antagonist/prioritizer.js.map +1 -0
  100. package/dist/agents/antagonist/prompts.d.ts +12 -0
  101. package/dist/agents/antagonist/prompts.d.ts.map +1 -0
  102. package/dist/agents/antagonist/prompts.js +155 -0
  103. package/dist/agents/antagonist/prompts.js.map +1 -0
  104. package/dist/agents/antagonist/synthesizer.d.ts +34 -0
  105. package/dist/agents/antagonist/synthesizer.d.ts.map +1 -0
  106. package/dist/agents/antagonist/synthesizer.js +451 -0
  107. package/dist/agents/antagonist/synthesizer.js.map +1 -0
  108. package/dist/agents/antagonist/types.d.ts +145 -0
  109. package/dist/agents/antagonist/types.d.ts.map +1 -0
  110. package/dist/agents/antagonist/types.js +63 -0
  111. package/dist/agents/antagonist/types.js.map +1 -0
  112. package/dist/agents/index.d.ts +1 -0
  113. package/dist/agents/index.d.ts.map +1 -1
  114. package/dist/agents/index.js +2 -0
  115. package/dist/agents/index.js.map +1 -1
  116. package/dist/certification/agent-certificate-map.d.ts +51 -0
  117. package/dist/certification/agent-certificate-map.d.ts.map +1 -0
  118. package/dist/certification/agent-certificate-map.js +265 -0
  119. package/dist/certification/agent-certificate-map.js.map +1 -0
  120. package/dist/certification/agent-certificate-sample.d.ts +25 -0
  121. package/dist/certification/agent-certificate-sample.d.ts.map +1 -0
  122. package/dist/certification/agent-certificate-sample.js +207 -0
  123. package/dist/certification/agent-certificate-sample.js.map +1 -0
  124. package/dist/certification/agent-certificate.d.ts +1981 -0
  125. package/dist/certification/agent-certificate.d.ts.map +1 -0
  126. package/dist/certification/agent-certificate.js +309 -0
  127. package/dist/certification/agent-certificate.js.map +1 -0
  128. package/dist/certification/autofix.d.ts.map +1 -1
  129. package/dist/certification/autofix.js +5 -3
  130. package/dist/certification/autofix.js.map +1 -1
  131. package/dist/certification/consensus.test.js +2 -0
  132. package/dist/certification/consensus.test.js.map +1 -1
  133. package/dist/certification/store.d.ts.map +1 -1
  134. package/dist/certification/store.js +11 -3
  135. package/dist/certification/store.js.map +1 -1
  136. package/dist/certification/types.d.ts +1 -1
  137. package/dist/certification/types.d.ts.map +1 -1
  138. package/dist/certification/types.js +2 -0
  139. package/dist/certification/types.js.map +1 -1
  140. package/dist/certification/verify-endpoint.d.ts +48 -0
  141. package/dist/certification/verify-endpoint.d.ts.map +1 -0
  142. package/dist/certification/verify-endpoint.js +79 -0
  143. package/dist/certification/verify-endpoint.js.map +1 -0
  144. package/dist/compliance/index.d.ts +2 -0
  145. package/dist/compliance/index.d.ts.map +1 -1
  146. package/dist/compliance/index.js +4 -0
  147. package/dist/compliance/index.js.map +1 -1
  148. package/dist/compliance/iso42001.d.ts +21 -0
  149. package/dist/compliance/iso42001.d.ts.map +1 -0
  150. package/dist/compliance/iso42001.js +160 -0
  151. package/dist/compliance/iso42001.js.map +1 -0
  152. package/dist/compliance/mapper.d.ts.map +1 -1
  153. package/dist/compliance/mapper.js +12 -0
  154. package/dist/compliance/mapper.js.map +1 -1
  155. package/dist/compliance/nist-ai-rmf.d.ts +20 -0
  156. package/dist/compliance/nist-ai-rmf.d.ts.map +1 -0
  157. package/dist/compliance/nist-ai-rmf.js +140 -0
  158. package/dist/compliance/nist-ai-rmf.js.map +1 -0
  159. package/dist/config/flags.d.ts +4 -4
  160. package/dist/eval/fixtures.d.ts.map +1 -1
  161. package/dist/eval/fixtures.js +161 -119
  162. package/dist/eval/fixtures.js.map +1 -1
  163. package/dist/eval/fixtures.test.js +4 -2
  164. package/dist/eval/fixtures.test.js.map +1 -1
  165. package/dist/eval/llm-analyzer.d.ts +40 -0
  166. package/dist/eval/llm-analyzer.d.ts.map +1 -0
  167. package/dist/eval/llm-analyzer.js +154 -0
  168. package/dist/eval/llm-analyzer.js.map +1 -0
  169. package/dist/eval/redteam-harness.d.ts +95 -0
  170. package/dist/eval/redteam-harness.d.ts.map +1 -0
  171. package/dist/eval/redteam-harness.js +137 -0
  172. package/dist/eval/redteam-harness.js.map +1 -0
  173. package/dist/evidence/collector.d.ts.map +1 -1
  174. package/dist/evidence/collector.js +21 -1
  175. package/dist/evidence/collector.js.map +1 -1
  176. package/dist/evidence/store.d.ts.map +1 -1
  177. package/dist/evidence/store.js +29 -5
  178. package/dist/evidence/store.js.map +1 -1
  179. package/dist/evidence/types.d.ts +16 -9
  180. package/dist/evidence/types.d.ts.map +1 -1
  181. package/dist/history/decisions.d.ts +63 -0
  182. package/dist/history/decisions.d.ts.map +1 -0
  183. package/dist/history/decisions.js +60 -0
  184. package/dist/history/decisions.js.map +1 -0
  185. package/dist/history/index.d.ts +2 -0
  186. package/dist/history/index.d.ts.map +1 -1
  187. package/dist/history/index.js +2 -0
  188. package/dist/history/index.js.map +1 -1
  189. package/dist/history/types.d.ts +34 -5
  190. package/dist/history/types.d.ts.map +1 -1
  191. package/dist/history/types.js +2 -0
  192. package/dist/history/types.js.map +1 -1
  193. package/dist/http-auth.d.ts +22 -0
  194. package/dist/http-auth.d.ts.map +1 -0
  195. package/dist/http-auth.js +58 -0
  196. package/dist/http-auth.js.map +1 -0
  197. package/dist/http-policy.d.ts +30 -0
  198. package/dist/http-policy.d.ts.map +1 -0
  199. package/dist/http-policy.js +54 -0
  200. package/dist/http-policy.js.map +1 -0
  201. package/dist/http-server.js +195 -12
  202. package/dist/http-server.js.map +1 -1
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +411 -15
  205. package/dist/index.js.map +1 -1
  206. package/dist/logger.d.ts.map +1 -1
  207. package/dist/logger.js +56 -2
  208. package/dist/logger.js.map +1 -1
  209. package/dist/plugins/types.d.ts +2 -2
  210. package/dist/sbom/provenance.test.js +2 -2
  211. package/dist/sbom/provenance.test.js.map +1 -1
  212. package/dist/sbom/signing.d.ts.map +1 -1
  213. package/dist/sbom/signing.js +5 -3
  214. package/dist/sbom/signing.js.map +1 -1
  215. package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -1
  216. package/dist/scanners/agent/prompt-injection-fuzzer.js +26 -0
  217. package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -1
  218. package/dist/scanners/agent/types.d.ts +10 -10
  219. package/dist/scanners/bandit.d.ts.map +1 -1
  220. package/dist/scanners/bandit.js +35 -29
  221. package/dist/scanners/bandit.js.map +1 -1
  222. package/dist/scanners/binary-analysis.d.ts.map +1 -1
  223. package/dist/scanners/binary-analysis.js +24 -49
  224. package/dist/scanners/binary-analysis.js.map +1 -1
  225. package/dist/scanners/brakeman.d.ts.map +1 -1
  226. package/dist/scanners/brakeman.js +19 -33
  227. package/dist/scanners/brakeman.js.map +1 -1
  228. package/dist/scanners/builtin-rules.d.ts +24 -0
  229. package/dist/scanners/builtin-rules.d.ts.map +1 -0
  230. package/dist/scanners/builtin-rules.js +175 -0
  231. package/dist/scanners/builtin-rules.js.map +1 -0
  232. package/dist/scanners/dast.d.ts.map +1 -1
  233. package/dist/scanners/dast.js +24 -34
  234. package/dist/scanners/dast.js.map +1 -1
  235. package/dist/scanners/deploy/types.d.ts +6 -6
  236. package/dist/scanners/eslint.d.ts.map +1 -1
  237. package/dist/scanners/eslint.js +15 -24
  238. package/dist/scanners/eslint.js.map +1 -1
  239. package/dist/scanners/gosec.d.ts.map +1 -1
  240. package/dist/scanners/gosec.js +14 -62
  241. package/dist/scanners/gosec.js.map +1 -1
  242. package/dist/scanners/index.d.ts.map +1 -1
  243. package/dist/scanners/index.js +38 -7
  244. package/dist/scanners/index.js.map +1 -1
  245. package/dist/scanners/memory-safety.d.ts.map +1 -1
  246. package/dist/scanners/memory-safety.js +27 -28
  247. package/dist/scanners/memory-safety.js.map +1 -1
  248. package/dist/scanners/openapi.d.ts.map +1 -1
  249. package/dist/scanners/openapi.js +14 -22
  250. package/dist/scanners/openapi.js.map +1 -1
  251. package/dist/scanners/race-condition.d.ts.map +1 -1
  252. package/dist/scanners/race-condition.js +17 -16
  253. package/dist/scanners/race-condition.js.map +1 -1
  254. package/dist/scanners/runtime/types.d.ts +4 -4
  255. package/dist/scanners/rust.d.ts.map +1 -1
  256. package/dist/scanners/rust.js +38 -37
  257. package/dist/scanners/rust.js.map +1 -1
  258. package/dist/scanners/scale/types.d.ts +16 -16
  259. package/dist/scanners/secrets.d.ts.map +1 -1
  260. package/dist/scanners/secrets.js +66 -78
  261. package/dist/scanners/secrets.js.map +1 -1
  262. package/dist/scanners/semgrep.d.ts +2 -0
  263. package/dist/scanners/semgrep.d.ts.map +1 -1
  264. package/dist/scanners/semgrep.js +12 -0
  265. package/dist/scanners/semgrep.js.map +1 -1
  266. package/dist/scanners/terraform.d.ts.map +1 -1
  267. package/dist/scanners/terraform.js +47 -40
  268. package/dist/scanners/terraform.js.map +1 -1
  269. package/dist/scanners/trivy.d.ts.map +1 -1
  270. package/dist/scanners/trivy.js +38 -30
  271. package/dist/scanners/trivy.js.map +1 -1
  272. package/dist/tool-guard.d.ts +40 -0
  273. package/dist/tool-guard.d.ts.map +1 -0
  274. package/dist/tool-guard.js +55 -0
  275. package/dist/tool-guard.js.map +1 -0
  276. package/dist/util/index.d.ts +2 -1
  277. package/dist/util/index.d.ts.map +1 -1
  278. package/dist/util/index.js +2 -1
  279. package/dist/util/index.js.map +1 -1
  280. package/dist/util/paths.d.ts +20 -3
  281. package/dist/util/paths.d.ts.map +1 -1
  282. package/dist/util/paths.js +84 -4
  283. package/dist/util/paths.js.map +1 -1
  284. package/dist/util/subprocess.d.ts +51 -0
  285. package/dist/util/subprocess.d.ts.map +1 -0
  286. package/dist/util/subprocess.js +77 -0
  287. package/dist/util/subprocess.js.map +1 -0
  288. package/package.json +12 -2
  289. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts +0 -28
  290. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts.map +0 -1
  291. package/dist/eval/fixtures/healthcare/audit-gaps.js +0 -90
  292. package/dist/eval/fixtures/healthcare/audit-gaps.js.map +0 -1
  293. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts +0 -31
  294. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts.map +0 -1
  295. package/dist/eval/fixtures/healthcare/consent-bypass.js +0 -61
  296. package/dist/eval/fixtures/healthcare/consent-bypass.js.map +0 -1
  297. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts +0 -24
  298. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts.map +0 -1
  299. package/dist/eval/fixtures/healthcare/phi-in-logs.js +0 -41
  300. package/dist/eval/fixtures/healthcare/phi-in-logs.js.map +0 -1
@@ -0,0 +1,1981 @@
1
+ /**
2
+ * Agent Certificate (v1)
3
+ *
4
+ * A versioned, self-contained, independently-verifiable certificate that
5
+ * attests an AI agent / MCP server / AI-generated codebase across six
6
+ * dimensions: security, scalability, quality, explainability (decision
7
+ * provenance), compliance, and AI-BOM.
8
+ *
9
+ * The certificate carries its own content digest (tamper-evident) and an
10
+ * optional Sigstore signature, so a third party can verify it WITHOUT
11
+ * trusting Vaspera. It composes the primitives this platform already has
12
+ * — the certification engine, the tamper-evident audit trail
13
+ * (`history/`), the evidence bundle + Sigstore signing (`sbom/signing`,
14
+ * `evidence/`) — rather than introducing a new trust mechanism.
15
+ *
16
+ * @module certification/agent-certificate
17
+ */
18
+ import { z } from "zod";
19
+ import type { SigningOptions } from "../sbom/types.js";
20
+ /** Canonical schema identifier (also the version marker). */
21
+ export declare const AGENT_CERTIFICATE_SCHEMA = "https://vaspera.dev/schemas/agent-certificate/v1";
22
+ /** Media type used for the signed payload. */
23
+ export declare const AGENT_CERTIFICATE_MEDIA_TYPE = "application/vnd.vaspera.agent-certificate+json";
24
+ /** Typed error for certificate operations. */
25
+ export declare class CertificateError extends Error {
26
+ readonly code: "invalid_schema" | "digest_mismatch" | "signature_invalid" | "build_failed";
27
+ constructor(message: string, code: "invalid_schema" | "digest_mismatch" | "signature_invalid" | "build_failed");
28
+ }
29
+ /** A single check contributing to a dimension. */
30
+ declare const DimensionCheckSchema: z.ZodObject<{
31
+ id: z.ZodString;
32
+ title: z.ZodString;
33
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
34
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
35
+ category: z.ZodOptional<z.ZodString>;
36
+ evidenceDigest: z.ZodOptional<z.ZodString>;
37
+ detail: z.ZodOptional<z.ZodString>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ id: string;
40
+ status: "warn" | "pass" | "fail";
41
+ title: string;
42
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
43
+ category?: string | undefined;
44
+ evidenceDigest?: string | undefined;
45
+ detail?: string | undefined;
46
+ }, {
47
+ id: string;
48
+ status: "warn" | "pass" | "fail";
49
+ title: string;
50
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
51
+ category?: string | undefined;
52
+ evidenceDigest?: string | undefined;
53
+ detail?: string | undefined;
54
+ }>;
55
+ /** The shape shared by the four scored dimensions. */
56
+ declare const DimensionResultSchema: z.ZodObject<{
57
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
58
+ score: z.ZodNumber;
59
+ summary: z.ZodString;
60
+ checks: z.ZodArray<z.ZodObject<{
61
+ id: z.ZodString;
62
+ title: z.ZodString;
63
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
64
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
65
+ category: z.ZodOptional<z.ZodString>;
66
+ evidenceDigest: z.ZodOptional<z.ZodString>;
67
+ detail: z.ZodOptional<z.ZodString>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ id: string;
70
+ status: "warn" | "pass" | "fail";
71
+ title: string;
72
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
73
+ category?: string | undefined;
74
+ evidenceDigest?: string | undefined;
75
+ detail?: string | undefined;
76
+ }, {
77
+ id: string;
78
+ status: "warn" | "pass" | "fail";
79
+ title: string;
80
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
81
+ category?: string | undefined;
82
+ evidenceDigest?: string | undefined;
83
+ detail?: string | undefined;
84
+ }>, "many">;
85
+ }, "strip", z.ZodTypeAny, {
86
+ status: "warn" | "pass" | "fail" | "not_assessed";
87
+ summary: string;
88
+ score: number;
89
+ checks: {
90
+ id: string;
91
+ status: "warn" | "pass" | "fail";
92
+ title: string;
93
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
94
+ category?: string | undefined;
95
+ evidenceDigest?: string | undefined;
96
+ detail?: string | undefined;
97
+ }[];
98
+ }, {
99
+ status: "warn" | "pass" | "fail" | "not_assessed";
100
+ summary: string;
101
+ score: number;
102
+ checks: {
103
+ id: string;
104
+ status: "warn" | "pass" | "fail";
105
+ title: string;
106
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
107
+ category?: string | undefined;
108
+ evidenceDigest?: string | undefined;
109
+ detail?: string | undefined;
110
+ }[];
111
+ }>;
112
+ /** The certificate body — everything except the digest/signature. */
113
+ export declare const AgentCertificateBodySchema: z.ZodObject<{
114
+ schemaVersion: z.ZodLiteral<"https://vaspera.dev/schemas/agent-certificate/v1">;
115
+ certificateId: z.ZodString;
116
+ subject: z.ZodObject<{
117
+ kind: z.ZodEnum<["agent", "mcp-server", "codebase"]>;
118
+ name: z.ZodString;
119
+ version: z.ZodOptional<z.ZodString>;
120
+ identifier: z.ZodOptional<z.ZodString>;
121
+ description: z.ZodOptional<z.ZodString>;
122
+ digest: z.ZodOptional<z.ZodString>;
123
+ }, "strip", z.ZodTypeAny, {
124
+ name: string;
125
+ kind: "agent" | "mcp-server" | "codebase";
126
+ version?: string | undefined;
127
+ description?: string | undefined;
128
+ digest?: string | undefined;
129
+ identifier?: string | undefined;
130
+ }, {
131
+ name: string;
132
+ kind: "agent" | "mcp-server" | "codebase";
133
+ version?: string | undefined;
134
+ description?: string | undefined;
135
+ digest?: string | undefined;
136
+ identifier?: string | undefined;
137
+ }>;
138
+ issuer: z.ZodObject<{
139
+ name: z.ZodString;
140
+ tool: z.ZodString;
141
+ toolVersion: z.ZodString;
142
+ actor: z.ZodOptional<z.ZodObject<{
143
+ type: z.ZodEnum<["user", "service", "system"]>;
144
+ id: z.ZodString;
145
+ name: z.ZodOptional<z.ZodString>;
146
+ email: z.ZodOptional<z.ZodString>;
147
+ }, "strip", z.ZodTypeAny, {
148
+ id: string;
149
+ type: "service" | "user" | "system";
150
+ name?: string | undefined;
151
+ email?: string | undefined;
152
+ }, {
153
+ id: string;
154
+ type: "service" | "user" | "system";
155
+ name?: string | undefined;
156
+ email?: string | undefined;
157
+ }>>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ name: string;
160
+ tool: string;
161
+ toolVersion: string;
162
+ actor?: {
163
+ id: string;
164
+ type: "service" | "user" | "system";
165
+ name?: string | undefined;
166
+ email?: string | undefined;
167
+ } | undefined;
168
+ }, {
169
+ name: string;
170
+ tool: string;
171
+ toolVersion: string;
172
+ actor?: {
173
+ id: string;
174
+ type: "service" | "user" | "system";
175
+ name?: string | undefined;
176
+ email?: string | undefined;
177
+ } | undefined;
178
+ }>;
179
+ issuedAt: z.ZodString;
180
+ expiresAt: z.ZodString;
181
+ level: z.ZodEnum<["CERTIFIED", "APPROVED", "REVIEW_REQUIRED", "BLOCKED"]>;
182
+ overallScore: z.ZodNumber;
183
+ dimensions: z.ZodObject<{
184
+ security: z.ZodObject<{
185
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
186
+ score: z.ZodNumber;
187
+ summary: z.ZodString;
188
+ checks: z.ZodArray<z.ZodObject<{
189
+ id: z.ZodString;
190
+ title: z.ZodString;
191
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
192
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
193
+ category: z.ZodOptional<z.ZodString>;
194
+ evidenceDigest: z.ZodOptional<z.ZodString>;
195
+ detail: z.ZodOptional<z.ZodString>;
196
+ }, "strip", z.ZodTypeAny, {
197
+ id: string;
198
+ status: "warn" | "pass" | "fail";
199
+ title: string;
200
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
201
+ category?: string | undefined;
202
+ evidenceDigest?: string | undefined;
203
+ detail?: string | undefined;
204
+ }, {
205
+ id: string;
206
+ status: "warn" | "pass" | "fail";
207
+ title: string;
208
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
209
+ category?: string | undefined;
210
+ evidenceDigest?: string | undefined;
211
+ detail?: string | undefined;
212
+ }>, "many">;
213
+ }, "strip", z.ZodTypeAny, {
214
+ status: "warn" | "pass" | "fail" | "not_assessed";
215
+ summary: string;
216
+ score: number;
217
+ checks: {
218
+ id: string;
219
+ status: "warn" | "pass" | "fail";
220
+ title: string;
221
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
222
+ category?: string | undefined;
223
+ evidenceDigest?: string | undefined;
224
+ detail?: string | undefined;
225
+ }[];
226
+ }, {
227
+ status: "warn" | "pass" | "fail" | "not_assessed";
228
+ summary: string;
229
+ score: number;
230
+ checks: {
231
+ id: string;
232
+ status: "warn" | "pass" | "fail";
233
+ title: string;
234
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
235
+ category?: string | undefined;
236
+ evidenceDigest?: string | undefined;
237
+ detail?: string | undefined;
238
+ }[];
239
+ }>;
240
+ scalability: z.ZodObject<{
241
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
242
+ score: z.ZodNumber;
243
+ summary: z.ZodString;
244
+ checks: z.ZodArray<z.ZodObject<{
245
+ id: z.ZodString;
246
+ title: z.ZodString;
247
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
248
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
249
+ category: z.ZodOptional<z.ZodString>;
250
+ evidenceDigest: z.ZodOptional<z.ZodString>;
251
+ detail: z.ZodOptional<z.ZodString>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ id: string;
254
+ status: "warn" | "pass" | "fail";
255
+ title: string;
256
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
257
+ category?: string | undefined;
258
+ evidenceDigest?: string | undefined;
259
+ detail?: string | undefined;
260
+ }, {
261
+ id: string;
262
+ status: "warn" | "pass" | "fail";
263
+ title: string;
264
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
265
+ category?: string | undefined;
266
+ evidenceDigest?: string | undefined;
267
+ detail?: string | undefined;
268
+ }>, "many">;
269
+ }, "strip", z.ZodTypeAny, {
270
+ status: "warn" | "pass" | "fail" | "not_assessed";
271
+ summary: string;
272
+ score: number;
273
+ checks: {
274
+ id: string;
275
+ status: "warn" | "pass" | "fail";
276
+ title: string;
277
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
278
+ category?: string | undefined;
279
+ evidenceDigest?: string | undefined;
280
+ detail?: string | undefined;
281
+ }[];
282
+ }, {
283
+ status: "warn" | "pass" | "fail" | "not_assessed";
284
+ summary: string;
285
+ score: number;
286
+ checks: {
287
+ id: string;
288
+ status: "warn" | "pass" | "fail";
289
+ title: string;
290
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
291
+ category?: string | undefined;
292
+ evidenceDigest?: string | undefined;
293
+ detail?: string | undefined;
294
+ }[];
295
+ }>;
296
+ quality: z.ZodObject<{
297
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
298
+ score: z.ZodNumber;
299
+ summary: z.ZodString;
300
+ checks: z.ZodArray<z.ZodObject<{
301
+ id: z.ZodString;
302
+ title: z.ZodString;
303
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
304
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
305
+ category: z.ZodOptional<z.ZodString>;
306
+ evidenceDigest: z.ZodOptional<z.ZodString>;
307
+ detail: z.ZodOptional<z.ZodString>;
308
+ }, "strip", z.ZodTypeAny, {
309
+ id: string;
310
+ status: "warn" | "pass" | "fail";
311
+ title: string;
312
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
313
+ category?: string | undefined;
314
+ evidenceDigest?: string | undefined;
315
+ detail?: string | undefined;
316
+ }, {
317
+ id: string;
318
+ status: "warn" | "pass" | "fail";
319
+ title: string;
320
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
321
+ category?: string | undefined;
322
+ evidenceDigest?: string | undefined;
323
+ detail?: string | undefined;
324
+ }>, "many">;
325
+ }, "strip", z.ZodTypeAny, {
326
+ status: "warn" | "pass" | "fail" | "not_assessed";
327
+ summary: string;
328
+ score: number;
329
+ checks: {
330
+ id: string;
331
+ status: "warn" | "pass" | "fail";
332
+ title: string;
333
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
334
+ category?: string | undefined;
335
+ evidenceDigest?: string | undefined;
336
+ detail?: string | undefined;
337
+ }[];
338
+ }, {
339
+ status: "warn" | "pass" | "fail" | "not_assessed";
340
+ summary: string;
341
+ score: number;
342
+ checks: {
343
+ id: string;
344
+ status: "warn" | "pass" | "fail";
345
+ title: string;
346
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
347
+ category?: string | undefined;
348
+ evidenceDigest?: string | undefined;
349
+ detail?: string | undefined;
350
+ }[];
351
+ }>;
352
+ explainability: z.ZodObject<{
353
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
354
+ score: z.ZodNumber;
355
+ summary: z.ZodString;
356
+ checks: z.ZodArray<z.ZodObject<{
357
+ id: z.ZodString;
358
+ title: z.ZodString;
359
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
360
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
361
+ category: z.ZodOptional<z.ZodString>;
362
+ evidenceDigest: z.ZodOptional<z.ZodString>;
363
+ detail: z.ZodOptional<z.ZodString>;
364
+ }, "strip", z.ZodTypeAny, {
365
+ id: string;
366
+ status: "warn" | "pass" | "fail";
367
+ title: string;
368
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
369
+ category?: string | undefined;
370
+ evidenceDigest?: string | undefined;
371
+ detail?: string | undefined;
372
+ }, {
373
+ id: string;
374
+ status: "warn" | "pass" | "fail";
375
+ title: string;
376
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
377
+ category?: string | undefined;
378
+ evidenceDigest?: string | undefined;
379
+ detail?: string | undefined;
380
+ }>, "many">;
381
+ }, "strip", z.ZodTypeAny, {
382
+ status: "warn" | "pass" | "fail" | "not_assessed";
383
+ summary: string;
384
+ score: number;
385
+ checks: {
386
+ id: string;
387
+ status: "warn" | "pass" | "fail";
388
+ title: string;
389
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
390
+ category?: string | undefined;
391
+ evidenceDigest?: string | undefined;
392
+ detail?: string | undefined;
393
+ }[];
394
+ }, {
395
+ status: "warn" | "pass" | "fail" | "not_assessed";
396
+ summary: string;
397
+ score: number;
398
+ checks: {
399
+ id: string;
400
+ status: "warn" | "pass" | "fail";
401
+ title: string;
402
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
403
+ category?: string | undefined;
404
+ evidenceDigest?: string | undefined;
405
+ detail?: string | undefined;
406
+ }[];
407
+ }>;
408
+ compliance: z.ZodObject<{
409
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
410
+ score: z.ZodNumber;
411
+ summary: z.ZodString;
412
+ frameworks: z.ZodArray<z.ZodObject<{
413
+ framework: z.ZodString;
414
+ controlsTotal: z.ZodNumber;
415
+ controlsSatisfied: z.ZodNumber;
416
+ controlsAtRisk: z.ZodNumber;
417
+ controlsFailed: z.ZodNumber;
418
+ controls: z.ZodOptional<z.ZodArray<z.ZodObject<{
419
+ controlId: z.ZodString;
420
+ title: z.ZodString;
421
+ status: z.ZodEnum<["satisfied", "at_risk", "failed", "not_applicable"]>;
422
+ }, "strip", z.ZodTypeAny, {
423
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
424
+ title: string;
425
+ controlId: string;
426
+ }, {
427
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
428
+ title: string;
429
+ controlId: string;
430
+ }>, "many">>;
431
+ }, "strip", z.ZodTypeAny, {
432
+ framework: string;
433
+ controlsTotal: number;
434
+ controlsAtRisk: number;
435
+ controlsSatisfied: number;
436
+ controlsFailed: number;
437
+ controls?: {
438
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
439
+ title: string;
440
+ controlId: string;
441
+ }[] | undefined;
442
+ }, {
443
+ framework: string;
444
+ controlsTotal: number;
445
+ controlsAtRisk: number;
446
+ controlsSatisfied: number;
447
+ controlsFailed: number;
448
+ controls?: {
449
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
450
+ title: string;
451
+ controlId: string;
452
+ }[] | undefined;
453
+ }>, "many">;
454
+ }, "strip", z.ZodTypeAny, {
455
+ status: "warn" | "pass" | "fail" | "not_assessed";
456
+ summary: string;
457
+ score: number;
458
+ frameworks: {
459
+ framework: string;
460
+ controlsTotal: number;
461
+ controlsAtRisk: number;
462
+ controlsSatisfied: number;
463
+ controlsFailed: number;
464
+ controls?: {
465
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
466
+ title: string;
467
+ controlId: string;
468
+ }[] | undefined;
469
+ }[];
470
+ }, {
471
+ status: "warn" | "pass" | "fail" | "not_assessed";
472
+ summary: string;
473
+ score: number;
474
+ frameworks: {
475
+ framework: string;
476
+ controlsTotal: number;
477
+ controlsAtRisk: number;
478
+ controlsSatisfied: number;
479
+ controlsFailed: number;
480
+ controls?: {
481
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
482
+ title: string;
483
+ controlId: string;
484
+ }[] | undefined;
485
+ }[];
486
+ }>;
487
+ aiBom: z.ZodObject<{
488
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
489
+ score: z.ZodNumber;
490
+ summary: z.ZodString;
491
+ components: z.ZodArray<z.ZodObject<{
492
+ name: z.ZodString;
493
+ kind: z.ZodEnum<["model", "prompt", "dataset", "tool", "dependency"]>;
494
+ version: z.ZodOptional<z.ZodString>;
495
+ provider: z.ZodOptional<z.ZodString>;
496
+ role: z.ZodOptional<z.ZodString>;
497
+ digest: z.ZodOptional<z.ZodString>;
498
+ }, "strip", z.ZodTypeAny, {
499
+ name: string;
500
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
501
+ version?: string | undefined;
502
+ provider?: string | undefined;
503
+ role?: string | undefined;
504
+ digest?: string | undefined;
505
+ }, {
506
+ name: string;
507
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
508
+ version?: string | undefined;
509
+ provider?: string | undefined;
510
+ role?: string | undefined;
511
+ digest?: string | undefined;
512
+ }>, "many">;
513
+ }, "strip", z.ZodTypeAny, {
514
+ status: "warn" | "pass" | "fail" | "not_assessed";
515
+ summary: string;
516
+ score: number;
517
+ components: {
518
+ name: string;
519
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
520
+ version?: string | undefined;
521
+ provider?: string | undefined;
522
+ role?: string | undefined;
523
+ digest?: string | undefined;
524
+ }[];
525
+ }, {
526
+ status: "warn" | "pass" | "fail" | "not_assessed";
527
+ summary: string;
528
+ score: number;
529
+ components: {
530
+ name: string;
531
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
532
+ version?: string | undefined;
533
+ provider?: string | undefined;
534
+ role?: string | undefined;
535
+ digest?: string | undefined;
536
+ }[];
537
+ }>;
538
+ }, "strip", z.ZodTypeAny, {
539
+ security: {
540
+ status: "warn" | "pass" | "fail" | "not_assessed";
541
+ summary: string;
542
+ score: number;
543
+ checks: {
544
+ id: string;
545
+ status: "warn" | "pass" | "fail";
546
+ title: string;
547
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
548
+ category?: string | undefined;
549
+ evidenceDigest?: string | undefined;
550
+ detail?: string | undefined;
551
+ }[];
552
+ };
553
+ quality: {
554
+ status: "warn" | "pass" | "fail" | "not_assessed";
555
+ summary: string;
556
+ score: number;
557
+ checks: {
558
+ id: string;
559
+ status: "warn" | "pass" | "fail";
560
+ title: string;
561
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
562
+ category?: string | undefined;
563
+ evidenceDigest?: string | undefined;
564
+ detail?: string | undefined;
565
+ }[];
566
+ };
567
+ compliance: {
568
+ status: "warn" | "pass" | "fail" | "not_assessed";
569
+ summary: string;
570
+ score: number;
571
+ frameworks: {
572
+ framework: string;
573
+ controlsTotal: number;
574
+ controlsAtRisk: number;
575
+ controlsSatisfied: number;
576
+ controlsFailed: number;
577
+ controls?: {
578
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
579
+ title: string;
580
+ controlId: string;
581
+ }[] | undefined;
582
+ }[];
583
+ };
584
+ explainability: {
585
+ status: "warn" | "pass" | "fail" | "not_assessed";
586
+ summary: string;
587
+ score: number;
588
+ checks: {
589
+ id: string;
590
+ status: "warn" | "pass" | "fail";
591
+ title: string;
592
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
593
+ category?: string | undefined;
594
+ evidenceDigest?: string | undefined;
595
+ detail?: string | undefined;
596
+ }[];
597
+ };
598
+ scalability: {
599
+ status: "warn" | "pass" | "fail" | "not_assessed";
600
+ summary: string;
601
+ score: number;
602
+ checks: {
603
+ id: string;
604
+ status: "warn" | "pass" | "fail";
605
+ title: string;
606
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
607
+ category?: string | undefined;
608
+ evidenceDigest?: string | undefined;
609
+ detail?: string | undefined;
610
+ }[];
611
+ };
612
+ aiBom: {
613
+ status: "warn" | "pass" | "fail" | "not_assessed";
614
+ summary: string;
615
+ score: number;
616
+ components: {
617
+ name: string;
618
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
619
+ version?: string | undefined;
620
+ provider?: string | undefined;
621
+ role?: string | undefined;
622
+ digest?: string | undefined;
623
+ }[];
624
+ };
625
+ }, {
626
+ security: {
627
+ status: "warn" | "pass" | "fail" | "not_assessed";
628
+ summary: string;
629
+ score: number;
630
+ checks: {
631
+ id: string;
632
+ status: "warn" | "pass" | "fail";
633
+ title: string;
634
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
635
+ category?: string | undefined;
636
+ evidenceDigest?: string | undefined;
637
+ detail?: string | undefined;
638
+ }[];
639
+ };
640
+ quality: {
641
+ status: "warn" | "pass" | "fail" | "not_assessed";
642
+ summary: string;
643
+ score: number;
644
+ checks: {
645
+ id: string;
646
+ status: "warn" | "pass" | "fail";
647
+ title: string;
648
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
649
+ category?: string | undefined;
650
+ evidenceDigest?: string | undefined;
651
+ detail?: string | undefined;
652
+ }[];
653
+ };
654
+ compliance: {
655
+ status: "warn" | "pass" | "fail" | "not_assessed";
656
+ summary: string;
657
+ score: number;
658
+ frameworks: {
659
+ framework: string;
660
+ controlsTotal: number;
661
+ controlsAtRisk: number;
662
+ controlsSatisfied: number;
663
+ controlsFailed: number;
664
+ controls?: {
665
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
666
+ title: string;
667
+ controlId: string;
668
+ }[] | undefined;
669
+ }[];
670
+ };
671
+ explainability: {
672
+ status: "warn" | "pass" | "fail" | "not_assessed";
673
+ summary: string;
674
+ score: number;
675
+ checks: {
676
+ id: string;
677
+ status: "warn" | "pass" | "fail";
678
+ title: string;
679
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
680
+ category?: string | undefined;
681
+ evidenceDigest?: string | undefined;
682
+ detail?: string | undefined;
683
+ }[];
684
+ };
685
+ scalability: {
686
+ status: "warn" | "pass" | "fail" | "not_assessed";
687
+ summary: string;
688
+ score: number;
689
+ checks: {
690
+ id: string;
691
+ status: "warn" | "pass" | "fail";
692
+ title: string;
693
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
694
+ category?: string | undefined;
695
+ evidenceDigest?: string | undefined;
696
+ detail?: string | undefined;
697
+ }[];
698
+ };
699
+ aiBom: {
700
+ status: "warn" | "pass" | "fail" | "not_assessed";
701
+ summary: string;
702
+ score: number;
703
+ components: {
704
+ name: string;
705
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
706
+ version?: string | undefined;
707
+ provider?: string | undefined;
708
+ role?: string | undefined;
709
+ digest?: string | undefined;
710
+ }[];
711
+ };
712
+ }>;
713
+ provenance: z.ZodObject<{
714
+ auditTrailHead: z.ZodOptional<z.ZodString>;
715
+ evidenceBundleId: z.ZodOptional<z.ZodString>;
716
+ evidenceBundleDigest: z.ZodOptional<z.ZodString>;
717
+ decisionRecords: z.ZodOptional<z.ZodNumber>;
718
+ }, "strip", z.ZodTypeAny, {
719
+ auditTrailHead?: string | undefined;
720
+ decisionRecords?: number | undefined;
721
+ evidenceBundleId?: string | undefined;
722
+ evidenceBundleDigest?: string | undefined;
723
+ }, {
724
+ auditTrailHead?: string | undefined;
725
+ decisionRecords?: number | undefined;
726
+ evidenceBundleId?: string | undefined;
727
+ evidenceBundleDigest?: string | undefined;
728
+ }>;
729
+ evidence: z.ZodArray<z.ZodObject<{
730
+ name: z.ZodString;
731
+ type: z.ZodString;
732
+ digest: z.ZodString;
733
+ }, "strip", z.ZodTypeAny, {
734
+ name: string;
735
+ type: string;
736
+ digest: string;
737
+ }, {
738
+ name: string;
739
+ type: string;
740
+ digest: string;
741
+ }>, "many">;
742
+ }, "strip", z.ZodTypeAny, {
743
+ level: "CERTIFIED" | "APPROVED" | "REVIEW_REQUIRED" | "BLOCKED";
744
+ evidence: {
745
+ name: string;
746
+ type: string;
747
+ digest: string;
748
+ }[];
749
+ expiresAt: string;
750
+ issuer: {
751
+ name: string;
752
+ tool: string;
753
+ toolVersion: string;
754
+ actor?: {
755
+ id: string;
756
+ type: "service" | "user" | "system";
757
+ name?: string | undefined;
758
+ email?: string | undefined;
759
+ } | undefined;
760
+ };
761
+ subject: {
762
+ name: string;
763
+ kind: "agent" | "mcp-server" | "codebase";
764
+ version?: string | undefined;
765
+ description?: string | undefined;
766
+ digest?: string | undefined;
767
+ identifier?: string | undefined;
768
+ };
769
+ provenance: {
770
+ auditTrailHead?: string | undefined;
771
+ decisionRecords?: number | undefined;
772
+ evidenceBundleId?: string | undefined;
773
+ evidenceBundleDigest?: string | undefined;
774
+ };
775
+ schemaVersion: "https://vaspera.dev/schemas/agent-certificate/v1";
776
+ certificateId: string;
777
+ issuedAt: string;
778
+ overallScore: number;
779
+ dimensions: {
780
+ security: {
781
+ status: "warn" | "pass" | "fail" | "not_assessed";
782
+ summary: string;
783
+ score: number;
784
+ checks: {
785
+ id: string;
786
+ status: "warn" | "pass" | "fail";
787
+ title: string;
788
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
789
+ category?: string | undefined;
790
+ evidenceDigest?: string | undefined;
791
+ detail?: string | undefined;
792
+ }[];
793
+ };
794
+ quality: {
795
+ status: "warn" | "pass" | "fail" | "not_assessed";
796
+ summary: string;
797
+ score: number;
798
+ checks: {
799
+ id: string;
800
+ status: "warn" | "pass" | "fail";
801
+ title: string;
802
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
803
+ category?: string | undefined;
804
+ evidenceDigest?: string | undefined;
805
+ detail?: string | undefined;
806
+ }[];
807
+ };
808
+ compliance: {
809
+ status: "warn" | "pass" | "fail" | "not_assessed";
810
+ summary: string;
811
+ score: number;
812
+ frameworks: {
813
+ framework: string;
814
+ controlsTotal: number;
815
+ controlsAtRisk: number;
816
+ controlsSatisfied: number;
817
+ controlsFailed: number;
818
+ controls?: {
819
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
820
+ title: string;
821
+ controlId: string;
822
+ }[] | undefined;
823
+ }[];
824
+ };
825
+ explainability: {
826
+ status: "warn" | "pass" | "fail" | "not_assessed";
827
+ summary: string;
828
+ score: number;
829
+ checks: {
830
+ id: string;
831
+ status: "warn" | "pass" | "fail";
832
+ title: string;
833
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
834
+ category?: string | undefined;
835
+ evidenceDigest?: string | undefined;
836
+ detail?: string | undefined;
837
+ }[];
838
+ };
839
+ scalability: {
840
+ status: "warn" | "pass" | "fail" | "not_assessed";
841
+ summary: string;
842
+ score: number;
843
+ checks: {
844
+ id: string;
845
+ status: "warn" | "pass" | "fail";
846
+ title: string;
847
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
848
+ category?: string | undefined;
849
+ evidenceDigest?: string | undefined;
850
+ detail?: string | undefined;
851
+ }[];
852
+ };
853
+ aiBom: {
854
+ status: "warn" | "pass" | "fail" | "not_assessed";
855
+ summary: string;
856
+ score: number;
857
+ components: {
858
+ name: string;
859
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
860
+ version?: string | undefined;
861
+ provider?: string | undefined;
862
+ role?: string | undefined;
863
+ digest?: string | undefined;
864
+ }[];
865
+ };
866
+ };
867
+ }, {
868
+ level: "CERTIFIED" | "APPROVED" | "REVIEW_REQUIRED" | "BLOCKED";
869
+ evidence: {
870
+ name: string;
871
+ type: string;
872
+ digest: string;
873
+ }[];
874
+ expiresAt: string;
875
+ issuer: {
876
+ name: string;
877
+ tool: string;
878
+ toolVersion: string;
879
+ actor?: {
880
+ id: string;
881
+ type: "service" | "user" | "system";
882
+ name?: string | undefined;
883
+ email?: string | undefined;
884
+ } | undefined;
885
+ };
886
+ subject: {
887
+ name: string;
888
+ kind: "agent" | "mcp-server" | "codebase";
889
+ version?: string | undefined;
890
+ description?: string | undefined;
891
+ digest?: string | undefined;
892
+ identifier?: string | undefined;
893
+ };
894
+ provenance: {
895
+ auditTrailHead?: string | undefined;
896
+ decisionRecords?: number | undefined;
897
+ evidenceBundleId?: string | undefined;
898
+ evidenceBundleDigest?: string | undefined;
899
+ };
900
+ schemaVersion: "https://vaspera.dev/schemas/agent-certificate/v1";
901
+ certificateId: string;
902
+ issuedAt: string;
903
+ overallScore: number;
904
+ dimensions: {
905
+ security: {
906
+ status: "warn" | "pass" | "fail" | "not_assessed";
907
+ summary: string;
908
+ score: number;
909
+ checks: {
910
+ id: string;
911
+ status: "warn" | "pass" | "fail";
912
+ title: string;
913
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
914
+ category?: string | undefined;
915
+ evidenceDigest?: string | undefined;
916
+ detail?: string | undefined;
917
+ }[];
918
+ };
919
+ quality: {
920
+ status: "warn" | "pass" | "fail" | "not_assessed";
921
+ summary: string;
922
+ score: number;
923
+ checks: {
924
+ id: string;
925
+ status: "warn" | "pass" | "fail";
926
+ title: string;
927
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
928
+ category?: string | undefined;
929
+ evidenceDigest?: string | undefined;
930
+ detail?: string | undefined;
931
+ }[];
932
+ };
933
+ compliance: {
934
+ status: "warn" | "pass" | "fail" | "not_assessed";
935
+ summary: string;
936
+ score: number;
937
+ frameworks: {
938
+ framework: string;
939
+ controlsTotal: number;
940
+ controlsAtRisk: number;
941
+ controlsSatisfied: number;
942
+ controlsFailed: number;
943
+ controls?: {
944
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
945
+ title: string;
946
+ controlId: string;
947
+ }[] | undefined;
948
+ }[];
949
+ };
950
+ explainability: {
951
+ status: "warn" | "pass" | "fail" | "not_assessed";
952
+ summary: string;
953
+ score: number;
954
+ checks: {
955
+ id: string;
956
+ status: "warn" | "pass" | "fail";
957
+ title: string;
958
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
959
+ category?: string | undefined;
960
+ evidenceDigest?: string | undefined;
961
+ detail?: string | undefined;
962
+ }[];
963
+ };
964
+ scalability: {
965
+ status: "warn" | "pass" | "fail" | "not_assessed";
966
+ summary: string;
967
+ score: number;
968
+ checks: {
969
+ id: string;
970
+ status: "warn" | "pass" | "fail";
971
+ title: string;
972
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
973
+ category?: string | undefined;
974
+ evidenceDigest?: string | undefined;
975
+ detail?: string | undefined;
976
+ }[];
977
+ };
978
+ aiBom: {
979
+ status: "warn" | "pass" | "fail" | "not_assessed";
980
+ summary: string;
981
+ score: number;
982
+ components: {
983
+ name: string;
984
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
985
+ version?: string | undefined;
986
+ provider?: string | undefined;
987
+ role?: string | undefined;
988
+ digest?: string | undefined;
989
+ }[];
990
+ };
991
+ };
992
+ }>;
993
+ /** The full, finalized certificate. */
994
+ export declare const AgentCertificateSchema: z.ZodObject<{
995
+ schemaVersion: z.ZodLiteral<"https://vaspera.dev/schemas/agent-certificate/v1">;
996
+ certificateId: z.ZodString;
997
+ subject: z.ZodObject<{
998
+ kind: z.ZodEnum<["agent", "mcp-server", "codebase"]>;
999
+ name: z.ZodString;
1000
+ version: z.ZodOptional<z.ZodString>;
1001
+ identifier: z.ZodOptional<z.ZodString>;
1002
+ description: z.ZodOptional<z.ZodString>;
1003
+ digest: z.ZodOptional<z.ZodString>;
1004
+ }, "strip", z.ZodTypeAny, {
1005
+ name: string;
1006
+ kind: "agent" | "mcp-server" | "codebase";
1007
+ version?: string | undefined;
1008
+ description?: string | undefined;
1009
+ digest?: string | undefined;
1010
+ identifier?: string | undefined;
1011
+ }, {
1012
+ name: string;
1013
+ kind: "agent" | "mcp-server" | "codebase";
1014
+ version?: string | undefined;
1015
+ description?: string | undefined;
1016
+ digest?: string | undefined;
1017
+ identifier?: string | undefined;
1018
+ }>;
1019
+ issuer: z.ZodObject<{
1020
+ name: z.ZodString;
1021
+ tool: z.ZodString;
1022
+ toolVersion: z.ZodString;
1023
+ actor: z.ZodOptional<z.ZodObject<{
1024
+ type: z.ZodEnum<["user", "service", "system"]>;
1025
+ id: z.ZodString;
1026
+ name: z.ZodOptional<z.ZodString>;
1027
+ email: z.ZodOptional<z.ZodString>;
1028
+ }, "strip", z.ZodTypeAny, {
1029
+ id: string;
1030
+ type: "service" | "user" | "system";
1031
+ name?: string | undefined;
1032
+ email?: string | undefined;
1033
+ }, {
1034
+ id: string;
1035
+ type: "service" | "user" | "system";
1036
+ name?: string | undefined;
1037
+ email?: string | undefined;
1038
+ }>>;
1039
+ }, "strip", z.ZodTypeAny, {
1040
+ name: string;
1041
+ tool: string;
1042
+ toolVersion: string;
1043
+ actor?: {
1044
+ id: string;
1045
+ type: "service" | "user" | "system";
1046
+ name?: string | undefined;
1047
+ email?: string | undefined;
1048
+ } | undefined;
1049
+ }, {
1050
+ name: string;
1051
+ tool: string;
1052
+ toolVersion: string;
1053
+ actor?: {
1054
+ id: string;
1055
+ type: "service" | "user" | "system";
1056
+ name?: string | undefined;
1057
+ email?: string | undefined;
1058
+ } | undefined;
1059
+ }>;
1060
+ issuedAt: z.ZodString;
1061
+ expiresAt: z.ZodString;
1062
+ level: z.ZodEnum<["CERTIFIED", "APPROVED", "REVIEW_REQUIRED", "BLOCKED"]>;
1063
+ overallScore: z.ZodNumber;
1064
+ dimensions: z.ZodObject<{
1065
+ security: z.ZodObject<{
1066
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
1067
+ score: z.ZodNumber;
1068
+ summary: z.ZodString;
1069
+ checks: z.ZodArray<z.ZodObject<{
1070
+ id: z.ZodString;
1071
+ title: z.ZodString;
1072
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
1073
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
1074
+ category: z.ZodOptional<z.ZodString>;
1075
+ evidenceDigest: z.ZodOptional<z.ZodString>;
1076
+ detail: z.ZodOptional<z.ZodString>;
1077
+ }, "strip", z.ZodTypeAny, {
1078
+ id: string;
1079
+ status: "warn" | "pass" | "fail";
1080
+ title: string;
1081
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1082
+ category?: string | undefined;
1083
+ evidenceDigest?: string | undefined;
1084
+ detail?: string | undefined;
1085
+ }, {
1086
+ id: string;
1087
+ status: "warn" | "pass" | "fail";
1088
+ title: string;
1089
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1090
+ category?: string | undefined;
1091
+ evidenceDigest?: string | undefined;
1092
+ detail?: string | undefined;
1093
+ }>, "many">;
1094
+ }, "strip", z.ZodTypeAny, {
1095
+ status: "warn" | "pass" | "fail" | "not_assessed";
1096
+ summary: string;
1097
+ score: number;
1098
+ checks: {
1099
+ id: string;
1100
+ status: "warn" | "pass" | "fail";
1101
+ title: string;
1102
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1103
+ category?: string | undefined;
1104
+ evidenceDigest?: string | undefined;
1105
+ detail?: string | undefined;
1106
+ }[];
1107
+ }, {
1108
+ status: "warn" | "pass" | "fail" | "not_assessed";
1109
+ summary: string;
1110
+ score: number;
1111
+ checks: {
1112
+ id: string;
1113
+ status: "warn" | "pass" | "fail";
1114
+ title: string;
1115
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1116
+ category?: string | undefined;
1117
+ evidenceDigest?: string | undefined;
1118
+ detail?: string | undefined;
1119
+ }[];
1120
+ }>;
1121
+ scalability: z.ZodObject<{
1122
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
1123
+ score: z.ZodNumber;
1124
+ summary: z.ZodString;
1125
+ checks: z.ZodArray<z.ZodObject<{
1126
+ id: z.ZodString;
1127
+ title: z.ZodString;
1128
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
1129
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
1130
+ category: z.ZodOptional<z.ZodString>;
1131
+ evidenceDigest: z.ZodOptional<z.ZodString>;
1132
+ detail: z.ZodOptional<z.ZodString>;
1133
+ }, "strip", z.ZodTypeAny, {
1134
+ id: string;
1135
+ status: "warn" | "pass" | "fail";
1136
+ title: string;
1137
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1138
+ category?: string | undefined;
1139
+ evidenceDigest?: string | undefined;
1140
+ detail?: string | undefined;
1141
+ }, {
1142
+ id: string;
1143
+ status: "warn" | "pass" | "fail";
1144
+ title: string;
1145
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1146
+ category?: string | undefined;
1147
+ evidenceDigest?: string | undefined;
1148
+ detail?: string | undefined;
1149
+ }>, "many">;
1150
+ }, "strip", z.ZodTypeAny, {
1151
+ status: "warn" | "pass" | "fail" | "not_assessed";
1152
+ summary: string;
1153
+ score: number;
1154
+ checks: {
1155
+ id: string;
1156
+ status: "warn" | "pass" | "fail";
1157
+ title: string;
1158
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1159
+ category?: string | undefined;
1160
+ evidenceDigest?: string | undefined;
1161
+ detail?: string | undefined;
1162
+ }[];
1163
+ }, {
1164
+ status: "warn" | "pass" | "fail" | "not_assessed";
1165
+ summary: string;
1166
+ score: number;
1167
+ checks: {
1168
+ id: string;
1169
+ status: "warn" | "pass" | "fail";
1170
+ title: string;
1171
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1172
+ category?: string | undefined;
1173
+ evidenceDigest?: string | undefined;
1174
+ detail?: string | undefined;
1175
+ }[];
1176
+ }>;
1177
+ quality: z.ZodObject<{
1178
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
1179
+ score: z.ZodNumber;
1180
+ summary: z.ZodString;
1181
+ checks: z.ZodArray<z.ZodObject<{
1182
+ id: z.ZodString;
1183
+ title: z.ZodString;
1184
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
1185
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
1186
+ category: z.ZodOptional<z.ZodString>;
1187
+ evidenceDigest: z.ZodOptional<z.ZodString>;
1188
+ detail: z.ZodOptional<z.ZodString>;
1189
+ }, "strip", z.ZodTypeAny, {
1190
+ id: string;
1191
+ status: "warn" | "pass" | "fail";
1192
+ title: string;
1193
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1194
+ category?: string | undefined;
1195
+ evidenceDigest?: string | undefined;
1196
+ detail?: string | undefined;
1197
+ }, {
1198
+ id: string;
1199
+ status: "warn" | "pass" | "fail";
1200
+ title: string;
1201
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1202
+ category?: string | undefined;
1203
+ evidenceDigest?: string | undefined;
1204
+ detail?: string | undefined;
1205
+ }>, "many">;
1206
+ }, "strip", z.ZodTypeAny, {
1207
+ status: "warn" | "pass" | "fail" | "not_assessed";
1208
+ summary: string;
1209
+ score: number;
1210
+ checks: {
1211
+ id: string;
1212
+ status: "warn" | "pass" | "fail";
1213
+ title: string;
1214
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1215
+ category?: string | undefined;
1216
+ evidenceDigest?: string | undefined;
1217
+ detail?: string | undefined;
1218
+ }[];
1219
+ }, {
1220
+ status: "warn" | "pass" | "fail" | "not_assessed";
1221
+ summary: string;
1222
+ score: number;
1223
+ checks: {
1224
+ id: string;
1225
+ status: "warn" | "pass" | "fail";
1226
+ title: string;
1227
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1228
+ category?: string | undefined;
1229
+ evidenceDigest?: string | undefined;
1230
+ detail?: string | undefined;
1231
+ }[];
1232
+ }>;
1233
+ explainability: z.ZodObject<{
1234
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
1235
+ score: z.ZodNumber;
1236
+ summary: z.ZodString;
1237
+ checks: z.ZodArray<z.ZodObject<{
1238
+ id: z.ZodString;
1239
+ title: z.ZodString;
1240
+ status: z.ZodEnum<["pass", "warn", "fail"]>;
1241
+ severity: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low", "info"]>>;
1242
+ category: z.ZodOptional<z.ZodString>;
1243
+ evidenceDigest: z.ZodOptional<z.ZodString>;
1244
+ detail: z.ZodOptional<z.ZodString>;
1245
+ }, "strip", z.ZodTypeAny, {
1246
+ id: string;
1247
+ status: "warn" | "pass" | "fail";
1248
+ title: string;
1249
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1250
+ category?: string | undefined;
1251
+ evidenceDigest?: string | undefined;
1252
+ detail?: string | undefined;
1253
+ }, {
1254
+ id: string;
1255
+ status: "warn" | "pass" | "fail";
1256
+ title: string;
1257
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1258
+ category?: string | undefined;
1259
+ evidenceDigest?: string | undefined;
1260
+ detail?: string | undefined;
1261
+ }>, "many">;
1262
+ }, "strip", z.ZodTypeAny, {
1263
+ status: "warn" | "pass" | "fail" | "not_assessed";
1264
+ summary: string;
1265
+ score: number;
1266
+ checks: {
1267
+ id: string;
1268
+ status: "warn" | "pass" | "fail";
1269
+ title: string;
1270
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1271
+ category?: string | undefined;
1272
+ evidenceDigest?: string | undefined;
1273
+ detail?: string | undefined;
1274
+ }[];
1275
+ }, {
1276
+ status: "warn" | "pass" | "fail" | "not_assessed";
1277
+ summary: string;
1278
+ score: number;
1279
+ checks: {
1280
+ id: string;
1281
+ status: "warn" | "pass" | "fail";
1282
+ title: string;
1283
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1284
+ category?: string | undefined;
1285
+ evidenceDigest?: string | undefined;
1286
+ detail?: string | undefined;
1287
+ }[];
1288
+ }>;
1289
+ compliance: z.ZodObject<{
1290
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
1291
+ score: z.ZodNumber;
1292
+ summary: z.ZodString;
1293
+ frameworks: z.ZodArray<z.ZodObject<{
1294
+ framework: z.ZodString;
1295
+ controlsTotal: z.ZodNumber;
1296
+ controlsSatisfied: z.ZodNumber;
1297
+ controlsAtRisk: z.ZodNumber;
1298
+ controlsFailed: z.ZodNumber;
1299
+ controls: z.ZodOptional<z.ZodArray<z.ZodObject<{
1300
+ controlId: z.ZodString;
1301
+ title: z.ZodString;
1302
+ status: z.ZodEnum<["satisfied", "at_risk", "failed", "not_applicable"]>;
1303
+ }, "strip", z.ZodTypeAny, {
1304
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1305
+ title: string;
1306
+ controlId: string;
1307
+ }, {
1308
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1309
+ title: string;
1310
+ controlId: string;
1311
+ }>, "many">>;
1312
+ }, "strip", z.ZodTypeAny, {
1313
+ framework: string;
1314
+ controlsTotal: number;
1315
+ controlsAtRisk: number;
1316
+ controlsSatisfied: number;
1317
+ controlsFailed: number;
1318
+ controls?: {
1319
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1320
+ title: string;
1321
+ controlId: string;
1322
+ }[] | undefined;
1323
+ }, {
1324
+ framework: string;
1325
+ controlsTotal: number;
1326
+ controlsAtRisk: number;
1327
+ controlsSatisfied: number;
1328
+ controlsFailed: number;
1329
+ controls?: {
1330
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1331
+ title: string;
1332
+ controlId: string;
1333
+ }[] | undefined;
1334
+ }>, "many">;
1335
+ }, "strip", z.ZodTypeAny, {
1336
+ status: "warn" | "pass" | "fail" | "not_assessed";
1337
+ summary: string;
1338
+ score: number;
1339
+ frameworks: {
1340
+ framework: string;
1341
+ controlsTotal: number;
1342
+ controlsAtRisk: number;
1343
+ controlsSatisfied: number;
1344
+ controlsFailed: number;
1345
+ controls?: {
1346
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1347
+ title: string;
1348
+ controlId: string;
1349
+ }[] | undefined;
1350
+ }[];
1351
+ }, {
1352
+ status: "warn" | "pass" | "fail" | "not_assessed";
1353
+ summary: string;
1354
+ score: number;
1355
+ frameworks: {
1356
+ framework: string;
1357
+ controlsTotal: number;
1358
+ controlsAtRisk: number;
1359
+ controlsSatisfied: number;
1360
+ controlsFailed: number;
1361
+ controls?: {
1362
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1363
+ title: string;
1364
+ controlId: string;
1365
+ }[] | undefined;
1366
+ }[];
1367
+ }>;
1368
+ aiBom: z.ZodObject<{
1369
+ status: z.ZodEnum<["pass", "warn", "fail", "not_assessed"]>;
1370
+ score: z.ZodNumber;
1371
+ summary: z.ZodString;
1372
+ components: z.ZodArray<z.ZodObject<{
1373
+ name: z.ZodString;
1374
+ kind: z.ZodEnum<["model", "prompt", "dataset", "tool", "dependency"]>;
1375
+ version: z.ZodOptional<z.ZodString>;
1376
+ provider: z.ZodOptional<z.ZodString>;
1377
+ role: z.ZodOptional<z.ZodString>;
1378
+ digest: z.ZodOptional<z.ZodString>;
1379
+ }, "strip", z.ZodTypeAny, {
1380
+ name: string;
1381
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1382
+ version?: string | undefined;
1383
+ provider?: string | undefined;
1384
+ role?: string | undefined;
1385
+ digest?: string | undefined;
1386
+ }, {
1387
+ name: string;
1388
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1389
+ version?: string | undefined;
1390
+ provider?: string | undefined;
1391
+ role?: string | undefined;
1392
+ digest?: string | undefined;
1393
+ }>, "many">;
1394
+ }, "strip", z.ZodTypeAny, {
1395
+ status: "warn" | "pass" | "fail" | "not_assessed";
1396
+ summary: string;
1397
+ score: number;
1398
+ components: {
1399
+ name: string;
1400
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1401
+ version?: string | undefined;
1402
+ provider?: string | undefined;
1403
+ role?: string | undefined;
1404
+ digest?: string | undefined;
1405
+ }[];
1406
+ }, {
1407
+ status: "warn" | "pass" | "fail" | "not_assessed";
1408
+ summary: string;
1409
+ score: number;
1410
+ components: {
1411
+ name: string;
1412
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1413
+ version?: string | undefined;
1414
+ provider?: string | undefined;
1415
+ role?: string | undefined;
1416
+ digest?: string | undefined;
1417
+ }[];
1418
+ }>;
1419
+ }, "strip", z.ZodTypeAny, {
1420
+ security: {
1421
+ status: "warn" | "pass" | "fail" | "not_assessed";
1422
+ summary: string;
1423
+ score: number;
1424
+ checks: {
1425
+ id: string;
1426
+ status: "warn" | "pass" | "fail";
1427
+ title: string;
1428
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1429
+ category?: string | undefined;
1430
+ evidenceDigest?: string | undefined;
1431
+ detail?: string | undefined;
1432
+ }[];
1433
+ };
1434
+ quality: {
1435
+ status: "warn" | "pass" | "fail" | "not_assessed";
1436
+ summary: string;
1437
+ score: number;
1438
+ checks: {
1439
+ id: string;
1440
+ status: "warn" | "pass" | "fail";
1441
+ title: string;
1442
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1443
+ category?: string | undefined;
1444
+ evidenceDigest?: string | undefined;
1445
+ detail?: string | undefined;
1446
+ }[];
1447
+ };
1448
+ compliance: {
1449
+ status: "warn" | "pass" | "fail" | "not_assessed";
1450
+ summary: string;
1451
+ score: number;
1452
+ frameworks: {
1453
+ framework: string;
1454
+ controlsTotal: number;
1455
+ controlsAtRisk: number;
1456
+ controlsSatisfied: number;
1457
+ controlsFailed: number;
1458
+ controls?: {
1459
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1460
+ title: string;
1461
+ controlId: string;
1462
+ }[] | undefined;
1463
+ }[];
1464
+ };
1465
+ explainability: {
1466
+ status: "warn" | "pass" | "fail" | "not_assessed";
1467
+ summary: string;
1468
+ score: number;
1469
+ checks: {
1470
+ id: string;
1471
+ status: "warn" | "pass" | "fail";
1472
+ title: string;
1473
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1474
+ category?: string | undefined;
1475
+ evidenceDigest?: string | undefined;
1476
+ detail?: string | undefined;
1477
+ }[];
1478
+ };
1479
+ scalability: {
1480
+ status: "warn" | "pass" | "fail" | "not_assessed";
1481
+ summary: string;
1482
+ score: number;
1483
+ checks: {
1484
+ id: string;
1485
+ status: "warn" | "pass" | "fail";
1486
+ title: string;
1487
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1488
+ category?: string | undefined;
1489
+ evidenceDigest?: string | undefined;
1490
+ detail?: string | undefined;
1491
+ }[];
1492
+ };
1493
+ aiBom: {
1494
+ status: "warn" | "pass" | "fail" | "not_assessed";
1495
+ summary: string;
1496
+ score: number;
1497
+ components: {
1498
+ name: string;
1499
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1500
+ version?: string | undefined;
1501
+ provider?: string | undefined;
1502
+ role?: string | undefined;
1503
+ digest?: string | undefined;
1504
+ }[];
1505
+ };
1506
+ }, {
1507
+ security: {
1508
+ status: "warn" | "pass" | "fail" | "not_assessed";
1509
+ summary: string;
1510
+ score: number;
1511
+ checks: {
1512
+ id: string;
1513
+ status: "warn" | "pass" | "fail";
1514
+ title: string;
1515
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1516
+ category?: string | undefined;
1517
+ evidenceDigest?: string | undefined;
1518
+ detail?: string | undefined;
1519
+ }[];
1520
+ };
1521
+ quality: {
1522
+ status: "warn" | "pass" | "fail" | "not_assessed";
1523
+ summary: string;
1524
+ score: number;
1525
+ checks: {
1526
+ id: string;
1527
+ status: "warn" | "pass" | "fail";
1528
+ title: string;
1529
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1530
+ category?: string | undefined;
1531
+ evidenceDigest?: string | undefined;
1532
+ detail?: string | undefined;
1533
+ }[];
1534
+ };
1535
+ compliance: {
1536
+ status: "warn" | "pass" | "fail" | "not_assessed";
1537
+ summary: string;
1538
+ score: number;
1539
+ frameworks: {
1540
+ framework: string;
1541
+ controlsTotal: number;
1542
+ controlsAtRisk: number;
1543
+ controlsSatisfied: number;
1544
+ controlsFailed: number;
1545
+ controls?: {
1546
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1547
+ title: string;
1548
+ controlId: string;
1549
+ }[] | undefined;
1550
+ }[];
1551
+ };
1552
+ explainability: {
1553
+ status: "warn" | "pass" | "fail" | "not_assessed";
1554
+ summary: string;
1555
+ score: number;
1556
+ checks: {
1557
+ id: string;
1558
+ status: "warn" | "pass" | "fail";
1559
+ title: string;
1560
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1561
+ category?: string | undefined;
1562
+ evidenceDigest?: string | undefined;
1563
+ detail?: string | undefined;
1564
+ }[];
1565
+ };
1566
+ scalability: {
1567
+ status: "warn" | "pass" | "fail" | "not_assessed";
1568
+ summary: string;
1569
+ score: number;
1570
+ checks: {
1571
+ id: string;
1572
+ status: "warn" | "pass" | "fail";
1573
+ title: string;
1574
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1575
+ category?: string | undefined;
1576
+ evidenceDigest?: string | undefined;
1577
+ detail?: string | undefined;
1578
+ }[];
1579
+ };
1580
+ aiBom: {
1581
+ status: "warn" | "pass" | "fail" | "not_assessed";
1582
+ summary: string;
1583
+ score: number;
1584
+ components: {
1585
+ name: string;
1586
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1587
+ version?: string | undefined;
1588
+ provider?: string | undefined;
1589
+ role?: string | undefined;
1590
+ digest?: string | undefined;
1591
+ }[];
1592
+ };
1593
+ }>;
1594
+ provenance: z.ZodObject<{
1595
+ auditTrailHead: z.ZodOptional<z.ZodString>;
1596
+ evidenceBundleId: z.ZodOptional<z.ZodString>;
1597
+ evidenceBundleDigest: z.ZodOptional<z.ZodString>;
1598
+ decisionRecords: z.ZodOptional<z.ZodNumber>;
1599
+ }, "strip", z.ZodTypeAny, {
1600
+ auditTrailHead?: string | undefined;
1601
+ decisionRecords?: number | undefined;
1602
+ evidenceBundleId?: string | undefined;
1603
+ evidenceBundleDigest?: string | undefined;
1604
+ }, {
1605
+ auditTrailHead?: string | undefined;
1606
+ decisionRecords?: number | undefined;
1607
+ evidenceBundleId?: string | undefined;
1608
+ evidenceBundleDigest?: string | undefined;
1609
+ }>;
1610
+ evidence: z.ZodArray<z.ZodObject<{
1611
+ name: z.ZodString;
1612
+ type: z.ZodString;
1613
+ digest: z.ZodString;
1614
+ }, "strip", z.ZodTypeAny, {
1615
+ name: string;
1616
+ type: string;
1617
+ digest: string;
1618
+ }, {
1619
+ name: string;
1620
+ type: string;
1621
+ digest: string;
1622
+ }>, "many">;
1623
+ } & {
1624
+ integrity: z.ZodObject<{
1625
+ algorithm: z.ZodLiteral<"sha256">;
1626
+ canonicalization: z.ZodLiteral<"sorted-keys-json">;
1627
+ contentDigest: z.ZodString;
1628
+ }, "strip", z.ZodTypeAny, {
1629
+ algorithm: "sha256";
1630
+ canonicalization: "sorted-keys-json";
1631
+ contentDigest: string;
1632
+ }, {
1633
+ algorithm: "sha256";
1634
+ canonicalization: "sorted-keys-json";
1635
+ contentDigest: string;
1636
+ }>;
1637
+ signature: z.ZodOptional<z.ZodObject<{
1638
+ signed: z.ZodBoolean;
1639
+ digest: z.ZodString;
1640
+ signedAt: z.ZodString;
1641
+ mediaType: z.ZodString;
1642
+ /** Rekor transparency-log index, if the certificate was logged. */
1643
+ rekorLogIndex: z.ZodOptional<z.ZodString>;
1644
+ /** Full Sigstore bundle (omitted when unsigned). */
1645
+ bundle: z.ZodOptional<z.ZodUnknown>;
1646
+ error: z.ZodOptional<z.ZodString>;
1647
+ }, "strip", z.ZodTypeAny, {
1648
+ signed: boolean;
1649
+ signedAt: string;
1650
+ digest: string;
1651
+ mediaType: string;
1652
+ error?: string | undefined;
1653
+ rekorLogIndex?: string | undefined;
1654
+ bundle?: unknown;
1655
+ }, {
1656
+ signed: boolean;
1657
+ signedAt: string;
1658
+ digest: string;
1659
+ mediaType: string;
1660
+ error?: string | undefined;
1661
+ rekorLogIndex?: string | undefined;
1662
+ bundle?: unknown;
1663
+ }>>;
1664
+ }, "strip", z.ZodTypeAny, {
1665
+ level: "CERTIFIED" | "APPROVED" | "REVIEW_REQUIRED" | "BLOCKED";
1666
+ evidence: {
1667
+ name: string;
1668
+ type: string;
1669
+ digest: string;
1670
+ }[];
1671
+ expiresAt: string;
1672
+ issuer: {
1673
+ name: string;
1674
+ tool: string;
1675
+ toolVersion: string;
1676
+ actor?: {
1677
+ id: string;
1678
+ type: "service" | "user" | "system";
1679
+ name?: string | undefined;
1680
+ email?: string | undefined;
1681
+ } | undefined;
1682
+ };
1683
+ subject: {
1684
+ name: string;
1685
+ kind: "agent" | "mcp-server" | "codebase";
1686
+ version?: string | undefined;
1687
+ description?: string | undefined;
1688
+ digest?: string | undefined;
1689
+ identifier?: string | undefined;
1690
+ };
1691
+ provenance: {
1692
+ auditTrailHead?: string | undefined;
1693
+ decisionRecords?: number | undefined;
1694
+ evidenceBundleId?: string | undefined;
1695
+ evidenceBundleDigest?: string | undefined;
1696
+ };
1697
+ integrity: {
1698
+ algorithm: "sha256";
1699
+ canonicalization: "sorted-keys-json";
1700
+ contentDigest: string;
1701
+ };
1702
+ schemaVersion: "https://vaspera.dev/schemas/agent-certificate/v1";
1703
+ certificateId: string;
1704
+ issuedAt: string;
1705
+ overallScore: number;
1706
+ dimensions: {
1707
+ security: {
1708
+ status: "warn" | "pass" | "fail" | "not_assessed";
1709
+ summary: string;
1710
+ score: number;
1711
+ checks: {
1712
+ id: string;
1713
+ status: "warn" | "pass" | "fail";
1714
+ title: string;
1715
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1716
+ category?: string | undefined;
1717
+ evidenceDigest?: string | undefined;
1718
+ detail?: string | undefined;
1719
+ }[];
1720
+ };
1721
+ quality: {
1722
+ status: "warn" | "pass" | "fail" | "not_assessed";
1723
+ summary: string;
1724
+ score: number;
1725
+ checks: {
1726
+ id: string;
1727
+ status: "warn" | "pass" | "fail";
1728
+ title: string;
1729
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1730
+ category?: string | undefined;
1731
+ evidenceDigest?: string | undefined;
1732
+ detail?: string | undefined;
1733
+ }[];
1734
+ };
1735
+ compliance: {
1736
+ status: "warn" | "pass" | "fail" | "not_assessed";
1737
+ summary: string;
1738
+ score: number;
1739
+ frameworks: {
1740
+ framework: string;
1741
+ controlsTotal: number;
1742
+ controlsAtRisk: number;
1743
+ controlsSatisfied: number;
1744
+ controlsFailed: number;
1745
+ controls?: {
1746
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1747
+ title: string;
1748
+ controlId: string;
1749
+ }[] | undefined;
1750
+ }[];
1751
+ };
1752
+ explainability: {
1753
+ status: "warn" | "pass" | "fail" | "not_assessed";
1754
+ summary: string;
1755
+ score: number;
1756
+ checks: {
1757
+ id: string;
1758
+ status: "warn" | "pass" | "fail";
1759
+ title: string;
1760
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1761
+ category?: string | undefined;
1762
+ evidenceDigest?: string | undefined;
1763
+ detail?: string | undefined;
1764
+ }[];
1765
+ };
1766
+ scalability: {
1767
+ status: "warn" | "pass" | "fail" | "not_assessed";
1768
+ summary: string;
1769
+ score: number;
1770
+ checks: {
1771
+ id: string;
1772
+ status: "warn" | "pass" | "fail";
1773
+ title: string;
1774
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1775
+ category?: string | undefined;
1776
+ evidenceDigest?: string | undefined;
1777
+ detail?: string | undefined;
1778
+ }[];
1779
+ };
1780
+ aiBom: {
1781
+ status: "warn" | "pass" | "fail" | "not_assessed";
1782
+ summary: string;
1783
+ score: number;
1784
+ components: {
1785
+ name: string;
1786
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1787
+ version?: string | undefined;
1788
+ provider?: string | undefined;
1789
+ role?: string | undefined;
1790
+ digest?: string | undefined;
1791
+ }[];
1792
+ };
1793
+ };
1794
+ signature?: {
1795
+ signed: boolean;
1796
+ signedAt: string;
1797
+ digest: string;
1798
+ mediaType: string;
1799
+ error?: string | undefined;
1800
+ rekorLogIndex?: string | undefined;
1801
+ bundle?: unknown;
1802
+ } | undefined;
1803
+ }, {
1804
+ level: "CERTIFIED" | "APPROVED" | "REVIEW_REQUIRED" | "BLOCKED";
1805
+ evidence: {
1806
+ name: string;
1807
+ type: string;
1808
+ digest: string;
1809
+ }[];
1810
+ expiresAt: string;
1811
+ issuer: {
1812
+ name: string;
1813
+ tool: string;
1814
+ toolVersion: string;
1815
+ actor?: {
1816
+ id: string;
1817
+ type: "service" | "user" | "system";
1818
+ name?: string | undefined;
1819
+ email?: string | undefined;
1820
+ } | undefined;
1821
+ };
1822
+ subject: {
1823
+ name: string;
1824
+ kind: "agent" | "mcp-server" | "codebase";
1825
+ version?: string | undefined;
1826
+ description?: string | undefined;
1827
+ digest?: string | undefined;
1828
+ identifier?: string | undefined;
1829
+ };
1830
+ provenance: {
1831
+ auditTrailHead?: string | undefined;
1832
+ decisionRecords?: number | undefined;
1833
+ evidenceBundleId?: string | undefined;
1834
+ evidenceBundleDigest?: string | undefined;
1835
+ };
1836
+ integrity: {
1837
+ algorithm: "sha256";
1838
+ canonicalization: "sorted-keys-json";
1839
+ contentDigest: string;
1840
+ };
1841
+ schemaVersion: "https://vaspera.dev/schemas/agent-certificate/v1";
1842
+ certificateId: string;
1843
+ issuedAt: string;
1844
+ overallScore: number;
1845
+ dimensions: {
1846
+ security: {
1847
+ status: "warn" | "pass" | "fail" | "not_assessed";
1848
+ summary: string;
1849
+ score: number;
1850
+ checks: {
1851
+ id: string;
1852
+ status: "warn" | "pass" | "fail";
1853
+ title: string;
1854
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1855
+ category?: string | undefined;
1856
+ evidenceDigest?: string | undefined;
1857
+ detail?: string | undefined;
1858
+ }[];
1859
+ };
1860
+ quality: {
1861
+ status: "warn" | "pass" | "fail" | "not_assessed";
1862
+ summary: string;
1863
+ score: number;
1864
+ checks: {
1865
+ id: string;
1866
+ status: "warn" | "pass" | "fail";
1867
+ title: string;
1868
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1869
+ category?: string | undefined;
1870
+ evidenceDigest?: string | undefined;
1871
+ detail?: string | undefined;
1872
+ }[];
1873
+ };
1874
+ compliance: {
1875
+ status: "warn" | "pass" | "fail" | "not_assessed";
1876
+ summary: string;
1877
+ score: number;
1878
+ frameworks: {
1879
+ framework: string;
1880
+ controlsTotal: number;
1881
+ controlsAtRisk: number;
1882
+ controlsSatisfied: number;
1883
+ controlsFailed: number;
1884
+ controls?: {
1885
+ status: "failed" | "at_risk" | "satisfied" | "not_applicable";
1886
+ title: string;
1887
+ controlId: string;
1888
+ }[] | undefined;
1889
+ }[];
1890
+ };
1891
+ explainability: {
1892
+ status: "warn" | "pass" | "fail" | "not_assessed";
1893
+ summary: string;
1894
+ score: number;
1895
+ checks: {
1896
+ id: string;
1897
+ status: "warn" | "pass" | "fail";
1898
+ title: string;
1899
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1900
+ category?: string | undefined;
1901
+ evidenceDigest?: string | undefined;
1902
+ detail?: string | undefined;
1903
+ }[];
1904
+ };
1905
+ scalability: {
1906
+ status: "warn" | "pass" | "fail" | "not_assessed";
1907
+ summary: string;
1908
+ score: number;
1909
+ checks: {
1910
+ id: string;
1911
+ status: "warn" | "pass" | "fail";
1912
+ title: string;
1913
+ severity?: "info" | "critical" | "high" | "medium" | "low" | undefined;
1914
+ category?: string | undefined;
1915
+ evidenceDigest?: string | undefined;
1916
+ detail?: string | undefined;
1917
+ }[];
1918
+ };
1919
+ aiBom: {
1920
+ status: "warn" | "pass" | "fail" | "not_assessed";
1921
+ summary: string;
1922
+ score: number;
1923
+ components: {
1924
+ name: string;
1925
+ kind: "tool" | "model" | "prompt" | "dependency" | "dataset";
1926
+ version?: string | undefined;
1927
+ provider?: string | undefined;
1928
+ role?: string | undefined;
1929
+ digest?: string | undefined;
1930
+ }[];
1931
+ };
1932
+ };
1933
+ signature?: {
1934
+ signed: boolean;
1935
+ signedAt: string;
1936
+ digest: string;
1937
+ mediaType: string;
1938
+ error?: string | undefined;
1939
+ rekorLogIndex?: string | undefined;
1940
+ bundle?: unknown;
1941
+ } | undefined;
1942
+ }>;
1943
+ export type AgentCertificateBody = z.infer<typeof AgentCertificateBodySchema>;
1944
+ export type AgentCertificate = z.infer<typeof AgentCertificateSchema>;
1945
+ export type DimensionResult = z.infer<typeof DimensionResultSchema>;
1946
+ export type DimensionCheck = z.infer<typeof DimensionCheckSchema>;
1947
+ /** Deterministic JSON for a certificate body (stable across machines). */
1948
+ export declare function canonicalize(body: AgentCertificateBody): string;
1949
+ /** sha256 over the canonical body. */
1950
+ export declare function computeContentDigest(body: AgentCertificateBody): string;
1951
+ export interface FinalizeOptions {
1952
+ /** Attempt Sigstore signing (requires OIDC; falls back to unsigned). */
1953
+ sign?: boolean;
1954
+ signingOptions?: SigningOptions;
1955
+ }
1956
+ /**
1957
+ * Turn a validated body into a finalized certificate: attach the content
1958
+ * digest and, if requested and possible, a Sigstore signature. Signing
1959
+ * gracefully degrades to an unsigned-but-digested certificate when no
1960
+ * OIDC identity is available (e.g. local dev) — the digest still makes it
1961
+ * tamper-evident.
1962
+ */
1963
+ export declare function finalizeCertificate(body: AgentCertificateBody, options?: FinalizeOptions): Promise<AgentCertificate>;
1964
+ export interface VerifyCertificateResult {
1965
+ valid: boolean;
1966
+ schemaValid: boolean;
1967
+ contentDigestValid: boolean;
1968
+ signaturePresent: boolean;
1969
+ signatureValid?: boolean;
1970
+ errors: string[];
1971
+ }
1972
+ /**
1973
+ * Verify a certificate without trusting the issuer: re-validate the
1974
+ * schema, recompute the content digest from the canonical body, and (if
1975
+ * present) check the Sigstore signature.
1976
+ */
1977
+ export declare function verifyCertificate(certificate: unknown): Promise<VerifyCertificateResult>;
1978
+ /** Parse + validate an arbitrary object as an AgentCertificate. */
1979
+ export declare function parseCertificate(value: unknown): AgentCertificate;
1980
+ export {};
1981
+ //# sourceMappingURL=agent-certificate.d.ts.map