host

package
v0.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: MIT Imports: 44 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrStreamTicketRequired          = errors.New("stream ticket is required")
	ErrPluginDataNotDeclared         = errors.New("plugin does not declare exportable data")
	ErrPluginDataArchiveRequired     = errors.New("archive_ref or settings_archive_ref is required")
	ErrPluginStorageNotDeclared      = errors.New("target plugin does not declare storage")
	ErrPluginSettingsNotDeclared     = errors.New("target plugin does not declare settings")
	ErrPluginMigrationPreflight      = errors.New("plugin migration preflight failed")
	ErrOperationCancelDispatchFailed = errors.New("operation cancel dispatch failed")
	ErrRetainedDataCleanupFailed     = errors.New("retained data cleanup failed")
	ErrRetainedDataBindFailed        = errors.New("retained data bind failed")
	ErrRetainedDataUnsafePayload     = errors.New("retained data payload is not safe to delete")
	ErrMethodRequestContract         = errors.New("plugin method request contract validation failed")
	ErrMethodResponseContract        = errors.New("plugin method response contract validation failed")
	ErrMethodAdapterPanic            = errors.New("plugin method adapter panicked")
	ErrConfirmationInvalid           = errors.New("plugin confirmation is invalid")
	ErrConfirmationRejected          = errors.New("plugin confirmation was rejected")
	ErrPluginStateVersionMismatch    = errors.New("plugin state version mismatch")
	ErrPluginTrustUnavailable        = errors.New("plugin trust is unavailable")
	ErrPluginTrustDenied             = errors.New("plugin trust does not allow execution")
	ErrSecurityEventPersistence      = errors.New("plugin security event persistence failed")
)
View Source
var (
	ErrSecretStoreRequired              = errors.New("secret store adapter is required")
	ErrInvalidSecretRef                 = secrets.ErrInvalidSecretRef
	ErrPackageTrustVerifierRequired     = errors.New("package trust verifier is required for requested trust state")
	ErrPackageTrustVerificationInvalid  = errors.New("package trust verifier returned invalid trust state")
	ErrReleaseMetadataVerifierRequired  = errors.New("release metadata verifier is required")
	ErrSourceRevocationVerifierRequired = errors.New("source revocation evidence verifier is required")
	ErrReleaseSourcePolicyRequired      = errors.New("release source policy resolver is required")
	ErrReleaseArtifactResolverRequired  = errors.New("release artifact resolver is required")
	ErrReleaseRefVerificationFailed     = errors.New("release ref verification failed")
	ErrReleaseRefPolicyDenied           = errors.New("release ref source policy denied")
)
View Source
var ErrConfirmationRequired = errors.New("plugin method confirmation required")

Functions

func ImportLocalPackageBytes

func ImportLocalPackageBytes(ctx context.Context, h *Host, data []byte) (registry.PluginRecord, error)

Types

type Adapters

type Adapters struct {
	SessionResolver             sessionctx.Resolver
	Policy                      PolicyAdapter
	PackageTrustVerifier        PackageTrustVerifier
	ReleaseMetadataVerifier     ReleaseMetadataVerifier
	RevocationVerifier          SourceRevocationEvidenceVerifier
	ReleaseSourcePolicy         ReleaseSourcePolicyResolver
	ReleaseArtifactResolver     ReleaseArtifactResolver
	HostRequirements            HostRequirementPolicy
	CapabilityContractArtifacts CapabilityContractArtifactResolver
	CapabilityContractKeys      CapabilityContractKeyResolver
	Registry                    registry.Store
	Audit                       AuditSink
	Diagnostics                 DiagnosticsSink
	Secrets                     SecretStoreAdapter
	RuntimeArtifactResolver     RuntimeArtifactResolver
	RuntimeSupervisor           runtimeclient.Supervisor
	SurfaceCatalog              SurfaceCatalogSink
	Assets                      pluginpkg.AssetStore
	InstallStages               installstage.Store
	Capabilities                *capability.Registry
	CoreActions                 CoreActionAdapter
	SurfaceTokens               *bridge.SurfaceTokenService
	Storage                     storage.Broker
	Connectivity                connectivity.Broker
	NetworkExecutor             connectivity.NetworkExecutor
	Operations                  operation.Store
	Permissions                 permissions.Store
	SecurityPolicy              security.PolicyStore
	ConfirmationIntents         security.ConfirmationIntentStore
	Cleanup                     cleanup.Orchestrator
	RetainedData                retaineddata.Store
	Settings                    settings.Store
	Streams                     stream.Store
}

type AuditEvent

type AuditEvent = observability.AuditEvent

type AuditLister

type AuditLister = observability.AuditLister

type AuditSink

type AuditSink = observability.AuditSink

type BindRetainedDataRequest

type BindRetainedDataRequest struct {
	RetainedID             string    `json:"retained_id"`
	TargetPluginInstanceID string    `json:"target_plugin_instance_id"`
	Now                    time.Time `json:"now,omitempty"`
}

type CallMethodRequest

type CallMethodRequest struct {
	PluginInstanceID     string         `json:"plugin_instance_id"`
	SurfaceInstanceID    string         `json:"surface_instance_id"`
	SessionChannelIDHash string         `json:"session_channel_id_hash,omitempty"`
	OwnerSessionHash     string         `json:"owner_session_hash,omitempty"`
	OwnerUserHash        string         `json:"owner_user_hash,omitempty"`
	BridgeChannelID      string         `json:"bridge_channel_id"`
	GatewayToken         string         `json:"plugin_gateway_token"`
	ConfirmationID       string         `json:"confirmation_id,omitempty"`
	Method               string         `json:"method"`
	Params               map[string]any `json:"params,omitempty"`
	Now                  time.Time      `json:"now,omitempty"`
	// contains filtered or unexported fields
}

type CallMethodResult

