Files
Assistant/contracts/continuity/types.go
T
2026-08-16 16:19:23 +03:00

69 lines
2.3 KiB
Go

package continuity
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 CommitmentID ids.ID
type ProspectiveItemID ids.ID
type ProspectiveRevision uint64
type CommittedActionIntentID ids.ID
type CommittedAuthorizedActionID ids.ID
type ProspectiveState string
const (
ProspectiveRegistered ProspectiveState = "REGISTERED"
ProspectiveArmed ProspectiveState = "ARMED"
ProspectiveTriggered ProspectiveState = "TRIGGERED"
ProspectiveRevalidating ProspectiveState = "REVALIDATING"
ProspectiveDelivered ProspectiveState = "DELIVERED"
ProspectiveSatisfied ProspectiveState = "SATISFIED"
ProspectiveSuppressed ProspectiveState = "SUPPRESSED"
ProspectiveExpired ProspectiveState = "EXPIRED"
)
// ProspectiveItem is canonical future relevance. TriggerAtUnixMillis is an
// absolute instant; scheduling engines are derived delivery mechanisms only.
type ProspectiveItem struct {
ID ProspectiveItemID
CommitmentID CommitmentID
OwnerPrincipalID identity.PrincipalID
ScopeID authority.ScopeID
GoalID work.GoalID
TriggerAtUnixMillis int64
State ProspectiveState
Revision ProspectiveRevision
}
// SatisfyDeliveredSubject is the complete serializable operation subject. It
// is distinct from a Work TaskTarget, which remains the live justification.
type SatisfyDeliveredSubject struct {
ProspectiveItemID ProspectiveItemID
ExpectedRevision ProspectiveRevision
FromState ProspectiveState
ToState ProspectiveState
EvidenceRef string
}
// SatisfyDeliveredCommand is accepted only at Continuity's internal executor
// boundary. Commit identities are references; Continuity remains state owner.
type SatisfyDeliveredCommand struct {
ActionIntentID CommittedActionIntentID
AuthorizedActionID CommittedAuthorizedActionID
OwnerPrincipalID identity.PrincipalID
Subject SatisfyDeliveredSubject
}
type ActionReceipt struct {
ActionIntentID CommittedActionIntentID
AuthorizedActionID CommittedAuthorizedActionID
OwnerPrincipalID identity.PrincipalID
Subject SatisfyDeliveredSubject
ResultState ProspectiveState
ResultRevision ProspectiveRevision
}