Files
Assistant/contracts/continuity/types.go
T
m 9a84ac942c
CI / test (push) Successful in 15s
CI / test (pull_request) Successful in 14s
DEV-000064 capability resolution foundation
2026-08-17 15:51:25 +03:00

86 lines
2.7 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
SourceIntentID string
SourceUtteranceID string
Summary string
TriggerAtUnixMillis int64
State ProspectiveState
Revision ProspectiveRevision
}
type ScheduleReminderRequest struct {
OwnerPrincipalID identity.PrincipalID
ScopeID authority.ScopeID
SourceIntentID string
SourceUtteranceID string
Summary string
TriggerAtUnixMillis int64
RequestedAtUnixMillis int64
}
type ScheduleReminderResult struct {
Item ProspectiveItem
}
// 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
}