type CallMethodResult struct {
	Data                 any        `json:"data"`
	OperationID          string     `json:"operation_id,omitempty"`
	StreamID             string     `json:"stream_id,omitempty"`
	StreamTicket         string     `json:"stream_ticket,omitempty"`
	StreamTicketID       string     `json:"stream_ticket_id,omitempty"`
	StreamExpiresAt      *time.Time `json:"stream_expires_at,omitempty"`
	ConfirmationRequired bool       `json:"confirmation_required,omitempty"`
	ConfirmationTokenID  string     `json:"confirmation_token_id,omitempty"`
	RequestHash          string     `json:"request_hash,omitempty"`
	PlanHash             string     `json:"plan_hash,omitempty"`
}

type CancelOperationRequest

type CancelOperationRequest struct {
	OperationID string `json:"operation_id"`
	Reason      string `json:"reason,omitempty"`
	Now         time.Time
}

type CancelSurfaceOperationRequest added in v0.3.0

type CancelSurfaceOperationRequest struct {
	OperationID          string
	SurfaceInstanceID    string
	OwnerSessionHash     string
	OwnerUserHash        string
	SessionChannelIDHash string
	BridgeChannelID      string
	Reason               string
	Now                  time.Time
}

type CapabilityArtifactFetchHop added in v0.3.0

type CapabilityArtifactFetchHop struct {
	URL        string `json:"url"`
	ResolvedIP string `json:"resolved_ip"`
}

type CapabilityContractArtifactResolver added in v0.3.0

type CapabilityContractArtifactResolver interface {
	ResolveCapabilityContract(ctx context.Context, req CapabilityContractResolveRequest) (ResolvedCapabilityContractArtifact, error)
}

type CapabilityContractArtifactSet added in v0.3.0

type CapabilityContractArtifactSet interface {
	OpenCapabilityContractArtifact(ctx context.Context, ref string) (ResolvedCapabilityContractFile, error)
}

type CapabilityContractKeyRequest added in v0.3.0

type CapabilityContractKeyRequest struct {
	SourceID             string               `json:"source_id"`
	PublisherID          string               `json:"publisher_id"`
	KeyID                string               `json:"key_id"`
	SourcePolicySnapshot SourcePolicySnapshot `json:"source_policy_snapshot"`
}

type CapabilityContractKeyResolver added in v0.3.0

type CapabilityContractKeyResolver interface {
	ResolveCapabilityContractKey(ctx context.Context, req CapabilityContractKeyRequest) ([]byte, error)
}

type CapabilityContractResolveRequest added in v0.3.0

type CapabilityContractResolveRequest struct {
	SourceID             string                 `json:"source_id"`
	PluginPublisherID    string                 `json:"plugin_publisher_id"`
	Pin                  capabilitycontract.Pin `json:"pin"`
	SourcePolicySnapshot SourcePolicySnapshot   `json:"source_policy_snapshot"`
}

type CleanupExpiredRetainedDataRequest

type CleanupExpiredRetainedDataRequest struct {
	Now         time.Time `json:"now,omitempty"`
	RetryFailed bool      `json:"retry_failed,omitempty"`
	MaxRecords  int       `json:"max_records,omitempty"`
}

type ConfirmMethodRequest

type ConfirmMethodRequest = CallMethodRequest

type ConfirmMethodResult

type ConfirmMethodResult struct {
	ConfirmationID      string    `json:"confirmation_id"`
	ConfirmationTokenID string    `json:"confirmation_token_id"`
	RequestHash         string    `json:"request_hash"`
	PlanHash            string    `json:"plan_hash"`
	Plan                any       `json:"plan,omitempty"`
	ExpiresAt           time.Time `json:"expires_at"`
}

type CoreActionAdapter

type CoreActionAdapter interface {
	ResolveCoreActionTarget(ctx context.Context, req capability.TargetResolutionRequest) (capability.TargetDescriptor, error)
	InvokeCoreAction(ctx context.Context, req capability.Invocation) (capability.Result, error)
}

type DeleteRetainedDataRequest

type DeleteRetainedDataRequest struct {
	RetainedID string    `json:"retained_id"`
	Now        time.Time `json:"now,omitempty"`
}

type DeleteSecurityPolicyRequest

type DeleteSecurityPolicyRequest struct {
	PluginInstanceID string    `json:"plugin_instance_id"`
	Now              time.Time `json:"now,omitempty"`
}

type DiagnosticEvent

type DiagnosticEvent = observability.DiagnosticEvent

type DiagnosticLister

type DiagnosticLister = observability.DiagnosticLister

type DiagnosticsSink

type DiagnosticsSink = observability.DiagnosticsSink

type DisableRequest

type DisableRequest struct {
	PluginInstanceID   string
	PluginStateVersion uint64
	Reason             string
	Now                time.Time
}

type DisposeSurfaceRequest

type DisposeSurfaceRequest struct {
	SurfaceInstanceID    string
	BridgeNonce          string
	OwnerSessionHash     string
	OwnerUserHash        string
	SessionChannelIDHash string
	Now                  time.Time
}

type DowngradeRequest

type DowngradeRequest struct {
	PluginInstanceID   string
	PluginStateVersion uint64
	Version            string
	PackageHash        string
	Now                time.Time
}

type EnableRequest

type EnableRequest struct {
	PluginInstanceID   string
	PluginStateVersion uint64
	Now                time.Time
}

type ExchangeAssetTicketRequest

type ExchangeAssetTicketRequest struct {
	SurfaceInstanceID    string
	AssetTicket          string
	OwnerSessionHash     string
	OwnerUserHash        string
	SessionChannelIDHash string
	Now                  time.Time
}

type ExportDataRequest

type ExportDataRequest struct {
	PluginInstanceID string
	IncludeSecrets   bool
}

type ExportDataResult

type ExportDataResult struct {
	ArchiveRef         string `json:"archive_ref,omitempty"`
	SettingsArchiveRef string `json:"settings_archive_ref,omitempty"`
}

type GetSecurityPolicyRequest

type GetSecurityPolicyRequest struct {
	PluginInstanceID string `json:"plugin_instance_id"`
}

type GetSettingsRequest

type GetSettingsRequest struct {
	PluginInstanceID string `json:"plugin_instance_id"`
}

type GrantPermissionRequest

