Files
m 790fcc0cea
CI / test (push) Successful in 15s
CI / test (pull_request) Successful in 14s
DEV-000062 human intent project context
2026-08-17 14:42:24 +03:00

64 lines
1.9 KiB
Go

package situation
import (
"git.cin.su/m/Assistant/contracts/authority"
"git.cin.su/m/Assistant/contracts/identity"
"git.cin.su/m/Assistant/contracts/work"
"git.cin.su/m/Assistant/platform/ids"
)
type SituationID ids.ID
type FocusBindingID ids.ID
type SessionID ids.ID
type WorkspaceID ids.ID
type ProjectID ids.ID
type ProjectAlias string
type ProjectResolutionProvenance string
const (
ProjectResolutionExplicit ProjectResolutionProvenance = "EXPLICIT"
ProjectResolutionInheritedFocus ProjectResolutionProvenance = "INHERITED_FOCUS"
ProjectResolutionEntityReference ProjectResolutionProvenance = "ENTITY_REFERENCE"
ProjectResolutionTaskReference ProjectResolutionProvenance = "TASK_REFERENCE"
ProjectResolutionRepositoryReference ProjectResolutionProvenance = "REPOSITORY_REFERENCE"
ProjectResolutionInferred ProjectResolutionProvenance = "INFERRED"
ProjectResolutionUserConfirmed ProjectResolutionProvenance = "USER_CONFIRMED"
ProjectResolutionAmbiguous ProjectResolutionProvenance = "AMBIGUOUS"
)
// FocusBinding is the situation-owned runtime context used to resolve a request.
// User text is deliberately absent: textual similarity is not a routing signal.
type FocusBinding struct {
ID FocusBindingID
ActorID identity.ActorID
SessionID SessionID
Workspace WorkspaceID
ProjectID ProjectID
GoalID work.GoalID
ScopeID authority.ScopeID
Active bool
}
type RuntimeBinding struct {
SessionID SessionID
Workspace WorkspaceID
}
type ProjectDescriptor struct {
ID ProjectID
DisplayName string
Aliases []ProjectAlias
RecordedAtUnixMillis int64
}
type ActiveProjectFocus struct {
ActorID identity.ActorID
PrincipalID identity.PrincipalID
ProjectID ProjectID
ProjectDisplayName string
Provenance ProjectResolutionProvenance
ConfidenceMillis int64
SourceUtteranceID string
UpdatedAtUnixMillis int64
}