Files
Assistant/contracts/capability/cognitive_registry.go
2026-08-21 18:37:04 +03:00

307 lines
9.7 KiB
Go

package capability
import (
"git.cin.su/m/Assistant/contracts/artifact"
"git.cin.su/m/Assistant/contracts/identity"
"git.cin.su/m/Assistant/platform/ids"
)
type ProviderInstanceID ids.ID
type ModelDescriptorID ids.ID
type CredentialRef ids.ID
type EndpointBindingRef ids.ID
type LimitPolicyRef ids.ID
type ProviderKind string
type ProviderModelID string
type ModelFingerprint string
type QualificationState string
type ActivationState string
type DataPolicy string
type ModelModality string
type ModelCapability string
type OperationalState string
type EvaluationResult string
type EvaluationID ids.ID
type PerformanceEvidenceID ids.ID
type BillingMode string
type AuthMode string
type SelectionObjective string
const (
QualificationDiscovered QualificationState = "DISCOVERED"
QualificationProbing QualificationState = "PROBING"
QualificationEvaluating QualificationState = "EVALUATING"
QualificationValidated QualificationState = "VALIDATED"
QualificationRejected QualificationState = "REJECTED"
ActivationInactive ActivationState = "INACTIVE"
ActivationCanary ActivationState = "CANARY"
ActivationActive ActivationState = "ACTIVE"
ActivationDeprecated ActivationState = "DEPRECATED"
ActivationRetired ActivationState = "RETIRED"
DataPolicyLocalOnly DataPolicy = "LOCAL_ONLY"
DataPolicyExternalMessageOnly DataPolicy = "EXTERNAL_MESSAGE_ONLY"
DataPolicyExternalMinimizedContext DataPolicy = "EXTERNAL_MINIMIZED_CONTEXT"
ModalityText ModelModality = "TEXT"
CapabilityAdvisory ModelCapability = "ADVISORY"
CapabilityUnknown ModelCapability = "UNKNOWN"
OperationalNotObserved OperationalState = "NOT_OBSERVED"
OperationalYes OperationalState = "YES"
OperationalNo OperationalState = "NO"
EvaluationUnknown EvaluationResult = "UNKNOWN"
EvaluationSupported EvaluationResult = "SUPPORTED"
EvaluationUnsupported EvaluationResult = "UNSUPPORTED"
BillingUnknown BillingMode = "UNKNOWN"
BillingFree BillingMode = "FREE"
BillingPerInput BillingMode = "PER_INPUT_UNIT"
BillingPerOutput BillingMode = "PER_OUTPUT_UNIT"
BillingPerRequest BillingMode = "PER_REQUEST"
AuthNone AuthMode = "NONE"
AuthKey AuthMode = "API" + "_KEY"
AuthBearer AuthMode = "BEARER"
AuthUsernamePassword AuthMode = "USERNAME_PASSWORD"
AuthOAuth AuthMode = "OAUTH"
AuthSecretFile AuthMode = "SECRET_FILE"
SelectionBalanced SelectionObjective = "BALANCED"
SelectionQuality SelectionObjective = "QUALITY"
SelectionSpeed SelectionObjective = "SPEED"
SelectionEconomy SelectionObjective = "ECONOMY"
)
// ProviderInstance contains only opaque references to endpoint and credentials.
// Credential material is resolved by the cognitive runtime, never by Core.
type ProviderInstance struct {
ID ProviderInstanceID
Revision int64
Kind ProviderKind
EndpointRef EndpointBindingRef
CredentialRef CredentialRef
Enabled bool
Qualification QualificationState
Health HealthState
ObservedAtUnixMillis int64
BillingMode BillingMode
AuthMode AuthMode
InputCostMicros *int64
OutputCostMicros *int64
RequestCostMicros *int64
}
type ModelDescriptor struct {
ID ModelDescriptorID
Revision int64
ProviderInstanceID ProviderInstanceID
ProviderModelID ProviderModelID
Fingerprint ModelFingerprint
MaxContextBytes int64
Modalities []ModelModality
Capabilities []ModelCapability
Qualification QualificationState
Health HealthState
ObservedAtUnixMillis int64
IntelligenceScoreMillis *int64
}
type ProviderHealthObservation struct {
ProviderInstanceID ProviderInstanceID
Health HealthState
ObservedAtUnixMillis int64
FailureClass CognitiveFailureType
}
type ModelOperationalObservation struct {
ProviderInstanceID ProviderInstanceID
ModelDescriptorID ModelDescriptorID
Installed OperationalState
Loaded OperationalState
Invokable OperationalState
Health HealthState
ObservedAtUnixMillis int64
}
type CognitiveBinding struct {
ID CapabilityBindingID
Revision int64
CapabilityID CapabilityID
OwnerPrincipalID identity.PrincipalID
ProviderInstanceID ProviderInstanceID
ProviderRevision int64
ModelDescriptorID ModelDescriptorID
ModelRevision int64
DataPolicy DataPolicy
Qualification QualificationState
Activation ActivationState
Health HealthState
LimitPolicyRef LimitPolicyRef
}
type CognitiveRequirement struct {
CapabilityID CapabilityID
OwnerPrincipalID identity.PrincipalID
DataPolicy DataPolicy
RequiredModalities []ModelModality
RequiredCapabilities []ModelCapability
AllowCanary bool
InputBytes int64
MaxOutputBytes int64
ExcludedBindingIDs []CapabilityBindingID
Objective SelectionObjective
MaxCostMicros *int64
}
// ResolvedCognitiveBinding is a provider-neutral invocation snapshot selected
// by Capability. It contains references and declared metadata, never secrets.
type ResolvedCognitiveBinding struct {
Binding CognitiveBinding
Provider ProviderInstance
Model ModelDescriptor
Evaluation *EvaluatedCapability
Performance *PerformanceEvidence
}
type CognitiveResultClass string
type CognitiveFailureType string
type EvaluatedCapability struct {
ID EvaluationID
BindingID CapabilityBindingID
BindingRevision int64
CapabilityID CapabilityID
Result EvaluationResult
QualityScoreMillis *int64
CriticalFailureMillis *int64
BenchmarkVersion string
ArtifactID artifact.ArtifactID
ObservedAtUnixMillis int64
}
type PerformanceEvidence struct {
ID PerformanceEvidenceID
BindingID CapabilityBindingID
BindingRevision int64
ModelDescriptorID ModelDescriptorID
ModelRevision int64
HardwareProfile string
Runtime string
Quantization string
ContextUnits *int64
ThinkingEnabled *bool
GenerationTPSMillis *int64
PromptTPSMillis *int64
TTFTMicros *int64
LatencyMicros *int64
MemoryBytes *int64
ReliabilityMillis *int64
BenchmarkVersion string
ArtifactID artifact.ArtifactID
ObservedAtUnixMillis int64
}
type CognitiveDiscoveryRegistration struct {
Provider ProviderInstance
Models []ModelDescriptor
Bindings []CognitiveBinding
ProviderHealth ProviderHealthObservation
ModelAvailability []ModelOperationalObservation
}
type CognitiveCanaryPromotionRequest struct {
PromotionID ids.ID
RequestedByPrincipalID identity.PrincipalID
CapabilityID CapabilityID
BindingID CapabilityBindingID
ExpectedBindingRevision int64
ProviderInstanceID ProviderInstanceID
ExpectedProviderRevision int64
ModelDescriptorID ModelDescriptorID
ExpectedModelRevision int64
EvaluationID EvaluationID
ObservedAtUnixMillis int64
}
type CognitiveCanaryPromotion struct {
PromotionID ids.ID
ExpectedBindingRevision int64
Provider ProviderInstance
Model ModelDescriptor
Binding CognitiveBinding
Evaluation EvaluatedCapability
}
type CognitiveActivationPromotionRequest struct {
PromotionID ids.ID
RequestedByPrincipalID identity.PrincipalID
CapabilityID CapabilityID
BindingID CapabilityBindingID
ExpectedBindingRevision int64
EvaluationID EvaluationID
ObservedAtUnixMillis int64
}
type CognitiveActivationPromotion struct {
PromotionID ids.ID
ExpectedBindingRevision int64
Binding CognitiveBinding
Evaluation EvaluatedCapability
}
// CognitiveDiscoverySnapshot is provider-neutral observed inventory submitted
// to the Capability owner. The owner assigns immutable revisions and always
// registers discovered bindings as DISCOVERED/INACTIVE.
type CognitiveDiscoverySnapshot struct {
ProviderInstanceID ProviderInstanceID
ProviderKind ProviderKind
EndpointRef EndpointBindingRef
CredentialRef CredentialRef
Enabled bool
OwnerPrincipalID identity.PrincipalID
CapabilityID CapabilityID
DataPolicy DataPolicy
LimitPolicyRef LimitPolicyRef
Health HealthState
FailureClass CognitiveFailureType
ObservedAtUnixMillis int64
BillingMode BillingMode
AuthMode AuthMode
InputCostMicros *int64
OutputCostMicros *int64
RequestCostMicros *int64
Models []DiscoveredModelSnapshot
}
type DiscoveredModelSnapshot struct {
ProviderModelID ProviderModelID
Fingerprint ModelFingerprint
MaxContextBytes int64
Modalities []ModelModality
Capabilities []ModelCapability
Installed OperationalState
Loaded OperationalState
Invokable OperationalState
IntelligenceScoreMillis *int64
}
type CognitiveUsageObservation struct {
ObservationID ids.ID
RequestID ids.ID
BindingID CapabilityBindingID
BindingRevision int64
ProviderInstanceID ProviderInstanceID
ModelDescriptorID ModelDescriptorID
ObservedAtUnixMillis int64
LatencyMillis int64
InputUnits int64
OutputUnits int64
EstimatedCostMicros *int64
ActualCostMicros *int64
ResultClass CognitiveResultClass
FailureType CognitiveFailureType
}