type GrantPermissionRequest struct {
	PluginInstanceID string    `json:"plugin_instance_id"`
	PermissionID     string    `json:"permission_id"`
	GrantedBy        string    `json:"granted_by,omitempty"`
	Now              time.Time `json:"now,omitempty"`
	ExpiresAt        time.Time `json:"expires_at,omitempty"`
}

type Host

type Host struct {
	// contains filtered or unexported fields
}

func New

func New(adapters Adapters) (*Host, error)

func (*Host) BindRetainedData

func (h *Host) BindRetainedData(ctx context.Context, req BindRetainedDataRequest) (retaineddata.Record, error)

func (*Host) BindSecretRef

func (h *Host) BindSecretRef(ctx context.Context, req SecretBindRequest) error

func (*Host) CallPluginMethod

func (h *Host) CallPluginMethod(ctx context.Context, req CallMethodRequest) (result CallMethodResult, resultErr error)

func (*Host) CancelOperation

func (h *Host) CancelOperation(ctx context.Context, req CancelOperationRequest) (operation.Record, error)

func (*Host) CancelSurfaceOperation added in v0.3.0

func (h *Host) CancelSurfaceOperation(ctx context.Context, req CancelSurfaceOperationRequest) (operation.Record, error)

func (*Host) Capabilities

func (h *Host) Capabilities() *capability.Registry

func (*Host) DeleteRetainedData

func (h *Host) DeleteRetainedData(ctx context.Context, req DeleteRetainedDataRequest) (retaineddata.Record, error)

func (*Host) DeleteSecretRef

func (h *Host) DeleteSecretRef(ctx context.Context, req SecretDeleteRequest) error

func (*Host) DeleteSecurityPolicy

func (h *Host) DeleteSecurityPolicy(ctx context.Context, req DeleteSecurityPolicyRequest) error

func (*Host) DisablePlugin

func (h *Host) DisablePlugin(ctx context.Context, req DisableRequest) (registry.PluginRecord, error)

func (*Host) DisposeSurface

func (h *Host) DisposeSurface(_ context.Context, req DisposeSurfaceRequest) error

func (*Host) DowngradePlugin

func (h *Host) DowngradePlugin(ctx context.Context, req DowngradeRequest) (registry.PluginRecord, error)

func (*Host) EnablePlugin

func (h *Host) EnablePlugin(ctx context.Context, req EnableRequest) (registry.PluginRecord, error)

func (*Host) ExchangeAssetTicket

func (h *Host) ExchangeAssetTicket(ctx context.Context, req ExchangeAssetTicketRequest) (bridge.AssetSessionResult, error)

func (*Host) ExportPluginData

func (h *Host) ExportPluginData(ctx context.Context, req ExportDataRequest) (ExportDataResult, error)

func (*Host) GetOperation

func (h *Host) GetOperation(ctx context.Context, operationID string) (operation.Record, error)

func (*Host) GetPluginSettings

func (h *Host) GetPluginSettings(ctx context.Context, req GetSettingsRequest) (SettingsResult, error)

func (*Host) GetSecurityPolicy

func (h *Host) GetSecurityPolicy(ctx context.Context, req GetSecurityPolicyRequest) (security.PolicyRecord, error)

func (*Host) GetSettingsSchema

func (h *Host) GetSettingsSchema(ctx context.Context, req GetSettingsRequest) (SettingsSchemaResult, error)

func (*Host) GrantPermission

func (h *Host) GrantPermission(ctx context.Context, req GrantPermissionRequest) (permissions.Record, error)

func (*Host) ImportLocalPackage

func (h *Host) ImportLocalPackage(ctx context.Context, req ImportLocalPackageRequest) (registry.PluginRecord, error)

func (*Host) ImportPluginData

func (h *Host) ImportPluginData(ctx context.Context, req ImportDataRequest) error

func (*Host) InstallReleaseRef

func (h *Host) InstallReleaseRef(ctx context.Context, req InstallReleaseRefRequest) (registry.PluginRecord, error)

func (*Host) InvokeIntent

func (h *Host) InvokeIntent(ctx context.Context, req InvokeIntentRequest) (CallMethodResult, error)

func (*Host) ListAuditEvents

func (h *Host) ListAuditEvents(ctx context.Context, req ListAuditEventsRequest) ([]AuditEvent, error)

func (*Host) ListDiagnosticEvents

func (h *Host) ListDiagnosticEvents(ctx context.Context, req ListDiagnosticEventsRequest) ([]DiagnosticEvent, error)

func (*Host) ListIntents

func (h *Host) ListIntents(ctx context.Context, req ListIntentsRequest) ([]IntentRecord, error)

func (*Host) ListOperations

func (h *Host) ListOperations(ctx context.Context, req ListOperationsRequest) ([]operation.Record, error)

func (*Host) ListPermissionGrants

func (h *Host) ListPermissionGrants(ctx context.Context, req ListPermissionGrantsRequest) ([]permissions.Record, error)

func (*Host) ListPlugins

func (h *Host) ListPlugins(ctx context.Context) ([]registry.PluginRecord, error)

func (*Host) ListRetainedData

func (h *Host) ListRetainedData(ctx context.Context, req ListRetainedDataRequest) ([]retaineddata.Record, error)

func (*Host) ListSecurityPolicies

func (h *Host) ListSecurityPolicies(ctx context.Context) ([]security.PolicyRecord, error)

func (*Host) MintBridgeToken

func (h *Host) MintBridgeToken(ctx context.Context, req MintBridgeTokenRequest) (bridge.GatewayTokenResult, error)

func (*Host) MintConnectionGrant

func (h *Host) MintConnectionGrant(ctx context.Context, req MintConnectionGrantRequest) (connectivity.ConnectionGrant, error)

func (*Host) MintNetworkHandleGrant

func (h *Host) MintNetworkHandleGrant(ctx context.Context, req MintConnectionGrantRequest) (NetworkHandleGrantResult, error)

func (*Host) MintStorageHandleGrant

func (h *Host) MintStorageHandleGrant(ctx context.Context, req MintStorageHandleGrantRequest) (StorageHandleGrantResult, error)

func (*Host) OpenSurface

func (h *Host) OpenSurface(ctx context.Context, req OpenSurfaceRequest) (bridge.SurfaceBootstrap, error)

