Documentation
¶
Index ¶
- func ValidDeliberationAccessMode(value DeliberationAccessMode) bool
- func ValidDeliberationAllowedOperation(value DeliberationAllowedOperation) bool
- func ValidDeliberationAutomationMode(value DeliberationAutomationMode) bool
- func ValidDeliberationCaptureMode(value DeliberationCaptureMode) bool
- func ValidDeliberationFailureCode(value DeliberationFailureCode) bool
- func ValidDeliberationGrantStatus(value DeliberationGrantStatus) bool
- func ValidDeliberationLaneStatus(value DeliberationLaneStatus) bool
- func ValidDeliberationProviderGroup(value DeliberationProviderGroup) bool
- func ValidDeliberationReleaseEligibility(value DeliberationReleaseEligibility) bool
- func ValidDeliberationRuntimeReadiness(value DeliberationRuntimeReadiness) bool
- func ValidDeliberationSessionStatus(value DeliberationSessionStatus) bool
- func ValidDeliberationTurnStatus(value DeliberationTurnStatus) bool
- func ValidateDeliberationAutomationGrantReadModel(grant DeliberationAutomationGrantReadModel) error
- func ValidateDeliberationProviderLaneReadModel(lane DeliberationProviderLaneReadModel) error
- func ValidateDeliberationSessionReadModel(session DeliberationSessionReadModel) error
- func ValidateDeliberationTurnReadModel(turn DeliberationTurnReadModel) error
- func ValidateExperienceAssetCandidateReadModel(model ExperienceAssetCandidateReadModel) error
- func ValidatePackHandsRequirementReadModel(model PackHandsRequirementReadModel) error
- type DeliberationAccessMode
- type DeliberationAllowedOperation
- type DeliberationAutomationGrantReadModel
- type DeliberationAutomationMode
- type DeliberationCaptureMode
- type DeliberationFailureCode
- type DeliberationGrantStatus
- type DeliberationLaneStatus
- type DeliberationProviderGroup
- type DeliberationProviderLaneReadModel
- type DeliberationReleaseEligibility
- type DeliberationRuntimeReadiness
- type DeliberationSessionReadModel
- type DeliberationSessionStatus
- type DeliberationTurnReadModel
- type DeliberationTurnStatus
- type ExperienceAssetCandidateReadModel
- type ExperienceAssetDesensitizationReport
- type ExperienceAssetProvenance
- type MobilePairingBootstrapCandidate
- type MobilePairingBootstrapRequest
- type MobileSessionIssueIntent
- type PackHandsRequirementReadModel
- type ReadModelEnvelope
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ValidDeliberationAccessMode ¶ added in v0.15.0
func ValidDeliberationAccessMode(value DeliberationAccessMode) bool
func ValidDeliberationAllowedOperation ¶ added in v0.15.0
func ValidDeliberationAllowedOperation(value DeliberationAllowedOperation) bool
func ValidDeliberationAutomationMode ¶ added in v0.15.0
func ValidDeliberationAutomationMode(value DeliberationAutomationMode) bool
func ValidDeliberationCaptureMode ¶ added in v0.15.0
func ValidDeliberationCaptureMode(value DeliberationCaptureMode) bool
func ValidDeliberationFailureCode ¶ added in v0.15.0
func ValidDeliberationFailureCode(value DeliberationFailureCode) bool
func ValidDeliberationGrantStatus ¶ added in v0.15.0
func ValidDeliberationGrantStatus(value DeliberationGrantStatus) bool
func ValidDeliberationLaneStatus ¶ added in v0.15.0
func ValidDeliberationLaneStatus(value DeliberationLaneStatus) bool
func ValidDeliberationProviderGroup ¶ added in v0.15.0
func ValidDeliberationProviderGroup(value DeliberationProviderGroup) bool
func ValidDeliberationReleaseEligibility ¶ added in v0.15.0
func ValidDeliberationReleaseEligibility(value DeliberationReleaseEligibility) bool
func ValidDeliberationRuntimeReadiness ¶ added in v0.15.0
func ValidDeliberationRuntimeReadiness(value DeliberationRuntimeReadiness) bool
func ValidDeliberationSessionStatus ¶ added in v0.15.0
func ValidDeliberationSessionStatus(value DeliberationSessionStatus) bool
func ValidDeliberationTurnStatus ¶ added in v0.15.0
func ValidDeliberationTurnStatus(value DeliberationTurnStatus) bool
func ValidateDeliberationAutomationGrantReadModel ¶ added in v0.15.0
func ValidateDeliberationAutomationGrantReadModel(grant DeliberationAutomationGrantReadModel) error
ValidateDeliberationAutomationGrantReadModel rejects all unverifiable or over-broad grant projections. Runtime consumers must additionally verify the Base-issued decision and expiry; this shape check does not grant authority.
func ValidateDeliberationProviderLaneReadModel ¶ added in v0.15.0
func ValidateDeliberationProviderLaneReadModel(lane DeliberationProviderLaneReadModel) error
ValidateDeliberationProviderLaneReadModel rejects unknown adapter state and prevents an imported lane from being projected without its artifact and ledger references. Actual Receipt existence must still be verified by os-03.
func ValidateDeliberationSessionReadModel ¶ added in v0.15.0
func ValidateDeliberationSessionReadModel(session DeliberationSessionReadModel) error
ValidateDeliberationSessionReadModel confirms that a client projection only contains governed references and closed lifecycle values. It does not make the projection a truth source or authorize any automation.
func ValidateDeliberationTurnReadModel ¶ added in v0.15.0
func ValidateDeliberationTurnReadModel(turn DeliberationTurnReadModel) error
ValidateDeliberationTurnReadModel checks references and bounded counters. It purposely does not decide whether a turn may dispatch; that remains an owner-product Base and Gateway decision.
func ValidateExperienceAssetCandidateReadModel ¶ added in v0.17.0
func ValidateExperienceAssetCandidateReadModel(model ExperienceAssetCandidateReadModel) error
ValidateExperienceAssetCandidateReadModel checks candidate/formal isolation and immutable provenance without treating the projection as a truth source.
func ValidatePackHandsRequirementReadModel ¶ added in v0.16.0
func ValidatePackHandsRequirementReadModel(model PackHandsRequirementReadModel) error
ValidatePackHandsRequirementReadModel checks projection integrity without treating readiness, installability, or binding as authorization.
Types ¶
type DeliberationAccessMode ¶ added in v0.15.0
type DeliberationAccessMode string
DeliberationAccessMode describes an adapter's declared access path; it does not grant that access.
const ( DeliberationAccessOfficialAPI DeliberationAccessMode = "official_api" DeliberationAccessProviderAuthorizedWeb DeliberationAccessMode = "provider_authorized_web" DeliberationAccessManualWeb DeliberationAccessMode = "manual_web" )
type DeliberationAllowedOperation ¶ added in v0.15.0
type DeliberationAllowedOperation string
DeliberationAllowedOperation is intentionally closed. A provider adapter may perform only the operations carried by a server-issued grant.
const ( DeliberationOperationFillPrompt DeliberationAllowedOperation = "fill_prompt" DeliberationOperationSubmitPrompt DeliberationAllowedOperation = "submit_prompt" DeliberationOperationObserveResponse DeliberationAllowedOperation = "observe_response" DeliberationOperationCaptureResponse DeliberationAllowedOperation = "capture_response" DeliberationOperationRequestSynthesis DeliberationAllowedOperation = "request_synthesis" )
type DeliberationAutomationGrantReadModel ¶ added in v0.15.0
type DeliberationAutomationGrantReadModel struct {
GrantRef string `json:"grant_ref"`
Mode DeliberationAutomationMode `json:"mode"`
SessionRef string `json:"session_ref"`
TurnRef string `json:"turn_ref,omitempty"`
TransactionRef string `json:"transaction_ref"`
ProviderAdapterRefs []string `json:"provider_adapter_refs"`
AllowedOperations []DeliberationAllowedOperation `json:"allowed_operations"`
DispatchOnConfirm bool `json:"dispatch_on_confirm"`
QuestionSHA256 string `json:"question_sha256,omitempty"`
IdleExpiresAt string `json:"idle_expires_at"`
AbsoluteExpiresAt string `json:"absolute_expires_at"`
MaxTurns int `json:"max_turns"`
RemainingTurns int `json:"remaining_turns"`
MaxDispatchesPerLane int `json:"max_dispatches_per_lane"`
Status DeliberationGrantStatus `json:"status"`
DecisionRef string `json:"decision_ref"`
PolicySnapshotRef string `json:"policy_snapshot_ref"`
EvidenceRefs []string `json:"evidence_refs"`
CandidateOnly bool `json:"candidate_only"`
NonFormal bool `json:"non_formal"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
DeliberationAutomationGrantReadModel projects a Base-issued grant for the currently selected automation scope. It never permits more than one dispatch per lane and is valid only while its owner product can verify DecisionRef.
type DeliberationAutomationMode ¶ added in v0.15.0
type DeliberationAutomationMode string
DeliberationAutomationMode limits the scope of a server-issued automation grant. It is a projection of a Base decision, never a client-supplied approval signal.
const ( DeliberationAutomationManual DeliberationAutomationMode = "manual" DeliberationAutomationCurrentTurnAuto DeliberationAutomationMode = "current_turn_auto" DeliberationAutomationSessionAuto DeliberationAutomationMode = "session_auto" )
type DeliberationCaptureMode ¶ added in v0.15.0
type DeliberationCaptureMode string
const ( DeliberationCaptureNetworkDOMMatch DeliberationCaptureMode = "network_dom_match" DeliberationCaptureDOMFallback DeliberationCaptureMode = "dom_fallback" DeliberationCaptureConflictReviewRequired DeliberationCaptureMode = "conflict_review_required" )
type DeliberationFailureCode ¶ added in v0.15.0
type DeliberationFailureCode string
const ( DeliberationFailureLoginRequired DeliberationFailureCode = "login_required" DeliberationFailureCaptchaRequired DeliberationFailureCode = "captcha_required" DeliberationFailureAdapterDrift DeliberationFailureCode = "adapter_drift" DeliberationFailureTimedOut DeliberationFailureCode = "timed_out" DeliberationFailureCaptureConflict DeliberationFailureCode = "capture_conflict" DeliberationFailureRecoveryRequired DeliberationFailureCode = "recovery_required" DeliberationFailurePolicyStale DeliberationFailureCode = "policy_stale" DeliberationFailureDigestMismatch DeliberationFailureCode = "digest_mismatch" DeliberationFailureReceiptAppendFailed DeliberationFailureCode = "receipt_append_failed" DeliberationFailureModelNotReady DeliberationFailureCode = "model_not_ready" DeliberationFailureEmergencyStop DeliberationFailureCode = "emergency_stop" DeliberationFailureOriginMismatch DeliberationFailureCode = "origin_mismatch" )
type DeliberationGrantStatus ¶ added in v0.15.0
type DeliberationGrantStatus string
const ( DeliberationGrantPrepared DeliberationGrantStatus = "prepared" DeliberationGrantActive DeliberationGrantStatus = "active" DeliberationGrantConsumed DeliberationGrantStatus = "consumed" DeliberationGrantExpired DeliberationGrantStatus = "expired" DeliberationGrantRevoked DeliberationGrantStatus = "revoked" )
type DeliberationLaneStatus ¶ added in v0.15.0
type DeliberationLaneStatus string
DeliberationLaneStatus records an adapter lane's controlled progress.
const ( DeliberationLaneSelected DeliberationLaneStatus = "selected" DeliberationLanePreflight DeliberationLaneStatus = "preflight" DeliberationLaneFilling DeliberationLaneStatus = "filling" DeliberationLaneSubmitting DeliberationLaneStatus = "submitting" DeliberationLaneAwaitingResponse DeliberationLaneStatus = "awaiting_response" DeliberationLaneCapturing DeliberationLaneStatus = "capturing" DeliberationLaneImported DeliberationLaneStatus = "imported" DeliberationLaneFailed DeliberationLaneStatus = "failed" DeliberationLaneBlocked DeliberationLaneStatus = "blocked" DeliberationLaneCaptchaRequired DeliberationLaneStatus = "captcha_required" DeliberationLaneLoginRequired DeliberationLaneStatus = "login_required" DeliberationLaneAdapterDrift DeliberationLaneStatus = "adapter_drift" DeliberationLaneTimedOut DeliberationLaneStatus = "timed_out" DeliberationLaneExcluded DeliberationLaneStatus = "excluded" DeliberationLaneRecoveryRequired DeliberationLaneStatus = "recovery_required" DeliberationLaneCancelled DeliberationLaneStatus = "cancelled" )
type DeliberationProviderGroup ¶ added in v0.15.0
type DeliberationProviderGroup string
DeliberationProviderGroup fixes the product directory grouping. It is a display and selection boundary, not a claim that an adapter is eligible to execute.
const ( DeliberationProviderGroupChinaCore DeliberationProviderGroup = "china_core" DeliberationProviderGroupChinaExtended DeliberationProviderGroup = "china_extended" DeliberationProviderGroupInternationalSupplement DeliberationProviderGroup = "international_supplement" DeliberationProviderGroupCustom DeliberationProviderGroup = "custom" )
type DeliberationProviderLaneReadModel ¶ added in v0.15.0
type DeliberationProviderLaneReadModel struct {
LaneRef string `json:"lane_ref"`
SessionRef string `json:"session_ref"`
TurnRef string `json:"turn_ref"`
ProviderGroup DeliberationProviderGroup `json:"provider_group"`
ProviderResourceRef string `json:"provider_resource_ref"`
ProviderAdapterRef string `json:"provider_adapter_ref"`
AdapterVersion string `json:"adapter_version"`
AdapterDigest string `json:"adapter_digest"`
AccessMode DeliberationAccessMode `json:"access_mode"`
ReleaseEligibility DeliberationReleaseEligibility `json:"release_eligibility"`
RuntimeReadiness DeliberationRuntimeReadiness `json:"runtime_readiness"`
Status DeliberationLaneStatus `json:"status"`
BrowserRunRef string `json:"browser_run_ref,omitempty"`
TabBindingRef string `json:"tab_binding_ref,omitempty"`
GrantRef string `json:"grant_ref,omitempty"`
ResponseArtifactRef string `json:"response_artifact_ref,omitempty"`
ResponseSHA256 string `json:"response_sha256,omitempty"`
ResponseByteCount int `json:"response_byte_count,omitempty"`
ProviderMessageRefHash string `json:"provider_message_ref_hash,omitempty"`
CaptureMode DeliberationCaptureMode `json:"capture_mode,omitempty"`
FailureCode DeliberationFailureCode `json:"failure_code,omitempty"`
FailureSummaryRedacted string `json:"failure_summary_redacted,omitempty"`
ReceiptRefs []string `json:"receipt_refs,omitempty"`
StartedAt string `json:"started_at,omitempty"`
CompletedAt string `json:"completed_at,omitempty"`
ExpiresAt string `json:"expires_at,omitempty"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
CandidateOnly bool `json:"candidate_only"`
NonFormal bool `json:"non_formal"`
}
DeliberationProviderLaneReadModel exposes adapter release and runtime readiness separately. It carries redacted failure codes and artifact refs, never browser DOM, credentials or provider response text.
type DeliberationReleaseEligibility ¶ added in v0.15.0
type DeliberationReleaseEligibility string
const ( DeliberationReleaseReady DeliberationReleaseEligibility = "ready" DeliberationReleaseNotReady DeliberationReleaseEligibility = "not_ready" DeliberationReleaseBlocked DeliberationReleaseEligibility = "blocked" DeliberationReleaseStale DeliberationReleaseEligibility = "stale" )
type DeliberationRuntimeReadiness ¶ added in v0.15.0
type DeliberationRuntimeReadiness string
const ( DeliberationRuntimeReady DeliberationRuntimeReadiness = "ready" DeliberationRuntimeNotReady DeliberationRuntimeReadiness = "not_ready" DeliberationRuntimeBlocked DeliberationRuntimeReadiness = "blocked" DeliberationRuntimeProviderMissing DeliberationRuntimeReadiness = "provider_missing" )
type DeliberationSessionReadModel ¶ added in v0.15.0
type DeliberationSessionReadModel struct {
SessionRef string `json:"session_ref"`
TransactionRef string `json:"transaction_ref"`
SourceEventID string `json:"source_event_id"`
OwnerRef string `json:"owner_ref"`
Status DeliberationSessionStatus `json:"status"`
AutomationMode DeliberationAutomationMode `json:"automation_mode"`
AutomationGrant *DeliberationAutomationGrantReadModel `json:"automation_grant,omitempty"`
ActiveTurnRef string `json:"active_turn_ref,omitempty"`
Turns []DeliberationTurnReadModel `json:"turns"`
SelectedProviderAdapterRefs []string `json:"selected_provider_adapter_refs"`
OccVersion int64 `json:"occ_version"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
ExpiresAt string `json:"expires_at,omitempty"`
CandidateOnly bool `json:"candidate_only"`
NonFormal bool `json:"non_formal"`
}
DeliberationSessionReadModel is the client-safe projection of a session. It retains only governed references, hashes and statuses; question and response bodies remain in the owning product's controlled artifact store.
type DeliberationSessionStatus ¶ added in v0.15.0
type DeliberationSessionStatus string
DeliberationSessionStatus is the visible lifecycle of a deliberation session. A successful-looking state still requires a real Receipt in the owning product before it can be treated as formal.
const ( DeliberationSessionCreated DeliberationSessionStatus = "created" DeliberationSessionCollecting DeliberationSessionStatus = "collecting" DeliberationSessionAutoActive DeliberationSessionStatus = "auto_active" DeliberationSessionReadyPartial DeliberationSessionStatus = "ready_partial" DeliberationSessionReady DeliberationSessionStatus = "ready" DeliberationSessionSynthesizing DeliberationSessionStatus = "synthesizing" DeliberationSessionSynthesisReady DeliberationSessionStatus = "synthesis_ready" DeliberationSessionBlocked DeliberationSessionStatus = "blocked" DeliberationSessionRecoveryRequired DeliberationSessionStatus = "recovery_required" DeliberationSessionVoided DeliberationSessionStatus = "voided" )
type DeliberationTurnReadModel ¶ added in v0.15.0
type DeliberationTurnReadModel struct {
TurnRef string `json:"turn_ref"`
SessionRef string `json:"session_ref"`
TransactionRef string `json:"transaction_ref"`
SourceEventID string `json:"source_event_id"`
Sequence int `json:"sequence"`
QuestionArtifactRef string `json:"question_artifact_ref"`
QuestionSHA256 string `json:"question_sha256"`
Status DeliberationTurnStatus `json:"status"`
ProviderLanes []DeliberationProviderLaneReadModel `json:"provider_lanes"`
SelectedLaneCount int `json:"selected_lane_count"`
ImportedLaneCount int `json:"imported_lane_count"`
SynthesisCandidateRef string `json:"synthesis_candidate_ref,omitempty"`
AutomationAttemptRef string `json:"automation_attempt_ref,omitempty"`
OccVersion int64 `json:"occ_version"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
CandidateOnly bool `json:"candidate_only"`
NonFormal bool `json:"non_formal"`
}
DeliberationTurnReadModel is a client-safe one-turn projection. Question content is addressed by artifact ref and SHA-256, never serialized here.
type DeliberationTurnStatus ¶ added in v0.15.0
type DeliberationTurnStatus string
DeliberationTurnStatus identifies the state of one question turn without carrying the question or any provider response body.
const ( DeliberationTurnCreated DeliberationTurnStatus = "created" DeliberationTurnCollecting DeliberationTurnStatus = "collecting" DeliberationTurnDispatching DeliberationTurnStatus = "dispatching" DeliberationTurnReadyPartial DeliberationTurnStatus = "ready_partial" DeliberationTurnReady DeliberationTurnStatus = "ready" DeliberationTurnSynthesizing DeliberationTurnStatus = "synthesizing" DeliberationTurnSynthesisReady DeliberationTurnStatus = "synthesis_ready" DeliberationTurnBlocked DeliberationTurnStatus = "blocked" DeliberationTurnRecoveryRequired DeliberationTurnStatus = "recovery_required" DeliberationTurnAuthorizationRequired DeliberationTurnStatus = "authorization_required" )
type ExperienceAssetCandidateReadModel ¶ added in v0.17.0
type ExperienceAssetCandidateReadModel struct {
CandidateID string `json:"candidate_id"`
CandidateOnly bool `json:"candidate_only"`
NonFormal bool `json:"non_formal"`
Status string `json:"status"`
Version int `json:"version"`
SourceReceiptRef string `json:"source_receipt_ref"`
TransactionRef string `json:"transaction_ref"`
PackRef string `json:"pack_ref"`
SourcePackVersionRef string `json:"source_pack_version_ref"`
SourceModule string `json:"source_module"`
Provenance ExperienceAssetProvenance `json:"provenance"`
InheritedPermissions string `json:"inherited_permissions"`
DesensitizedExperience string `json:"desensitized_experience,omitempty"`
DesensitizationReport ExperienceAssetDesensitizationReport `json:"desensitization_report"`
ContributionCandidate *candidates.PackUsageContributionCandidate `json:"contribution_candidate,omitempty"`
PackVersionMigrationCandidate *candidates.PackVersionMigrationCandidate `json:"pack_version_migration_candidate,omitempty"`
ContributionReceipt *receipts.ContributionReceipt `json:"contribution_receipt,omitempty"`
PackVersionMigrationReceiptRef string `json:"pack_version_migration_receipt_ref,omitempty"`
CreatedAt string `json:"created_at"`
}
ExperienceAssetCandidateReadModel is the client-safe projection of one desensitized experience candidate. It cannot carry raw Receipt payloads, Owner authority, or a market-upload proof.
type ExperienceAssetDesensitizationReport ¶ added in v0.17.0
type ExperienceAssetProvenance ¶ added in v0.17.0
type MobilePairingBootstrapCandidate ¶ added in v0.15.0
type MobilePairingBootstrapCandidate struct {
OK bool `json:"ok"`
CandidateCreated bool `json:"candidate_created"`
Duplicate bool `json:"duplicate"`
CandidateOnly bool `json:"candidate_only"`
MobileTruthSource bool `json:"mobile_truth_source"`
Status string `json:"status"`
CandidateRef string `json:"candidate_ref"`
CandidateKind string `json:"candidate_kind"`
DeviceLabel string `json:"device_label"`
Platform string `json:"platform"`
IdempotencyKey string `json:"idempotency_key"`
CreatedAt string `json:"created_at"`
ProducesOwnerDecision bool `json:"produces_owner_decision"`
CredentialState string `json:"credential_state"`
}
MobilePairingBootstrapCandidate is a pre-approval ReadModel/Candidate projection. It carries no raw bootstrap proof, bearer, formal identity, binding, pairing, OwnerDecision, or Receipt truth. The Host creates formal binding and pairing facts only after the PC owner approves this candidate.
type MobilePairingBootstrapRequest ¶ added in v0.15.0
type MobilePairingBootstrapRequest struct {
DeviceLabel string `json:"device_label"`
Platform string `json:"platform"`
AppInstanceRef string `json:"app_instance_ref"`
IdempotencyKey string `json:"idempotency_key"`
}
MobilePairingBootstrapRequest is an authority-free description supplied by a phone before it holds a mobile session. The Host, not the phone, creates all binding and pairing refs after the PC owner approves the candidate.
type MobileSessionIssueIntent ¶ added in v0.15.0
type MobileSessionIssueIntent struct {
CandidateRef string `json:"candidate_ref"`
IdempotencyKey string `json:"idempotency_key"`
}
MobileSessionIssueIntent is the JSON body for a post-approval session issue. The one-time bootstrap proof travels only in a controlled request header and is intentionally not represented here.
type PackHandsRequirementReadModel ¶ added in v0.16.0
type PackHandsRequirementReadModel struct {
PackRef string `json:"pack_ref"`
PackVersionRef string `json:"pack_version_ref"`
RequirementRef string `json:"requirement_ref"`
RequiredCapabilities []string `json:"required_capabilities"`
ProviderFamily string `json:"provider_family"`
SoftwareRequirementRefs []string `json:"software_requirement_refs"`
SoftwareResolutionLockRefs []string `json:"software_resolution_lock_refs"`
ResolutionStatus string `json:"resolution_status"`
BlockedReason string `json:"blocked_reason,omitempty"`
ResolvedProviderResourceRef string `json:"resolved_provider_resource_ref,omitempty"`
ResolvedProviderDisplayLabel string `json:"resolved_provider_display_label,omitempty"`
ResolvedControlMethodRef string `json:"resolved_control_method_ref,omitempty"`
ResolvedExecutionMode string `json:"resolved_execution_mode,omitempty"`
Installable bool `json:"installable"`
InstallCandidateRef string `json:"install_candidate_ref,omitempty"`
RiskClass string `json:"risk_class"`
Optional bool `json:"optional"`
LastProbeReceiptRef string `json:"last_probe_receipt_ref,omitempty"`
LastResolutionReceiptRef string `json:"last_resolution_receipt_ref,omitempty"`
Stale bool `json:"stale"`
ExpiresAt string `json:"expires_at,omitempty"`
}
PackHandsRequirementReadModel is the server-produced, client-safe explanation of one Pack Hands requirement. It is a projection only: it cannot authorize execution, install a provider, or force a provider instance selection.
type ReadModelEnvelope ¶
type ReadModelEnvelope struct {
ViewID string `json:"view_id"`
Data interface{} `json:"data"`
}
ReadModelEnvelope 用于前端展示,根据纪律,它绝不可作为真相源。