package cognitive import ( "git.cin.su/m/Assistant/contracts/authority" "git.cin.su/m/Assistant/contracts/capability" "git.cin.su/m/Assistant/contracts/identity" "git.cin.su/m/Assistant/contracts/interaction" "git.cin.su/m/Assistant/platform/ids" ) type RequestID ids.ID type ContextExcerptID ids.ID type ContractVersion string type Sensitivity string type FinishReason string const ( CreatorAdvisoryV1 ContractVersion = "creator-advisory-v1" SensitivityPublic Sensitivity = "PUBLIC" SensitivityPrivateAllowed Sensitivity = "PRIVATE_ALLOWED" SensitivitySecret Sensitivity = "SECRET" SensitivityUnknown Sensitivity = "UNKNOWN" FinishCompleted FinishReason = "COMPLETED" FinishLengthLimit FinishReason = "LENGTH_LIMIT" FinishContentRejected FinishReason = "CONTENT_REJECTED" FinishProviderUnavailable FinishReason = "PROVIDER_UNAVAILABLE" FinishModelUnavailable FinishReason = "MODEL_UNAVAILABLE" FinishRateLimited FinishReason = "RATE_LIMITED" FinishAuthenticationFailed FinishReason = "AUTHENTICATION_FAILED" FinishBillingOrBudgetBlocked FinishReason = "BILLING_OR_BUDGET_BLOCKED" FinishContextTooLarge FinishReason = "CONTEXT_TOO_LARGE" FinishUnsupportedCapability FinishReason = "UNSUPPORTED_CAPABILITY" FinishTimeout FinishReason = "TIMEOUT" FinishInvalidProviderResponse FinishReason = "INVALID_PROVIDER_RESPONSE" FinishInvalidStructuredOutput FinishReason = "INVALID_STRUCTURED_OUTPUT" FinishDegraded FinishReason = "DEGRADED" ) type ContextExcerpt struct { ID ContextExcerptID SourceKind string SourceID string Revision int64 Sensitivity Sensitivity Text string } // AdvisoryRequest is assembled by a trusted gateway. Actor, Principal, Scope // and Binding fields must never be accepted as browser-selected authority. type AdvisoryRequest struct { Version ContractVersion RequestID RequestID ActorID identity.ActorID PrincipalID identity.PrincipalID ScopeID authority.ScopeID Message string Context []ContextExcerpt Locale string MaxOutputBytes int ProviderBindingID capability.CapabilityBindingID ProviderBindingRevision int64 ProviderInstanceID capability.ProviderInstanceID ModelDescriptorID capability.ModelDescriptorID ProviderModelID capability.ProviderModelID } // GatewayAdvisoryRequest describes the task and policy requirement. It cannot // name a provider, model or binding; Capability owns that selection. type GatewayAdvisoryRequest struct { Version ContractVersion RequestID RequestID ActorID identity.ActorID PrincipalID identity.PrincipalID ScopeID authority.ScopeID Message string Context []ContextExcerpt Locale string MaxOutputBytes int DataPolicy capability.DataPolicy EgressAcknowledged bool Meaning TaskMeaning } // TaskMeaning is the trusted semantic summary produced by Core. It is not a // browser-controlled provider selector; the Capability owner still resolves // the actual binding. type TaskMeaning struct { SpeechAct string CapabilityKind capability.CapabilityKind CapabilityHints []capability.CapabilityKind RequestedOutcome string InformationRequestKind interaction.InformationRequestKind ConfidenceMillis int64 } type GatewayAdvisoryPolicyRequest struct { PrincipalID identity.PrincipalID DataPolicy capability.DataPolicy } type GatewayAdvisoryPolicy struct { ExternalEgress bool AcknowledgementRequired bool Disclosure string } type ProviderUsage struct { InputUnits int64 OutputUnits int64 } type InterpretationApplicability string const ( InterpretationApplicable InterpretationApplicability = "APPLICABLE" InterpretationLowConfidence InterpretationApplicability = "LOW_CONFIDENCE" InterpretationMixedIntent InterpretationApplicability = "MIXED_INTENT" InterpretationNeedsBroader InterpretationApplicability = "NEEDS_BROADER_INTERPRETATION" InterpretationClarificationRequired InterpretationApplicability = "CLARIFICATION_REQUIRED" ) type GatewayInterpretationRequest struct { Version ContractVersion RequestID RequestID ActorID identity.ActorID PrincipalID identity.PrincipalID ScopeID authority.ScopeID Message string Locale string MaxOutputBytes int DataPolicy capability.DataPolicy DeterministicSpeechAct string DeterministicSecondary string DeterministicConfidence int64 DeterministicApplicability InterpretationApplicability RequestedOutcome string ProjectNames []string } type GatewayInterpretationCandidate struct { PrimarySpeechAct string `json:"primary_speech_act"` SecondarySpeechAct string `json:"secondary_speech_act,omitempty"` ConfidenceMillis int64 `json:"confidence_millis"` Applicability InterpretationApplicability `json:"applicability"` RequestedOutcome string `json:"requested_outcome,omitempty"` NeedsCognition bool `json:"needs_cognition"` Clarification string `json:"clarification"` SelectionReason string `json:"selection_reason,omitempty"` CapabilityHints []capability.CapabilityKind `json:"capability_hints,omitempty"` } type GatewayInterpretationResponse struct { Version ContractVersion RequestID RequestID Candidate GatewayInterpretationCandidate FinishReason FinishReason Usage *ProviderUsage } type AdvisoryResponse struct { Version ContractVersion RequestID RequestID ProviderBindingID capability.CapabilityBindingID ProviderBindingRevision int64 AdvisoryText string ReferencedExcerptIDs []ContextExcerptID FinishReason FinishReason Usage *ProviderUsage } type GatewayAdvisoryResponse struct { Version ContractVersion RequestID RequestID AdvisoryText string ReferencedExcerptIDs []ContextExcerptID FinishReason FinishReason Usage *ProviderUsage }