func (*Host) PatchPluginSettings

func (h *Host) PatchPluginSettings(ctx context.Context, req PatchSettingsRequest) (SettingsResult, error)

func (*Host) PrepareMethodConfirmation

func (h *Host) PrepareMethodConfirmation(ctx context.Context, req ConfirmMethodRequest) (ConfirmMethodResult, error)

func (*Host) PrepareSurface

func (h *Host) PrepareSurface(ctx context.Context, req ExchangeAssetTicketRequest) (result PrepareSurfaceResult, err error)

func (*Host) PutSecurityPolicy

func (h *Host) PutSecurityPolicy(ctx context.Context, req PutSecurityPolicyRequest) (security.PolicyRecord, error)

func (*Host) ReadStream

func (h *Host) ReadStream(ctx context.Context, req ReadStreamRequest) (ReadStreamResult, error)

func (*Host) ReadSurfaceAsset

func (h *Host) ReadSurfaceAsset(ctx context.Context, req ReadSurfaceAssetRequest) (ReadSurfaceAssetResult, error)

func (*Host) RefreshEnabledPlugins

func (h *Host) RefreshEnabledPlugins(ctx context.Context) ([]registry.PluginRecord, error)

func (*Host) RejectMethodConfirmation added in v0.3.0

func (*Host) RevokePermission

func (h *Host) RevokePermission(ctx context.Context, req RevokePermissionRequest) (permissions.Record, error)

func (*Host) RevokeSurfaceScope

func (h *Host) RevokeSurfaceScope(ctx context.Context, req RevokeSurfaceScopeRequest) (int, error)

func (*Host) RuntimeHealth

func (h *Host) RuntimeHealth(ctx context.Context) (runtimeclient.Health, error)

func (*Host) StartRuntime

func (h *Host) StartRuntime(ctx context.Context, req StartRuntimeRequest) (runtimeclient.Health, error)

func (*Host) StopRuntime

func (h *Host) StopRuntime(ctx context.Context) error

func (*Host) TestSecretRef

func (h *Host) TestSecretRef(ctx context.Context, req SecretTestRequest) error

func (*Host) UninstallPlugin

func (h *Host) UninstallPlugin(ctx context.Context, req UninstallRequest) (registry.PluginRecord, error)

func (*Host) UpdateLocalPackage

func (h *Host) UpdateLocalPackage(ctx context.Context, req UpdateLocalPackageRequest) (registry.PluginRecord, error)

func (*Host) UpdateReleaseRef

func (h *Host) UpdateReleaseRef(ctx context.Context, req UpdateReleaseRefRequest) (registry.PluginRecord, error)

type HostCapabilityContractRef

type HostCapabilityContractRef = capabilitycontract.Pin

type HostCapabilityRequirement

type HostCapabilityRequirement struct {
	CapabilityID      string                    `json:"capability_id"`
	CapabilityVersion string                    `json:"capability_version"`
	Contract          HostCapabilityContractRef `json:"contract"`
}

type HostRequirement

type HostRequirement struct {
	HostID                      string                      `json:"host_id"`
	MinHostVersion              string                      `json:"min_host_version,omitempty"`
	RequiredCapabilityContracts []HostCapabilityRequirement `json:"required_capability_contracts,omitempty"`
}

type HostRequirementPolicy added in v0.3.0

type HostRequirementPolicy interface {
	SelectHostRequirement(ctx context.Context, req HostRequirementSelectionRequest) (HostRequirementSelection, error)
}

type HostRequirementSelection added in v0.3.0

type HostRequirementSelection struct {
	HostID string `json:"host_id"`
}

type HostRequirementSelectionRequest added in v0.3.0

type HostRequirementSelectionRequest struct {
	SourceID      string            `json:"source_id"`
	PublisherID   string            `json:"publisher_id"`
	PluginID      string            `json:"plugin_id"`
	PluginVersion string            `json:"plugin_version"`
	Requirements  []HostRequirement `json:"requirements"`
}

type ImportDataRequest

type ImportDataRequest struct {
	PluginInstanceID   string
	ArchiveRef         string
	SettingsArchiveRef string
	DeleteExisting     bool
}

type ImportLocalPackageRequest

type ImportLocalPackageRequest struct {
	PackageReader      io.ReaderAt
	PackageSize        int64
	PluginInstanceID   string
	PluginStateVersion uint64
	Now                time.Time
}

type InstallReleaseRefRequest

type InstallReleaseRefRequest struct {
	ReleaseRef         PluginReleaseRef
	PluginInstanceID   string
	PluginStateVersion uint64
	Now                time.Time
}

type IntentRecord

type IntentRecord struct {
	PluginID          string         `json:"plugin_id"`
	PluginInstanceID  string         `json:"plugin_instance_id"`
	PublisherID       string         `json:"publisher_id"`
	DisplayName       string         `json:"display_name"`
	Version           string         `json:"version"`
	ActiveFingerprint string         `json:"active_fingerprint"`
	IntentID          string         `json:"intent_id"`
	Method            string         `json:"method"`
	Effect            string         `json:"effect"`
	Execution         string         `json:"execution"`
	PayloadSchema     map[string]any `json:"payload_schema,omitempty"`
}

type InvokeIntentRequest

type InvokeIntentRequest struct {
	PluginInstanceID     string         `json:"plugin_instance_id,omitempty"`
	IntentID             string         `json:"intent_id"`
	Params               map[string]any `json:"params,omitempty"`
	OwnerSessionHash     string         `json:"owner_session_hash,omitempty"`
	OwnerUserHash        string         `json:"owner_user_hash,omitempty"`
	SessionChannelIDHash string         `json:"session_channel_id_hash,omitempty"`
	Now                  time.Time      `json:"now,omitempty"`
}

type ListAuditEventsRequest

type ListAuditEventsRequest = observability.ListAuditRequest

type ListDiagnosticEventsRequest

type ListDiagnosticEventsRequest = observability.ListDiagnosticRequest

type ListIntentsRequest

type ListIntentsRequest struct {
	IntentID         string `json:"intent_id,omitempty"`
	PluginInstanceID string `json:"plugin_instance_id,omitempty"`
}

