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/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 } 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 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 }