Files
Assistant/contracts/capability/resolution.go
T
m e7b32be1e0
CI / test (push) Successful in 18s
CI / test (pull_request) Successful in 16s
DEV-000067 experience reflection skill foundation
2026-08-17 18:11:23 +03:00

224 lines
8.1 KiB
Go

package capability
import (
"git.cin.su/m/Assistant/contracts/identity"
"git.cin.su/m/Assistant/platform/ids"
)
type CapabilityImplementationID ids.ID
type CapabilityResolutionID ids.ID
type CapabilityGapID ids.ID
type CapabilityUsageObservationID ids.ID
type SkillProfileID ids.ID
type SkillEvidenceRef string
type RequirementRef string
type OriginalIntentRef string
type SourceUtteranceRef string
type ImplementationKind string
type ImplementationTargetRef string
type AuthorityPolicyRef string
type DataConstraint string
type CapabilityResolutionStatus string
type GapReason string
type AcquisitionStrategyKind string
type UsageOutcomeClass string
type SkillLifecycleStatus string
type FastPathDecisionState string
type FastPathDeclineReason string
const (
ImplementationInternalFunction ImplementationKind = "INTERNAL_FUNCTION"
ImplementationCognitiveBinding ImplementationKind = "COGNITIVE_BINDING"
ImplementationExternalAdapter ImplementationKind = "EXTERNAL_ADAPTER"
ImplementationAgent ImplementationKind = "AGENT"
AuthorityPolicyCreatorDirectiveV1 AuthorityPolicyRef = "creator-directive-v1"
AuthorityPolicyCognitiveGatewayV1 AuthorityPolicyRef = "cognitive-gateway-v1"
DataConstraintLocalOnly DataConstraint = "LOCAL_ONLY"
DataConstraintExternalAllowed DataConstraint = "EXTERNAL_ALLOWED"
DataConstraintNoCredentialForward DataConstraint = "NO_CREDENTIAL_FORWARD"
ResolutionAvailable CapabilityResolutionStatus = "AVAILABLE"
ResolutionPartiallyAvailable CapabilityResolutionStatus = "PARTIALLY_AVAILABLE"
ResolutionUnavailable CapabilityResolutionStatus = "UNAVAILABLE"
ResolutionUnknown CapabilityResolutionStatus = "UNKNOWN"
GapNoImplementation GapReason = "NO_IMPLEMENTATION"
GapUnhealthy GapReason = "UNHEALTHY"
GapInactive GapReason = "INACTIVE"
GapUnqualified GapReason = "UNQUALIFIED"
GapUnauthorized GapReason = "UNAUTHORIZED"
GapIncompatible GapReason = "INCOMPATIBLE"
GapUnknown GapReason = "UNKNOWN"
AcquireUseAlternative AcquisitionStrategyKind = "USE_ALTERNATIVE"
AcquireDiscoverExisting AcquisitionStrategyKind = "DISCOVER_EXISTING"
AcquireConnectExisting AcquisitionStrategyKind = "CONNECT_EXISTING"
AcquireConfigureExisting AcquisitionStrategyKind = "CONFIGURE_EXISTING"
AcquireExternal AcquisitionStrategyKind = "ACQUIRE_EXTERNAL"
AcquireBuildNew AcquisitionStrategyKind = "BUILD_NEW"
AcquireRequestUserInput AcquisitionStrategyKind = "REQUEST_USER_INPUT"
AcquireUnresolvableCurrently AcquisitionStrategyKind = "UNRESOLVABLE_CURRENTLY"
UsageSucceeded UsageOutcomeClass = "SUCCEEDED"
UsageFailed UsageOutcomeClass = "FAILED"
UsageSkipped UsageOutcomeClass = "SKIPPED"
UsageUnknown UsageOutcomeClass = "UNKNOWN"
SkillCandidate SkillLifecycleStatus = "CANDIDATE"
SkillEvaluating SkillLifecycleStatus = "EVALUATING"
SkillValidated SkillLifecycleStatus = "VALIDATED"
SkillDegraded SkillLifecycleStatus = "DEGRADED"
SkillSuspended SkillLifecycleStatus = "SUSPENDED"
SkillRetired SkillLifecycleStatus = "RETIRED"
FastPathApplied FastPathDecisionState = "APPLIED"
FastPathDeclined FastPathDecisionState = "DECLINED"
FastPathEscalate FastPathDecisionState = "ESCALATE_TO_THINK"
FastPathNotApplicable FastPathDeclineReason = "NOT_APPLICABLE"
FastPathLowConfidence FastPathDeclineReason = "LOW_CONFIDENCE"
FastPathOutOfDistribution FastPathDeclineReason = "OUT_OF_DISTRIBUTION"
FastPathConflict FastPathDeclineReason = "CONFLICT"
FastPathStale FastPathDeclineReason = "STALE"
FastPathImplementationDown FastPathDeclineReason = "IMPLEMENTATION_UNAVAILABLE"
)
// CapabilityDescriptor names what Domovoy can obtain or do. CapabilityKind is
// intentionally extensible string semantics, not a closed-world enum.
type CapabilityDescriptor struct {
ID CapabilityID
Kind CapabilityKind
DisplayName string
Description string
Revision int64
RecordedAtUnixMillis int64
}
// CapabilityImplementation is the generic implementation/binding layer. It
// may point at a cognitive binding, internal function, agent, adapter or later
// provider type. CredentialRef is metadata only and never grants authority.
type CapabilityImplementation struct {
ID CapabilityImplementationID
CapabilityID CapabilityID
CapabilityKind CapabilityKind
OwnerPrincipalID identity.PrincipalID
Revision int64
Kind ImplementationKind
TargetRef ImplementationTargetRef
CredentialRef CredentialRef
Qualification QualificationState
Activation ActivationState
Health HealthState
AuthorityPolicyRef AuthorityPolicyRef
DataConstraints []DataConstraint
CostScoreMillis *int64
LatencyScoreMillis *int64
ReliabilityMillis *int64
ObservedAtUnixMillis int64
}
type CapabilityResolutionRequirement struct {
RequirementID RequirementRef
CapabilityKind CapabilityKind
CapabilityID CapabilityID
OwnerPrincipalID identity.PrincipalID
ActorID identity.ActorID
OriginalIntentID OriginalIntentRef
SourceUtteranceID SourceUtteranceRef
RequiredConstraints []DataConstraint
AllowCanary bool
AuthorityContextRef AuthorityPolicyRef
ObservedAtUnixMillis int64
}
type ResolvedCapabilityImplementation struct {
Implementation CapabilityImplementation
Selected bool
Rank int
}
type CapabilityResolution struct {
ID CapabilityResolutionID
Requirement CapabilityResolutionRequirement
Status CapabilityResolutionStatus
Eligible []ResolvedCapabilityImplementation
ExcludedReasons map[CapabilityImplementationID]GapReason
Gap *CapabilityGap
ObservedAtUnixMillis int64
}
type CapabilityGap struct {
ID CapabilityGapID
RequirementID RequirementRef
CapabilityKind CapabilityKind
CapabilityID CapabilityID
OwnerPrincipalID identity.PrincipalID
OriginalIntentID OriginalIntentRef
SourceUtteranceID SourceUtteranceRef
Reason GapReason
Detail string
Strategies []AcquisitionStrategyCandidate
RecordedAtUnixMillis int64
}
type AcquisitionStrategyCandidate struct {
Kind AcquisitionStrategyKind
Reason string
}
type CapabilityUsageObservation struct {
ID CapabilityUsageObservationID
ImplementationID CapabilityImplementationID
ImplementationRevision int64
CapabilityID CapabilityID
CapabilityKind CapabilityKind
OwnerPrincipalID identity.PrincipalID
OriginalIntentID OriginalIntentRef
SourceUtteranceID SourceUtteranceRef
Outcome UsageOutcomeClass
OutcomeRef string
LatencyMillis *int64
ObservedAtUnixMillis int64
}
// SkillProfile describes a reusable approach/pattern/capability composition.
// It is derived from evidence and is never authority by itself.
type SkillProfile struct {
ID SkillProfileID
Revision int64
Name string
Description string
ApplicableContext []string
ImplementationRef string
ImplementationVersion string
Status SkillLifecycleStatus
SupportingExperienceRefs []SkillEvidenceRef
KnownFailureExperienceRefs []SkillEvidenceRef
ConfidenceMillis int64
LastValidatedUnixMillis int64
ObservedFailureCount int64
ObservedCorrectionCount int64
RecordedAtUnixMillis int64
}
type SkillOutcomeObservation struct {
ExperienceRef SkillEvidenceRef
Outcome UsageOutcomeClass
UserCorrected bool
ObservedAtUnixMillis int64
}
// FastPathDecision is an explicit optimization decision. Decline/escalation is
// successful safety behavior, not a failure to answer.
type FastPathDecision struct {
SkillProfileID SkillProfileID
Decision FastPathDecisionState
DeclineReason FastPathDeclineReason
RequiresCognition bool
Explanation string
ObservedAtUnixMillis int64
}