type ListOperationsRequest

type ListOperationsRequest struct {
	PluginInstanceID string `json:"plugin_instance_id,omitempty"`
}

type ListPermissionGrantsRequest

type ListPermissionGrantsRequest struct {
	PluginInstanceID string `json:"plugin_instance_id,omitempty"`
	ActiveOnly       bool   `json:"active_only,omitempty"`
}

type ListRetainedDataRequest

type ListRetainedDataRequest = retaineddata.ListRequest

type MintBridgeTokenRequest

type MintBridgeTokenRequest struct {
	Handshake                 bridge.Handshake
	BridgeChannelID           string
	HandshakeTranscriptSHA256 string
	PreviousGatewayToken      string
	OwnerSessionHash          string
	OwnerUserHash             string
	SessionChannelIDHash      string
	Now                       time.Time
}

type MintConnectionGrantRequest

type MintConnectionGrantRequest struct {
	PluginInstanceID    string                 `json:"plugin_instance_id"`
	ConnectorID         string                 `json:"connector_id"`
	Transport           connectivity.Transport `json:"transport"`
	Destination         string                 `json:"destination"`
	RuntimeInstanceID   string                 `json:"runtime_instance_id,omitempty"`
	RuntimeGenerationID string                 `json:"runtime_generation_id,omitempty"`
	RuntimeShardID      string                 `json:"runtime_shard_id,omitempty"`
	Now                 time.Time              `json:"now,omitempty"`
	TTL                 time.Duration          `json:"ttl,omitempty"`
}

type MintStorageHandleGrantRequest

type MintStorageHandleGrantRequest struct {
	PluginInstanceID    string        `json:"plugin_instance_id"`
	StoreID             string        `json:"store_id"`
	RuntimeInstanceID   string        `json:"runtime_instance_id,omitempty"`
	RuntimeGenerationID string        `json:"runtime_generation_id"`
	RuntimeShardID      string        `json:"runtime_shard_id,omitempty"`
	Now                 time.Time     `json:"now,omitempty"`
	TTL                 time.Duration `json:"ttl,omitempty"`
}

type NetworkHandleGrantResult

type NetworkHandleGrantResult struct {
	ConnectionGrant connectivity.ConnectionGrant `json:"connection_grant"`
	HandleGrant     bridge.HandleGrantResult     `json:"handle_grant"`
}

type OpenSurfaceRequest

type OpenSurfaceRequest struct {
	PluginInstanceID     string
	PluginStateVersion   uint64
	SurfaceID            string
	SurfaceInstanceID    string
	OwnerSessionHash     string
	OwnerUserHash        string
	SessionChannelIDHash string
	Now                  time.Time
}

type PackageDistribution

type PackageDistribution string
const (
	PackageDistributionRegistryRef     PackageDistribution = "registry_ref"
	PackageDistributionHostArtifactRef PackageDistribution = "host_artifact_ref"
	PackageDistributionLocalImport     PackageDistribution = "local_import"
)

type PackageDistributionRef

type PackageDistributionRef struct {
	Distribution PackageDistribution `json:"distribution"`
	ArtifactRef  string              `json:"artifact_ref,omitempty"`
	ImportID     string              `json:"import_id,omitempty"`
}

type PackageDowngradePolicy

type PackageDowngradePolicy string
const (
	PackageDowngradeBlock          PackageDowngradePolicy = "block"
	PackageDowngradeReviewRequired PackageDowngradePolicy = "review_required"
)

type PackageHashSet

type PackageHashSet struct {
	PackageSHA256  string `json:"package_sha256"`
	ManifestSHA256 string `json:"manifest_sha256"`
	EntriesSHA256  string `json:"entries_sha256"`
}

type PackageInstallPolicy

type PackageInstallPolicy string
const (
	PackageInstallAllow          PackageInstallPolicy = "allow"
	PackageInstallReviewRequired PackageInstallPolicy = "review_required"
	PackageInstallBlock          PackageInstallPolicy = "block"
)

type PackageReleaseSignature

type PackageReleaseSignature struct {
	Algorithm          string `json:"algorithm"`
	KeyID              string `json:"key_id"`
	SignatureBundleRef string `json:"signature_bundle_ref"`
	SourcePolicyEpoch  string `json:"source_policy_epoch"`
	RevocationEpoch    string `json:"revocation_epoch"`
}

type PackageSourceClass

type PackageSourceClass string
const (
	PackageSourceClassOfficial  PackageSourceClass = "official"
	PackageSourceClassCurated   PackageSourceClass = "curated"
	PackageSourceClassCommunity PackageSourceClass = "community"
	PackageSourceClassPrivate   PackageSourceClass = "private"
)

type PackageSourceType

type PackageSourceType string
const (
	PackageSourceRegistry     PackageSourceType = "registry"
	PackageSourceHostArtifact PackageSourceType = "host_artifact"
)

type PackageTrustAction

type PackageTrustAction string
const (
	PackageTrustActionInstall PackageTrustAction = "install"
	PackageTrustActionUpdate  PackageTrustAction = "update"
)

type PackageTrustVerificationRequest

type PackageTrustVerificationRequest struct {
	Action               PackageTrustAction     `json:"action"`
	Package              pluginpkg.Package      `json:"package"`
	LocalImport          bool                   `json:"local_import,omitempty"`
	ReleaseRef           *PluginReleaseRef      `json:"release_ref,omitempty"`
	Release              *PluginPackageRelease  `json:"release,omitempty"`
	SourcePolicySnapshot *SourcePolicySnapshot  `json:"source_policy_snapshot,omitempty"`
	CurrentRecord        *registry.PluginRecord `json:"current_record,omitempty"`
	PluginInstanceID     string                 `json:"plugin_instance_id,omitempty"`
	Now                  time.Time              `json:"now,omitempty"`
}

type PackageTrustVerificationResult

type PackageTrustVerificationResult = registry.TrustAssessment

type PackageTrustVerifier

type PackageTrustVerifier interface {
	VerifyPackageTrust(ctx context.Context, req PackageTrustVerificationRequest) (PackageTrustVerificationResult, error)
}

