Files
Assistant/contracts/cognitive/types.go
T
m f9cdd67229
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 11s
feat: add cognitive advisory contract
2026-08-16 20:05:12 +03:00

72 lines
2.2 KiB
Go

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"
FinishTimeout FinishReason = "TIMEOUT"
FinishInvalidProviderResponse FinishReason = "INVALID_PROVIDER_RESPONSE"
)
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
}
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
}