You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/integrator/public-api.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -78,6 +78,10 @@ unrelated exports in their evolving packages remain free to change.
78
78
|`aicr.BundleArtifact`|`*pkg/bundler/result.Output`| Deliberate transparent alias. Callers receive the complete bundler result, including `HasErrors`, without a lossy projection. |
79
79
|`aicr.OIDCResolveOptions`|`pkg/bundler/attestation.ResolveOptions`| Deliberate transparent alias. CLI and server callers can pass the same late-bound signing inputs used by the attestation resolver. |
80
80
|`aicr.CriteriaRegistry`|`pkg/recipe.CriteriaRegistry`| Documented transparent alias. Kept as an alias intentionally because the registry is behavior-rich (`ParseService`, `SetStrict`, `Values`, ...) and carries mutable per-`DataProvider` state — wrapping would either break the per-Client identity coupling (copy) or add no isolation win over the alias (pointer). |
81
+
|`aicr.BundleVerifyReport`|`pkg/bundler/verifier.VerifyResult`| Deliberate transparent alias. Callers receive the verifier's complete report (`TrustLevel`, `TrustReason`, `Errors`, per-stage booleans) rather than a projection that would have to grow with every new check. |
82
+
|`aicr.EvidenceVerification`|`pkg/evidence/verifier.VerifyResult`| Deliberate transparent alias, for the same reason, and so `aicr.RenderEvidenceJSON` / `RenderEvidenceMarkdown` render the identical document `aicr evidence verify` emits. |
83
+
|`aicr.Config`|`pkg/config.AICRConfig`|**Facade-owned wrapper**, not an alias: Go cannot attach methods to another package's type through an alias, and the config document's ~30 nested types would otherwise freeze under the API-diff gate. Obtain one from `aicr.LoadConfig` (file or HTTP(S) URL) or `aicr.WrapConfig`. Its methods DERIVE options (`BundleVerifyOptions`, `RecipeSource`, `RecipeCriteria`, `RecipeResolveOptions`, ...) rather than applying them, so caller overrides stay explicit; `Unwrap()` reaches the raw document for fields the facade does not project. |
84
+
|`aicr.CriteriaDimension`, `aicr.DimensionService` / `DimensionAccelerator` / `DimensionIntent` / `DimensionOS` / `DimensionPlatform`| string consts |**Facade-owned.** The criteria dimensions subject to the coverage post-condition, and the values `WithSnapshotCriteriaRelaxation` accepts. Values match `pkg/recipe.CoverageDimensionNames` exactly, which a test asserts. `nodes` is absent: no overlay gates on it. |
0 commit comments