PackageTrustVerifier is the install/update trust decision boundary. Runnable trust states must come from this verifier or the release/local import provenance handled by Host core.

type PackageUnsignedPolicy

type PackageUnsignedPolicy string
const (
	PackageUnsignedDevOnly        PackageUnsignedPolicy = "dev_only"
	PackageUnsignedReviewRequired PackageUnsignedPolicy = "review_required"
	PackageUnsignedBlock          PackageUnsignedPolicy = "block"
)

type PatchSettingsRequest

type PatchSettingsRequest struct {
	PluginInstanceID string         `json:"plugin_instance_id"`
	Values           map[string]any `json:"values"`
	Now              time.Time      `json:"now,omitempty"`
}

type PluginPackageRelease

type PluginPackageRelease struct {
	SourceID                 string                    `json:"source_id"`
	PublisherID              string                    `json:"publisher_id"`
	PluginID                 string                    `json:"plugin_id"`
	Version                  string                    `json:"version"`
	DistributionRef          PackageDistributionRef    `json:"distribution_ref"`
	ReleaseMetadataSHA256    string                    `json:"release_metadata_sha256"`
	ReleaseMetadataSignature *ReleaseMetadataSignature `json:"release_metadata_signature,omitempty"`
	Hashes                   PackageHashSet            `json:"hashes"`
	PackageSignature         *PackageReleaseSignature  `json:"package_signature,omitempty"`
	Compatibility            *ReleaseCompatibility     `json:"compatibility,omitempty"`
	HostRequirements         []HostRequirement         `json:"host_requirements,omitempty"`
	ReleaseEvidence          *ReleaseEvidence          `json:"release_evidence,omitempty"`
	Metadata                 map[string]string         `json:"metadata,omitempty"`
}

type PluginRef

type PluginRef struct {
	PluginID          string `json:"plugin_id"`
	PluginInstanceID  string `json:"plugin_instance_id"`
	Version           string `json:"version"`
	ActiveFingerprint string `json:"active_fingerprint"`
}

type PluginReleaseRef

type PluginReleaseRef struct {
	SourceID              string         `json:"source_id"`
	ReleaseMetadataRef    string         `json:"release_metadata_ref"`
	ReleaseMetadataSHA256 string         `json:"release_metadata_sha256"`
	PublisherID           string         `json:"publisher_id"`
	PluginID              string         `json:"plugin_id"`
	Version               string         `json:"version"`
	ExpectedHashes        PackageHashSet `json:"expected_hashes"`
}

type PolicyAdapter

type PolicyAdapter interface {
	EvaluateLocalPolicy(ctx context.Context, session sessionctx.Context, plugin PluginRef, method manifest.MethodSpec) (PolicyDecision, error)
	DeveloperModeEnabled(ctx context.Context, session sessionctx.Context) (bool, error)
	LocalGeneratedPluginsEnabled(ctx context.Context, session sessionctx.Context) (bool, error)
}

type PolicyDecision

type PolicyDecision string
const (
	PolicyAllow PolicyDecision = "allow"
	PolicyDeny  PolicyDecision = "deny"
)

type PrepareSurfaceResult

type PrepareSurfaceResult struct {
	bridge.AssetSessionResult
	Document pluginpkg.OpaqueSurfaceDocument `json:"document"`
}

type PutSecurityPolicyRequest

type PutSecurityPolicyRequest struct {
	PluginInstanceID   string    `json:"plugin_instance_id"`
	AllowedPermissions []string  `json:"allowed_permissions,omitempty"`
	DeniedMethods      []string  `json:"denied_methods,omitempty"`
	Now                time.Time `json:"now,omitempty"`
}

type ReadStreamRequest

type ReadStreamRequest struct {
	StreamID             string        `json:"stream_id"`
	StreamTicket         string        `json:"stream_ticket,omitempty"`
	SurfaceInstanceID    string        `json:"surface_instance_id,omitempty"`
	OwnerSessionHash     string        `json:"owner_session_hash,omitempty"`
	OwnerUserHash        string        `json:"owner_user_hash,omitempty"`
	SessionChannelIDHash string        `json:"session_channel_id_hash,omitempty"`
	MaxEvents            int           `json:"max_events,omitempty"`
	MaxBytes             int64         `json:"max_bytes,omitempty"`
	WaitTimeout          time.Duration `json:"-"`
	Now                  time.Time
}

type ReadStreamResult

type ReadStreamResult struct {
	Record              stream.Record  `json:"record"`
	Events              []stream.Event `json:"events,omitempty"`
	Done                bool           `json:"done"`
	TerminalStatus      stream.Status  `json:"terminal_status,omitempty"`
	NextStreamTicket    string         `json:"next_stream_ticket,omitempty"`
	NextStreamTicketID  string         `json:"next_stream_ticket_id,omitempty"`
	NextStreamExpiresAt *time.Time     `json:"next_stream_expires_at,omitempty"`
}

type ReadSurfaceAssetRequest

type ReadSurfaceAssetRequest struct {
	AssetSession         string
	AssetSessionID       string
	BindingID            string
	OwnerSessionHash     string
	OwnerUserHash        string
	SessionChannelIDHash string
	Now                  time.Time
}

type ReadSurfaceAssetResult

type ReadSurfaceAssetResult struct {
	Entry   pluginpkg.Entry
	Content []byte
	Session bridge.SurfaceSession
}

type RejectMethodConfirmationRequest added in v0.3.0

type RejectMethodConfirmationRequest struct {
	PluginInstanceID     string
	SurfaceInstanceID    string
	OwnerSessionHash     string
	OwnerUserHash        string
	SessionChannelIDHash string
	BridgeChannelID      string
	GatewayToken         string
	ConfirmationID       string
	Now                  time.Time
}

type RejectMethodConfirmationResult added in v0.3.0

type RejectMethodConfirmationResult struct {
	Rejected bool `json:"rejected"`
}

type ReleaseArtifactResolveRequest

type ReleaseArtifactResolveRequest struct {
	Action               PackageTrustAction     `json:"action"`
	ReleaseRef           PluginReleaseRef       `json:"release_ref"`
	SourcePolicySnapshot SourcePolicySnapshot   `json:"source_policy_snapshot"`
	CurrentRecord        *registry.PluginRecord `json:"current_record,omitempty"`
	PluginInstanceID     string                 `json:"plugin_instance_id,omitempty"`
	Now                  time.Time              `json:"now,omitempty"`
}

type ReleaseArtifactResolver

type ReleaseArtifactResolver interface {
	ResolveReleaseArtifact(ctx context.Context, req ReleaseArtifactResolveRequest) (ResolvedPackageArtifact, error)
}

type ReleaseCompatibility

type ReleaseCompatibility struct {
	MinReDevPluginVersion string   `json:"min_redevplugin_version,omitempty"`
	MinRuntimeVersion     string   `json:"min_runtime_version,omitempty"`
	UIProtocolVersion     string   `json:"ui_protocol_version,omitempty"`
	SupportedTargets      []string `json:"supported_targets,omitempty"`
}

type ReleaseEvidence

type ReleaseEvidence struct {
	NoticesSHA256    string `json:"notices_sha256,omitempty"`
	ProvenanceSHA256 string `json:"provenance_sha256,omitempty"`
	GeneratedAt      string `json:"generated_at,omitempty"`
}

type ReleaseMetadataSignature

type ReleaseMetadataSignature struct {
	Algorithm         string `json:"algorithm"`
	KeyID             string `json:"key_id"`
	SignatureRef      string `json:"signature_ref"`
	SourcePolicyEpoch string `json:"source_policy_epoch"`
	RevocationEpoch   string `json:"revocation_epoch"`
}

type ReleaseMetadataVerificationRequest

type ReleaseMetadataVerificationRequest struct {
	Action                   PackageTrustAction     `json:"action"`
	ReleaseRef               PluginReleaseRef       `json:"release_ref"`
	Release                  PluginPackageRelease   `json:"release"`
	SourcePolicySnapshot     SourcePolicySnapshot   `json:"source_policy_snapshot"`
	ReleaseMetadataBytes     []byte                 `json:"-"`
	ReleaseMetadataSignature []byte                 `json:"-"`
	CurrentRecord            *registry.PluginRecord `json:"current_record,omitempty"`
	PluginInstanceID         string                 `json:"plugin_instance_id,omitempty"`
	Now                      time.Time              `json:"now,omitempty"`
}

type ReleaseMetadataVerificationResult

type ReleaseMetadataVerificationResult struct {
	Metadata map[string]string `json:"metadata,omitempty"`
}

type ReleaseMetadataVerifier

type ReleaseMetadataVerifier interface {
	VerifyReleaseMetadata(ctx context.Context, req ReleaseMetadataVerificationRequest) (ReleaseMetadataVerificationResult, error)
}

type ReleaseSourcePolicyRequest

type ReleaseSourcePolicyRequest struct {
	Action           PackageTrustAction     `json:"action"`
	ReleaseRef       PluginReleaseRef       `json:"release_ref"`
	CurrentRecord    *registry.PluginRecord `json:"current_record,omitempty"`
	PluginInstanceID string                 `json:"plugin_instance_id,omitempty"`
	Now              time.Time              `json:"now,omitempty"`
}

type ReleaseSourcePolicyResolver

type ReleaseSourcePolicyResolver interface {
	ResolveReleaseSourcePolicy(ctx context.Context, req ReleaseSourcePolicyRequest) (SourcePolicySnapshot, error)
}

type ResolvedCapabilityContractArtifact added in v0.3.0

type ResolvedCapabilityContractArtifact struct {
	Artifacts CapabilityContractArtifactSet `json:"-"`
}

type ResolvedCapabilityContractFile added in v0.3.0

type ResolvedCapabilityContractFile struct {
	Reader     io.ReadCloser                `json:"-"`
	Size       int64                        `json:"size"`
	MediaType  string                       `json:"media_type"`
	FetchChain []CapabilityArtifactFetchHop `json:"fetch_chain"`
}

type ResolvedPackageArtifact

type ResolvedPackageArtifact struct {
	ReleaseMetadataBytes     []byte      `json:"-"`
	ReleaseMetadataSignature []byte      `json:"-"`
	Reader                   io.ReaderAt `json:"-"`
	Size                     int64       `json:"size"`
}

type RetainedDataCleanupResult

type RetainedDataCleanupResult struct {
	Deleted []retaineddata.Record `json:"deleted,omitempty"`
	Failed  []retaineddata.Record `json:"failed,omitempty"`
}

type RevokePermissionRequest

type RevokePermissionRequest struct {
	PluginInstanceID string    `json:"plugin_instance_id"`
	PermissionID     string    `json:"permission_id"`
	RevokedBy        string    `json:"revoked_by,omitempty"`
	Reason           string    `json:"reason,omitempty"`
	Now              time.Time `json:"now,omitempty"`
}

type RevokeSurfaceScopeRequest

type RevokeSurfaceScopeRequest struct {
	OwnerSessionHash     string
	OwnerUserHash        string
	SessionChannelIDHash string
	Now                  time.Time
}

type RuntimeArtifactResolver

type RuntimeArtifactResolver interface {
	RuntimePath(ctx context.Context, target RuntimeTarget) (string, error)
}

type RuntimeTarget

type RuntimeTarget struct {
	OS   string `json:"os"`
	Arch string `json:"arch"`
}

type SecretBindRequest

type SecretBindRequest = secrets.BindRequest

type SecretDeleteRequest

type SecretDeleteRequest = secrets.DeleteRequest

type SecretStoreAdapter

type SecretStoreAdapter = secrets.Store

type SecretTestRequest

type SecretTestRequest = secrets.TestRequest

type SettingsResult

type SettingsResult struct {
	PluginInstanceID string         `json:"plugin_instance_id"`
	SchemaVersion    int            `json:"schema_version"`
	SettingsRevision uint64         `json:"settings_revision"`
	Values           map[string]any `json:"values"`
	UpdatedAt        time.Time      `json:"updated_at"`
}

type SettingsSchemaResult

type SettingsSchemaResult struct {
	PluginInstanceID string                      `json:"plugin_instance_id"`
	SchemaVersion    int                         `json:"schema_version"`
	Migration        manifest.MigrationSpec      `json:"migration"`
	Fields           []manifest.SettingFieldSpec `json:"fields"`
	SettingsRevision uint64                      `json:"settings_revision"`
}

type SourcePolicyRevocationEvidence

type SourcePolicyRevocationEvidence struct {
	MetadataRef      string `json:"metadata_ref"`
	MetadataSHA256   string `json:"metadata_sha256"`
	SignatureRef     string `json:"signature_ref"`
	SignatureKeyID   string `json:"signature_key_id"`
	VerifiedAt       string `json:"verified_at"`
	ExpiresAt        string `json:"expires_at"`
	HighestSeenEpoch string `json:"highest_seen_epoch"`
	MetadataBytes    []byte `json:"-"`
	SignatureBytes   []byte `json:"-"`
}

type SourcePolicySnapshot

type SourcePolicySnapshot struct {
	SchemaVersion        string                          `json:"schema_version"`
	SourceID             string                          `json:"source_id"`
	SourceType           PackageSourceType               `json:"source_type"`
	SourceClass          PackageSourceClass              `json:"source_class,omitempty"`
	AllowedPublishers    []string                        `json:"allowed_publishers,omitempty"`
	AllowedArtifactHosts []string                        `json:"allowed_artifact_hosts,omitempty"`
	TrustedKeyIDs        []string                        `json:"trusted_key_ids,omitempty"`
	TrustedKeys          []SourcePolicyTrustedKey        `json:"trusted_keys,omitempty"`
	RevocationEvidence   *SourcePolicyRevocationEvidence `json:"revocation_evidence,omitempty"`
	RequireSignature     bool                            `json:"require_signature,omitempty"`
	InstallPolicy        PackageInstallPolicy            `json:"install_policy,omitempty"`
	UnsignedPolicy       PackageUnsignedPolicy           `json:"unsigned_policy,omitempty"`
	DowngradePolicy      PackageDowngradePolicy          `json:"downgrade_policy,omitempty"`
	PolicyEpoch          string                          `json:"policy_epoch,omitempty"`
	KeyRotationEpoch     string                          `json:"key_rotation_epoch,omitempty"`
	RevocationEpoch      string                          `json:"revocation_epoch,omitempty"`
	AssessedAt           string                          `json:"assessed_at,omitempty"`
	Metadata             map[string]string               `json:"metadata,omitempty"`
}

type SourcePolicyTrustedKey

type SourcePolicyTrustedKey struct {
	Algorithm                   string   `json:"algorithm"`
	KeyID                       string   `json:"key_id"`
	PublicKeySHA256             string   `json:"public_key_sha256"`
	Usage                       []string `json:"usage"`
	AllowedCapabilityPublishers []string `json:"allowed_capability_publishers,omitempty"`
	ValidFrom                   string   `json:"valid_from,omitempty"`
	ValidUntil                  string   `json:"valid_until,omitempty"`
	RevocationEpoch             string   `json:"revocation_epoch,omitempty"`
}

type SourceRevocationEvidenceVerificationRequest

type SourceRevocationEvidenceVerificationRequest struct {
	ReleaseRef                  PluginReleaseRef               `json:"release_ref"`
	SourcePolicySnapshot        SourcePolicySnapshot           `json:"source_policy_snapshot"`
	RevocationEvidence          SourcePolicyRevocationEvidence `json:"revocation_evidence"`
	RevocationMetadata          SourceRevocationMetadata       `json:"revocation_metadata"`
	RevocationMetadataBytes     []byte                         `json:"-"`
	RevocationMetadataSignature []byte                         `json:"-"`
	Now                         time.Time                      `json:"now,omitempty"`
}

type SourceRevocationEvidenceVerificationResult

type SourceRevocationEvidenceVerificationResult struct {
	Metadata map[string]string `json:"metadata,omitempty"`
}

type SourceRevocationEvidenceVerifier

type SourceRevocationEvidenceVerifier interface {
	VerifySourceRevocationEvidence(ctx context.Context, req SourceRevocationEvidenceVerificationRequest) (SourceRevocationEvidenceVerificationResult, error)
}

type SourceRevocationMetadata

type SourceRevocationMetadata struct {
	SchemaVersion    string   `json:"schema_version"`
	SourceID         string   `json:"source_id"`
	HighestSeenEpoch string   `json:"highest_seen_epoch"`
	GeneratedAt      string   `json:"generated_at"`
	ExpiresAt        string   `json:"expires_at"`
	RevokedKeyIDs    []string `json:"revoked_key_ids,omitempty"`
}

type StartRuntimeRequest

type StartRuntimeRequest struct {
	Target RuntimeTarget `json:"target,omitempty"`
}

type StorageHandleGrantResult

type StorageHandleGrantResult struct {
	Namespace   storage.Namespace        `json:"namespace"`
	HandleGrant bridge.HandleGrantResult `json:"handle_grant"`
}

type SurfaceCatalogSink

type SurfaceCatalogSink interface {
	PublishSurfaces(ctx context.Context, snapshot SurfaceSnapshot) error
}

type SurfaceSnapshot

type SurfaceSnapshot struct {
	PluginInstanceID  string                 `json:"plugin_instance_id"`
	ActiveFingerprint string                 `json:"active_fingerprint"`
	Surfaces          []manifest.SurfaceSpec `json:"surfaces"`
}

type UninstallRequest

type UninstallRequest struct {
	PluginInstanceID   string
	PluginStateVersion uint64
	DeleteData         bool
	Now                time.Time
}

type UpdateLocalPackageRequest

type UpdateLocalPackageRequest struct {
	PluginInstanceID   string
	PluginStateVersion uint64
	PackageReader      io.ReaderAt
	PackageSize        int64
	Now                time.Time
}

type UpdateReleaseRefRequest

type UpdateReleaseRefRequest struct {
	PluginInstanceID   string
	PluginStateVersion uint64
	ReleaseRef         PluginReleaseRef
	Now                time.Time
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL